(57)【特許請求の範囲】
【請求項１】
制御部と、
データベースのテーブル及びインデックスを定義するＤＤＬを構成するＤＤＬ構成情報と、
前記ＤＤＬで定義されたデータを操作するＤＭＬを構成する複数のＤＭＬ構成情報と、
個々の情報システム開発プロジェクトの標準化規則と、を格納した記憶部と、
を備え、
前記制御部は、
前記標準化規則に沿って前記ＤＭＬ構成情報を修正し、
前記修正したＤＭＬ構成情報を、修正した他のＤＭＬ構成情報と比較し、
当該比較した前記修正したＤＭＬ構成情報と前記他のＤＭＬ構成情報とが重複・類似する場合には、前記修正したＤＭＬ構成情報と前記修正したＤＭＬ構成情報と重複・類似する他のＤＭＬ構成情報とのマッピング情報を前記記憶部に格納する、
ことを特徴とするデータアクセス処理管理・生成システム。
【請求項２】
請求項１において、
当該比較した前記修正したＤＭＬ構成情報と重複・類似する他のＤＭＬ構成情報が見つからない場合には、当該修正したＤＭＬ構成情報を前記記憶部に記憶することを特徴とするデータアクセス処理管理・生成システム。
【請求項３】
請求項２において、
前記比較した前記修正したＤＭＬ構成情報と前記他のＤＭＬ構成情報とが重複・類似する場合には、前記修正したＤＭＬ構成情報は前記記憶部に格納せずに破棄することを特徴とするデータアクセス処理管理・生成システム。
【請求項４】
記憶部と、制御部と、を備えたデータアクセス処理管理・生成システムで実行されるＤＭＬ構成情報管理プログラムであって、
前記記憶部には、
データベースのテーブル及びインデックスを定義するＤＤＬを構成するＤＤＬ構成情報と、
前記ＤＤＬで定義されたデータを操作するＤＭＬを構成するＤＭＬ構成情報と、
個々の情報システム開発プロジェクトの標準化規則と、が格納され、
前記プログラムは、前記制御部に、
前記標準化規則に沿って前記ＤＭＬ構成情報を修正させ、
前記修正したＤＭＬ構成情報を、修正した他のＤＭＬ構成情報と比較させ、
当該比較した前記修正したＤＭＬ構成情報と前記他のＤＭＬ構成情報とが重複・類似する場合には、前記修正したＤＭＬ構成情報と、前記修正したＤＭＬ構成情報と重複・類似する他のＤＭＬ構成情報と、のマッピング情報を前記記憶部に格納させる、
ことを特徴とするＤＭＬ構成情報管理処理プログラム。
【請求項５】
データアクセス処理管理・生成システムにおけるＤＭＬ構成情報管理方法であって、
記憶部は、
データベースのテーブル及びインデックスを定義するＤＤＬを構成するＤＤＬ構成情報と、
前記ＤＤＬで定義されたデータを操作するＤＭＬを構成するＤＭＬ構成情報と、
個々の情報システム開発プロジェクトの標準化規則と、を格納し、
制御部は、
前記標準化規則に沿って前記ＤＭＬ構成情報を修正し、
前記修正したＤＭＬ構成情報を、修正した他のＤＭＬ構成情報と比較し、
前記修正したＤＭＬ構成情報と重複・類似する他のＤＭＬ構成情報が存在する場合には、前記修正したＤＭＬ構成情報と、前記修正したＤＭＬ構成情報と重複・類似する他のＤＭＬ構成情報とのマッピング情報を前記記憶部に格納する、
ことを特徴とするＤＭＬ構成情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベースのＳＱＬの生成に関するものである。
【背景技術】
【０００２】
ＳＱＬは、データベース（以下、ＤＢという）の操作を行うための言語の一種であり、プログラム中に埋め込む等して実用に供されている。
【０００３】
近年では情報システム開発の規模が大きくなっており、ＳＱＬを埋め込んだデータアクセス処理プログラムまたはファイル（以下、データアクセスプログラム等という）の開発において、分業開発の支援とプログラムの質の均一化を目的としてプログラムを自動生成する技術（特許文献１及び２参照）や、プログラムの処理対象のデータとＤＢのデータと関連付けを支援する技術が存在する。
【０００４】
例えば特許文献１では、ＳＱＬを構成する情報をリポジトリで管理し、プログラムの雛形と組み合わせることで、プログラムを自動生成する技術が提案されている。また、特許文献２では、情報システムの開発者が入力したＳＱＬを構成する情報と、プログラムの型とＤＢのデータ型の対応と、プログラムの雛形とを組み合わせることで、プログラムを自動生成する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２９８９８号公報
【特許文献２】特開２００９−８６９９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
通常、データアクセスプログラム等の開発においては、品質確保のため、ＳＱＬが個々の情報システム開発プロジェクトの標準化規則（以下、ＰＪルールという）に沿うよう検査・修正する作業が必要である。また、開発効率向上のため、既に開発されたＳＱＬから、ＳＱＬの実行結果が重複・類似する再利用可能なＳＱＬを特定・再利用する作業が必要である。
【０００７】
しかし、ＰＪルールの規定方法及び再利用可能なＳＱＬの規定方法に関する標準仕様が存在しないためシステム化は困難であり、特許文献１及び特許文献２に記載の技術は、前記作業の自動化を考慮していない。
【０００８】
そのため、前記作業を人手で行った結果として、ＰＪルールに沿わないＳＱＬによる情報システムの単位時間当たりの処理量の低下、ＳＱＬの実行結果が重複・類似する冗長なＳＱＬの開発による開発効率の低下を招く恐れがある。
【０００９】
本発明が解決しようとする課題は、ＰＪルールに沿う高品質なＳＱＬを埋め込んだデータアクセスプログラム等を生成することで、情報システムの単位時間当たりの処理量の低下を防ぐと共に、再利用可能なＳＱＬを特定・再利用することで、情報システムの開発効率を向上することである。
【課題を解決するための手段】
【００１０】
本発明は、ＳＱＬをリポジトリに登録し、個々の情報システム開発プロジェクトの標準化規則に沿って検査・修正した後、実行結果が重複・類似するＳＱＬ同士をマッピングすることを最も主要な特徴とする。
【発明の効果】
【００１１】
本発明によれば、個々の情報システム開発プロジェクトの標準化規則に沿う高品質なＳＱＬを埋め込んだデータアクセスプログラム等を生成すると共に、ＳＱＬを再利用して効率良く情報システムを開発できるデータアクセス処理管理・生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】データアクセス処理管理・生成システム全体の構成図。
【図２】ＤＢＭＳ情報保持領域のデータ構成図。
【図３】ＤＤＬ構成情報保持領域のデータ構成図。
【図４】ＤＭＬ構成情報保持領域のデータ構成図。
【図５】修正後ＤＭＬ構成情報保持領域のデータ構成図。
【図６】ＤＭＬマッピング情報保持領域のデータ構成図。
【図７】ＰＪルール記述例。
【図８】主記憶装置と外部記憶装置との間のデータの入出力関係。
【図９】ＤＭＬ構成情報修正・マッピング処理のフローチャート。
【図１０】登録するＤＭＬ構成情報の例。
【図１１】構文解析結果の例。
【図１２】ＤＭＬ構成情報登録後のＤＭＬ構成情報保持領域の例。
【図１３】修正後ＤＭＬ構成情報の例。
【図１４（ａ）】ＤＭＬマッピング情報1件追加後のＤＭＬマッピング情報保持領域のデータ構成図。
【図１４（ｂ）】ＤＭＬマッピング情報1件変更後のＤＭＬマッピング情報保持領域のデータ構成図。
【図１５】データアクセス処理雛形の例。
【図１６】データアクセスプログラム等の例。
【図１７（ａ）】ＤＭＬマッピング情報の使用方法（ファイル形式）。
【図１７（ｂ）】ＤＭＬマッピング情報の使用方法（ファイル形式）。
【図１８（ａ）】ＤＭＬマッピング情報の使用方法（プログラム形式）。
【図１８（ｂ）】ＤＭＬマッピング情報の使用方法（プログラム形式）。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。なお、ＤＢはデータベース、ＤＢＭＳはData Base Management System、ＤＤＬはData Definition Language、ＤＭＬはData Manipulation Language、ＰＪルールは個々の情報システム開発プロジェクトの標準化規則の略である。
【００１４】
図１は、データアクセス処理管理・生成システム１０１の構成例を示す図である。本システムは、一般的なコンピュータにより実現し、主として主記憶装置１０２と外部記憶装置１０３と表示部１０５と入力部１０６と制御部１０７とネットワークインタフェース部１０８とこれらを結ぶバス１０４で構成する。
【００１５】
主記憶装置１０２には、ＤＢＭＳ情報登録機能１１１とＤＤＬ構成情報登録機能１１２とＤＭＬ構成情報登録機能１１３とＤＭＬ構成情報修正・マッピング機能１１４とデータアクセス処理生成機能１１５を持つプログラムを格納する。なお、各機能はＬＳＩ（ＬＳＩ：Large Scale Integration 大規模集積回路）等のハードウェアにより実現しても良い。各機能の内容については、図８の説明時に後述する。
【００１６】
外部記憶装置１０３には、リポジトリ１２１とＤＢＭＳ情報１３１とＤＤＬ構成情報１３２とＤＭＬ構成情報１３３とＰＪルール１３４とデータアクセス処理雛形１３５とデータアクセスプログラム等１３６を格納する。
【００１７】
リポジトリ１２１は、ＤＢＭＳ情報保持領域１２２とＤＤＬ構成情報保持領域１２３とＤＭＬ構成情報保持領域１２４と修正後ＤＭＬ構成情報保持領域１２５とＤＭＬマッピング情報保持領域１２６を持つ。なお、リポジトリの情報は本システムにネットワークにより接続された外部装置から取得しても良い。
【００１８】
ＰＪルール１３４は、情報システム開発プロジェクト毎に用意する。データアクセスプログラム等の雛形となるデータアクセス処理雛形１３５は、検索・更新等のＳＱＬの種類毎に用意する。
【００１９】
図２はＤＢＭＳ情報保持領域１２２のデータ構成図である。ＤＢＭＳ情報保持領域１２２は１つの表で構成される。表ＤＢＭＳ２０１は、データベースに関する情報を保存しており、ＤＢＩＤ２０２はレコードを一意に識別するＩＤ（ＩＤ：Identification 識別子）、ＤＢ名２０３は任意の名称、ＤＢＭＳ種別２０４はＤＢＭＳの種類を表す。
【００２０】
図３はＤＤＬ構成情報保持領域１２３のデータ構成図である。ＤＤＬ構成情報保持領域１２３は２つの表から構成される。表テーブル３０１は、ＤＢに対して作成するテーブルの一覧を保存しており、ＤＢＩＤ３０２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、テーブルＩＤ３０３はレコードを一意に識別するＩＤ、テーブル名３０４はＤＢに対して作成するテーブルの名称である。
【００２１】
表カラム３１１は、ＤＢに対して作成する各テーブルのカラムに関する情報を保存しており、ＤＢＩＤ３１２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、テーブルＩＤ３１３は表テーブル３０１と関連付けるためのＩＤ、カラムＩＤ３１４はレコードを一意に識別するＩＤ、カラム名３１５はＤＢに対して作成するカラムの名称、データ型３１６はＤＢのデータ型、長さ３１７はカラムのデータ長、小数３１８はカラムの小数部分のデータ長、ＮＯＴ  ＮＵＬＬ制約３１９はカラムのＮＯＴ  ＮＵＬＬ制約である。データ型３１６やＮＯＴ  ＮＵＬＬ制約３１９は、コードの形式で格納しても良い（以下、コードの形式でリポジトリに保存できるデータについて同様とする）。表カラム３１１には、他に主キーの情報等を保存しても良い。
【００２２】
図４はＤＭＬ構成情報保持領域１２４のデータ構成図である。ＤＭＬ構成情報保持領域１２４は６つの表から構成される。表ＤＭＬ４０１は、ＳＱＬの一覧を保存しており、ＤＢＩＤ４０２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４０３はレコードを一意に識別するＩＤ、ＤＭＬ名４０４は任意の名称、ＤＭＬパターン４０５は検索・更新等のデータアクセスの種類である。表ＤＭＬ４０１には、他にＤＭＬの排他制御の指定等を保存しても良い。
【００２３】
表ＤＭＬテーブル４１１は、各ＳＱＬの対象テーブルを保存しており、ＤＢＩＤ４１２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４１３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４１４はレコードを一意に識別するＩＤ、テーブルＩＤ４１５は表テーブル３０１と関連付けるためのＩＤ、テーブル別名４１６はテーブルの別名（エイリアス）である。
【００２４】
表ＤＭＬカラム４２１は、各ＳＱＬの対象カラムを保存しており、ＤＢＩＤ４２２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４２３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４２４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬカラムＩＤ４２５はレコードを一意に識別するＩＤ、カラムＩＤ４２６は表カラム３１１と関連付けるためのＩＤ、関数４２７は集約関数の種類、カラム別名４２８はカラムの別名（エイリアス）である。
【００２５】
表ＤＭＬ検索条件４３１は、各ＳＱＬの検索条件の内容を保存しており、ＤＢＩＤ４３２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４３３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４３４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬ検索条件ＩＤ４３５はレコードを一意に識別するＩＤ、カラムＩＤ４３６は表カラム３１１と関連付けるためのＩＤ、関係演算子４３７は関係演算子、論理演算子４３８は論理演算子である。
【００２６】
表ＤＭＬグループ４４１はグループ化の条件を保存しており、ＤＢＩＤ４４２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４４３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４４４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬグループＩＤ４４５はレコードを一意に識別するＩＤ、カラムＩＤ４４６は表カラム３１１と関連付けるためのＩＤである。
【００２７】
表ＤＭＬソート４５１はソート条件の内容を保存しており、ＤＢＩＤ４５２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４５３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４５４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬソートＩＤ４５５はレコードを一意に識別するＩＤ、カラムＩＤ４５６は表カラム３１１と関連付けるためのＩＤ、ＤＭＬカラムＩＤ４５７は表ＤＭＬカラム４２１と関連付けるためのＩＤ、ソート順４５８は昇順・降順等のソートの方向である。
【００２８】
図５は修正後ＤＭＬ構成情報保持領域１２５のデータ構成図であり、ＤＭＬ構成情報保持領域１２４とデータ構成は同一である。よって、修正後ＤＭＬ構成情報保持領域１２５を作成せずに、修正後ＤＭＬ構成情報をＤＭＬ構成情報保持領域１２４に格納しても良い。
【００２９】
図６はＤＭＬマッピング情報保持領域１２６のデータ構成図である。ＤＭＬマッピング情報保持領域１２６は１つの表から構成される。表ＤＭＬマッピング６０１は、ＤＭＬ構成情報と修正後ＤＭＬ構成情報をマッピングしたＤＭＬマッピング情報を保存しており、ＤＢＩＤ６０２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ６０３及びＤＭＬ名６０４はマッピング元のＤＭＬ構成情報のＤＭＬＩＤ及びＤＭＬ名、マッピング先ＤＭＬＩＤ６０５はマッピング先の修正後ＤＭＬ構成情報のＤＭＬＩＤである。
【００３０】
図７はＰＪルール１３４の記述例である。ＤＭＬ構成情報登録機能１１３を実施する前にユーザがデータアクセス処理管理・生成システム１０１に入力したものであり、ＢＮＦ（ＢＮＦ：Backus Naur Form）の記号名により、ＰＪルールを適用するための前提条件と対象パターンを記述している。種別７０２は、ＰＪルールの種別を、「必須」「修正」「禁止」「警告」等で記述する。前提条件７０３は、ＰＪルールの適用対象を判定するための前提条件を、ＢＮＦの単一または複数の記号名で記述する。ＢＮＦの記号名は、データアクセス処理管理・生成システムで定義した記号名を用いる。なお、前提条件が存在しない場合は記述しない。対象パターン７０４は、ＰＪルールに沿っているか判定するための条件を、ＢＮＦの単一または複数の記号名で記述する。なお、他に対象パターンが１ＤＭＬ中に複数回出現する場合において、ＰＪルールに沿っていると判定する上限の出現回数を、数値で記入する等しても良い
ＰＪルール７０５では、ＤＭＬの構文解析結果に、ＢＮＦの記号名「[$検索文]」「[$検索テーブル]」「[$テーブル]」「[書籍]」が全て含まれる場合、ＤＭＬの検索条件に「削除フラグ = ?」という記述が必須であり、「削除フラグ = ?」という記述が存在しなければ追加するようＤＭＬ構成情報を修正することを表す。なお、修正の際に追加する位置を、ＢＮＦの単一または複数の記号名でＰＪルールに設定する等しても良い。
【００３１】
図８は、主記憶装置に格納する情報と外部記憶装置に格納する情報と各機能の関連図である。ＤＢＭＳ情報登録機能１１１は、ユーザが入力したＤＢ名、ＤＢＭＳの種類であるＤＢＭＳ情報１３１を入力とし、ＤＢＭＳ情報保持領域１２２に保存する。ＤＢＩＤ２０２については、データアクセス処理管理・生成システムで一意となるよう制御部１０７が付与する。
【００３２】
例えば、ユーザがＤＢ名「書籍管理」、ＤＢＭＳの種類「Ａ社製ＤＢＭＳ」を入力した場合、制御部１０７はＤＢＭＳ情報２０５をＤＢＭＳ情報保持領域１２２に登録する。
【００３３】
ＤＤＬ構成情報登録機能１１２は、ＤＢＭＳ情報保持領域１２２に保存されているＤＢＭＳ情報からユーザが選択したＤＢ名に対応するＤＢＩＤ、ユーザが入力したテーブル名、カラム名、データ型、データの長さ、データの小数の長さ、ＮＯＴ  ＮＵＬＬ制約の情報であるＤＤＬ構成情報１３２を入力とし、ＤＤＬ構成情報保持領域１２３に保存する。テーブルＩＤ３０３については、同一のＤＢＩＤで一意となるよう制御部１０７が付与する。カラムＩＤ３１４については、同一のＤＢＩＤ及びテーブルＩＤで一意となるよう制御部１０７が付与する。
【００３４】
例えばユーザがＤＢ名「書籍管理」を選択し、テーブル名「書籍」、カラム名「書籍番号」、データ型「Ｃｈａｒ」、長さ「１５」、ＮＯＴ  ＮＵＬＬ制約「ＮＯＴ  ＮＵＬＬ」のカラムを入力した場合、制御部１０７はＤＤＬ構成情報３０５及びＤＤＬ構成情報３２０をＤＤＬ構成情報保持領域１２３に登録する。
【００３５】
ＤＭＬ構成情報登録機能１１３は、ＤＢＭＳ情報保持領域１２２に保存されているＤＢＭＳ情報からユーザが選択したＤＢ名に対応するＤＢＩＤ、ユーザが入力したＤＭＬ名、テーブル操作の情報であるＤＭＬ構成情報１３３、ＤＤＬ構成情報保持領域１２３に保存されているテーブル操作の対象となるテーブルのＤＤＬ構成情報を入力とし、ＤＭＬ構成情報保持領域１２４に保存する。ＤＭＬＩＤ４０３、ＤＭＬテーブルＩＤ４１４、ＤＭＬカラムＩＤ４２５、ＤＭＬ検索条件ＩＤ４３５、ＤＭＬグループＩＤ４４５、ＤＭＬソートＩＤ４５５については、同一のＤＢＩＤにおいて、それぞれ表ＤＭＬ４０１、表ＤＭＬテーブル４１１、表ＤＭＬカラム４２１、表ＤＭＬ検索条件４３１、表ＤＭＬグループ４４１、表ＤＭＬソート４５１で一意となるよう制御部１０７が付与する。
【００３６】
例えば、ユーザがＤＢ名「書籍管理」を選択し、ＤＭＬ名「書籍検索Ａ」及びＤＭＬ「ＳＥＬＥＣＴ  出版社ＩＤ，  ＭＩＮ（価格）  最安価格，  ＭＡＸ（価格）  最高価格  ＦＲＯＭ  書籍  書籍別名  ＷＨＥＲＥ  出版社ＩＤ  ＞  ？  ＡＮＤ  削除フラグ  ＝  ？  ＧＲＯＵＰ  ＢＹ  出版社ＩＤ  ＯＲＤＥＲ  ＢＹ  出版社ＩＤ  ＡＳＣ；」相当のテーブル操作の情報を入力した場合、ＤＭＬ構成情報保持領域１２４は図４に示す通りとなる。
【００３７】
なお、ＤＭＬ構成情報の代わりにＤＭＬを入力とし、ＤＭＬ構成情報登録機能１１３でＤＭＬを構文解析してＤＭＬ構成情報を取得し、ＤＭＬ構成情報保持領域１２４に保存しても良い。
【００３８】
ＤＭＬ構成情報修正・マッピング機能１１４は、ＤＭＬ構成情報保持領域１２４に保存されているＤＭＬ構成情報とＰＪルール１３４を入力として修正後ＤＭＬ構成情報とマッピング情報を取得し、それぞれ修正後ＤＭＬ構成情報保持領域１２５とＤＭＬマッピング情報保持領域１２６へ保存する。
【００３９】
図９はＤＭＬ構成情報修正・マッピング機能１１４を示したフローチャートである。ＤＭＬ構成情報修正・マッピング機能１１４は、ユーザの操作等によりＤＭＬ構成情報登録機能１１３が動作した後に、続けて動作する。図１０をＤＭＬ構成情報修正・マッピング機能１１４の動作の直前に登録されたＤＭＬ構成情報１３３とし、図１２、図５、図６を、それぞれＤＭＬ構成情報修正・マッピング機能１１４の動作前のＤＭＬ構成情報保持領域１２４、修正後ＤＭＬ構成情報保持領域１２５、ＤＭＬマッピング情報保持領域１２６とし、図１３を図１０の修正後ＤＭＬ構成情報とし、図１２、図５、図１４（ａ）を、それぞれＤＭＬ構成情報修正・マッピング機能１１４の動作後のＤＭＬ構成情報保持領域１２４、修正後ＤＭＬ構成情報保持領域１２５、ＤＭＬマッピング情報保持領域１２６として、以下説明する。
【００４０】
制御部１０７は初めに、ＤＭＬ構成情報保持領域１２４から直前に登録された図１０のＤＭＬ構成情報のＤＢＩＤ１００２「ＤＢ０１」とＤＭＬＩＤ１００３「ＤＭＬ０２」をキーとして処理対象のＤＭＬ構成情報を読み込む（ステップＳ１）。以降、ステップＳ１で読み込んだＤＭＬ構成情報をマッピング元ＤＭＬ構成情報という。
【００４１】
制御部１０７は次に、マッピング元ＤＭＬ構成情報を入力としてデータアクセス処理生成機能１１５を実行し、データアクセスプログラム等１３６を取得する。制御部１０７は取得したデータアクセスプログラム等１３６に埋め込まれたＤＭＬを構文解析し、構文解析結果をＰＪルールと比較することで、修正の要否の決定と修正を行う（ステップＳ２）。
【００４２】
図１１は、図１０をマッピング元ＤＭＬ構成情報とした場合の構文解析結果の例であり、番号１１０１が「１０」の行１１０５は、図７のＰＪルール７０５の前提条件７０３のＢＮＦの記号名を全て含む。従って制御部１０７は、マッピング元ＤＭＬ構成情報が前提条件７０３を満たすと判断する。また、構文解析結果１１０３には、ＰＪルール７０５の対象パターン７０４のうち、「[$検索文][$検索条件][$カラム][削除フラグ]」が存在しない。従って制御部１０７はＤＭＬ構成情報の修正が必要と判断し、対象パターン７０４が全て構文解析結果に追加されるようマッピング元ＤＭＬ構成情報にＤＭＬ検索条件１３３９を追加し、図１３のＤＭＬ構成情報を取得する。
【００４３】
以上のような処理により、ＳＱＬをＰＪルールに沿うよう検査・修正し、前記ＳＱＬを埋め込んだデータアクセスプログラム等を使用する情報システムの、単位時間当たりの処理量の低下を防ぐことができる。
【００４４】
なお、前記修正が不要な場合は、制御部１０７は、マッピング元ＤＭＬ構成情報のＤＭＬ名を変更し、新たにＤＭＬＩＤを付与したＤＭＬ構成情報を取得する。例えば、図４がマッピング元ＤＭＬ構成情報の場合は修正が不要であり、制御部１０７は、ＤＭＬ名「修正後書籍検索Ａ」、ＤＭＬＩＤ「ＤＭＬ５１」の図５のＤＭＬ構成情報を取得する。以降、このステップＳ２で取得したＤＭＬ構成情報を、修正の有無に関わらず修正後ＤＭＬ構成情報と呼ぶ。なお、制御部１０７は、ステップＳ２が終了した時点では、図１３の修正後ＤＭＬ構成情報を修正後ＤＭＬ構成情報保持領域１２５に登録しない。
【００４５】
制御部１０７は次に、修正後ＤＭＬ構成情報に対し、ＤＢＩＤが同一かつデータアクセス処理生成機能１１５によって生成するデータアクセス処理中のＤＭＬの実行結果が重複・類似する修正後ＤＭＬ構成情報（以下、マッピング先ＤＭＬ構成情報という）が、既に修正後ＤＭＬ構成情報保持領域１２５に存在するかどうかを判定する（ステップＳ３）。制御部１０７は重複については、２ＤＭＬ構成情報からそれぞれ生成するＤＭＬが同一の場合に重複と判定する。例えば、図４を一方のＤＭＬ構成情報、図５を他方のＤＭＬ構成情報とした場合、制御部１０７は両者を重複と判定する。
【００４６】
制御部１０７は類似については、表ＤＭＬカラムにおいて、ＤＭＬＩＤ、ＤＭＬカラムＩＤを除いた修正後ＤＭＬ構成情報のレコードが、修正後ＤＭＬ構成情報保持領域１２５に存在する修正後ＤＭＬ構成情報のレコードの部分集合であり、かつ修正後ＤＭＬ構成情報と修正後ＤＭＬ構成情報保持領域１２５に存在する修正後ＤＭＬ構成情報について、表ＤＭＬ、表ＤＭＬテーブル、表ＤＭＬ検索条件、表ＤＭＬグループ、表ＤＭＬソートの内容がＤＭＬＩＤとＤＭＬ名を除いて同一である場合に類似と判定する。例えば、図１３の修正後ＤＭＬ構成情報の表ＤＭＬカラムにおけるレコード１３２９は、ＤＭＬＩＤ１３２３、ＤＭＬカラムＩＤ１３２５を除いて図５の修正後ＤＭＬ構成情報の表ＤＭＬカラムにおけるレコード５２９の部分集合となっており、かつ表ＤＭＬカラム１３２１と表ＤＭＬカラム５２１を除く図１３と図５の表の修正後ＤＭＬ構成情報が、ＤＭＬＩＤ１３０３、１３１３、１３２３、１３３３、１３４３、１３５３、５０３、５１３、５２３、５３３、５４３、５５３、ＤＭＬ名１３０４、５０４を除いて同一であるため、制御部１０７は両者を類似と判定する（ステップＳ４）。なお、重複・類似の判定方法は一例であり、他の判定方法を用いても良い。
【００４７】
制御部１０７は判定結果が重複または類似のいずれでもない場合のみ、修正後ＤＭＬ構成情報を修正後ＤＭＬ構成情報保持領域１２５に保存する（ステップＳ５）。
【００４８】
制御部１０７は次に、マッピング元ＤＭＬ構成情報とマッピング先ＤＭＬ構成情報とのマッピング情報を、ＤＭＬマッピング情報保持領域１２６へ保存する。例えば、図１０がマッピング元ＤＭＬ構成情報で、図５がマッピング先ＤＭＬ構成情報の場合、制御部１０７は、マッピング元ＤＭＬ構成情報のＤＢＩＤ１００２「ＤＢ０１」、ＤＭＬＩＤ１００３「ＤＭＬ０２」、ＤＭＬ名１００４「書籍検索Ｂ」、及びマッピング先ＤＭＬ構成情報のＤＭＬＩＤ５０３「ＤＭＬ５１」を、表ＤＭＬマッピング１４０１のＤＢＩＤ１４０２、ＤＭＬＩＤ１４０３、ＤＭＬ名１４０４、及びマッピング先ＤＭＬＩＤ１４０５にそれぞれ保存する。マッピング情報の保存後、マッピング元ＤＭＬ構成情報が不要な場合は、制御部１０７が図１０のマッピング元ＤＭＬ構成情報をＤＭＬ構成情報保持領域１２４から削除してもよい。
【００４９】
ユーザがＤＭＬ構成情報保持領域１２４に保存しているマッピング元ＤＭＬ構成情報または修正後ＤＭＬ構成情報保持領域１２５に保存しているマッピング先ＤＭＬ構成情報のいずれかを修正した場合は、制御部１０７はＤＭＬ構成情報修正・マッピング機能１１４を使用してマッピング情報を更新する。
【００５０】
以上のような処理により、実行結果が重複・類似するＳＱＬ同士を特定・再利用することができる。
【００５１】
データアクセス処理生成機能１１５は、ＤＢＭＳ情報保持領域１２２に保存されているＤＢＭＳ情報、ＤＤＬ構成情報保持領域１２３に保存されているＤＤＬ構成情報、ＤＭＬマッピング情報保持領域１２６に保存されているＤＭＬマッピング情報、修正後ＤＭＬ構成情報保持領域１２５に保存されている修正後ＤＭＬ構成情報、データアクセス処理雛形１３５から、データアクセスプログラム等１３６を生成する。
【００５２】
例えば、ＤＭＬマッピング情報保持領域１２６が図１４（ａ）の表ＤＭＬマッピング１４０１の場合、ユーザがＤＢ名「書籍管理」、ＤＭＬ名「書籍検索Ｂ」を指定してデータアクセス処理生成機能１１５を使用すると、制御部１０７はまず、表ＤＢＭＳ２０１からＤＢ名「書籍管理」に一致するＤＢＭＳ情報２０５を参照してＤＢＩＤ「ＤＢ０１」を取得する。次に制御部１０７は、ＤＢＩＤ「ＤＢ０１」及び「ＤＭＬ名「書籍検索Ｂ」に一致するＤＭＬマッピング情報１４０７を参照し、マッピング先のＤＭＬＩＤ１４０５「ＤＭＬ５１」を持つ図５の修正後ＤＭＬ構成情報を取得する。続いて制御部１０７は、ＤＢＩＤ「ＤＢ０１」、ＤＭＬＩＤ「ＤＭＬ５１」でＤＭＬマッピング情報保持領域１２６を検索し、図５の修正後ＤＭＬ構成情報にマッピングされているＤＭＬ名１４０４を取得する。
【００５３】
制御部１０７は、マッピング先のＤＭＬＩＤ「ＤＭＬ５１」を持つ図５の修正後ＤＭＬ構成情報から生成したＤＭＬと、ＤＭＬＩＤ「ＤＭＬ５１」を持つ図５の修正後ＤＭＬ構成情報にマッピングされているＤＭＬ名１４０４を、データアクセス処理雛形１３５に埋め込む。例えば、データアクセス処理雛形１３５が図１５の場合、制御部１０７は＠ＤＭＬ名１５０２に、マッピング元ＤＭＬ構成情報のＤＭＬ名１４０４「書籍検索Ａ」及び「書籍検索Ｂ」と、マッピング先ＤＭＬ構成情報のＤＭＬ名５０４「修正後書籍検索Ａ」を、それぞれマッピング元ＤＭＬ名１６０２、マッピング先ＤＭＬ名１６０３として埋め込み、＠ＳＱＬ１５０３に図５の修正後ＤＭＬ構成情報から生成したＤＭＬを、マッピング先ＤＭＬ構成情報から生成したＤＭＬ１６０４「ＳＥＬＥＣＴ  出版社ＩＤ，  ＭＩＮ（価格）  最安価格，  ＭＡＸ（価格）  最高価格  ＦＲＯＭ  書籍  書籍別名  ＷＨＥＲＥ  出版社ＩＤ  ＞  ？  ＡＮＤ  削除フラグ  ＝  ？  ＧＲＯＵＰ  ＢＹ  出版社ＩＤ  ＯＲＤＥＲ  ＢＹ  出版社ＩＤ  ＡＳＣ；」として埋め込み、＠入出力パラメータ１５０４に表テーブル３０１、表カラム３１１、表ＤＭＬテーブル５１１、表ＤＭＬカラム５２１、表ＤＭＬ検索条件５３１、表ＤＭＬグループ５４１、表ＤＭＬソート５５１を同一のＤＢＩＤ、ＤＭＬＩＤ、ＤＭＬテーブルＩＤ、ＤＭＬカラムＩＤ、テーブルＩＤ、カラムＩＤで関連付けることにより解決したインタフェース情報１６０５を埋め込む。データアクセスプログラム等の生成例を図１６に示す。
【００５４】
以上のような処理により、図１６の例ではＤＭＬ名「書籍検索Ｂ」においてＤＭＬ名「修正後書籍検索Ａ」のＳＱＬを再利用することになり、このように実行結果が重複・類似するＳＱＬを再利用することで、例えば動作のテストが必要なＳＱＬの数が削減され、情報システムの開発効率が向上する。
【００５５】
図１７（ａ）は、データアクセスプログラム等の実行時におけるマッピング情報の使用例である。データアクセス処理管理・生成システムが生成したデータアクセス処理ファイル１７０３は、データアクセス処理実行用共通プログラム１７０４の入力として使用する。呼出プログラムα１７０１がＤＭＬ名「書籍検索Ａ」を指定してデータアクセス処理実行用共通プログラム１７０４を呼び出した場合と、呼出プログラムβ１７０２がＤＭＬ名「書籍検索Ｂ」を指定してデータアクセス処理実行用共通プログラム１７０４を呼び出した場合の両方で、実行用共通プログラム１７０４は該当するＤＭＬ名を持つデータアクセス処理ファイル１７０３のＤＭＬを実行する。
【００５６】
図１７（ｂ）は、情報システムの変更等により、ユーザがＤＭＬ名「書籍検索Ａ」の図４のＤＭＬ構成情報を変更し、ＤＭＬ名「書籍検索Ａ」とＤＭＬ名「修正後書籍検索Ａ」とのＤＭＬマッピング情報１４０６が存在しなくなった図１４（ｂ）の場合におけるＤＭＬマッピング情報の使用例である。ＤＭＬ名「書籍検索Ａ」はＤＭＬマッピング情報１４０８のように、ＤＭＬＩＤ「ＤＭＬ５１」とは異なる新たなＤＭＬＩＤ「ＤＭＬ６１」の修正後ＤＭＬ構成情報にマッピングされるため、呼出プログラムα１７０１は呼出ＤＭＬ名「書籍検索Ａ」の指定を変更することなく、前記ＤＭＬＩＤ「ＤＭＬ６１」の修正後ＤＭＬ構成情報から生成した新たなデータアクセス処理ファイル１７０５を呼び出すことができる。
【００５７】
また、呼出プログラムβ１７０２は、ＤＭＬ名「書籍検索Ａ」のＤＭＬ構成情報に前記変更があっても、呼出ＤＭＬ名「書籍検索Ｂ」の指定を変更することなく前記変更前と同一のデータアクセス処理ファイル１７０３を呼び出すことができる。
【００５８】
図１８（ａ）は、データアクセスプログラム等の実行時におけるマッピング情報の別の使用例である。データアクセス処理管理・生成システムが生成したデータアクセス処理プログラムは、ＤＭＬを実行するプログラム１８１３と、呼出元プログラムとＤＭＬを実行するプログラムの仲介を行うプログラム１８１１、１８１２とに分かれている。呼出元プログラムα１８０１がＤＭＬ名「書籍検索Ａ」のＤＭＬの実行を意図してプログラム１８１１を呼び出した場合と、呼出元プログラムβ１８０２がＤＭＬ名「書籍検索Ｂ」のＤＭＬの実行を意図してプログラム１８１２を呼び出した場合で、同一のプログラム１８１３が実行される。
【００５９】
図１８（ｂ）は、情報システムの変更等により、ユーザがＤＭＬ名「書籍検索Ａ」の図１０のＤＭＬ構成情報を変更し、ＤＭＬ名「書籍検索Ａ」とＤＭＬ名「修正後書籍検索Ａ」とのマッピング情報１４０６が存在しなくなった図１４（ｂ）の場合におけるＤＭＬマッピング情報の使用例である。ＤＭＬ名「書籍検索Ａ」はＤＭＬマッピング情報１４０８のように、ＤＭＬＩＤ「ＤＭＬ５１」とは異なる新たなＤＭＬＩＤ「ＤＭＬ６１」の修正後ＤＭＬ構成情報にマッピングされるため、呼出プログラムα１８０１は呼出ＤＭＬ名「書籍検索Ａ」の指定を変更することなく、前記ＤＭＬＩＤ「ＤＭＬ６１」の修正後ＤＭＬ構成情報から生成した新たなデータアクセス処理プログラム１８１５を呼び出すことができる。
【００６０】
また、呼出プログラムβ１８０２は、ＤＭＬ名「書籍検索Ａ」のＤＭＬ構成情報に前記変更があっても、ＤＭＬ名「書籍検索Ｂ」の指定を変更することなく前記変更前と同一の修正後ＤＭＬ構成情報から生成したデータアクセス処理プログラム１８１３を呼び出すことが出来る。
【００６１】
以上のようにＤＭＬマッピング情報を使用することで、再利用しているＳＱＬの変更時における呼出プログラムの修正量が削減され、情報システムの開発効率が向上する。
【符号の説明】
【００６２】
１０１…データアクセス処理管理・生成システム、１０２…主記憶装置（メモリ）、１０３…外部記憶装置、１０４…バス、１０５…表示部、１０６…入力部、１０７…制御部、１０８…ネットワークインターフェース部。
【図１】
0005517904.tif 000002
【図２】
0005517904.tif 000003
【図３】
0005517904.tif 000004
【図４】
0005517904.tif 000005
【図５】
0005517904.tif 000006
【図６】
0005517904.tif 000007
【図７】
0005517904.tif 000008
【図８】
0005517904.tif 000009
【図９】
0005517904.tif 000010
【図１０】
0005517904.tif 000011
【図１１】
0005517904.tif 000012
【図１２】
0005517904.tif 000013
【図１３】
0005517904.tif 000014
【図１４（ａ）】
0005517904.tif 000015
【図１４（ｂ）】
0005517904.tif 000016
【図１５】
0005517904.tif 000017
【図１６】
0005517904.tif 000018
【図１７（ａ）】
0005517904.tif 000019
【図１７（ｂ）】
0005517904.tif 000020
【図１８（ａ）】
0005517904.tif 000021
【図１８（ｂ）】
0005517904.tif 000022