(57)【要約】      （修正有）【課題】開発効率向上と保守性確保のため、画面の設計情報等からＤＭＬ（ＤａｔａＭａｎｉｐｕｌａｔｉｏｎＬａｎｇｕａｇｅ）の実行結果が重複・類似する再利用可能な既存ＤＭＬを特定・再利用する技術を提供する。【解決手段】ＤＭＬを特定する情報とデータベースの操作言語の構成情報とを対応づけて記憶するリポジトリのＤＭＬ構成情報保持領域１２４と、画面の設計情報を記載した画面情報ファイルと、画面情報を、ＤＭＬ構成情報保持領域のＤＭＬ構成情報と照合して一致するＤＭＬを特定するＤＭＬ検索機能１１４とを有する。【選択図】図８
2016057722.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＬを特定する情報とデータベースの操作言語の構成情報とを対応づけて記憶するリポジトリのＤＭＬ構成情報保持領域と、
画面の設計情報を記載した画面情報と、
前記画面情報を、前記ＤＭＬ構成情報保持領域のＤＭＬ構成情報と照合して類似したＤＭＬを特定するＤＭＬ検索機能と
を有することを特徴とするＤＭＬ検索装置。
【請求項２】
請求項１に記載のＤＭＬ検索装置であって、
前記ＤＭＬ構成情報が、検索結果のパターンを特定する情報と、検索結果のカラムＩＤと、検索条件のカラムＩＤと、検索結果のソート条件のカラムＩＤであって、
更に、前記画面情報が、データ項目名と、コントロール名と、入出力を示すＩＯ情報とソート条件であり、
更に、
前記コントロール名と、件数を対応づけて記憶するコントロール情報ファイルとを有し、前記ＤＭＬ検索機能が、
前記ＩＯ情報が出力を示す場合に、前記出力に対応するデータ項目名を特定し、当該特定されたデータ項目名を前記ＤＭＬ構成情報保持領域の検索結果のカラムを保持する情報と照合し、前記ソート条件と対応するデータ項目名を特定し、ＤＭＬ構成情報保持領域の検索結果をソートするカラムを特定する情報とソート条件を照合し、前記ＩＯ情報が出力を示す前記コントロール名を、コントロール情報ファイルに照合して、件数を特定し、当該特定された件数を、前記ＤＭＬ構成情報保持領域のＤＭＬパターンの件数と照合し、前記ＩＯ情報が入力を示す場合に、前記入力に対応するデータ項目名を特定し、当該特定されたデータ項目名を、前記ＤＭＬ構成情報保持領域の検索結果絞り込みのカラムを特定する情報と照合し、全て一致するＤＭＬを特定する
ことを特徴とするＤＭＬ検索装置。
【請求項３】
請求項１乃至請求項２のいずれか一項に記載のＤＭＬ検索装置であって、
更に、
前記ＤＭＬが特定できない場合に、前記画面情報から作成されるＤＭＬ構成情報をリポジトリへ登録するＤＭＬ構成情報登録部を
有することを特徴とするＤＭＬ検索装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載のＤＭＬ検索装置であって、
特定されたＤＭＬと画面特定する情報とを対応づけて記憶する画面帳票情報をリポジトリに更に記憶し、
前記ＤＭＬ検索機能が、
更に、特定されたＤＭＬを画面に出力する
ことを特徴とするＤＭＬ検索装置。
【請求項５】
画面情報とＤＭＬの構成情報とを対応づけてリポジトリに記憶するステップと、
前記画面情報を、前記ＤＭＬ構成情報保持領域のＤＭＬ構成情報と照合して類似したＤＭＬを特定するステップと
を有することを特徴とするＤＭＬ検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＤＭＬの検索技術に関する。
【背景技術】
【０００２】
ＳＱＬは、データベース（以下、ＤＢという）を操作するための言語の一種であり、プログラム中に埋め込む等して実用に供されている。ＳＱＬの中で、テーブルに格納したデータの検索や更新等に関する言語が特にＤＭＬ（Data Manipulation Language）と呼ばれている。
【０００３】
近年では情報システム開発の規模が大きくなっており、ＳＱＬを埋め込んだデータアクセス処理プログラムまたはファイル（以下、データアクセスプログラム等という）の開発支援・管理する技術が要望されている。例えば特許文献１では、情報システムの開発者が入力したＤＭＬを管理することで、重複・類似するＤＭＬを検索する機能が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１２３５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
継続開発を行っている情報システムにおいては、開発効率向上と保守性確保のため、画面（ＤＢの検索処理に関わる画面）の設計情報等からＤＭＬの実行結果が重複・類似する既存ＤＭＬを特定・再利用する技術が期待されている。特許文献１ではＤＭＬの構成情報同士を比較して類似・重複するＤＭＬを特定する旨開示されているが、画面の設計情報とＤＭＬの構成情報を比較して類似・重複するＤＭＬを検索することは考慮されていない。
【課題を解決するための手段】
【０００６】
上記課題を解決する為に、本発明では、ＤＭＬを特定する情報とＤＢの操作言語の構成情報とを対応づけて記憶するＤＭＬ構成情報と、画面の設計情報を記載した画面情報ファイルと、前記画面情報を、前記ＤＭＬ構成情報のＤＭＬの構成情報と照合して類似したＤＭＬを特定するＤＭＬ検索機能とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画面の設計情報から類似・重複するＤＭＬを特定することができる。
【図面の簡単な説明】
【０００８】
【図１】ＤＭＬ検索装置の構成図。
【図２】ＤＢＭＳ情報保持領域のデータ構成図。
【図３】ＤＤＬ構成情報保持領域のデータ構成図。
【図４】ＤＭＬ構成情報保持領域のデータ構成図。
【図５】マッピング情報のデータ構成図。
【図６】画面情報のデータ構成図。
【図７】帳票情報のデータ構成図。
【図８】主記憶装置と外部記憶装置との間のデータの入出力関係。
【図９】ＳＱＬ検索処理のフローチャート。
【図１０】既に登録されているＤＭＬ構成情報の例。
【図１１】既に登録されているＤＭＬ構成情報の例。
【図１２】ユーザが新規作成する画面の例。
【図１３】画面帳票情報保持領域のデータ構成図。
【図１４】画面帳票情報の登録例。
【図１５】ＤＭＬ検索装置の出力例。
【図１６】ＤＭＬパターン情報の構成図。
【図１７】コントロール情報の構成図。
【図１８】ＤＭＬ検索装置の出力例。
【図１９】データアクセス処理雛形ファイルの例。
【図２０】データアクセスプログラム等の例。
【図２１】ユーザが新規作成する帳票の例。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について図面を参照して説明する。なお、ＤＢはデータベース、ＤＢＭＳはData Base Management System、ＤＤＬはData Definition Language、ＤＭＬはData Manipulation Languageの略である。ＤＢＭＳに対して指示を伝えるための言語がＳＱＬであり、テーブル等の構造を定義するＤＤＬとテーブルに格納したデータの検索や更新等のＤＭＬに分かれる。ＤＭＬ検索装置では、ＤＤＬとＤＭＬの情報を保持し、流用可能なＤＭＬを検索する。
【００１０】
ユーザが開発するシステムの画面の設計情報から、ＤＭＬの構成情報を比較する。具体的には図１２が画面の例、それに対応する画面の設計情報を図６、ＤＭＬの構成情報を図４、図１０、図１１で示す。図４、図１０、図１１はそれぞれ異なるＤＭＬの構成情報を表している。また、画面の設計情報とＤＭＬの構成情報の項目の情報（ＤＢのカラムを示す情報）が、画面の設計情報の入力や出力のそれぞれの部分について比較される。そして一致するＤＭＬを類似・重複するＤＭＬとして特定する。詳細以下に説明する。
【００１１】
図１は、ＤＭＬ検索装置１０１の構成例を示す図である。本システムは、一般的なコンピュータにより実現し、主として主記憶装置１０２と外部記憶装置１０３と表示部１０５と入力部１０６と制御部１０７とネットワークインタフェース部１０８とこれらを結ぶバス１０４で構成する。
【００１２】
主記憶装置１０２には、ＤＢＭＳ情報登録機能１１１とＤＤＬ構成情報登録機能１１２とＤＭＬ構成情報登録機能１１３とＤＭＬ検索機能１１４とデータアクセス処理生成機能１１５と画面・帳票情報登録機能１１６を持つプログラムを格納する。なお、各機能はＬＳＩ（ＬＳＩ：Large Scale Integration 大規模集積回路）等のハードウェアにより実現しても良い。各機能の内容については、図８の説明時に後述する。
【００１３】
外部記憶装置１０３には、リポジトリ１２１とＤＢＭＳ情報１３１とＤＤＬ構成情報１３２とＤＭＬ構成情報１３３と画面情報１３４と帳票情報１３５とマッピング情報１３６とデータアクセス処理雛形１３７とデータアクセスプログラム等１３８とＤＭＬパターン情報１３９とコントロール情報１４０を格納する。ここでＤＭＬ構成情報１３３は、ＤＭＬの構成情報に限定されず、データベースの操作言語の構成情報であればよい。
【００１４】
画面情報１３４は画面毎に、帳票情報１３５は帳票毎に用意する。画面情報１３４とＤＤＬ構成情報保持領域１２３の対応と、帳票情報１３５とＤＤＬ構成情報保持領域１２３の対応を格納したマッピング情報１３６は、システムで１つ用意する。データアクセスプログラム等の雛形となるデータアクセス処理雛形１３７は、検索・更新等のＳＱＬの種類毎に用意する。
【００１５】
リポジトリ１２１は、ＤＢＭＳ情報保持領域１２２とＤＤＬ構成情報保持領域１２３とＤＭＬ構成情報保持領域１２４と画面帳票情報保持領域１２５を持つ。なお、リポジトリ１２１の情報は本システムにネットワークにより接続された外部装置から取得しても良い。ＤＭＬ検索装置では、リポジトリ１２１はＤＢを使用する。本明細書では、ＤＭＬ検索装置のＤＢに作成するテーブルを表と記載する。
【００１６】
図２はＤＢＭＳ情報保持領域１２２のデータ構成図である。ＤＢＭＳ情報保持領域１２２は１つの表で構成される。ＤＢＭＳ表２０１は、ユーザが開発するシステムで使用するＤＢに関する情報を保存している。ＤＢＩＤ２０２はレコードを一意に識別するためにＩＤ（ＩＤ：Identification 識別子識別子）、ＤＢ名２０３は任意の名称、ＤＢＭＳ種別２０４はＤＢＭＳの種類を表す。ＤＢＭＳは複数の製品があるため、ユーザが開発するシステムのＤＢで採用するＤＢＭＳの種類をＤＢＭＳ種別２０４として保持する。
【００１７】
図３はＤＤＬ構成情報保持領域１２３のデータ構成図である。ＤＤＬ構成情報保持領域１２３はユーザが開発するシステムのＤＢに作成するテーブルの情報、カラムの情報を保持しており、２つの表から構成される。ここで、DBに作成する本システムのテーブルは表と記載する。
【００１８】
表テーブル３０１は、ユーザが開発するシステムのＤＢに作成するテーブルの一覧を保存している。ＤＢＩＤ３０２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、テーブルＩＤ３０３はレコードを一意に識別するＩＤ、テーブル名３０４は任意の名称である。
【００１９】
例えば、表テーブル３０１の列３０５のＤＢＩＤ３０２は、表テーブル２０１の列２０５のＤＢＩＤ２０２と一致するため、ＤＢ名「書籍管理」に作成するテーブルである。ＩＤの割り振りについては図８の説明部分で後述する。つまり本実施例では、Ａ社製ＤＢＭＳの書籍管理ＤＢに書籍というテーブルを作成していることになる。
【００２０】
表カラム３１１は、表テーブル３０１の各テーブルのカラムに関する情報を保存しており、ＤＢＩＤ３１２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、テーブルＩＤ３１３は表テーブル３０１と関連付けるためのＩＤ、カラムＩＤ３１４はレコードを一意に識別するＩＤ、カラム名３１５はユーザが作成するシステムのＤＢに対して作成するカラムの名称、データ型３１６はＤＢのデータ型、長さ３１７はカラムのデータ長、小数３１８はカラムの小数部分のデータ長、ＮＯＴ  ＮＵＬＬ制約３１９はユーザが作成するＤＢに必ずデータを登録する必要があるカラムであることを示す情報である。データ型３１６やＮＯＴ  ＮＵＬＬ制約３１９は、ＤＭＬ検索装置で一意に識別できる定数をコード値として割り当て、コード値に変換して格納しても良い（以下、コードの形式でリポジトリに保存できるデータについて同様とする）。例えば、ＮＯＴ  ＮＵＬＬ制約ありの場合０、ＮＯＴ  ＮＵＬＬ制約なしの場合１といった値を設定する。
【００２１】
例えば、表カラム３１１はテーブルＩＤ３１３が「Ｔ００１」であり、表テーブル３０１のテーブルＩＤ３０３が一致する列３０５のテーブル名「書籍」のカラムである。
【００２２】
図４はＤＭＬ構成情報保持領域１２４のデータ構成図である。ユーザが開発するシステムで使用するＤＭＬ件数分のデータを保持する。ＤＭＬ構成情報保持領域１２４は、各ＤＭＬでテーブルに格納したデータの検索や更新等のＤＭＬを保持している。ＤＭＬの一覧を保持する表、ＤＭＬで使用するテーブル情報を保持する表、ＤＭＬで使用するカラム情報を保持する表、ＤＭＬの検索条件を保持した表、ＤＭＬの検索結果のグループ化情報を保持した表、ＤＭＬの検索結果のソート順を保持した表の６つの表から構成される。本実施例では６つの表としているがこれに限定されるわけではなく、各表を組み合わせてひとつの表ＤＭＬ構成情報として管理してもよく、ＤＢの形式は限定されない。ひとつの表で管理する場合は、表ＤＭＬカラムのカラムＩＤは検索結果のカラムＩＤ、ＤＭＬ検索条件のカラムＩＤは検索条件のカラムＩＤ、表ＤＭＬグループのカラムＩＤはグループのカラムＩＤ、表ＤＭＬソートのカラムＩＤは検索結果のソートのカラムＩＤとして、それぞれのカラムＩＤを区別して特定する。
【００２３】
表ＤＭＬ４０１は、ＤＭＬの一覧を保存しており、ＤＢＩＤ４０２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４０３はレコードを一意に識別するＩＤ、ＤＭＬ名４０４は任意の名称、ＤＭＬパターン４０５は検索・更新等のデータアクセスの種類で表ＤＭＬパターン情報１６０１と関連付けるための情報である。表ＤＭＬ４０１には、他にＤＭＬの排他制御の指定等を保存しても良い。ＤＭＬ名は人間が分かるように命名された正式名称、ＩＤは管理するために記号化された名称であり、正式名称を保持しておく必要がある。
【００２４】
表ＤＭＬテーブル４１１は、各ＤＭＬでデータの検索や更新するテーブルを保存しており、ＤＢＩＤ４１２は２表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４１３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４１４はレコードを一意に識別するＩＤ、テーブルＩＤ４１５は表テーブル３０１と関連付けるためのＩＤ、テーブル別名４１６はテーブルの別名（エイリアス）である。１つのＤＭＬで同名テーブルを複数回使用する場合等に、テーブルを区別するために別名（エイリアス）を指定する。
【００２５】
表ＤＭＬカラム４２１は、各ＤＭＬで検索するカラム(ＳＥＬＥＣＴ文のＳＥＬＥＣＴ句で指定したカラム)や更新するカラム(ＵＰＤＡＴＥ文のＳＥＴ句で指摘したカラム)等を保存しており、ＤＢＩＤ４２２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４２３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４２４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬカラムＩＤ４２５はレコードを一意に識別するためのＩＤ、カラムＩＤ４２６は表カラム３１１と関連付けるためのＩＤ、関数４２７はカラムの値を集計するために指定した関数、カラム別名４２８はカラムの別名である。
【００２６】
ここでいう検索するカラムや更新するカラムが保存されているとは、既に存在するＤＭＬのＳＥＬＥＣＴ句の情報(ＤＭＬで検索するカラム)を保存していることをいう。具体的には、次のようなＤＭＬにおいて、下線部分についての情報を保持する。「ＳＥＬＥＣＴ  出版社ＩＤ，  ＭＩＮ（価格）  最安価格，  ＭＡＸ（価格）  最高価格  ＦＲＯＭ  書籍  書籍別名  ＷＨＥＲＥ  出版社ＩＤ  ＞  ？  ＡＮＤ  削除フラグ  ＝  ？  ＧＲＯＵＰ  ＢＹ  出版社ＩＤ  ＯＲＤＥＲ  ＢＹ  出版社ＩＤ  ＡＳＣ；」。
【００２７】
例えば、ＳＥＬＥＣＴ句の「ＭＩＮ（価格）  最安価格」は、価格の最小値を最安価格として扱うことを示しており、カラムＩＤ４２６にＣ００４、関数４２７にＭＩＮ、カラム別名４２８に最安価格が格納される。
【００２８】
表ＤＭＬ検索条件４３１は、各ＤＭＬの検索条件(ＷＨＥＲＥ句)を保存している。ＤＢＩＤ４３２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４３３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４３４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬ検索条件ＩＤ４３５はレコードを一意に識別するＩＤ、カラムＩＤ４３６は表カラム３１１と関連付けるためのＩＤ、関係演算子４３７は関係演算子、論理演算子４３８は論理演算子である。具体的には、次のようなＤＭＬにおいて、下線部分についての情報を保持する。「ＳＥＬＥＣＴ  出版社ＩＤ，  ＭＩＮ（価格）  最安価格，  ＭＡＸ（価格）  最高価格  ＦＲＯＭ  書籍  書籍別名  ＷＨＥＲＥ  出版社ＩＤ  ＞  ？  ＡＮＤ  削除フラグ  ＝  ？  ＧＲＯＵＰ  ＢＹ  出版社ＩＤ  ＯＲＤＥＲ  ＢＹ  出版社ＩＤ  ＡＳＣ；」。
【００２９】
例えば、ＷＨＥＲＥ句の「出版社ＩＤ  ＞  ？  ＡＮＤ」は、カラムＩＤ４３６がＣ００３、関係演算子４３７が「＞」、論理演算子４３８が「ＡＮＤ」となる。ＤＭＬ検索装置では「？」を保持せず、データアクセス処理生成機能１１５でＤＭＬを生成する際に自動的に出力する。「？」に入る値はユーザが開発しているシステムでＤＭＬ検索装置が生成したデータアクセスプログラム等を使用する際に指定される。
【００３０】
表ＤＭＬグループ４４１は、ＤＭＬの検索結果を同じ値を持つデータ毎に集合化するための条件であるＧＲＯＵＰ  ＢＹの情報を保持している。ＤＢＩＤ４４２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４４３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４４４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬグループＩＤ４４５はレコードを一意に識別するＩＤ、カラムＩＤ４４６は表カラム３１１と関連付けるためのＩＤである。例えば、カラムＩＤ４４６がＣ００３の場合には、ＧＲＯＵＰ  ＢＹ  出版社ＩＤとなる。
【００３１】
表ＤＭＬソート４５１は、ＤＭＬの検索結果のソート条件を保持している。ＤＢＩＤ４５２は表ＤＢＭＳ２０１と関連付けるためのＩＤ、ＤＭＬＩＤ４５３は表ＤＭＬ４０１と関連付けるためのＩＤ、ＤＭＬテーブルＩＤ４５４は表ＤＭＬテーブル４１１と関連付けるためのＩＤ、ＤＭＬソートＩＤ４５５はレコードを一意に識別するＩＤ、カラムＩＤ４５６は表カラム３１１と関連付けるためのＩＤ、ＤＭＬカラムＩＤ４５７は表ＤＭＬカラム４２１と関連付けるためのＩＤ、ソート順４５８はＤＭＬの検索結果のソート順番(昇順ＡＳＣ、降順ＤＥＳＣ)である。ここで、図４ではＤＭＬカラム、ＤＭＬ検索条件、ＤＭＬグループ、ＤＭＬソートを、それぞれわけて別の表としているが、これに限定されるものではなく、それぞれ連結してひとつの表としてまとめてもよい。１つにすると保守性がよくないため、ＤＭＬ検索装置では図４のように分割している。
【００３２】
図５はマッピング情報１３６のデータ構成図である。マッピング情報５０１は、１つのファイルで構成され、データ項目名５０２はシステム全体でデータ項目を一意に識別する名称、データベースの項目名５０３はテーブル名３０４やカラム名３１５である。ユーザが開発するシステムのＤＢのテーブル名やカラム名は最大長が決まっているため、画面・帳票に出力する項目名と異なる場合がある。このため、ＤＢのテーブル名やカラム名と画面・帳票の項目名を対応づけるための情報をマッピング情報１３６で保持する。
【００３３】
図６は画面情報１３４のデータ構成図であり、１つのファイルで構成され、ユーザが開発するシステムの画面の設計情報を保持している。画面情報１３４のデータ構成図はＤＭＬ検索装置が指定しており、画面を設計する場合にユーザが図６を作成して、ＤＭＬ検索装置の入力とする。画面情報１３４は２つの表で構成される。システムの画面とは、ＤＢを検索して結果を表示するようなＤＢの操作に関わる画面を想定している。なお、画面情報１３５はリポジトリ１２１で保持してもよい。
【００３４】
画面情報６０１は、画面に関する情報を保存している。画面ＩＤ６０２は画面を一意に識別するＩＤ、画面名６０３は任意の画面名である。
【００３５】
表画面項目情報６１１は、画面の項目に関する情報である。データ項目名６１２は画面で使用する項目の名称を保持しており、表マッピング情報５０１のデータ項目名５０２と関連付けるための情報である。コントロール名６１３は画面で使用するコントロール名、ＩＯ情報６１４は入出力の種別(入力データＩ、出力データＯ）である。
【００３６】
例えば、ユーザが開発するシステムで図１２の画面を表示する場合、ユーザは図６の表画面情報６０１を作成する。販売書籍名を入力させるテキストボックスと、検索結果の販売書籍名と販売書籍価格を出力させて表示させるリスト、販売書籍名を降順にソートさせる画面を表示させることを意味している。
【００３７】
図７は帳票情報１３５のデータ構成図であり、１つのファイルで構成され、ユーザが開発するシステムが出力する帳票情報を保持している。帳票情報１３５のデータ構成図はＤＭＬ検索装置が指定しており、帳票を設計する場合にユーザが図７を作成して、ＤＭＬ検索装置の入力とする。帳票情報１３５は２つの表で構成される。表帳票情報７０１は、帳票に関する情報を保存している。帳票ＩＤ７０２は帳票を一意に識別するＩＤ、帳票名７０３は任意の帳票名である。
【００３８】
帳票項目情報７１１は、帳票に表示する項目に関する情報である。データ項目名７１２は帳票で出力する項目の名称を保持しており、表マッピング情報５０１のデータ項目名５０２と関連付けるための情報である。件数７１３は帳票に出力するデータの件数である。例えば、ユーザが開発するシステムで図２２の帳票を出力する場合、ユーザは図７の表帳票情報７０１を作成する。
【００３９】
図８は、主記憶装置に格納する情報と外部記憶装置に格納する情報と各機能の関連図である。ＤＢＭＳ情報登録機能１１１は、ユーザが入力したＤＢ名、ＤＢＭＳの種類であるＤＢＭＳ情報１３１を入力とし、ＤＢＭＳ情報保持領域１２２に保存する。
【００４０】
例えば、ＤＢ名「書籍管理」、ＤＢＭＳの種類「Ａ社製ＤＢＭＳ」を入力した場合、制御部１０７はＤＢＭＳ情報２０５をＤＢＭＳ情報保持領域１２２に登録する。具体的には、表ＤＢＭＳ２０１に、ＤＢ名２０３が「書籍管理」、ＤＢＭＳ種別２０４が「Ａ社製ＤＢＭＳ」，ＤＢＩＤ２０２はＤＭＬ検索装置で一意となるよう制御部１０７が付与したＤＢ０１であるレコード２０５が追加される。
【００４１】
ＤＤＬ構成情報登録機能１１２は、ＤＢＭＳ情報保持領域１２２に保存されているＤＢＭＳ情報からユーザが選択したＤＢ名に対応するＤＢＩＤ、ユーザが入力したテーブル名、カラム名、データ型、データの長さ、データの小数の長さ、ＮＯＴ  ＮＵＬＬ制約の情報であるＤＤＬ構成情報１３２を入力とし、ＤＤＬ構成情報保持領域１２３に保存する。例えばユーザがＤＢ名「書籍管理」を選択し、テーブル名「書籍」、カラム名「書籍番号」、データ型「Ｃｈａｒ」、長さ「１５」、ＮＯＴ  ＮＵＬＬ制約「ＮＯＴ  ＮＵＬＬ」のカラムを入力した場合、制御部１０７は同一のＤＢＩＤで一意となるようなテーブルＩＤ３０３、同一のＤＢＩＤかつテーブルＩＤで一意となるカラムＩＤ３１４を付与し、ＤＤＬ構成情報３０５及びＤＤＬ構成情報３２０をＤＤＬ構成情報保持領域１２３に登録する。
【００４２】
ＤＭＬ構成情報登録機能１１３は、ＤＢＭＳ情報保持領域１２２に保存されているＤＢＭＳ情報からユーザが選択したＤＢ名に対応するＤＢＩＤ、ユーザが入力したＤＭＬ名、テーブル操作の情報であるＤＭＬ構成情報１３３、ＤＤＬ構成情報保持領域１２３に保存されているテーブル操作の対象となるテーブルのＤＤＬ構成情報を入力とし、ＤＭＬ構成情報保持領域１２４に保存する。ＤＭＬＩＤ４０３、ＤＭＬテーブルＩＤ４１４、ＤＭＬカラムＩＤ４２５、ＤＭＬ検索条件ＩＤ４３５、ＤＭＬグループＩＤ４４５、ＤＭＬソートＩＤ４５５については、同一のＤＢＩＤにおいて、それぞれ表ＤＭＬ４０１、表ＤＭＬテーブル４１１、表ＤＭＬカラム４２１、表ＤＭＬ検索条件４３１、表ＤＭＬグループ４４１、表ＤＭＬソート４５１で一意となるよう制御部１０７が付与する。
【００４３】
具体的には、ＤＭＬ検索装置に流用できるＤＭＬがなく、ＤＭＬ検索装置にユーザがＤＭＬを新規登録する場合、ＤＢ名「書籍管理」を選択し、ＤＭＬ名「書籍検索Ａ」及びＤＭＬ「ＳＥＬＥＣＴ  出版社ＩＤ，  ＭＩＮ（価格）  最安価格，  ＭＡＸ（価格）  最高価格  ＦＲＯＭ  書籍  書籍別名  ＷＨＥＲＥ  出版社ＩＤ  ＞  ？  ＡＮＤ  削除フラグ  ＝  ？  ＧＲＯＵＰ  ＢＹ  出版社ＩＤ  ＯＲＤＥＲ  ＢＹ  出版社ＩＤ  ＡＳＣ；」相当のテーブル操作の情報を入力したとすると、ＤＭＬ構成情報保持領域１２４は図４に示す通りとなる。なお、ＤＭＬ構成情報の代わりにＤＭＬを入力とし、ＤＭＬ構成情報登録機能１１３でＤＭＬを構文解析してＤＭＬ構成情報を取得し、ＤＭＬ構成情報保持領域１２４に保存しても良い。
【００４４】
ＳＱＬ検索機能１１４は、ＤＤＬ構成情報保持領域１２３に保存されているＤＤＬ構成情報とＤＭＬ構成情報保持領域１２４に保存されているＤＭＬ構成情報と画面情報１３４とマッピング情報１３６とＤＭＬパターン情報１３９とコントロール情報１４０を入力として、流用可能なＤＭＬをＤＭＬ検索装置の画面に一覧として出力する。
【００４５】
例えば、図１２の画面を新規作成する場合、ユーザは画面の設計情報として図６のファイルを作成して画面情報１３４としてＤＭＬ検索装置に入力する。制御部がＤＭＬを特定する方法については、図９の説明時に後述する。
【００４６】
データアクセス処理生成機能１１５は、ＤＢＭＳ情報保持領域１２２に保存されているＤＢＭＳ情報、ＤＤＬ構成情報保持領域１２３に保存されているＤＤＬ構成情報、ＤＭＬ構成情報保持領域１２５に保存されているＤＭＬ構成情報、データアクセス処理雛形１３７から、データアクセスプログラム等１３８を生成する。
【００４７】
例えば、データアクセス処理雛形１３７が図１９の場合、図４のＤＭＬ構成情報を生成したデータアクセスプログラム等は図２０となる。制御部１０７はＤＭＬＮａｍe１９０２にＤＭＬ名４０４「書籍検索Ａ」を、Ｓｔａｔｅｍｅｎｔ１９０３に図４のＤＭＬ構成情報から生成したＤＭＬ２００３「ＳＥＬＥＣＴ  出版社ＩＤ，  ＭＩＮ（価格）  最安価格，  ＭＡＸ（価格）  最高価格  ＦＲＯＭ  書籍  書籍別名  ＷＨＥＲＥ  出版社ＩＤ  ＞  ？  ＡＮＤ  削除フラグ  ＝  ？  ＧＲＯＵＰ  ＢＹ  出版社ＩＤ  ＯＲＤＥＲ  ＢＹ  出版社ＩＤ  ＡＳＣ；」を、Ｐａｒａｍｅｔｅｒｓ１９０４に表テーブル３０１、表カラム３１１、表ＤＭＬテーブル４１１、表ＤＭＬカラム４２１、表ＤＭＬ検索条件４３１を同一のＤＢＩＤ、ＤＭＬＩＤ、ＤＭＬテーブルＩＤ、ＤＭＬカラムＩＤ、テーブルＩＤ、カラムＩＤで関連付けることにより解決したインタフェース情報を埋め込む。
【００４８】
画面・帳票情報登録機能１１６は、ＤＭＬ構成情報保持領域１２４に保存されているＤＭＬ構成情報と画面情報１３４を入力としてＤＭＬとＤＭＬを使用する画面の対応情報を画面帳票情報保持領域１２５へ保存、もしくはＤＭＬ構成情報保持領域１２４に保存されているＤＭＬ構成情報と帳票情報１３５を入力としてＤＭＬを使用している帳票情報を画面帳票情報保持領域１２５へ保存する。
【００４９】
例えば、画面帳票情報保持領域１２５が図１３の状態である場合に、画面ＩＤ「Ｓｃｒｅｅｎ０１」でＤＭＬＩＤ「ＤＭＬ０２」を流用すると、画面帳票情報保持領域１２５は図１４となり、列１４０６が追加される。画面帳票情報ＩＤ１４０２は表画面帳票情報１４０１が一意となるよう制御部１０７が付与する。
【００５０】
図９はＤＭＬ検索機能１１４と画面・帳票情報登録機能１１６を示したフローチャートである。ＤＭＬ構成情報登録機能１１３でＤＭＬが登録されている場合、ユーザの操作によりＤＭＬ検索機能１１４が動作する。ＤＭＬ検索機能１１４の動作前までに登録された画面帳票情報保持領域１２５を図１３、ＤＭＬ構成情報１３３を図４、図１０、図１１とし、ＤＭＬ検索機能１１４の動作前までに作成されたマッピング情報１３６を図５、ＤＭＬパターン情報１３９を図１６、コントロール情報１４０を図１７とする。ユーザが新規に作成する画面を図１２、図１２に対応する画面情報１３４を図６として、ＤＭＬ検索機能１１４の動作を以下説明する。また、本実施例では、画面情報と帳票情報から、流用できるＤＭＬを特定することとしているが、それに限定されるわけではなく、画面情報から特定されることとしてもよいし、帳票情報から特定されることとしてもよい。
【００５１】
制御部１０７は初めに、画面情報を取得するため、表画面項目情報６１１の情報を全て読み込む（ステップＳ１）。
【００５２】
制御部１０７は次に、画面に表示するデータ項目名に対応するデータベースの項目名を取得する（ステップＳ２）。例えば、表画面項目情報６１１の列６１６のデータ項目名６１２「販売書籍名」をキーとして表マッピング情報５０１の列５０４を取得し、データベースの項目名５０３「書籍名」を取得する。本実施例では、画面で表示されるデータ項目名と、データベースで扱われる項目名が異なるため、表マッピング情報を使っているが、同じ名前を使用する場合は直接検索することとしてもよい。
【００５３】
制御部１０７は次に、画面の出力項目がＤＭＬの出力情報と部分一致した上でソート条件が一致し、画面に出力する項目件数がＤＭＬの検索結果数と完全一致するＤＭＬを選択する（ステップＳ３）。例えば、表画面項目情報６１１のＩＯ情報６１４が「Ｏ」である列が画面の出力項目であるため、列６１７と列６１８のデータ項目名６１２「販売書籍名」「販売書籍価格」をキーにして表マッピング情報５０１から列５０４と列５０５を特定する。データベースの項目名５０３「書籍名」と「価格」をキーにして表カラム３１１からカラムＩＤ３１４「Ｃ００２」と「Ｃ００４」を特定する。次に、特定したカラムがＤＭＬの出力情報に含まれることを確認するため、各ＤＭＬで検索するカラムや更新するカラム等を保存している表ＤＭＬカラム４２１に含まれることを確認する。カラムＩＤをキーとして表ＤＭＬカラムを検索し、表ＤＭＬカラム１０２１のカラムＩＤ１０２６、表ＤＭＬカラム１１２１のカラムＩＤ１１２６に「Ｃ００２」と「Ｃ００４」を含む図１０、図１１のＤＭＬＩＤを取得する。表ＤＭＬカラム４２１のカラムＩＤ４２６には「Ｃ００２」が含まれないため、図４は除外される。
【００５４】
次に、列６１７のソート条件６１５が「ＡＳＣ」と指定されているため、データ項目名６１２「販売書籍名」に対応するカラムＩＤ３１４ｗをキーとして表１０５１、表１１５１を検索し、ソート順１０５８、ソート順１１５８が「ＡＳＣ」であることをチェックする。カラムＩＤ１０５６が「Ｃ００２」である列１０５９のソート順１０５８は「ＡＳＣ」、カラムＩＤ１１５６が「Ｃ００２」である列１１５９のソート順１１５８は「ＡＳＣ」である。図１０、図１１はソート条件を満たすため、図１０、図１１のＤＭＬＩＤは全て選択されたままとなる。
【００５５】
次に、表画面項目情報６１１の列６１７、列６１８のコントロール名６１３「リスト」をキーにして表コントロール情報１７０１から列１７０４を特定し、件数１７０３「複数件」を取得する。件数１６０３が「複数件」である列１６０４のＤＭＬパターン１６０２「複数検索」と列１６０５のＤＭＬパターン１６０２「結合複数検索」を特定する。ＤＭＬパターン１００５が「複数検索」である図１０に絞り込む。ＤＭＬパターン１１０５は「単数検索」であるため、図１１は除外される。ここで、コントロール名６１３「リスト」がキーとして選択されたのは、ＩＯ情報６１４がＯであるもの、つまり出力に関するコントロール名６１３をキーとしている。本実施例では、ＩＯ情報６１４がＯであるものの、コントロール名は同一であることを想定しているので、Ｏが複数ある場合はそのどれかのコントロール名をキーとすればよい。検索結果は、通常関連する書籍名と価格や書籍名と出版社というふうにセットで同じコントロールに表示させることが一般的だからである。
【００５６】
制御部１０７は次に、画面の入力情報とＤＭＬの入力情報が完全一致するＤＭＬ構成情報を絞り込む（ステップＳ４）。例えば、表画面項目情報６１１のＩＯ情報６１４が「I」である列６１６のデータ項目名６１２「販売書籍名」をキーとして表マッピング情報５０１の列５０４のデータベースの項目名５０３「書籍名」を取得する。データベースの項目名５０３「書籍名」をキーとして表カラム３１１から列３２０を取得する。列３２０のカラムＩＤ３１５「Ｃ００２」と表ＤＭＬ検索条件１０３１のカラムＩＤ１０３６が一致するため、図１０は選択されたままとなる。
【００５７】
ＤＭＬ検索装置は、画面上に絞り込んだ結果を一覧として出力する（ステップＳ５）。ステップＳ４で図１０のＤＭＬ構成情報に絞り込んで特定した後、ＤＭＬＩＤ１００３をキーとして表帳票情報領域１３０１から画面ＩＤ１３０４と帳票ＩＤ１３０５を取得する。それをそれぞれ対応づけて記憶させる。出力結果は図１５となる。本実施例では、ＤＭＬ名、ＤＭＬＩＤ，画面ＩＤ、帳票ＩＤ、をそれぞれ表示しているがこれに限定される訳ではなく、特定されたＤＭＬを示す情報を表示できればよい。例えば、ＤＭＬ名と、ＤＭＬＩＤを表示させるようにしてもよい。再利用可能なＤＭＬを特定することで、開発者が当該画面設計に関わるＤＭＬを一から作成する手間を省くことができる。
【００５８】
ＤＭＬ検索装置の出力結果のＤＭＬを流用できない場合でも、画面もしくは帳票が使用している別のＤＭＬを流用できる可能性がある。そこで、ステップＳ６で流用可能なＤＭＬが存在するかどうか判定し、存在しない場合は、ステップＳ７でユーザから画面もしくは帳票で使用するＳＱＬを検索する指示を受け付ける。ユーザがＤＭＬ検索装置上で画面もしくは帳票を指定して検索することで、ＤＭＬ検索装置はユーザが指定した画面もしくは帳票で使用する全ＤＭＬを一覧として出力する（ステップＳ８）。
【００５９】
例えば、ＤＭＬ検索装置の出力結果が図１５、画面帳票情報保持領域１２５が画面帳票情報１４０１である場合、ユーザがＤＭＬ検索装置の画面で画面ＩＤ「Ｓｃｒｅｅｎ８１」を選択して再検索すると、ＤＭＬ検索装置は画面ＩＤ「Ｓｃｒｅｅｎ８１」をキーとして画面帳票情報１４０１を検索し、画面ＩＤが「Ｓｃｒｅｅｎ８１」である列１４０７と列１４０８を取得して図１８として出力する。画面や帳票の項目ではないが、画面で保持する情報やチェック処理で使用する情報等を取得するＤＭＬを探す場合に使用できる。図１４は、画面ＩＤとＤＭＬのセットを全て記憶している。このため、画面で使用されているＤＭＬを画面ＩＤから特定できる。ＳＱＬを流用した場合や新規作成した場合は、図１４に登録することで、次回以降の画面作成時に備えている。
【００６０】
流用可能なＤＭＬが存在しない場合、ＤＭＬ検索装置はユーザがＤＭＬ検索装置に入力したＤＭＬを新規登録する(ステップＳ９)。
【００６１】
流用可能なＤＭＬが存在する場合、制御部１０７は画面・帳票情報登録機能１１５でＤＭＬＩＤと画面ＩＤもしくは帳票ＩＤを画面帳票情報保持領域１２５に登録する（ステップＳ１０）。
【００６２】
例えば、画面帳票情報保持領域１２５が図１３の状態である場合に、画面ＩＤ「Ｓｃｒｅｅｎ０１」でＤＭＬＩＤ「ＤＭＬ０２」を流用すると、ＤＭＬ検索装置は画面帳票情報１４０１に列１４０６を追加するため、画面帳票情報保持領域１２５は図１４となる。
【００６３】
以上のように実行結果が重複・類似するＳＱＬを流用することにより、例えば動作のテストが必要なＳＱＬの数が削減されて情報システムの開発効率が向上し、例えばＤＢの構造が変更になった場合に修正が必要なＳＱＬの数が削減されて情報システムの保守性が向上する。
【００６４】
図１０は、「ＳＥＬＥＣＴ  書籍名，価格，出版社ＩＤ  ＦＲＯＭ  書籍  
ＷＨＥＲＥ  書籍名  ＬＩＫＥ  ？  ＧＬＯＵＰ  ＢＹ  出版社ＩＤ  ＯＲＤＥＲ  ＢＹ  書籍名  ＡＳＣ；」相当のテーブル操作の情報をＤＭＬ検索装置に入力した場合のＤＭＬ構成情報保持領域１２４の例である。
【００６５】
図１１は、「ＳＥＬＥＣＴ  書籍名，価格  ＦＲＯＭ  書籍  ＷＨＥＲＥ  書籍名  =  ？  ＯＲＤＥＲ  ＢＹ  書籍名  ＡＳＣ；」相当のテーブル操作の情報をＤＭＬ検索装置に入力した場合のＤＭＬ構成情報保持領域１２４の例である。
【００６６】
図１２は、ユーザが開発するシステムで新規に作成する画面デザインの例である。
【００６７】
図１３は、画面帳票情報保持領域１２５の構成図である。ユーザが各画面で使用するＤＭＬや各帳票で使用するＤＭＬを検索できるように、ＤＭＬ検索装置では画面情報６０１とＤＭＬ構成情報４０１のリンク情報、帳票情報７０１とＤＭＬ構成情報４０１のリンク情報を同じ領域で保持する。表画面帳票情報１３０１は、画面情報６０１とＤＭＬ構成情報４０１のリンク情報、または帳票情報７０１とＤＭＬ構成情報４０１のリンク情報を保持する。画面とＤＭＬ及び帳票とＤＭＬを対応付けることで、各画面で使用するＤＭＬと各帳票で使用するＤＭＬの特定、ＤＭＬを使用する画面と帳票の特定が可能となる。
【００６８】
画面帳票情報ＩＤ１３０２は、リンク情報を一意に識別するＩＤでＤＭＬ検索装置が付加する。ＤＭＬＩＤ１３０３は表ＤＭＬ４０１と関連付けるためのＩＤ、画面ＩＤ１３０４は画面情報６０１の画面ＩＤ６０２を関連付けるためのＩＤ、帳票ＩＤ１３０５は表帳票情報７０１と関連付けるためのＩＤである。
【００６９】
例えば、画面ＩＤ「Ｓｃｒｅｅｎ８１」の画面で使用しているＤＭＬを取得したい場合、画面ＩＤ１３０４「Ｓｃｒｅｅｎ８１」をキーにして表画面帳票情報１３０１を検索し、列１３０６のＤＭＬＩＤ１３０３「ＤＭＬ０２」、列１３０７のＤＭＬＩＤ１３０３「ＤＭＬ０１」を特定する。ここでは画面ＩＤと、帳票ＩＤとが関連付いているがこれに限定されるものではなく、画面ＩＤだけ、帳票ＩＤだけとなってもよい。
【００７０】
図１４は、画面帳票情報保持領域１２５の例である。図１３の画面帳票情報に、列１４０６が新たに追加された状態を示している。
【００７１】
図１５は、表示部１０５に表示するＤＭＬ検索装置の出力情報の構成図である。表検索結果情報１５０１は、ＤＭＬ検索装置で特定したＤＭＬ構成情報からなる。ＤＭＬ名１５０２はユーザがＤＭＬを識別するための任意の名称、ＤＭＬＩＤ１４０３は表ＤＭＬ４０１と関連付けるためのＩＤ、画面ＩＤ１４０４は表画面情報６０１と関連付けるためのＩＤ、帳票ＩＤ１４０５は表帳票情報７０１と関連付けるためのＩＤである。
【００７２】
図１６は、ＤＭＬパターン情報１３９の構成図である。表ＤＭＬパターン情報１６０１は、ＤＭＬパターン情報を一意に識別するＩＤ、件数１６０３はＤＭＬが取得する検索結果の件数である。
【００７３】
ＤＭＬパターン情報１３９はＤＭＬ検索装置で一意に決定できるため、ＤＭＬ検索装置にあらかじめ登録してある。「単純検索」は1テーブルを検索した結果が1件になるパターン、「複数検索」は1テーブルを検索した結果が複数件になるパターン、「結合単数検索」はテーブルを結合して検索した結果が1件になるパターン、「結合複数検索」はテーブルを結合して検索した結果が複数件になるパターン、「複数更新」は1テーブルのデータを1件更新するパターンである。ＤＭＬパターン情報は、検索結果のパターンを特定する情報なので、項目情報ではＩＯがＯ、つまり出力のコントロール名に対応することになる。本実施例ではＤＭＬパターンと件数を対応づけて、表ＤＭＬパターン情報により件数に変換しているが、これに限定されるものではなく、ＤＭＬパターンに直接件数の情報を記憶させるようにしてもよい。その場合、画面情報からコントロール名を特定し、コントロール情報ファイルにより件数を特定して、直接ＤＭＬパターンと比較、照合することになる。
【００７４】
例えば、列１６０４では、ＤＭＬパターン１６０１が「複数検索」である場合、件数１６０２が複数件であるため、ＤＭＬの検索結果は複数件である。
【００７５】
図１７は、コントロール情報１４０の構成図である。表コントロール情報１７０１は、ＤＭＬ検索装置でサポートしている画面のコントロール情報を保持している。コントロール名１７０２はコントロールを一意に識別するＩＤ、件数１８０３はコントロールを選択した場合に画面に表示する項目の件数である。コントロール情報１４０はＤＭＬ検索装置にあらかじめ登録してある。
【００７６】
図１８は、ＤＭＬ検索装置が表示部１０５に表示する出力情報の例である。
【００７７】
図１９は、データアクセス処理雛形１３７のデータ構成図である。データアクセス処理雛形例１９０１は、ＤＭＬＮａｍe１９０２にＤＭＬ名を出力する位置を識別するための記号＠ＤＭＬ名を、Ｓｔａｔｅｍｅｎｔ１９０３にＤＭＬを出力する位置を識別するための記号＠ＳＱＬ、Ｐａｒａｍｅｔｅｒｓ１９０４にＤＭＬの入出力情報を出力する位置を識別するための記号＠入出力パラメータを保持している。
【００７８】
図２０は、ＤＭＬ検索装置が生成したデータアクセスプログラム等１３８のデータ構成図である。データアクセスプログラム等の出力例２００１は、ＤＭＬＮａｍe２００２にＤＭＬ名、Ｓｔａｔｅｍｅｎｔ２００３にＤＭＬ、Ｐａｒａｍｅｔｅｒｓ２００４にＤＭＬの入出力情報を出力する。
【００７９】
図２１は、ユーザが開発するシステムで新規作成する帳票の例である。
【符号の説明】
【００８０】
１０１：ＤＭＬ検索装置、１０２：主記憶装置（メモリ）、１０３：外部記憶装置、１０４：バス、１０５：表示部、１０６：入力部、１０７：制御部、１０８：ネットワークインタフェース部
【図１】
2016057722.tif 000003
【図２】
2016057722.tif 000004
【図３】
2016057722.tif 000005
【図４】
2016057722.tif 000006
【図５】
2016057722.tif 000007
【図６】
2016057722.tif 000008
【図７】
2016057722.tif 000009
【図８】
2016057722.tif 000010
【図９】
2016057722.tif 000011
【図１０】
2016057722.tif 000012
【図１１】
2016057722.tif 000013
【図１２】
2016057722.tif 000014
【図１３】
2016057722.tif 000015
【図１４】
2016057722.tif 000016
【図１５】
2016057722.tif 000017
【図１６】
2016057722.tif 000018
【図１７】
2016057722.tif 000019
【図１８】
2016057722.tif 000020
【図１９】
2016057722.tif 000021
【図２０】
2016057722.tif 000022
【図２１】
2016057722.tif 000023