(57)【特許請求の範囲】
【請求項１】
プログラムされたコンピュータ処理により、ＤＢ設計の際に必要なＥＲ図と、ＥＲ図より開発されたＳＱＬとの整合性を検証するＳＱＬ検証システムであって、
プログラムされたコンピュータ処理を実行する手段として、
予め作成されたＥＲ図情報から、当該ＥＲ図を構成するエンティティ情報とカラム情報を取得し、取得した情報を用いて、当該ＥＲ図におけるエンティティ名とカラム名と対応付けたエンティティ名カラム名対応リストテーブルを生成して記憶装置に格納するＥＲ図情報取得処理手段と、
予め作成されたＳＱＬから各ＳＱＬ情報を読み出し、ＳＱＬ情報テーブルを生成して記憶装置に格納するＳＱＬ情報取得処理手段と、
予め作成されたＥＲ図履歴情報から上記エンティティ情報とカラム情報の更新履歴情報を読み出し、上記エンティティ名カラム名対応リストテーブルにおける情報との差分を取得し、該取得した差分を履歴差分として上記ＥＲ図履歴情報に追加することで該ＥＲ図履歴情報を更新するＥＲ図履歴情報更新処理手段と、
該ＥＲ図履歴情報更新処理手段が更新したＥＲ図履歴情報を読み出し、ＥＲ図履歴情報テーブルを生成して記憶装置に格納するＥＲ図履歴情報取得処理手段と、
上記ＳＱＬ情報テーブルにおける各ＳＱＬを解析して、予め設定された予約語以外の字句を特定し、特定した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該ＳＱＬで使用しているエンティティ名を特定し、特定したエンティティ名に対して上記エンティティ名カラム名対応リストテーブルにおいて対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリストを生成して記憶装置に格納するＳＱＬ解析処理手段と、
上記使用エンティティカラムリストと上記エンティティ名カラム名対応リストテーブルを読み出し、上記使用エンティティカラムリストにおけるカラムが上記エンティティ名カラム名対応リストに存在するか否かをチェックすることで、上記ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、特定したカラムを登録する未使用エンティティカラムリストを生成して記憶装置に格納するＥＲ図−ＳＱＬ整合性チェック処理手段と、
上記ＥＲ図履歴情報テーブルと上記未使用エンティティカラムリストを読み出し、該未使用エンティティカラムリストに存在するエンティティおよびカラムが上記ＥＲ図履歴情報テーブルに存在するか否かを判別し、存在する場合、上記未使用エンティティカラムリストにおけるエンティティ名とカラム名を、上記ＥＲ図履歴情報テーブルにおける最新のエンティティ名とカラム名に補正し、存在しない場合、補正できないＳＱＬを登録したＳＱＬ検証結果ログを生成するＳＱＬ補正処理手段と、
予め指定されたユーザ指定ディレクトリを読み出し、該ディレクトリの配下に上記ＳＱＬ補正処理手段による補正結果を出力する出力処理手段と
を有することを特徴とするＳＱＬ検証システム。
【請求項２】
プログラムされたコンピュータ処理により、ＤＢ設計の際に必要なＥＲ図と、ＥＲ図より開発されたＳＱＬとの整合性を検証するＳＱＬ検証システムであって、
プログラムされたコンピュータ処理を実行する手段として、
予め作成されたＥＲ図情報から、当該ＥＲ図を構成するエンティティ情報とカラム情報を取得し、取得した情報を用いて、当該ＥＲ図におけるエンティティ名とカラム名と対応付けたエンティティ名カラム名対応リストテーブルを生成して記憶装置に格納するＥＲ図情報取得処理手段と、
予め作成されたＥＲ図履歴情報から上記エンティティ情報とカラム情報の更新履歴情報を読み出し、上記エンティティ名カラム名対応リストテーブルにおける情報との差分を取得し、該取得した差分を履歴差分として上記ＥＲ図履歴情報に追加することで該ＥＲ図履歴情報を更新するＥＲ図履歴情報更新処理手段と、
該ＥＲ図履歴情報更新処理手段が更新したＥＲ図履歴情報を読み出し、ＥＲ図履歴情報テーブルを生成して記憶装置に格納するＥＲ図履歴情報取得処理手段と、
予め作成されたＳＱＬから各ＳＱＬ情報を読み出し、ＳＱＬ情報テーブルを生成して記憶装置に格納するＳＱＬ情報取得処理手段と、
予め作成されたプロジェクト開発規約からプロジェクト開発規約情報を読み出し、プロジェクト開発規約テーブルを生成して記憶装置に格納するプロジェクト開発規約取得処理手段と、
予め作成されたＳＱＬ予約語リストから各ＳＱＬ予約語リスト情報を読み出し、ＳＱＬ予約語テーブルを生成して記憶装置に格納するＳＱＬ予約語リスト取得処理手段と、
上記ＳＱＬ情報テーブルにおける各ＳＱＬを解析して上記ＳＱＬ予約語テーブルに格納された予約語と予約語以外の字句に分解し、分解した予約語を使用予約語リストに格納すると共に、分解した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該ＳＱＬで使用しているエンティティ名を特定し、特定したエンティティ名に対して上記エンティティ名カラム名対応リストテーブルにおいて対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリストを生成して記憶装置に格納するＳＱＬ解析処理手段と、
上記使用エンティティカラムリストと上記エンティティ名カラム名対応リストテーブルを読み出し、上記使用エンティティカラムリストにおけるカラムが上記エンティティ名カラム名対応リストに存在するか否かをチェックすることで、上記ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、特定したカラムを登録する未使用エンティティカラムリストを生成して記憶装置に格納するＥＲ図−ＳＱＬ整合性チェック処理手段と、
上記ＥＲ図履歴情報テーブルと上記未使用エンティティカラムリストを読み出し、該未使用エンティティカラムリストに存在するエンティティおよびカラムが上記ＥＲ図履歴情報テーブルに存在するか否かを判別し、存在する場合、上記未使用エンティティカラムリストにおけるエンティティ名とカラム名を、上記ＥＲ図履歴情報テーブルにおける最新のエンティティ名とカラム名に補正し、存在しない場合、補正できないＳＱＬを登録したＳＱＬ検証結果ログを生成するＳＱＬ補正処理手段と、
上記プロジェクト開発規約テーブルと上記使用予約語リストを読み出し、該使用予約語リストに格納された各ＳＱＬの予約語が、上記プロジェクト開発規約テーブルに格納されたプロジェクト開発規約に準拠しているかを検証し、準拠していない場合、プロジェクト準拠違反としてＳＱＬ検証結果ログに情報を格納するプロジェクト準拠チェック処理手段と、
予め指定されたユーザ指定ディレクトリを読み出し、該ディレクトリの配下に上記ＳＱＬ検証結果ログと上記ＳＱＬ補正処理手段による補正結果を出力する出力処理手段と
を有することを特徴とするＳＱＬ検証システム。
【請求項３】
コンピュータを、請求項１または請求項２に記載のＳＱＬ検証システムにおける各手段として機能させるためのプログラム。
【請求項４】
コンピュータ装置のプログラムされたコンピュータ処理により、ＤＢ設計の際に必要なＥＲ図と、ＥＲ図より開発されたＳＱＬとの整合性を検証するＳＱＬ検証方法であって、
プログラムされたコンピュータ処理を実行する手段として、
ＥＲ図情報取得処理手段とＳＱＬ情報取得処理手段、ＥＲ図履歴情報更新処理手段、ＥＲ図履歴情報取得処理手段、ＳＱＬ解析処理手段、ＥＲ図−ＳＱＬ整合性チェック処理手段、出力処理手段を具備し、
上記ＥＲ図情報取得処理手段は、予め作成されたＥＲ図情報から、当該ＥＲ図を構成するエンティティ情報とカラム情報を取得し、取得した情報を用いて、当該ＥＲ図におけるエンティティ名とカラム名と対応付けたエンティティ名カラム名対応リストテーブルを生成して記憶装置に格納し、
上記ＳＱＬ情報取得処理手段は、予め作成されたＳＱＬから各ＳＱＬ情報を読み出し、ＳＱＬ情報テーブルを生成して記憶装置に格納し、
上記ＥＲ図履歴情報更新処理手段は、予め作成されたＥＲ図履歴情報から上記エンティティ情報とカラム情報の更新履歴情報を読み出し、上記エンティティ名カラム名対応リストテーブルにおける情報との差分を取得し、該取得した差分を履歴差分として上記ＥＲ図履歴情報に追加することで該ＥＲ図履歴情報を更新し、
上記ＥＲ図履歴情報取得処理手段は、上記ＥＲ図履歴情報更新処理手段が更新したＥＲ図履歴情報を読み出し、ＥＲ図履歴情報テーブルを生成して記憶装置に格納し、
上記ＳＱＬ解析処理手段は、上記ＳＱＬ情報テーブルにおける各ＳＱＬを解析して、予め設定された予約語以外の字句を特定し、特定した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該ＳＱＬで使用しているエンティティ名を特定し、特定したエンティティ名に対して上記エンティティ名カラム名対応リストテーブルにおいて対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリストを生成して記憶装置に格納し、
上記ＥＲ図−ＳＱＬ整合性チェック処理手段は、上記使用エンティティカラムリストと上記エンティティ名カラム名対応リストテーブルを読み出し、上記使用エンティティカラムリストにおけるカラムが上記エンティティ名カラム名対応リストに存在するか否かをチェックすることで、上記ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、特定したカラムを登録する未使用エンティティカラムリストを生成して記憶装置に格納し、
上記ＳＱＬ補正処理手段は、上記ＥＲ図履歴情報テーブルと上記未使用エンティティカラムリストを読み出し、該未使用エンティティカラムリストに存在するエンティティおよびカラムが上記ＥＲ図履歴情報テーブルに存在するか否かを判別し、存在する場合、上記未使用エンティティカラムリストにおけるエンティティ名とカラム名を、上記ＥＲ図履歴情報テーブルにおける最新のエンティティ名とカラム名に補正し、存在しない場合、補正できないＳＱＬを登録したＳＱＬ検証結果ログを生成し、
上記出力処理手段は、予め指定されたユーザ指定ディレクトリを読み出し、該ディレクトリの配下に上記ＳＱＬ補正処理手段による補正結果を出力する
ことを特徴とするＳＱＬ検証方法。
【請求項５】
コンピュータ装置のプログラムされたコンピュータ処理により、ＤＢ設計の際に必要なＥＲ図と、ＥＲ図より開発されたＳＱＬとの整合性を検証するＳＱＬ検証方法であって、
プログラムされたコンピュータ処理を実行する手段として、
ＥＲ図情報取得処理手段とＥＲ図履歴情報更新処理手段、ＥＲ図履歴情報取得処理手段、ＳＱＬ情報取得処理手段、プロジェクト開発規約取得処理手段、ＳＱＬ予約語リスト取得処理手段、ＳＱＬ解析処理手段、ＥＲ図−ＳＱＬ整合性チェック処理手段、ＳＱＬ補正処理手段、プロジェクト準拠チェック処理手段、出力処理手段を具備し、
上記ＥＲ図情報取得処理手段は、予め作成されたＥＲ図情報から、当該ＥＲ図を構成するエンティティ情報とカラム情報を取得し、取得した情報を用いて、当該ＥＲ図におけるエンティティ名とカラム名と対応付けたエンティティ名カラム名対応リストテーブルを生成して記憶装置に格納し、
上記ＥＲ図履歴情報更新処理手段は、予め作成されたＥＲ図履歴情報から上記エンティティ情報とカラム情報の更新履歴情報を読み出し、上記エンティティ名カラム名対応リストテーブルにおける情報との差分を取得し、該取得した差分を履歴差分として上記ＥＲ図履歴情報に追加することで該ＥＲ図履歴情報を更新し、
上記ＥＲ図履歴情報取得処理手段は、上記ＥＲ図履歴情報更新処理手段が更新したＥＲ図履歴情報を読み出し、ＥＲ図履歴情報テーブルを生成して記憶装置に格納し、
上記ＳＱＬ情報取得処理手段は、予め作成されたＳＱＬから各ＳＱＬ情報を読み出し、ＳＱＬ情報テーブルを生成して記憶装置に格納し、
上記プロジェクト開発規約取得処理手段は、予め作成されたプロジェクト開発規約からプロジェクト開発規約情報を読み出し、プロジェクト開発規約テーブルを生成して記憶装置に格納し、
上記ＳＱＬ予約語リスト取得処理手段は、予め作成されたＳＱＬ予約語リストから各ＳＱＬ予約語リスト情報を読み出し、ＳＱＬ予約語テーブルを生成して記憶装置に格納し、
上記ＳＱＬ解析処理手段は、上記ＳＱＬ情報テーブルにおける各ＳＱＬを解析して上記ＳＱＬ予約語テーブルに格納された予約語と予約語以外の字句に分解し、分解した予約語を使用予約語リストに格納すると共に、分解した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該ＳＱＬで使用しているエンティティ名を特定し、特定したエンティティ名に対して上記エンティティ名カラム名対応リストテーブルにおいて対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリストを生成して記憶装置に格納し、
上記ＥＲ図−ＳＱＬ整合性チェック処理手段は、上記使用エンティティカラムリストと上記エンティティ名カラム名対応リストテーブルを読み出し、上記使用エンティティカラムリストにおけるカラムが上記エンティティ名カラム名対応リストに存在するか否かをチェックすることで、上記ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、特定したカラムを登録する未使用エンティティカラムリストを生成して記憶装置に格納し、
上記ＳＱＬ補正処理手段は、上記ＥＲ図履歴情報テーブルと上記未使用エンティティカラムリストを読み出し、該未使用エンティティカラムリストに存在するエンティティおよびカラムが上記ＥＲ図履歴情報テーブルに存在するか否かを判別し、存在する場合、上記未使用エンティティカラムリストにおけるエンティティ名とカラム名を、上記ＥＲ図履歴情報テーブルにおける最新のエンティティ名とカラム名に補正し、存在しない場合、補正できないＳＱＬを登録したＳＱＬ検証結果ログを生成し、
上記プロジェクト準拠チェック処理手段は、上記プロジェクト開発規約テーブルと上記使用予約語リストを読み出し、該使用予約語リストに格納された各ＳＱＬの予約語が、上記プロジェクト開発規約テーブルに格納されたプロジェクト開発規約に準拠しているかを検証し、準拠していない場合、プロジェクト準拠違反としてＳＱＬ検証結果ログに情報を格納し、
上記出力処理手段は、予め指定されたユーザ指定ディレクトリを読み出し、該ディレクトリの配下に上記ＳＱＬ検証結果ログと上記ＳＱＬ補正処理手段による補正結果を出力する
ことを特徴とするＳＱＬ検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リレーショナルデータベースマネージメントシステム（ＲＤＢＭＳ）において、データの操作や定義を行うための問い合わせ言語であるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）の自動作成技術に係り、特に、作成されたＳＱＬの検証を効率的に行うのに好適な技術に関するものである。
【背景技術】
【０００２】
従来、ＳＱＬをコンピュータにより自動的に生成する技術として、例えば、特許文献１や特許文献２に記載された技術が知られている。特許文献１に記載された技術は、ＳＱＬとＥＲ図（Ｅｎｔｉｔｙ  Ｒｅｌａｔｉｏｎｓｈｉｐ  Ｄｉａｇｒａｍ；テーブルとテーブルの関連を表現する図）との関連性に関するシステム管理技術であり、自動作成したＳＱＬについて変換前と変換後の整合性をチェックして当該ＳＱＬの検証を行う。また、特許文献２においては、ＥＲ図からＳＱＬを自動生成する技術が記載されている。
【０００３】
前述した特許文献１に記載の技術では、データベースシステムよりＳＱＬを生成することができ、また、前述した特許文献２に記載の技術では、ＥＲ図よりＳＱＬを生成することができる。しかし、いずれの技術においても、開発者が自由に記述したＳＱＬの整合性を検証することはできない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１５２３６９号公報
【特許文献２】特開平０７−３２５８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
解決しようとする問題点は、従来の技術では、開発者が自由に記述したＳＱＬの整合性を検証することができない点である。
【０００６】
本発明の目的は、これら従来技術の課題を解決し、人手を介さずに、開発者が自由に記述したＳＱＬを対象として、当該ＳＱＬの根拠となるＥＲ図との整合性を検証し、また、その検証結果を用いて、当該ＳＱＬを補正し、かつ、補正情報を開発者に通知することにより、ＳＱＬの開発を正確かつ迅速に行えるようにすることである。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明は、ＥＲ図を用いてＤＢシステムを管理する中〜大規模業務システムの開発において、ＤＢの構築前に、コンパイラが不要の環境で、ＳＱＬとＥＲ図（ＤＢシステム）との整合性の検証が人手を介さずに可能とするために、（１）プログラムされたコンピュータ処理を実行する処理部として、予め作成されたＥＲ図情報から、当該ＥＲ図を構成するエンティティ情報とカラム情報を取得し、取得した情報を用いて、当該ＥＲ図におけるエンティティ名とカラム名と対応付けたエンティティ名カラム名対応リストテーブルを生成して記憶装置に格納するＥＲ図情報取得処理部と、予め作成されたＳＱＬから各ＳＱＬ情報を読み出し、ＳＱＬ情報テーブルを生成して記憶装置に格納するＳＱＬ情報取得処理部と、ＳＱＬ情報テーブルにおける各ＳＱＬを解析して、予め設定された予約語以外の字句を特定し、特定した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該ＳＱＬで使用しているエンティティ名を特定し、特定したエンティティ名に対して上記エンティティ名カラム名対応リストテーブルにおいて対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリストを生成して記憶装置に格納するＳＱＬ解析処理部と、使用エンティティカラムリストとエンティティ名カラム名対応リストテーブルを読み出し、使用エンティティカラムリストにおけるカラムがエンティティ名カラム名対応リストに存在するか否かをチェックすることで、ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定するＥＲ図−ＳＱＬ整合性チェック処理部とを有する構成とする。（２）また、プログラムされたコンピュータ処理を実行する処理部として、さらにＥＲ図履歴情報更新処理部とＥＲ図履歴情報取得処理部および出力処理部を設け、このＥＲ図履歴情報更新処理部において、予め作成されたＥＲ図履歴情報からエンティティ情報とカラム情報の更新履歴情報を読み出し、エンティティ名カラム名対応リストテーブルにおける情報との差分を取得し、取得した差分を履歴差分としてＥＲ図履歴情報に追加することでＥＲ図履歴情報を更新し、ＥＲ図履歴情報取得処理部において、ＥＲ図履歴情報更新処理部が更新したＥＲ図履歴情報を読み出し、ＥＲ図履歴情報テーブルを生成して記憶装置に格納し、ＳＱＬ解析処理部において、ＳＱＬ情報テーブルにおける各ＳＱＬを解析して、使用エンティティカラムリストを生成して記憶装置に格納し、ＥＲ図−ＳＱＬ整合性チェック処理部において、使用エンティティカラムリストとエンティティ名カラム名対応リストテーブルを読み出し、使用エンティティカラムリストにおけるカラムがエンティティ名カラム名対応リストに存在するか否かをチェックすることで、ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、特定したカラムを登録する未使用エンティティカラムリストを生成して記憶装置に格納し、ＳＱＬ補正処理部において、ＥＲ図履歴情報テーブルと未使用エンティティカラムリストを読み出し、この未使用エンティティカラムリストに存在するエンティティおよびカラムがＥＲ図履歴情報テーブルに存在するか否かを判別し、存在する場合、未使用エンティティカラムリストにおけるエンティティ名とカラム名を、ＥＲ図履歴情報テーブルにおける最新のエンティティ名とカラム名に補正し、存在しない場合、補正できないＳＱＬを登録したＳＱＬ検証結果ログを生成し、出力処理部において、予め指定されたユーザ指定ディレクトリを読み出し、このディレクトリの配下にＳＱＬ補正処理部による補正結果（ＳＱＬ補正結果）を出力することで、ＥＲ図を入力としてＥＲ図履歴情報が作成され、ＳＱＬのエンティティ名、カラム名を補正することを可能とする。
（３）また、プログラムされたコンピュータ処理を実行する処理部として、
さらにＳＱＬ予約語リスト取得処理部とプロジェクト準拠チェック処理部を設け、
プロジェクト開発規約取得処理部において、予め作成されたプロジェクト開発規約からプロジェクト開発規約情報を読み出し、プロジェクト開発規約テーブルを生成して記憶装置に格納し、ＳＱＬ解析処理部において、ＳＱＬ情報テーブルにおける各ＳＱＬを解析して、ＳＱＬ予約語テーブルに設定された予約語と予約語以外の字句に分解し、分解した予約語を使用予約語リストに格納すると共に、分解した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該エンティティ名を特定し、特定したエンティティ名に対してエンティティ名カラム名対応リストテーブルにおいて対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリストを生成して記憶装置に格納し、ＥＲ図−ＳＱＬ整合性チェック処理部において、使用エンティティカラムリストとエンティティ名カラム名対応リストテーブルを読み出し、使用エンティティカラムリストにおけるカラムがエンティティ名カラム名対応リストに存在するか否かをチェックすることで、ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、プロジェクト準拠チェック処理部において、プロジェクト開発規約テーブルと使用予約語リストを読み出し、この使用予約語リストに格納された各ＳＱＬの予約語が、プロジェクト開発規約テーブルに格納されたプロジェクト開発規約に準拠しているかを検証し、準拠していない場合、プロジェクト準拠違反としてＳＱＬ検証結果ログに情報を格納し、出力処理部において、予め指定されたユーザ指定ディレクトリを読み出し、このディレクトリの配下にＳＱＬ検証結果ログを出力することにより、予約語を外部ファイルとして保持することで、様々な機種のＳＱＬに対応することを可能となると共に、プロジェクトの開発規約を外部ファイルとして保持することにより、ＳＱＬがプロジェクトの開発規約に準拠しているか否かを検証することが可能となる。
【発明の効果】
【０００８】
本発明によれば、開発者が記述したＳＱＬとＥＲ図との整合性の検証、ＳＱＬの補正およびプロジェクト準拠チェックが人手を介することなく瞬時に実行できるため、ＳＱＬの検証・補正にかかる作業効率が向上する。また、コンパイラが不要なため、プロジェクトにおいてもデータベース環境の構築は不要であり、データベース環境に縛られることなく迅速なＳＱＬの開発が可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係るＳＱＬ検証システムとしてのＳＱＬ検証・補正システムの構成例を示すブロック図である。
【図２】図１におけるＥＲ図情報取得処理部の処理動作例を示すフローチャートである。
【図３】図１におけるＥＲ図履歴情報更新処理部の処理動作例を示すフローチャートである。
【図４】図１におけるＥＲ図履歴情報取得処理部の処理動作例を示すフローチャートである。
【図５】図１におけるＳＱＬ情報取得処理部の処理動作例を示すフローチャートである。
【図６】図１におけるプロジェクト開発規約取得処理部の処理動作例を示すフローチャートである。
【図７】図１におけるＳＱＬ予約語リスト取得処理部の処理動作例を示すフローチャートである。
【図８】図１におけるＳＱＬ解析処理部の処理動作例を示すフローチャートである。
【図９】図１におけるＥＲ図−ＳＱＬ整合性チェック処理部の処理動作例を示すフローチャートである。
【図１０】図１におけるＳＱＬ補正処理部の処理動作例を示すフローチャートである。
【図１１】図１におけるプロジェクト準拠チェック処理部の処理動作例を示すフローチャートである。
【図１２】図１における出力処理部の処理動作例を示すフローチャートである。
【図１３】図１におけるＥＲ図情報の構成例を示す説明図である。
【図１４】図１におけるエンティティ名カラム名対応リストテーブルの構成例を示す説明図である。
【図１５】図１におけるＥＲ図歴利情報の構成例を示す説明図である。
【図１６】図１におけるＳＱＬ情報の構成例を示す説明図である。
【図１７】図１におけるプロジェクト開発規約の構成例を示す説明図である。
【図１８】図１におけるＳＱＬ予約語リストの構成例を示す説明図である。
【図１９】図１における使用予約語リストの構成例を示す説明図である。
【図２０】図１における使用エンティティカラムリストの構成例を示す説明図である。
【図２１】図１における未使用エンティティカラムリストの構成例を示す説明図である。
【図２２】図１におけるユーザ指定ディレクトリの構成例を示す説明図である。
【図２３】図１におけるＳＱＬ補正結果の出力構成例を示す説明図である。
【図２４】図１におけるＳＱＬ検証結果ログの出力構成例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下、図を用いて本発明を実施するための形態例を説明する。図１において、１００は本発明に係るＳＱＬ検証システムとしての処理を実行するＳＱＬ検証・補正システム、１０１はＥＲ図情報１０２を格納したＥＲ図情報格納サーバ、１０３はＬＡＮやインターネット等のネットワークである。
【００１１】
ＳＱＬ検証・補正システム１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、表示装置、入力装置、外部記憶装置等を有するコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、本発明に係る処理を実行する。
【００１２】
本例のＳＱＬ検証・補正システム１００は、プログラムされたコンピュータ処理を実行する機能として、ＥＲ図情報取得処理部（図中「ＥＲ図情報取得処理」と記載）１０４と、ＥＲ図履歴情報更新処理部（図中「ＥＲ図履歴情報更新処理」と記載）１０６、ＥＲ図履歴情報取得処理部（図中「ＥＲ図履歴情報取得処理」と記載）１０８、ＳＱＬ情報取得処理部（図中「ＳＱＬ情報取得処理」と記載）１１０、プロジェクト開発規約取得処理部（図中「プロジェクト開発規約取得処理」と記載）１１３、ＳＱＬ予約語リスト取得処理部（図中「ＳＱＬ予約語リスト取得処理」と記載）１１６、ＳＱＬ解析処理部（図中「ＳＱＬ解析処理」と記載）１１９、ＥＲ図−ＳＱＬ整合性チェック処理部（図中「ＥＲ図−ＳＱＬ整合性チェック処理」と記載）１２２、ＳＱＬ補正処理部（図中「ＳＱＬ補正処理」と記載）１２４、プロジェクト準拠チェック処理部（図中「プロジェクト準拠チェック処理」と記載）１２５、出力処理部（図中「出力処理」と記載）１２６を具備する。
【００１３】
このような構成により、ＳＱＬ検証・補正システム１００は、データベース（ＤＢ）設計の際に必要なＥＲ図と、ＥＲ図より開発されたＳＱＬの整合性を、人手を介せずにコンピュータ上で自動的に検証し、また自動的にＳＱＬを補正する。
【００１４】
すなわち、ＳＱＬ検証・補正システム１００は、ＥＲ図情報取得処理部１０４において、ネットワーク１０３を介してＥＲ図情報格納サーバ１０１から、図１３に詳細を示すＥＲ図情報１０２を取得して、図１４に示す構成のエンティティ名カラム名対応リストテーブル１０５に格納し、ＥＲ図履歴情報更新処理部１０６において、ＥＲ図履歴情報１０７を更新し、ＥＲ図履歴情報取得処理部１０８においては、ＥＲ図履歴情報１０７を取得し図１５に示す構成のＥＲ図履歴情報テーブル１０９に格納する。
【００１５】
また、ＳＱＬ情報取得処理部１１０においては、図１６に示すＳＱＬ情報１１１を取得してＳＱＬ情報テーブル１１２に格納し、プロジェクト開発規約取得処理部１１３により、図１７に示すプロジェクト開発規約１１４を取得してプロジェクト開発規約テーブル１１５に格納し、ＳＱＬ予約語リスト取得処理部１１６により、図１８に示すＳＱＬ予約語リスト１１７を取得しＳＱＬ予約語テーブル１１８に格納する。
【００１６】
そして、ＳＱＬ解析処理部１１９において、ＳＱＬ情報テーブル１１２とＳＱＬ予約語テーブル１１８およびエンティティ名カラム名対折リストテーブル１０５を入力してＳＱＬを解析し、図１９に示す使用予約語リスト１２０と図２０に示す使用エンティティカラムリスト１２１に分解して出力する。
【００１７】
また、ＥＲ図−ＳＱＬ整合性チェック処理部１２２において、使用エンティティカラムリスト１２１とエンティティ名カラム名対応リストテーブル１０５を入力してＥＲ図とＳＱＬの整合性をチェックして図２１に示す未使用エンティティカラムリスト１２３を出力し、ＳＱＬ補正処理部１２４において、ＥＲ図履歴情報テーブル１０９と未使用エンティティカラムリスト１２３を入力してＳＱＬの補正を実施し、プロジェクト準拠チェック処理部１２５において、使用予約語リスト１２０とプロジェクト開発規約テーブル１１５を入力してプロジェクト準拠をチェックし、出力処理部１２６により、図２２に例示するユーザ指定ディレクトリ１２７配下に、図２３に示すＳＱＬ検証結果ログ１２９と図２４に示すＳＱＬ補正結果１２８を出力する。
【００１８】
より具体的には、ＥＲ図情報取得処理部１０４は、予め作成されＥＲ図情報格納サーバ１０１に格納されたＥＲ図情報１０２から、当該ＥＲ図を構成するエンティティ情報とカラム情報を取得し、取得した情報を用いて、当該ＥＲ図におけるエンティティ名とカラム名と対応付けたエンティティ名カラム名対応リストテーブル１０５を生成して図示していない記憶装置に格納し、ＳＱＬ情報取得処理部１１０は、予め作成されたＳＱＬ情報（ワークシート）１１１から各ＳＱＬ情報を読み出し、ＳＱＬ情報テーブル１１２を生成して記憶装置に格納し、ＳＱＬ解析処理部１１９は、ＳＱＬ情報テーブル１１２における各ＳＱＬを解析して、予めＳＱＬ予約語取得処理部１１６によりＳＱＬ予約語リスト１１７を基にＳＱＬ予約語テーブル１１８に設定された予約語以外の字句を特定し、特定した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該ＳＱＬで使用しているエンティティ名を特定し、特定したエンティティ名に対してエンティティ名カラム名対応リストテーブル１０５において対応付けられたカラム名を特定して、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリスト１２１を生成して記憶装置に格納し、ＥＲ図−ＳＱＬ整合性チェック処理部１２２は、使用エンティティカラムリスト１２１とエンティティ名カラム名対応リストテーブル１０５を読み出し、使用エンティティカラムリスト１２１におけるカラムがエンティティ名カラム名対応リスト１０５に存在するか否かをチェックすることで、ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定する。
【００１９】
また、ＥＲ図履歴情報更新処理部１０６は、予め作成されたＥＲ図履歴情報１０７からエンティティ情報とカラム情報の更新履歴情報を読み出し、エンティティ名カラム名対応リストテーブル１０５における情報との差分を取得し、取得した差分を履歴差分としてＥＲ図履歴情報１０７に追加することでＥＲ図履歴情報を更新し、ＥＲ図履歴情報取得処理部１０８は、ＥＲ図履歴情報更新処理部１０６が更新したＥＲ図履歴情報１０７を読み出し、ＥＲ図履歴情報テーブル１０９を生成して記憶装置に格納し、ＳＱＬ解析処理部１１９は、ＳＱＬ情報テーブル１１２における各ＳＱＬを解析して、使用エンティティカラムリスト１２１を生成して記憶装置に格納し、ＥＲ図−ＳＱＬ整合性チェック処理部１２２は、使用エンティティカラムリスト１２１とエンティティ名カラム名対応リストテーブル１０５を読み出し、使用エンティティカラムリスト１２１におけるカラムがエンティティ名カラム名対応リスト１０５に存在するか否かをチェックすることで、ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、特定したカラムを登録する未使用エンティティカラムリスト１２３を生成して記憶装置に格納し、ＳＱＬ補正処理部１２４は、ＥＲ図履歴情報テーブル１０９と未使用エンティティカラムリスト１２１を読み出し、この未使用エンティティカラムリスト１２１に存在するエンティティおよびカラムがＥＲ図履歴情報テーブル１０９に存在するか否かを判別し、存在する場合、未使用エンティティカラムリスト１２１におけるエンティティ名とカラム名を、ＥＲ図履歴情報テーブル１０９における最新のエンティティ名とカラム名に補正し、存在しない場合、補正できないＳＱＬを登録したＳＱＬ検証結果ログ１２９を生成し、出力処理部１２６は、予め指定されたユーザ指定ディレクトリ１２７を読み出し、このディレクトリの配下にＳＱＬ補正処理部１２４による補正結果（ＳＱＬ補正結果１２８）を出力する。
【００２０】
また、プロジェクト開発規約取得処理部１１３は、予め作成されたプロジェクト開発規約１１４からプロジェクト開発規約情報を読み出し、プロジェクト開発規約テーブル１１５を生成して記憶装置に格納し、ＳＱＬ解析処理部１１９は、ＳＱＬ情報テーブルにおける各ＳＱＬを解析して、ＳＱＬ予約語テーブル１１８に設定された予約語と予約語以外の字句に分解し、分解した予約語を使用予約語リスト１２０に格納すると共に、分解した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該エンティティ名を特定し、特定したエンティティ名に対してエンティティ名カラム名対応リストテーブル１０５において対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリスト１２１を生成して記憶装置に格納し、ＥＲ図−ＳＱＬ整合性チェック処理部１２２は、使用エンティティカラムリスト１２１とエンティティ名カラム名対応リストテーブル１０５を読み出し、使用エンティティカラムリスト１２１におけるカラムがエンティティ名カラム名対応リストに存在するか否かをチェックすることで、ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、プロジェクト準拠チェック処理部１２５は、プロジェクト開発規約テーブル１１５と使用予約語リスト１２０を読み出し、この使用予約語リスト１２０に格納された各ＳＱＬの予約語が、プロジェクト開発規約テーブル１１５に格納されたプロジェクト開発規約に準拠しているかを検証し、準拠していない場合、プロジェクト準拠違反としてＳＱＬ検証結果ログ１２９に情報を格納し、出力処理部１２６は、予め指定されたユーザ指定ディレクトリ１２７を読み出し、このディレクトリの配下にＳＱＬ検証結果ログ１２９を出力する。
【００２１】
このようにして、本例のＳＱＬ検証・補正システム１００では、ＥＲ図を用いてＤＢシステムを管理する中〜大規模業務システムの開発において、ＤＢの構築前に、コンパイラが不要の環境で、ＳＱＬとＥＲ図（ＤＢシステム）との整合性の検証が、人手を介さずに可能となる。
【００２２】
また、ＥＲ図を入力としてＥＲ図履歴情報１０７（ＥＲ図履歴情報テーブル１０９）が作成され、ＳＱＬのエンティティ名、カラム名を補正することが可能である。
【００２３】
また、予約語を外部ファイル（ＳＱＬ予約語リスト１１７、ＳＱＬ予約語テーブル１１８）として保持することにより、様々な機種のＳＱＬに対応することが可能である。
【００２４】
また、プロジェクトの開発規約を外部ファイル（プロジェクト開発規約１１４、プロジェクト開発規約テーブル１１５）として保持することにより、ＳＱＬがプロジェクトの開発規約に準拠しているか否かを検証することが可能である。
【００２５】
以下、図１〜図２４を用いて、このようなＳＱＬ検証・補正システム１００の構成とその動作を、より具体的に説明する。
【００２６】
一般に、中規模なコンピュータシステムや大規模なコンピュータシステムの開発においては、ＥＲ図を用いてデータベース（ＤＢ）システムを管理しＳＱＬの設計を行う。ＳＱＬの設計の際にＤＢとの整合性を確認しプロジェクト開発規約に則っているかの検証は必須であるが、この作業にはＤＢシステムを構築しコンパイラを用意する必要がある。
【００２７】
ＤＢの設計とＳＱＬの設計が同時に進行することが多い中規模・大規模なコンピュータシステムのプロジェクトにおいては、ＤＢ構築後にＳＱＬを検証するというプロセスはボトルネックとなる危険性がある。
【００２８】
本例のＳＱＬ検証・補正システム１００では、以下に説明するように、ＥＲ図とＳＱＬをワークシート形式で用意することにより、ＤＢシステムおよびコンパイラは不要とし、また、プロジェクト開発規約の準拠をチェックすることにより、迅速なＳＱＬの検証を可能とし、コンピュータシステム開発の効率化を図ることができる。
【００２９】
図１から図２３は、本発明の実施の形態を例示する図であり、これらの図において、同一の符号を付した部分は同一物を現し、基本的な構成および動作は同様であるものとする。
【００３０】
図１においては、本例のＳＱＬ検証・補正システム１００が適用されるコンピュータシステムの全体の構成例を示している。
【００３１】
ＳＱＬ検証・補正システム１００は、ＥＲ図情報格納サーバ１０１より取得したＥＲ図情報１０２とネットワーク１０３を介してＳＱＬ検証・補正システム１００と接続し、ＥＲ図情報１０２を取得してエンティティ名カラム名対応リストテーブル１０５に格納するＥＲ図情報取得処理部１０４と、ＥＲ図履歴情報１０７を更新するＥＲ図履歴情報更新処理部１０６、ＥＲ図履歴情報を取得しＥＲ図履歴情報テーブル１０９に格納するＥＲ図履歴情報取得処理部１０８、ＳＱＬ情報１１１を取得してＳＱＬ情報テーブル１１２に格納するＳＱＬ情報取得処理部１１０、プロジェクト開発規約１１４を取得してプロジェクト開発規約テーブル１１５に格納するプロジェクト開発規約取得処理部１１３、ＳＱＬ予約語リスト１１７を取得しＳＱＬ予約語テーブル１１８に格納するＳＱＬ予約語リスト取得処理部１１６、ＳＱＬ情報テーブル１１２ＳＱＬ予約語テーブル１１８エンティティ名カラム名対折リストテーブル１０５を入力としてＳＱＬを解析し使用エンティティカラムリスト１２１と使用予約語リスト１２０に分解出力するＳＱＬ解析処理部１１９、使用エンティティカラムリスト１２１、エンティティ名カラム名対応リストテーブル１０５を入力としてＥＲ図とＳＱＬの整合性をチェックして未使用エンティティカラムリスト１２３を出力するＥＲ図−ＳＱＬ整合性チェック処理部１２２、ＥＲ図履歴情報テーブル１０９と未使用エンティティカラムリスト１２３を入力としてＳＱＬの補正を実施するＳＱＬ補正処理部１２４、使用予約語リスト１２０とプロジェクト開発規約テーブル１１５を入力としてプロジェクト準拠をチェックするプロジェクト準拠チェック処理部１２５およびユーザ指定ディレクトリ１２７配下にＳＱＬ検証結果ログ１２９とＳＱＬ補正結果１２８を出力する出力処理部１２６より構成される。
【００３２】
図２においては、ＥＲ図情報取得処理部１０４の処理動作を示しており、ＥＲ図情報取得処理部１０４は、ＥＲ図を構成するエンティティ、カラム情報を取得しエンティティ名カラム名対応リストテーブル１０５を作成する。
【００３３】
すなわち、まず、ネットワーク１０３を介して入力されたＥＲ図情報格納サーバ１０１のＥＲ図情報１０２をオープンして（ステップ２０１）、ＥＲ図情報１０２よりエンティティ情報を取得し（ステップ２０２）、同様にＥＲ図情報１０２よりカラム情報を取得する（ステップ２０３）。
【００３４】
そして、ステップ２０２、２０３の処理で取得した情報を元にエンティティ名カラム名対応リストテーブル１０５を作成し（ステップ２０４）、ＥＲ図情報をクローズする（ステップ２０５）。
【００３５】
図３においては、ＥＲ図履歴情報更新処理部１０６の処理動作を示しており、ＥＲ図履歴情報更新処理部１０６は、ＥＲ図を構成するエンティティ、カラム情報の更新履歴を管理するＥＲ図履歴情報１０７を、現在のＥＲ図情報で更新し最新のＲ図履歴情報１０７を作成する。
【００３６】
すなわち、まず、外部ファイルであるＥＲ図履歴情報１０７をオープンして（ステップ３０１）、ＥＲ図履歴情報を取得する（ステップ３０２）。次に、エンティティ名カラム名対応リストテーブル１０５とＥＲ図履歴情報１０７との差分を取得し内部メモリに展開する（ステップ３０３）。
【００３７】
そして、ステップ３０３の処理で取得した差分を履歴差分としてＥＲ図履歴情報１０７に追加して（ステップ３０４）、ＥＲ図履歴情報１０７をクローズする（ステップ３０５）。
【００３８】
図４においては、ＥＲ図履歴情報取得処理部１０８の処理動作を示しており、ＥＲ図履歴情報取得処理部１０８は、ＥＲ図履歴情報更新処理部１０６で更新したＥＲ図履歴情報１０７を内部メモリに展開する。
【００３９】
すなわち、まず、外部ファイルであるＥＲ図履歴情報１０７をオープンし（ステップ４０１）、ＥＲ図履歴情報を取得して内部メモリに展開する（ステップ４０２）。そして、取得したＥＲ図履歴情報をＥＲ図履歴情報テーブルに格納し（ステップ４０３）、ＥＲ図履歴情報１０７をクローズする（ステップ４０４）。
【００４０】
図５においては、ＳＱＬ情報取得処理部１１０の処理動作を示しており、ＳＱＬ情報取得処理部１１０は、ＳＱＬ情報（ワークシート）より処理対象であるＳＱＬの情報を内部テーブルに格納する。
【００４１】
ＳＱＬ情報取得処理部１１０は、まず、外部ファイルであるＳＱＬ情報（ワークシート）１１１をオープンし（ステップ５０１）、ワークシートにＳＱＬ情報がある間、ステップ５０３からステップ５０４の処理を繰り返す（ステップ５０２）。
【００４２】
すなわち、ワークシートよりＳＱＬ情報を１件取得し（ステップ５０３）、取得したＳＱＬ情報をＳＱＬ情報テーブル１１２に格納する処理を繰り返し（ステップ５０４）、繰り返し処理が終わると（ステップ５０５）、ＳＱＬ情報をクローズする（ステップ５０６）。
【００４３】
図６においては、プロジェクト開発規約取得処理部１１３の処理動作を示しており、プロジェクト開発規約取得処理部１１３は、プロジェクト開発規約１１４情報をプロジェクト開発規約テーブル１１５に格納する。
【００４４】
プロジェクト開発規約取得処理部１１３は、まず、外部ファイルであるプロジェクト開発規約１１４をオープンし（ステップ６０１）、プロジェクト開発規約がある間、ステップ６０３からステップ６０４の処理を繰り返す（ステップ６０２）。
【００４５】
すなわち、プロジェクト開発規約を１件取得し（ステップ６０３）、取得したプロジェクト開発ルールをプロジェクト開発規約テーブル１１５に格納する処理を繰り返し（ステップ６０４）、繰り返し処理が終わると（ステップ６０５）、プロジェクト開発規約をクローズする（ステップ６０６）。
【００４６】
図７においては、ＳＱＬ予約語リスト取得処理部１１６の処理動作を示しており、ＳＱＬ予約語リスト取得処理部１１６は、ＳＱＬ予約語リスト１１７をＳＱＬ情報テーブル１１２に格納する。
【００４７】
すなわち、外部ファイルであるＳＱＬ予約語リスト１１７をオープンし（ステップ７０１）、ＳＱＬ予約語リスト情報を取得し（ステップ７０２）、取得したＳＱＬ予約語リスト情報をＳＱＬ予約語テーブル１１８に格納して（ステップ７０３）、ＳＱＬ予約語リスト１１７をクローズする（ステップ７０６）。
【００４８】
図８においては、ＳＱＬ解析処理部１１９の処理動作を示しており、このＳＱＬ解析処理部１１９は、ＳＱＬ情報テーブル１１２のＳＱＬを予約語と予約語以外の字句に分解し、予約語以外の字句より、当該ＳＱＬで使用しているエンティティ名とカラム名を確定し、使用エンティティカラムリスト１２１を作成する。
【００４９】
すなわち、ＳＱＬ解析処理部１１９は、まず、ＥＲ図情報取得処理部１０４で作成したエンティティ名カラム名対応リストテーブル１０５を読み出し（ロードし）（ステップ８０１）、ＳＱＬ予約語リスト取得処理部１１６で作成したＳＱＬ予約語テーブル１１８をロードし（ステップ８０２）、さらに、ＳＱＬ情報取得処理部１１０で作成したＳＱＬ情報１１２をロードする（ステップ８０３）。
【００５０】
次に、ＳＱＬ情報１１２にＳＱＬが存在する間、ステップ８０５からステップ８０９の処理を繰り返し実行する（ステップ８０４）。すなわち、ＳＱＬを予約語とその他の字句に分解し（ステップ８０５）、分解した予約語を使用予約語リスト１２０に格納する（ステップ８０６）。
【００５１】
そして、予約語以外の字句よりＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を確定し（ステップ８０７）、エイリアスよりＳＱＬで使用しているエンティティ名を確定する（ステップ８０８）。
【００５２】
さらに、エンティティ名とカラム名を紐付けして、使用エンティティカラムリスト１２１を作成し（ステップ８０９）、ステップ８０５〜８０９の処理を繰り返す（ステップ８１０）。尚、使用エンティティカラムリスト１２１は、当該ＳＱＬで使用しているエンティティ名およびカラム名を格納しているリストである。
【００５３】
図９においては、ＥＲ図−ＳＱＬ整合性チェック処理部１２２の処理動作を示しており、このＥＲ図−ＳＱＬ整合性チェック処理部１２２は、当該ＳＱＬで使用しているエンティティ名およびカラム名がＥＲ図に存在しているかを検証する。
【００５４】
すなわち、ＥＲ図−ＳＱＬ整合性チェック処理部１２２は、まず、使用エンティティカラムリスト１２１をロードすると共に（ステップ９０１）、エンティティ名カラム名対応リストテーブル１０５をロードする（ステップ９０２）。
【００５５】
そして、使用しているカラムがエンティティ名カラム名対応リストに存在するかをチェックし（ステップ９０３）、このステップ９０３でチェックしたカラムをエンティティ名カラム名対応リストテーブルに存在しない未使用エンティティカラムリスト１２３として出力する（ステップ９０４）。尚、未使用エンティティカラムリスト１２３は、ＥＲ図には存在しないが、当該ＳＱＬで使用しているエンティティ名およびカラム名を格納しているリストである。
【００５６】
図１０においては、ＳＱＬ補正処理部１２４の処理動作を示しており、このＳＱＬ補正処理部１２４は、当該ＳＱＬで使用しているエンティティ名およびカラム名についてＥＲ図に存在しない場合、ＥＲ図の履歴情報よりエンティティ名およびカラム名の修正履歴を取得し、修正履歴をさかのぼることにより現状のＥＲ図に存在するエンティティ名およびカラム名に補正する。
【００５７】
すなわち、ＳＱＬ補正処理部１２４は、ＥＲ図履歴情報テーブル１０９をロードすると共に（ステップ１００１）、未使用エンティティカラムリスト１２３をロードし（ステップ１００２）、未使用エンティティカラムリスト１２３に未使用エンティティカラムが存在する間、ステップ１００４からステップ１００７の処理を繰り返す（ステップ１００３）。
【００５８】
まず、未使用エンティティカラムリスト１２３のエンティティおよびカラムがＥＲ図履歴情報テーブル１０９に存在するかを判別するマッチング処理を実行する（ステップ１００４）。このステップ１００４でのマッチング処理の結果により、以下の処理に分岐する（ステップ１００５）。
【００５９】
一致する場合、未使用エンティティカラムリスト１２３のエンティティ名カラム名をＥＲ図履歴情報テーブル１０９より最新のエンティティ名カラム名に補正し（ステップ１００６）、また、一致しない場合、補正できないＳＱＬとしてＳＱＬ検証結果ログ１２９を作成する（ステップ１００７）。以上のステップ１００４〜１００７の処理を繰り返す（ステップ１００８）。
【００６０】
図１１においては、プロジェクト準拠チェック処理部１２５の処理動作を示しており、このプロジェクト準拠チェック処理部１２５は、当該ＳＱＬの記述内容がプロジェクト開発規約に違反していないかを検証する。
【００６１】
すなわち、プロジェクト準拠チェック処理部１２５は、プロジェクト開発規約取得処理部１１３で作成したプロジェクト開発規約テーブル１１５をロードすると共に（ステップ１１０１）、ＳＱＬ解析処理部１１９で作成した使用予約語リスト１２０をロードする。（ステップ１１０２）。そして、使用予約語リスト１２０にリストが存在する間、ステップ１１０４からステップ１１０６の処理を繰り返す（ステップ１１０３）。
【００６２】
まず、プロジェクト開発規約テーブル１１５と使用予約語リスト１２０のマッチング処理を行い、当該ＳＱＬがプロジェクト開発規約に準拠しているか否かをチェックする（ステップ１１０４）。
【００６３】
プロジェクト開発規約に準拠していない場合には（ステップ１１０５）、プロジェクト準拠違反としてＳＱＬ検証結果ログ１２９に情報を追加し（ステップ１１０６）、準拠している場合には（ステップ１１０５）、次のマッチング処理を繰り返す（ステップ１１０７）。
【００６４】
図１２においては、出力処理部１２６の処理動作を示しており、出力処理部１２６は、まず、ユーザ指定ディレクトリ１２７を取得し（ステップ１２０１）、ユーザの指定したディレクトリの配下にＳＱＬ検証結果ログ１２９を出力すると共に（ステップ１２０２）、ユーザの指定したディレクトリの配下にＳＱＬ補正結果１２８を出力する（ステップ１２０３）。
【００６５】
図１３においては、ＥＲ図情報１０２の構成例を示しており、ＥＲ図情報１０２において、テンティティ名、カラム名、属性および属性ＩＤを情報として保持する。これらのエンティティ名、カラム名、属性は、データベース（ＤＢ）に対応し、属性ＩＤは、新規にＥＲ図を作成した時に付されるユニークな識別情報であり、ＥＲ図の更新時にも変更されず履歴情報のキーとなる。
【００６６】
図１４においては、エンティティ名カラム名対応リストテーブル１０５の構成例をしめしており、このエンティティ名カラム名対応リストテーブル１０５は、ＤＢのエンティティ名およびエンティティを構成するカラム名の情報により構成される。
【００６７】
図１５においては、ＥＲ図履歴情報１０７（ＥＲ図履歴情報テーブル１０９）の構成例を示しており、ＥＲ図履歴情報更新処理部１０６によって属性ＩＤをキーとして世代毎のエンティティ名、カラム名の変更情報が追加されＥＲ図の変更履歴として管理され、このＥＲ図履歴情報１０７（ＥＲ図履歴情報テーブル１０９）において、属性ＩＤをキーとして世代毎のエンティティ名、カラム名の変更情報を、履歴として管理する。ＳＱＬ補正処理部１２４での処理で、ＳＱＬに使用されているエンティティ名、カラム名が最新世代に無い場合、世代を新しい順に辿ることにより、ＳＱＬの修正候補とて適用される。
【００６８】
図１６においては、ＳＱＬ情報１１１（ＳＱＬ情報テーブル１１２）の構成例を示しており、このＳＱＬ情報１１１（ＳＱＬ情報テーブル１１２）において、検証対象となるＳＱＬがワークシート形式で格納される。
【００６９】
図１７においては、プロジェクト開発規約１１４（プロジェクト開発規約テーブル１１５）の構成例を示しており、プロジェクト開発規約をキーワード毎に必須/任意、使用の可否および記述位置のレベルで区分し、当該ＳＱＬがプロジェクトの開発ルールに基づいた記述をしているかをチェックするために用いられる。
【００７０】
図１８においては、ＳＱＬ予約語リスト１１７（ＳＱＬ予約語リストテーブル１１８）の構成例を示しており、このＳＱＬ予約語リスト１１７（ＳＱＬ予約語リストテーブル１１８）において、機種毎に異なるデータベース（ＤＢ）のＳＱＬの予約語を格納することにより様々なＳＱＬに適用可能となる。
【００７１】
図１９においては、使用予約語リスト１２０の構成例を示しており、この使用予約語リスト１２０において、検証対象のＳＱＬで使用している予約語のリストを格納する。当リストとプロジェクト開発規約テーブルとのマッチングによりプロジェクトの開発規約に準拠しているかを検証する。
【００７２】
図２０においては、使用エンティティカラムリスト１２１の構成例を示しており、この使用エンティティカラムリスト１２１は、ＳＱＬ解析処理部１１９の処理で出力されるリストであり、当該ＳＱＬで使用しているエンティティ名、エイリアス名およびカラム名が格納される。
【００７３】
図２１においては、未使用エンティティカラムリスト１２３の構成例を示しており、この未使用エンティティカラムリスト１２３は、ＥＲ図−ＳＱＬ整合性チェック処理部１２２の処理で出力されるリストであり、ＥＲ図には存在しないが、当該ＳＱＬで使用しているエンティティ名およびカラム名のリストが格納される。
【００７４】
図２２においては、ユーザ指定ディレクトリ１２７の構成例を示しており、このユーザ指定ディレクトリ１２７において、ユーザがＳＱＬ検証・補正システム１００で出力したいディレクトリ名が格納される。
【００７５】
図２３においては、ＳＱＬ補正結果１２８の出力例を示しており、この例におけるＳＱＬの場合、「仕入先マスタ」の「仕入先ｃｏｄｅ」が、ＥＲ図の情報に無いがＥＲ図履歴情報に存在するので、領域１３０における「仕入先ｃｏｄｅ」の文字列を、領域１３１における「仕入先コード」の文字列に補正し、領域１３２において、補正（修正）内容を表示している。
【００７６】
図２４においては、ＳＱＬ検証結果ログ１２９の出力例を示しており、この例では、領域１３３において、検証対象のＳＱＬのコードを表示し、領域１３４において、プロジェクト開発規約に違反している項目を表示している。
【００７７】
以上、図１〜図２４を用いて説明したように、本例のＳＱＬ検証・補正システム１００では、ＥＲ図情報取得処理部１０４において、予め作成されたＥＲ図情報（ワークシート）１０２から、当該ＥＲ図を構成するエンティティ情報とカラム情報を取得し、取得した情報を用いて、当該ＥＲ図におけるエンティティ名とカラム名と対応付けたエンティティ名カラム名対応リストテーブル１０５を生成して記憶装置に格納する。
【００７８】
また、ＥＲ図履歴情報更新処理部１０６において、予め作成されたＥＲ図履歴情報１０７からエンティティ情報とカラム情報の更新履歴情報を読み出し、エンティティ名カラム名対応リストテーブル１０５における情報との差分を取得し、取得した差分を履歴差分としてＥＲ図履歴情報１０７に追加することでＥＲ図履歴情報１０７を更新し、ＥＲ図履歴情報取得処理部１０８において、ＥＲ図履歴情報更新処理部１０６が更新したＥＲ図履歴情報１０７を読み出し、ＥＲ図履歴情報テーブル１０９を生成して記憶装置に格納する。
【００７９】
また、ＳＱＬ情報取得処理部１１２において、予め作成されたＳＱＬ情報（ワークシート）１１１から各ＳＱＬ情報を読み出し、ＳＱＬ情報テーブル１１２を生成して記憶装置に格納し、プロジェクト開発規約取得処理部１１３において、予め作成されたプロジェクト開発規約１１４からプロジェクト開発規約情報を読み出し、プロジェクト開発規約テーブル１１５を生成して記憶装置に格納し、ＳＱＬ予約語リスト取得処理部１１６において、予め作成されたＳＱＬ予約語リスト１１７から各ＳＱＬ予約語リスト情報を読み出し、ＳＱＬ予約語テーブル１１８を生成して記憶装置に格納する。
【００８０】
そして、ＳＱＬ解析処理部１１９において、ＳＱＬ情報テーブル１１２における各ＳＱＬを解析してＳＱＬ予約語テーブル１１８に格納された予約語と予約語以外の字句に分解し、分解した予約語を使用予約語リスト１２０に格納すると共に、分解した予約語以外の字句から、当該ＳＱＬ内で使用しているエンティティ名およびエイリアス（再定義）文字列を特定し、特定したエイリアスから、当該ＳＱＬで使用しているエンティティ名を特定し、特定したエンティティ名に対してエンティティ名カラム名対応リストテーブル１０５において対応付けられたカラム名を特定し、特定したエンティティ名とカラム名と紐付けして当該ＳＱＬで使用しているエンティティ名とカラム名を格納した使用エンティティカラムリスト１２１を生成して記憶装置に格納する。
【００８１】
また、ＥＲ図−ＳＱＬ整合性チェック処理部１２２において、使用エンティティカラムリスト１２１とエンティティ名カラム名対応リストテーブル１０５を読み出し、使用エンティティカラムリスト１２１におけるカラムがエンティティ名カラム名対応リスト１０５に存在するか否かをチェックすることで、ＥＲ図には存在しないが当該ＳＱＬで使用しているエンティティ名およびカラム名を特定し、特定したカラムを登録する未使用エンティティカラムリスト１２３を生成して記憶装置に格納する。
【００８２】
また、ＳＱＬ補正処理部１２４において、ＥＲ図履歴情報テーブル１０９と未使用エンティティカラムリスト１２３を読み出し、この未使用エンティティカラムリスト１２３に存在するエンティティおよびカラムがＥＲ図履歴情報テーブル１０９に存在するか否かを判別し、存在する場合、未使用エンティティカラムリスト１２３におけるエンティティ名とカラム名を、ＥＲ図履歴情報テーブル１０９における最新のエンティティ名とカラム名に補正し、存在しない場合、補正できないＳＱＬを登録したＳＱＬ検証結果ログ１２９を生成する。
【００８３】
また、プロジェクト準拠チェック処理部１２５において、プロジェクト開発規約テーブル１１５と使用予約語リスト１２０を読み出し、この使用予約語リスト１２０に格納された各ＳＱＬの予約語が、プロジェクト開発規約テーブル１１５に格納されたプロジェクト開発規約に準拠しているかを検証し、準拠していない場合、プロジェクト準拠違反としてＳＱＬ検証結果ログ１２９に情報を格納する。
【００８４】
そして、出力処理部１２６において、予め指定されたユーザ指定ディレクトリ１２７を読み出し、このディレクトリの配下にＳＱＬ検証結果ログ１２９とＳＱＬ補正処理部１２４による補正結果（ＳＱＬ補正結果１２８）を出力する。
【００８５】
このように、本例のＳＱＬ検証・補正システム１００においては、ＥＲ図とＳＱＬの整合性の検証を実施する際に、ＥＲ図情報をワークシートとして格納するシステム装置とネットワークで接続されたＳＱＬ検証・補正システムを格納するシステム装置により構成し、ＳＱＬ情報、ＥＲ図の変更履歴情報、ＳＱＬ予約語リストおよびプロジェクト開発規約を指定することにより達成され、人手を介さずに、開発者が自由に記述したＳＱＬを対象として、当該ＳＱＬの根拠となるＥＲ図との整合性を検証し、また、その検証結果を用いて、当該ＳＱＬを補正し、かつ、補正情報を開発者に通知することができるので、ＳＱＬの開発を正確かつ迅速に行えるようにすることが可能となる。
【００８６】
特に、本例のＳＱＬ検証・補正システム１００においては、コンパイラを使用せずに、ＥＲ図に定義されているエンティティ、カラム情報をワークシートより取得し、また、ＥＲ図の変更履歴を外部パラメータとして保持することにより、ＳＱＬとＥＲ図の整合性を検証し、かかる整合性に矛盾、疑義がある場合、検証結果をシステム装置に出力し、また、ＥＲ図の変更履歴よりＳＱＬを補正しかかる補正結果をシステム装置に出力し、また、プロジェクト開発規約をパラメータ化することにより、合わせてプロジェクトへの準拠チェックを可能とし、ＳＱＬの検証・補正を自動化することができる。
【００８７】
尚、本発明は、図１〜図２４を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、ネットワーク１０３を介して接続されたＥＲ図情報格納サーバ１０１からＥＲ図情報（ワークシート）を取得する構成としているが、ＳＱＬ検証・補正システム１００における入力装置を介して直接取得する構成としても良い。
【００８８】
また、本例では、１つのコンピュータ装置上にＳＱＬ検証・補正システム１００を設けた構成としているが、複数のコンピュータ装置上に、ＳＱＬ検証・補正システム１００を構成する各処理部を設けた構成としても良い。
【００８９】
また、本例のコンピュータ構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【符号の説明】
【００９０】
１００：ＳＱＬ検証・補正システム、
１０１：ＥＲ図情報格納サーバ、１０２：ＥＲ図情報（ワークシート）、１０３：ネットワーク、１０４：ＥＲ図情報取得処理部、１０５：エンティティ名カラム名対応リストテーブル、１０６：ＥＲ図履歴情報更新処理部、１０７：ＥＲ図履歴情報、１０８：ＥＲ図履歴情報取得処理部、１０９：ＥＲ図履歴情報テーブル、１１０：ＳＱＬ情報取得処理部、１１１：ＳＱＬ情報（ワークシート）、１１２：ＳＱＬ情報テーブル、１１３：プロジェクト開発規約取得処理部、１１４：プロジェクト開発規約、１１５：プロジェクト開発規約テーブル、１１６：ＳＱＬ予約語リスト取得処理部、１１７：ＳＱＬ予約語リスト、１１８：ＳＱＬ予約語テーブル、１１９：ＳＱＬ解析処理部、１２０：使用予約語リスト、１２２１：使用エンティティカラムリスト、１２２：ＥＲ図−ＳＱＬ整合性チェック処理部、１２３：未使用エンティティカラムリスト、１２４：ＳＱＬ補正処理部、１２５：プロジェクト準拠チェック処理部、１２６：出力処理部、１２７：ユーザ指定ディレクトリ、１２８：ＳＱＬ補正結果、１２９：ＳＱＬ検証結果ログ、１３０〜１３４：領域。
【図１】
0005641901.tif 000002
【図２】
0005641901.tif 000003
【図３】
0005641901.tif 000004
【図４】
0005641901.tif 000005
【図５】
0005641901.tif 000006
【図６】
0005641901.tif 000007
【図７】
0005641901.tif 000008
【図８】
0005641901.tif 000009
【図９】
0005641901.tif 000010
【図１０】
0005641901.tif 000011
【図１１】
0005641901.tif 000012
【図１２】
0005641901.tif 000013
【図１３】
0005641901.tif 000014
【図１４】
0005641901.tif 000015
【図１５】
0005641901.tif 000016
【図１６】
0005641901.tif 000017
【図１７】
0005641901.tif 000018
【図１８】
0005641901.tif 000019
【図１９】
0005641901.tif 000020
【図２０】
0005641901.tif 000021
【図２１】
0005641901.tif 000022
【図２２】
0005641901.tif 000023
【図２３】
0005641901.tif 000024
【図２４】
0005641901.tif 000025