JP4749899B2 - テーブル構造決定及び通知システム - Google Patents

テーブル構造決定及び通知システム Download PDF

Info

Publication number
JP4749899B2
JP4749899B2 JP2006071314A JP2006071314A JP4749899B2 JP 4749899 B2 JP4749899 B2 JP 4749899B2 JP 2006071314 A JP2006071314 A JP 2006071314A JP 2006071314 A JP2006071314 A JP 2006071314A JP 4749899 B2 JP4749899 B2 JP 4749899B2
Authority
JP
Japan
Prior art keywords
information
table structure
sql
data
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006071314A
Other languages
English (en)
Other versions
JP2007249531A (ja
Inventor
誠 辻野
哲雄 造田
康秀 澤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2006071314A priority Critical patent/JP4749899B2/ja
Publication of JP2007249531A publication Critical patent/JP2007249531A/ja
Application granted granted Critical
Publication of JP4749899B2 publication Critical patent/JP4749899B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、顧客の要求を満たすテーブル構造を決定し、提供するためのテーブル構造決定及び通知システムに関する。
近年より、システム開発を行う上でシステム上で用いられるデータ量が膨大となってきており、データ管理の重要性が、システム運営上で必要不可欠となっている。多くのデータ管理を行うソフトウェアが普及し、システムに対して様々なDBMSが利用されるようになってきた。DBMSを使用する上で、システムを運営するためのパフォーマンスを向上することが要求されている。
下記の特許文献1では、既にテーブル構造が決定しているデータベースに対して、クライアントがクライアント端末により接続し、クライアント端末の画面から一つずつSQL検索文を入力し、中央処理装置に送信する。中央処理装置では、送信された検索条件が検索条件データベースに登録されていないなら登録する。その後、中央処理装置はSQLを発行し、性能を測定する。そこで得られた性能結果をクライアント端末に表示し、クライアントが評価をするという方法が開示されている。
特開2001−282799号公報
通常、パッケージや製品において、データベースを使用する場合、テーブル構造を決定した上で、開発者が使用するSQL文を作成する。このようなSQL文の場合、テーブルの構造が決定した中で、性能が良いSQL文を作成する流れとなる。
そのため、既にテーブル構造が決定されたテーブルに対して性能が良いSQL文を作成しているため、パフォーマンスの平均的なSQL文が多く、顧客が求めている性能の要求を満たしたSQL文を作成できないことがある。
特許文献1に記載されたデータベースの性能評価方法においても、既にテーブル構造が決定されたデータベースに対するデータベース検索について評価を行っているため、SQL文の性能には限界があった。データベースのテーブル設計とSQL設計は密に関係があり、両方に高い知識がないと、顧客を満足させる設計をすることができない。
本発明は、以上の問題点に鑑みてなされたものであり、その目的とするところは、顧客からのデータベースに対する処理に関する要求を満たすSQL文を作成し、そのSQL文に基づいたテーブル構造を決定することが可能なテーブル構造決定及び通知システムを提供することにある。
上記目的を達成するために、請求項1に係る発明は、顧客の要求を満たすテーブル構造を決定し、提供するためのテーブル構造決定及び通知システムにおいて、
顧客が操作したクライアント端末からネットワークを介して送信された顧客が使用するテーブルの要求に関する要求情報であって、データを検索するための主キー情報、データ名、データ型、データの長さ、必須のデータか否かを示す情報、データの従属性に関する情報が含まれる要求情報を受信する要求受信手段と、
前記要求受信手段が受信した要求情報に基づいて、顧客の要求を満たすテーブル構造のテーブルを作成するためのSQL文を生成する構造SQL生成手段と、
前記構造SQL作成手段が生成したSQL文に基づいて生成されたテーブルに対する処理を行うためのSQL文を生成する処理SQL生成手段と、
前記構造SQL生成手段により作成されたSQL文の内容に基づき、テスト用データベースを作成するテスト用データベース作成手段と、
作成されたテスト用データベース内のテーブルへデータ入力を行なうデータ入力手段と、
データ入力されたテスト用データベースに対し、前記処理SQL生成手段により作成されたSQL文の内容に基づいた処理を実行するSQL実行手段と、
前記SQL実行手段が前記テスト用データベースに対する処理を実行することにより、前記テスト用データベースの性能を測定する性能測定手段と、
前記性能測定手段が測定した測定結果と、前記SQL文に基づいて生成されたテーブルのテーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信するテーブル構造結果通知手段とを備えたことを特徴とする。
請求項に係る発明は、請求項に記載のテーブル構造決定及び通知システムにおいて、
前記要求受信手段は、
顧客が操作したクライアント端末からネットワークを介して送信された顧客の前記要求情報に含まれる要求内容が複数だった場合に、前記要求情報と共に、前記要求内容の優先順位を示す順位情報を受信する順位情報受信手段を備え
前記テーブル構造結果通知手段は、
前記性能測定手段によるテスト用データベースの性能の測定結果から、前記順位情報に基づき、顧客の要求するテーブル構造を選択するテーブル構造選択手段と、
前記性能測定手段が測定した測定結果と、前記テーブル構造選択手段により選択された前記テーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信する送信手段とを備えることを特徴とする。
本発明に係るテーブル構造決定及び通知システムによれば、顧客からのデータベースに対する処理に関する要求を満たすSQL文を生成し、そのSQL文に基づいたテーブル構造を決定することが可能となる。
請求項1に係る発明によれば、顧客からのデータベースに対する処理に関する要求を満たすSQL文を生成することが可能となり、SQL文に基づいたテーブル構造を決定し、このテーブル構造を有するテーブルを生成できる。
又、データを検索するための主キー情報、データ名、データ型、データの長さ、必須のデータか否かを示す情報、データの従属性に関する情報を含む要求情報に基づいて、SQL文を作成しテーブル構造を決定することができる。
請求項に係る発明によれば、テーブル構造結果通知手段は、性能測定手段が測定した測定結果と、SQL文に基づいて生成されたテーブルのテーブル構造のうち順位情報が示す優先順位が高い要求情報に含まれる顧客の要求を満たしたテーブル構造に関する情報とをネットワークを介してクライアント端末に送信するので、より顧客の要求を満たした適切なテーブル構造を有するテーブルを提供できる。
以下、本発明に係るテーブル構造決定及び通知システムの最良の形態について説明する。図1は、本発明の実施の形態におけるテーブル構造決定及び通知システムの全体構成を示すシステム構成図である。このテーブル構造決定及び通知システムは、顧客からの要求に応じて作成されたテーブルを格納するDBMS101と、顧客のテーブルについての要求に関する情報を後述する性能測定実行装置103に送信するクライアント端末102と、クライアント端末102から送信された要求に関する情報に応じてDDL・DMLを生成しDDL・DMLに基づいて作成したテーブルやSQL文の性能測定を行う機能を有する性能測定実行装置103と、この性能測定実行装置103が行った性能測定の結果に関する情報を格納する測定結果格納データベース104とを備えている。クライアント端末102と性能測定実行装置103とは、データや情報の送受信が可能にインターネット等の公衆網を含むネットワークを介して接続されている。
クライアント端末102は、例えば一般的なパーソナルコンピュータ等であり、顧客が使用するテーブルにおいて要求する機能やテーブルに関するデータの設定項目等を含む要求情報が入力手段により設定し入力されたことに応じて、この要求情報をネットワークを介して性能測定実行装置103に送信する機能を有する。また、要求情報を設定し入力するための入力画面、性能測定実行装置103から送信されたデータや情報の表示画面等を表示するディスプレイ装置を備えている。
ここで、要求情報には、例えば、後述するように、顧客が使用するテーブルにおいて要求する機能としてテーブルに対する処理で検索処理を行うための主キーであるか否かを示す主キー情報、テーブルに対する処理において処理対象となるデータ区分の情報、それぞれのデータの型、それぞれのデータの長さ、それぞれのデータが必須データか否かを示す必須設定情報、それぞれのデータの従属性に関する情報等が含まれている。
性能測定実行装置103は、クライアント端末102から送信された要求情報やデータを受信するデータ受信機能105と、顧客からの要求情報に基づいてテーブルの作成やテーブルに対する処理等をするためのSQL文を含むDDL・DML107やテーブル構造に関するテーブル構造情報108を生成するDDL・DML生成機能106と、DDL・DML生成機能106が生成したDDL・DML107を実行するプログラム起動機能109と、プログラム起動機能109がDDL・DML107を実行して作成したテーブルのテーブル構造に関する情報とこのテーブルに対して測定した性能測定結果の情報とをクライアント端末102に送信するテーブル構造結果通知機能115とを備えている。
プログラム起動機能109は、DDL・DML生成機能106が生成したDDL・DML107を発行して実行し顧客の要求を満たすテーブル構造のテーブルを含むテスト用データベースを生成するテスト用データベース生成部110と、SQL文を発行してテスト用データベースに対して処理を行うためのデータベースアクセスプログラムを生成するプログラム生成部111と、プログラム生成部111が生成したデータベースアクセスプログラムを実行するプログラム実行部112と、プログラム実行部112がデータベースアクセスプログラムを実行したことにより得られたテスト用データベースの性能測定結果を格納データベース113に格納する測定結果格納部113と、性能測定を行った後テスト用データベースを削除するテーブル削除部114とを備えている。
図2は、クライアント端末102のディスプレイ装置に表示される顧客の要求情報の要求内容を入力するための処理要求画面200を示す説明図である。この処理要求画面200には、顧客がテーブルで要求する機能等の各種の要求内容をチェック欄にチェックすることにより設定する処理要求201と、チェック欄にチェックされた顧客の要求内容の項目数が複数だった場合にこれらの要求内容に対して順番に優先順位を設定するための優先順位202と、要求内容の設定が完了した後、別のテーブルで要求する各種の要求内容を入力するための処理要求画面200に遷移するための「次へ」ボタン203とが設けられて表示されている。
図3は、顧客の要求情報に含まれるSQL文に関する各種の情報を入力するためのデータ情報画面300である。このデータ情報画面300には、SQL文に基づいてテーブルに対して実行する処理の名称を入力するための処理名301と、SQL文の処理の種類を入力するための処理種類302と、SQL文に基づいた処理を実行する際に用いる検索条件等の情報を入力するための入力項目303と、SQL文に基づいた処理で用いるデータが例えば検索処理を行うためのキーとなる主キーであるか否かを示す主キー情報304と、SQL文に基づいた処理において検索対象や更新対象、新規登録対象、削除対象等の処理対象となるデータ区分毎の列の名前を入力するための名前項目305と、SQL文に基づいた処理で用いるデータの型を入力するためのデータ型項目306と、SQL文に基づいた処理で用いるデータの長さを入力するためのデータ長項目307と、SQL文に基づいた処理で用いるデータが必須データか否かを示す必須設定情報である必須項目308と、SQL文に基づいた処理で用いる各データ間の従属性を入力するための従属性項目309と、別の処理についてのSQL文に関する各種の情報を入力するためのデータ情報画面300に遷移するための「次へ」ボタン310と、このSQL文に基づいた処理の性能測定を開始するための「開始」ボタン311とが設けられて表示されている。
ここで、処理種類302とデータ型306では、図3に示すように、予め用意された複数種類の情報から選択してドロップダウン形式により入力するようになっている。また、SQL文に基づいた処理が複数ある場合には、「次へ」ボタン310をマウス等によりクリックしてデータ情報画面300を遷移していき、これらの処理の数だけデータ情報画面300でSQL文に関する各種の情報を入力するようになっている。
また、SQL文に基づいた処理が複数ある場合には、「次へ」ボタン310をマウス等によりクリックしてデータ情報画面300を遷移していき、これらの処理の数だけデータ情報画面300でSQL文に関する各種の情報を入力するようになっている。SQL文に基づいた処理の種類としては、例えばSelect文による検索処理、Update文による更新処理、Insert文による新規登録処理、Delete文による削除処理等が挙げられる。
図6は、DDL・DML107に含まれるSQL文のSelect文601、602を示す説明図である。Select文601では、「Table1」のテーブルを選択し、例えばこのテーブルから「年月」、「顧客番号」、「顧客名」、「住所」、「商品コード」等の情報を読み出す処理の情報が入力されて設定されている。Select文602では、「Table1」、「Table2」、「Table3」のテーブルを選択し、例えば「Table1」から「年月」、「顧客番号」、「顧客名」、「住所」等の情報、「Table2」から「商品コード」、「Table3」から「数量」等の情報を読み出す処理の情報が入力されて設定されている。
図7は、DDL・DML107に含まれるSQL文のCreate Table文701、702、703を示す説明図である。Create Table文701では、主キーでありデータ型が「CHAR」、データ区分が「伝票番号」のデータや、データ型が「CHAR」、データ区分が「年月」のデータ等が格納されたテーブルを作成する処理内容が入力されて設定されている。Create Table文702では、主キーでありデータ型が「VARCHAR」、データ区分が「商品コード」のデータや、データ型が「INTEGER」、データ区分が「単価」のデータ等が格納されたテーブルを作成する内容が入力されて設定されている。Create Table文703では、主キーでありデータ型が「CHAR」、データ区分が「伝票番号」のデータや、主キーでありデータ型が「VARCHAR」、データ区分が「商品コード」のデータ等が格納されたテーブルを作成する内容が入力されて設定されている。
また、図示していないがDDL・DML107に含まれるSQL文のCreate Index文では、図2に示す処理要求画面200の処理要求201で検索応答性のチェック欄にチェックがされている場合、もしくは、複数の処理要求201にチェックがされ検索応答性に対応する優先順位202が「1」である場合には、図3に示すデータ情報画面300の入力項目303の情報に対応する項目名がテーブルに対する処理の対象となる。例えば、この項目名が「得意先名」、この項目名が属しているテーブル名が「Table1」であった場合には、「Create Index Index1 On Table1(得意先名)」を表示したIndexが生成される。なお、Create Table文やCreate Index文が生成されると、同時に性能測定を行った後削除するためのDrop Table文やDrop Index文も生成されるようになっている。
図8は、DDL・DML107に含まれるSQL文のInsert文801、802、803を示す説明図である。Insert文801では、テーブル名が「Table1」のテーブルにおいてデータ区分が「伝票番号」、「年月」、「顧客番号」、「顧客名」、「住所」のデータの内容として「0111292」、「0601」、「8391」、「日立」、「茨城県日立市***」の情報を入力する処理内容が入力されて設定されている。Insert文802では、テーブル名が「Table2」のテーブルにおいてデータ区分が「商品コード」、「単価」のデータの内容として「974」、「1298000」の情報を入力する処理内容が入力されて設定されている。Insert文803では、テーブル名が「Table3」のテーブルにおいてデータ区分が「伝票番号」、「商品コード」、「数量」のデータの内容として「0111292」、「974」、「7000」の情報を入力する処理内容が入力されて設定されている。
図14は、測定結果格納データベース104に格納されたテスト用データベースの性能測定結果を含むテーブルを示す説明図である。このテーブルでは、テスト用データベースに含まれるテーブルのテーブル構造を識別するためのテーブル構造ID1401と、DDL・DML107に含まれるSQL文の種別を識別するためのSQL種別コード1402と、DDL・DML107に含まれるSQL文に基づいた処理の性能測定結果としてのターンアラウンドタイムを示すターンアラウンドタイム1403とが関連付けられて格納されている。
続いて本実施の形態におけるテーブル構造決定及び通知システムの動作について図面を用いて詳細に説明する。まず、図4に示すフローチャートを用いて全体の処理について説明する。顧客等がクライアント端末102により、ディスプレイ装置に表示された処理要求画面200、データ情報画面300に従って要求情報の要求内容を入力しネットワークを介して性能測定実行装置103に送信すると、性能測定実行装置103は、データ受信機能105によりこの送信された要求情報を受信する処理を行う(ステップ401)。
次に、性能測定実行装置103は、この受信した要求情報に基づいて顧客の要求を満たすテーブル構造のテーブルの作成やテーブルに対する処理等をするためのSQL文を含むDDL・DML107をDDL・DML生成機能106により生成する処理を行う(ステップ402)。
次に、性能測定実行装置103は、顧客の要求を満たすテーブル構造の性能測定の実行環境を作るために、DDL・DML107に含まれるCreate Table文、Create Index文、Insert文等のSQL文をプログラム起動機能109によりDBMS101に対して発行し、テスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理を行う(ステップ403)。
次に、性能測定実行装置103は、DDL・DML107に含まれるSelect文、Update文等のSQL文をプログラム起動機能109によりDBMS101に対して発行し、テスト用データベースの性能測定の処理を行う(ステップ404)。
次に、性能測定実行装置103は、テスト用データベースの性能測定の結果についての情報をテーブル構造結果通知機能115によりネットワークを介してクライアント端末102に送信する処理を行う(ステップ405)。そして、顧客等は、クライアント端末102のディスプレイ装置に表示されたテスト用データベースの性能測定の結果の表示画面を確認して、顧客の要求を最も満たすテーブル構造を決定し、例えばテーブルを作成するための参考資料として使用する。
続いて、図5に示すフローチャートを用いて上述のステップ402において性能測定実行装置103のDDL・DML生成機能106が実行する顧客の要求を満たすテーブル構造のテーブルを作成するためのSQL文を含むDDL・DML107を生成する処理について説明する。まず、性能測定実行装置103のDDL・DML生成機能106は、データ受信機能105がクライアント端末102から受信した要求情報を取得する処理を行う(ステップ501)。
次に、DDL・DML生成機能106は、SQL文のテンプレートを作成する処理を行う(ステップ502)。図示しないROM等に記憶された各種類のSQL文の雛形のデータから、データ情報画面300の処理種類302で示す処理の種類に対応するSQL文の雛形のデータを読み出し、読み出したSQL文の雛形のデータにデータ情報画面300で入力した各データを仮データとして入力し、SQL文のテンプレートを作成する処理を行う。テーブルに対する各処理毎にSQL文のテンプレートを作成する処理を行う。例えば、SQL文としてSelect文のテンプレートを作成する場合には、データ情報画面300の処理種類302で「検索」が入力されていることに応じてSelect文の雛形のデータを図示しないROM等から読み出し、雛形に含まれている「Select テーブル名.列名、テーブル名.列名、…From テーブル名、… Where 〜 」のような形式のデータにおいて、データ情報画面300の名前項目305を列名に入力し、テーブル名については以降の処理においてその都度情報が入力される。
次に、DDL・DML生成機能106は、要求情報に基づいたSQL文を含むDDL・DML107を生成する処理を開始する(ステップ503)。以下のステップ505からステップ508までの処理を、後述するように分割した各グループが第三正規形になるまで、様々なパターンのSQL文を生成する処理を繰り返し行う(ステップ504)。
最初にDDL・DML生成機能106は、要求情報に含まれるデータ情報画面300の従属性項目309に入力された情報があるか否かを判定する処理を行う(ステップ505)。ステップ502において作成したSQL文のテンプレートに対して、個別に識別可能な任意のテーブル名を決定しそれをテンプレートに付加する。そして、このテンプレートに対応するデータ情報画面300内の従属性項目309に情報が入力されているか否かを判定する。従属性項目309に情報が入力されていない場合には(ステップ505のNO)、処理を終了する。
またこのとき、要求情報に含まれる処理要求画面200、データ情報画面300に入力された要求内容に従って顧客の要求を満たすテーブル構造のテーブルを作成するための図7に示すCreate Table文やCreate Index文、図8に示すInsert文801、802、803等のSQL文を含むDDL・DML107を作成する処理も行う。更に、同時にDrop Table文やDrop Index文も生成する。
次に、DDL・DML生成機能106は、従属性項目309に情報が入力されている場合には(ステップ505のYES)、従属性項目309に応じてデータ情報画面300に入力された情報を分割する処理を行う(ステップ506)。データ情報画面300の従属性項目309に入力されている各情報を把握し、同一の情報を同一のグループとして設定し、データ情報画面300に入力された情報を各グループ毎に分割して、各グループに個別に識別可能な任意のテーブル名を付加する処理を行う。
次に、DDL・DML生成機能106は、分割した各グループにおいて、新たな情報を追加する処理を行う(ステップ507)。分割したこれらの各グループにおいて、従属性項目309に入力されている同一の情報を主キー情報304として入力し、この主キー情報304を含む新たな項目の情報を追加する処理を行う。
次に、DDL・DML生成機能106は、テーブルに対する処理を行うためのSQL文を含むDDL・DML107を作成する処理を行う(ステップ508)。ステップ502において作成したSQL文のテンプレートに対して、各グループの情報を入力し、テーブルに対する処理を行うためのSQL文を含むDDL・DML107を作成する処理を行う。例えば、「Table1」、「Table2」のテーブル名が付加された各グループに対して、ステップ507において追加された項目の情報の主キー情報304が「FK1」であるとすると、グループ内の処理種類302に応じたテンプレートとして、「Select Table1.列名,Table1.列名,Table2.列名・・・ From A,B Where A.FK1=B.FK1 〜」となるテンプレートのWhere句の「〜」の箇所にグループ内の入力項目303や分解したときの結合条件等の情報を適宜代入してSelect文を含むDDL・DML107を生成する。図6に示すSelect文601、602等の各SQL文を含むDDL・DML107を作成する。
またこのとき、上述のステップ505において作成したテーブルを作成するためのSQL文や、テーブルに対する処理を行うためのSQL文を含むDDL・DML107に基づいて、顧客の要求を満たすテーブル構造の内容に関する情報を含むテーブル構造情報108を作成し、このDDL・DML107とテーブル構造情報108にテーブル構造ID1401を割り振る処理を行う。
以上のステップ505からステップ508までの処理を、各グループが第三正規形になるまで繰り返し行い、要求情報に基づいた様々なパターンのSQL文を含むDDL・DML107を生成する処理を行う。
続いて、図9に示すフローチャートを用いて上述のステップ403、404において性能測定実行装置103のプログラム起動機能109が実行するテスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理、テスト用データベースの性能測定の処理について説明する。まず、プログラム起動機能109は、上述のように生成したDDL・DML107とこのDDL・DML107に割り振られたテーブル構造ID1401の情報をDDL・DML生成機能106から受信する処理を行う(ステップ901)。
次に、プログラム起動機能109は、以下のようにしてテスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理、テスト用データベースの性能測定の処理を行う(ステップ902)。以下のステップ903からステップ907までの処理を、ステップ901において受信したテーブル構造IDの個数分だけ繰り返し行う。
最初にプログラム起動機能109は、テスト用データベース生成部110により、受信したDDL・DML107に含まれるCreate Table文やCreate Index文、Insert文等のSQL文を発行して顧客の要求を満たすテーブル構造のテーブルを含むテスト用データベースをDBMS101内に生成する処理を行う(ステップ903)。
次に、プログラム起動機能109は、プログラム生成部111により、受信したDDL・DML107に含まれるSelect文やUpdate文等の各SQL文を発行してテスト用データベースのテーブルに対して処理を行うためのデータベースアクセスプログラムを生成する処理を行う(ステップ904)。
次に、プログラム起動機能109は、プログラム実行部112により、プログラム生成部111が生成したデータベースアクセスプログラムを実行してテスト用データベースのテーブルに対する処理を行う(ステップ905)。
次に、プログラム起動機能109は、測定結果格納部113により、プログラム実行部112テスト用データベースに対する処理を行うことにより得られたテスト用データベースの性能測定の結果に関する情報を測定結果格納データベース104に格納する処理を行う(ステップ906)。
次に、プログラム起動機能109は、テーブル削除部114により、Drop Table文やDrop Index文等のSQL文を発行してテスト用データベースを削除する処理を行う(ステップ907)。
以上のステップ903からステップ907までの処理を、ステップ901において受信したテーブル構造IDの個数分だけ繰り返し行い、テスト用データベースの作成とテスト用データベース内のテーブルへのデータの入力の処理、テスト用データベースの性能測定の処理を行う。
次に、プログラム起動機能109は、テスト用データベースの性能測定が終了したことを示す終了フラグをテーブル構造結果通知機能115に送信する処理を行う(ステップ908)。
続いて、図10に示すフローチャートを用いて上述のステップ903においてプログラム起動機能109のテスト用データベース生成部110が実行する顧客の要求を満たすテーブル構造のテーブルを含むテスト用データベースを生成する処理について説明する。まず、テスト用データベース生成部110は、ステップ901においてDDL・DML生成機能106から受信したDDL・DML107内から、Create Table文やCreate Index文、Insert文等のSQL文を含むDDL・DML107を抽出する処理を行う(ステップ1001)。
次に、テスト用データベース生成部110は、この抽出したDDL・DML107によりテスト用データベースを作成する処理を行う(ステップ1002)。抽出したDDL・DML107のうち、Create Table文やCreate Index文等を含むDDLをDBMS101対して発行し、テスト用データベースをDBMS101内に生成する処理を行う。
次に、テスト用データベース生成部110は、テスト用データベースにテスト用データを入力する処理を行う(ステップ1003)。抽出したDDL・DML107のうち、Insert文等のSQL文を含むDMLをDBMS101対して発行する。そして、テスト用データベース内のテーブルにInsert文等で設定された情報を入力する処理を行う。
続いて、図11に示すフローチャートを用いて上述のステップ904においてプログラム起動機能109のプログラム生成部111が実行するテスト用データベースに対して処理を行うためのデータベースアクセスプログラムを生成する処理について説明する。プログラム生成部111は、以下のようにしてデータベースアクセスプログラムを作成する処理を行う(ステップ1101)。以下のステップ1102の処理を、ステップ901において受信したDDL・DML107内のSelect文やUpdate文等のテスト用データベース内のテーブルに対して処理を行うためのSQL文の個数分だけ繰り返し行う。
プログラム生成部111は、ステップ901においてDDL・DML生成機能106から受信したDDL・DML107内から、Select文やUpdate文等のテスト用データベース内のテーブルに対して処理を行うためのSQL文を抽出する処理を行い、この抽出したSQL文を発行してデータベースアクセスプログラムを作成する処理を行う(ステップ1102)。すなわち、図示しないROM等から予め記憶されたデータベースアクセスプログラムの雛型のデータを読み出し、データベースアクセスプログラムの雛型に、抽出したSQL文の処理の内容や情報を入力する処理を行い、SQL文の処理に対応したデータベースアクセスプログラムを生成する処理を行う。
以上のステップ1102の処理を、ステップ901において受信したDDL・DML107内のSelect文やUpdate文等のテスト用データベース内のテーブルに対して処理を行うためのSQL文の個数分だけ繰り返し行う。
次に、プログラム生成部111は、これらの生成した各データベースアクセスプログラムを実行するためのドライバアプリケーションを生成する処理を行う(ステップ1103)。
続いて、図12に示すフローチャートを用いて上述のステップ905においてプログラム起動機能109のプログラム実行部112が実行するデータベースアクセスプログラムを実行することによるテスト用データベースに対する処理について説明する。プログラム実行部112は、上述のステップ1103において生成した各ドライバアプリケーションを実行し、データベースアクセスプログラムを実行する(ステップ1201)。
ここで、プログラム実行部112は、データベースアクセスプログラムを実行する際にこのデータベースアクセスプログラムの開始時刻を図示しない時計機構により取得し、データベースアクセスプログラムの処理の性能測定を行う。開始時刻を取得した後データベースアクセスプログラムを実行し、テスト用データベースのテーブルに対する処理が行われてこの処理が終了した際に、データベースアクセスプログラムの終了時刻を図示しない時計機構により取得する。そして、これらの開始時刻および終了時刻から処理に必要とした時間を示すターンアラウンドタイム1403を算出する。
続いて、図13に示すフローチャートを用いて上述のステップ906においてプログラム起動機能109の測定結果格納部113が実行するテスト用データベースの性能測定の結果に関する情報を測定結果格納データベース104に格納する処理について説明する。測定結果格納部113は、上述のステップ1201において算出したターンアラウンドタイム1403と、ターンアラウンドタイム1403を算出したデータベースアクセスプログラムの処理が行われたテーブルのテーブル構造ID1401と、ターンアラウンドタイム1403を算出したデータベースアクセスプログラムに対応するSQL文のSQL種別コード1402とを関連付けて測定結果格納データベース104に格納する処理を行う(ステップ1301)。例えば図14に示すように、テーブル構造ID1401である「T001」と、SQL種別コード1402である「1」と、ターンアラウンドタイム1403である「92.093」の各情報を関連付けられて格納する処理を行う。他のデータベースアクセスプログラムの測定結果に対しても同様に、テーブル構造ID1401である「T002」と、SQL種別コード1402である「2」と、ターンアラウンドタイム1403である「65.108」の各情報を関連付けられて格納する処理を行う。このとき、性能測定実行装置103は、テーブル構造ID1401とSQL種別コード1402の情報を参照して、いずれのテーブル構造におけるいずれの種別のSQL文の処理の性能測定結果であるのかを把握するようになっている。
続いて、図15に示すフローチャートを用いて上述のステップ907においてプログラム起動機能109のテーブル削除部114が実行するテスト用データベースを削除する処理について説明する。テーブル削除部114は、テーブル構造ID1401に基づいて検索処理を行い、ステップ901において受信したDDL・DML107内からテーブル構造ID1401に対応するテーブルを削除するためのDrop Table文や、このテーブルのIndexを削除するためのDrop Index文等のSQL文を読み出す処理を行う(ステップ1501)。
次に、テーブル削除部114は、これらの読み出したDrop Table文やDrop Index文等のSQL文をDBMS101に対して発行し、テスト用データベースのテーブルに対する処理の性能測定が行われたテーブルやインデックスを削除する処理を行う(ステップ1502)。
続いて、図16に示すフローチャートを用いて上述のステップ405において性能測定実行装置103のテーブル構造結果通知機能115が実行するテスト用データベースの性能測定の結果をクライアント端末102に送信する処理について説明する。まず、性能測定実行装置103のテーブル構造結果通知機能115は、上述のステップ908においてプログラム起動機能109が送信した終了フラグを受信する処理を行う(ステップ1601)。
次に、テーブル構造結果通知機能115は、測定結果格納データベース104からテスト用データベースの性能測定の結果に関する情報を取得する処理を行う(ステップ1602)。測定結果格納データベース104からターンアラウンドタイム1403とテーブル構造ID1401とSQL種別コード1402とを関連付けたデータ毎に読み出して取得する処理を行う。
次に、テーブル構造結果通知機能115は、取得したテスト用データベースの性能測定の結果に関する情報に基づいて顧客の要求を満足しているテーブルのテーブル構造ID1401を選択する処理を行う(ステップ1603)。例えば、各SQL文の処理毎の処理要求画面200を参照して、優先順位202が「1」の処理要求201の処理に対応するSQL種別コード1402に関連付けられたターンアラウンドタイム1403が最も良いデータを選択し、このデータのテーブル構造ID1401を顧客の要求を満足しているテーブル構造であると判定する。
また、ターンアラウンドタイム1403が最も良いデータが複数存在する場合には、これらのデータのうち、優先順位202が「2」の処理要求201の処理に対応するSQL種別コード1402に関連付けられたターンアラウンドタイム1403が最も良いデータを選択し、このデータのテーブル構造ID1401を顧客の要求を満足しているテーブル構造であると判定する。
次に、テーブル構造結果通知機能115は、顧客の要求を満足しているテーブルのテーブル構造に関する情報を取得する処理を行う(ステップ1604)。この選択したテーブル構造ID1401に基づいて検索処理を行い、DDL・DML生成機能106にて生成されたテーブル構造情報108から、このテーブル構造ID1401が割り振られたテーブル構造情報108を読み出す処理を行う。
次に、テーブル構造結果通知機能115は、テスト用データベースの性能測定の結果に関する情報をクライアント端末102に送信する処理を行う(ステップ1605)。選択したテーブル構造ID1401と、このテーブル構造ID1401に関連付けられたSQL種別コード1402、ターンアラウンドタイム1403の情報を、読み出したテーブル構造情報108と共にネットワークを介してクライアント端末102に送信する処理を行う。
以上のように、本発明の実施の形態におけるテーブル構造決定及び通知システムでは、処理要求画面200、データ情報画面300に従って要求情報の要求内容を入力しネットワークを介して性能測定実行装置103に送信すると、この受信した要求情報に基づいて顧客の要求を満たすテーブル構造のテーブルの作成やテーブルに対する処理等をするためのSQL文を含むDDL・DML107を生成し、DDL・DML107によりテスト用データベースとデータベースアクセスプログラムを生成する。そして、テスト用データベースの性能測定の処理を行って、顧客の要求を満足している性能測定の結果とテーブル構造に関する情報をクライアント端末102に送信する処理を行う。
このため、顧客が使用するテーブルに対して、顧客からのデータベースに対する処理に関する要求を満たすSQL文において、性能測定実行装置103を用いてさまざまなパターンのSQL文を生成し、その中で顧客の要求を満足するテーブル構造を顧客に提供することができる。
顧客は、顧客の要求を満足している性能測定の結果とテーブル構造に関する情報をクライアント端末102のディスプレイ装置の表示画面により確認して、顧客の要求を最も満たすテーブル構造を参照して、例えばテーブルを作成するための参考資料として使用することが可能となる。
なお、本実施の形態におけるDBMS101は、いろいろなベンダーから提供されているDBMS製品のことであり、その種類を問わないものとする。また、DBMS101に対する処理の問合せ言語をSQL文としているが、オブジェクト指向データベース(OODB)で扱われるオブジェクト操作言語(OML)などの他の問合せ言語に関しても同様の処理を行うことができる。
(他の実施の形態)
上述のステップ1603において、テーブル構造結果通知機能115が、優先順位202が「1」の処理要求201の処理に対応するSQL種別コード1402に関連付けられたターンアラウンドタイム1403が最も良いデータを選択しているが、これに限られず、各処理要求201の処理に対応するSQL種別コード1402に関連付けられたターンアラウンドタイム1403のうち、最も悪いターンアラウンドタイム1403が関連付けられていないデータを検出し、このデータに含まれているテーブル構造ID1401を顧客の要求を満足しているテーブル構造であると判定しても良い。
本実施の形態におけるテーブル構造決定及び通知システムの全体構成を示す説明図である。 本実施の形態におけるテーブル構造決定及び通知システムの処理要求画面を示す説明図である。 本実施の形態におけるテーブル構造決定及び通知システムのデータ情報画面を示す説明図である。 本実施の形態におけるテーブル構造決定及び通知システムの全体の処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムのDDL・DMLを生成する処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムのSQL文を示す説明図である。 本実施の形態におけるテーブル構造決定及び通知システムのSQL文を示す説明図である。 本実施の形態におけるテーブル構造決定及び通知システムのSQL文を示す説明図である。 本実施の形態におけるテーブル構造決定及び通知システムのプログラム起動機能が実行する処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムのテスト用データベース生成部が実行する処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムのプログラム生成部が実行する処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムのプログラム実行部が実行する処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムの測定結果格納部が実行する処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムの性能結果格納データベースを示す説明図である。 本実施の形態におけるテーブル構造決定及び通知システムのテーブル削除部が実行する処理を示すフローチャートである。 本実施の形態におけるテーブル構造決定及び通知システムのテーブル構造結果通知機能が実行する処理を示すフローチャートである。
符号の説明
101 DBMS
102 クライアント端末
103 性能測定実行装置
104 測定結果格納データベース
105 データ受信機能
106 DDL・DML生成機能
107 DDL・DML
108 データ構造情報
109 プログラム起動機能
110 テスト用データベース生成部
111 プログラム生成部
112 測定結果格納部
113 測定結果格納部
114 テーブル削除部
115 テーブル構造結果通知機能

Claims (2)

  1. 顧客の要求を満たすテーブル構造を決定し、提供するためのテーブル構造決定及び通知システムにおいて、
    顧客が操作したクライアント端末からネットワークを介して送信された顧客が使用するテーブルの要求に関する要求情報であって、データを検索するための主キー情報、データ名、データ型、データの長さ、必須のデータか否かを示す情報、データの従属性に関する情報が含まれる要求情報を受信する要求受信手段と、
    前記要求受信手段が受信した要求情報に基づいて、顧客の要求を満たすテーブル構造のテーブルを作成するためのSQL文を生成する構造SQL生成手段と、
    前記構造SQL作成手段が生成したSQL文に基づいて生成されたテーブルに対する処理を行うためのSQL文を生成する処理SQL生成手段と、
    前記構造SQL生成手段により作成されたSQL文の内容に基づき、テスト用データベースを作成するテスト用データベース作成手段と、
    作成されたテスト用データベース内のテーブルへデータ入力を行なうデータ入力手段と、
    データ入力されたテスト用データベースに対し、前記処理SQL生成手段により作成されたSQL文の内容に基づいた処理を実行するSQL実行手段と、
    前記SQL実行手段が前記テスト用データベースに対する処理を実行することにより、前記テスト用データベースの性能を測定する性能測定手段と、
    前記性能測定手段が測定した測定結果と、前記SQL文に基づいて生成されたテーブルのテーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信するテーブル構造結果通知手段とを備えたことを特徴とするテーブル構造決定及び通知システム。
  2. 請求項に記載のテーブル構造決定及び通知システムにおいて、
    前記要求受信手段は、
    顧客が操作したクライアント端末からネットワークを介して送信された顧客の前記要求情報に含まれる要求内容が複数だった場合に、前記要求情報と共に、前記要求内容の優先順位を示す順位情報を受信する順位情報受信手段を備え
    前記テーブル構造結果通知手段は、
    前記性能測定手段によるテスト用データベースの性能の測定結果から、前記順位情報に基づき、顧客の要求するテーブル構造を選択するテーブル構造選択手段と、
    前記性能測定手段が測定した測定結果と、前記テーブル構造選択手段により選択された前記テーブル構造に関する情報とをネットワークを介して前記クライアント端末に送信する送信手段とを備えることを特徴とするテーブル構造決定及び通知システム。
JP2006071314A 2006-03-15 2006-03-15 テーブル構造決定及び通知システム Expired - Fee Related JP4749899B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006071314A JP4749899B2 (ja) 2006-03-15 2006-03-15 テーブル構造決定及び通知システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006071314A JP4749899B2 (ja) 2006-03-15 2006-03-15 テーブル構造決定及び通知システム

Publications (2)

Publication Number Publication Date
JP2007249531A JP2007249531A (ja) 2007-09-27
JP4749899B2 true JP4749899B2 (ja) 2011-08-17

Family

ID=38593764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006071314A Expired - Fee Related JP4749899B2 (ja) 2006-03-15 2006-03-15 テーブル構造決定及び通知システム

Country Status (1)

Country Link
JP (1) JP4749899B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984374A (zh) * 2017-06-01 2018-12-11 腾讯科技(深圳)有限公司 一种数据库性能的测试方法和系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115757083A (zh) * 2021-09-02 2023-03-07 中兴通讯股份有限公司 一种分布式数据库检测方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110749A (ja) * 1992-09-30 1994-04-22 Toshiba Corp デ―タベ―スの再構成システム
JPH08241327A (ja) * 1995-03-06 1996-09-17 Nippon Telegr & Teleph Corp <Ntt> データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法
JPH0991191A (ja) * 1995-09-26 1997-04-04 Nippon Telegr & Teleph Corp <Ntt> データベース設計方法及び装置
JP2001282799A (ja) * 2000-03-29 2001-10-12 Hitachi Software Eng Co Ltd データベースの性能評価方法及び装置並びに記録媒体
JP2002117041A (ja) * 2000-10-10 2002-04-19 Nec Corp データベース照会システム
JP2002163134A (ja) * 2000-11-28 2002-06-07 Nec Corp データ管理方法
JP2003505766A (ja) * 1999-07-20 2003-02-12 コンピュータ アソシエイツ シンク,インコーポレイテッド クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110749A (ja) * 1992-09-30 1994-04-22 Toshiba Corp デ―タベ―スの再構成システム
JPH08241327A (ja) * 1995-03-06 1996-09-17 Nippon Telegr & Teleph Corp <Ntt> データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法
JPH0991191A (ja) * 1995-09-26 1997-04-04 Nippon Telegr & Teleph Corp <Ntt> データベース設計方法及び装置
JP2003505766A (ja) * 1999-07-20 2003-02-12 コンピュータ アソシエイツ シンク,インコーポレイテッド クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム
JP2001282799A (ja) * 2000-03-29 2001-10-12 Hitachi Software Eng Co Ltd データベースの性能評価方法及び装置並びに記録媒体
JP2002117041A (ja) * 2000-10-10 2002-04-19 Nec Corp データベース照会システム
JP2002163134A (ja) * 2000-11-28 2002-06-07 Nec Corp データ管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984374A (zh) * 2017-06-01 2018-12-11 腾讯科技(深圳)有限公司 一种数据库性能的测试方法和系统
CN108984374B (zh) * 2017-06-01 2021-05-07 腾讯科技(深圳)有限公司 一种数据库性能的测试方法和系统

Also Published As

Publication number Publication date
JP2007249531A (ja) 2007-09-27

Similar Documents

Publication Publication Date Title
US7231386B2 (en) Apparatus, method, and program for retrieving structured documents
US7925672B2 (en) Metadata management for a data abstraction model
US7039622B2 (en) Computer-implemented knowledge repository interface system and method
CN101542414B (zh) 自适应内容平台以及与该平台的应用程序集成
JP5106155B2 (ja) 文書処理装置、方法及びプログラム
JPH11259498A (ja) 文書処理装置および記録媒体
US10055452B2 (en) Most likely classification code
JP2004220215A (ja) 計算機を利用した業務誘導支援システムおよび業務誘導支援方法
US7055096B2 (en) Data integrate system and data integrate method
KR101762720B1 (ko) 포탈 기반 물관련 정보 제공 시스템
WO2008058927A2 (en) Database system
CN116842269A (zh) 一种基于政策图谱的政策推荐方法、装置以及电子设备
CN111427577A (zh) 代码处理方法、装置及服务器
JP2007108889A (ja) 知的財産管理システム、知的財産管理方法およびプログラム
JP4749899B2 (ja) テーブル構造決定及び通知システム
US7873607B1 (en) Model driven consolidator of database information
JP5592747B2 (ja) ファイル検索装置およびファイル検索プログラム
JP6586050B2 (ja) 管理装置、管理方法および管理プログラム
JP2004192524A (ja) 支援方法、支援装置及びコンピュータプログラム
JP2012063896A (ja) データアクセス制御システム、データアクセス制御方法及びデータアクセス制御プログラム
JP7340952B2 (ja) テンプレート検索システムおよびテンプレート検索方法
US20100185606A1 (en) Development document data management device, development document data management system, development document data management method, program therefor, and recording medium
JP4053920B2 (ja) 文書管理システム、文書生成方法、登録方法およびプログラム
US20030110156A1 (en) Information collecting apparatus, information collecting method and information collecting program
JP2009093554A (ja) 検索支援方法、検索支援システム、アプリケーションサーバ、及び検索支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110517

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110518

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees