JP6634938B2 - Analysis support method, analysis support program, and analysis support device - Google Patents

Analysis support method, analysis support program, and analysis support device Download PDF

Info

Publication number
JP6634938B2
JP6634938B2 JP2016076077A JP2016076077A JP6634938B2 JP 6634938 B2 JP6634938 B2 JP 6634938B2 JP 2016076077 A JP2016076077 A JP 2016076077A JP 2016076077 A JP2016076077 A JP 2016076077A JP 6634938 B2 JP6634938 B2 JP 6634938B2
Authority
JP
Japan
Prior art keywords
value
column
data
screen
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016076077A
Other languages
Japanese (ja)
Other versions
JP2017004500A (en
Inventor
光幾 加藤
光幾 加藤
忠弘 上原
忠弘 上原
武 安家
武 安家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2017004500A publication Critical patent/JP2017004500A/en
Application granted granted Critical
Publication of JP6634938B2 publication Critical patent/JP6634938B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、分析支援方法、分析支援プログラムおよび分析支援装置に関する。   An embodiment of the present invention relates to an analysis support method, an analysis support program, and an analysis support device.

従来、リレーショナル・データベース(RDB)などのデータベース(以下、DBと表記する)を用いる業務システムでは、新機能の追加などの保守開発を行う時に、新機能の追加などによる変更の影響がどこまで波及するかを把握することが求められる。この影響が及ぶ範囲の把握では、DBに対するデータの書き込みや読み込みによってデータがどのように伝搬していくかを調査する。例えば、DBがRDBである場合、書き込みはSQLのINSERTやUPDATE命令に、読み込みはSELECT命令にそれぞれ相当する。   2. Description of the Related Art Conventionally, in a business system using a database (hereinafter, referred to as a DB) such as a relational database (RDB), when maintenance and development such as addition of a new function is performed, the influence of a change due to the addition of a new function spreads to what extent. It is required to know what. In grasping the range affected by the influence, it is investigated how data is propagated by writing and reading data to and from the DB. For example, if the DB is an RDB, writing corresponds to an INSERT or UPDATE instruction in SQL, and reading corresponds to a SELECT instruction.

DBに対するINSERTやUPDATE命令による書き込み、SELECT命令による読み込みによってデータがどのように伝搬していくかを調査する方法は、大きく分けて静的方法と動的な方法がある。   Methods for investigating how data is propagated by writing to the DB with an INSERT or UPDATE instruction and reading with a SELECT instruction are roughly classified into a static method and a dynamic method.

静的な方法では、業務システムにかかるソースコードから、業務システムが実行された時のデータの流れを解析する方法がある。ソースコードを用いると、ソースコード内のデータ伝搬は正確に把握できる。しかしながら、業務システムにおいてDBなど外部データの入出力が存在すると、DBを介して関係付く他のソースコードの発見と、そのソースコード内のデータ伝搬の把握が必要である。   As a static method, there is a method of analyzing a flow of data when a business system is executed from a source code related to the business system. By using the source code, data propagation in the source code can be accurately grasped. However, when there is input / output of external data such as a DB in a business system, it is necessary to find another source code related via the DB and to grasp data propagation in the source code.

例えば、業務システムのJava(登録商標)などのソースコードで記述されたメソッドからSQLを発行してRDBとデータのやり取りを行う場合、データ伝搬を把握するためにはSQLとソースコードの両方を分析する必要がある。しかしながら、ソースコードを正しく分析するのは手間を要し、データ伝搬を把握するのが困難である。また、静的な方法の場合、実際の業務において、あるデータ(カラム)への書き込みや読み出しが発生する順序関係を把握するのが困難であり、実際には発生しないデータ伝搬も抽出する可能性がある。   For example, when SQL is issued from a method described in source code such as Java (registered trademark) of a business system to exchange data with an RDB, both SQL and source code are analyzed in order to grasp data propagation. There is a need to. However, correctly analyzing the source code is troublesome, and it is difficult to grasp the data propagation. Also, in the case of the static method, it is difficult to grasp the order relation in which writing or reading to certain data (column) occurs in actual work, and it is possible to extract data propagation that does not actually occur. There is.

一方、動的な方法としては、プログラム実行に関する動作ログを取得・解析する方法や、SQLの実行履歴を動作ログとして用いた分析がある。解析する動作ログとしては、例えば実行したSQLとその時のパラメータ、さらにSELECT命令の場合は検索結果がある。   On the other hand, as a dynamic method, there are a method of acquiring and analyzing an operation log related to program execution, and an analysis using an SQL execution history as an operation log. The operation log to be analyzed includes, for example, the executed SQL and the parameters at that time, and in the case of a SELECT command, a search result.

特開2010−102664号公報JP 2010-102664 A

しかしながら、上述した従来技術では、DBを用いる業務システムにおけるデータ伝搬について、的確に把握することが困難な場合があるという問題がある。例えば、DBより読み出した値をメソッド内で演算し、演算後の値を別のカラムに書き込むような間接的に関係性のあるデータ伝搬については、的確に把握することは困難である。   However, the above-described related art has a problem that it is sometimes difficult to accurately grasp data propagation in a business system using a DB. For example, it is difficult to accurately grasp indirectly related data propagation in which a value read from a DB is operated in a method and the value after the operation is written in another column.

図27は、業務システム300を説明する説明図である。図27に示すように、業務システム300は、Webサーバ311、業務サーバ312、業務用DB313およびDBアクセスデータ314を有する。   FIG. 27 is an explanatory diagram illustrating the business system 300. As shown in FIG. 27, the business system 300 includes a Web server 311, a business server 312, a business DB 313, and DB access data 314.

Webサーバ311は、端末装置301のブラウザからのアクセスを受け付けて、業務処理のサービスを端末装置301のブラウザに提供する。具体的には、Webサーバ311は、端末装置301からのHTTP(HyperText Transfer Protocol)パラメータを介した処理要求を業務サーバ312へ通知し、業務サーバ312の処理結果を端末装置301のブラウザに返す。業務サーバ312は、Webサーバ311からの処理要求をもとに、業務用の各種情報を格納するRDBである業務用DB313へのアクセスを行って業務処理を実行し、処理結果をWebサーバ311へ返す。また、業務サーバ312は、業務用DB313へのアクセスにかかるログ(動作ログ)をDBアクセスデータ314に格納する。この動作ログには、実行したSQLおよびパラメータや、SELECT命令の場合は検索結果がある。   The Web server 311 receives an access from the browser of the terminal device 301 and provides a business process service to the browser of the terminal device 301. Specifically, the Web server 311 notifies the business server 312 of a processing request via the HTTP (HyperText Transfer Protocol) parameter from the terminal device 301, and returns the processing result of the business server 312 to the browser of the terminal device 301. The business server 312 executes a business process by accessing a business DB 313 which is an RDB storing various business information based on a processing request from the Web server 311 and executes a business process, and transmits a processing result to the Web server 311. return. Further, the business server 312 stores a log (operation log) relating to access to the business DB 313 in the DB access data 314. The operation log includes the executed SQL and parameters, and a search result in the case of a SELECT command.

例えば、Webサーバ311からのアクセスがきっかけとなり業務サーバ312がSELECT文を実行した後に、INSERT文を実行する場合を想定する。この場合、DBアクセスデータ314の動作ログからは、端末装置301より業務サーバ312へアクセスしたHTTPパラメータ(画面パラメータ)と、SELECT文およびパラメータと、検索結果と、INSERT文のパラータと、実行時刻とが得られる。   For example, it is assumed that the access from the Web server 311 triggers the business server 312 to execute the SELECT statement and then execute the INSERT statement. In this case, based on the operation log of the DB access data 314, the HTTP parameter (screen parameter), the SELECT statement and the parameter, the search result, the parameter of the INSERT statement, the execution time, Is obtained.

この動作ログにおいて、動的な方法により、例えば業務用DB313におけるTable1のカラムC11からSELECT文で読み出された値(y1)と、Table2のカラムC21にINSERT文で書き込む値(z1)とが常にy1=z1を満たすことが判明したものとする。この場合、カラムC11の値が業務処理を経由してカラムC21に伝搬していると推定できる。このように、検索結果の値をINSERT文でそのまま別のカラムに書き込む場合には、動的な方法によりデータ伝搬を把握できる。   In this operation log, for example, the value (y1) read out from the column C11 of Table1 in the business DB 313 by the SELECT statement and the value (z1) written in the INSERT statement to the column C21 of Table2 in the business DB 313 are always stored in a dynamic manner. It is assumed that y1 = z1 is satisfied. In this case, it can be estimated that the value of column C11 has propagated to column C21 via the business process. As described above, when the value of the search result is directly written into another column by the INSERT statement, data propagation can be grasped by a dynamic method.

しかしながら、読み出された値(y1)をメソッド内で演算し、演算後の値(z1)を別のカラムに書き込む場合には、y1≠z1であることから、間接的な関係性が存在するにもかかわらず、その関係性を的確に把握することは困難である。また、UPDATE文で更新する場合は、例えば一旦SELECT文を実行して読み出した値に演算を施し、演算後の値をUPDATE文で更新する。このように、UPDATE文で更新が行われる場合も、既存の値がそのまま更新値として使われるものではないことから、間接的な関係性が存在するにもかかわらず、その関係性を的確に把握することは困難である。   However, when the read value (y1) is calculated in the method and the calculated value (z1) is written to another column, since y1 ≠ z1, an indirect relationship exists. Nevertheless, it is difficult to accurately grasp the relationship. In the case of updating with an UPDATE statement, for example, a SELECT statement is executed once, an operation is performed on the read value, and the value after the operation is updated with the UPDATE statement. As described above, even when the update is performed by the UPDATE statement, since the existing value is not used as the update value as it is, even though there is an indirect relationship, the relationship is accurately grasped. It is difficult to do.

1つの側面では、業務システムにおけるデータ伝搬を的確に把握することを可能とする分析支援方法、分析支援プログラムおよび分析支援装置を提供することを目的とする。   In one aspect, an object of the present invention is to provide an analysis support method, an analysis support program, and an analysis support device capable of accurately grasping data propagation in a business system.

第1の案では、分析支援方法は、コンピュータが、入力パラメータと、当該入力パラメータに基づいてデータベースからのデータの読み出しおよびデータベースへのデータの書き込みの内の少なくともデータの書き込みを行ったアクセス記録とを含む動作ログを複数取得する処理を実行する。また、分析支援方法は、コンピュータが、取得された複数の動作ログの中の、データベースの所定のカラムにかかるアクセス記録を含む動作ログの各々おいて、入力パラメータに含まれる値またはアクセス記録においてデータベースから読み出された値と、アクセス記録においてデータベースへ書き込みを行った値と組み合わせて所定の演算を行った演算結果が一定である場合に、カラムにデータの伝搬があるものと分析する。また、分析支援方法は、コンピュータが、伝搬があると分析されたカラムを出力する処理を実行する。   In the first proposal, the analysis support method includes a computer which includes an input parameter, and an access record in which at least one of reading data from the database and writing data to the database is written based on the input parameter. Execute the process of acquiring a plurality of operation logs including In the analysis support method, the computer may be configured such that in each of the plurality of acquired operation logs, in each of the operation logs including the access record related to a predetermined column of the database, the value included in the input parameter or the database If the calculation result obtained by performing a predetermined calculation in combination with the value read from the data and the value written to the database in the access record is constant, it is analyzed that there is data propagation in the column. Also, in the analysis support method, the computer executes a process of outputting a column analyzed when there is propagation.

本発明の1実施態様によれば、業務システムにおけるデータ伝搬を的確に把握できる。   According to one embodiment of the present invention, data propagation in a business system can be accurately grasped.

図1は、実施形態にかかる分析支援装置の構成を例示するブロック図である。FIG. 1 is a block diagram illustrating the configuration of the analysis support apparatus according to the embodiment. 図2は、実施形態にかかる分析支援装置の動作例を示すフローチャートである。FIG. 2 is a flowchart illustrating an operation example of the analysis support device according to the embodiment. 図3は、「カラム1個との対応付け」の処理を示すフローチャートである。FIG. 3 is a flowchart showing the processing of “association with one column”. 図4は、「画面パラメータ1個との対応付け」の処理を示すフローチャートである。FIG. 4 is a flowchart showing the processing of “association with one screen parameter”. 図5は、「画面パラメータが持つ複数の繰り返しパラメータとINSERT値の関係推定」の処理を示すフローチャートである。FIG. 5 is a flowchart showing the process of “estimating the relationship between a plurality of repetition parameters of the screen parameter and the INSERT value”. 図6は、「SELECT結果の2つのカラムとINSERT値の関係推定」の処理を示すフローチャートである。FIG. 6 is a flowchart showing the process of “estimating the relationship between the two columns of the SELECT result and the INSERT value”. 図7は、「キー値を介して関係付く2種類のSELECT結果のカラムとINSERT値の関係推定」の処理を示すフローチャートである。FIG. 7 is a flowchart showing the process of “estimating the relationship between two types of SELECT result columns and INSERT values related via key values”. 図8は、「キー値を介して関係付く画面パラメータとSELECT結果のカラムとINSERT値の関係推定」の処理を示すフローチャートである。FIG. 8 is a flowchart illustrating the process of “estimating the relationship between the screen parameter associated with the key value, the column of the SELECT result, and the INSERT value”. 図9は、実施形態にかかる分析支援装置の動作例を示すフローチャートである。FIG. 9 is a flowchart illustrating an operation example of the analysis support device according to the embodiment. 図10は、業務用DBのテーブル構成を例示する図である。FIG. 10 is a diagram illustrating a table configuration of the business DB. 図11は、動作ログの一例を説明する説明図である。FIG. 11 is an explanatory diagram illustrating an example of an operation log. 図12は、データテーブルの一例を説明する説明図である。FIG. 12 is an explanatory diagram illustrating an example of the data table. 図13は、動作ログの一例を説明する説明図である。FIG. 13 is an explanatory diagram illustrating an example of the operation log. 図14は、データテーブルの一例を説明する説明図である。FIG. 14 is an explanatory diagram illustrating an example of a data table. 図15は、動作ログの一例を説明する説明図である。FIG. 15 is an explanatory diagram illustrating an example of an operation log. 図16は、データテーブルの一例を説明する説明図である。FIG. 16 is an explanatory diagram illustrating an example of a data table. 図17は、動作ログの一例を説明する説明図である。FIG. 17 is an explanatory diagram illustrating an example of an operation log. 図18は、データテーブルの一例を説明する説明図である。FIG. 18 is an explanatory diagram illustrating an example of a data table. 図19は、動作ログの一例を説明する説明図である。FIG. 19 is an explanatory diagram illustrating an example of the operation log. 図20は、データテーブルの一例を説明する説明図である。FIG. 20 is an explanatory diagram illustrating an example of the data table. 図21は、動作ログの一例を説明する説明図である。FIG. 21 is an explanatory diagram illustrating an example of the operation log. 図22は、データテーブルの一例を説明する説明図である。FIG. 22 is an explanatory diagram illustrating an example of the data table. 図23は、動作ログの一例を説明する説明図である。FIG. 23 is an explanatory diagram illustrating an example of an operation log. 図24は、データテーブルの一例を説明する説明図である。FIG. 24 is an explanatory diagram illustrating an example of a data table. 図25は、表示画面の一例を説明する説明図である。FIG. 25 is an explanatory diagram illustrating an example of a display screen. 図26は、分析支援プログラムを実行するコンピュータの一例を説明する説明図である。FIG. 26 is an explanatory diagram illustrating an example of a computer that executes an analysis support program. 図27は、業務システムを説明する説明図である。FIG. 27 is an explanatory diagram illustrating the business system. 図28は、受注業務におけるデータ伝搬の一例を説明する説明図である。FIG. 28 is an explanatory diagram illustrating an example of data propagation in an order receiving business. 図29は、データ伝搬の検出に失敗した場合を説明する説明図である。FIG. 29 is an explanatory diagram illustrating a case where detection of data propagation has failed. 図30は、別実施形態にかかる分析支援装置の動作例を示すフローチャートである。FIG. 30 is a flowchart illustrating an operation example of the analysis support device according to another embodiment. 図31は、動作ログの一例を説明する説明図である。FIG. 31 is an explanatory diagram illustrating an example of an operation log. 図32は、データテーブルの一例を説明する説明図である。FIG. 32 is an explanatory diagram illustrating an example of a data table. 図33は、データテーブルの一例を説明する説明図である。FIG. 33 is an explanatory diagram illustrating an example of a data table. 図34は、データテーブルの一例を説明する説明図である。FIG. 34 is an explanatory diagram illustrating an example of a data table. 図35は、データ伝搬の検出を説明する説明図である。FIG. 35 is an explanatory diagram illustrating detection of data propagation. 図36は、データテーブルの一例を説明する説明図である。FIG. 36 is an explanatory diagram illustrating an example of a data table. 図37は、データテーブルの一例を説明する説明図である。FIG. 37 is an explanatory diagram illustrating an example of a data table. 図38は、データテーブルの一例を説明する説明図である。FIG. 38 is an explanatory diagram illustrating an example of the data table. 図39は、データ伝搬の検出を説明する説明図である。FIG. 39 is an explanatory diagram illustrating detection of data propagation.

以下、図面を参照して、実施形態にかかる分析支援方法、分析支援プログラムおよび分析支援装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する分析支援方法、分析支援プログラムおよび分析支援装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。   Hereinafter, an analysis support method, an analysis support program, and an analysis support device according to an embodiment will be described with reference to the drawings. In the embodiments, configurations having the same functions are denoted by the same reference numerals, and redundant description will be omitted. The analysis support method, the analysis support program, and the analysis support device described in the following embodiments are merely examples, and do not limit the embodiments. In addition, the following embodiments may be appropriately combined within a range not inconsistent.

図1は、実施形態にかかる分析支援装置1の構成を例示するブロック図である。図1に示すように、分析支援装置1は、PC(Personal Computer)やワークステーション等の情報処理装置であり、DBアクセスデータ20に格納された業務システム2の動作ログを取得し、取得した動作ログの分析を行う。分析支援装置1は、動作ログ取得部10、分析部11、記憶部12および出力部13を有する。   FIG. 1 is a block diagram illustrating the configuration of the analysis support device 1 according to the embodiment. As shown in FIG. 1, the analysis support apparatus 1 is an information processing apparatus such as a PC (Personal Computer) or a workstation, acquires an operation log of the business system 2 stored in the DB access data 20, and acquires the acquired operation log. Perform log analysis. The analysis support device 1 includes an operation log acquisition unit 10, an analysis unit 11, a storage unit 12, and an output unit 13.

業務システム2では、業務処理のサービスを提供するWebサーバへの端末装置からの要求により、業務サーバが業務用DBにアクセスして業務処理を実行した際の動作ログをDBアクセスデータ20としてログファイルなどに格納する。なお、本実施形態では、Webサーバを介した端末装置からの要求によるオンライン実行の動作ログの分析を例示する。具体的には、動作ログには、ブラウザ上の画面から入力した値を用いて、業務サーバが業務用DBへアクセスして業務処理を実行した際の履歴が記述されている。なお、分析する動作ログの内容については、上記の例に限定しない。例えば、業務サーバがバッチ処理により業務用DBにアクセスして業務処理を実行する場合の動作ログの分析にも適用可能である。   In the business system 2, an operation log obtained when the business server accesses the business DB and executes the business process in response to a request from the terminal device to the Web server that provides the business processing service is used as a log file as the DB access data 20. For example. In this embodiment, an analysis of an operation log of online execution in response to a request from a terminal device via a Web server will be exemplified. Specifically, the operation log describes the history of the business server accessing the business DB and executing the business process using the value input from the screen on the browser. Note that the content of the operation log to be analyzed is not limited to the above example. For example, the present invention can also be applied to the analysis of an operation log when a business server accesses a business DB by batch processing and executes business processing.

また、本実施形態では、DBアクセスデータ20において、業務用DBへのアクセスにかかるSQL文は、バインド変数を用いて記述されていることを前提とする。このSQL文については、変数値が埋め込まれているものからバインド変数に相当する部分を抽出し、SQLとバインド変数、バインド変数値に変換することは可能である。   Further, in the present embodiment, it is assumed that the SQL statement relating to the access to the business DB is described using a bind variable in the DB access data 20. With respect to this SQL statement, it is possible to extract a portion corresponding to a bind variable from a variable value embedded therein and convert it into an SQL, a bind variable, and a bind variable value.

動作ログ取得部10は、分析対象の業務システム2における所定のログファイルへアクセスするなどして、業務システム2の動作ログを取得する。具体的には、動作ログ取得部10は、業務システム2の動作ログとして、端末装置の画面で入力し、業務サーバに入力されるHTTPパラメータ(画面パラメータ)と、その入力による業務用DBの所定のカラムへのアクセス内容と、これらの実行順を判断可能な情報(処理時刻など)を取得する。業務用DBの所定のカラムへのアクセス内容には、端末装置の画面からの入力による画面パラメータがきっかけで実行される一連のSQLログ(SQL文、入力パラメータ(バインド変数値)、SELECT文の場合は加えて検索結果)がある。   The operation log acquisition unit 10 acquires an operation log of the business system 2 by accessing a predetermined log file in the business system 2 to be analyzed. Specifically, the operation log acquisition unit 10 inputs, as an operation log of the business system 2, an HTTP parameter (screen parameter) input on the screen of the terminal device and input to the business server, and a predetermined value of the business DB based on the input. And the information (processing time, etc.) that can determine the access content to the column and the execution order of these. The contents of access to a predetermined column of the business DB include a series of SQL logs (SQL statements, input parameters (bind variable values), and SELECT statements in the case where the screen parameters are input from the screen of the terminal device). Is in addition to the search results).

なお、端末装置の一画面からの入力がきっかけで発生した業務処理における動作ログ一式(画面パラメータとSQLログ)を以下では画面単位ログとも呼ぶこととする。   In the following, a set of operation logs (screen parameters and SQL logs) in a business process that has been triggered by input from one screen of the terminal device will be referred to as a screen unit log below.

分析部11は、動作ログ取得部10が取得した動作ログの内容をもとに、画面パラメータ内の変数値や業務用DBのあるカラムから読み出された値が業務用DBの所定のカラムへ伝搬するデータ伝搬があるか否かを分析する。記憶部12は、分析部11が分析する処理を行う際の作業用データ(動作ログ取得部10が取得した動作ログなど)を記憶する。出力部13は、分析部11の分析結果をディスプレイへの表示や、プリンターによる印字により出力する。   Based on the contents of the operation log acquired by the operation log acquisition unit 10, the analysis unit 11 transfers the variable values in the screen parameters and the values read from a certain column of the business DB to a predetermined column of the business DB. Analyze whether there is data propagation to propagate. The storage unit 12 stores work data (such as the operation log acquired by the operation log acquisition unit 10) when performing the process analyzed by the analysis unit 11. The output unit 13 outputs the analysis result of the analysis unit 11 on a display or printed by a printer.

分析部11は、所定のカラムについての動作ログをもとに、画面パラメータ内の変数値や業務用DBのあるカラムから読み出された値などの入力変数値と、所定のカラムへ書込む出力変数値とが一致するか否かを判定し、所定のカラムへの直接的なデータ伝搬があるか否かを分析する。また、分析部11は、所定のカラムについての複数の動作ログをもとに、業務用DBより読み出した値を演算し、演算後の値を別のカラムに書き込むような間接的なデータ伝搬の有無を分析する。具体的には、分析部11は、所定のカラムについての複数の動作ログにおいて、入力変数値と、出力変数値とを組み合わせて所定の演算を行った演算結果が一定である場合に、所定のカラムへ間接的なデータ伝搬があるものと分析する。   The analysis unit 11 inputs an input variable value such as a variable value in a screen parameter or a value read from a certain column of the business DB based on an operation log for a predetermined column, and an output to be written to the predetermined column. It is determined whether or not the variable value matches, and whether or not there is direct data propagation to a predetermined column is analyzed. In addition, the analysis unit 11 calculates a value read from the business DB based on a plurality of operation logs for a predetermined column, and writes the calculated value to another column. Analyze for presence. Specifically, in a plurality of operation logs for a predetermined column, the analysis unit 11 performs a predetermined operation when a result of performing a predetermined operation by combining an input variable value and an output variable value is constant. Analyze that there is indirect data transmission to the column.

なお、間接的なデータ伝搬については、任意の演算を対象としてデータ伝搬の有無を分析することは困難である。したがって、本実施形態では、業務処理で発生しがちな予め定められた演算を対象とする。具体的には、定数倍演算(例:消費税計算)、積和演算(例:単価と数量からの合計額計算)、固定値の加算を対象としている。   As for indirect data propagation, it is difficult to analyze the presence or absence of data propagation for an arbitrary operation. Therefore, in the present embodiment, a predetermined calculation that is likely to occur in business processing is targeted. More specifically, it targets a constant multiplication operation (eg, calculation of consumption tax), a product-sum operation (eg, calculation of total amount from unit price and quantity), and addition of a fixed value.

ここで、間接的なデータ伝搬の有無の分析について詳細に説明する。まず、所定のカラムへの書込みは、SQLのINSERT文で値を挿入する場合と、SQLのUPDATE文で値を更新する場合とがある。   Here, the analysis of the presence or absence of indirect data propagation will be described in detail. First, when writing to a predetermined column, there are a case where a value is inserted with an SQL INSERT statement and a case where a value is updated with a SQL UPDATE statement.

(INSERTの場合)
分析部11は、画面単位ログごとに、INSERT文より以前に実行した1個以上の同一SELECT文(ただしパラメータは異なる)を抽出する。同一SELECT文が存在するとき、分析部11は、その検索結果ないし画面パラメータの1個ないし2個から次の値を計算する。
・カラムないし画面パラメータが1個:α・C+β
・カラムないし画面パラメータが2個:αΣC・D+β
ただし、α、βは定数、C、DはそれぞれSELECT文で得られたテーブルのあるカラムの値ないし画面パラメータの値である。
(In the case of INSERT)
The analysis unit 11 extracts, for each screen unit log, one or more identical SELECT statements (but different parameters) executed before the INSERT statement. When the same SELECT statement exists, the analysis unit 11 calculates the next value from the search result or one or two screen parameters.
・ One column or screen parameter: α ・ C + β
・ Two columns or screen parameters: αΣCDD + β
Here, α and β are constants, and C and D are values of certain columns or screen parameters of the table obtained by the SELECT statement, respectively.

分析部11は、計算された値がINSERT文で挿入する値と常に一致する場合には、検索結果のカラムないし画面パラメータがINSERT対象のカラムに伝搬すると分析する。なお、定数α、βの計算は次のように行う。   If the calculated value always matches the value to be inserted in the INSERT statement, the analysis unit 11 analyzes that the search result column or screen parameter propagates to the INSERT target column. The calculation of the constants α and β is performed as follows.

(カラムないし画面パラメータが1個の場合)
分析部11は、ある画面単位ログ2回分(ただし画面パラメータは異なる)より、あるSELCETで1個得られた検索結果の特定のカラムCの値(ここではC1、C2とする)と、SELECTより後で実行したINSERTでカラム(X)に挿入した値(ここではX1、X2)とを得る。
(When there is only one column or screen parameter)
The analysis unit 11 calculates the value of a specific column C (here, C1 and C2) of a search result obtained by a certain SELSET from two times of a certain screen unit log (however, screen parameters are different), and The value (here, X1, X2) inserted into the column (X) is obtained by the INSERT executed later.

次いで、分析部11は、α=(X1−X2)/(C1−C2)の値を求め、求めた値が動作ログの組み合わせによらず常に一定であるか否かを、複数の動作ログを用いて計算する。αの値が常に一定の場合には、β=X1−αC1なる関係がある。このことから、分析部11は、複数の動作ログにおいてαの値が常に一定の場合、SELECTで取得したカラムCの値がαC+βなる変形(演算)を施されてカラムXにINSERTされ伝搬したものと分析する。   Next, the analysis unit 11 calculates a value of α = (X1−X2) / (C1−C2), and determines whether or not the calculated value is always constant regardless of the combination of the operation logs. Calculate using When the value of α is always constant, there is a relationship of β = X1−αC1. Therefore, when the value of α is always constant in a plurality of operation logs, the analysis unit 11 transforms the value of the column C obtained by SELECT into αC + β and inserts it into the column X and propagates it. And analyze.

(画面パラメータ1個とINSERT値の関係推定)
分析部11は、ある画面単位ログ2回分(ただし画面パラメータは異なる)より、画面パラメータのうちの特定のパラメータCの値(ここではC1、C2とする)と、INSERTでカラム(X)に挿入した値(ここではX1、X2とする)とを得る。
(Estimation of relationship between one screen parameter and INSERT value)
The analysis unit 11 inserts the values of the specific parameters C (here, C1 and C2) among the screen parameters and inserts them into the column (X) by INSERT from two screen unit logs (however, the screen parameters are different). (Here, X1 and X2) are obtained.

次いで、分析部11は、α=(X1−X2)/(C1−C2)の値を求め、求めた値が動作ログの組み合わせによらず常に一定であるか否かを、複数の動作ログを用いて計算する。αの値が常に一定の場合には、β=X1−αC1なる関係がある。このことから、分析部11は、複数の動作ログにおいてαの値が常に一定の場合、画面パラメータCの値がαC+βなる変形(演算)を施されてカラムXにINSERTされ伝搬したものと分析する。   Next, the analysis unit 11 calculates a value of α = (X1−X2) / (C1−C2), and determines whether or not the calculated value is always constant regardless of the combination of the operation logs. Calculate using When the value of α is always constant, there is a relationship of β = X1−αC1. Accordingly, when the value of α is always constant in the plurality of operation logs, the analysis unit 11 analyzes that the value of the screen parameter C is transformed (calculated) by αC + β, and INSERTed into the column X and propagated. .

(カラムないし画面パラメータが2個の場合)
カラムないし画面パラメータが2個の場合も、分析部11は、画面単位ログ2回分を用い、調査対象のINSERTより以前に実行されたSELECT結果ないし画面パラメータとの関係を、次の4つの場合で分析する。
(When there are two columns or screen parameters)
Even when there are two columns or screen parameters, the analysis unit 11 uses two screen unit logs to determine the relationship between SELECT results or screen parameters executed before the INSERT to be investigated in the following four cases. analyse.

(画面パラメータが持つ複数の繰り返しパラメータとINSERT値の関係推定)
画面パラメータで同種のパラメータ値が複数繰り返される場合、ある動作ログから得られた繰り返されるパラメータの2種類(CとDとする)の値とINSERTでカラムXに挿入した値(X1とする)、同じ画面の別の動作ログから得られたパラメータ値が得られるものとする。なお、繰り返されるパラメータの2種類の値は、それぞれC1iとD1i(i=1..m、ただしmはパラメータの繰り返し数)とする。また、同じ画面の別の動作ログから得られたパラメータ値は、それぞれC2iとD2i(i=1..n、ただしnはパラメータの繰り返し数)とする。
(Estimation of relationship between multiple repetition parameters of screen parameter and INSERT value)
When the same type of parameter value is repeated a plurality of times in the screen parameter, two types (C and D) of the repeated parameter obtained from a certain operation log and the value (X1) inserted into the column X by INSERT, It is assumed that a parameter value obtained from another operation log on the same screen is obtained. The two kinds of values of the repeated parameter are C1i and D1i (i = 1..m, where m is the number of repetitions of the parameter). The parameter values obtained from different operation logs of the same screen are C2i and D2i (i = 1..n, where n is the number of repetitions of the parameter).

このとき、分析部11は、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)の値が動作ログの組み合わせによらず常に一定かを、複数の動作ログの組み合わせで計算する。分析部11は、αが一定のとき、β=X1−αΣC1i・D1iであり、画面パラメータCとDの値がαΣC・D+βなる変形を施されてカラムXにINSERTされ伝搬したものと分析する。   At this time, the analysis unit 11 calculates whether the value of α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) is always constant irrespective of the combination of the operation logs by using a combination of a plurality of operation logs. When α is constant, the analysis unit 11 analyzes that β = X1−αΣC1i · D1i, and that the values of the screen parameters C and D are transformed into αXC · D + β and inserted into the column X and propagated.

なお、パラメータ値が複数繰り返されるというのは、例えばあるURLのパラメータ名のうち「abc-*、def-*、ghi-*、…(*は任意の文字列)」などの文字列が組となって繰り返されていることが容易に検出されたものを言う。一例としてURLが「http://aaa.bbb/exec?xyz=001&abc-1=123&def-1=234&ghi-1=345&abc-2=111&def-2=222&ghi-2=333&zzz=999」の場合、パラメータ名の最後の数値を無視すると同一の文字列が同じ順で繰り返し出現している。例示したURLでは、「abc-*」に対応するパラメータ値は順に(123、111)、「def-*」に対応するパラメータ値は順に(234、222)である。   Note that the parameter value is repeated a plurality of times because, for example, a character string such as “abc- *, def- *, ghi- *,. It is the one that is easily detected as being repeated. As an example, if the URL is "http: //aaa.bbb/exec? Xyz = 001 & abc-1 = 123 & def-1 = 234 & ghi-1 = 345 & abc-2 = 111 & def-2 = 222 & ghi-2 = 333 & zzz = 999", the parameter name If the last number is ignored, the same string appears repeatedly in the same order. In the illustrated URL, the parameter values corresponding to “abc- *” are (123, 111) in order, and the parameter values corresponding to “def- *” are (234, 222) in order.

(SELECT結果の2つのカラムとINSERT値の関係推定)
画面単位ログで、SELECT(1つのSELECTで1個以上の検索結果が得られた場合ないし、パラメータの異なる同一のSELECTを1個以上実行し、1個以上の検索結果が得られた場合)の後にINSERTが実行されたものとする。また、検索結果の2つのカラムC、Dの値(それぞれC1iとD1i、i=1..m、ただしmは検索結果数、とする)と、INSERTでカラムXに設定した値(X1とする)が得られ、別の動作ログで同様にC、D、Xの値(C2j、D2j、j=1..n、ただしnは検索結果数、X2)が得られたものとする。
(Estimation of the relationship between the two columns of the SELECT result and the INSERT value)
In the screen unit log, SELECT (when one or more search results are obtained in one SELECT, or when one or more identical SELECTs with different parameters are executed and one or more search results are obtained) It is assumed that INSERT is executed later. Also, the values of the two columns C and D of the search result (C1i and D1i, respectively, i = 1..m, where m is the number of search results) and the value (X1) set in column X by INSERT ) Is obtained, and the values of C, D, and X (C2j, D2j, j = 1..n, where n is the number of search results, X2) are obtained in another operation log.

このとき、分析部11は、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)の値が動作ログの組み合わせによらず常に一定かを、複数の動作ログの組み合わせで計算する。分析部11は、αが常に一定のとき、β=X1−αΣC1i・D1iであり、カラムCとDの値が、αΣC・D+βなる変形を施されてカラムXにINSERTされ、伝搬したものと分析する。   At this time, the analysis unit 11 calculates whether the value of α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) is always constant irrespective of the combination of the operation logs by using a combination of a plurality of operation logs. The analysis unit 11 analyzes that when α is always constant, β = X1−αΣC1i · D1i, and the values of the columns C and D are subjected to the deformation αΣC · D + β and are INSERTed into the column X and analyzed. I do.

(キー値を介して関係付く2種類のSELECT結果のカラムとINSERT値の関係推定)
画面単位ログで、2つの異なるSELECTの検索結果(ただしそれぞれの検索結果数が同一である組み合わせを選択する)それぞれで得られた特定のカラムC、Dの値(それぞれC1iとD1i、i=1..m、ただしmは検索結果数、とする)と、その後に実行したINSERTでカラムXに挿入した値(X1とする)が得られたものとする。また、同様にもう一つの動作ログ1回分から同一のカラムC、D、Xの値(C2j、D2j、j=1..n、ただしnは検索結果数、X2)が得られたものとする。
(Estimation of the relationship between the two types of SELECT result columns and INSERT values that are related via key values)
In the screen unit log, values of specific columns C and D (C1i and D1i, i = 1, respectively) obtained from two different SELECT search results (however, a combination having the same number of search results are selected) are obtained. M, where m is the number of search results), and the value (X1) inserted into the column X by the INSERT executed thereafter. Similarly, it is assumed that the same column C, D, and X values (C2j, D2j, j = 1... N, where n is the number of search results, X2) are obtained from another operation log. .

このとき、分析部11は、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)の値が動作ログの組み合わせによらず常に一定かを、複数の動作ログを用いて計算する。ただし、カラムC1i、D1iが含まれるレコード間を対応づけるキーとなるカラムがそれぞれのレコードに存在し、キー値で対応づくレコードからC1i、D1iを得る。C2j、D2jも同様である。分析部11は、αが常に一定の場合、β=X1−αΣC1i・D1iであり、カラムCとDの値がαΣC・D+βなる変形を施されてカラムXに伝搬したものと分析する。   At this time, the analysis unit 11 calculates, using a plurality of operation logs, whether the value of α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) is always constant regardless of the combination of the operation logs. However, a column serving as a key for associating records including the columns C1i and D1i is present in each record, and C1i and D1i are obtained from the record associated with the key value. The same applies to C2j and D2j. When α is always constant, the analysis unit 11 analyzes that β = X1−αΣC1i · D1i, and that the values of the columns C and D have been transformed to αΣC · D + β and propagated to the column X.

(キー値を介して関係付く画面パラメータとSELECT結果のカラムとINSERT値の関係推定)
画面単位ログで、画面パラメータで同種のパラメータ値が2種類以上繰り返される場合、その繰り返し回数と、検索結果数が同じSELECTがあり、画面パラメータの1つと検索結果のカラムが同じでキー関係になっているものとする。また、SELECT結果の特定のカラムCと、キーではない画面パラメータD(それぞれC1iとD1i、i=1..m、ただしmは検索結果数、とする)と、その後に実行したINSERTでカラムXに挿入した値(X1とする)とが得られるものとする。また、同様にもう一つの動作ログ1回分から同一のカラムC、D、Xの値(C2j、D2j、j=1..n、ただしnは検索結果数、X2)が得られるものとする。
(Estimation of the relationship between the screen parameter associated with the key value, the column of the SELECT result, and the INSERT value)
In the screen unit log, when two or more types of the same parameter value are repeated in the screen parameter, there is a SELECT in which the number of repetitions and the number of search results are the same, and one of the screen parameters and the column of the search result have the same key relationship. It is assumed that Also, a specific column C of the SELECT result, a screen parameter D that is not a key (C1i and D1i, i = 1..m, where m is the number of search results), and a column X in the INSERT executed thereafter And the value (X1) inserted in. Similarly, it is assumed that the same values of columns C, D, and X (C2j, D2j, j = 1..n, where n is the number of search results, X2) are obtained from another operation log.

このとき、分析部11は、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)の値が動作ログの組み合わせによらず常に一定かを、複数の動作ログを用いて計算する。分析部11は、αが常に一定の場合、β=X1−αΣC1i・D1iであり、画面パラメータCとSELECT結果Dの値がαΣC・D+βなる変形を施されてカラムXにINSERTされ伝搬したものと推定する。   At this time, the analysis unit 11 calculates, using a plurality of operation logs, whether the value of α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) is always constant regardless of the combination of the operation logs. When α is always constant, the analysis unit 11 determines that β = X1−αΣC1i · D1i, and that the values of the screen parameters C and the SELECT result D are transformed into αΣC · D + β and INSERTed into the column X and propagated. presume.

(UPDATEの場合)
分析部11は、値をUPDATEで設定するとき、次の処理でデータ伝搬を分析する。画面単位ログで、UPDATEより以前に実行した1個以上の同一SELECT文(ただしパラメータは異なる)が存在するものとする。このとき、分析部11は、検索結果ないし画面パラメータの1個ないし2個から計算される次の値がUPDATEで更新する値と常に一致する場合、そのカラムないし画面パラメータがUPDATE対象のカラムに伝搬したものと分析する。
・カラムないし画面パラメータが1個:α・C+β
・カラムないし画面パラメータが2個:αΣC・D+β
ただしα、βの計算方法は前述と同様である。
(In the case of UPDATE)
When setting the value by UPDATE, the analysis unit 11 analyzes data propagation in the following processing. It is assumed that one or more identical SELECT statements (but different parameters) executed before UPDATE exist in the screen unit log. At this time, when the next value calculated from one or two of the search result or the screen parameter always matches the value to be updated in the UPDATE, the analysis unit 11 transmits the column or the screen parameter to the UPDATE target column. Analyze that you did.
・ One column or screen parameter: α ・ C + β
・ Two columns or screen parameters: αΣCDD + β
However, the calculation method of α and β is the same as described above.

また、UPDATEより以前に実行した1個以上の同一SELECT文(ただしパラメータは異なる)が存在するとき、その検索結果ないし画面パラメータの1個ないし2個から計算される次の値がUPDATEで更新する増分値(新たに設定する値と直前のSELECT結果との差分)と常に一致する場合、そのカラムないし画面パラメータがUPDATE対象のカラムに伝搬すると分析する。   Also, when there is one or more identical SELECT statements (but different parameters) executed before the UPDATE, the next value calculated from the search result or one or two of the screen parameters is updated in the UPDATE. If the increment value (the difference between the newly set value and the immediately preceding SELECT result) always matches, the analysis is performed that the column or the screen parameter propagates to the UPDATE target column.

以上の説明では、ある画面をきっかけで実行したときの画面単位ログに含まれるSQL列は常に同じということを前提としている。しかしながら、画面から入力する値に応じて実行されるSQL列が異なる場合もある。この場合は、実行されたSQL群が同じである実行を同一画面と見なして、上記の処理を行う。   In the above description, it is assumed that the SQL string included in the screen log when a certain screen is triggered is always the same. However, the SQL column to be executed may be different depending on the value input from the screen. In this case, the above-described processing is performed by regarding the execution in which the executed SQL group is the same as the same screen.

図2は、実施形態にかかる分析支援装置1の動作例を示すフローチャートであり、上述したINSERTの場合の処理の一例である。図2に示すように、処理が開始されると、動作ログ取得部10は、分析対象の業務システム2からDBアクセスデータ20を参照して動作ログを取得する(S1)。取得する動作ログには、画面パラメータ(HTTPパラメータ)、SQLステートメント、SQLパラメータ、SQLがSELECTの場合は検索結果、とそれぞれを実行した時刻(実行順を判別可能な精度)がある。なお、動作ログ取得部10は、HTTPパラメータからは、GETないしPOSTメソッド要求で送信される、URLないしメッセージボディに記述されたクエリ文字列(パラメータ名と値の対)を抽出する。   FIG. 2 is a flowchart illustrating an operation example of the analysis support apparatus 1 according to the embodiment, and is an example of processing in the case of the above-described INSERT. As shown in FIG. 2, when the process is started, the operation log acquisition unit 10 acquires an operation log from the business system 2 to be analyzed with reference to the DB access data 20 (S1). The acquired operation log includes a screen parameter (HTTP parameter), an SQL statement, an SQL parameter, a search result when the SQL is SELECT, and a time at which each was executed (the accuracy with which the execution order can be determined). The operation log acquiring unit 10 extracts a query character string (a pair of a parameter name and a value) described in a URL or a message body, which is transmitted by a GET or POST method request, from the HTTP parameter.

次いで、分析部11は、画面パラメータをもとに、動作ログ取得部10が取得した動作ログを画面単位の画面単位ログに分割する。例えば、分析部11は、同一の画面を表示するURLへのアクセスごとに動作ログを分割する。そして、分析部11は、分割した画面単位ログからSQL列を抽出する(S2)。   Next, the analysis unit 11 divides the operation log acquired by the operation log acquisition unit 10 into screen unit logs on a screen basis based on the screen parameters. For example, the analysis unit 11 divides the operation log for each access to a URL that displays the same screen. Then, the analysis unit 11 extracts an SQL sequence from the divided screen unit log (S2).

次いで、分析部11は、画面単位ログごとに抽出されたSQL列をもとに、実行されたSQL文の組み合わせが同一の画面単位の動作ログの集合を作る(S3)。このとき、同一のSQL文(SQLパラメータは異なる)の実行回数の違いは考慮しないものとする。   Next, the analysis unit 11 creates a set of screen-based operation logs having the same combination of executed SQL statements based on the SQL string extracted for each screen-based log (S3). At this time, it is assumed that the difference in the number of executions of the same SQL statement (SQL parameters are different) is not considered.

次いで、分析部11は、作成した画面単位の動作ログの集合ごとに、S4〜S14の第1ループ処理を実行する。第1ループ処理が開始されると、分析部11は、公知の方法を用いて、INSERTするテーブルのカラムと、それ以前に実行したSELECT結果で得られたカラムとを関係づける(S5)。具体的には、分析部11は、あるカラムからSELECT文で読み出された値(y1)と、別のカラムにINSERT文で書き込む値(z1)とが常にy1=z1を満たす場合に、あるカラムから別のカラムへの直接的なデータ伝搬があるものと分析する。   Next, the analysis unit 11 executes the first loop processing of S4 to S14 for each set of the created operation logs for each screen. When the first loop process is started, the analysis unit 11 associates the columns of the table to be INSERTed with the columns obtained by the SELECT result executed before, using a known method (S5). Specifically, the analysis unit 11 has a case where the value (y1) read from a certain column by the SELECT statement and the value (z1) written by another in the INSERT statement to another column always satisfy y1 = z1. Analyze that there is direct data propagation from one column to another.

次いで、分析部11は、S5において直接的なデータ伝搬があるものと分析されず、関係付かなかったカラム(X)に対して、S6〜S13の第2ループ処理を実行する。   Next, the analysis unit 11 executes the second loop processing of S6 to S13 on the column (X) that has not been analyzed in S5 as having direct data propagation and has not been related.

第2ループ処理では、分析部11は、「カラム1個との対応付け」の処理(S7)、「画面パラメータ1個との対応付け」の処理(S8)を実行する。また、分析部11は、「画面パラメータが持つ複数の繰り返しパラメータとINSERT値の関係推定」の処理(S9)、「SELECT結果の2つのカラムとINSERT値の関係推定」の処理(S10)を実行する。また、分析部11は、「キー値を介して関係付く2種類のSELECT結果のカラムとINSERT値の関係推定」の処理(S11)、「キー値を介して関係付く画面パラメータとSELECT結果のカラムとINSERT値の関係推定」の処理(S12)を実行する。   In the second loop process, the analysis unit 11 executes a process of “association with one column” (S7) and a process of “association with one screen parameter” (S8). In addition, the analysis unit 11 executes a process of “estimating a relationship between a plurality of repetition parameters of the screen parameter and the INSERT value” (S9) and a process of “estimating a relationship between two columns of the SELECT result and the INSERT value” (S10). I do. In addition, the analysis unit 11 performs the process of “estimating the relationship between the two types of SELECT result columns and the INSERT value that are related via the key value” (S11), and the “screen parameter and the SELECT result column that are related via the key value. (S12) of "estimation of relationship between INSERT and INSERT value".

第1、第2のループ処理が終了したところで、出力部13は、第1、第2のループ処理による分析部11の分析結果をディスプレイへの表示や、プリンターによる印字により出力する(S15)。具体的には、出力部13は、分析部11の分析結果をもとに、業務用DBの所定のカラムと、このカラムへのデータ伝搬があるものと分析された画面パラメータ内の変数値や業務用DBのカラムとの対応関係を示す画像を出力する。   When the first and second loop processes are completed, the output unit 13 outputs the analysis result of the analysis unit 11 by the first and second loop processes on a display or by printing by a printer (S15). Specifically, based on the analysis result of the analysis unit 11, the output unit 13 determines a predetermined column of the business DB and a variable value in a screen parameter analyzed as having data to be transmitted to this column. An image indicating the correspondence with the column of the business DB is output.

一例として、出力部13は、業務用DBのカラムおよび画面パラメータ内の変数値を列挙したテーブルについて、対応関係のあるカラムや変数値同士を線で結びつけた画像を表示する。なお、直接的なデータ伝搬があるものと分析されたカラムや変数値同士の対応関係を示す画像の出力態様と、間接的なデータ伝搬があるものと分析されたカラムや変数値同士の対応関係を示す画像の出力態様とは互いに異なるものであってもよい。例えば、出力部13は、対応関係のあるカラムや変数値同士を線で結びつけた画像として表示する場合、直接的なデータ伝搬があるものと分析されたカラムや変数値同士は実線で表示し、間接的なデータ伝搬があるものと分析されたカラムや変数値同士は破線で表示してもよい。このように、直接的なデータ伝搬があるものと分析された分析結果と、間接的なデータ伝搬があるものと分析された分析結果との出力態様を互いに異なるようにすることで、分析結果をより見やすくできる。   As an example, the output unit 13 displays an image in which columns and variable values having a corresponding relationship are connected by a line in a table listing the columns of the business DB and the variable values in the screen parameters. The output mode of the image showing the correspondence between the columns and variable values analyzed with direct data propagation, and the correspondence between the analyzed columns and variable values with indirect data propagation. May be different from each other. For example, when the output unit 13 displays an image in which columns and variable values having a corresponding relationship are connected by a line, columns and variable values analyzed as having direct data propagation are displayed as solid lines, Columns and variable values analyzed as having indirect data propagation may be indicated by broken lines. In this way, by making the output form of the analysis result analyzed as having direct data propagation different from that of the analysis result having indirect data propagation different from each other, the analysis result is obtained. It can be easier to see.

図3は、「カラム1個との対応付け」の処理(S7)を示すフローチャートである。図3に示すように、S7の処理が開始されると、分析部11は、処理対象の動作ログ集合から、画面をきっかけに処理対象のカラム(X)へINSERTするまでに実行されたSELECT文の検索結果に含まれるカラムの集合(SetC)を作る(S20)。   FIG. 3 is a flowchart showing the processing of "association with one column" (S7). As shown in FIG. 3, when the processing of S7 is started, the analysis unit 11 executes a SELECT statement executed from the set of operation log to be processed until the screen is triggered to INSERT into the column (X) to be processed. A set of columns (SetC) included in the search result is created (S20).

次いで、分析部11は、カラムの集合(SetC)に含まれるカラム(C)ごとに、S21〜S26のループ処理を実行する。ループ処理が開始されると、分析部11は、画面単位ログを一つ選び、SELECT結果のカラム(C)の値(c1Val)とINSERTで挿入するカラム(X)の値(x1Val)を取得する(S22)。   Next, the analysis unit 11 executes a loop process of S21 to S26 for each column (C) included in the column set (SetC). When the loop process is started, the analysis unit 11 selects one screen unit log and acquires the value (c1Val) of the column (C) of the SELECT result and the value (x1Val) of the column (X) to be inserted by INSERT. (S22).

次いで、分析部11は、S22で用いたもの以外の画面単位ログごとに、SELECT結果のカラム(C)の値(c2Val)とINSERTで挿入するカラム(X)の値(x2Val)を用いて次の計算を行い、αの値を求める(S23)。
α=(x1Val−x2Val)/(c1Val−c2Val)
Next, the analyzing unit 11 uses the value (c2Val) of the column (C) of the SELECT result and the value (x2Val) of the column (X) to be inserted by INSERT for each screen unit log other than the log used in S22. Is calculated to determine the value of α (S23).
α = (x1Val−x2Val) / (c1Val−c2Val)

次いで、分析部11は、全ての動作ログ(画面単位ログ)でαが同じか否かを判定する(S24)。αが同一値である場合(S24:YES)、分析部11は、カラム(C)の値が所定の演算を施されてカラム(X)にINSERTされて伝搬したものと分析する。したがって、分析部11は、カラム(C)からカラム(X)へ間接的なデータ伝搬があったものと推定し(S25)、次のカラムへと処理をループする(S26)。なお、αが同一値でない場合(S24:NO)、分析部11は、カラム(C)からカラム(X)へ間接的なデータ伝搬があったものとは推定せず、次のカラムへと処理をループする。   Next, the analysis unit 11 determines whether or not α is the same in all the operation logs (screen unit logs) (S24). If α is the same value (S24: YES), the analysis unit 11 analyzes that the value of the column (C) has been subjected to a predetermined operation, and has been inserted into the column (X) and propagated. Therefore, the analysis unit 11 estimates that there has been indirect data propagation from the column (C) to the column (X) (S25), and loops the processing to the next column (S26). If α is not the same value (S24: NO), the analysis unit 11 does not presume that indirect data has propagated from the column (C) to the column (X), and proceeds to the next column. Loop.

図4は、「画面パラメータ1個との対応付け」の処理(S8)を示すフローチャートである。図4に示すように、S8の処理が開始されると、分析部11は、処理対象の動作ログ集合から、画面パラメータの集合(SetC)を作る(S30)。   FIG. 4 is a flowchart showing the process (S8) of "association with one screen parameter". As shown in FIG. 4, when the process of S8 is started, the analysis unit 11 creates a set of screen parameters (SetC) from the set of operation logs to be processed (S30).

次いで、分析部11は、作成した集合(SetC)に含まれる画面パラメータ(C)ごとに、S31〜S36のループ処理を実行する。ループ処理が開始されると、分析部11は、画面単位ログを一つ選び、画面パラメータ(C)の値(c1Val)とINSERTで挿入するカラム(X)の値(x1Val)を取得する(S32)。   Next, the analysis unit 11 performs a loop process of S31 to S36 for each screen parameter (C) included in the created set (SetC). When the loop process is started, the analysis unit 11 selects one screen unit log and acquires the value (c1Val) of the screen parameter (C) and the value (x1Val) of the column (X) to be inserted by INSERT (S32). ).

次いで、分析部11は、S32で用いたもの以外の画面単位ログごとに、画面パラメータ(C)の値(c2Val)とINSERTで挿入するカラム(X)の値(x2Val)を用いて次の計算を行い、αの値を求める(S33)。
α=(x1Val−x2Val)/(c1Val−c2Val)
Next, the analysis unit 11 calculates the next calculation using the value (c2Val) of the screen parameter (C) and the value (x2Val) of the column (X) to be inserted by INSERT for each screen unit log other than the log used in S32. To obtain the value of α (S33).
α = (x1Val−x2Val) / (c1Val−c2Val)

次いで、分析部11は、全ての動作ログ(画面単位ログ)でαが同じか否かを判定する(S34)。αが同一値である場合(S34:YES)、分析部11は、画面パラメータ(C)の値が所定の演算を施されてカラム(X)にINSERTされて伝搬したものと分析する。したがって、分析部11は、画面パラメータ(C)からカラム(X)へ間接的なデータ伝搬があったと推定し(S35)、次の画面パラメータへと処理をループする。なお、αが同一値でない場合(S34:NO)、分析部11は、画面パラメータ(C)からカラム(X)へ間接的なデータ伝搬があったものとは推定せず、次の画面パラメータへと処理をループする。   Next, the analysis unit 11 determines whether or not α is the same in all operation logs (screen unit logs) (S34). When α is the same value (S34: YES), the analysis unit 11 analyzes that the value of the screen parameter (C) has been subjected to a predetermined operation and has been inserted into the column (X) and propagated. Therefore, the analysis unit 11 estimates that there has been indirect data propagation from the screen parameter (C) to the column (X) (S35), and loops the processing to the next screen parameter. If α is not the same value (S34: NO), the analysis unit 11 does not estimate that there has been indirect data propagation from the screen parameter (C) to the column (X), and proceeds to the next screen parameter. And loop the process.

図5は、「画面パラメータが持つ複数の繰り返しパラメータとINSERT値の関係推定」の処理(S9)を示すフローチャートである。図5に示すように、S9の処理が開始されると、分析部11は、画面パラメータから、同一回数出現するパラメータ名の組を取得する(S40)。次いで、分析部11は、同一回数出現するパラメータ名の組ごとに、パラメータ2個の組み合わせを作成する(S41)。   FIG. 5 is a flowchart illustrating the process (S9) of “estimating the relationship between a plurality of repetition parameters of the screen parameter and the INSERT value”. As shown in FIG. 5, when the process of S9 is started, the analysis unit 11 acquires a set of parameter names that appear the same number of times from the screen parameters (S40). Next, the analysis unit 11 creates a combination of two parameters for each pair of parameter names that appear the same number of times (S41).

次いで、分析部11は、作成した組み合わせごとに、S42〜S47のループ処理を実行する。ループ処理が開始されると、分析部11は、画面単位ログを一つ選び、パラメータ名2個それぞれの値(それぞれC1iとD1i、i=1..m、ただしmはパラメータの繰り返し数)を取り出す。そして、分析部11は、積和値(ΣC1i・D1i)を計算する(S43)。また、分析部11は、INSERTでカラム(X)に挿入した値(X1)を取得する。   Next, the analysis unit 11 executes a loop process of S42 to S47 for each created combination. When the loop processing is started, the analysis unit 11 selects one screen unit log, and calculates the values of two parameter names (C1i and D1i, i = 1..m, respectively, where m is the number of repetitions of the parameter). Take out. Then, the analysis unit 11 calculates the sum of products (ΣC1i · D1i) (S43). Further, the analysis unit 11 acquires the value (X1) inserted into the column (X) by INSERT.

次いで、分析部11は、S43で用いたもの以外の画面単位ログごとに、画面パラメータから、パラメータ名2個それぞれの値(それぞれC2iとD2i、i=1..n、ただしnはパラメータの繰り返し数)を順に取り出す。また、分析部11は、INSERTでカラム(X)に挿入した値(X2)を取得する。そして、分析部11は、次の計算を行い、αの値を求める(S44)。
α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)
Next, for each screen unit log other than the one used in S43, the analysis unit 11 determines, from the screen parameters, the values of each of the two parameter names (C2i and D2i, i = 1. Number) in order. Further, the analysis unit 11 acquires the value (X2) inserted into the column (X) by INSERT. Then, the analysis unit 11 performs the following calculation to obtain the value of α (S44).
α = (X1-X2) / (ΣC1i · D1i-ΣC2j · D2j)

次いで、分析部11は、全ての動作ログ(画面単位ログ)でαが同じか否かを判定する(S45)。αが同一値である場合(S45:YES)、分析部11は、2つの画面パラメータの値が所定の演算を施されてカラム(X)にINSERTされて伝搬したものと分析する。したがって、分析部11は、2つの画面パラメータからカラム(X)へ間接的なデータ伝搬があったと推定し(S46)、次の組み合わせへと処理をループする。なお、αが同一値でない場合(S45:NO)、分析部11は、2つの画面パラメータからカラム(X)へ間接的なデータ伝搬があったものとは推定せず、次の組み合わせへと処理をループする。   Next, the analysis unit 11 determines whether or not α is the same in all the operation logs (screen unit logs) (S45). If α is the same value (S45: YES), the analysis unit 11 analyzes that the values of the two screen parameters have been subjected to a predetermined operation, and have been INSERTed and propagated to the column (X). Therefore, the analysis unit 11 estimates that there has been indirect data propagation from the two screen parameters to the column (X) (S46), and loops the processing to the next combination. If α is not the same value (S45: NO), the analysis unit 11 does not presume that indirect data has propagated from the two screen parameters to the column (X), and proceeds to the next combination. Loop.

図6は、「SELECT結果の2つのカラムとINSERT値の関係推定」の処理(S10)を示すフローチャートである。図6に示すように、S10の処理が開始されると、分析部11は、画面単位ログから、カラム(X)に対してINSERTを実行する前に実行するSELECTを探し、その検索結果であるカラムから、カラムを2つ選択した組み合わせ(C、D)を作成する(S50)。   FIG. 6 is a flowchart showing the process (S10) of "estimating the relationship between the two columns of the SELECT result and the INSERT value". As shown in FIG. 6, when the process of S10 is started, the analysis unit 11 searches the screen unit log for a SELECT to be executed before executing the INSERT for the column (X), and the search result is obtained. From the columns, a combination (C, D) in which two columns are selected is created (S50).

次いで、分析部11は、作成した組み合わせごとに、S51〜S56のループ処理を実行する。ループ処理が開始されると、分析部11は、画面単位ログを一つ選び、カラム名2個に対応するSELECT文の検索結果値(それぞれC1iとD1i、i=1..m、ただしmは検索結果数)を取り出し、積和値(ΣC1i・D1i)を計算する(S52)。また、分析部11は、INSERTでカラム(X)に挿入した値(X1)を取得する。   Next, the analysis unit 11 executes a loop process from S51 to S56 for each created combination. When the loop processing is started, the analysis unit 11 selects one screen unit log, and retrieves a SELECT statement search result value corresponding to two column names (C1i and D1i, i = 1. The number of search results) is extracted, and the sum of products (ΣC1i · D1i) is calculated (S52). Further, the analysis unit 11 acquires the value (X1) inserted into the column (X) by INSERT.

次いで、分析部11は、S52で用いたもの以外の画面単位ログごとに、カラム名2個に対応するSELECT文の検索結果値(それぞれC2iとD2i、i=1..n、ただしnはパラメータの繰り返し数)を順に取り出す。また、INSERTでカラム(X)に挿入した値X2を取得する。そして、分析部11は、次の計算を行い、αの値を求める(S53)。
α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)
Next, the analysis unit 11 retrieves a SELECT statement search result value corresponding to two column names (C2i and D2i, i = 1... N, respectively, where n is a parameter) for each screen unit log other than the one used in S52. ) Is taken out in order. Further, the value X2 inserted into the column (X) is acquired by INSERT. Then, the analysis unit 11 calculates the value of α by performing the following calculation (S53).
α = (X1-X2) / (ΣC1i · D1i-ΣC2j · D2j)

次いで、分析部11は、全ての動作ログ(画面単位ログ)でαが同じか否かを判定する(S54)。αが同一値である場合(S54:YES)、分析部11は、2つのカラム(C、D)の値が所定の演算を施されてカラム(X)にINSERTされて伝搬したものと分析する。したがって、分析部11は、2つのカラム(C、D)からカラム(X)へ間接的なデータ伝搬があったと推定し(S55)、次の組み合わせへと処理をループする。なお、αが同一値でない場合(S54:NO)、分析部11は、2つのカラム(C、D)からカラム(X)へ間接的なデータ伝搬があったものとは推定せず、次の組み合わせへと処理をループする。   Next, the analysis unit 11 determines whether or not α is the same in all operation logs (screen unit logs) (S54). If α is the same value (S54: YES), the analysis unit 11 analyzes that the values of the two columns (C, D) have been subjected to a predetermined operation and have been inserted into the column (X) and propagated. . Therefore, the analysis unit 11 estimates that there has been indirect data propagation from the two columns (C, D) to the column (X) (S55), and loops the processing to the next combination. If α is not the same value (S54: NO), the analysis unit 11 does not presume that indirect data transmission from the two columns (C, D) to the column (X), and Loop through the process to the combination.

図7は、「キー値を介して関係付く2種類のSELECT結果のカラムとINSERT値の関係推定」の処理(S11)を示すフローチャートである。図7に示すように、S11の処理が開始されると、分析部11は、画面単位ログを一つ選び、カラム(X)に挿入するINSERTより前に実行したSELECT文で検索対象となり、検索結果が1個以上であるテーブルを探す(S60)。分析部11は、S60におけるテーブルの検索により、条件に該当する複数のテーブル(テーブル群)を得る。   FIG. 7 is a flowchart illustrating the process (S11) of “estimating the relationship between two types of SELECT result columns and INSERT values associated via key values”. As shown in FIG. 7, when the processing in S11 is started, the analysis unit 11 selects one screen-based log and becomes a search target by a SELECT statement executed before the INSERT to be inserted into the column (X). A table with one or more results is searched (S60). The analysis unit 11 obtains a plurality of tables (table group) corresponding to the condition by searching the tables in S60.

次いで、分析部11は、S60で得られたテーブル群の中から、異なる2個のテーブルの組み合わせを作り、片方のテーブルのカラム値がもう一方のテーブルのカラム値に含まれる関係になっているテーブル/カラム対(K1、K2)を抽出する(S61)。   Next, the analysis unit 11 creates a combination of two different tables from the table group obtained in S60, and has a relationship in which the column values of one table are included in the column values of the other table. The table / column pair (K1, K2) is extracted (S61).

次いで、分析部11は、抽出されたテーブル/カラム対(K1、K2)ごとに、S62〜S69のループ処理を実行する。ループ処理が開始されると、分析部11は、テーブル/カラム対(K1、K2)の2つのテーブルからの検索結果から、カラム対のそれぞれの値(カラム値)が同じである検索結果をそれぞれ得る(S63)。   Next, the analysis unit 11 executes a loop process of S62 to S69 for each extracted table / column pair (K1, K2). When the loop processing is started, the analysis unit 11 extracts, from the search results from the two tables of the table / column pair (K1, K2), the search results in which the respective values (column values) of the column pairs are the same. Obtained (S63).

次いで、分析部11は、2つのテーブルそれぞれから、S63で得られたカラム対(K1、K2)以外のカラム(C、Dとする)を1個ずつ選択する(S64)。   Next, the analysis unit 11 selects columns (C, D) other than the column pair (K1, K2) obtained in S63 one by one from each of the two tables (S64).

次いで、分析部11は、K1とK2で対応付く検索結果からS64で選択した2個のカラムの値(C、D)から、それぞれC1iとD1i、i=1..m、ただしmは検索結果数とし、積和値ΣC1i・D1iを計算する。また、分析部11は、INSERTでカラム(X)に挿入した値(X1)を取得する(S65)。   Next, the analysis unit 11 obtains C1i, D1i, i = 1... From the values (C, D) of the two columns selected in S64 from the search results associated with K1 and K2. . m, where m is the number of search results, and the product sum ΣC1i · D1i is calculated. Further, the analysis unit 11 acquires the value (X1) inserted into the column (X) by INSERT (S65).

次いで、分析部11は、最初(S60)で選択した画面単位ログ以外の画面単位ログに対してS61〜S65と同様の処理を行い、積和値ΣC2i・D2iとINSERTでカラム(X)に挿入した値(X2)を取得する。そして、分析部11は、次の計算を行い、αの値を求める(S66)。
α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)
Next, the analysis unit 11 performs the same processing as that of S61 to S65 on the screen unit log other than the screen unit log selected in the first (S60), and inserts the product sum value ΣC2i · D2i and INSERT into the column (X). Obtained value (X2). Then, the analysis unit 11 performs the following calculation to obtain the value of α (S66).
α = (X1-X2) / (ΣC1i · D1i-ΣC2j · D2j)

次いで、分析部11は、全ての動作ログ(画面単位ログ)でαが同じか否かを判定する(S67)。αが同一値である場合(S67:YES)、分析部11は、2つのカラム(C、D)の値が所定の演算を施されてカラム(X)にINSERTされて伝搬したものと分析する。したがって、分析部11は、2つのカラム(C、D)からカラム(X)へ間接的なデータ伝搬があったと推定し(S68)、次のカラム対へと処理をループする。なお、αが同一値でない場合(S67:NO)、分析部11は、2つのカラム(C、D)からカラム(X)へ間接的なデータ伝搬があったものとは推定せず、次のカラム対へと処理をループする。   Next, the analysis unit 11 determines whether or not α is the same in all the operation logs (screen unit logs) (S67). When α is the same value (S67: YES), the analysis unit 11 analyzes that the values of the two columns (C, D) have been subjected to a predetermined operation and have been inserted into the column (X) and propagated. . Therefore, the analysis unit 11 estimates that there has been indirect data propagation from the two columns (C, D) to the column (X) (S68), and loops the process to the next column pair. If α is not the same value (S67: NO), the analyzing unit 11 does not estimate that there has been indirect data propagation from the two columns (C, D) to the column (X), and Loop through the process to column pairs.

図8は、「キー値を介して関係付く画面パラメータとSELECT結果のカラムとINSERT値の関係推定」の処理(S12)を示すフローチャートである。図8に示すように、S12の処理が開始されると、分析部11は、画面単位ログを一つ選び、カラム(X)に挿入するINSERTより前に実行したSELECT文で検索対象となり、検索結果が1個以上であるテーブル(テーブル群)を取得する(S70)。   FIG. 8 is a flowchart showing the process (S12) of "estimating the relationship between the screen parameter associated with the key value, the column of the SELECT result, and the INSERT value". As shown in FIG. 8, when the process of S12 is started, the analysis unit 11 selects one screen-based log and becomes a search target by a SELECT sentence executed before the INSERT to be inserted into the column (X). A table (table group) having one or more results is obtained (S70).

次いで、分析部11は、画面パラメータから、同一回数出現するパラメータ名の組を取得し、同一回数出現するパラメータ名の組をカラム名、繰り返し毎のパラメータ値の組をSELECTの検索結果と見なす(S71)。   Next, the analysis unit 11 acquires, from the screen parameters, a set of parameter names that appear the same number of times, regards the set of parameter names that appear the same number of times as a column name, and considers the set of parameter values for each repetition as a search result of SELECT ( S71).

次いで、分析部11は、S70で取得したテーブル群と、S71で取得した画面パラメータの組を擬似的にカラム名とSELECT検索結果と見なしたものの組み合わせを作成する。そして、分析部11は、テーブルのカラム値が画面パラメータ値に含まれる関係になっているテーブル/画面パラメータ対(K1、K2)を抽出する(S72)。   Next, the analysis unit 11 creates a combination of the table group acquired in S70 and the set of the screen parameters acquired in S71 as a column name and a SELECT search result in a pseudo manner. Then, the analysis unit 11 extracts a table / screen parameter pair (K1, K2) in which the column value of the table is included in the screen parameter value (S72).

分析部11は、S72で抽出されたテーブル/画面パラメータ対(K1、K2)について、「キー値を介して関係付く2種類のSELECT結果のカラムとINSERT値の関係推定」の処理(S11)におけるS64〜S68と同様の処理を行う。   The analysis unit 11 performs the process (S11) of “estimating the relationship between the column of two types of SELECT results and the INSERT value related via the key value” for the table / screen parameter pair (K1, K2) extracted in S72. The same processing as S64 to S68 is performed.

図9は、実施形態にかかる分析支援装置1の動作例を示すフローチャートであり、上述したUPDATEの場合の処理の一例である。図9に示すように、画面単位の動作ログの集合を作るまでの処理(S1〜S3)は、INSERTの場合の処理(図2参照)と同様に行う。   FIG. 9 is a flowchart illustrating an operation example of the analysis support apparatus 1 according to the embodiment, and is an example of a process in the case of the above-described UPDATE. As shown in FIG. 9, the processing (S1 to S3) until a set of operation logs is created for each screen is performed in the same manner as the processing for INSERT (see FIG. 2).

次いで、分析部11は、作成した画面単位の動作ログの集合ごとに、S80〜S84のループ処理を実行する。ループ処理が開始されると、分析部11は、処理対象の動作ログの集合で、UPDATEを実行し、かつUPDATEの実行前にUPDATE対象のテーブルに対してSELECTを実行する組み合わせを抽出する。また、分析部11は、SELECT結果のカラム値がUPDATEで更新するカラム値と異なるカラム(X)を抽出する(S81)。   Next, the analysis unit 11 executes a loop process of S80 to S84 for each set of the created operation logs for each screen. When the loop processing is started, the analysis unit 11 extracts a combination of executing the UPDATE and executing the SELECT on the UPDATE target table before executing the UPDATE from the set of operation logs to be processed. The analysis unit 11 extracts a column (X) in which the column value of the SELECT result is different from the column value updated by UPDATE (S81).

次いで、分析部11は、UPDATE対象のテーブルで、S81で抽出したカラム(X)に対して、「直接的に対応がつかない値をINSERTで挿入する場合」の処理(S7〜S12)を、INSERT値の代わりにUPDATEで更新する値に置き換えて実行する(S82)。   Next, the analysis unit 11 performs the process (S7 to S12) of “when a value that does not directly correspond is inserted by INSERT” in the column (X) extracted in S81 in the UPDATE target table, The process is executed by replacing the INSERT value with a value to be updated by UPDATE (S82).

次いで、分析部11は、UPDATE対象のテーブルで、S81で抽出したカラム(X)に対して、「直接的に対応がつかない値をINSERTで挿入する場合」の処理(S7〜S12)を、INSERT値の代わりに(UPDATEで更新する値)−(SELECTの検索結果値)に置き換えて実行する(S83)。   Next, the analysis unit 11 performs the process (S7 to S12) of “when a value that does not directly correspond is inserted by INSERT” in the column (X) extracted in S81 in the UPDATE target table, Instead of the INSERT value, it is replaced with (value to be updated by UPDATE)-(SELECT search result value) and executed (S83).

上記のループ処理が終了したところで、出力部13は、ループ処理による分析部11の分析結果をディスプレイへの表示や、プリンターによる印字により出力する(S15)。   When the above loop processing is completed, the output unit 13 outputs the analysis result of the analysis unit 11 by the loop processing on a display or by printing by a printer (S15).

ここで、具体的な実施例を参照して分析支援装置1における分析処理を説明する。なお、以下で説明する実施例では、分析対象の業務用DBのテーブルが持つカラムは全て数値型であるものと仮定する。   Here, the analysis processing in the analysis support apparatus 1 will be described with reference to a specific embodiment. In the embodiment described below, it is assumed that all columns in the table of the business DB to be analyzed are of numeric type.

図10は、業務用DB21のテーブル構成を例示する図である。図10に示すように、業務用DB21は、受注業務を指向したものであり、商品マスタテーブルT1、明細テーブルT2、受注テーブルT3および請求テーブルT4を含むものである。なお、業務用DB21において、説明で関係しないカラムについては「…」で省略している。   FIG. 10 is a diagram illustrating a table configuration of the business DB 21. As shown in FIG. 10, the business DB 21 is directed to an order receiving business, and includes a product master table T1, a detail table T2, an order receiving table T3, and a billing table T4. Note that, in the business DB 21, columns that are not relevant in the description are omitted with "...".

(カラム1個とINSERT値の関係推定について)
図11は、動作ログ(D11、D12、D13)の一例を説明する説明図である。図11に示すように、分析対象の業務システム2から取得した動作ログがD11、D12、D13の内容(値)であったものとする。なお、動作ログD11、D12、D13は時系列に出力されると仮定し、画面パラメータとSQLの実行ごとに実行順(seq)が割り当てられるものとする(実行した時刻を用いてもよい)。
(Estimation of relationship between one column and INSERT value)
FIG. 11 is an explanatory diagram illustrating an example of the operation log (D11, D12, D13). As shown in FIG. 11, it is assumed that the operation log acquired from the business system 2 to be analyzed is the contents (values) of D11, D12, and D13. It is assumed that the operation logs D11, D12, and D13 are output in chronological order, and the execution order (seq) is assigned to each execution of the screen parameters and SQL (the execution time may be used).

図12は、データテーブル(T11、T12、T13)の一例を説明する説明図である。図12に示すように、データテーブルT11は、動作ログD11、D12、D13から画面パラメータごとにID(urlNo)と、実行したURLと、seqをまとめたものである。また、データテーブルT12は、同様に、SQLごとにID(sqlNo)、実行したSQL、そのときのバインド値と検索結果、SQLに対応する画面パラメータのID、seqをまとめたものである。データテーブルT13はカラムの集合(SetC)である。   FIG. 12 is an explanatory diagram illustrating an example of the data tables (T11, T12, and T13). As shown in FIG. 12, the data table T11 is a table in which the IDs (urlNo), the executed URLs, and the seq for each screen parameter are collected from the operation logs D11, D12, and D13. Similarly, the data table T12 summarizes the ID (sqlNo) for each SQL, the executed SQL, the bind value and the search result at that time, the ID of the screen parameter corresponding to the SQL, and the seq. The data table T13 is a set of columns (SetC).

データテーブルT11より、本実施例では、画面は全て同じであり、実行されたSQL(SELECT1個、INSERT1個)もバインド値を除くと同一であるので、これらはSQLが同一な画面単位の動作ログの集合になっている。   According to the data table T11, in this embodiment, the screens are all the same, and the executed SQL (one SELECT, one INSERT) is the same except for the bind value. Is a set of

これらに対して、公知の方法でINSERTするテーブルのカラムとそれに先立つSELECTの対応付けを行うと、先行するSELECTの検索結果の伝票番号カラムの値が、後続のINSERTの伝票番号の値と常に一致することが検出できる。このため、分析支援装置1は、S5において、受注テーブルT3の伝票番号カラムから、請求テーブルT4の伝票番号カラムへ直接的なデータ伝搬があると推定する。   When a column of the table to be inserted and a SELECT preceding the column are associated with each other by a known method, the value of the slip number column of the search result of the preceding SELECT always matches the value of the slip number of the subsequent INSERT. Can be detected. Therefore, in S5, the analysis support device 1 estimates that there is direct data propagation from the slip number column of the order receiving table T3 to the slip number column of the billing table T4.

上記で関係付かなかった請求テーブルT4の請求額カラムに関して、INSERT以前に実行されたSELECT結果に含まれるカラム集合SetCは(伝票番号、税抜き額、顧客ID)である。分析支援装置1の分析部11は、これらの集合SetCごとに、S4〜S14のループ処理を行って間接的なデータ伝搬についての分析を行う。   Regarding the billing amount column of the billing table T4 not related above, the column set SetC included in the SELECT result executed before the INSERT is (slip number, tax-excluded amount, customer ID). The analysis unit 11 of the analysis support device 1 performs a loop process of S4 to S14 for each of these sets SetC to analyze indirect data propagation.

まず、伝票番号カラムと請求額カラムに伝搬関係があるかを調べる。データテーブルT12のseqNo=1のデータから、伝票番号=101、請求額=25340である。よって、c1Val=101、x1Val=25340である。次に、seqNo=2のデータから同様に、c2Val=102、x2Val=4928である。これらからαの値を求めると、α=(25340−4928)/(101−102)=−20412となる。   First, it is checked whether the slip number column and the billing amount column have a propagation relationship. From the data of seqNo = 1 in the data table T12, the slip number = 101 and the charged amount = 25340. Therefore, c1Val = 101 and x1Val = 25340. Next, similarly, c2Val = 102 and x2Val = 4928 from the data of seqNo = 2. When the value of α is obtained from these, α = (25340−4928) / (101−102) = − 20412.

同様に、seqNo=3のデータから、c2Val=103、x2Val=1580である。これらからαの値を求めると、α=(25340−1580)/(101−103)=−11880となる。よって、αが一定ではないので、この組み合わせは伝搬の関係になっていないことが分かる。   Similarly, from the data of seqNo = 3, c2Val = 103 and x2Val = 1580. When the value of α is calculated from these, α = (25340-1580) / (101-103) =-11880. Therefore, since α is not constant, it can be seen that this combination does not have a propagation relationship.

次に、税抜き額カラムと請求額カラムに伝搬関係があるかを調べる。「動作ログ1」から、税抜き額=c1Val=23000、請求額=x1Val=25340である。次に、「動作ログ2」からc2Val=4100、x2Val=4928である。これらからαの値を求めると、α=(25340−4928)/(23000−4100)=1.08となる。   Next, it is checked whether there is a propagation relationship between the tax-excluded amount column and the invoice amount column. From the “operation log 1”, the tax-excluded amount = c1Val = 23000 and the charged amount = x1Val = 25340. Next, c2Val = 4100 and x2Val = 4928 from “operation log 2”. When the value of α is calculated from these, α = (25340−4928) / (23000-4100) = 1.08.

同様に、「動作ログ3」から、c2Val=1000、x2Val=1580である。これらからαの値を求めると、α=(25340−1580)/(23000−1000)=1.08となる。よって、αが一定であり、β=x1Val−α・c1Val=500である。以上より、この組み合わせは間接的な伝搬関係があり、税抜き額*1.08+500=請求額であると推定できる。   Similarly, from “operation log 3”, c2Val = 1000 and x2Val = 1580. When the value of α is obtained from these, α = (25340-1580) / (23000-1000) = 1.08. Therefore, α is constant, and β = x1Val−α · c1Val = 500. From the above, this combination has an indirect propagation relationship, and it can be estimated that the tax-excluded amount * 1.08 + 500 = the billing amount.

なお、顧客IDカラムと請求額カラムの組み合わせでは、「動作ログ1」から、顧客ID=c1Val=2001、請求額=x1Val=25340である。次に、「動作ログ2」からc2Val=1507、x2Val=4928である。これらからαの値を求めると、α=(25340−4928)/(2001−1507)=41.3となる。同様に、「動作ログ3」からc2Val=3900、x2Val=1580である。これらからαの値を求めると、α=(25340−1580)/(2001−3900)=−12.5となる。よって、αが一定ではないので、この組み合わせは伝搬の関係になっていないことが分かる。   In the combination of the customer ID column and the billing amount column, the customer ID = c1Val = 2001 and the billing amount = x1Val = 25340 from “Operation log 1”. Next, c2Val = 1507 and x2Val = 4928 from "operation log 2". When the value of α is obtained from these, α = (25340−4928) / (2001-1507) = 41.3. Similarly, c2Val = 3900 and x2Val = 1580 from “operation log 3”. When the value of α is obtained from these, α = (25340-1580) / (2001-3900) = − 12.5. Therefore, since α is not constant, it can be seen that this combination does not have a propagation relationship.

(画面パラメータ1個とINSERT値の関係推定について)
図13は、動作ログ(D21、D22、D23)の一例を説明する説明図である。図13に示すように、分析対象の業務システム2から取得した動作ログがD21、D22、D23の内容(値)であったものとする。
(Estimation of relationship between one screen parameter and INSERT value)
FIG. 13 is an explanatory diagram illustrating an example of the operation log (D21, D22, D23). As shown in FIG. 13, it is assumed that the operation logs acquired from the business system 2 to be analyzed are the contents (values) of D21, D22, and D23.

図14は、データテーブル(T21、T22、T23)の一例を説明する説明図である。図14に示すように、データテーブルT21は、動作ログD21、D22、D23から画面パラメータごとにID(urlNo)と、実行したURLと、seqをまとめたものである。また、データテーブルT22は、同様に、SQLごとにID(sqlNo)、実行したSQL、そのときのバインド値と検索結果、SQLに対応する画面パラメータのID、seqをまとめたものである。データテーブルT23はカラムの集合(SetC)である。具体的には、動作ログD21、D22、D23のURLからHTTPパラメータを抽出した集合SetCは(ORDER,PRICE)である。   FIG. 14 is an explanatory diagram illustrating an example of a data table (T21, T22, T23). As shown in FIG. 14, the data table T21 summarizes the ID (urlNo), the executed URL, and the seq for each screen parameter from the operation logs D21, D22, and D23. Similarly, the data table T22 summarizes the ID (sqlNo) for each SQL, the executed SQL, the bind value and the search result at that time, the ID and seq of the screen parameter corresponding to the SQL. The data table T23 is a set of columns (SetC). Specifically, the set SetC obtained by extracting the HTTP parameters from the URLs of the operation logs D21, D22, and D23 is (ORDER, PRICE).

まず、画面パラメータORDERと請求額カラムに伝搬関係があるかを調べる。具体的には、データテーブルT21のurlNo=1から、ORDER=c1Val=101、請求額=x1Val=25340である。次に、データテーブルT21のurlNo=2からc2Val=102、x2Val=4928である。これらからαの値を求めると、α=(25340−4928)/(101−102)=−20412となる。同様に、urlNo=3からc2Val=103、x2Val=1580である。これらからαの値を求めると、α=(25340−1580)/(101−103)=−11880となる。よって、αが一定ではないので、この組み合わせは伝搬の関係になっていないことが分かる。   First, it is checked whether or not there is a propagation relationship between the screen parameter ORDER and the billing amount column. Specifically, from urlNo = 1 in the data table T21, ORDER = c1Val = 101, and the charge amount = x1Val = 25340. Next, urlNo = 2 to c2Val = 102 and x2Val = 4928 in the data table T21. When the value of α is obtained from these, α = (25340−4928) / (101−102) = − 20412. Similarly, urlNo = 3 to c2Val = 103 and x2Val = 1580. When the value of α is calculated from these, α = (25340-1580) / (101-103) =-11880. Therefore, since α is not constant, it can be seen that this combination does not have a propagation relationship.

次に、画面パラメータPRICEと請求額カラムに伝搬関係があるかを調べる。urlNo=1から、PRICE=c1Val=23000、請求額=x1Val=25340である。次に、urlNo=2からc2Val=4100、x2Val=4928である。これらからαの値を求めると、α=(25340−4928)/(23000−4100)=1.08となる。   Next, it is checked whether there is a propagation relationship between the screen parameter PRICE and the billing amount column. From urlNo = 1, PRICE = c1Val = 23000, and the charged amount = x1Val = 25340. Next, urlNo = 2 to c2Val = 4100 and x2Val = 4928. When the value of α is calculated from these, α = (25340−4928) / (23000-4100) = 1.08.

同様に、urlNo=3からc2Val=1000、x2Val=1580である。これらからαの値を求めると、α=(25340−1580)/(23000−1000)=1.08となる。よって、αが一定であり、β=x1Val−α・c1Val=500である。以上より、この組み合わせは間接的な伝搬関係があり、PRICE*1.08+500=請求額であると推定できる。   Similarly, urlNo = 3 to c2Val = 1000 and x2Val = 1580. When the value of α is obtained from these, α = (25340-1580) / (23000-1000) = 1.08. Therefore, α is constant, and β = x1Val−α · c1Val = 500. From the above, this combination has an indirect propagation relationship, and it can be estimated that PRICE * 1.08 + 500 = charged amount.

(画面パラメータが持つ複数の繰り返しパラメータとINSERT値の関係推定について)
図15は、動作ログ(D31、D32、D33)の一例を説明する説明図である。図15に示すように、分析対象の業務システム2から取得した動作ログがD31、D32、D33の内容(値)であったものとする。
(About the estimation of the relationship between the multiple repetition parameters of the screen parameter and the INSERT value)
FIG. 15 is an explanatory diagram illustrating an example of the operation log (D31, D32, D33). As shown in FIG. 15, it is assumed that the operation logs acquired from the business system 2 to be analyzed are the contents (values) of D31, D32, and D33.

図16は、データテーブル(T31、T32、T33)の一例を説明する説明図である。図16に示すように、データテーブルT31は、動作ログD31、D32、D33から画面パラメータごとにID(urlNo)と、実行したURLと、seqをまとめたものである。また、データテーブルT32は、同様に、SQLごとにID(sqlNo)、実行したSQL、そのときのバインド値と検索結果、SQLに対応する画面パラメータのID、seqをまとめたものである。   FIG. 16 is an explanatory diagram illustrating an example of the data tables (T31, T32, and T33). As shown in FIG. 16, the data table T31 summarizes the ID (urlNo), the executed URL, and the seq for each screen parameter from the operation logs D31, D32, and D33. Similarly, the data table T32 summarizes the ID (sqlNo) for each SQL, the executed SQL, the bind value and the search result at that time, the ID and seq of the screen parameter corresponding to the SQL.

画面パラメータの変数名(例えばCODE−1)は非数値(例えばCODE−)の後に数値(例えば1)が連結された文字列から構成されていると仮定し、非数値文字列と数値文字列に分離する。そして、同じ数値文字列ごとに組を構成することにより、動作ログD31のURLの値から、データテーブルT33に示すパラメータの組を作る。具体的には、パラメータ名2個の組は(CODE−、UNITPRICE−)、(CODE−、QTY−)、(UNITPRICE−、QTY−)である。分析部11は、INSERTで挿入する税抜き額と間接的な伝搬関係があるかを以下の処理で推定する。   It is assumed that the variable name of the screen parameter (for example, CODE-1) is composed of a character string in which a numerical value (for example, 1) is connected after a non-numeric value (for example, CODE-). To separate. Then, by forming a set for each of the same numeric character strings, a set of parameters shown in the data table T33 is created from the URL value of the operation log D31. Specifically, a set of two parameter names is (CODE-, UNITPRICE-), (CODE-, QTY-), and (UNITPRICE-, QTY-). The analysis unit 11 estimates whether or not there is an indirect propagation relationship with the tax-excluded amount inserted in INSERT by the following processing.

組(CODE−、UNITPRICE−)の場合、データテーブルT33のurlNo=1からパラメータ2個の値はC=(123、130)、D=(1000、1500)である。よって、積和値はΣC1i・D1i=123*1000+130*1500=318000であり、X1=23000である。   In the case of the set (CODE-, UNITPRICE-), the values of two parameters are C = (123, 130) and D = (1000, 1500) from urlNo = 1 in the data table T33. Therefore, the product sum value is ΔC1i · D1i = 123 * 1000 + 130 * 1500 = 318000, and X1 = 23000.

urlNo=2で同様に計算すると、積和値ΣC2j・D2j=3280000、X2=4100である。よって、αの値を求めると、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)=(23000−4100)/(318000−3280000)=−6.4*10−3である。   When similarly calculated with urlNo = 2, the product sum value ΣC2j · D2j = 3280000, and X2 = 4100. Therefore, when the value of α is obtained, α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) = (23000-4100) / (318000−3280000) = − 6.4 * 10−3.

urlNo=3で同様に計算するとα=(23000−1580)/(318000−60100)=8.3*10−2である。よって、αが互いに異なるため、この組み合わせではデータ伝搬していないと判断する。   Similarly calculated with urlNo = 3, α = (23000-1580) / (318000-60100) = 8.3 * 10−2. Therefore, since α is different from each other, it is determined that no data is propagated in this combination.

同様に、組(CODE−、QTY−)の場合、データテーブルT33のurlNo=1から積和値ΣC1i・D1i=123*20+130*2=2720、X1=23000である。urlNo=2で同様に計算すると、積和値ΣC2j・D2j=800、X2=4100である。よって、αの値を求めると、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)=(23000−4100)/(2720−800)=9.8である。   Similarly, in the case of the set (CODE-, QTY-), the product sum value ΣC1i · D1i = 123 * 20 + 130 * 2 = 2720 and X1 = 23000 from urlNo = 1 in the data table T33. When similarly calculated with urlNo = 2, the product sum value ΣC2j · D2j = 800 and X2 = 4100. Therefore, when the value of α is obtained, α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) = (23000−4100) / (2720−800) = 9.8.

urlNo=3で同様に計算するとα=(23000−1580)/(2720−8005)=−4.1である。よって、αが互いに異なるため、この組み合わせではデータ伝搬していないと判断する。   Similarly calculated with urlNo = 3, α = (23000-1580) / (2720-8005) = − 4.1. Therefore, since α is different from each other, it is determined that no data is propagated in this combination.

同様に、組(UNITPRICE−、QTY−)の場合、データテーブルT33のurlNo=1から積和値ΣC1i・D1i=1000*20+1500*2=23000、X1=23000である。urlNo=2で同様に計算すると、積和値ΣC2j・D2j=4100、X2=4100である。よって、αの値を求めると、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)=(23000−4100)/(23000−4100)=1である。   Similarly, in the case of the set (UNITPRICE-, QTY-), the product sum value ΣC1i · D1i = 1000 * 20 + 1500 * 2 = 23000 and X1 = 23000 from urlNo = 1 in the data table T33. When similarly calculated with urlNo = 2, the product sum value ΣC2j · D2j = 4100 and X2 = 4100. Therefore, when the value of α is obtained, α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) = (23000-4100) / (23000-4100) = 1.

urlNo=3で同様に計算するとα=(23000−1580)/(23000−1580)=1である。よって、αが一致するため、UNITPRICE−*とQTY−*から受注テーブルT3の税抜き額カラムに間接的な伝搬関係があると推定する。   Similarly, when urlNo = 3, α = (23000-1580) / (23000-1580) = 1. Therefore, since α coincides with each other, it is presumed that UNITPRICE- * and QTY- * have an indirect propagation relationship in the tax-excluded amount column of the order receiving table T3.

(SELECT結果の2つのカラムとINSERT値の関係推定について)
図17は、動作ログ(D41、D42、D43)の一例を説明する説明図である。図17に示すように、分析対象の業務システム2から取得した動作ログがD41、D42、D43の内容(値)であったものとする。
(About estimating the relationship between the two columns of the SELECT result and the INSERT value)
FIG. 17 is an explanatory diagram illustrating an example of the operation log (D41, D42, D43). As shown in FIG. 17, it is assumed that the operation logs acquired from the business system 2 to be analyzed are the contents (values) of D41, D42, and D43.

図18は、データテーブル(T41、T42、T43)の一例を説明する説明図である。図18に示すように、データテーブルT41は、動作ログD41、D42、D43から画面パラメータごとにID(urlNo)と、実行したURLと、seqをまとめたものである。また、データテーブルT43は、同様に、SQLごとにID(sqlNo)、実行したSQL、そのときのバインド値と検索結果、SQLに対応する画面パラメータのID、seqをまとめたものである。また、データテーブルT42は、INSERTに先立つSELECTで検索した明細テーブルT2のカラム(明細ID、伝票番号、商品ID、税抜き単価、数量)をまとめたものである。   FIG. 18 is an explanatory diagram illustrating an example of a data table (T41, T42, T43). As shown in FIG. 18, the data table T41 summarizes the ID (urlNo), the executed URL, and the seq for each screen parameter from the operation logs D41, D42, and D43. Similarly, the data table T43 summarizes the ID (sqlNo) for each SQL, the executed SQL, the bind value and the search result at that time, the ID and seq of the screen parameter corresponding to the SQL. The data table T42 is a collection of columns (detail ID, slip number, product ID, unit price excluding tax, quantity) of the detail table T2 searched by SELECT prior to INSERT.

分析部11は、INSERTに先立つSELECTで検索した明細テーブルT2のカラム(明細ID、伝票番号、商品ID、税抜き単価、数量)から2つ取出して組を作り、INSERTで挿入する税抜き額と間接的な伝搬関係があるかを以下の処理で推定する。   The analysis unit 11 takes out two columns (specification ID, slip number, product ID, unit price excluding tax, quantity) from the details table T2 searched by SELECT prior to INSERT, creates a set, and sets a tax-excluded amount to be inserted by INSERT. Whether or not there is an indirect propagation relation is estimated by the following processing.

例えば、組(商品ID、税抜き単価)の場合、データテーブルT42のurlNo=1からカラム2個の値はC=(123、130)、D=(1000、1500)である。よって、積和値ΣC1i・D1i=123*1000+130*1500=318000であり、X1=23000である。   For example, in the case of a set (product ID, unit price without tax), the values of two columns from urlNo = 1 in the data table T42 are C = (123, 130) and D = (1000, 1500). Therefore, the sum of products ΣC1i · D1i = 123 * 1000 + 130 * 1500 = 318000, and X1 = 23000.

urlNo=2で同様に計算すると、積和値ΣC2j・D2j=3280000、X2=4100である。よってαの値を求めると、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)=(23000−4100)/(318000−3280000)=−6.4*10−3である。   When similarly calculated with urlNo = 2, the product sum value ΣC2j · D2j = 3280000, and X2 = 4100. Therefore, when the value of α is obtained, α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) = (23000-4100) / (318000−3280000) = − 6.4 * 10−3.

urlNo=3で同様に計算するとα=(23000−1580)/(318000−60100)=8.3*10−2である。よって、αが互いに異なるため、この組み合わせではデータ伝搬していないと判断する。   Similarly calculated with urlNo = 3, α = (23000-1580) / (318000-60100) = 8.3 * 10−2. Therefore, since α is different from each other, it is determined that no data is propagated in this combination.

同様に(税抜き単価、数量)の場合、データテーブルT42のurlNo=1から積和値ΣC1i・D1i=1000*20+1500*2=23000、X1=23000である。urlNo=2で同様に計算すると、積和値ΣC2j・D2j=4100、X2=4100である。よって、αの値を求めると、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)=(23000−4100)/(23000−4100)=1である。   Similarly, in the case of (tax-excluded unit price, quantity), the product sum value ΣC1i · D1i = 1000 * 20 + 1500 * 2 = 23000 and X1 = 23000 from urlNo = 1 in the data table T42. When similarly calculated with urlNo = 2, the product sum value ΣC2j · D2j = 4100 and X2 = 4100. Therefore, when the value of α is obtained, α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) = (23000-4100) / (23000-4100) = 1.

urlNo=3で同様に計算するとα=(23000−1580)/(23000−1580)=1である。よって、αが一致するため、明細テーブルT2の税抜き単価カラムと数量カラムから受注テーブルT3の税抜き額カラムには間接的な伝搬関係があると推定する。   Similarly, when urlNo = 3, α = (23000-1580) / (23000-1580) = 1. Therefore, since α coincides, it is estimated that there is an indirect propagation relationship between the tax-excluded unit price column and the quantity column of the detail table T2 and the tax-excluded amount column of the order receiving table T3.

(キー値を介して関係付く2種類のSELECT結果のカラムとINSERT値の関係推定について)
図19は、動作ログ(D51、D52、D53)の一例を説明する説明図である。図19に示すように、分析対象の業務システム2から取得した動作ログがD51、D52、D53の内容(値)であったものとする。
(Estimation of relationship between INSERT value and columns of two types of SELECT results related via key values)
FIG. 19 is an explanatory diagram illustrating an example of the operation log (D51, D52, D53). As shown in FIG. 19, it is assumed that the operation logs acquired from the business system 2 to be analyzed are the contents (values) of D51, D52, and D53.

図20は、データテーブル(T51、T52、T53、T54)の一例を説明する説明図である。図20に示すように、データテーブルT51は、動作ログD51、D52、D53から画面パラメータごとにID(urlNo)と、実行したURLと、seqをまとめたものである。また、データテーブルT52は、同様に、SQLごとにID(sqlNo)、実行したSQL、そのときのバインド値と検索結果、SQLに対応する画面パラメータのID、seqをまとめたものである。   FIG. 20 is an explanatory diagram illustrating an example of the data tables (T51, T52, T53, and T54). As shown in FIG. 20, the data table T51 summarizes the ID (urlNo), the executed URL, and the seq for each screen parameter from the operation logs D51, D52, and D53. Similarly, the data table T52 summarizes the ID (sqlNo) for each SQL, the executed SQL, the bind value and the search result at that time, the ID and seq of the screen parameter corresponding to the SQL.

INSERTで挿入する受注テーブルT3の税抜き額カラムをカラムXとするとき、本実施例の動作ログD51、D52、D53では、INSERTに先立つSELECTはそれぞれの画面単位ログで2種類実行される。この2種類のものについて、データテーブルT53は、明細テーブルT2からの検索結果をまとめたものである。また、データテーブルT54は、商品マスタテーブルT1からの検索結果をまとめたものである。   When the tax-excluded amount column of the order receiving table T3 inserted by INSERT is set to column X, in the operation logs D51, D52, and D53 of this embodiment, two types of SELECT prior to INSERT are executed in each screen unit log. For these two types, the data table T53 summarizes the search results from the detail table T2. The data table T54 summarizes the search results from the product master table T1.

分析部11は、データテーブルT53およびデータテーブルT54から、それぞれカラムを1個ずつ選択し、片方のカラム値がもう片方のカラム値を含んでいるものを探す。これにより、分析部11は、データテーブルT53の商品IDとデータテーブルT54の商品IDがカラム対(K1、K2)に該当することを検出できる。よって、分析部11は、データテーブルT53およびデータテーブルT54からカラム対(K1、K2)以外のカラムを1個ずつ選択する。   The analysis unit 11 selects one column from each of the data table T53 and the data table T54, and searches for a column in which one column value includes the other column value. Thereby, the analysis unit 11 can detect that the product ID of the data table T53 and the product ID of the data table T54 correspond to the column pair (K1, K2). Therefore, the analysis unit 11 selects columns other than the column pair (K1, K2) one by one from the data table T53 and the data table T54.

カラムCとして商品マスタテーブルT1の税抜き単価を、カラムDとして明細テーブルT2の数量を選択した場合、urlNo=1で商品IDが同じ値の対を使って積和値を求めると、ΣC1i・D1i=1000*20+1500*2=23000である。また、この場合にはX1=23000である。   When the unit price excluding the tax in the product master table T1 is selected as the column C and the quantity in the detail table T2 is selected as the column D, when the product sum value is obtained using urlNo = 1 and the product ID having the same value, {C1i · D1i = 1000 * 20 + 1500 * 2 = 23000. In this case, X1 = 23000.

urlNo=2で同様に計算すると、積和値ΣC2j・D2j=4100、X2=4100である。よって、αの値を求めると、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)=(23000−4100)/(23000−4100)=1である。   When similarly calculated with urlNo = 2, the product sum value ΣC2j · D2j = 4100 and X2 = 4100. Therefore, when the value of α is obtained, α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) = (23000-4100) / (23000-4100) = 1.

urlNo=3で同様に計算するとα=(23000−1580)/(23000−1580)=1である。よって、αが一致するため、商品マスタテーブルT1の税抜き単価カラムと明細テーブルT2の数量カラムが、それぞれの商品IDカラムをキーとして、受注テーブルT3の税抜き額カラムに対して間接的な伝搬関係があると推定する。   Similarly, when urlNo = 3, α = (23000-1580) / (23000-1580) = 1. Therefore, since α matches, the tax-excluded unit price column of the product master table T1 and the quantity column of the detail table T2 are indirectly propagated to the tax-excluded amount column of the order receiving table T3 using the respective product ID columns as keys. Presumed to be relevant.

(キー値を介して関係付く画面パラメータとSELECT結果のカラムとINSERT値の関係推定について)
図21は、動作ログ(D61、D62、D63)の一例を説明する説明図である。図21に示すように、分析対象の業務システム2から取得した動作ログがD61、D62、D63の内容(値)であったものとする。
(Regarding the estimation of the relationship between the screen parameter associated with the key value, the column of the SELECT result, and the INSERT value)
FIG. 21 is an explanatory diagram illustrating an example of the operation log (D61, D62, D63). As shown in FIG. 21, it is assumed that the operation logs acquired from the business system 2 to be analyzed are the contents (values) of D61, D62, and D63.

図22は、データテーブル(T61、T62、T63、T64)の一例を説明する説明図である。図22に示すように、データテーブルT61は、動作ログD61、D62、D63から画面パラメータごとにID(urlNo)と、実行したURLと、seqをまとめたものである。また、データテーブルT62は、同様に、SQLごとにID(sqlNo)、実行したSQL、そのときのバインド値と検索結果、SQLに対応する画面パラメータのID、seqをまとめたものである。   FIG. 22 is an explanatory diagram illustrating an example of the data tables (T61, T62, T63, and T64). As shown in FIG. 22, the data table T61 summarizes IDs (urlNo), executed URLs, and seq for each screen parameter from the operation logs D61, D62, and D63. Similarly, the data table T62 summarizes the ID (sqlNo) for each SQL, the executed SQL, the bind value and the search result at that time, the ID and seq of the screen parameter corresponding to the SQL.

本実施例の画面パラメータには、「画面パラメータが持つ複数の繰り返しパラメータとINSERT値の関係推定について」に示したように2種類のパラメータの繰り返しがある(例えばCODE−*とQTY−*)。データテーブルT63は、抽出した繰り返しの値をまとめたものである。また、INSERTで挿入する受注テーブルT3の税抜き額カラムをカラムXとするとき、本実施例の動作ログでは、INSERTに先立つSELECTはそれぞれの画面単位ログで1種類実行される。データテーブルT64は、商品マスタテーブルT1からの検索結果をまとめたものである。   As the screen parameters of the present embodiment, there are two types of repetition of parameters (for example, CODE- * and QTY- *) as shown in "Regarding Estimation of Relationship Between Plural Repetition Parameters of Screen Parameters and INSERT Value". The data table T63 summarizes the extracted repeated values. When the tax-excluded amount column of the order receiving table T3 inserted by INSERT is set to column X, in the operation log of the present embodiment, one type of SELECT prior to INSERT is executed in each screen unit log. The data table T64 summarizes search results from the product master table T1.

分析部11は、データテーブルT63およびデータテーブルT64からそれぞれカラムを1個ずつ選択し、片方のカラム値がもう片方のカラム値を含んでいるものを探す。これにより、分析部11は、データテーブルT63のCODE−と、データテーブルT64の商品IDがカラム対(K1、K2)に該当することを検出できる。よって、分析部11は、データテーブルT63およびデータテーブルT64からカラム対(K1、K2)以外のカラムを1個ずつ選択する。   The analysis unit 11 selects one column from each of the data table T63 and the data table T64, and searches for a column in which one column value includes the other column value. Accordingly, the analysis unit 11 can detect that the CODE- of the data table T63 and the product ID of the data table T64 correspond to the column pair (K1, K2). Therefore, the analysis unit 11 selects columns other than the column pair (K1, K2) one by one from the data table T63 and the data table T64.

カラムCとして商品マスタテーブルT1の税抜き単価を、カラムDとして画面パラメータのQTY−を選択した場合、urlNo=1で商品IDとCODE−が同じ値の対を使って積和値を求めると、ΣC1i・D1i=1000*20+1500*2=23000である。また、この場合にはX1=23000である。   When the unit price excluding tax of the product master table T1 is selected as the column C, and the screen parameter QTY- is selected as the column D, when urlNo = 1, the product ID and CODE- are used to obtain a product-sum value using the same value pair. ΣC1i · D1i = 1000 * 20 + 1500 * 2 = 23000. In this case, X1 = 23000.

urlNo=2で同様に計算すると、積和値ΣC2j・D2j=4100、X2=4100である。よって、αの値を求めると、α=(X1−X2)/(ΣC1i・D1i−ΣC2j・D2j)=(23000−4100)/(23000−4100)=1である。   When similarly calculated with urlNo = 2, the product sum value ΣC2j · D2j = 4100 and X2 = 4100. Therefore, when the value of α is obtained, α = (X1−X2) / (ΣC1i · D1i−ΣC2j · D2j) = (23000-4100) / (23000-4100) = 1.

urlNo=3で同様に計算するとα=(23000−1580)/(23000−1580)=1である。よって、αが一致するため、商品マスタテーブルT1の税抜き単価カラムと画面パラメータのQTY−*が、それぞれの商品IDカラム、CODE−*をキーとして、受注テーブルT3の税抜き額カラムに対して間接的な伝搬関係があると推定する。   Similarly, when urlNo = 3, α = (23000-1580) / (23000-1580) = 1. Therefore, since α coincides with each other, the unit price column excluding tax in the product master table T1 and the QTY- * of the screen parameter are compared with the column excluding tax in the order receiving table T3 using the respective product ID columns and CODE- * as keys. It is estimated that there is an indirect propagation relationship.

(直接的に対応がつかない値をUPDATEで更新する場合の関係推定について)
図23は、動作ログ(D71、D72、D73)の一例を説明する説明図である。図23に示すように、分析対象の業務システム2から取得した動作ログがD71、D72、D73の内容(値)であったものとする。
(Relation estimation when updating values that cannot be directly associated with UPDATE)
FIG. 23 is an explanatory diagram illustrating an example of the operation log (D71, D72, D73). As shown in FIG. 23, it is assumed that the operation logs acquired from the business system 2 to be analyzed are the contents (values) of D71, D72, and D73.

図24は、データテーブル(T71、T72、T73)の一例を説明する説明図である。図24に示すように、データテーブルT71は、動作ログD71、D72、D73から画面パラメータごとにID(urlNo)と、実行したURLと、seqをまとめたものである。また、データテーブルT72は、同様に、SQLごとにID(sqlNo)、実行したSQL、そのときのバインド値と検索結果、SQLに対応する画面パラメータのID、seqをまとめたものである。データテーブルT73は、請求額の更新値と請求額の差分とをまとめたものである。   FIG. 24 is an explanatory diagram illustrating an example of the data tables (T71, T72, and T73). As shown in FIG. 24, the data table T71 summarizes IDs (urlNo), executed URLs, and seq for each screen parameter from the operation logs D71, D72, and D73. Similarly, the data table T72 summarizes the ID (sqlNo) for each SQL, the executed SQL, the bind value and the search result at that time, the ID and seq of the screen parameter corresponding to the SQL. The data table T73 summarizes the updated value of the bill and the difference between the bills.

請求テーブルT4の請求額カラムをカラムXとするとき、INSERT以前に実行されたSELECT結果に含まれるカラム集合SetCは受注テーブルの伝票番号、税抜き額、顧客IDと請求テーブルの伝票番号である。   When the billing amount column of the billing table T4 is the column X, the column set SetC included in the SELECT result executed before the INSERT is the slip number of the order receiving table, the tax-excluded amount, the customer ID, and the slip number of the billing table.

「カラム1個との対応付け」に関し、税抜き額カラムと請求額カラムに伝搬関係があるかを調べる場合を例示する。まず、UPDATEで更新する値そのものをカラムXの値として処理する。   As for “association with one column”, a case where it is checked whether or not there is a propagation relationship between the tax exemption amount column and the invoice amount column is illustrated. First, the value itself to be updated by UPDATE is processed as the value of column X.

「動作ログ1」から、税抜き額=c1Val=23000、請求額=x1Val=25340である。次に、「動作ログ2」からc2Val=4100、x2Val=5428である。これらからα=(25340−5428)/(23000−4100)=1.05となる。同様に、「動作ログ3」からc2Val=1000、x2Val=2580である。これらからαの値を求めると、α=(25340−2580)/(23000−1000)=1.03となり、αは一定ではない。   From the “operation log 1”, the tax-excluded amount = c1Val = 23000 and the charged amount = x1Val = 25340. Next, c2Val = 4100 and x2Val = 5428 from “operation log 2”. From these, α = (25340-5428) / (23000-4100) = 1.05. Similarly, c2Val = 1000 and x2Val = 2580 from “operation log 3”. When the value of α is determined from these, α = (25340−2580) / (23000−1000) = 1.03, and α is not constant.

次に、UPDATEに先立ち実行されたSELECTの検索結果との差分値(データテーブルT73の請求額の差分)を用いて処理する。「動作ログ1」から、税抜き額=c1Val=23000、請求額の差分=x1Val=24840である。   Next, processing is performed using a difference value (a difference between billing amounts in the data table T73) with a search result of SELECT executed prior to UPDATE. From the “operation log 1”, the tax-excluded amount = c1Val = 23000, and the difference between the charged amounts = x1Val = 24840.

次に、「動作ログ2」からc2Val=4100、x2Val=4428である。これらからαの値を求めると、α=(24840−4428)/(23000−4100)=1.08となる。   Next, c2Val = 4100 and x2Val = 4428 from “operation log 2”. When the value of α is calculated from these, α = (24840-4428) / (23000-4100) = 1.08.

同様に、「動作ログ3」からc2Val=1000、x2Val=1080である。これらからαの値を求めると、α=(24840−1080)/(23000−1000)=1.08となる。よって、αが一定であり、β=x1Val−α・c1Val=0である。以上より、この組み合わせは間接的な伝搬関係があり、税抜き額*1.08=請求額の更新値であると推定する。   Similarly, c2Val = 1000 and x2Val = 1080 from “operation log 3”. When the value of α is calculated from these, α = (24840-1080) / (23000-1000) = 1.08. Therefore, α is constant, and β = x1Val−α · c1Val = 0. From the above, it is estimated that this combination has an indirect propagation relationship, and that the tax-excluded amount * 1.08 = the updated value of the billing amount.

上記の実施例では「カラム1個との対応付け」の処理を行う場合を例示したが、他の場合も同様に行うことで、UPDATEの更新値ないし更新値の差分と間接的なデータ伝搬の関係にあるかを推定することができる。   In the above embodiment, the case of performing the “association with one column” process is exemplified. However, by performing the same in other cases, the UPDATE update value or the difference between the update values and the indirect data propagation It can be estimated whether or not they are related.

図25は、表示画面Gの一例を説明する説明図である。図25に示すように、出力部13は、分析部11の分析結果をディスプレイの表示画面Gに表示する。具体的には、出力部13は、表示画面G上に業務用DB21のカラムおよび画面パラメータ内の変数値を列挙したテーブル・カラム画像G1〜G5を表示する。そして、出力部13は、分析部11の分析結果に基づいて、対応関係のあるカラムや変数値同士を線で結びつけた接続関係表示G11、G12を行う。   FIG. 25 is an explanatory diagram illustrating an example of the display screen G. As shown in FIG. 25, the output unit 13 displays the analysis result of the analysis unit 11 on the display screen G of the display. Specifically, the output unit 13 displays, on the display screen G, table / column images G1 to G5 listing the columns of the business DB 21 and the variable values in the screen parameters. Then, based on the analysis result of the analysis unit 11, the output unit 13 performs connection relationship displays G11 and G12 in which columns and variable values having a corresponding relationship are connected by a line.

例えば、直接的なデータ伝搬があるものと分析されたカラムや変数値同士は実線などの接続関係表示G11とする。また、間接的なデータ伝搬があるものと分析されたカラムや変数値同士は破線などの接続関係表示G12とする。これにより、ユーザは、直接的なデータ伝搬があるものと分析された分析結果と、間接的なデータ伝搬があるものと分析された分析結果とを容易に識別できる。   For example, a column or variable value analyzed as having direct data propagation is a connection relationship display G11 such as a solid line. The columns and variable values analyzed as having indirect data propagation are indicated by a connection relationship display G12 such as a broken line. Thus, the user can easily distinguish between the analysis result analyzed as having direct data propagation and the analysis result analyzed as having indirect data propagation.

以上のように、分析支援装置1は、画面パラメータ、バインド変数値等の入力パラメータと、この入力パラメータに基づいて業務用DBからのデータの読み出しおよび業務用DBへのデータの書き込みの内の少なくともデータの書き込みを行ったアクセス記録とを含む動作ログを複数取得する。そして、分析支援装置1は、取得された複数の動作ログの中の、業務用DBの所定のカラムにかかるアクセス記録を含む動作ログの各々おいて、入力パラメータに含まれる値またはアクセス記録において業務用DBから読み出された値と、アクセス記録において業務用DBへ書き込みを行った値と組み合わせて所定の演算を行う。分析支援装置1は、この演算結果(α)が一定である場合に、カラムにデータの伝搬があるものと分析し、伝搬があると分析されたカラムを出力する。このため、分析支援装置1は、例えば、業務用DBより読み出した値をメソッド内で演算し、演算後の値を別のカラムに書き込むような間接的に関係性のあるデータ伝搬についても把握することができる。また、分析支援装置1は、業務システム2がDBアクセスデータ20として収集した動作ログを取得する構成である。これにより、例えば、保守開発の上流工程で業務システム2の業務用DB周りのデータ伝搬を把握でき、システム変更の現行システムへの影響をより調査しやすくなる利点がある。   As described above, the analysis support apparatus 1 determines at least one of the input parameters such as the screen parameters and the bind variable values, and the reading of data from the business DB and the writing of data to the business DB based on the input parameters. A plurality of operation logs including an access record in which data has been written are acquired. Then, the analysis support apparatus 1 performs the operation in the value included in the input parameter or the access record in each of the operation logs including the access record related to the predetermined column of the business DB in the acquired plurality of operation logs. A predetermined operation is performed by combining the value read from the business DB with the value written to the business DB in the access record. When the calculation result (α) is constant, the analysis support apparatus 1 analyzes that there is data propagation in the column, and outputs the analyzed column when there is propagation. For this reason, for example, the analysis support apparatus 1 calculates the value read from the business DB in the method, and also grasps indirectly related data propagation such as writing the value after the calculation to another column. be able to. The analysis support device 1 is configured to acquire the operation log collected as the DB access data 20 by the business system 2. Thereby, for example, the data propagation around the business DB of the business system 2 can be grasped in the upstream process of maintenance development, and there is an advantage that the influence of the system change on the current system can be more easily investigated.

また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、分析部11、記憶部12または出力部13を分析支援装置1の外部装置としてネットワークで接続するようにしてもよい。また、分析部11、記憶部12または出力部13を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の分析支援装置1の機能を実現するようにしてもよい。   In addition, each component of each illustrated device does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part thereof may be functionally or physically distributed / arbitrarily divided into arbitrary units according to various loads and usage conditions. Can be integrated and configured. For example, the analysis unit 11, the storage unit 12, or the output unit 13 may be connected via a network as an external device of the analysis support device 1. Alternatively, the analysis unit 11, the storage unit 12, or the output unit 13 may be included in another device and connected to a network to cooperate to realize the function of the analysis support device 1.

また、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図26を用いて、上記の実施形態と同様の機能を有する分析支援プログラムを実行するコンピュータの一例について説明する。   The various processes described in the above embodiments can be realized by executing a prepared program on a computer such as a personal computer or a workstation. Therefore, an example of a computer that executes an analysis support program having the same functions as the above embodiment will be described below with reference to FIG.

図26は、分析支援プログラム270aを実行するコンピュータ200の一例を説明する説明図である。図26に示すように、コンピュータ200は、操作部210aと、スピーカ210bと、カメラ210cと、ディスプレイ220と、通信部230とを有する。さらに、このコンピュータ200は、CPU250と、ROM260と、HDD270と、RAM280とを有する。これら210〜280の各部はバス240を介して接続される。   FIG. 26 is an explanatory diagram illustrating an example of the computer 200 that executes the analysis support program 270a. As shown in FIG. 26, the computer 200 includes an operation unit 210a, a speaker 210b, a camera 210c, a display 220, and a communication unit 230. Further, the computer 200 has a CPU 250, a ROM 260, an HDD 270, and a RAM 280. These units 210 to 280 are connected via a bus 240.

HDD270には、上記の実施形態で示した分析部11、記憶部12および出力部13と同様の機能を発揮する分析支援プログラム270aが予め記憶される。この分析支援プログラム270aについては、分析部11、記憶部12および出力部13の各構成要素と同様、適宜統合または分離してもよい。例えば、HDD270に格納されるデータは、常に全てのデータがHDD270に格納される必要はなく、処理に必要なデータのみがHDD270に格納されればよい。   The HDD 270 stores in advance an analysis support program 270a that performs the same function as the analysis unit 11, the storage unit 12, and the output unit 13 described in the above embodiment. The analysis support program 270a may be appropriately integrated or separated, similarly to the respective components of the analysis unit 11, the storage unit 12, and the output unit 13. For example, all data stored in the HDD 270 need not always be stored in the HDD 270, and only data necessary for processing need be stored in the HDD 270.

コンピュータ200では、CPU250が分析支援プログラム270aをHDD270から読み出してRAM280に展開する。これによって、分析支援プログラム270aは、分析支援プロセス280aとして機能する。この分析支援プロセス280aは、HDD270から読み出した各種データを適宜RAM280上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、分析支援プロセス280aは、分析部11、記憶部12および出力部13にて実行される処理を含む。また、CPU250上で仮想的に実現される各処理部は、常に全ての処理部がCPU250上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されればよい。   In the computer 200, the CPU 250 reads the analysis support program 270a from the HDD 270 and expands the analysis support program 270a in the RAM 280. Thus, the analysis support program 270a functions as the analysis support process 280a. The analysis support process 280a expands various data read from the HDD 270 into an area allocated to itself on the RAM 280 as appropriate, and executes various processes based on the expanded various data. Note that the analysis support process 280a includes processing executed by the analysis unit 11, the storage unit 12, and the output unit 13. In addition, all the processing units virtually implemented on the CPU 250 need not always operate on the CPU 250, and only the processing units required for processing need be virtually implemented.

なお、上記の分析支援プログラム270aについては、必ずしも最初からHDD270やROM260に記憶させておく必要はない。例えば、コンピュータ200に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ200がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ200に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ200がこれらから各プログラムを取得して実行するようにしてもよい。   The analysis support program 270a need not always be stored in the HDD 270 or the ROM 260 from the beginning. For example, each program is stored in a “portable physical medium” such as a flexible disk inserted in the computer 200, so-called FD, CD-ROM, DVD disk, magneto-optical disk, IC card, or the like. Then, the computer 200 may acquire and execute each program from these portable physical media. Further, each program may be stored in another computer or a server device connected to the computer 200 via a public line, the Internet, a LAN, a WAN, or the like, and the computer 200 may acquire and execute each program from these. It may be.

(別実施形態)
上述した実施形態の別実施形態を説明する。業務システム2では、受注業務を例にとると、画面で1つの受注に含まれる複数の明細項目が入力され、組ごとに処理が行われることがある。例えば、画面からは明細項目として商品コードと、受注数量の組とを幾つか入力し、その入力データを用いて明細ごとの商品コードと受注数量の値を明細テーブルに書き込む。また同時に、明細単位の合計金額を計算した値なども明細テーブルに書き込む場合がある。また、受注伝票自体を用いて受注テーブルを更新する。
(Another embodiment)
Another embodiment of the above-described embodiment will be described. In the business system 2, in the case of an order receiving business as an example, a plurality of item items included in one order are input on a screen, and processing may be performed for each group. For example, a product code and a set of ordered quantities are input as item items from the screen, and the input data is used to write the product code and ordered value for each item in the item table. At the same time, there may be a case where a value obtained by calculating the total amount of money in the detail unit is written in the detail table. Further, the order table is updated using the order slip itself.

画面からの入力をきっかけにして実行されるSQLは、受注伝票自体の処理と明細ごとに繰り返される処理の2種類が混在して実行される。よって、上述した実施形態では、データの対応関係を推定することが困難な場合がある。   The SQL executed upon input from the screen is a mixture of two types of processing: the processing of the order receipt itself and the processing repeated for each item. Therefore, in the above-described embodiment, it may be difficult to estimate the correspondence between data.

図28は、受注業務におけるデータ伝搬の一例を説明する説明図である。図29は、データ伝搬の検出に失敗した場合を説明する説明図である。図28において、動作ログD81は、受注業務における画面入力(HTTP)のログである。また、動作ログD82は、画面入力をきっかけにして実行されるSQLのログである。また、商品マスタテーブルT1、明細テーブルT2、受注テーブルT3およびメッセージ画面パラメータテーブルT5は、受注業務にかかるデータテーブルを示し、テーブル間の実線・破線はテーブルにおける項目同士のデータ伝搬を示す。なお、実線は直接的なデータ伝搬を示し、破線は間接的なデータ伝搬を示す。図29の例では、明細テーブルT2へのデータ伝搬関係の検出に失敗している。   FIG. 28 is an explanatory diagram illustrating an example of data propagation in an order receiving business. FIG. 29 is an explanatory diagram illustrating a case where detection of data propagation has failed. In FIG. 28, an operation log D81 is a log of a screen input (HTTP) in an order receiving operation. The operation log D82 is an SQL log that is executed in response to a screen input. Further, a product master table T1, a detail table T2, an order receiving table T3, and a message screen parameter table T5 indicate data tables related to the order receiving business, and solid lines and broken lines between the tables indicate data propagation between items in the table. Note that a solid line indicates direct data propagation, and a broken line indicates indirect data propagation. In the example of FIG. 29, the detection of the data propagation relationship in the detail table T2 has failed.

図28に示すように、受注業務における動作ログD81、D82では、受注テーブルT3へのデータ伝搬関係と、明細テーブルT2へのデータ伝搬関係とが存在する。動作ログD81、D82の例では、2つの明細に関するSQLが実行されたが、例えば、明細テーブルT2の受注数量カラムに「10」を挿入するSQLに対し、画面パラメータテーブルT5の受注数量は、「10」と「21」の異なる2つの値に対応する。したがって、上述した実施形態では、対応関係を推定することが困難であり、図29に示すように、明細テーブルT2へのデータ伝搬関係の検出に失敗する。   As shown in FIG. 28, in the operation logs D81 and D82 in the order receiving business, there is a data propagation relation to the order table T3 and a data propagation relation to the detail table T2. In the example of the operation logs D81 and D82, the SQL regarding the two items is executed. It corresponds to two different values of "10" and "21". Therefore, in the above-described embodiment, it is difficult to estimate the correspondence, and as shown in FIG. 29, the detection of the data propagation relationship in the detail table T2 fails.

このため、別実施形態では、分析部11は、一画面からの入力がきっかけで発生した画面単位の動作ログ(画面単位ログ)ごとにキーとするカラムないし画面のパラメータのキー候補を取得する。次いで、分析部11は、キー候補を有するカラム(キーカラム候補)ごとに、画面パラメータ、バインド変数値等の入力パラメータに含まれる値またはデータの書き込みを行ったアクセス記録において業務用DB21から読み出された値と、アクセス記録において業務用DB21へ書き込みを行った値を組み合わせ、上述した実施形態と同様に所定の演算を行う。これにより、別実施形態では、上述した実施形態ではデータの対応関係を推定することが困難な事例(例えば明細ごとのデータ伝搬)であっても、データ伝搬を推定することができる。   For this reason, in another embodiment, the analysis unit 11 acquires a key candidate of a column or a parameter of a screen, which is a key, for each screen-based operation log (screen-based log) generated by input from one screen. Next, the analysis unit 11 reads out from the business DB 21 in an access record in which a value or data included in an input parameter such as a screen parameter or a bind variable value is written for each column having a key candidate (key column candidate). The calculated value is combined with the value written to the business DB 21 in the access record, and a predetermined calculation is performed in the same manner as in the above-described embodiment. Thus, in another embodiment, even in the case where it is difficult to estimate the correspondence of data in the above-described embodiment (for example, data propagation for each specification), data propagation can be estimated.

以下に別実施形態を詳細に説明する。なお、以下の別実施形態では、分析対象の業務システム2で実行するアプリケーションはオンライン実行であり、ある画面から入力した値を用いて業務アプリの内部処理が実行され、かつ画面単位でステートレスであるという前提で説明する。ただし、この前提は一例であり、バッチ処理などでも適用可能である。また、SQL文はバインド変数を用いて記述されていることを前提とするが、変数値が埋め込まれているSQLからバインド変数に相当する部分を抽出してSQLとバインド変数、バインド変数値に変換することは可能である。   Hereinafter, another embodiment will be described in detail. In another embodiment described below, an application executed in the business system 2 to be analyzed is executed online, an internal process of the business application is executed using a value input from a certain screen, and the screen is stateless on a screen basis. It is described on the assumption that: However, this premise is an example, and the present invention can be applied to batch processing and the like. Also, it is assumed that the SQL statement is described using a bind variable, but a part corresponding to the bind variable is extracted from the SQL in which the variable value is embedded and converted into the SQL, the bind variable, and the bind variable value. It is possible to do.

動作ログ取得部10は、分析対象の業務システム2における所定のログファイルへアクセスするなどして、端末装置の一画面からの入力がきっかけで発生した業務処理における動作ログ一式(画面単位ログ)を収集する。具体的には、動作ログ取得部10は、画面で入力し業務アプリに入力されるHTTPパラメータ(画面パラメータ)と、その画面がきっかけで実行される一連のSQLログ(SQL文、入力パラメータ(バインド変数値)、SELECT文の場合は加えて検索結果)とそれらの実行順を判断可能な情報(時刻など)を収集する。   The operation log acquisition unit 10 accesses a predetermined log file in the business system 2 to be analyzed, and obtains a set of operation logs (screen unit log) in the business process triggered by input from one screen of the terminal device. collect. More specifically, the operation log acquisition unit 10 transmits HTTP parameters (screen parameters) input on the screen and input to the business application, and a series of SQL logs (SQL statements, input parameters (binding parameters) executed when the screen is triggered. (Variable value), in the case of a SELECT statement, a search result) and information (time, etc.) that can determine their execution order.

分析部11は、動作ログ取得部10が取得した画面単位ログごとに、明細を区別する値(キー値)と、そのキー値を有する画面パラメータないしカラムを画面単位ログから検索する。ここで、キー値およびキー値を有する画面パラメータ名やカラム名は不明であるため、分析部11は、まずデータ遷移先テーブル(SQLのうちINSERTないしUPDATE文が扱うテーブル)に出現する値をキー値と仮定し、キーとするカラムの候補を生成する。   The analysis unit 11 searches the screen unit log for each screen log acquired by the operation log acquisition unit 10 for a value (key value) for distinguishing details and a screen parameter or column having the key value. Here, since the key value and the screen parameter name and the column name having the key value are unknown, the analysis unit 11 first sets the value appearing in the data transition destination table (the table handled by the INSERT or UPDATE statement in SQL) as the key. Assuming a value, generate a column candidate as a key.

次に、分析部11は、同じキー値を持つSQLをグループとし、グループに属するSQLと、画面パラメータとで上述した実施形態と同様の演算を行い、データ伝搬(直接的なデータ伝搬および間接的なデータ伝搬)の検出を行う。   Next, the analysis unit 11 groups the SQLs having the same key value as a group, performs the same operation as the above-described embodiment using the SQLs belonging to the group and the screen parameters, and performs data propagation (direct data propagation and indirect data propagation). Data propagation) is detected.

具体的には、分析部11は、次の(1)〜(3)の計算を実行する。
(1)データ遷移先のキー値の候補と同じ値をデータ遷移元から検索し、キーとするカラムないし画面パラメータの候補を生成する。
(2)キー候補が同じSQLをグループ化する。
(3)上記のSQLのグループを対象にして、上述した実施形態と同様の演算を行い、データ伝搬の検出を行う。
Specifically, the analysis unit 11 executes the following calculations (1) to (3).
(1) The same value as the key value candidate at the data transition destination is searched from the data transition source to generate a column or screen parameter candidate as a key.
(2) SQL candidates having the same key candidate are grouped.
(3) The same calculation as in the above-described embodiment is performed on the above SQL group to detect data propagation.

図30は、別実施形態にかかる分析支援装置1の動作例を示すフローチャートである。なお、上述した実施形態と同様の処理については同一の符号を付して説明を省略する。   FIG. 30 is a flowchart illustrating an operation example of the analysis support device 1 according to another embodiment. The same processes as those in the above-described embodiment are denoted by the same reference numerals, and description thereof will be omitted.

図30に示すように、分析部11は、作成した画面単位ログの集合ごとに、S4a〜S14aの第1ループ処理を実行する。具体的には、分析部11は、第1ループ処理が開始されると、画面単位ログごとに、キー値の候補を取得する(S100)。キー値の候補は、画面単位ログに含まれるINSERTないしUPDATEで設定される値と、UPDATEのWHERE句に出現する値などである。   As illustrated in FIG. 30, the analysis unit 11 executes a first loop process of S4a to S14a for each set of the created screen unit logs. Specifically, when the first loop process is started, the analysis unit 11 acquires a key value candidate for each screen unit log (S100). Key value candidates include values set in INSERT or UPDATE included in the screen unit log, values appearing in the WHERE clause of UPDATE, and the like.

次いで、分析部11は、候補とするキー値ごとに、キー値を有するSQL列(文)を作る(S101)。ここでいうSQL列は、画面単位ログのSQL列のうち、キー値を含むINSERTないしUPDATEを1つと、その1つのINSERTないしUPDATE以前に実行されたキーとをWHERE節にもつSELECT(0個以上)とを有する。   Next, the analysis unit 11 creates an SQL sequence (sentence) having a key value for each candidate key value (S101). The SQL column referred to here is a SELECT (0 or more) having one INSERT or UPDATE including a key value and a key executed before the one INSERT or UPDATE in the WHERE clause in the SQL column of the screen unit log. ).

次いで、分析部11は、S101で作ったSQL列のうち、INSERTないしUPDATEでキー値を持つカラム名(キーカラム候補)を作る(S102)。具体的には、分析部11は、S101で作ったSQL列において、INSERTないしUPDATEされるテーブル/カラム(データ伝搬先)を探し、キーカラム候補を作る。   Next, the analysis unit 11 creates a column name (key column candidate) having a key value by INSERT or UPDATE in the SQL string created in S101 (S102). Specifically, the analysis unit 11 searches the SQL string created in S101 for a table / column (data transmission destination) to be INSERTed or UPDATEd, and creates a key column candidate.

次いで、分析部11は、S100、S101、S102の結果をもとに、キー値の候補、SQL列、キーカラム候補を有する一覧を作る(S103)。次いで、分析部11は、S103で作成した一覧をもとに、キーカラム候補ごとに、S104〜S109の第2ループ処理を実行する。   Next, the analysis unit 11 creates a list having key value candidates, SQL columns, and key column candidates based on the results of S100, S101, and S102 (S103). Next, the analysis unit 11 executes the second loop processing of S104 to S109 for each key column candidate based on the list created in S103.

第2ループ処理が開始されると、分析部11は、キーカラム候補に対応するSQL(列)を対象として上述した実施形態と同様の演算を行い、データ伝搬の検出を行う(S105)。これにより、分析部11は、テーブルからのデータ伝搬を検出する。   When the second loop process is started, the analysis unit 11 performs the same operation as in the above-described embodiment on the SQL (column) corresponding to the key column candidate, and detects data propagation (S105). Thus, the analysis unit 11 detects data propagation from the table.

次いで、分析部11は、キー値が画面パラメータの何番目(K)かを求める(S106)。具体的には、分析部11は、画面パラメータ名の一部が共通するグループ(例えば、「code−1」、「code−2」、「code−3」の場合は「code−」が共通)を対象として、グループの値にキー値を1つ持ち、他のグループの値全てが異なるグループを探す。そして、分析部11は、探し出したグループにおいて、キー値が何番目かを求める(K番目とする)。   Next, the analysis unit 11 calculates the key value (K) of the screen parameter (S106). Specifically, the analysis unit 11 uses a group in which a part of the screen parameter name is common (for example, in the case of “code-1”, “code-2”, and “code-3”, “code-” is common). Is searched for a group having one key value as a group value and different values in all other groups. Then, the analysis unit 11 obtains the number of the key value in the found group (K-th).

次いで、分析部11は、K番目の画面パラメータを取り出す(S107)。具体的には、S106におけるグループとキー値が同じ個数の別グループを探し、K番目のパラメータを取り出す(キー値に対応する画面パラメータ一式とする)。ただし、パラメータ名には共通の文字列(例えば、「code−1」、「code−2」、「code−3」の場合は「code−」)を用いる。   Next, the analysis unit 11 extracts the K-th screen parameter (S107). Specifically, another group having the same number of key values as the group in S106 is searched, and the K-th parameter is extracted (a set of screen parameters corresponding to the key value). However, a common character string (for example, “code-” for “code-1”, “code-2”, and “code-3”) is used for the parameter name.

次いで、分析部11は、キー値に対応してS107で取り出したK番目の画面パラメータと、同じキー値に対応するSQL列とを組み合わせて上述した実施形態と同様の演算を行い、データ伝搬の検出を行う(S108)。これにより、分析部11は、画面パラメータからのデータ伝搬を検出する。   Next, the analysis unit 11 combines the K-th screen parameter extracted in S107 corresponding to the key value and the SQL sequence corresponding to the same key value, performs the same operation as in the above-described embodiment, and performs data propagation. Detection is performed (S108). Thereby, the analysis unit 11 detects data propagation from the screen parameters.

ここで、より具体的な具体例を参照して分析支援装置1の別実施形態を説明する。なお、以下で説明する具体例では、分析対象の業務用DB21のテーブルが持つカラムは全て数値型であるものと仮定する。ただし、文字列型カラムに数値が入っている場合でも、文字列を適切に変換処理して数値として扱うことで、数値型と同様に処理できる。   Here, another embodiment of the analysis support apparatus 1 will be described with reference to a more specific specific example. In the specific example described below, it is assumed that the columns of the table of the business DB 21 to be analyzed are all numeric type. However, even if a character string column contains a numeric value, it can be processed in the same way as a numeric type by appropriately converting the character string and treating it as a numeric value.

図31は、動作ログの一例を説明する説明図である。図31に示すように、動作ログD91、D92は、URLで示した画面操作がきっかけで実行されたSQLの実行文(SQLとバインド値、SELECTの場合は検索で得られた値も含む)を有する。なお、動作ログD91、D92は、画面操作がきっかけで同じ種類のSQL文を実行する(例えば、バインド値が異なるものの、実行するSELECT文とINSERT文が同じ)ため、同じ画面単位ログの集合に属する。   FIG. 31 is an explanatory diagram illustrating an example of an operation log. As shown in FIG. 31, the operation logs D91 and D92 include an SQL execution statement (SQL and bind value, and in the case of SELECT, a value obtained by a search) executed by the screen operation indicated by the URL. Have. The operation logs D91 and D92 execute the same type of SQL statement when the screen operation is triggered (for example, although the bind value is different, the SELECT statement to be executed is the same as the INSERT statement). Belong.

S100において、分析部11は、動作ログD91、D92ごとに、キー値の候補を取得する。図32は、データテーブルの一例を説明する説明図である。より具体的には、図32は、動作ログD91、D92ごとにキー値候補を取得して得られたデータテーブルT81を例示している。   In S100, the analysis unit 11 acquires key value candidates for each of the operation logs D91 and D92. FIG. 32 is an explanatory diagram illustrating an example of a data table. More specifically, FIG. 32 illustrates a data table T81 obtained by acquiring key value candidates for each of the operation logs D91 and D92.

図32に示すように、分析部11は、画面単位ログ(動作ログD91、D92)ごとに、INSERT文で設定される値をキー値候補として取得する。なお、本例では、UPDATEを実行しなかったので、UPDATEで設定される値とWHERE句の出現する値は取得されていない。   As illustrated in FIG. 32, the analysis unit 11 acquires, as a key value candidate, a value set by an INSERT statement for each screen log (operation logs D91 and D92). In this example, since the UPDATE was not executed, the value set in the UPDATE and the value where the WHERE clause appears are not obtained.

次いで、分析部11は、S103において、画面単位ログのキー値候補、キー値候補を含むSQL列およびINSERTないしUPDATEでキー値を持つキーカラム候補の一覧を作る。   Next, in S103, the analysis unit 11 creates a list of key value candidates of the screen unit log, an SQL column including the key value candidates, and a key column candidate having a key value in INSERT or UPDATE.

図33は、データテーブルの一例を説明する説明図である。より具体的には、図33は、動作ログD91におけるキーカラム候補の一覧を示すデータテーブルT82aと、動作ログD92におけるキーカラム候補の一覧を示すデータテーブルT82bを例示する図である。   FIG. 33 is an explanatory diagram illustrating an example of a data table. More specifically, FIG. 33 is a diagram illustrating a data table T82a indicating a list of key column candidates in the operation log D91 and a data table T82b indicating a list of key column candidates in the operation log D92.

図33のデータテーブルT82aに示すように、例えば、動作ログD91でキー値候補「001」を持つINSERT文とWHERE節にキー値を持つSERECT文は(SQL1,SQL3)であり、INSERT文でキー値候補「001」が出現するカラムは「明細.商品コード」である。   As shown in the data table T82a in FIG. 33, for example, the INSERT statement having the key value candidate “001” in the operation log D91 and the SELECT statement having the key value in the WHERE clause are (SQL1, SQL3), and the key is the INSERT statement in the INSERT statement. The column in which the value candidate “001” appears is “specification. Product code”.

図34は、データテーブルの一例を説明する説明図であり、より具体的には、図33のデータテーブルT82a、T82bを用い、キーカラム候補ごとのSQL列一覧を示すデータテーブルT83を例示する図である。図34に示すように、分析部11は、データテーブルT83のキーカラム候補ごとに、キーカラム候補に対応するSQL列を用いて上述した実施形態と同様の演算を行い、データ伝搬の検出を行う。   FIG. 34 is an explanatory diagram illustrating an example of a data table. More specifically, FIG. 34 is a diagram illustrating a data table T83 showing a SQL column list for each key column candidate using the data tables T82a and T82b of FIG. is there. As shown in FIG. 34, the analysis unit 11 performs the same calculation as in the above-described embodiment using the SQL sequence corresponding to the key column candidate for each key column candidate in the data table T83, and detects data propagation.

図示例では、キーカラム候補のうち「明細.商品コード」以外はINSERTしか存在しないので、データ伝搬は発生していない。一方、キーカラム候補が「明細.商品コード」の場合は、それぞれのSQL列がSELECTとINSERTの組み合わせになっており、データ伝搬が検出される。   In the illustrated example, since only INSERT exists in the key column candidates other than “specification. Merchandise code”, no data propagation occurs. On the other hand, when the key column candidate is “specification. Product code”, each SQL column is a combination of SELECT and INSERT, and data propagation is detected.

図35は、データ伝搬の検出を説明する説明図である。具体的には、図35に示すように、「商品マスタ.商品コード」→「明細.商品コード」へのデータ伝搬が検出され、商品マスタテーブルT1と明細テーブルT2とのデータ伝搬関係が検出される。   FIG. 35 is an explanatory diagram illustrating detection of data propagation. Specifically, as shown in FIG. 35, data propagation from “product master. Product code” to “specification. Product code” is detected, and a data propagation relationship between the product master table T1 and the specification table T2 is detected. You.

次に、分析部11は、画面パラメータ名の一部が共通するグループを作る。図36は、データテーブルの一例を説明する説明図であり、より具体的には、動作ログD91、D92より画面パラメータ名の一部が共通するグループを作成して得られるデータテーブルT84を例示する図である。本例では、「商品コード−1、商品コード−2」の「商品コード−」と、「受注数量−1、受注数量−2」の「受注数量−」とが該当し、図36に示すように、データテーブルT84が得られる。   Next, the analysis unit 11 creates a group having a part of the screen parameter name in common. FIG. 36 is an explanatory diagram illustrating an example of a data table. More specifically, FIG. 36 illustrates a data table T84 obtained by creating a group having a part of screen parameter names in common from the operation logs D91 and D92. FIG. In this example, the "product code-" of "product code-1, product code-2" and the "order quantity-" of "order quantity-1, order quantity-2" correspond to each other, as shown in FIG. Then, a data table T84 is obtained.

次に、分析部11は、キーカラム候補ごとに、キー値が画面パラメータに含まれるか否かを調べ、含まれる場合はキー値が上記のグループの何番目(K)を取得する。   Next, for each key column candidate, the analysis unit 11 checks whether or not the key value is included in the screen parameter.

図37は、データテーブルの一例を説明する説明図であり、より具体的には、キーカラム候補ごとに、キー値が画面パラメータに含まれるか否かを調べて得られるデータテーブルT85を例示する図である。図37に示すように、例えば、「動作ログ1」においてキーカラム候補「明細.商品コード」のキー値「020」は、「商品コード−」の2番目の値(K=2)に存在する。「商品コード−」以外のグループの2番目の値(本例では「受注数量−」)である「21」と合わせた値「商品コード−=020&受注数量−=21」が画面パラメータとして得られる。なお、キーカラム候補「明細.商品コード」の他の動作ログおよびキー値も同様に画面パラメータが得られる。   FIG. 37 is an explanatory diagram illustrating an example of a data table. More specifically, FIG. 37 is a diagram illustrating a data table T85 obtained by checking whether a key value is included in a screen parameter for each key column candidate. It is. As shown in FIG. 37, for example, in the “operation log 1”, the key value “020” of the key column candidate “specification. Product code” exists in the second value (K = 2) of “product code −”. A value “product code− = 020 & order quantity− = 21” combined with “21” which is the second value of the group other than “product code−” (“order quantity−” in this example) is obtained as a screen parameter. . Note that the screen parameters can be similarly obtained for the other operation logs and key values of the key column candidate “detail.commodity code”.

図38は、データテーブルの一例を説明する説明図であり、より具体的には、対応する画面パラメータが存在する動作ログ、キー値、画面パラメータ、SQLの組み合わせを有するデータテーブルT86を例示する図である。分析部11は、データテーブルT85をもとに、図38に示すデータテーブルT86を得る。分析部11は、このデータテーブルT86を用いて上述した実施形態と同様の演算を行い、データ伝搬の検出を行う。   FIG. 38 is an explanatory diagram illustrating an example of a data table. More specifically, FIG. 38 is a diagram illustrating a data table T86 having a combination of an operation log, a key value, a screen parameter, and an SQL in which a corresponding screen parameter exists. It is. The analysis unit 11 obtains a data table T86 shown in FIG. 38 based on the data table T85. The analysis unit 11 performs the same operation as in the above-described embodiment using the data table T86, and detects data propagation.

図39は、データ伝搬の検出を説明する説明図である。具体的には、図39に示すように、データテーブルT86を用いてデータ伝搬の検出を行うと次の関係が検出される。
「商品マスタ.商品コード」→「明細.商品コード」
「(画面)商品コード−」→「明細.商品コード」
「(画面)受注数量−」→「明細.受注数量」
「(画面)受注数量−*商品マスタ.単価」→「明細.合計金額」
FIG. 39 is an explanatory diagram illustrating detection of data propagation. Specifically, as shown in FIG. 39, when data propagation is detected using the data table T86, the following relationship is detected.
"Product master. Product code" → "Details. Product code"
"(Screen) Product code-" → "Details. Product code"
"(Screen) Order quantity-" → "Details. Order quantity"
"(Screen) Order quantity-* Product master. Unit price" → "Details. Total amount"

これにより、商品マスタテーブルT1、明細テーブルT2および画面パラメータテーブルT5のデータ伝搬関係が検出される。よって、別実施形態では、図29においてデータ伝搬関係の検出に失敗した箇所のデータ伝搬関係も検出することができる。   As a result, the data propagation relationship of the product master table T1, the detail table T2, and the screen parameter table T5 is detected. Therefore, in another embodiment, it is possible to detect the data propagation relationship at the location where the detection of the data propagation relationship has failed in FIG.

1…分析支援装置
2…業務システム
10…動作ログ取得部
11…分析部
12…記憶部
13…出力部
20…DBアクセスデータ
21…業務用DB
200…コンピュータ
T1…商品マスタテーブル
T2…明細テーブル
T3…受注テーブル
T4…請求テーブル
T11〜T86…データテーブル
D11〜D92…動作ログ
G…表示画面
G1〜G5…テーブル・カラム画像
G11、G12…接続関係表示
DESCRIPTION OF SYMBOLS 1 ... Analysis support apparatus 2 ... Business system 10 ... Operation log acquisition part 11 ... Analysis part 12 ... Storage part 13 ... Output part 20 ... DB access data 21 ... Business DB
200 Computer T1 Merchandise master table T2 Detail table T3 Order table T4 Billing tables T11 to T86 Data tables D11 to D92 Operation log G Display screens G1 to G5 Table / column images G11, G12 Connection relationships display

Claims (6)

コンピュータが、
入力パラメータと、当該入力パラメータに基づいてデータベースからのデータの読み出しおよび前記データベースへのデータの書き込みの内の少なくともデータの書き込みを行ったアクセス記録とを含む動作ログを複数取得し、
前記取得された複数の動作ログの中の、前記データベースの所定のカラムにかかるアクセス記録を含む動作ログの各々おいて、前記入力パラメータに含まれる値または前記アクセス記録において前記データベースから読み出された値と、前記アクセス記録において前記データベースへ書き込みを行った値と組み合わせて所定の演算を行った演算結果が一定である場合に、前記カラムにデータの伝搬があるものと分析し、
前記伝搬があると分析されたカラムを出力する
処理を実行することを特徴とする分析支援方法。
Computer
An input parameter and a plurality of operation logs including an access record in which at least data is written out of reading data from the database and writing data to the database based on the input parameter,
In the obtained plurality of operation logs, in each of the operation logs including the access record according to the predetermined column of the database, the value included in the input parameter or read from the database in the access record. If the result of performing a predetermined operation in combination with the value and the value written to the database in the access record is constant, analyze that there is data propagation in the column,
An analysis supporting method, characterized by executing a process of outputting a column analyzed when there is propagation.
前記分析する処理は、前記入力パラメータに含まれる値または前記アクセス記録において前記データベースから読み出された値と、前記アクセス記録において前記データベースへ書き込みを行った値と組み合わせた、積算、加算または積和の演算にかかる係数が一定である場合に、前記カラムにデータの伝搬があるものと分析する
ことを特徴とする請求項1に記載の分析支援方法。
The analyzing process includes integrating, adding, or multiplying and accumulating a value included in the input parameter or a value read from the database in the access record and a value written to the database in the access record. 2. The analysis support method according to claim 1, wherein when the coefficient relating to the calculation is constant, it is analyzed that there is data propagation in the column.
前記分析する処理は、前記データベースの所定のカラムにかかる更新については、前記入力パラメータに含まれる値または前記アクセス記録において前記データベースから読み出された値と、前記アクセス記録において前記データベースへ書き込みを行った値との差分が一定である場合に、前記カラムにデータの伝搬があるものと分析する
ことを特徴とする請求項1または2に記載の分析支援方法。
In the analyzing process, for an update related to a predetermined column of the database, a value included in the input parameter or a value read from the database in the access record, and writing to the database in the access record is performed. 3. The analysis support method according to claim 1, wherein when a difference from the calculated value is constant, it is analyzed that there is data propagation in the column. 4.
前記分析する処理は、一画面からの入力がきっかけで発生した画面単位の動作ログごとにキーとするカラムないし画面のパラメータのキー候補を取得し、当該キー候補を有するカラムごとに、前記入力パラメータに含まれる値または前記アクセス記録において前記データベースから読み出された値と、前記アクセス記録において前記データベースへ書き込みを行った値とを組み合わせて前記所定の演算を行う
ことを特徴とする請求項1乃至3のいずれか一項に記載の分析支援方法。
The analyzing process obtains a key candidate of a column or a screen parameter as a key for each screen-based operation log generated by an input from one screen, and for each column having the key candidate, the input parameter The predetermined calculation is performed by combining a value included in the access record or a value read from the database in the access record, and a value written to the database in the access record. 4. The analysis support method according to any one of 3.
コンピュータに、
入力パラメータと、当該入力パラメータに基づいてデータベースからのデータの読み出しおよび前記データベースへのデータの書き込みの内の少なくともデータの書き込みを行ったアクセス記録とを含む動作ログを複数取得し、
前記取得された複数の動作ログの中の、前記データベースの所定のカラムにかかるアクセス記録を含む動作ログの各々おいて、前記入力パラメータに含まれる値または前記アクセス記録において前記データベースから読み出された値と、前記アクセス記録において前記データベースへ書き込みを行った値と組み合わせて所定の演算を行った演算結果が一定である場合に、前記カラムにデータの伝搬があるものと分析し、
前記データの伝搬があると分析されたカラムを出力する
処理を実行させることを特徴とする分析支援プログラム。
On the computer,
An input parameter and a plurality of operation logs including an access record in which at least data is written out of reading data from the database and writing data to the database based on the input parameter,
In the obtained plurality of operation logs, in each of the operation logs including the access record according to the predetermined column of the database, the value included in the input parameter or read from the database in the access record. If the result of performing a predetermined operation in combination with the value and the value written to the database in the access record is constant, analyze that there is data propagation in the column,
An analysis support program for executing a process of outputting a column analyzed when the data is transmitted.
入力パラメータと、当該入力パラメータに基づいてデータベースからのデータの読み出しおよび前記データベースへのデータの書き込みの内の少なくともデータの書き込みを行ったアクセス記録とを含む動作ログを複数取得する取得部と、
前記取得された複数の動作ログの中の、前記データベースの所定のカラムにかかるアクセス記録を含む動作ログの各々おいて、前記入力パラメータに含まれる値または前記アクセス記録において前記データベースから読み出された値と、前記アクセス記録において前記データベースへ書き込みを行った値と組み合わせて所定の演算を行った演算結果が一定である場合に、前記カラムにデータの伝搬があるものと分析する分析部と、
前記データの伝搬があると分析されたカラムを出力する出力部と
を有することを特徴とする分析支援装置。
An acquisition unit that acquires a plurality of operation logs including an input parameter and an access record in which at least data is written out of reading data from the database and writing data to the database based on the input parameter,
In the obtained plurality of operation logs, in each of the operation logs including the access record according to the predetermined column of the database, the value included in the input parameter or read from the database in the access record. An analysis unit that analyzes that the value and the result of performing a predetermined operation in combination with the value written to the database in the access record are constant, and that there is data propagation in the column.
An output unit that outputs a column analyzed when the data is transmitted.
JP2016076077A 2015-06-04 2016-04-05 Analysis support method, analysis support program, and analysis support device Active JP6634938B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015114264 2015-06-04
JP2015114264 2015-06-04

Publications (2)

Publication Number Publication Date
JP2017004500A JP2017004500A (en) 2017-01-05
JP6634938B2 true JP6634938B2 (en) 2020-01-22

Family

ID=57752827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016076077A Active JP6634938B2 (en) 2015-06-04 2016-04-05 Analysis support method, analysis support program, and analysis support device

Country Status (1)

Country Link
JP (1) JP6634938B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307235A (en) * 2018-01-18 2018-07-20 晶晨半导体(上海)股份有限公司 A kind of screen parameter configuration system
JP7264245B2 (en) * 2019-06-05 2023-04-25 富士通株式会社 Log Acquisition Program, Log Acquisition Method, Information Processing Device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234260A (en) * 2007-03-20 2008-10-02 Fujitsu Ltd Assumed operation condition analysis program, assumed operation condition analysis device and assumed operation condition analysis method
EP2513800B1 (en) * 2009-12-15 2021-08-04 Synopsys, Inc. Methods and systems of detecting and analyzing correlated operations in a common storage
JP2011141775A (en) * 2010-01-08 2011-07-21 Hitachi Ltd Data flow recording/reproducing system
JP5303795B2 (en) * 2010-06-02 2013-10-02 株式会社日立製作所 Application analysis method, analysis system, and analysis program

Also Published As

Publication number Publication date
JP2017004500A (en) 2017-01-05

Similar Documents

Publication Publication Date Title
US11100420B2 (en) Input processing for machine learning
CN111459985B (en) Identification information processing method and device
US9135351B2 (en) Data processing method and distributed processing system
JP5756386B2 (en) Method, apparatus, and program for supporting generation and management of metadata for correcting problems of dynamic web application
US20150379425A1 (en) Consistent filtering of machine learning data
JP5203733B2 (en) Coordinator server, data allocation method and program
US20150379423A1 (en) Feature processing recipes for machine learning
CN108647357B (en) Data query method and device
JP2019519027A (en) Learning from historical logs and recommending database operations on data assets in ETL tools
CN107391632B (en) Database storage processing method and device, computing equipment and computer storage medium
CN110046155B (en) Method, device and equipment for updating feature database and determining data features
JP2018067302A (en) Software service execution device, system, and method
JP6634938B2 (en) Analysis support method, analysis support program, and analysis support device
US8051110B2 (en) Identifying screen flows to support multiple entities and their diverse rules with a single application instance
JP4750628B2 (en) Information ranking method and apparatus, program, and computer-readable recording medium
JP2016162016A (en) Management information acquisition program, management information acquisition method, and management information acquisition device
US7610293B2 (en) Correlation of resource usage in a database tier to software instructions executing in other tiers of a multi tier application
WO2019123703A1 (en) Data analysis assistance device, data analysis assistance method, and data analysis assistance program
JP2012133694A (en) Demand prediction method
US11294669B2 (en) Method and computer-program-product determining measures for the development, design and/or deployment of complex embedded or cyber-physical systems, in particular complex software architectures used therein, of different technical domains
CN110019357B (en) Database query script generation method and device
WO2019123704A1 (en) Data analysis assistance device, data analysis assistance method, and data analysis assistance program
KR20190020363A (en) Method and apparatus for analyzing program by associating dynamic analysis with static analysis
CN109800015A (en) A kind of data configuration management method, equipment and computer readable storage medium
JP6870454B2 (en) Analytical equipment, analytical programs and analytical methods

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191009

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191202

R150 Certificate of patent or registration of utility model

Ref document number: 6634938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150