(57)【要約】【課題】日本語パーツとともに、それに対応するＳＱＬを自動生成し、更新、削除を行う場合、発行されたＳＱＬ文の整合性は保障されてないため、整合性のチェックをすること。【解決手段】ＧＵＩ操作により視覚的にかつ日本語でもとのＳＱＬ文を作成して発行し、前記もとのＳＱＬ文の変換後のＳＱＬ文の整合性をチェックした後に、利用者が直感的に理解できるように日本語化する。【選択図】図１
2008152369.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩ操作により視覚的にかつ日本語でもとのＳＱＬ文を作成して発行し、前記もとのＳＱＬ文の変換後のＳＱＬ文の整合性をチェックした後に、利用者が直感的に理解できるように日本語化することを特徴とするＧＵＩ操作によるＳＱＬ文自動生成装置。
【請求項２】
実際のテーブル一覧を表示しておき、対象テーブル、対象行および対象列などを選択し、該選択したものをＳＱＬ文変換前の日本語のパーツに組み込むことを特徴とする請求項１記載のＧＵＩ操作によるＳＱＬ文自動生成装置。
【請求項３】
外部送られる変数の名前と型およびその他の条件をInput値設定手段に設定し、日本語ＳＱＬを作成する際に、テーブル名や行・列名、数値の代わりに選択対象や条件として選択、指定することを特徴とする請求項１または２記載のＧＵＩ操作によるＳＱＬ文自動生成装置。
【請求項４】
ＧＵＩ操作により視覚的にかつ日本語でもとのＳＱＬ文を作成して発行するステップと、
前記もとのＳＱＬ文の変換後のＳＱＬ文の整合性をチェックするステップと、
そのチェック後に利用者が直感的に理解できるように日本語化するステップと
を有することを特徴とするＧＵＩ操作によるＳＱＬ文自動生成方法。
【請求項５】
実際のテーブル一覧を表示しておき、対象テーブル、対象行および対象列などを選択し、該選択したものをＳＱＬ文変換前の日本語のパーツに組み込むことを特徴とする請求項４記載のＧＵＩ操作によるＳＱＬ文自動生成方法。
【請求項６】
外部送られる変数の名前と型およびその他の条件をInput値設定手段に設定し、日本語ＳＱＬを作成する際に、テーブル名や行・列名、数値の代わりに選択対象や条件として選択、指定することを特徴とする請求項４または５記載のＧＵＩ操作によるＳＱＬ文自動生成方法。
【請求項７】
コンピュータシステムに請求項１から３のいずれか１項に記載の機能を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＱＬを理解していない人でも、日本語でＳＱＬ文を扱うことができる技術に関する。
【背景技術】
【０００２】
従来、リレーショナルデータベースマネージメントシステム（RDBMS）において、データの操作や定義を行うための問い合わせ言語であるＳＱＬは、仕様が定まっており、ＳＱＬをあまり理解していない人にとっては、正しいＳＱＬ文を作成することが困難であった。
【０００３】
また、実際に作成したＳＱＬ文が、期待するクエリであるか判断することは困難であった。
【０００４】
従来のＳＱＬ文自動生成装置の一例が、特許文献１に記載されている。しかし、従来の技術には以下のような問題点があった。
【０００５】
まず、ＤＢに登録されたテーブルが直感的にわかりにくいことである。その理由は、対象のＤＢのテーブルの構造が視覚的にわからず、ＧＵＩで操作できないからである。
【０００６】
また、発行する際、もしくは発行後のＳＱＬについて直感的に理解しにくいことである。その理由は、発行されるＳＱＬ文が、実際のＳＱＬ文のまま表示されるためである。
【０００７】
ここで、カラム名にユーザが使い慣れた業務名を付加し、カラム名の代わりにそれらの業務名を表示する。カラムとその業務名とは１対Ｎで持つことができ、ユーザが最も直感的に分かりやすい名称を選択できるようにし、また、個々の業務名にはカテゴリ情報を付加し、目的に合ったカテゴリを選択することで、それに属する業務名を取得できるようにし、簡単な計算式にも業務名を付加し、リポジトリに登録することで、使用頻度の高い計算式の入力の手間を省き、さらに、データベースのリレーションは、データディクショナリのリレーション情報を自動解析することで取得するようにし、このように、ユーザには物理構成情報を参照したり入力することなく、問合せＳＱＬを生成することで、データベースの物理名に対する業務名やそれを分類するカテゴリを与えることで、データベースの物理構成やＳＱＬ文法を理解していなくても、問合せＳＱＬを作成できるようにする技術がある（例えば、特許文献２参照）。
【特許文献１】特開２００６−２３５７７０号公報
【特許文献２】特開２００１−１４２８８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の技術では、以下の問題点があった。まず、発行できるＳＱＬ文がＳｅｌｅｃｔ文のみであることである。また、発行したＳＱＬ文の整合性のチェックを行っていないことである。その理由は、発行できるＳＱＬ文がＳｅｌｅｃｔ文のみであることから、整合性のチェックする必要がないためである。
【０００９】
本発明は、以上説明した問題点を解決するためになされたものである。その目的は、更新、削除などの日本語パーツとともに、それに対応するＳＱＬを自動生成し、更新、削除を行う場合、発行されたＳＱＬ文の整合性は保障されてないため、整合性のチェックをすることである。
【課題を解決するための手段】
【００１０】
本発明は、ＧＵＩ操作により視覚的にかつ日本語でもとのＳＱＬ文を作成して発行し、前記もとのＳＱＬ文の変換後のＳＱＬ文の整合性をチェックした後に、利用者が直感的に理解できるように日本語化するＧＵＩ操作によるＳＱＬ文自動生成装置を提供する。
【００１１】
また、本発明は、ＧＵＩ操作により視覚的にかつ日本語でもとのＳＱＬ文を作成して発行するステップと、
前記もとのＳＱＬ文の変換後のＳＱＬ文の整合性をチェックするステップと、
そのチェック後に利用者が直感的に理解できるように日本語化するステップと
を有するＧＵＩ操作によるＳＱＬ文自動生成方法を提供する。
【発明の効果】
【００１２】
本発明によれば、日本語パーツとともに、それに対応するＳＱＬを自動生成し、更新、削除を行う場合、発行されたＳＱＬ文の整合性は保障されてないため、整合性のチェックをすることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、各図において共通する部分には、同一の符号が付されている。
【００１４】
図１を参照すると、本実施の形態におけるＧＵＩ操作によるＳＱＬ文自動生成装置は、日本語ＳＱＬ選択機能１、登録日本語パーツ選択機能２、対象のＤＢ３、テーブル一覧表示機能４、選択部日本語変換機能５、ＳＱＬ文発行機能６、整合性チェッカー７、日本語解説文作成機能８から構成されている。
【００１５】
日本語ＳＱＬ選択機能１は、「検索」、「削除」といった想定されるキーワードを登録した登録日本語パーツ選択機能２や、対象となるＤＢ３の全テーブルを表示させるテーブル一覧表示機能４から選択したテーブルや行を日本語に変換した選択部日本語変換機能５から、発行したいＳＱＬ文のもとになる要素を選択できる。ここで、対象のＤＢ２は複数あってもよい。
【００１６】
ＳＱＬ文発行機能６は、日本語ＳＱＬ選択機能で作成された意図するＳＱＬ文の日本語にしたものを実際のＳＱＬ文に変換する。
【００１７】
整合性チェッカー７は、ＳＱＬ文発行機能６で発行されたＳＱＬ文と対象のＤＢ３を比較して、実行可能であるか、整合性があるかを判断する。
【００１８】
日本語解説文作成機能８は、ＳＱＬ文発行機能６が発行したＳＱＬ文が整合性チェッカー７で正しいと判断された場合、再度そのＳＱＬ文を日本語化する。
【００１９】
次に、図１及び図２のフローチャートを参照して本実施の形態の動作について詳細に説明する。
【００２０】
まず、ＳＱＬ文を発行する相手となるＤＢ（図１の３）を設定する（図２のステップＡ１）。
【００２１】
次に、テーブル一覧表示機能（図１の４）でＤＢからテーブルの一覧を表示する（図２のステップＡ２）。
【００２２】
次に、発行したいＳＱＬ文の目的を日本語ＳＱＬ選択機能（図１の１）に設定する（図２のステップＡ３）。このとき、登録日本語パーツ選択機能（図１の２）から、想定される目的（「検索」、「行追加」、「表削除」、「権限付与」といったもの）を選択する。
【００２３】
次に、目的に応じて、ＳＱＬ実行をどのテーブルを対象に、どの行・列を対象に行うのか、その対象を定める（図２のステップ４、ステップ５）。この際、どのテーブル、どの行・列という情報は、テーブル一覧表示機能（図１の４）により視覚的にわかりやすいようにＧＵＩで表示されており、そこから選択、ドラッグ＆ドロップすることにより、日本語ＳＱＬ選択機能（図１の１）の日本語ＳＱＬ部に含めることが可能である。
【００２４】
ここで、選択されたテーブル、行、列が日本語ＳＱＬ部に含まれる際に、選択部日本語変換機能（図１の５）により日本語ＳＱＬ選択機能が識別可能な語句に変換される。次に、発行したいＳＱＬ文に制約（主キー、外部キー、ＮＯＴ  ＮＵＬＬ、一意、英字のみなど）や条件（検索時、ある行の値が１００以上のものなど）がある場合（図２のステップＡ６）には、制約や条件を登録日本語パーツ選択機能（図１の２）や選択部日本語変換機能（図１の５）を用いて、日本語ＳＱＬ選択機能（図１の１）に設定する（図２のステップＡ７）。
【００２５】
次に、日本語ＳＱＬ選択機能（図１の１）で作成された日本語ＳＱＬをＳＱＬ文発行機能（図１の６）により、ＳＱＬ文に変換される（図２のステップＡ８）。このとき、発行されたＳＱＬの整合性があるものか、実現可能なものかを整合性チェッカー（図１の７）が対象ＤＢ（図１の３）を参照しながらチェックする（図２ステップＡ９、ステップＡ１０）。
【００２６】
最後に、整合性のあるＳＱＬを再度、日本語解説文作成機能（図１の８）により解説文として日本語化することで、利用者に発行されたＳＱＬ文が直感的に意図していたものかどうかを判断できる（図２のステップＡ１１、ステップＡ１２）。
【００２７】
次に、具体例を用いて本実施の形態の動作を説明する。
【００２８】
対象とするＤＢをＤＢ１とし、ＤＢ１に登録されているテーブル、EmployeeMテーブルとSalaryMテーブルから「人事部に属する人で、給料の値が300000円を下回る人の名前と給料を表示する。」というＳＱＬを発行する。
【００２９】
まず、ＤＢ１を対象ＤＢとして登録する（ステップＡ１）。
【００３０】
次に、ＤＢ１に登録されているEmployeeMテーブル、SalaryMテーブル、CustomerMテーブルを表示させる（ステップＡ２）。
【００３１】
次に、表示されているテーブルから、対象とするテーブルであるEmployeeMテーブル、SalaryMテーブルを選択し（ステップＡ３）、その選んだテーブルに対して目的「検索」を日本語パーツ選択機能から選択する（ステップＡ４）。
【００３２】
次に、表示させたいEmployeeMテーブルのName列とSalaryMテーブルのSalary列を選択する（ステップＡ５）。次に、検索条件として、EmployeeMテーブルのDepartment列が人事部と同値であるものかつ、SalaryMテーブルのSalary列の値が300000を下回っているものと選択する（ステップＡ７）。
【００３３】
次に、今まで日本語ＳＱＬ選択機能を用いて選択してきた日本語ＳＱＬを、ＳＱＬ文発行機能を用いてＳＱＬ文「SELECT e.Name,s.Salary FROM EmployeeM e,SalaryM s WHERE e.Id=s.Id AND e.Department=”人事” AND s.Salary<300000;」を作成する（ステップＡ８）。
【００３４】
このとき、日本語ＳＱＬの選択時に誤って、Department列が300000円を下回るものと選択してしまうと、整合性チェッカーがエラーを表示する（ステップＡ９）。
【００３５】
最後に、発行されたＳＱＬ文を日本語解説文作成機能により、「EmployeeMテーブル（従業員テーブル）とSalaryMテーブル（給料テーブル）から、Department行(部門)の値が”人事”かつ Salary行の値が300000を下回るものを検索し、表示する」と日本語化する（ステップＡ１１）。
【００３６】
上記の本実施の形態によれば、ＤＢアクセスするために仕様に沿ってＳＱＬの記述をしなければならないが、その仕様を知らなくてもＳＱＬを発行することができる。その理由は、利用者が直感的にわかりやすい日本語のパーツを組み立てることで、それを自動的にＳＱＬに変換するためである。
【００３７】
また、発行されたＳＱＬの整合性をチェックし、そのＳＱＬを利用者が理解しやすい日本語解説文に変換できる。その理由は、ＤＢの設計条件と比較して、整合性をチェックし、そのＳＱＬを再度日本語に変換するためである。
【００３８】
なお、発行されたＳＱＬ文をプログラムコードに組み込めるように工夫できる。テキストボックスからの入力値が条件にあった場合は表を作成したり、行を追加したりなど「入力値」を意識しているからである。
【００３９】
次に、本発明の第２の実施の形態の構成について図面を参照して詳細に説明する。
【００４０】
図３を参照すると、本実施の形態の構成は、図１の第１の実施の形態の構成に加えて、Input値設定機能９を有する点で異なる。Input値設定機能９は、実際にシステム開発する際、フォームなどから送られてくる変数をＳＱＬに組み込みたい場合、Input値として設定を行う。
【００４１】
次に、本実施の形態の動作について図面を参照して詳細に説明する。
【００４２】
図４を参照すると、ステップＡ１−ステップＡ３およびステップＡ８−Ａ１２で示される本実施の形態における登録日本語パーツ選択機能２、対象ＤＢ３、テーブル一覧表示機能４、選択部日本語変換機能５、ＳＱＬ文発行機能７および日本語解説文作成機能８は、図１で示されたものの動作と同一のため、説明は省略する。
【００４３】
図１に示された第１の実施の形態では、作成できるＳＱＬ文はテーブル名や行、列、もしくは具体的な数値しか設定できず、外部フォームから送信される変数をＳＱＬ文に組み込むことができなかった。本実施の形態では、外部送られる変数の名前と型およびその他の条件をInput値設定機能９に設定することで（ステップＢ１）、日本語ＳＱＬ選択機能１で日本語ＳＱＬを作成する際に、テーブル名や行・列名、数値の代わりに選択対象や条件として選択、指定することができる。
【００４４】
次に、具体例を用いて説明する。図１のシステムでは、「EmployeeMテーブルから、Name列（名前列）、Age（年齢列）、TelNumber(電話番号列)を検索し、sortFlag（プルダウン選択）で指定した行で、昇順にソートを行い表示する。」というＳＱＬ文は、外部から送信される予定の変数Input1を日本語ＳＱＬで選択できないため、意図するＳＱＬ文を発行することはできなかった。
【００４５】
ＳＱＬ文の目的を設定した（ステップＡ３）後、外部から送信される変数がある場合、Input値設定機能９で、その変数名と型、その変数のその他の条件を設定することができる（ステップＢ１）。
【００４６】
本実施の形態では、変数名「sortFlag」、型「String」、条件「Name」もしくは、「Age」、「TelNumber」のいずれかのみと設定する。
【００４７】
その後、対象テーブル、行、列を選択した後、制約や条件を指定する場合（ステップＡ７）、ステップＢ１で設定した変数を日本語ＳＱＬ文内に選択できる。
【００４８】
本実施の形態の場合、変数「sortFlag」で検索結果をソートすると選択する。すると、ＳＱＬ文発行機能６によって発行されるＳＱＬ文は、「SELECT Name,Age,TelNumber from EmployeeM order by sortFlag;」と発行される。
【００４９】
さらに、整合性チェックをする際（ステップＡ９）、発行されたＳＱＬ文内に含まれる外部から送信された変数が妥当であるのか、ＤＢの設定と比較しながらチェックする。
【００５０】
本実施の形態では、変数「sortFlag」に入りうるのが、EmployeeMテーブル名である「Name」、「Age」、「TelNumber」であり、型も「String」型であるのでエラー表示されないが、EmployeeMテーブルの列名にない項目の場合、もしくは異なる型が入りうる場合、そのエラーについて「変数sortFlagにはEmployeeMテーブルの列名のみが入力されるように設定してください。」のように表示される。
【００５１】
最終的にはステップＡ１１で、日本語解説文作成機能８により、「EmployeeMテーブルから、Name列（名前列）、Age（年齢列）、TelNumber(電話番号列)を検索し、sortFlag（「Name」、「Age」、もしくは「TelNumber」）で指定した行で、昇順にソートを行い表示する。」と解説文が作成される。
【００５２】
従って、従来、発行するＳＱＬ文に外部から送信される変数を組み込めないことが問題であったが、本実施の形態では外部から送信される変数を設定する機能があり、設定された変数は日本語ＳＱＬ文内で選択できる。
【００５３】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、ＳＱＬ文自動生成装置の機能を実現するためのプログラムを装置に読込ませて実行することにより装置の機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスクなどを介して、または伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。
【００５４】
本発明によれば、システム開発する上で、ＤＢにアクセスするための妥当性のあるＳＱＬ文を発行する自動生成装置や、実際のプログラムコードに組み込むためのＳＱＬ文自動生成装置といった用途に適用できる。
【図面の簡単な説明】
【００５５】
【図１】本発明の第１の実施の形態のＳＱＬ文自動生成装置の構成を示す図である。
【図２】本発明の第１の実施の形態の処理動作を示すフローチャートである。
【図３】本発明の第２の実施の形態のＳＱＬ文自動生成装置の構成を示す図である。
【図４】本発明の第２の実施の形態の処理動作を示すフローチャートである。
【符号の説明】
【００５６】
１    日本語ＳＱＬ選択機能
２    登録日本語パーツ選択機能
３    対象のＤＢ
４    テーブル一覧表示機能
５    選択部日本語変換機能
６    ＳＱＬ文発行機能
７    整合性チェッカー
８    日本語解説文作成機能
【図１】
2008152369.tif 000003
【図２】
2008152369.tif 000004
【図３】
2008152369.tif 000005
【図４】
2008152369.tif 000006