JP2006164090A - データベース操作プログラムの自動生成装置 - Google Patents
データベース操作プログラムの自動生成装置 Download PDFInfo
- Publication number
- JP2006164090A JP2006164090A JP2004357526A JP2004357526A JP2006164090A JP 2006164090 A JP2006164090 A JP 2006164090A JP 2004357526 A JP2004357526 A JP 2004357526A JP 2004357526 A JP2004357526 A JP 2004357526A JP 2006164090 A JP2006164090 A JP 2006164090A
- Authority
- JP
- Japan
- Prior art keywords
- database
- definition
- column
- program
- operation program
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】
リレーショナルデータベースのテーブル定義を元にして製作される製品間の不整合をなくし、ソフトウェア開発過程における人手の介入を減らして、高品質のソフトウェアを短期間で開発する。
【解決手段】
定義支援処理部31によるテーブル定義を情報源として、製品であるテーブル生成分4,データベース操作プログラム5,メンテナンスツール6を、プログラム生成処理部35によって自動的に生成する。テーブル定義の精度を高めるために、ガイダンスによりテーブル定義を行い、SQL文で使用する検索条件を可変にして、プログラム数を必要数に低減する。
【選択図】図1
リレーショナルデータベースのテーブル定義を元にして製作される製品間の不整合をなくし、ソフトウェア開発過程における人手の介入を減らして、高品質のソフトウェアを短期間で開発する。
【解決手段】
定義支援処理部31によるテーブル定義を情報源として、製品であるテーブル生成分4,データベース操作プログラム5,メンテナンスツール6を、プログラム生成処理部35によって自動的に生成する。テーブル定義の精度を高めるために、ガイダンスによりテーブル定義を行い、SQL文で使用する検索条件を可変にして、プログラム数を必要数に低減する。
【選択図】図1
Description
本発明は、リレーショナルデータベースを有するシステムにおいて、SQL文を使用してデータを操作するアプリケーションプログラムや、データベース管理者によるメンテナンス操作が可能であるプログラムを自動生成するデータベース操作プログラムの自動生成装置に関する。
〔特許文献1〕には、文生成部により検索条件,関係演算子,取り出し順番の入力に対応して、データベースのテーブル名と当該テーブルの項目の対に一意の番号を付して予め登録したデータベース情報に、予め登録した一意の番号の間のジョイン関係を抽出してジョインのストリーム毎に設けたジョインストリームを生成しておき、データベース情報およびジョインストリームを参照してデータベースを検索する文を生成する文生成方法が記載されている。
又、リレーショナルデータベースを有するシステムは、問い合わせ言語(SQL)を書かれたSQL文を使用してデータを操作するアプリケーションプログラムや、データベース管理者によるメンテナンス作業によって、運用されている。これらのアプリケーションプログラムやメンテナンスツールは、個別の製品として開発されているものであった。
リレーショナルデータベースのテーブル定義、テーブル定義を元にしたテーブル作成文,データベース操作プログラムや、メンテナンスツールは、複数の開発者によって、異なる時期に製作されるため、不整合が発生し易いという問題がある。
リレーショナルデータベースへの検索条件は、システムの稼動状況によって時々刻々と変化することがあり、その異なる検索条件ごとのSQL文を持つプログラムにすると、その数が膨大となり、製作や管理、その後の保守に膨大な時間と労力を要してしまうという問題がある。
本発明の目的は、リレーショナルデータベースのテーブル定義を元にして製作される製品間の不整合をなくして高品質なソストウェアを作成するデータベース操作プログラムの自動生成装置を提供することにある。
本発明の他の目的は、ソフトウェア開発過程における人手の介入を減らし、ソフトウェアを短期間で開発できるデータベース操作プログラムの自動生成装置を提供することにある。
上記目的を達成するために、本発明のデータベース操作プログラムの自動生成装置は、テーブル定義を元に製作されるテーブル作成文,データベース操作プログラム,メンテナンスツールを、テーブル定義により自動的に生成することによって、データベースのテーブル定義を元にして製作される製品間の整合性を保証するものである。
また、リレーショナルデータベースのテーブル定義の際、カラム辞書データベースを使用して、カラム辞書データベースに登録されている該当候補のガイダンスによりテーブル定義を行い、登録済みのカラム情報と比較しながら、テーブル定義作業を実施することにより、リレーショナルデータベースを複数のテーブルで構成したとき、それらテーブル定義間の整合性を保証し、その精度を高めるものである。
また、データベース操作プログラム内のSQL文で使用する検索条件を、高級言語で作成するアプリケーションプログラムからのパラメータ指定によって可変にしてSQL文のプログラム数を必要数に低減するものである。
本発明によれば、テーブル定義書によりそれに係わるソフトウェアが自動的に生成されるので、整合性の取れた、高品質で保守性の良いプログラムが得られる。
本発明の一実施例を図1から図16により説明する。図1は、本発明の一実施例であるデータベース操作プログラム自動生成システムの構成図である。
入力装置1は、ネットワーク2を介してデータベース操作プログラム自動生成装置3の定義支援処理部31に接続されている。入力装置1では、テーブル定義が入力される。データベース操作プログラム自動生成装置3は、画面を用いて対話的にテーブル定義を入力するための定義支援処理部31,テーブル定義を構成するカラム情報,カラムごとの詳細情報を保持するカラム辞書データベース32,カラム辞書データベース32に保持されているテーブルを構成するカラム情報を解析する定義解析処理部33,定義解析処理部33による定義解析結果を格納するメモリ装置34,メモリ装置34に格納されている定義解析結果を元にプログラムを生成するプログラム生成処理部35で構成されている。
プログラム生成処理部35によって生成されたテーブル作成文4,データベース操作プログラム5,メンテナンスツール6がそれぞれ保存される。システム7は、リレーショナルデータベース71を有するシステム及びアプリケーションプログラム72を有し、テーブル作成分4及びメンテナンスツール6はリレーショナルデータベース71に接続され、データベース操作プログラム5はアプリケーションプログラム72に接続されている。アプリケーションプログラム72によりリレーショナルデータベース71を操作する。
生成されるプログラムは、個別のファイルとして出力され、ハードディスク装置やCD−ROM等の外部記録媒体に記録される。
このように構成されたデータベース操作プログラム自動生成システムでは、定義支援処理部31が提供する画面を使って、入力装置1からテーブル定義を入力する。テーブル定義の入力が完了すると、定義解析処理部33によってテーブル定義が解析され、そのテーブル定義の解析結果を受けて、プログラム生成処理部35が、4〜6個のプログラムを自動的に生成する。
生成されたプログラムは、テーブル作成分4,データベース操作プログラム5,メンテナンスツール6に分けて保存される。テーブル作成文4は、リレーショナルデータベース71にテーブルを作成し、データベース操作プログラム5は、アプリケーションプログラム72に組み込まれ、メンテナンスツール6は、システム運用の中でデータベース管理者によって使用される。
なお、システム7の有するリレーショナルデータベース71,アプリケーションプログラム72は、生成されるプログラムが動作する場所である。
図2は、定義支援処理部31によって作成されるテーブル定義画面を示す図である。
論理テーブル名称81には定義するテーブルの日本語名称を、物理テーブル名称82には定義するテーブルをプログラムが解釈できる名称を入力する。「No」83,論理カラム名称84,物理カラム名称85,データ型86,サイズ87,配列88,主キー89,「NOTNULL」90,インデックス91は、テーブルを構成するカラムの詳細情報を示し、必要数分を縦方向に入力する。
「No」83は定義数に応じて定義支援処理部31が自動付与する番号,論理カラム名称84は定義するカラムの日本語名称,物理カラム名称85は定義するカラムのプログラムが解釈できる名称である。データ型86,サイズ87,配列88は、カラムのデータ上の性質や大きさを規定する情報である。主キー89はテーブル内に登録されるレコードを一意に識別するために使用する情報で、主キーとなる場合に“○”を指定する。
「NOTNULL」90はデータの存在を必須とする条件で、対象となる場合に“○”を指定する。ここで、「NULL」はデータが無いことを表す値で、「NOTNULL」は「NULL」でないことを意味する。インデックス91は検索を高速化するために使用するデータベース特有の項目で、インデックスとなる場合にその識別名称を入力する。
「NOTNULL」90はデータの存在を必須とする条件で、対象となる場合に“○”を指定する。ここで、「NULL」はデータが無いことを表す値で、「NOTNULL」は「NULL」でないことを意味する。インデックス91は検索を高速化するために使用するデータベース特有の項目で、インデックスとなる場合にその識別名称を入力する。
ここで、論理カラム名称84を入力する時に、入力された文字列で始まる論理カラム名称がカラム辞書データベース32に登録されている場合、登録されている論理カラム名称を入力候補として画面にリスト表示91を行い、リスト表示91の中から選択してそのカラムに付随する情報と共に入力欄に値が入力できるようになっている。リスト表示91の時、リストに表示されているカラムの付随情報が参照できるようになっている。
このようにしているので、リレーショナルデータベースに構築するテーブルを定義する際、類似項目の複数登録や名称間違いを除去することができる。
図3は、テーブル定義画面において、論理カラム名称の候補リストを表示するための処理フローを示す。
ステップ31aで、論理カラム名称が画面に入力されたとき、入力された文字で始まる論理カラム名称をカラム辞書データベース32から抽出し、ステップ31bで、抽出した結果を画面に候補リストとして表示する。ステップ31cで、候補リストに論理カラム名称がなく、画面に引き続き次の文字が入力された場合はステップ31aに戻り、ステップ31cまでを繰返す。ステップ31cで、カラムが決定されたときは、ステップ31dで、新規カラムかどうかを判定する。入力された論理カラム名称が、カラム辞書データベース32に未登録で、新規カラムと判定したとき、カラム辞書データベース32にカラム情報を新規登録する。
ステップ31fで、当該カラムが定義中のテーブルで使用されていることをカラム辞書データベース32に登録する。ステップ31gで、テーブル定義完了か否かの判定を行い、入力装置1から引き続きカラムの定義が入力された場合は、ステップ31aに戻る。ステップ31gで、テーブルの定義が完了したときは、ステップ31hで、画面に表示されている情報をテーブル情報としてカラム辞書データベース32に登録する。
図4は、論理テーブル名称が社員テーブルである例を示す図で、テーブル定義が完了した状態を示している。
図5は、テーブル定義が完了したときの定義解析処理部33の処理フローを示す。
ステップ33aで、カラム辞書データベース32から、テーブルの中から主キーの指定があるカラムを抽出する。テーブル内で、主キーは必ず1つ以上指定が必要であるので、ステップ33bで主キーが存在しないと判定した場合は、ステップ33cで、画面にエラーがある旨のガイダンスを行う。主キーが存在する場合は、ステップ33dでカラム属性を抽出する。カラム属性とは、各カラム情報の「NOTNULL」90とインデックス
91の指定をいう。主キーのチェック、カラム属性の抽出が完了したとき、ステップ33eで、定義解析結果をメモリ装置34に格納する。
91の指定をいう。主キーのチェック、カラム属性の抽出が完了したとき、ステップ33eで、定義解析結果をメモリ装置34に格納する。
図6は、定義解析処理部33の処理が完了したときのプログラム生成処理部35の処理フローを示す。
プログラム生成処理部35では、カラム辞書データベース32とメモリ装置34に格納されている定義解析結果を元に、ステップ35aでテーブル作成文4を、ステップ35bでデータベース操作プログラム5を、ステップ35cでメンテナンスツール8のそれぞれのプログラムを生成する。
図7は、テーブル作成文4を生成する処理フローを示す。テーブル作成文4は、カラム定義部,主キー定義部,インデックス定義部からなり、カラム辞書データベース32とメモリ装置34に格納されている定義解析結果を元に、ステップ36aでカラム定義ファイルを、ステップ36bで主キー定義ファイルを、ステップ36cでインデックス定義ファイルをそれぞれ出力する。
図8は、テーブル作成文4の生成例を示す図で、生成されたカラム定義部,主キー定義部,インデックス定義部の一例を示している。
図9は、データベース操作プログラム5を生成する処理フローを示す。
データベース操作には、検索,追加,更新,削除があり、図9に示す処理フローを実行して、それぞれの機能を実現するプログラムを、別ファイルとして作成する。
ステップ37aで、宣言(SELECT,INSERT,UPDATE,DELETE)と物理カラム名称を出力する。ステップ37bで、編集中の操作が追加か更新を判定し、追加か更新と判定したときは、ステップ37cで格納する値を出力する。格納する値は、システム運用中に動的に変化するものであり、格納する値は、当該プログラムを呼出す高級言語で作成するアプリケーションプログラムからパラメータで指定される。このため、格納する値を、パラメータで指定される変数名称が出力される。ステップ37dで、編集中の操作が検索か更新か削除と判定したとき、ステップ37eでWHERE句を出力する。
このように、高級言語からの呼出しの際、高級言語からパラメータによって検索条件を引き渡すことによって、動的に検索条件を変更することができる。
図10は、操作ごとに生成されるデータベース操作プログラムの一例を示す図で、検索,追加,更新,削除の例を示している。
図11は、WHERE句を生成する処理フローを示す。ステップ38aで、カラム情報が残っているか否かを判定し、全てのカラム情報について処理が完了するまで、ステップ38bとステップ38cの処理を繰返す。
検索条件であるWHERE句は、当該プログラムを呼出すC言語などの高級言語で作成するアプリケーションプログラムからの要求に応じてカラムごとにSQL文として出力する。このため、出力の要否をアプリケーションプログラムからパラメータ指定があるかどうかによって判定する。ステップ38bで、パラメータに値が入っているかどうかを判定する条件ロジックを出力する。ステップ38cで、パラメータに値が入っていた場合に検索条件を編集するロジックを出力する。
図12に、WHERE句となるSQL文を編集するプログラムの生成例を示す。
図13は、メンテナンスツールとして動作する画面の初期状態を示す。操作方法は、論理テーブル名称81に対象とする論理テーブル名称を入力し、レコード抽出ボタン95を押下する。これによって、メンテナンスツールプログラムは、カラム辞書データベース
32にアクセスし、表形式部分97の1行目の見出し行に論理カラム名称を出力する。プログラム生成処理部35で生成したデータベース検索プログラム5がリレーショナルデータベース71にアクセスして、当該テーブルに格納されているレコード情報を表形式部分97の2行目以降に、1レコードを1行として、レコード抽出ボタン95により表示された例である図14に示すように表示する。
32にアクセスし、表形式部分97の1行目の見出し行に論理カラム名称を出力する。プログラム生成処理部35で生成したデータベース検索プログラム5がリレーショナルデータベース71にアクセスして、当該テーブルに格納されているレコード情報を表形式部分97の2行目以降に、1レコードを1行として、レコード抽出ボタン95により表示された例である図14に示すように表示する。
図15は、リレーショナルデータベース71のテーブルの内容の追加,更新,削除する操作方法を示す図である。
画面に対象となるテーブルの情報が表示されている状態で、追加する場合には、表形式部分97の空いている行に新しいレコードを入力し、操作欄98に追加と入力する。更新する場合には、変更するカラムの値を直接編集し、操作欄98に更新と入力する。削除する場合には、操作欄98に削除と入力する。
それぞれ入力された状態で、レコード更新ボタン96を押下する。これによって、メンテナンスツール6は、操作欄98に入力されている操作に対応するプログラム生成処理部35が生成したデータベース操作プログラム5を呼出し、リレーショナルデータベース
71の当該テーブルに対して、画面に指定された操作を行う。この操作により、操作された結果を示す図16にを示すように表示される。
71の当該テーブルに対して、画面に指定された操作を行う。この操作により、操作された結果を示す図16にを示すように表示される。
このように、定義したリレーショナルデータベース中のテーブルを運用中にメンテナンスする際、テーブルへのレコード操作(挿入,更新,削除)を操作方法を選択することにより、SQL文を意識することなくメンテナンスできる。また、データベース定義を実施することによって、リレーショナルデータベースを扱うシステムに必要となるソフトウェア、またはそのメンテナンスツールを入手できる。
本実施例によれば、リレーショナルデータベースのテーブル定義をカラム辞書データベースを元に作成することによって、リレーショナルデータベース内に複数構築するテーブルの定義間での整合性を保証できる。
また、テーブル定義書を情報源として、それに係わるソフトウェアが自動的に生成されるので、整合性の取れた、高品質で保守性の高いプログラムが得られる。
SQL文の検索条件を可変にすることによって、管理するプログラム数を低減することができる。
また、ソフトウェアが自動的に生成されるので、プログラミングの知識が不足していても、データベース関連のソフトウェア開発が可能となり、ソフトウェアの生産性の向上に大きな効果が得られる。
1…入力装置、3…データベース操作プログラム自動生成装置、4…テーブル作成文、5…データベース操作プログラム、6…メンテナンスツール、31…定義支援処理部、
32…カラム辞書データベース、33…定義解析処理部、34…メモリ装置、35…プログラム生成処理部。
32…カラム辞書データベース、33…定義解析処理部、34…メモリ装置、35…プログラム生成処理部。
Claims (6)
- 画面を用いて対話的にテーブル定義を入力するための定義支援処理部と、前記テーブル定義を構成するカラム情報を保持するカラム辞書データベースと、該カラム辞書データベースに記録されているカラム情報を解析する定義解析処理部と、該定義解析処理部による定義解析結果を格納するメモリ装置と、該メモリ装置に格納されている定義解析結果を元にプログラムを生成するプログラム生成処理部を備えたデータベース操作プログラムの自動生成装置。
- 前記画面に前記カラム辞書データベースに登録されているカラム情報をガイダンス表示してテーブル定義の入力を行う請求項1に記載のデータベース操作プログラムの自動生成装置。
- 前記プログラム生成処理部により、テーブル作成文,データベース操作プログラム,メンテナンスツールの各プログラムが生成されるものであって、前記テーブル作成文とメンテナンスツールによりリレーショナルデータベースが構築される請求項1又は2に記載のデータベース操作プログラムの自動生成装置。
- 前記データベース操作プログラムを呼出す高級言語で作成するアプリケーションプログラムからの要求に応じたカラム毎のSQL文を出力する請求項3に記載のデータベース操作プログラムの自動生成装置。
- 前記データベース操作プログラムを呼出す高級言語で作成するアプリケーションプログラムからのパラメータ指定により動的に検索条件を変更する請求項3に記載のデータベース操作プログラムの自動生成装置。
- 前記画面に表示されるテーブル定義の操作欄に追加,更新,削除のいずれかを入力し、追加の場合は新しいレコードを、変更の場合は変更するカラムの値を編集し、レコード更新を行うことによりテーブル定義の追加,更新,削除を行う請求項1に記載のデータベース操作プログラムの自動生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004357526A JP2006164090A (ja) | 2004-12-10 | 2004-12-10 | データベース操作プログラムの自動生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004357526A JP2006164090A (ja) | 2004-12-10 | 2004-12-10 | データベース操作プログラムの自動生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006164090A true JP2006164090A (ja) | 2006-06-22 |
Family
ID=36666017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004357526A Pending JP2006164090A (ja) | 2004-12-10 | 2004-12-10 | データベース操作プログラムの自動生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006164090A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034500A (zh) * | 2011-12-15 | 2013-04-10 | 微软公司 | 基于用户输入的智能推荐模式 |
CN104395845A (zh) * | 2012-06-22 | 2015-03-04 | 欧姆龙株式会社 | 控制装置 |
-
2004
- 2004-12-10 JP JP2004357526A patent/JP2006164090A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034500A (zh) * | 2011-12-15 | 2013-04-10 | 微软公司 | 基于用户输入的智能推荐模式 |
WO2013090067A1 (en) * | 2011-12-15 | 2013-06-20 | Microsoft Corporation | Intelligently recommending schemas based on user input |
US9038014B2 (en) | 2011-12-15 | 2015-05-19 | Microsoft Technology Licensing, Llc | Intelligently recommending schemas based on user input |
EP2791820A4 (en) * | 2011-12-15 | 2016-03-09 | Microsoft Technology Licensing Llc | SMART RECOMMENDATION OF SCHEMES BASED ON USER INPUT |
EP3168753A1 (en) * | 2011-12-15 | 2017-05-17 | Microsoft Technology Licensing, LLC | Intelligently recommending schemas based on user input |
CN104395845A (zh) * | 2012-06-22 | 2015-03-04 | 欧姆龙株式会社 | 控制装置 |
EP2866108A4 (en) * | 2012-06-22 | 2015-11-04 | Omron Tateisi Electronics Co | CONTROL DEVICE |
US10061809B2 (en) | 2012-06-22 | 2018-08-28 | Omron Corporation | Control device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7783678B2 (en) | Method for automating software manufacturing process based on user interface form design, and computer readable medium recording computer executable instruction for performing the same | |
US9779133B2 (en) | Contextual debugging of SQL queries in database-accessing applications | |
RU2406115C2 (ru) | Доступ к сложным данным | |
JP2005284987A (ja) | 文書構造編集プログラム、文書構造編集方法、文書構造編集装置、文書構造編集プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US6698010B1 (en) | System, method and computer program product for automatic generation of data processing program | |
JP2008217534A (ja) | アプリケーション画面作成システム、方法及びアプリケーションプログラム | |
JPH11265368A (ja) | 作業手順管理システム | |
JP2008134840A (ja) | 情報処理装置およびその方法 | |
JP2006164090A (ja) | データベース操作プログラムの自動生成装置 | |
JP2007334412A (ja) | 検索プログラムおよび検索装置 | |
JP2001265760A (ja) | 文書履歴管理装置および文書履歴管理方法 | |
KR101765324B1 (ko) | Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법 | |
JP2008077285A (ja) | Sql管理システムとsql管理方法およびプログラム | |
JP4777740B2 (ja) | テスト支援システム | |
JP2002109448A (ja) | 帳票処理装置、帳票処理方法、記憶媒体 | |
JP2000235561A (ja) | シミュレーションモデル編集装置及びプログラムを記録した機械読み取り可能な記録媒体 | |
JP3824468B2 (ja) | データ管理システム | |
JPS6284337A (ja) | 仕様書情報解析方式 | |
JPH1153391A (ja) | データベースアクセス方法 | |
JP2003186670A (ja) | データベースアクセスコンポーネントの自動生成装置,自動生成方法及び自動生成プログラム | |
JP4805491B2 (ja) | 辞書管理プログラム及びコンピュータシステム | |
JPH06348498A (ja) | 部品化ソフトウェアの実行制御方法および実行装置 | |
JP4180099B2 (ja) | シーケンス解析プログラムを記録した記録媒体、シーケンス解析装置およびシーケンス解析方法 | |
JP2000322295A (ja) | データベースストアドサブプログラム用プログラミング支援方法ならびに装置 | |
JPH06301668A (ja) | シミュレーションデータ構築方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060515 |