(57)【要約】【課題】  販売、購買などの業務システム構築は、情報を格納するデータベースとそれを操作する複数のプログラム（以下、個別プログラム）を作成することにより行われている。プログラムには、データベースを操作するための言語（以下、ＳＱＬ）を記述している。そのためプログラムに対する熟練が必要になったり、プログラム記述の自由度から個人差異を生じたり、製造工数は勿論のこと、その運用・保守作業に大きな負担があった。【解決手段】  実行順序に関連付けされたＳＱＬ及びＳＱＬ自体の文字列置換情報、実行結果出力ファイルの出力方式情報、実行履歴情報出力方式情報、ＳＱＬ順次実行部に与える起動情報を用意することにより個別プログラムの記述を不要とする。【選択図】図１
2011034543.tif 000002
【特許請求の範囲】
【請求項１】
複数のＳＱＬの実行順を記したＳＱＬ順時実行情報を順次実行部に与えることにより個別プログラム作成を不要とすることを達成するプログラム及びデータベース利用システム。
【請求項２】
順次実行部に対して外部から与えるＳＱＬ順次実行情報で、複数記述するＳＱＬを一意に特定するための番号とＳＱＬの処理内容をログに出力するためのメッセージとＳＱＬ自体とその実行結果をファイル出力するため指示情報、ＣＳＶ形式か固定長かの区別、ファイル名、区切り文字およびデータベースからのエラー情報を判断して次に実行するＳＱＬへの分岐情報と無条件に次に実行するＳＱＬとデータベースへのレコード更新、追加処理の確定命令（コミット）の実行有無の設定情報全体とこれらの情報を与えることを特徴とする請求項１記載のプログラム及びデータベース利用システム。
【請求項３】
ＳＱＬ順次実行情報で与えるＳＱＬ自体を本プログラム起動時に、その内容の一部、または全部を起動情報で指定した文字で置換できるという手段を特徴とする請求項１または請求項２記載のプログラム及びデータベース利用システム。
【請求項４】
ＳＱＬ順次実行情報で与える複数のＳＱＬの内容について、前で実行するＳＱＬの実行結果により、それ以降で実行するＳＱＬの内容の一部または全部を置換できるという手段を特徴とする請求項１、請求項２または請求項３記載のプログラム及びデータベース利用システム。
【請求項５】
ＳＱＬ順次実行情報で与える複数のＳＱＬの実行結果の判断により、それ以降で実行するＳＱＬの実行順を変更できるという手段を特徴とする請求項１、請求項２または請求項３記載のプログラム及びデータベース利用システム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、システム開発及び開発後の運用・保守を効率的に行うためのプログラム及びデータベース利用システムに関する。
【背景技術】
【０００２】  これまで、データベース（以下、ＤＢ）を用いたシステム構築をする場合には、そのＤＢの開発元が用意するデータベースを操作するための言語（以下、ＳＱＬ）を実行するためのツールで行う方法、任意のプログラム言語で書かれたプログラム内にＳＱＬを記述して行う方法があった。前者は、ＳＱＬを順番に並べることは可能であるが、その結果による条件分岐や、以降に実行するＳＱＬの文字列変更などができない。後者は、プログラム内で条件分岐、以降に実行するＳＱＬの文字列変更は自由にできるが個別にプログラムを記述しなければならないなどの不便さがあった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】  特開２００４−３１０２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】  従来の業務システム開発では多くのプログラムの作成が行われてきた。しかし、プログラムは、多くの前提知識が必要であるため教育コストの問題、プログラム記述箇所が多いので記述工数とテスト工数の問題、自由度があるので個人差の問題、技術進歩による言語仕様の変化への対応問題などがあった。本発明によりプログラム作成に代わってＳＱＬだけを用いて、より簡単に業務システムを構築することを目的とする。
【課題を解決するための手段】
【０００５】  本発明は、図１の通り文書やデータの意味や構造を記述するためのマークアップ言語の一つであるＸＭＬ（以下、ＸＭＬ）により記述されたＳＱＬの順次実行情報をＳＱＬ順次実行部で読み取り、ＸＭＬのタグ別に解析し実行することにより、プログラミング作業を不要にする点に特徴がある。
タグの種類は、図２の通りである。ＳＱＬの実行順序をＸＭＬで記述することで、実行順序制御において新たな項目が必要になっても容易に追加可能となる。
図２では、１、２、３としてそれぞれのブロック（以下、ＳＱＬブロック）を示している。各ＳＱＬブロックは、ＳＱＬ番号により名前付けされており、図２ではそれぞれ、１、２、３となっている。
このＳＱＬブロックがＳＱＬを実行する一単位で、それが幾つか並んでいる。条件分岐、エラー分岐により分岐されない限りは、各ブロックはＳＱＬ番号の小さい順に実行する。
図２の各ＳＱＬブロックにおいてＳＱＬは、ＳＱＬを記述する部分である。ＳＱＬの種類としては、ＳＥＬＥＣＴ、ＵＰＤＡＴＥ、ＩＮＳＥＲＴ、ＤＥＬＥＴＥなどＤＢ管理システム（以下、ＤＢＭＳ）が持つすべての命令が記述できる。
図２において結果出力指定は、ＳＱＬでＳＥＬＥＣＴを実行した場合、ＳＥＬＥＣＴ文で記述した列名とそれに対応する値を表のように取得できる。結果出力指定は、その表をＣＳＶ形式、固定長形式でファイル出力できる。その他の指定項目として、出力ファイル名と先頭行に列名の出力有無を指定できる。
図２において条件分岐は、ＳＱＬでＳＥＬＥＣＴ実行された結果から条件分岐を行う。例えば、「ＳＥＬＥＣＴ  ａ，ｂ，ｃ  ＦＲＯＭ  ａｔａｂｌｅ」を実行したとすると列名ａの値は、［変数識別文字列］ａでａの値を参照可能とする。例として［変数識別文字列］を＄＄とすると＄＄ａで参照可能となる。同様にｂ，ｃは＄＄ｂ，＄＄ｃ（以下、置換変数）で参照可能となる。条件分岐の判断式は＄＄ａ＞０、＄＄ａ＝０のように記述する。分岐先は、条件分岐の判断とＳＱＬ番号で示す分岐先の組み合わせで指定する。条件分岐は複数記述できる。
図２においてＳＱＬ番号＝１のＳＱＬブロックの条件分岐により、ＳＱＬ番号＝３に分岐している例を５に示している。
図２においてエラー分岐は、ＳＱＬの実行結果によりＤＢＭＳが戻すエラーコードにより、条件分岐と同様に分岐することを可能とする。
ＤＢＭＳのエラーコードは文字列で返されるので、そのエラー文字列と分岐先を記述しておくことで、エラー分岐する。エラー文字列と分岐先の組み合わせは複数記述できる。
ＳＱＬ番号＝１のＳＱＬブロックのエラー分岐によりＳＱＬ番号＝９９の終了に分岐している例を４に示している。
条件分岐とエラー分岐の判断式とＳＱＬ番号で示す分岐先は複数記述できるとした。この組み合わせを条件文とすると例えば、条件文１、条件文２、条件文３と複数記述した場合、条件分岐の判断式は、条件文１のそれ、条件文２のそれ、条件文３のそれの順に評価され最初に判断結果が真になった時点で、その評価が終了し、それ以降の条件文の評価は行わない。
データベース及びテーブルへのレコード更新、追加処理時のデータ確定命令であるコミットの実行指定をＳＱＬブロック末尾に、その必要がある場合に記述できる。
図１の起動情報は、ＳＱＬ順次実行部が開始される際に与える情報である。まず、ＳＱＬ順次実行情報とログファイル名および情報出力ファイル名とそれらのファイルの出力位置を与える。またＤＢへの接続情報としてＤＢの存在場所、ログイン情報なども与える。
図３において起動情報は、置換変数に対する置換文字列を与える。置換文字列の与え方には、一番目として置換変数＝置換文字と指定する方式でカンマ「，」や空白で区切って複数個指定できる。
二番目としてデータをカンマ「，」や改行で区切って並べたテキスト形式のファイル形式（以下、ＣＳＶ）で与える方式で、ＣＳＶ先頭一行目のタイトル行の列名が置換変数となり、行の値が置換文字列となる。行が複数存在した場合は、図２で示した各ＳＱＬブロック１、２、３を分岐条件に従いＣＳＶの行数分６を複数回実行する。
三番目としてＳＱＬのＳＥＬＥＣＴで与える方式で、「ＳＥＬＥＣＴ  ａ，ｂ，ｃ  ＦＲＯＭ  ａｔａｂｌｅ」の形式で与える。ＳＥＬＥＣＴに続く、ａ，ｂ，ｃが置換変数となり、検索結果が置換文字列となる。検索結果が複数レコードになる場合は、ＳＱＬブロック１、２、３を分岐条件に従い行数分７を複数回実行する。
次に、置換変数が、ＳＱＬ順次実行情報内でどう変換されるかの様子の詳細を図４に示す。起動情報の置換変数＝置換文字列が変換される様子を８で示す。またこの変換は、何回も利用できる例を９に示している。
前の１０で示すＳＱＬの実行結果によって後続の１２で示すＳＱＬの内容を変更する様子を１３に示している。まず、１０のＳＱＬのＳＥＬＥＣＴに書かれた列名、ここでは、ａ，ｂ，ｃは変数識別文字列の例である「＄＄」を付加すれば、実行時に１１と１３でそれぞれ条件分岐とＳＱＬが変更される様子を示している。変数識別文字列は任意の文字列を割り当てることができる。
【発明の効果】
【０００６】  本発明により、業務システム開発に係る設計後の製造工程が非常に効率的に行える。通常、この製造工程ではプログラミング言語を用いて行うが、本方式ではＳＱＬの記述とその実行順序の定義だけで行える。これらの作業はプログラミング作業に比べ、記述量が極めて少なくなる。また、プログラミングに必要なＤＢ接続定義、オブジェクト指向技術などが不要になり、誤りの発生を減らすこともできる。このように製造工程を効率化できるので、システム開発コストの抑制、開発期間の短縮はもちろんのこと、減じた工数をより重要な設計工程に振り向けることが可能になる。また、これらの効果は、新人教育負担の軽減にも繋がる。
本発明を実際の原価計算システム構築に適用したところ、画面を伴わない処理すべてに本発明を適用することができた。適用プログラム本数は５００本程度になったが、従来方式に比べＩ／２から１／３の工数となっている。また、その後のテスト工程において発見された問題や仕様変更も順次実行情報の修正で済むので、直ぐに修正し対応できた。
心配された速度について、本原価計算システムの処理時間が大型コンピュータで１時間３０分要していたものが３０分以下に短縮された。
【図面の簡単な説明】
【０００７】
【図１】  ＳＱＬ順次実行部が動作するための前提情報とＤＢの関連を示す全体構成図である。
【図２】  ＳＱＬ順次実行情報に記述する内容と分岐動作を示す図である。
【図３】  ＳＱＬ順次実行情報に記述しているＳＱＬ及び条件分岐が置換文字列により置換される動作を示す図である。
【図４】  ＳＱＬ順次実行部が動作する際、外部情報からの置換文字列の与え方を示す図である。
【発明を実施するための形態】
【０００８】  本発明を実施するための形態を実施例に基づいて説明する。
【実施例１】
【０００９】  図１にて説明する。業務システム構築をする際には、まずＤＢに対してテーブル設計を行い、その内容をＤＢに設定する。
次に、複数のテーブル間の変換方式を設計する。また必要によっては、テーブルからＣＳＶ、固定長で情報出力ファイルの出力を設計する。
次に、図２の通り条件分岐、エラー分岐によりＳＱＬの実行順序を設計する。また、図３、図４の機能を用いて置換文字列の設計を行う。
これら、一連の設計作業終了後、図１のＳＱＬ順次実行情報にその設計内容をＸＭＬ形式で記述する。
ここまでの一連の作業で、業務システムが必要とする一単位の機能ができ上がる。この一単位の機能がプログラム一本に相当する。これらの機能を複数組み合わせることで、業務システムが完成する。
【符号の説明】
【００１０】  １      ＳＱＬブロック１
２      ＳＱＬブロック２
３      ＳＱＬブロック３
４      エラー分岐
５      条件分岐
６      ＣＳＶ表複数行
７      ＤＢ表複数行
８      起動情報置換１
９      起動情報置換２
１０      前ＳＱＬ
１１      ＳＥＬＥＣＴ文字列変換１
１２      後ＳＱＬ
１３      ＳＥＬＥＣＴ文字列変換２
【図１】
2011034543.tif 000003
【図２】
2011034543.tif 000004
【図３】
2011034543.tif 000005
【図４】
2011034543.tif 000006