(57)【特許請求の範囲】
【請求項１】
顧客の要求を満たすテーブル構造を決定し、提供するためのテーブル構造決定及び通知システムにおいて、
顧客が操作したクライアント端末からネットワークを介して送信された顧客が使用するテーブルの要求に関する要求情報であって、データを検索するための主キー情報、データ名、データ型、データの長さ、必須のデータか否かを示す情報、データの従属性に関する情報が含まれる要求情報を受信する要求受信手段と、
前記要求受信手段が受信した要求情報に基づいて、顧客の要求を満たすテーブル構造のテーブルを作成するためのＳＱＬ文を生成する構造ＳＱＬ生成手段と、
前記構造ＳＱＬ作成手段が生成したＳＱＬ文に基づいて生成されたテーブルに対する処理を行うためのＳＱＬ文を生成する処理ＳＱＬ生成手段と、
前記構造ＳＱＬ生成手段により作成されたＳＱＬ文の内容に基づき、テスト用データベースを作成するテスト用データベース作成手段と、
作成されたテスト用データベース内のテーブルへデータ入力を行なうデータ入力手段と、
データ入力されたテスト用データベースに対し、前記処理ＳＱＬ生成手段により作成されたＳＱＬ文の内容に基づいた処理を実行するＳＱＬ実行手段と、
前記ＳＱＬ実行手段が前記テスト用データベースに対する処理を実行することにより、前記テスト用データベースの性能を測定する性能測定手段と、
前記性能測定手段が測定した測定結果と、前記ＳＱＬ文に基づいて生成されたテーブルのテーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信するテーブル構造結果通知手段とを備えたことを特徴とするテーブル構造決定及び通知システム。
【請求項２】
請求項１に記載のテーブル構造決定及び通知システムにおいて、
前記要求受信手段は、
顧客が操作したクライアント端末からネットワークを介して送信された顧客の前記要求情報に含まれる要求内容が複数だった場合に、前記要求情報と共に、前記要求内容の優先順位を示す順位情報を受信する順位情報受信手段を備え、
前記テーブル構造結果通知手段は、
前記性能測定手段によるテスト用データベースの性能の測定結果から、前記順位情報に基づき、顧客の要求するテーブル構造を選択するテーブル構造選択手段と、
前記性能測定手段が測定した測定結果と、前記テーブル構造選択手段により選択された前記テーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信する送信手段とを備えることを特徴とするテーブル構造決定及び通知システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顧客の要求を満たすテーブル構造を決定し、提供するためのテーブル構造決定及び通知システムに関する。
【背景技術】
【０００２】
近年より、システム開発を行う上でシステム上で用いられるデータ量が膨大となってきており、データ管理の重要性が、システム運営上で必要不可欠となっている。多くのデータ管理を行うソフトウェアが普及し、システムに対して様々なＤＢＭＳが利用されるようになってきた。ＤＢＭＳを使用する上で、システムを運営するためのパフォーマンスを向上することが要求されている。
【０００３】
下記の特許文献１では、既にテーブル構造が決定しているデータベースに対して、クライアントがクライアント端末により接続し、クライアント端末の画面から一つずつＳＱＬ検索文を入力し、中央処理装置に送信する。中央処理装置では、送信された検索条件が検索条件データベースに登録されていないなら登録する。その後、中央処理装置はＳＱＬを発行し、性能を測定する。そこで得られた性能結果をクライアント端末に表示し、クライアントが評価をするという方法が開示されている。
【０００４】
【特許文献１】特開２００１−２８２７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常、パッケージや製品において、データベースを使用する場合、テーブル構造を決定した上で、開発者が使用するＳＱＬ文を作成する。このようなＳＱＬ文の場合、テーブルの構造が決定した中で、性能が良いＳＱＬ文を作成する流れとなる。
【０００６】
そのため、既にテーブル構造が決定されたテーブルに対して性能が良いＳＱＬ文を作成しているため、パフォーマンスの平均的なＳＱＬ文が多く、顧客が求めている性能の要求を満たしたＳＱＬ文を作成できないことがある。
【０００７】
特許文献１に記載されたデータベースの性能評価方法においても、既にテーブル構造が決定されたデータベースに対するデータベース検索について評価を行っているため、ＳＱＬ文の性能には限界があった。データベースのテーブル設計とＳＱＬ設計は密に関係があり、両方に高い知識がないと、顧客を満足させる設計をすることができない。
【０００８】
本発明は、以上の問題点に鑑みてなされたものであり、その目的とするところは、顧客からのデータベースに対する処理に関する要求を満たすＳＱＬ文を作成し、そのＳＱＬ文に基づいたテーブル構造を決定することが可能なテーブル構造決定及び通知システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に係る発明は、顧客の要求を満たすテーブル構造を決定し、提供するためのテーブル構造決定及び通知システムにおいて、
顧客が操作したクライアント端末からネットワークを介して送信された顧客が使用するテーブルの要求に関する要求情報であって、データを検索するための主キー情報、データ名、データ型、データの長さ、必須のデータか否かを示す情報、データの従属性に関する情報が含まれる要求情報を受信する要求受信手段と、
前記要求受信手段が受信した要求情報に基づいて、顧客の要求を満たすテーブル構造のテーブルを作成するためのＳＱＬ文を生成する構造ＳＱＬ生成手段と、
前記構造ＳＱＬ作成手段が生成したＳＱＬ文に基づいて生成されたテーブルに対する処理を行うためのＳＱＬ文を生成する処理ＳＱＬ生成手段と、
前記構造ＳＱＬ生成手段により作成されたＳＱＬ文の内容に基づき、テスト用データベースを作成するテスト用データベース作成手段と、
作成されたテスト用データベース内のテーブルへデータ入力を行なうデータ入力手段と、
データ入力されたテスト用データベースに対し、前記処理ＳＱＬ生成手段により作成されたＳＱＬ文の内容に基づいた処理を実行するＳＱＬ実行手段と、
前記ＳＱＬ実行手段が前記テスト用データベースに対する処理を実行することにより、前記テスト用データベースの性能を測定する性能測定手段と、
前記性能測定手段が測定した測定結果と、前記ＳＱＬ文に基づいて生成されたテーブルのテーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信するテーブル構造結果通知手段とを備えたことを特徴とする。
【００１１】
請求項２に係る発明は、請求項１に記載のテーブル構造決定及び通知システムにおいて、
前記要求受信手段は、
顧客が操作したクライアント端末からネットワークを介して送信された顧客の前記要求情報に含まれる要求内容が複数だった場合に、前記要求情報と共に、前記要求内容の優先順位を示す順位情報を受信する順位情報受信手段を備え、
前記テーブル構造結果通知手段は、
前記性能測定手段によるテスト用データベースの性能の測定結果から、前記順位情報に基づき、顧客の要求するテーブル構造を選択するテーブル構造選択手段と、
前記性能測定手段が測定した測定結果と、前記テーブル構造選択手段により選択された前記テーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信する送信手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明に係るテーブル構造決定及び通知システムによれば、顧客からのデータベースに対する処理に関する要求を満たすＳＱＬ文を生成し、そのＳＱＬ文に基づいたテーブル構造を決定することが可能となる。
【００１３】
請求項１に係る発明によれば、顧客からのデータベースに対する処理に関する要求を満たすＳＱＬ文を生成することが可能となり、ＳＱＬ文に基づいたテーブル構造を決定し、このテーブル構造を有するテーブルを生成できる。
又、データを検索するための主キー情報、データ名、データ型、データの長さ、必須のデータか否かを示す情報、データの従属性に関する情報を含む要求情報に基づいて、ＳＱＬ文を作成しテーブル構造を決定することができる。
【００１５】
請求項２に係る発明によれば、テーブル構造結果通知手段は、性能測定手段が測定した測定結果と、ＳＱＬ文に基づいて生成されたテーブルのテーブル構造のうち順位情報が示す優先順位が高い要求情報に含まれる顧客の要求を満たしたテーブル構造に関する情報とをネットワークを介してクライアント端末に送信するので、より顧客の要求を満たした適切なテーブル構造を有するテーブルを提供できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係るテーブル構造決定及び通知システムの最良の形態について説明する。図１は、本発明の実施の形態におけるテーブル構造決定及び通知システムの全体構成を示すシステム構成図である。このテーブル構造決定及び通知システムは、顧客からの要求に応じて作成されたテーブルを格納するＤＢＭＳ１０１と、顧客のテーブルについての要求に関する情報を後述する性能測定実行装置１０３に送信するクライアント端末１０２と、クライアント端末１０２から送信された要求に関する情報に応じてＤＤＬ・ＤＭＬを生成しＤＤＬ・ＤＭＬに基づいて作成したテーブルやＳＱＬ文の性能測定を行う機能を有する性能測定実行装置１０３と、この性能測定実行装置１０３が行った性能測定の結果に関する情報を格納する測定結果格納データベース１０４とを備えている。クライアント端末１０２と性能測定実行装置１０３とは、データや情報の送受信が可能にインターネット等の公衆網を含むネットワークを介して接続されている。
【００１７】
クライアント端末１０２は、例えば一般的なパーソナルコンピュータ等であり、顧客が使用するテーブルにおいて要求する機能やテーブルに関するデータの設定項目等を含む要求情報が入力手段により設定し入力されたことに応じて、この要求情報をネットワークを介して性能測定実行装置１０３に送信する機能を有する。また、要求情報を設定し入力するための入力画面、性能測定実行装置１０３から送信されたデータや情報の表示画面等を表示するディスプレイ装置を備えている。
【００１８】
ここで、要求情報には、例えば、後述するように、顧客が使用するテーブルにおいて要求する機能としてテーブルに対する処理で検索処理を行うための主キーであるか否かを示す主キー情報、テーブルに対する処理において処理対象となるデータ区分の情報、それぞれのデータの型、それぞれのデータの長さ、それぞれのデータが必須データか否かを示す必須設定情報、それぞれのデータの従属性に関する情報等が含まれている。
【００１９】
性能測定実行装置１０３は、クライアント端末１０２から送信された要求情報やデータを受信するデータ受信機能１０５と、顧客からの要求情報に基づいてテーブルの作成やテーブルに対する処理等をするためのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７やテーブル構造に関するテーブル構造情報１０８を生成するＤＤＬ・ＤＭＬ生成機能１０６と、ＤＤＬ・ＤＭＬ生成機能１０６が生成したＤＤＬ・ＤＭＬ１０７を実行するプログラム起動機能１０９と、プログラム起動機能１０９がＤＤＬ・ＤＭＬ１０７を実行して作成したテーブルのテーブル構造に関する情報とこのテーブルに対して測定した性能測定結果の情報とをクライアント端末１０２に送信するテーブル構造結果通知機能１１５とを備えている。
【００２０】
プログラム起動機能１０９は、ＤＤＬ・ＤＭＬ生成機能１０６が生成したＤＤＬ・ＤＭＬ１０７を発行して実行し顧客の要求を満たすテーブル構造のテーブルを含むテスト用データベースを生成するテスト用データベース生成部１１０と、ＳＱＬ文を発行してテスト用データベースに対して処理を行うためのデータベースアクセスプログラムを生成するプログラム生成部１１１と、プログラム生成部１１１が生成したデータベースアクセスプログラムを実行するプログラム実行部１１２と、プログラム実行部１１２がデータベースアクセスプログラムを実行したことにより得られたテスト用データベースの性能測定結果を格納データベース１１３に格納する測定結果格納部１１３と、性能測定を行った後テスト用データベースを削除するテーブル削除部１１４とを備えている。
【００２１】
図２は、クライアント端末１０２のディスプレイ装置に表示される顧客の要求情報の要求内容を入力するための処理要求画面２００を示す説明図である。この処理要求画面２００には、顧客がテーブルで要求する機能等の各種の要求内容をチェック欄にチェックすることにより設定する処理要求２０１と、チェック欄にチェックされた顧客の要求内容の項目数が複数だった場合にこれらの要求内容に対して順番に優先順位を設定するための優先順位２０２と、要求内容の設定が完了した後、別のテーブルで要求する各種の要求内容を入力するための処理要求画面２００に遷移するための「次へ」ボタン２０３とが設けられて表示されている。
【００２２】
図３は、顧客の要求情報に含まれるＳＱＬ文に関する各種の情報を入力するためのデータ情報画面３００である。このデータ情報画面３００には、ＳＱＬ文に基づいてテーブルに対して実行する処理の名称を入力するための処理名３０１と、ＳＱＬ文の処理の種類を入力するための処理種類３０２と、ＳＱＬ文に基づいた処理を実行する際に用いる検索条件等の情報を入力するための入力項目３０３と、ＳＱＬ文に基づいた処理で用いるデータが例えば検索処理を行うためのキーとなる主キーであるか否かを示す主キー情報３０４と、ＳＱＬ文に基づいた処理において検索対象や更新対象、新規登録対象、削除対象等の処理対象となるデータ区分毎の列の名前を入力するための名前項目３０５と、ＳＱＬ文に基づいた処理で用いるデータの型を入力するためのデータ型項目３０６と、ＳＱＬ文に基づいた処理で用いるデータの長さを入力するためのデータ長項目３０７と、ＳＱＬ文に基づいた処理で用いるデータが必須データか否かを示す必須設定情報である必須項目３０８と、ＳＱＬ文に基づいた処理で用いる各データ間の従属性を入力するための従属性項目３０９と、別の処理についてのＳＱＬ文に関する各種の情報を入力するためのデータ情報画面３００に遷移するための「次へ」ボタン３１０と、このＳＱＬ文に基づいた処理の性能測定を開始するための「開始」ボタン３１１とが設けられて表示されている。
【００２３】
ここで、処理種類３０２とデータ型３０６では、図３に示すように、予め用意された複数種類の情報から選択してドロップダウン形式により入力するようになっている。また、ＳＱＬ文に基づいた処理が複数ある場合には、「次へ」ボタン３１０をマウス等によりクリックしてデータ情報画面３００を遷移していき、これらの処理の数だけデータ情報画面３００でＳＱＬ文に関する各種の情報を入力するようになっている。
【００２４】
また、ＳＱＬ文に基づいた処理が複数ある場合には、「次へ」ボタン３１０をマウス等によりクリックしてデータ情報画面３００を遷移していき、これらの処理の数だけデータ情報画面３００でＳＱＬ文に関する各種の情報を入力するようになっている。ＳＱＬ文に基づいた処理の種類としては、例えばＳｅｌｅｃｔ文による検索処理、Ｕｐｄａｔｅ文による更新処理、Ｉｎｓｅｒｔ文による新規登録処理、Ｄｅｌｅｔｅ文による削除処理等が挙げられる。
【００２５】
図６は、ＤＤＬ・ＤＭＬ１０７に含まれるＳＱＬ文のＳｅｌｅｃｔ文６０１、６０２を示す説明図である。Ｓｅｌｅｃｔ文６０１では、「Ｔａｂｌｅ１」のテーブルを選択し、例えばこのテーブルから「年月」、「顧客番号」、「顧客名」、「住所」、「商品コード」等の情報を読み出す処理の情報が入力されて設定されている。Ｓｅｌｅｃｔ文６０２では、「Ｔａｂｌｅ１」、「Ｔａｂｌｅ２」、「Ｔａｂｌｅ３」のテーブルを選択し、例えば「Ｔａｂｌｅ１」から「年月」、「顧客番号」、「顧客名」、「住所」等の情報、「Ｔａｂｌｅ２」から「商品コード」、「Ｔａｂｌｅ３」から「数量」等の情報を読み出す処理の情報が入力されて設定されている。
【００２６】
図７は、ＤＤＬ・ＤＭＬ１０７に含まれるＳＱＬ文のＣｒｅａｔｅ  Ｔａｂｌｅ文７０１、７０２、７０３を示す説明図である。Ｃｒｅａｔｅ  Ｔａｂｌｅ文７０１では、主キーでありデータ型が「ＣＨＡＲ」、データ区分が「伝票番号」のデータや、データ型が「ＣＨＡＲ」、データ区分が「年月」のデータ等が格納されたテーブルを作成する処理内容が入力されて設定されている。Ｃｒｅａｔｅ  Ｔａｂｌｅ文７０２では、主キーでありデータ型が「ＶＡＲＣＨＡＲ」、データ区分が「商品コード」のデータや、データ型が「ＩＮＴＥＧＥＲ」、データ区分が「単価」のデータ等が格納されたテーブルを作成する内容が入力されて設定されている。Ｃｒｅａｔｅ  Ｔａｂｌｅ文７０３では、主キーでありデータ型が「ＣＨＡＲ」、データ区分が「伝票番号」のデータや、主キーでありデータ型が「ＶＡＲＣＨＡＲ」、データ区分が「商品コード」のデータ等が格納されたテーブルを作成する内容が入力されて設定されている。
【００２７】
また、図示していないがＤＤＬ・ＤＭＬ１０７に含まれるＳＱＬ文のＣｒｅａｔｅ  Ｉｎｄｅｘ文では、図２に示す処理要求画面２００の処理要求２０１で検索応答性のチェック欄にチェックがされている場合、もしくは、複数の処理要求２０１にチェックがされ検索応答性に対応する優先順位２０２が「１」である場合には、図３に示すデータ情報画面３００の入力項目３０３の情報に対応する項目名がテーブルに対する処理の対象となる。例えば、この項目名が「得意先名」、この項目名が属しているテーブル名が「Ｔａｂｌｅ１」であった場合には、「Ｃｒｅａｔｅ  Ｉｎｄｅｘ  Ｉｎｄｅｘ１  Ｏｎ  Ｔａｂｌｅ１（得意先名）」を表示したＩｎｄｅｘが生成される。なお、Ｃｒｅａｔｅ  Ｔａｂｌｅ文やＣｒｅａｔｅ  Ｉｎｄｅｘ文が生成されると、同時に性能測定を行った後削除するためのＤｒｏｐ  Ｔａｂｌｅ文やＤｒｏｐ  Ｉｎｄｅｘ文も生成されるようになっている。
【００２８】
図８は、ＤＤＬ・ＤＭＬ１０７に含まれるＳＱＬ文のＩｎｓｅｒｔ文８０１、８０２、８０３を示す説明図である。Ｉｎｓｅｒｔ文８０１では、テーブル名が「Ｔａｂｌｅ１」のテーブルにおいてデータ区分が「伝票番号」、「年月」、「顧客番号」、「顧客名」、「住所」のデータの内容として「０１１１２９２」、「０６０１」、「８３９１」、「日立」、「茨城県日立市＊＊＊」の情報を入力する処理内容が入力されて設定されている。Ｉｎｓｅｒｔ文８０２では、テーブル名が「Ｔａｂｌｅ２」のテーブルにおいてデータ区分が「商品コード」、「単価」のデータの内容として「９７４」、「１２９８０００」の情報を入力する処理内容が入力されて設定されている。Ｉｎｓｅｒｔ文８０３では、テーブル名が「Ｔａｂｌｅ３」のテーブルにおいてデータ区分が「伝票番号」、「商品コード」、「数量」のデータの内容として「０１１１２９２」、「９７４」、「７０００」の情報を入力する処理内容が入力されて設定されている。
【００２９】
図１４は、測定結果格納データベース１０４に格納されたテスト用データベースの性能測定結果を含むテーブルを示す説明図である。このテーブルでは、テスト用データベースに含まれるテーブルのテーブル構造を識別するためのテーブル構造ＩＤ１４０１と、ＤＤＬ・ＤＭＬ１０７に含まれるＳＱＬ文の種別を識別するためのＳＱＬ種別コード１４０２と、ＤＤＬ・ＤＭＬ１０７に含まれるＳＱＬ文に基づいた処理の性能測定結果としてのターンアラウンドタイムを示すターンアラウンドタイム１４０３とが関連付けられて格納されている。
【００３０】
続いて本実施の形態におけるテーブル構造決定及び通知システムの動作について図面を用いて詳細に説明する。まず、図４に示すフローチャートを用いて全体の処理について説明する。顧客等がクライアント端末１０２により、ディスプレイ装置に表示された処理要求画面２００、データ情報画面３００に従って要求情報の要求内容を入力しネットワークを介して性能測定実行装置１０３に送信すると、性能測定実行装置１０３は、データ受信機能１０５によりこの送信された要求情報を受信する処理を行う（ステップ４０１）。
【００３１】
次に、性能測定実行装置１０３は、この受信した要求情報に基づいて顧客の要求を満たすテーブル構造のテーブルの作成やテーブルに対する処理等をするためのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７をＤＤＬ・ＤＭＬ生成機能１０６により生成する処理を行う（ステップ４０２）。
【００３２】
次に、性能測定実行装置１０３は、顧客の要求を満たすテーブル構造の性能測定の実行環境を作るために、ＤＤＬ・ＤＭＬ１０７に含まれるＣｒｅａｔｅ  Ｔａｂｌｅ文、Ｃｒｅａｔｅ  Ｉｎｄｅｘ文、Ｉｎｓｅｒｔ文等のＳＱＬ文をプログラム起動機能１０９によりＤＢＭＳ１０１に対して発行し、テスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理を行う（ステップ４０３）。
【００３３】
次に、性能測定実行装置１０３は、ＤＤＬ・ＤＭＬ１０７に含まれるＳｅｌｅｃｔ文、Ｕｐｄａｔｅ文等のＳＱＬ文をプログラム起動機能１０９によりＤＢＭＳ１０１に対して発行し、テスト用データベースの性能測定の処理を行う（ステップ４０４）。
【００３４】
次に、性能測定実行装置１０３は、テスト用データベースの性能測定の結果についての情報をテーブル構造結果通知機能１１５によりネットワークを介してクライアント端末１０２に送信する処理を行う（ステップ４０５）。そして、顧客等は、クライアント端末１０２のディスプレイ装置に表示されたテスト用データベースの性能測定の結果の表示画面を確認して、顧客の要求を最も満たすテーブル構造を決定し、例えばテーブルを作成するための参考資料として使用する。
【００３５】
続いて、図５に示すフローチャートを用いて上述のステップ４０２において性能測定実行装置１０３のＤＤＬ・ＤＭＬ生成機能１０６が実行する顧客の要求を満たすテーブル構造のテーブルを作成するためのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を生成する処理について説明する。まず、性能測定実行装置１０３のＤＤＬ・ＤＭＬ生成機能１０６は、データ受信機能１０５がクライアント端末１０２から受信した要求情報を取得する処理を行う（ステップ５０１）。
【００３６】
次に、ＤＤＬ・ＤＭＬ生成機能１０６は、ＳＱＬ文のテンプレートを作成する処理を行う（ステップ５０２）。図示しないＲＯＭ等に記憶された各種類のＳＱＬ文の雛形のデータから、データ情報画面３００の処理種類３０２で示す処理の種類に対応するＳＱＬ文の雛形のデータを読み出し、読み出したＳＱＬ文の雛形のデータにデータ情報画面３００で入力した各データを仮データとして入力し、ＳＱＬ文のテンプレートを作成する処理を行う。テーブルに対する各処理毎にＳＱＬ文のテンプレートを作成する処理を行う。例えば、ＳＱＬ文としてＳｅｌｅｃｔ文のテンプレートを作成する場合には、データ情報画面３００の処理種類３０２で「検索」が入力されていることに応じてＳｅｌｅｃｔ文の雛形のデータを図示しないＲＯＭ等から読み出し、雛形に含まれている「Ｓｅｌｅｃｔ  テーブル名．列名、テーブル名．列名、…Ｆｒｏｍ  テーブル名、…  Ｗｈｅｒｅ  〜  」のような形式のデータにおいて、データ情報画面３００の名前項目３０５を列名に入力し、テーブル名については以降の処理においてその都度情報が入力される。
【００３７】
次に、ＤＤＬ・ＤＭＬ生成機能１０６は、要求情報に基づいたＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を生成する処理を開始する（ステップ５０３）。以下のステップ５０５からステップ５０８までの処理を、後述するように分割した各グループが第三正規形になるまで、様々なパターンのＳＱＬ文を生成する処理を繰り返し行う（ステップ５０４）。
【００３８】
最初にＤＤＬ・ＤＭＬ生成機能１０６は、要求情報に含まれるデータ情報画面３００の従属性項目３０９に入力された情報があるか否かを判定する処理を行う（ステップ５０５）。ステップ５０２において作成したＳＱＬ文のテンプレートに対して、個別に識別可能な任意のテーブル名を決定しそれをテンプレートに付加する。そして、このテンプレートに対応するデータ情報画面３００内の従属性項目３０９に情報が入力されているか否かを判定する。従属性項目３０９に情報が入力されていない場合には（ステップ５０５のＮＯ）、処理を終了する。
【００３９】
またこのとき、要求情報に含まれる処理要求画面２００、データ情報画面３００に入力された要求内容に従って顧客の要求を満たすテーブル構造のテーブルを作成するための図７に示すＣｒｅａｔｅ  Ｔａｂｌｅ文やＣｒｅａｔｅ  Ｉｎｄｅｘ文、図８に示すＩｎｓｅｒｔ文８０１、８０２、８０３等のＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を作成する処理も行う。更に、同時にＤｒｏｐ  Ｔａｂｌｅ文やＤｒｏｐ  Ｉｎｄｅｘ文も生成する。
【００４０】
次に、ＤＤＬ・ＤＭＬ生成機能１０６は、従属性項目３０９に情報が入力されている場合には（ステップ５０５のＹＥＳ）、従属性項目３０９に応じてデータ情報画面３００に入力された情報を分割する処理を行う（ステップ５０６）。データ情報画面３００の従属性項目３０９に入力されている各情報を把握し、同一の情報を同一のグループとして設定し、データ情報画面３００に入力された情報を各グループ毎に分割して、各グループに個別に識別可能な任意のテーブル名を付加する処理を行う。
【００４１】
次に、ＤＤＬ・ＤＭＬ生成機能１０６は、分割した各グループにおいて、新たな情報を追加する処理を行う（ステップ５０７）。分割したこれらの各グループにおいて、従属性項目３０９に入力されている同一の情報を主キー情報３０４として入力し、この主キー情報３０４を含む新たな項目の情報を追加する処理を行う。
【００４２】
次に、ＤＤＬ・ＤＭＬ生成機能１０６は、テーブルに対する処理を行うためのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を作成する処理を行う（ステップ５０８）。ステップ５０２において作成したＳＱＬ文のテンプレートに対して、各グループの情報を入力し、テーブルに対する処理を行うためのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を作成する処理を行う。例えば、「Ｔａｂｌｅ１」、「Ｔａｂｌｅ２」のテーブル名が付加された各グループに対して、ステップ５０７において追加された項目の情報の主キー情報３０４が「ＦＫ１」であるとすると、グループ内の処理種類３０２に応じたテンプレートとして、「Ｓｅｌｅｃｔ  Ｔａｂｌｅ１．列名，Ｔａｂｌｅ１．列名，Ｔａｂｌｅ２．列名・・・  Ｆｒｏｍ  Ａ，Ｂ  Ｗｈｅｒｅ  Ａ．ＦＫ１＝Ｂ．ＦＫ１  〜」となるテンプレートのＷｈｅｒｅ句の「〜」の箇所にグループ内の入力項目３０３や分解したときの結合条件等の情報を適宜代入してＳｅｌｅｃｔ文を含むＤＤＬ・ＤＭＬ１０７を生成する。図６に示すＳｅｌｅｃｔ文６０１、６０２等の各ＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を作成する。
【００４３】
またこのとき、上述のステップ５０５において作成したテーブルを作成するためのＳＱＬ文や、テーブルに対する処理を行うためのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７に基づいて、顧客の要求を満たすテーブル構造の内容に関する情報を含むテーブル構造情報１０８を作成し、このＤＤＬ・ＤＭＬ１０７とテーブル構造情報１０８にテーブル構造ＩＤ１４０１を割り振る処理を行う。
【００４４】
以上のステップ５０５からステップ５０８までの処理を、各グループが第三正規形になるまで繰り返し行い、要求情報に基づいた様々なパターンのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を生成する処理を行う。
【００４５】
続いて、図９に示すフローチャートを用いて上述のステップ４０３、４０４において性能測定実行装置１０３のプログラム起動機能１０９が実行するテスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理、テスト用データベースの性能測定の処理について説明する。まず、プログラム起動機能１０９は、上述のように生成したＤＤＬ・ＤＭＬ１０７とこのＤＤＬ・ＤＭＬ１０７に割り振られたテーブル構造ＩＤ１４０１の情報をＤＤＬ・ＤＭＬ生成機能１０６から受信する処理を行う（ステップ９０１）。
【００４６】
次に、プログラム起動機能１０９は、以下のようにしてテスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理、テスト用データベースの性能測定の処理を行う（ステップ９０２）。以下のステップ９０３からステップ９０７までの処理を、ステップ９０１において受信したテーブル構造ＩＤの個数分だけ繰り返し行う。
【００４７】
最初にプログラム起動機能１０９は、テスト用データベース生成部１１０により、受信したＤＤＬ・ＤＭＬ１０７に含まれるＣｒｅａｔｅ  Ｔａｂｌｅ文やＣｒｅａｔｅ  Ｉｎｄｅｘ文、Ｉｎｓｅｒｔ文等のＳＱＬ文を発行して顧客の要求を満たすテーブル構造のテーブルを含むテスト用データベースをＤＢＭＳ１０１内に生成する処理を行う（ステップ９０３）。
【００４８】
次に、プログラム起動機能１０９は、プログラム生成部１１１により、受信したＤＤＬ・ＤＭＬ１０７に含まれるＳｅｌｅｃｔ文やＵｐｄａｔｅ文等の各ＳＱＬ文を発行してテスト用データベースのテーブルに対して処理を行うためのデータベースアクセスプログラムを生成する処理を行う（ステップ９０４）。
【００４９】
次に、プログラム起動機能１０９は、プログラム実行部１１２により、プログラム生成部１１１が生成したデータベースアクセスプログラムを実行してテスト用データベースのテーブルに対する処理を行う（ステップ９０５）。
【００５０】
次に、プログラム起動機能１０９は、測定結果格納部１１３により、プログラム実行部１１２テスト用データベースに対する処理を行うことにより得られたテスト用データベースの性能測定の結果に関する情報を測定結果格納データベース１０４に格納する処理を行う（ステップ９０６）。
【００５１】
次に、プログラム起動機能１０９は、テーブル削除部１１４により、Ｄｒｏｐ  Ｔａｂｌｅ文やＤｒｏｐ  Ｉｎｄｅｘ文等のＳＱＬ文を発行してテスト用データベースを削除する処理を行う（ステップ９０７）。
【００５２】
以上のステップ９０３からステップ９０７までの処理を、ステップ９０１において受信したテーブル構造ＩＤの個数分だけ繰り返し行い、テスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理、テスト用データベースの性能測定の処理を行う。
【００５３】
次に、プログラム起動機能１０９は、テスト用データベースの性能測定が終了したことを示す終了フラグをテーブル構造結果通知機能１１５に送信する処理を行う（ステップ９０８）。
【００５４】
続いて、図１０に示すフローチャートを用いて上述のステップ９０３においてプログラム起動機能１０９のテスト用データベース生成部１１０が実行する顧客の要求を満たすテーブル構造のテーブルを含むテスト用データベースを生成する処理について説明する。まず、テスト用データベース生成部１１０は、ステップ９０１においてＤＤＬ・ＤＭＬ生成機能１０６から受信したＤＤＬ・ＤＭＬ１０７内から、Ｃｒｅａｔｅ  Ｔａｂｌｅ文やＣｒｅａｔｅ  Ｉｎｄｅｘ文、Ｉｎｓｅｒｔ文等のＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を抽出する処理を行う（ステップ１００１）。
【００５５】
次に、テスト用データベース生成部１１０は、この抽出したＤＤＬ・ＤＭＬ１０７によりテスト用データベースを作成する処理を行う（ステップ１００２）。抽出したＤＤＬ・ＤＭＬ１０７のうち、Ｃｒｅａｔｅ  Ｔａｂｌｅ文やＣｒｅａｔｅ  Ｉｎｄｅｘ文等を含むＤＤＬをＤＢＭＳ１０１対して発行し、テスト用データベースをＤＢＭＳ１０１内に生成する処理を行う。
【００５６】
次に、テスト用データベース生成部１１０は、テスト用データベースにテスト用データを入力する処理を行う（ステップ１００３）。抽出したＤＤＬ・ＤＭＬ１０７のうち、Ｉｎｓｅｒｔ文等のＳＱＬ文を含むＤＭＬをＤＢＭＳ１０１対して発行する。そして、テスト用データベース内のテーブルにＩｎｓｅｒｔ文等で設定された情報を入力する処理を行う。
【００５７】
続いて、図１１に示すフローチャートを用いて上述のステップ９０４においてプログラム起動機能１０９のプログラム生成部１１１が実行するテスト用データベースに対して処理を行うためのデータベースアクセスプログラムを生成する処理について説明する。プログラム生成部１１１は、以下のようにしてデータベースアクセスプログラムを作成する処理を行う（ステップ１１０１）。以下のステップ１１０２の処理を、ステップ９０１において受信したＤＤＬ・ＤＭＬ１０７内のＳｅｌｅｃｔ文やＵｐｄａｔｅ文等のテスト用データベース内のテーブルに対して処理を行うためのＳＱＬ文の個数分だけ繰り返し行う。
【００５８】
プログラム生成部１１１は、ステップ９０１においてＤＤＬ・ＤＭＬ生成機能１０６から受信したＤＤＬ・ＤＭＬ１０７内から、Ｓｅｌｅｃｔ文やＵｐｄａｔｅ文等のテスト用データベース内のテーブルに対して処理を行うためのＳＱＬ文を抽出する処理を行い、この抽出したＳＱＬ文を発行してデータベースアクセスプログラムを作成する処理を行う（ステップ１１０２）。すなわち、図示しないＲＯＭ等から予め記憶されたデータベースアクセスプログラムの雛型のデータを読み出し、データベースアクセスプログラムの雛型に、抽出したＳＱＬ文の処理の内容や情報を入力する処理を行い、ＳＱＬ文の処理に対応したデータベースアクセスプログラムを生成する処理を行う。
【００５９】
以上のステップ１１０２の処理を、ステップ９０１において受信したＤＤＬ・ＤＭＬ１０７内のＳｅｌｅｃｔ文やＵｐｄａｔｅ文等のテスト用データベース内のテーブルに対して処理を行うためのＳＱＬ文の個数分だけ繰り返し行う。
【００６０】
次に、プログラム生成部１１１は、これらの生成した各データベースアクセスプログラムを実行するためのドライバアプリケーションを生成する処理を行う（ステップ１１０３）。
【００６１】
続いて、図１２に示すフローチャートを用いて上述のステップ９０５においてプログラム起動機能１０９のプログラム実行部１１２が実行するデータベースアクセスプログラムを実行することによるテスト用データベースに対する処理について説明する。プログラム実行部１１２は、上述のステップ１１０３において生成した各ドライバアプリケーションを実行し、データベースアクセスプログラムを実行する（ステップ１２０１）。
【００６２】
ここで、プログラム実行部１１２は、データベースアクセスプログラムを実行する際にこのデータベースアクセスプログラムの開始時刻を図示しない時計機構により取得し、データベースアクセスプログラムの処理の性能測定を行う。開始時刻を取得した後データベースアクセスプログラムを実行し、テスト用データベースのテーブルに対する処理が行われてこの処理が終了した際に、データベースアクセスプログラムの終了時刻を図示しない時計機構により取得する。そして、これらの開始時刻および終了時刻から処理に必要とした時間を示すターンアラウンドタイム１４０３を算出する。
【００６３】
続いて、図１３に示すフローチャートを用いて上述のステップ９０６においてプログラム起動機能１０９の測定結果格納部１１３が実行するテスト用データベースの性能測定の結果に関する情報を測定結果格納データベース１０４に格納する処理について説明する。測定結果格納部１１３は、上述のステップ１２０１において算出したターンアラウンドタイム１４０３と、ターンアラウンドタイム１４０３を算出したデータベースアクセスプログラムの処理が行われたテーブルのテーブル構造ＩＤ１４０１と、ターンアラウンドタイム１４０３を算出したデータベースアクセスプログラムに対応するＳＱＬ文のＳＱＬ種別コード１４０２とを関連付けて測定結果格納データベース１０４に格納する処理を行う（ステップ１３０１）。例えば図１４に示すように、テーブル構造ＩＤ１４０１である「Ｔ００１」と、ＳＱＬ種別コード１４０２である「１」と、ターンアラウンドタイム１４０３である「９２．０９３」の各情報を関連付けられて格納する処理を行う。他のデータベースアクセスプログラムの測定結果に対しても同様に、テーブル構造ＩＤ１４０１である「Ｔ００２」と、ＳＱＬ種別コード１４０２である「２」と、ターンアラウンドタイム１４０３である「６５．１０８」の各情報を関連付けられて格納する処理を行う。このとき、性能測定実行装置１０３は、テーブル構造ＩＤ１４０１とＳＱＬ種別コード１４０２の情報を参照して、いずれのテーブル構造におけるいずれの種別のＳＱＬ文の処理の性能測定結果であるのかを把握するようになっている。
【００６４】
続いて、図１５に示すフローチャートを用いて上述のステップ９０７においてプログラム起動機能１０９のテーブル削除部１１４が実行するテスト用データベースを削除する処理について説明する。テーブル削除部１１４は、テーブル構造ＩＤ１４０１に基づいて検索処理を行い、ステップ９０１において受信したＤＤＬ・ＤＭＬ１０７内からテーブル構造ＩＤ１４０１に対応するテーブルを削除するためのＤｒｏｐ  Ｔａｂｌｅ文や、このテーブルのＩｎｄｅｘを削除するためのＤｒｏｐ  Ｉｎｄｅｘ文等のＳＱＬ文を読み出す処理を行う（ステップ１５０１）。
【００６５】
次に、テーブル削除部１１４は、これらの読み出したＤｒｏｐ  Ｔａｂｌｅ文やＤｒｏｐ  Ｉｎｄｅｘ文等のＳＱＬ文をＤＢＭＳ１０１に対して発行し、テスト用データベースのテーブルに対する処理の性能測定が行われたテーブルやインデックスを削除する処理を行う（ステップ１５０２）。
【００６６】
続いて、図１６に示すフローチャートを用いて上述のステップ４０５において性能測定実行装置１０３のテーブル構造結果通知機能１１５が実行するテスト用データベースの性能測定の結果をクライアント端末１０２に送信する処理について説明する。まず、性能測定実行装置１０３のテーブル構造結果通知機能１１５は、上述のステップ９０８においてプログラム起動機能１０９が送信した終了フラグを受信する処理を行う（ステップ１６０１）。
【００６７】
次に、テーブル構造結果通知機能１１５は、測定結果格納データベース１０４からテスト用データベースの性能測定の結果に関する情報を取得する処理を行う（ステップ１６０２）。測定結果格納データベース１０４からターンアラウンドタイム１４０３とテーブル構造ＩＤ１４０１とＳＱＬ種別コード１４０２とを関連付けたデータ毎に読み出して取得する処理を行う。
【００６８】
次に、テーブル構造結果通知機能１１５は、取得したテスト用データベースの性能測定の結果に関する情報に基づいて顧客の要求を満足しているテーブルのテーブル構造ＩＤ１４０１を選択する処理を行う（ステップ１６０３）。例えば、各ＳＱＬ文の処理毎の処理要求画面２００を参照して、優先順位２０２が「１」の処理要求２０１の処理に対応するＳＱＬ種別コード１４０２に関連付けられたターンアラウンドタイム１４０３が最も良いデータを選択し、このデータのテーブル構造ＩＤ１４０１を顧客の要求を満足しているテーブル構造であると判定する。
【００６９】
また、ターンアラウンドタイム１４０３が最も良いデータが複数存在する場合には、これらのデータのうち、優先順位２０２が「２」の処理要求２０１の処理に対応するＳＱＬ種別コード１４０２に関連付けられたターンアラウンドタイム１４０３が最も良いデータを選択し、このデータのテーブル構造ＩＤ１４０１を顧客の要求を満足しているテーブル構造であると判定する。
【００７０】
次に、テーブル構造結果通知機能１１５は、顧客の要求を満足しているテーブルのテーブル構造に関する情報を取得する処理を行う（ステップ１６０４）。この選択したテーブル構造ＩＤ１４０１に基づいて検索処理を行い、ＤＤＬ・ＤＭＬ生成機能１０６にて生成されたテーブル構造情報１０８から、このテーブル構造ＩＤ１４０１が割り振られたテーブル構造情報１０８を読み出す処理を行う。
【００７１】
次に、テーブル構造結果通知機能１１５は、テスト用データベースの性能測定の結果に関する情報をクライアント端末１０２に送信する処理を行う（ステップ１６０５）。選択したテーブル構造ＩＤ１４０１と、このテーブル構造ＩＤ１４０１に関連付けられたＳＱＬ種別コード１４０２、ターンアラウンドタイム１４０３の情報を、読み出したテーブル構造情報１０８と共にネットワークを介してクライアント端末１０２に送信する処理を行う。
【００７２】
以上のように、本発明の実施の形態におけるテーブル構造決定及び通知システムでは、処理要求画面２００、データ情報画面３００に従って要求情報の要求内容を入力しネットワークを介して性能測定実行装置１０３に送信すると、この受信した要求情報に基づいて顧客の要求を満たすテーブル構造のテーブルの作成やテーブルに対する処理等をするためのＳＱＬ文を含むＤＤＬ・ＤＭＬ１０７を生成し、ＤＤＬ・ＤＭＬ１０７によりテスト用データベースとデータベースアクセスプログラムを生成する。そして、テスト用データベースの性能測定の処理を行って、顧客の要求を満足している性能測定の結果とテーブル構造に関する情報をクライアント端末１０２に送信する処理を行う。
【００７３】
このため、顧客が使用するテーブルに対して、顧客からのデータベースに対する処理に関する要求を満たすＳＱＬ文において、性能測定実行装置１０３を用いてさまざまなパターンのＳＱＬ文を生成し、その中で顧客の要求を満足するテーブル構造を顧客に提供することができる。
【００７４】
顧客は、顧客の要求を満足している性能測定の結果とテーブル構造に関する情報をクライアント端末１０２のディスプレイ装置の表示画面により確認して、顧客の要求を最も満たすテーブル構造を参照して、例えばテーブルを作成するための参考資料として使用することが可能となる。
【００７５】
なお、本実施の形態におけるＤＢＭＳ１０１は、いろいろなベンダーから提供されているＤＢＭＳ製品のことであり、その種類を問わないものとする。また、ＤＢＭＳ１０１に対する処理の問合せ言語をＳＱＬ文としているが、オブジェクト指向データベース（ＯＯＤＢ）で扱われるオブジェクト操作言語（ＯＭＬ）などの他の問合せ言語に関しても同様の処理を行うことができる。
【００７６】
（他の実施の形態）
上述のステップ１６０３において、テーブル構造結果通知機能１１５が、優先順位２０２が「１」の処理要求２０１の処理に対応するＳＱＬ種別コード１４０２に関連付けられたターンアラウンドタイム１４０３が最も良いデータを選択しているが、これに限られず、各処理要求２０１の処理に対応するＳＱＬ種別コード１４０２に関連付けられたターンアラウンドタイム１４０３のうち、最も悪いターンアラウンドタイム１４０３が関連付けられていないデータを検出し、このデータに含まれているテーブル構造ＩＤ１４０１を顧客の要求を満足しているテーブル構造であると判定しても良い。
【図面の簡単な説明】
【００７７】
【図１】本実施の形態におけるテーブル構造決定及び通知システムの全体構成を示す説明図である。
【図２】本実施の形態におけるテーブル構造決定及び通知システムの処理要求画面を示す説明図である。
【図３】本実施の形態におけるテーブル構造決定及び通知システムのデータ情報画面を示す説明図である。
【図４】本実施の形態におけるテーブル構造決定及び通知システムの全体の処理を示すフローチャートである。
【図５】本実施の形態におけるテーブル構造決定及び通知システムのＤＤＬ・ＤＭＬを生成する処理を示すフローチャートである。
【図６】本実施の形態におけるテーブル構造決定及び通知システムのＳＱＬ文を示す説明図である。
【図７】本実施の形態におけるテーブル構造決定及び通知システムのＳＱＬ文を示す説明図である。
【図８】本実施の形態におけるテーブル構造決定及び通知システムのＳＱＬ文を示す説明図である。
【図９】本実施の形態におけるテーブル構造決定及び通知システムのプログラム起動機能が実行する処理を示すフローチャートである。
【図１０】本実施の形態におけるテーブル構造決定及び通知システムのテスト用データベース生成部が実行する処理を示すフローチャートである。
【図１１】本実施の形態におけるテーブル構造決定及び通知システムのプログラム生成部が実行する処理を示すフローチャートである。
【図１２】本実施の形態におけるテーブル構造決定及び通知システムのプログラム実行部が実行する処理を示すフローチャートである。
【図１３】本実施の形態におけるテーブル構造決定及び通知システムの測定結果格納部が実行する処理を示すフローチャートである。
【図１４】本実施の形態におけるテーブル構造決定及び通知システムの性能結果格納データベースを示す説明図である。
【図１５】本実施の形態におけるテーブル構造決定及び通知システムのテーブル削除部が実行する処理を示すフローチャートである。
【図１６】本実施の形態におけるテーブル構造決定及び通知システムのテーブル構造結果通知機能が実行する処理を示すフローチャートである。
【符号の説明】
【００７８】
１０１  ＤＢＭＳ
１０２  クライアント端末
１０３  性能測定実行装置
１０４  測定結果格納データベース
１０５  データ受信機能
１０６  ＤＤＬ・ＤＭＬ生成機能
１０７  ＤＤＬ・ＤＭＬ
１０８  データ構造情報
１０９  プログラム起動機能
１１０  テスト用データベース生成部
１１１  プログラム生成部
１１２  測定結果格納部
１１３  測定結果格納部
１１４  テーブル削除部
１１５  テーブル構造結果通知機能
【図１】
0004749899.tif 000002
【図２】
0004749899.tif 000003
【図３】
0004749899.tif 000004
【図４】
0004749899.tif 000005
【図５】
0004749899.tif 000006
【図６】
0004749899.tif 000007
【図７】
0004749899.tif 000008
【図８】
0004749899.tif 000009
【図９】
0004749899.tif 000010
【図１０】
0004749899.tif 000011
【図１１】
0004749899.tif 000012
【図１２】
0004749899.tif 000013
【図１３】
0004749899.tif 000014
【図１４】
0004749899.tif 000015
【図１５】
0004749899.tif 000016
【図１６】
0004749899.tif 000017