(57)【要約】【課題】データベースの種類に依存せずに、データベースへのアクセス処理時にＳＱＬ文などの引数や条件などを動的に変更できるデータベースアクセス用スクリプト作成システム、データベースアクセス用スクリプト作成方法、およびスクリプト生成プログラムを提供する。【解決手段】データベースアクセス用スクリプト作成方法が適用されるデータベース管理システムは、サーバ１０とクライアント２０とリレーショナル・データベース３０とを有する。制御部１２は、記憶装置１１が記憶するＳＱＬ生成シェルスクリプト１１１に従って、ＳＱＬスクリプト１１２を生成する。ＳＱＬスクリプト１１２を生成する際には、制御部１２は、情報定義ファイル１１０や外部情報ファイル１１５から抽出した情報に基づいて生成する。そして、制御部１２は、ＳＱＬスクリプト１１２に従って、リレーショナル・データベース３０にアクセスする。【選択図】　図１
2004054714.tif 000002
【特許請求の範囲】
【請求項１】
データベースをアクセスするための構造化照会言語で記載されるスクリプトを作成するデータベースアクセス用スクリプト作成システムであって、
オペレータが指定する変数の内容である変数情報を記憶する情報定義部と、
前記情報定義部が記憶する変数情報を更新する情報更新手段と、
前記情報定義部が記憶する変数情報を抽出し、抽出した変数情報に基づいて、データベースへのアクセス手順を示すスクリプトを生成するスクリプト生成手段とを
備えたことを特徴とするデータベースアクセス用スクリプト作成システム。
【請求項２】
自動的に内容が更新される外部情報を記憶する外部情報部を備え、
スクリプト生成手段は、前記外部情報部が記憶する外部情報を抽出し、情報定義部から抽出した変数情報と外部情報部から抽出した外部情報とに基づいてスクリプトを生成する
請求項１に記載のデータベースアクセス用スクリプト作成システム。
【請求項３】
スクリプト生成手段は、汎用のシェルスクリプト形式のプログラムに従って、情報定義部が記憶する変数情報と、外部情報部が記憶する外部情報とを抽出し、抽出した変数情報と外部情報とに基づいてスクリプトを生成する請求項１または２に記載のデータベースアクセス用スクリプト作成システム。
【請求項４】
情報定義部は、変数情報として複数のファイルを記憶し、
スクリプト生成手段は、前記複数のファイルから一部のファイルを選択し、選択したファイルから変数情報を抽出する
請求項１、２または３に記載のデータベースアクセス用スクリプト作成システム。
【請求項５】
スクリプト生成手段は、データベースへのアクセス処理の種類に応じたスクリプトを生成する
請求項１、２、３または４記載のデータベースアクセス用スクリプト作成システム。
【請求項６】
データベースをアクセスするための構造化照会言語で記載されるスクリプトを作成するデータベースアクセス用スクリプト作成方法であって、オペレータが指定する変数の内容である変数情報と、自動的に内容が更新される外部情報とを抽出し、抽出した変数情報と外部情報とに基づいて、データベースへのアクセス手順を示すスクリプトを生成する
ことを特徴とするデータベースアクセス用スクリプト作成方法。
【請求項７】
コンピュータに、
オペレータが指定する変数の内容である変数情報と、自動的に内容が更新される外部情報とを抽出する処理、および
抽出した変数情報と外部情報とに基づいて、データベースへのアクセス手順を示すスクリプトを生成する処理
を実行させるためのスクリプト生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、構造化照会言語で記載されるスクリプトを作成するデータベースアクセス用スクリプト作成システム、データベースアクセス用スクリプト作成方法およびスクリプト生成プログラムに関する。
【０００２】
【従来の技術】
リレーショナル・データベース管理システムに代表されるデータベース管理システムにおいては、構造化照会言語（Ｓｔｒｕｃｔｕｒｅｄ　Ｑｕｅｒｙ　Ｌａｎｇｕａｇｅ　；以下、ＳＱＬ言語という。）によって、データベースに記憶される情報の照会や取り込みなどのアクセス処理を行っている。ＳＱＬ言語を用いてデータベースにアクセスする場合、引数や条件などを指定してデータベース内の所望の情報に対してアクセスすることができる。
【０００３】
引数や条件などを固定的に定めておくのではなく、オペレータが引数や条件などを動的に変更できるようにするために（すなわち、オペレータが所望の引数や条件などを自由に指定できるようにするために）、各種データベースに個々に対応した専用の手続き型プログラム言語によって、ＳＱＬ文の引数や条件を変更できるようにするアプリケーションが用意されている。このようなアプリケーションを作成するためのプログラム言語として、例えば、Ｐｒｏ＊ＣやＰｒｏ＊ＣＯＢＯＬなどがある。Ｐｒｏ＊ＣおよびＰｒｏ＊ＣＯＢＯＬは、いずれもＯｒａｃｌｅ　Ｃｏｒｐｏｒａｔｉｏｎ製のプログラム言語の商品名である。
【０００４】
【発明が解決しようとする課題】
しかし、各種データベースに専用のプログラム言語でＳＱＬ文を扱うアプリケーションを作成した場合、そのアプリケーションには汎用性がないという問題がある。従って、通信ネットワーク上に複数の種類のデータベースが接続されている場合には、データベースの種類に応じてＳＱＬ文を扱うアプリケーションを作成しなければならない。また、使用しているデータベースを異なる種類のデータベースに置き換える場合には、それまで使用していたアプリケーションでは、ＳＱＬ文の引数や条件などを設定できなくなってしまう。
【０００５】
オペレータの立場では、データベースの種類に依存せずに共通の方法でＳＱＬ文の引数や条件などを動的に変更できるようにすることが好ましい。さらに、引数の変更などを簡易に行えることが好ましい。
【０００６】
また、内容が随時変更される情報がＳＱＬ文などの引数として用いられることもある。例えば、現時点における年月日などを引数として用いることもある。このような情報をオペレータが確認したうえで指定しなければならないとすると、オペレータの負担が増加してしまう。
【０００７】
そこで、本発明は、データベースの種類に依存せずに、データベースへのアクセス処理時にＳＱＬ文などの引数や条件などを動的に変更できるようにすることができ、また、引数などの変更を簡易に行えるデータベースアクセス用スクリプト作成システム、データベースアクセス用スクリプト作成方法およびスクリプト生成プログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明によるデータベースアクセス用スクリプト作成システムは、データベースをアクセスするための構造化照会言語で記載されるスクリプトを作成するデータベースアクセス用スクリプト作成システムであって、オペレータが指定する変数の内容である変数情報を記憶する情報定義部と、情報定義部が記憶する変数情報を更新する情報更新手段と、情報定義部が記憶する変数情報を抽出し、抽出した変数情報に基づいて、データベースへのアクセス手順を示すスクリプトを生成するスクリプト生成手段とを備えたことを特徴とする。
【０００９】
データベースアクセス用スクリプト作成システムは、自動的に内容が更新される外部情報を記憶する外部情報部を備え、スクリプト生成手段は、外部情報部が記憶する外部情報を抽出し、情報定義部から抽出した変数情報と外部情報部から抽出した外部情報とに基づいてスクリプトを生成することが好ましい。そのような構成によれば、随時変更される情報を引数とする場合に、オペレータが指定しなくても適切な引数などが設定されるようにすることができる。
【００１０】
スクリプト生成手段は、汎用のシェルスクリプト形式のプログラムに従って、情報定義部が記憶する変数情報と、外部情報部が記憶する外部情報とを抽出し、抽出した変数情報と外部情報とに基づいてスクリプトを生成するものであってもよい。
【００１１】
情報定義部は、変数情報として複数のファイルを記憶し、スクリプト生成手段は、複数のファイルから一部のファイルを選択し、選択したファイルから変数情報を抽出するものであってもよい。
【００１２】
スクリプト生成手段は、データベースへのアクセス処理の種類に応じたスクリプトを生成する
【００１３】
本発明によるデータベースアクセス用スクリプト作成方法は、データベースをアクセスするための構造化照会言語で記載されるスクリプトを作成するデータベースアクセス用スクリプト作成方法であって、オペレータが指定する変数の内容である変数情報と、自動的に内容が更新される外部情報とを抽出し、抽出した変数情報と外部情報とに基づいて、データベースへのアクセス手順を示すスクリプトを生成することを特徴とする。
【００１４】
本発明によるスクリプト生成プログラムは、コンピュータに、オペレータが指定する変数の内容である変数情報と、自動的に内容が更新される外部情報とを抽出する処理、および抽出した変数情報と外部情報とに基づいて、データベースへのアクセス手順を示すスクリプトを生成する処理を実行させることを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。図１は、本発明によるデータベースアクセス用スクリプト作成方法が適用されるデータベース管理システムの構成例を示すブロック図である。図１では、ＳＱＬ言語で記載されるスクリプトに従ってデータベースにアクセスするリレーショナル・データベース管理システム（Ｒｅｌａｔｉｏｎａｌ　Ｄａｔａｂａｓｅ　Ｍａｎａｇｅｍｅｎｔ　Ｓｙｓｔｅｍ　；以下、ＲＤＢＭＳという。）を示す。
【００１６】
なお、本実施の形態では、データベース管理システムとして、ＲＤＢＭＳを例として説明を行うが、ＳＱＬ言語を用いるものであれば、本発明は、他のデータベース管理システムであってもよい。
【００１７】
ＲＤＢＭＳは、サーバ１０とクライアント２０とリレーショナル・データベース（Ｒｅｌａｔｉｏｎａｌ　Ｄａｔａｂａｓｅ　；以下、ＲＤＢという。）３０とを有し、サーバ１０とクライアント２０とＲＤＢ３０とは、ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）４０に接続される。
【００１８】
図１では、サーバ１０とクライアント２０とＲＤＢ３０とがＬＡＮによって接続される場合を示すが、ＷＡＮ（Ｗｉｄｅ　Ａｒｅａ　Ｎｅｔｗｏｒｋ　）など他の通信ネットワークで接続されていてもよい。また、小規模なＲＤＢＭＳであって、サーバ１０とクライアント２０とＲＤＢ３０とが相互に直接に接続されてもいてもよいし、サーバ１０とクライアント２０とは、１台のコンピュータ端末などで構成されてもよい。
【００１９】
本実施の形態では、サーバ１０やクライアント２０がＵＮＩＸ（登録商標）をオペレーティング・システム（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ；以下、ＯＳという。）として動作する場合を例として説明する。
【００２０】
サーバ１０は、記憶装置１１と、制御部１２と、キーボードやマウスなどの入力部１３と、ＣＲＴディスプレイやプリンタなどの出力部１４と、ＬＡＮ４０とのインタフェース制御を行う通信制御部１５とを有する。制御部１２は、後述する記憶装置１１が記憶する各種プログラムに従って、処理を実行する。
【００２１】
ＲＤＢ３０は、例えば、磁気ディスク装置や半導体メモリ装置で形成される。そして、ＲＤＢ３０は、ＲＤＢＭＳの管理対象となる情報を、複数の表形式のテーブルに記憶する。よって、管理対象となる情報は表形式に変換されて各テーブルに格納される。
【００２２】
サーバ１０は、クライアント２０などからＲＤＢ３０に記憶される情報へのアクセス要求があった場合に、クライアント２０とＲＤＢ３０との間のアクセス管理を行う。サーバ１０は、ＳＱＬ言語で記載されるスクリプト（以下、ＳＱＬスクリプトという）に従って、ＲＤＢ３０に記憶される情報にアクセスする。スクリプトとは、ＯＳなどが搭載するコマンドを組み合わせて記載される簡易プログラムをいう。
【００２３】
サーバ１０の記憶装置１１は、情報定義ファイル１１０と、ＳＱＬ生成シェルスクリプト１１１と、ＳＱＬスクリプト１１２と、ＳＱＬ実行用ソフトウェア１１３とを記憶する。ＳＱＬスクリプト１１２は、ＲＤＢ３０へのアクセス処理手順を示すスクリプトである。ＳＱＬスクリプト１１２では、例えば、ＲＤＢ３０へのアクセス処理結果を出力するファイルのファイル名などが定められている必要がある。ＳＱＬスクリプト１１２は、ＳＱＬ言語で記載される。ＳＱＬ実行用ソフトウェア１１３は、ＳＱＬスクリプト１１２に記載された処理を制御部１２に実行させるためのプログラムである。すなわち、制御部１２は、ＳＱＬ実行用ソフトウェア１１３に従って、ＳＱＬスクリプト１１２に記載される処理を実行する。
【００２４】
ＳＱＬ生成シェルスクリプト１１１は、ＳＱＬスクリプト１１２を生成するためのシェルスクリプトである。制御部１２は、ＳＱＬ生成シェルスクリプト１１１に記載される処理を実行して、ＳＱＬスクリプト１１２を生成する。情報定義ファイル１１０は、オペレータが指定する変数の内容である変数情報を含む。変数情報としては、例えば、データベースへのアクセス処理結果を出力するファイルのファイル名などがある。オペレータはこのようなファイル名などを予め情報定義フィアル１１０において定義しておく。制御部１２は、情報定義ファイル１１０から情報を抽出し、ＳＱＬ生成シェルスクリプト１１１に従ってＳＱＬスクリプト１１２を生成する。
【００２５】
なお、ＳＱＬ生成シェルスクリプト１１１は、例えば、Ｂシェル（Ｂｕｏｒｎｅシェル）コマンドを用いて記載されるシェルスクリプトである。シェルとは、コマンドを用いてＯＳを動作させるソフトウェアの総称であり、Ｂシェルとは、ＵＮＩＸに標準で搭載されるシェル・ソフトウェアの名称である。また、シェルスクリプトとは、シェルのコマンドを用いて記載されるスクリプトの総称である。ＳＱＬ生成シェルスクリプト１１１は、Ｃシェルを用いて記載されてもよく、汎用的なものであれば、ＵＮＩＸ上で使用できる他のシェルを用いて記載されてもよい。
【００２６】
また、記憶装置１１は、自動的に内容が更新される外部情報（例えば、年情報や月情報など）を制御部１２に管理させるための外部情報管理プログラム１１４と、外部情報管理プログラム１１４が制御部１２に管理させる外部情報が書き込まれる外部情報ファイル１１５とを記憶する。従って、外部情報ファイル１１５には、制御部１２が管理する外部情報が書き込まれ、制御部１２によって自動的に更新される。
【００２７】
なお、制御部１２は、オペレータの要求に応じて、外部情報ファイル１１５の内容を更新してもよい。例えば、外部情報ファイル１１５の内容が自動的に更新される時間情報である場合に、制御部１２は、オペレータの時間リセットの要求に応じて、外部情報ファイル１１５に記憶される時間情報の内容を「０時０分」に更新してもよい。
【００２８】
ＳＱＬ生成シェルスクリプト１１１に従ってＳＱＬスクリプト１１２を生成する際に、制御部１２は、情報定義ファイル１１０に含まれる変数情報とともに、外部情報ファイル１１５に含まれる外部情報を抽出する。そして、抽出した変数情報と外部情報とに基づいてＳＱＬスクリプト１１２を生成する。
【００２９】
また、記憶装置１１は、ＳＱＬスクリプト１１２に従って、制御部１２がＲＤＢ３０にアクセスする場合に、アクセス処理の実行結果が書き込まれる出力ファイル１１６を記憶する。また、アクセス処理の実行中にエラーが発生した場合にエラーログが書き込まれるログファイル１１７を記憶する。なお、出力ファイル１１６とログファイル１１７とは、制御部１２が、ＳＱＬスクリプト１１２に従ってＲＤＢ３０にアクセスする際に生成されるファイルである。
【００３０】
さらに、記憶装置１１は、エディタなどの編集用ソフトウェア１１８を記憶する。従って、制御部１２は、編集用ソフトウェア１１８に従い、オペレータの要求に応じて、記憶装置１１に記憶されるファイル（情報定義ファイル１１０）の内容を編集する。よって、情報定義ファイル１１０の内容はオペレータに編集されることによって定められる。
【００３１】
クライアント２０は、記憶装置２１と、制御部２２と、キーボードやマウスなどの入力部２３と、ＣＲＴディスプレイやプリンタなどの出力部２４と、ＬＡＮ４０とのインタフェース制御を行う通信制御部２５とを有する。
【００３２】
記憶装置２１は、クライアント２０の制御部２２が、オペレータの要求に応じて、サーバ１０の制御部１２に対して、ＲＤＢ３０へのアクセス要求をするためのデータベース・アプリケーション２１０を記憶する。また、記憶装置２１は、エディタなどの編集用ソフトウェア２１１を記憶する。制御部２２は、編集用ソフトウェア２１１に従い、オペレータの要求に応じて、記憶装置１１に記憶される情報定義ファイル１１０の内容を編集する。
【００３３】
図１に示すブロック図では、２台のクライアント２０が、ＬＡＮ４０に接続される例を示すが、クライアント２０は１台であってもよく、また２台に限らず、さらに多数のクライアント２０が、ＬＡＮ４０に接続されてもよい。
【００３４】
なお、本実施の形態では、情報定義部と外部情報部とは、記憶装置１１によって実現される。また、スクリプト生成手段とスクリプト実行手段と情報更新手段とは、制御部１２によって実現される。さらに、スクリプト生成プログラムは、ＳＱＬ生成シェルスクリプト１１１によって実現される。
【００３５】
次に、本実施の形態の動作について説明する。オペレータの入力部１３からの入力に応じて、制御部１２は、ｖｉエディタなどの編集用ソフトウェア１１８に従って、予め、ファイル情報や使用する変数などのＳＱＬスクリプト１１２を生成するための変数情報を情報定義ファイル１１０に書き込んでおく。なお、オペレータからの要求に応じて、制御部１２は、随時、情報定義ファイル１１０の内容を編集できる。
【００３６】
ｖｉエディタとは、ＵＮＩＸに標準で搭載される編集用ソフトウェアの名称である。なお、ＵＮＩＸ上で編集できるものであれば、ｖｉエディタに限らず、ｅｍａｃｓエディタなど、その他の編集用ソフトウェアを用いて情報定義ファイル１１０の編集を行ってもよい。また、サーバ１０の制御部１２が編集用ソフトウェア１１８に従って情報定義ファイル１１０を編集するのでなく、制御部２２が記憶装置２１が記憶する編集用ソフトウェア２１１に従って情報定義ファイル１１０を編集してもよい。
【００３７】
図２は、情報定義ファイル１１０の内容の例を示す説明図である。データベース定義情報２０１は、情報を抽出したいＲＤＢ３０のテーブル名（本例では「ｇｓｓｎｍａｅ＿ｔｂｌ　」）を定義する。「ｇｓｓｎｍａｅ＿ｔｂｌ　」はＲＤＢ３０に含まれるテーブルの名前である。
【００３８】
出力ファイル定義情報２０２は、ＲＤＢ３０へのアクセス処理の結果などが書き込まれるファイル名（本例では「ｇａｄｙｍ３３　」）を定義する。「ｇａｄｙｍ３３」はＲＤＢ３０へのアクセス処理時に、処理の結果が出力されるファイルのファイル名である。ただし、このファイル名には、拡張子は含まれていない。本例では、出力ファイル定義情報２０２が定義するファイル名に拡張子が付加されることにより、出力結果が書き込まれる出力ファイル１１６の名称と、エラーログが書き込まれるログファイル１１７の名称とが決定される。出力ファイル１１６の名称は、出力ファイル定義情報２０２が定義する「ｇａｄｙｍ３３　」に拡張子「ｄａｔ　」が付加され「ｇａｄｙｍ３３．ｄａｔ　」と決定される。ログファイル１１７の名称は、出力ファイル定義情報２０２が定義する「ｇａｄｙｍ３３　」に拡張子「ｌｏｇ　」が付加され「ｇａｄｙｍ３３．ｌｏｇ　」と決定される。なお、出力ファイル定義情報２０２は、出力ファイル１１６の名称とログファイル１１７の名称とを、それぞれ別々に定義してもよい。
【００３９】
入力ファイル定義情報２０３は、外部情報ファイル１１５のファイル名（本例では「ｇｓｓｙｏｓ０１．ｄａｔ」）を定義する。「ｇｓｓｙｏｓ０１．ｄａｔ」は外部情報ファイル１１５のファイル名である。
【００４０】
区分定義情報２０４は、制御部１２がＳＱＬスクリプト１１２に書き込むマクロに引数として引用される区分のコード番号（本例では「３３」）を定義する。マクロとは、複数のＳＱＬ言語のコマンドを組み合わせて１つの命令で実行できるように定義されるものである。本例では、制御部１２は、ＳＱＬ生成シェルスクリプト１１１に従って、マクロ「ＤＹＭ＿Ｍａｋｅ」をＳＱＬスクリプト１１２に書き込む。コード番号「３３」は、マクロ「ＤＹＭ＿Ｍａｋｅ」が引用する引数である。
【００４１】
なお、制御部１２がＳＱＬ生成シェルスクリプト１１１に従って生成するＳＱＬスクリプト１１２には、ＳＱＬ言語のコマンドとマクロとを含む場合と、ＳＱＬ言語のコマンドのみを含む場合とが考えられる。ＳＱＬスクリプト１１２がＳＱＬ言語のコマンドのみを含みマクロを含まない場合（制御部１２がＳＱＬ言語のコマンドのみを書き込みマクロを書き込まない場合）には、区分定義情報２０４はなくてもよい。また、ＳＱＬスクリプト１１２が複数のマクロを含む場合（制御部１２が複数のマクロを書き込む場合）には、区分定義情報２０４は複数の区分のコード番号を定義してもよい。
【００４２】
スクリプトファイル定義情報２０５は、制御部１２がＳＱＬ生成シェルスクリプト１１１に従って生成するＳＱＬスクリプト１１２のスクリプトファイル名（本例では「ｇｓｓｄｙｍ＿ｅ３３．ｓｑｌ」）を定義する。「ｇｓｓｄｙｍ＿ｅ３３．ｓｑｌ」は、スクリプトファイルのファイル名である。
【００４３】
出力ファイル・ディレクトリ定義情報２０６は、出力ファイル１１６が記憶される記憶装置１１内のディレクトリ（本例では、「／ｈｏｍｅ／ｇｓｓ４／ｄａｔ」）を定義する。また、ログファイル・ディレクトリ定義情報２０７は、ログファイル１１７が記憶される記憶装置１１内のディレクトリ（本例では、「／ｈｏｍｅ／ｇｓｓ４／ｌｏｇ」）を定義する。「／ｈｏｍｅ／ｇｓｓ４／ｄａｔ」および「／ｈｏｍｅ／ｇｓｓ４／ｌｏｇ」はディレクトリ名である。
【００４４】
ホーム・ディレクトリ定義情報２０７は、オペレータが日常でホーム・ディレクトリとして使用しているディレクトリ（本例では、「／ｈｏｍｅ／ｃｌｉｅｎｔ１　」）を定義する。「／ｈｏｍｅ／ｃｌｉｅｎｔ１　」はディレクトリ名である。
【００４５】
外部情報管理プログラム１１４は、現在の年情報と月情報とを管理するプログラムである。例えば、２００２年の４月になったとすると、制御部１２は、外部情報管理プログラム１１４に従って、外部情報ファイル１１５に「２００２」という年情報と、「０４」という月情報とを書き込む。２００２年の５月１日になれば、外部情報管理プログラム１１４に従って、制御部１２は、サーバ１０内の時計ＩＣなどが生成する時間情報などに基づいて、外部情報ファイル１１５の月情報を「０４」から「０５」に更新する。
【００４６】
図３は、外部情報ファイル１１６の内容の例を示す説明図である。本実施の形態では、２００２年４月の年情報と月情報とが外部情報ファイル１１６に記憶されており、外部情報ファイル１１６の年月情報３０１には、例えば、年情報「２００２」と月情報「０４」とを合成した「２００２０４」という内容が記載される。
【００４７】
外部情報管理プログラム１１４は、年情報と月情報とを管理するのでなく、サーバ１０内の時計ＩＣなどが生成する時間情報に基づいて、日付情報や時間情報を管理するものであってもよい。また、時間情報などではなく、データベースへのアクセス者数など、オペレータが内容を指定することができない外部情報を管理するものであってもよい。
【００４８】
制御部１２は、ＲＤＢ３０にアクセスするために、ＳＱＬ生成シェルスクリプト１１１に従って、ＳＱＬスクリプト１１２を生成する。図４は、ＳＱＬ生成シェルスクリプト１１１の処理経過の一例を示す流れ図である。また、図５は、ＳＱＬ生成シェルスクリプト１１１の内容の例を示す説明図である。制御部１２は、ＲＤＢ３０にアクセスするために、ＳＱＬ生成シェルスクリプト１１１の実行を開始する。制御部１２は、ＳＱＬ生成シェルスクリプト１１１の手順に従い、以下の処理を実行する。
【００４９】
制御部１２は、ＳＱＬ生成シェルスクリプト１１１に記載された情報を読み込む（ステップＳ４０１）。すなわち、制御部１２は、ＳＱＬ生成シェルスクリプト１１１上に記載される文字列を全て読み込む。
【００５０】
次に、制御部１２は、ステップＳ４０１で読み込んだ情報のうち、置換が指示された箇所を、情報定義ファイル１１０に定義されている情報に置換する（ステップＳ４０２）。図５に示すシェルスクリプト上に示される「＄　」記号は、「＄　」記号の次に続く文字列を情報定義ファイル１１０に定義されている情報に置換するＢシェルのコマンドである。制御部１２は、ステップＳ４０１で読み込んだ文字列の中に含まれる全ての「＄　」記号を探す。そして、発見された全ての「＄　」記号の次に続く文字列を情報定義ファイル１１０に定義されている情報に置換する。
【００５１】
制御部１２は、図５に示すシェルスクリプトの４行目５０４に示される最初の「＄　」記号を認識し、その後に続く文字列「ＤＩＲ＿ＤＡＴ　」に該当するディレクトリ名を情報定義ファイル１１０から読み出す。従って、制御部１２は、「ＤＩＲ＿ＤＡＴ　」を情報定義ファイル１１０の出力ファイル・ディレクトリ定義情報２０６から読み出される「／ｈｏｍｅ／ｇｓｓ４／ｄａｔ」に置換する。制御部１２は、シェルスクリプトの４行目５０４に示される２つ目の「＄　」記号を認識し、「ＤＡＴＡ＿ＦＩＬＥ　」に示す出力ファイル名を情報定義ファイル１１０から読み出す。従って、制御部１２は、「ＤＡＴＡ＿ＦＩＬＥ　」を情報定義ファイル１１０の出力ファイル定義情報２０２から読み出される「ｇａｄｙｍ３３　」に置換する。
【００５２】
以下同様に、制御部１２は、「＄　」記号の次に続く文字列を、情報定義ファイル１１０に定義されている情報に置換する。制御部１２は、シェルスクリプトの５行目５０５に示される「ＤＩＲ＿ＬＯＧ　」を、情報定義ファイル１１０のログファイル・ディレクトリ定義情報２０７から読み出される「／ｈｏｍｅ／ｇｓｓ４／ｌｏｇ」に置換する。制御部１２は、「ＤＡＴＡ＿ＦＩＬＥ　」を、情報定義ファイル１１０の出力ファイル定義情報２０２から読み出される「ｇａｄｙｍ３３　」に置換する。
【００５３】
制御部１２は、シェルスクリプトの６行目５０６に示される「ＤＩＲ＿ＤＡＴ　」を、情報定義ファイル１１０の出力ファイル・ディレクトリ定義情報２０６から読み出される「／ｈｏｍｅ／ｇｓｓ４／ｄａｔ」に置換する。制御部１２は、シェルスクリプトの６行目５０６に示される「ＩＮＰＵＴ＿ＦＩＬＥ」を、入力ファイル定義情報２０３から読み出される「ｇｓｓｙｏｓ０１．ｄａｔ」に置換する。制御部１２は、シェルスクリプトの６行目５０６に示される「ＫＵＢＵＮ　」を、区分定義情報２０４から読み出される「３３」に置換する。
【００５４】
制御部１２は、シェルスクリプトの７行目５０７に示される「ＴＢＬ＿ＮＡＭＥ」を、データベース定義情報２０１から読み出される「ｇｓｓｎｍａｅ＿ｔｂｌ　」に置換する。制御部１２は、シェルスクリプトの７行目５０７に示される「ＨＯＭＥ」を、ホーム・ディレクトリ定義情報２０７から読み出される「／ｈｏｍｅ／ｃｌｉｅｎｔ１　」に置換する。制御部１２は、シェルスクリプトの７行目５０７に示される「ＳＱＬ＿ＦＩＬＥ」を、スクリプトファイル定義情報２０５から読み出される「ｇｓｓｄｙｍ＿ｅ３３．ｓｑｌ」に置換する。
【００５５】
次に、制御部１２は、ファイルの記載内容の読み込み指示に従い、ファイルの記載内容を読み込み、指示された箇所に挿入する（ステップＳ４０３）。シェルスクリプトの６行目の前段に示される「”｀」記号から後段に示される「｀”」記号までの間には、ファイルの記載内容の読み込みを指示するＢシェルのコマンドが記載されている。すなわち、制御部１２は、ファイルの記載内容を読み込み、読み込んだファイルの記載内容を、シェルスクリプトの６行目の前段に示される「”｀」記号から後段に示される「｀”」記号までの文字列に代えて挿入する。
【００５６】
シェルスクリプトの６行目５０６に示される「ｈｅａｄ」は、引数によって指定されるファイルの内容を抽出するＢシェルのコマンドである。また、「−ｎ１　」は、引数によって指定されるファイルの内容の、何行目を抽出するかを指定するコマンド「ｈｅａｄ」のオプション指定である。本例では、制御部１２は、「ｈｅａｄ」コマンドとオプション指定「−ｎ１　」に従って、指定されるファイルの内容の１行目を抽出する。制御部１２が「ｈｅａｄ」コマンドに従って内容を抽出すべきファイルのファイル名は、ステップＳ４０２によって情報の置換が行われた結果、「／ｈｏｍｅ／ｇｓｓ４／ｄａｔ／ｇｓｓｙｏｓ０１．ｄａｔ　」（すなわち、外部情報ファイル１１５）と特定される。従って、制御部１２は、「／ｈｏｍｅ／ｇｓｓ４／ｄａｔ／ｇｓｓｙｏｓ０１．ｄａｔ　」の内容の１行目を抽出して出力する。すなわち、制御部１２は「２００２０４」を出力する。
【００５７】
シェルスクリプトの６行目５０６に示される「｜　」記号は、制御部１２が直前のコマンドに従って出力した出力結果を、制御部１２が直後に実行するコマンドの入力内容とするＢシェルのコマンドである。従って、制御部１２が「｜　」記号の直前の「ｈｅａｄ」コマンドに従って出力した出力結果「２００２０４」が、制御部１２が「｜　」記号の直後に実行する「ｃｕｔ　」コマンドの入力内容となる。
【００５８】
シェルスクリプトの６行目５０６に示される「ｃｕｔ　」は、入力内容のうち、指定される範囲のみを抽出するＢシェルのコマンドである。また、「−ｃ１−６　」は、入力内容の何番目の文字から何番目の文字までを抽出するかを指定する「ｃｕｔ　」コマンドのオプション指定である。本例では、制御部１２は、入力内容の１文字目から６文字目までを抽出する。従って、制御部１２は、入力内容「２００２０４」のうちの１文字目から６文字目までを抽出し、「２００２０４」を出力する。すなわち、年情報「２００２」は４文字、月情報「０４」は２文字で記載されるため、制御部１２は、「ｃｕｔ　」コマンドを実行することによって、６文字を超える文字を不要な情報として除外する。
【００５９】
そして、制御部１２は、抽出したファイルの記載内容「２００２０４」を、シェルスクリプトの６行目の前段に示される「”｀」記号から後段に示される「｀”」記号までの文字列に代えて挿入する。
【００６０】
そして、制御部１２は、生成した全てのＳＱＬ文をＳＱＬスクリプト１１２として出力する（ステップＳ４０４）。シェルスクリプトの１行目５０１に示される「ｅｃｈｏ」コマンドは、後に記載される「”　」記号から「”　」記号までの間の内容を文字列として出力するＢシェルのコマンドである。従って、制御部１２は、シェルスクリプトの１行目５０１の「ｅｃｈｏ」コマンドの後に最初に認識される「”　」記号と、シェルスクリプトの７行目に認識される「”　」記号との間の内容を文字列として出力する。この文字列は、ＳＱＬ文である。
【００６１】
シェルスクリプトの７行目５０７の後段に示される「＞　」記号は、情報の出力先を指定するＢシェルのコマンドである。指定されるファイル名は、ステップＳ４０２によって情報が置換され、「／ｈｏｍｅ／ｃｌｉｅｎｔ１／ｓｑｌ／ｇｓｓｄｙｍ＿ｅ３３．ｓｑｌ」と特定される。制御部１２は、「ｅｃｈｏ」コマンドに従って出力される文字列をスクリプトファイル「／ｈｏｍｅ／ｃｌｉｅｎｔ１／ｓｑｌ／ｇｓｓｄｙｍ＿ｅ３３．ｓｑｌ」に書き込む。このようにして、制御部１２は、記憶装置１１上にＳＱＬスクリプト１１２を生成する。
【００６２】
図６は、ＳＱＬ生成シェルスクリプト１１１を実行することによって生成されるＳＱＬスクリプト１１２の例を示す説明図である。図６に示すように、ＳＱＬスクリプト１１２は、ＳＱＬ言語で記載されるスクリプトである。制御部１２は、ＲＤＢ３０にアクセスするために、ＳＱＬ実行用ソフトウェア１１３に従って、ＳＱＬスクリプト１１２の実行を開始する。よって、制御部１２は、ＳＱＬスクリプト１１２の手順に従って、以下の処理を実行する。
【００６３】
図７は、ＳＱＬスクリプト１１２の処理経過の一例を示す流れ図である。制御部１２は、ＲＤＢ３０にアクセスするための条件の初期設定を行う（ステップＳ７０１）。ステップＳ７０１に示す処理は、図６に示すＳＱＬスクリプトにおける１行目６０１と、２行目６０２と、３行目６０３とに該当する。
【００６４】
制御部１２は、１行目６０１のＳＱＬ文「ＳＥＴ　ＥＣＨＯ　ＯＦＦ；」に該当する処理を実行する。「ＳＥＴ　ＥＣＨＯ　ＯＦＦ；」は、ＳＱＬ言語のコマンドが実行される際に、通常出力されるメッセージを、出力しないように設定するＳＱＬ言語のコマンドである。
【００６５】
次に、制御部１２は、２行目６０２のＳＱＬ文「ＳＥＴ　ＳＴＡＴＳ　ＯＦＦ；」に該当する処理を実行する。「ＳＥＴ　ＳＴＡＴＳ　ＯＦＦ；」は、システムの起動の際などに、通常出力されるサーバ１０やＵＮＩＸなどに関するシステム情報などを、出力しないように設定するＳＱＬ言語のコマンドである。
【００６６】
さらに、制御部１２は、３行目６０３のＳＱＬ文「ＳＥＴ　ＲＯＷ　ＤＡＴＡ　ＯＮＬＹ；」に該当する処理を実行する。「ＳＥＴ　ＲＯＷ　ＤＡＴＡ　ＯＮＬＹ；」は、スクリプトで指定される情報源から抽出する情報のみを出力ファイル１１６などに出力するよう設定するＳＱＬ言語のコマンドである。本実施の形態では、制御部１２がＳＱＬスクリプト１１２に従って抽出する情報のみが出力される。
【００６７】
制御部１２は、以下の処理において出力される結果を書き込む出力先ファイルを指定する（ステップＳ７０２）。ステップＳ７０２に示す処理は、図６に示すＳＱＬスクリプト１１２における４行目６０４に該当する。
【００６８】
制御部１２は、４行目６０４のＳＱＬ文「ＳＥＴ　ＯＵＴＰＵＴ　／ｈｏｍｅ／ｇｓｓ４／ｄａｔ／ｇａｄｙｍ３３．ｄａｔ；」に該当する処理を実行する。「ＳＥＴ　ＯＵＴＰＵＴ」は、処理の実行結果を出力する出力先ファイルを生成し指定するＳＱＬ言語のコマンドであり、制御部１２は、ディレクトリ「／ｈｏｍｅ／ｇｓｓ４／ｄａｔ」内に出力ファイル１１６「ｇａｄｙｍ３３．ｄａｔ」を出力先ファイルとして生成する。
【００６９】
制御部１２は、以下の処理においてエラーが発生する場合に、エラーログを出力する出力先ファイルを指定する（ステップＳ７０３）。ステップＳ７０３に示す処理は、図６に示すＳＱＬスクリプトにおける５行目６０５に該当する。
【００７０】
制御部１２は、５行目６０５のＳＱＬ文「ＳＥＴ　ＥＲＲＯＲ　ＯＵＴＰＵＴ　／ｈｏｍｅ／ｇｓｓ４／ｌｏｇ／ｇａｄｙｍ３３．ｌｏｇ；」に該当する処理を実行する。「ＳＥＴ　ＥＲＲＯＲ　ＯＵＴＰＵＴ」は、処理の過程において発生するエラーログを出力する出力先ファイルを生成し指定するＳＱＬ言語のコマンドであり、制御部１２は、ディレクトリ「／ｈｏｍｅ／ｇｓｓ４／ｌｏｇ」内にログファイル１１７「ｇａｄｙｍ３３．ｌｏｇ」を出力先ファイルとして生成する。
【００７１】
制御部１２は、ＲＤＢ３０の情報を抽出する（ステップＳ７０４）。ステップＳ７０４に示す処理は、図６に示すＳＱＬスクリプトにおける６行目６０６と７行目６０７とに該当する。
【００７２】
制御部１２は、６行目６０６のＳＱＬ文「ＤＹＭ＿Ｍａｋｅ（２００２０４，３３）；」に該当する処理を実行する。「ＤＹＭ＿Ｍａｋｅ」は、年月情報「２００２０４」と区分コード「３３」とを引数にＲＤＢ３０の情報を抽出するためのＳＱＬ言語のマクロである。すなわち、制御部１２は、マクロ「ＤＹＭ＿Ｍａｋｅ」に従って、ＲＤＢ３０の情報を抽出する。この場合、制御部１２は、引数「２００２０４」と引数「３３」とに基づいて、抽出すべきＲＤＢ３０の情報を特定する。
【００７３】
ＲＤＢ３０の情報を抽出するためのマクロは、年月情報を引数とするのではなく、日付情報や時間情報などその他の可変情報を引数とするものであってもよい。また、ＲＤＢ３０に含まれる情報が少なく、１つの引数を指定するのみで抽出する情報を特定できる場合は、マクロは、年月情報「２００２０４」または区分コード「３３」のいづれか１つを引数とするものであってもよい。さらに、ＲＤＢ３０に含まれる情報が多い場合には、マクロは、３つ以上の引数に基づいて、ＲＤＢ３０の情報を抽出するものであってもよい。
【００７４】
本例では、制御部１２は、マクロに従ってＲＤＢ３０の情報の抽出を行ったが、制御部１２は、マクロに従ってＲＤＢ３０の情報の更新または削除などを行ってもよい。また、ＳＱＬスクリプト１１２にマクロは含まれず、制御部１２は、ＳＱＬ言語のコマンドのみに従って、ＲＤＢ３０の情報の抽出や更新や削除などを行ってもよい。
【００７５】
制御部１２は、７行目６０７のＳＱＬ文「ｓｅｌｅｃｔ　＊　ｆｒｏｍ　ｇｓｓｎｍａｅ＿ｔｂｌ；」に該当する処理を実行する。「ｓｅｌｅｃｔ」は、データベースのテーブルの情報を抽出するＳＱＬ言語のコマンドであり、「＊　」は、抽出する範囲をテーブルの全ての情報に指定する「ｓｅｌｅｃｔ」コマンドのオプション指定である。また、「ｇｓｓｎｍａｅ＿ｔｂｌ　」は、指定されるＲＤＢ３０のテーブルの名前である。従って、制御部１２は、ＲＤＢ３０のテーブル「ｇｓｓｎｍａｅ＿ｔｂｌ　」に含まれる全ての情報を抽出する。そして、制御部１２は、指定されるＲＤＢ３０のテーブルから抽出される情報を、ステップＳ７０２で生成される出力ファイル１１６に書き込む。
【００７６】
ここで、制御部１２は、指定されるＲＤＢ３０のテーブルの全ての情報を抽出するのではなく、「ｓｅｌｅｃｔ」コマンドのオプション指定に従って、テーブルの一部の情報のみを抽出するようにしてもよい。また、制御部１２は、「ｓｅｌｅｃｔ」コマンド以外のＳＱＬ言語のコマンドに従って、ＲＤＢ３０へのアクセス処理を行ってもよい。例えば、制御部１２は、ＳＱＬ言語のコマンドに従って、ＲＤＢ３０に記憶される情報の更新または削除などを行ってもよい。
【００７７】
なお、ステップＳ７０４またはステップＳ７０５の処理において、エラーが発生する場合には、制御部１２は、出力されるエラーログを、ステップＳ７０３で生成されるログファイル１１７に書き込む。
【００７８】
このようにすることにより、データベースの種類に依存せずに、データベースへのアクセス処理時にＳＱＬ文などの引数や条件などを動的に変更できるようにすることができる。
【００７９】
また、エディタなどの汎用の編集用ソフトウェアを用いて、引数などの変更を簡易に行えるようにすることができる。さらに、随時変更される情報を引数とする場合に、オペレータが指定しなくても適切な引数などが設定されるようにすることができる。
【００８０】
本実施の形態では、ＵＮＩＸをＯＳとして動作するコンピュータ端末を含むデータベース管理システムを例として説明を行ったが、データベースへのアクセス処理の手段として、ＳＱＬ言語で記載されるプログラムを用い、かつ、汎用のシェルおよびエディタなどの編集用ソフトウェアを使用できるものであれば、ＵＮＩＸ以外をＯＳとして動作するコンピュータ端末を含むデータベース管理システムであってもよい。
【００８１】
サーバ１０の記憶装置１１は、複数の情報定義ファイル１１０を含んでいてもよい。記憶装置１１が複数の情報定義ファイル１１０を含む場合には、ＲＤＢ３０にアクセスする際に、オペレータは、サーバ１０の入力部１３またはクライアント２０の入力部２３から情報定義ファイル１１０を指定する引数を入力する。制御部１２は、入力された引数に従って、情報定義ファイル１１０を選択する。そして、その情報定義ファイル１１０から情報を抽出し、ＳＱＬ生成シェルスクリプト１１１に従って、処理を実行する。
【００８２】
また、ＳＱＬ生成シェルスクリプト１１１は、上位の総括的なプログラムの一部に含まれるものであって、ＳＱＬスクリプト１１２を生成するための情報の一部が、情報定義ファイル１１１でなく、当該総括的なプログラムの定義部などに定義されていてもよい。
【００８３】
ＳＱＬ生成シェルスクリプト１１１は、複数の外部情報ファイル１１６から外部情報を抽出してもよい。また、ＳＱＬスクリプト１１２は、複数のデータベースまたはデータベースの複数のテーブルから情報を抽出するものであってもよい。
【００８４】
また、ＳＱＬ生成シェルスクリプト１１１は、情報の抽出や更新や削除など、コンピュータに実行させる処理ごとに複数存在してもよい。この場合において、オペレータは、サーバ１０の入力部１３からの入力またはクライアント２０の入力部２３からの入力によって、制御部１２に実行させたい処理の種類に応じたＳＱＬ生成シェルスクリプト１１１を指定する。そして、制御部１２は、指定されたＳＱＬ生成シェルスクリプト１１１に従って、ＲＤＢ３０の情報へのアクセス処理の種類に応じたＳＱＬスクリプト１１２を生成する。
【００８５】
クライアント２０ごとにファイル名や記憶場所であるディレクトリ名などが情報定義ファイル１１０に指定されるものであってもよい。この場合、出力ファイル１１６とログファイル１１７とは、クライアント２０ごとに別のファイルが用意される。また、ＳＱＬ生成シェルスクリプト１１１が生成するＳＱＬスクリプト１１２は、クライアント２０ごとに別のファイルを用いてもよいし、別のディレクトリに記憶されてもよい。
【００８６】
なお、本実施の形態では、データベースアクセス用スクリプト作成システムおよびデータベースアクセス用スクリプト作成方法を例として説明を行ったが、スクリプトが生成されると同時に実行されるものでなく、スクリプトを生成する処理と、生成されるスクリプトを実行する処理とを別々に実行できるシステムであれば、本発明は、他のシステムにも適用が可能である。
【００８７】
【発明の効果】
以上のように、本発明のデータベースアクセス用スクリプト作成システムによれば、オペレータが指定する変数の内容である変数情報を記憶する情報定義部と、情報定義部が記憶する変数情報を更新する情報更新手段と、情報定義部が記憶する変数情報を抽出し、抽出した変数情報に基づいて、データベースへのアクセス手順を示すスクリプトを生成するスクリプト生成手段とを備えた構成にしたので、データベースの種類に依存せずに、データベースへのアクセス処理時にＳＱＬ文などの引数や条件などを動的に変更できるようにすることができる。また、引数などの変更を簡易に行えるようにすることができる。
【００８８】
また、本発明のデータベースアクセス用スクリプト作成方法によれば、オペレータが指定する変数の内容である変数情報と、自動的に内容が更新される外部情報とを抽出し、抽出した変数情報と外部情報とに基づいて、データベースへのアクセス手順を示すスクリプトを生成するようにしたので、データベースの種類に依存せずに、データベースへのアクセス処理時にＳＱＬ文などの引数や条件などを動的に変更できるようにすることができる。また、引数などの変更を簡易に行えるようにすることができる。さらに、随時変更される情報を引数とする場合に、オペレータが指定しなくても適切な引数などが設定されるようにすることができる。
【００８９】
さらに、本発明のスクリプト生成プログラムによれば、コンピュータに、オペレータが指定する変数の内容である変数情報と、自動的に内容が更新される外部情報とを抽出する処理、および抽出した変数情報と外部情報とに基づいて、データベースへのアクセス手順を示すスクリプトを生成する処理とを実行させるので、データベースの種類に依存せずに、データベースへのアクセス処理時にＳＱＬ文などの引数や条件などを動的に変更できるようにするスクリプトを生成することができる。また、随時変更される情報を引数とする場合に、オペレータが指定しなくても適切な引数などが設定されるようにするスクリプトを生成することができる。
【図面の簡単な説明】
【図１】データベース管理システムの構成の一例を示すブロック図である。
【図２】情報定義部の内容の一例を示す説明図である。
【図３】外部情報部の内容の一例を示す説明図である。
【図４】本発明によるスクリプト生成プログラムの処理経過の一例を示す流れ図である。
【図５】本発明によるスクリプト生成プログラムの内容の一例を示す説明図である。
【図６】スクリプト生成プログラムによって生成されるスクリプトの内容の一例を示す説明図である。
【図７】スクリプト生成プログラムによって生成されるスクリプトの処理経過の一例を示す流れ図である。
【符号の説明】
１０　サーバ
１１　記憶装置
１１０　情報定義ファイル
１１１　ＳＱＬ生成シェルスクリプト
１１２　ＳＱＬスクリプト
１１３　ＳＱＬ実行用ソフトウェア
１１４　外部情報管理プログラム
１１５　外部情報ファイル
１１６　情報ファイル
１１７　ログファイル
１１８　編集用ソフトウェア
１２　制御部
１３　入力部
２０　クライアント
３０　リレーショナル・データベース
４０　ＬＡＮ
【図１】
2004054714.tif 000003
【図２】
2004054714.tif 000004
【図３】
2004054714.tif 000005
【図４】
2004054714.tif 000006
【図５】
2004054714.tif 000007
【図６】
2004054714.tif 000008
【図７】
2004054714.tif 000009