12.8.1 データベースを経由した解析
データベースを経由した解析についての説明です。
データベースを経由した解析の種類
データベースを経由した解析では,データベースの表名または列名を,影響調査および影響波及分析の対象として,影響波及を解析します。
-
データベースの表名や列名を起点とした影響波及の解析
データベースを経由した解析が可能な形式でCOBOLソースファイルを登録し,データベースの表名または列名を調査対象データ項目に指定します。これによって,表名または列名を解析の起点として,影響波及元解析と影響波及先解析を実行し,解析結果を調査できます。
図12‒6 データベースの表名や列名を解析の起点とした影響波及の解析 この図に示すように,調査対象データ項目「氏名」を解析の起点として,影響波及元(埋め込み変数)からの影響波及の連鎖,および影響波及先(埋め込み変数)への影響波及の連鎖を求めます。
-
データベースの表名や列名を経由した影響波及の解析
データベースを経由した解析が可能な形式でCOBOLソースファイルを登録すると,データベースの表名や列名とデータ項目間の影響2項関係を抽出し,表名や列名を経由した影響波及元解析と影響波及先解析が実行できます。これによって,同じ表や列を操作するデータ項目間のつながりが可視化されます。
図12‒7 データベースの表名や列名を経由した影響波及の解析 この図に示すように,「氏名」と作用対象にある埋め込み変数が影響2項関係として抽出されます。
データベースを経由した解析の手順
データベースを経由した解析を使用して影響波及を解析する手順を次に示します。
-
環境変数CBLDIA_MATERIAL_DBに「TRUE」を指定して,データ影響波及分析用データベースを作成する
-
-DBDataオプションを指定してcbldiaコマンドを実行する
なお,手順1で同時に環境変数CBLDIA_MATERIAL_DB_CHECKに「TRUE」を指定すると,データベースの表や列とCOBOLデータ項目の影響関係を抽出できないSQL文をコンパイルメッセージで検出できます。
データベースの表や列とCOBOLデータ項目の影響関係を抽出する場合は,-SQLコンパイラオプションを指定しないでください。
データベースを経由した解析でのプログラム情報収集(影響2項関係の抽出)
データベースを経由した解析で,影響2項関係を抽出するSQL文と,その文から抽出する影響2項関係を次に示します。
項番 |
SQL文 |
影響2項関係 |
||
---|---|---|---|---|
文 |
構文 |
影響を与える作用対象 |
影響を受ける作用対象 |
|
1 |
SELECT |
SELECT 〔{ALL|DISTINCT}〕 {列名〔,列名〕...} INTO 埋め込み変数〔,埋め込み変数〕... FROM 表名 |
表名 |
表名.列名 |
表名.列名 |
埋め込み変数 |
|||
2 |
INSERT (列名あり) |
INSERT INTO 表名〔 (列名〔,列名〕...)〕 VALUES ( 埋め込み変数〔,埋め込み変数〕...) |
埋め込み変数 |
表名.列名 |
表名.列名 |
表名 |
|||
3 |
INSERT (列名なし) |
INSERT INTO 表名 VALUES ( 埋め込み変数〔,埋め込み変数〕...) |
埋め込み変数 |
表名 |
4 |
UPDATE |
UPDATE 表名 SET 列名=埋め込み変数〔,列名=埋め込み変数〕... |
埋め込み変数 |
表名.列名 |
表名.列名 |
表名 |
- 抽出規則
-
-
構文に一致するSQL文だけが影響2項関係の抽出対象です。
-
構文の「列名」「表名」は,マニュアル「COBOL2002 言語 拡張仕様編」の「全般規則(データベースアクセス機能)」に従います。
-
認可識別子の指定がある場合,影響2項関係の抽出対象外になります。
-
標識変数の指定がある場合,影響2項関係の抽出対象外になります。
-
関連項目