JP2001142885A - 業務名指定による問合せsql生成装置 - Google Patents

業務名指定による問合せsql生成装置

Info

Publication number
JP2001142885A
JP2001142885A JP32237299A JP32237299A JP2001142885A JP 2001142885 A JP2001142885 A JP 2001142885A JP 32237299 A JP32237299 A JP 32237299A JP 32237299 A JP32237299 A JP 32237299A JP 2001142885 A JP2001142885 A JP 2001142885A
Authority
JP
Japan
Prior art keywords
information
unit
category
name
relation
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
Application number
JP32237299A
Other languages
English (en)
Inventor
Akiko Takahashi
明子 高橋
Yukio Hayashi
由紀雄 林
Etsushi Oku
悦史 奥
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 Ltd
Hitachi Systems and Services Ltd
Original Assignee
Hitachi Ltd
Hitachi Systems and Services 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 Ltd, Hitachi Systems and Services Ltd filed Critical Hitachi Ltd
Priority to JP32237299A priority Critical patent/JP2001142885A/ja
Publication of JP2001142885A publication Critical patent/JP2001142885A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】データベースの物理名に対する業務名やそれを
分類するカテゴリを与えることで、データベースの物理
構成やSQL文法を理解していなくても、問合せSQLを作成
できるようにする。 【解決手段】カラム名にユーザが使い慣れた業務名を付
加し、カラム名の代わりにそれらの業務名を表示する。
カラムとその業務名とは1対Nで持つことができ、ユー
ザが最も直感的に分かりやすい名称を選択できるように
した。また、個々の業務名にはカテゴリ情報を付加し、
目的に合ったカテゴリを選択することで、それに属する
業務名を取得できるようにした。簡単な計算式にも業務
名を付加し、リポジトリに登録することで、使用頻度の
高い計算式の入力の手間を省いた。さらに、データベー
スのリレーションは、データディクショナリのリレーシ
ョン情報を自動解析することで取得するようにした。こ
のように、ユーザには物理構成情報を参照したり入力す
ることなく、問合せSQLを生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リレーショナルデ
ータベースにアクセスしてデータ検索などの指示を行う
問合せSQLを自動生成するSQL生成装置に関する。
【0002】
【従来の技術】SQLは、リレーショナルデータベースに
対してデータ検索などの各種の指示を行うための問合せ
言語の1つである。ここでは、データベースに対して各
種の指示を行うためにSQLにしたがって記述された文を
問合せSQLと呼ぶものとする。従来、問合せSQLは、デー
タベースの物理構成とSQL文法を理解した上で、ユーザ
が手作業またはSQL作成ツールにより作成していた。
【0003】
【発明が解決しようとする課題】ところが、問合せSQL
を作成するにあたり、手作業の場合はデータベースの物
理構成とSQL文法を、ツールを使用する場合でもデータ
ベースの物理構成を、理解する必要があった。そこで、
特開平6-223118号では、データベースの物理構成情報に
対し論理定義情報を1対1で付加し、それを表示するこ
とで、ユーザに分かりやすいデータベースの検索処理を
可能としている。
【0004】しかし、論理定義情報を与えたとしても、
どのテーブルにどの情報(カラム)が格納されているか
は、テーブルを1つ1つ調べなければならない。また、
検索するカラムが複数のテーブルにまたがる場合、さら
にテーブル間のリレーション情報を入力する必要があ
る。
【0005】本発明の目的は、データベースの物理構成
とSQL文法を理解していなくても、業務上のカテゴリと
業務名を選択することで、問合せSQLを作成することが
できる業務名指定による問合せSQL生成装置を提供する
ことにある。また、問合せSQLを作成する際に必要とな
るテーブル間のリレーション情報を自動的に解析して取
得できるようにすることを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、データベースに発行する問合せSQLを自
動生成するSQL生成装置であって、データベースのカラ
ムに、カテゴリ情報および複数の業務名を付加する手段
と、付加したカテゴリ情報および業務名を用いてデータ
ベースに対する検索項目を指定する手段と、指定された
検索項目から問合せSQLを自動生成する手段とを備えた
ことを特徴とする。
【0007】前記業務名により表現された計算式を入力
し、該計算式に別の業務名を付けて登録する手段をさら
に備えてもよい。また、前記検索項目として指定された
テーブル間のリレーションを前記データベースのデータ
ディクショナリから抽出した情報に基づいて取得し、取
得したリレーションを前記問合せSQLに反映させる手段
をさらに備えてもよい。
【0008】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態を説明する。
【0009】図1は、本発明の実施の形態に係る業務名
指定による問合せSQL生成装置の概略構成を示す。本装
置は、ディスプレイ110、キーボード120、CPU
130、メモリ140、及び磁気ディスク150,16
0を備えている。ディスプレイ110、キーボード12
0、メモリ140、及び磁気ディスク150,160
は、CPU130よりバスを介してアクセスされる。磁
気ディスク150には、SQLを発行する対象であるユー
ザデータベースが格納される。磁気ディスク160に
は、解析用リポジトリが格納される。メモリ140に
は、各種プログラム142〜144がロードされる。ま
た、メモリ140には、ユーザが検索項目を入力するた
めの入力画面141を用意する。
【0010】各入力画面の概要を説明する。本装置によ
り、ユーザは、データベースの物理構成とSQL文法を理
解していなくても問合せSQLを作成することができる。
そのための画面として、業務名/計算式登録画面14
6、検索項目選択画面147、条件式設定画面148、
及びソート設定画面149を用意してある。
【0011】業務名/計算式登録画面146は、新規に
カテゴリ/業務名/計算式の登録を行うための画面であ
る。ユーザは、この画面146により、データベースの
カラム名にユーザが分かり易い任意の名前(業務名)を
付けることができる。これにより、カラム名にユーザが
使い慣れた業務名を付加することができ、検索項目の選
択などの際にカラム名の代わりにそれらの業務名を表示
することができる。また、1つのカラムに対して複数の
業務名を付けることができ、ユーザが最も直感的に分か
りやすい名称で項目の選択ができる。また、この画面1
46により、個々の業務名にカテゴリ情報を付けること
ができる。カテゴリを付けることにより、検索項目選択
画面147や条件式設定画面148などでカテゴリごと
に表示される選択項目の業務名から項目を選択できるの
で、例えば項目数が非常に多い場合でもカテゴリ別にグ
ループ化された中から項目を選択でき、ユーザにとって
分かり易い。さらに、画面146により任意の業務名を
用いた計算式を定義し、その計算式自身に業務名を付け
て登録することができる。これにより、使用頻度の高い
計算式の入力の手間を省くことができる。以上のように
画面146で入力された情報は、カテゴリ業務名情報1
63として保存される。
【0012】検索項目選択画面147は、データベース
から検索するデータ項目を選択する画面である。条件式
設定画面148は、検索の際の条件式を設定する画面で
ある。ソート設定画面149は、検索結果を表示する際
のソートの仕方を設定する画面である。これらの画面1
47〜149では、カテゴリ業務名情報163に登録さ
れているカテゴリおよび業務名を検索表示し、それを参
照しながら検索項目および条件等の入力を行うことがで
きる。
【0013】検索項目および条件等の入力を確定した時
点で、データ解析プログラム143にて検索項目、条件
等およびリレーションの解析を行い、SQL組立プログラ
ム144にてSQLの生成を行う。その結果として、問合
せSQLのファイルを出力する。データベースのリレーシ
ョンは、データディクショナリのリレーション情報を解
析することで自動的に取得するようにした。これによ
り、ユーザがリレーション情報を入力する必要がなくな
った。なお、上記の各画面については図11〜図15で
さらに詳しく説明する。
【0014】次に、本実施の形態の装置で、問合せSQL
を生成するために使用する情報である解析用リポジトリ
について説明する。本実施の形態の装置で用意するリポ
ジトリは三種類に分類される。
【0015】1つ目は、データベースのテーブル/カラ
ム/リレーションのメタデータリポジトリである。これ
らは、データベースのデータディクショナリ151から
必要な情報のみ抽出して設定する。図1のテーブルカラ
ム情報161やリレーション情報162がこれに含まれ
る。
【0016】2つ目は、テーブル/カラム情報とカテゴ
リ/業務名を対応づけるためのリポジトリである。これ
は、カテゴリ/業務名とそれに対応するテーブル/カラ
ムの情報を登録しておく。また、計算式を登録する列を
設ける。図1のカテゴリ業務名情報163がこれに含ま
れる。
【0017】3つ目は、リレーション解析用のリポジト
リである。これは、本発明によるリレーション解析方法
に必要となるもので、リレーション情報162をもとに
作成する。図1のユニットテーブル情報164、および
グループユニット情報165がこれに含まれる。
【0018】なお、これらの解析用リポジトリは、解析
用リポジトリ作成プログラム142にて作成される。以
下、解析用リポジトリについて、図4〜図8を用いてさ
らに詳しく説明する。
【0019】テーブル/カラム/リレーションのリポジ
トリは、ユーザデータベースのデータディクショナリ1
51から次の項目のみ抽出して設定する。まずテーブル
カラム情報161には、テーブル・カラム・カラムデー
タタイプの情報を抽出して設定する。次に、図5に示す
構造のテーブルであるリレーション情報162には、デ
ータディクショナリ151から、親テーブル501、親
カラム502、子テーブル503、および子カラム50
4の情報を抽出して設定する。これらは、親テーブル5
01の親カラム502と子テーブル503の子カラム5
04との対応関係を表すものである。また、リレーショ
ン情報162には、解析処理で必要な参照フラグ505
の列を新規に用意する。参照フラグ505の初期値は、
すべてnullにしておく。
【0020】カテゴリ業務名情報163は、図4に示す
構造のテーブルである。カテゴリ業務名情報163に
は、先に抽出したテーブルカラム情報161の中から、
テーブルおよびカラムの情報のみ抽出し、テーブル40
3およびカラム404にコピーする。これにより、アク
セス対象のデータベースの各テーブルの各カラムの情報
がすべてテーブル403とカラム404の欄に設定され
たことになる。また、新規に、カテゴリ401および業
務名402の列を用意する。そして、各カラムに対し一
組のカテゴリおよび業務名を登録しておく。これは、初
期状態においても、ユーザにとって分かりにくいテーブ
ル403およびカラム404の名称で表示するのでな
く、ユーザにとって分かり易いカテゴリ401および業
務名402で表示できるようにするためである。もちろ
んこのカテゴリおよび業務名が分かりにくければ、ユー
ザは、新たなカテゴリおよび業務名を登録できる。
【0021】例えば、図4中、カテゴリ401が「注
文」で業務名402が「社員番号」は、データベースの
ORDERSテーブルのemp_idカラムに対応するカテゴリおよ
び業務名であり、初期状態であらかじめ設定されている
データである。また、カテゴリ401が「注文」で業務
名402が「担当者番号」は、同じORDERSテーブルのem
p_idカラムに対応するカテゴリおよび業務名であり、ユ
ーザが業務名/計算式登録画面146により登録したデ
ータである。さらに、カテゴリ業務名情報163には、
図4に示すように新規に計算式405の列を用意する。
【0022】リレーション解析用のリポジトリについて
は、まず先に抽出したリレーション情報(図5)を元
に、図6で示すように各テーブル毎に関連するリレーシ
ョンの数をカウントした一覧を用意する。この一覧を、
テーブルリレーション数ワークエリア(図6)と呼ぶ。
テーブルリレーション数ワークエリア(図6)は、テー
ブル601、リレーション数602、および参照カウン
ト603からなる。次に、テーブルリレーション数ワー
クエリア(図6)の情報を元に、ユニットテーブル情報
(図7)を作成する。さらに、ユニットテーブル情報
(図7)を元に、グループユニット情報(図8)を作成
する。ユニットテーブル情報(図7)およびグループユ
ニット情報(図8)の定義と作成方法の詳細について
は、後述する。
【0023】ユニットテーブル情報(図7)とグループ
ユニット情報(図8)の定義を説明する前に、本実施の
形態で用いる三種類のテーブル、ユニット、およびグル
ープの定義について説明する。
【0024】まず、三種類のテーブルの定義について、
図2に示すサンプルのデータベース構造のER図と、図3
に示すリレーショナル構造に着目した構成図を参照し
て、説明する。図2のER図において、201〜209は
テーブルを示し、テーブル間を結ぶ線はそれらのテーブ
ル間のリレーションを示す。リレーションを示す線がテ
ーブルに入る部分に記された黒丸は子テーブルの側を示
し、その反対側は親テーブルの側を示す。親テーブル側
に記されたひし形は、子テーブル側から参照するデータ
が当該親テーブルに無い場合があることを示す。以上の
記法は、ER図の記法に沿ったものである。なお、テーブ
ル間のリレーションが複数ある場合でもリレーションを
示す線は1本のみ記載した。例えば、ORDER_DELIVER2
06とORDER_ITEM207との間には、図5のリレーショ
ン情報162から分かるように、2つのリレーションが
あるが、図2のER図では1本の線で示してある。
【0025】図2において、LOCATION201およびPROD
UCT_TYPE209のように、他の1つのテーブルのみとリ
レーションを持つテーブルを、末端テーブルと定義す
る。DEPARTMENT202、EMPLOYEE203、CUSTOMER20
5、およびPRODUCT208のように、2つのテーブルと
リレーションを持つテーブルを、中継テーブルと定義す
る。ORDERS204、ORDER_DELIVER206、およびORDER
_ITEM207のように、3つ以上のテーブルとリレーシ
ョンを持つテーブルを、結合テーブルと定義する。
【0026】図3は、末端テーブルを逆三角形で、中継
テーブルを四角で、結合テーブルを楕円で、それぞれ表
記して、図2のリレーション構造を表したものである。
図3の301〜309はテーブルを示し、図2のテーブ
ル201〜209にそれぞれ対応している。
【0027】次に、ユニットの定義について説明する。
末端テーブルから末端テーブルまでのテーブルの集合
を、1つのユニットと定義する。また、末端テーブルか
ら結合テーブルまでのテーブルの集合も、1つのユニッ
トと定義する。図3の1ユニット311と2ユニット3
12は、この類のユニットに含まれる。なお、1ユニッ
トや2ユニットなど、「ユニット」の語の前に付した
「1」や「2」などの数字は、各ユニットを区別する番
号であり、第1ユニット、第2ユニットという程度の意
味である。さらに、結合テーブルから結合テーブルまで
のテーブルの集合も、1つのユニットと定義する。3ユ
ニット313、4ユニット314、5ユニット315、
および6ユニット316は、この類のユニットに含まれ
る。
【0028】次に、グループの定義について説明する。
1つ以上の結合テーブルを持つ2つのユニットの結合テ
ーブルが同一テーブルである場合、それらのユニットは
結合している。この考え方に基づき、結合した複数ユニ
ットの集合を、1つのグループと定義する。図3で示す
データベースは、全てのユニットが結合しているため、
全体で1つのグループを形成しているといえる。
【0029】以上の定義に基づき、リレーション解析用
のリポジトリについて説明する。
【0030】まず上述した三種類のテーブルの定義に基
づいてテーブルを分類するために、テーブルリレーショ
ン数ワークエリア(図6)を作成する。これは、テーブ
ルカラム情報からテーブルのみを抽出したデータとリレ
ーション情報(図5)の両方を参照し、リレーション情
報(図5)の親テーブル501又は子テーブル503と
して登録されている行数を、テーブル毎にカウントした
一覧である。リレーション数602の欄に、テーブル6
01の欄に記載のテーブルに対するカウント値を記載す
る。参照カウント603は、後述する処理のために必要
な列で、初期値はリレーション数602と同値に設定す
る。最後に、リレーション数602で昇順にソートす
る。完成したテーブルリレーション数ワークエリア(図
6)で、リレーション数602が1のテーブルは末端テ
ーブル、リレーション数603が2のテーブルは中継テ
ーブル、リレーション数603が3のテーブルは結合テ
ーブルである。
【0031】次に、これらのテーブルをユニットに分類
するために、ユニットテーブル情報(図7)を作成す
る。これは、リレーション情報(図5)とテーブルリレ
ーション数ワークエリア(図6)の両方を参照して作成
する。ユニットテーブル情報(図7)のユニット701
は、各ユニットに整数で付けた付番である。順番702
は、ユニット内でのテーブルの並びの順番を示す。リレ
ーション数704は、テーブルリレーション数ワークエ
リア(図6)のそれと同義である。前参照カラム705
は、カレントのテーブルと同一ユニット内で、順番70
2の数字が小さい隣のテーブルとのリレーションで参照
するカラムを示す。後参照カラム706は、カレントの
テーブルと同一ユニット内で、順番702の数字が大き
い隣のテーブルとのリレーションで参照するカラムを示
す。図9に、ユニットテーブル情報(図7)を作成する
ユニットテーブル情報作成プログラムの処理手順を示
す。この処理では、末端テーブルから優先的に処理する
ため、末端テーブルと結合テーブルを含むユニットで
は、末端テーブルは必ず順番が1となる。
【0032】次に、グループを分類するために、グルー
プユニット情報(図8)を作成する。これは、ユニット
テーブル情報(図7)を参照して作成する。グループユ
ニット情報(図8)のユニット801は、ユニットテー
ブル情報(図7)のユニット701と同じ付番である。
グループ802は、各グループに整数で付けた付番であ
る。先頭テーブル803は、ユニットテーブル情報(図
7)で、各ユニットの中で順番702が'1'であるテー
ブルを示す。末尾テーブル804は、ユニットテーブル
情報(図7)で、各ユニットの中で順番702が最大の
テーブルを示す。ユニット結合数805は、各ユニット
に含まれる結合テーブルの数を示す。図10に、グルー
プユニット情報(図8)を作成するグループユニット情
報作成プログラムの処理手順を示す。
【0033】ユニット結合数805が0のユニットは2
つの末端テーブルを含むユニット、ユニット結合数80
5が2のユニットは2つの結合テーブルを含むユニット
となる。また、ユニット結合数805が1のユニットは
1つの末端テーブルと1つの結合テーブルを含むユニッ
トであり、この場合、ユニットテーブル情報(図7)に
おいて末端テーブルの順番702は必ず'1'となるた
め、先頭テーブル803は末端テーブル、末尾テーブル
804は結合テーブルとなる。
【0034】以上のようにして、解析用リポジトリの各
テーブルを作成する。作成した情報は、後述するリレー
ション解析の際に利用する。
【0035】次に、入力画面について詳細に説明する。
本実施形態では、入力画面として、検索項目選択画面
(図11)、業務名/計算式登録画面(図14)、条件
式設定画面(図12)、およびソート設定画面(図1
3)の4種類を用意する。本実施形態の装置を起動する
と、最初に検索項目選択画面(図11)が表示される。
そして、この画面からその他の画面を表示する。
【0036】図15に、画面遷移図を示す。ソート設定
画面1501(図13)を除く他の画面1502〜15
04(図11、図12、図14)は、カテゴリ業務名情
報1505(図4)を参照する。各画面(図11、図1
2、図14)のカテゴリリストボックス1101,12
01,1404およびカテゴリドロップダウンコンボボ
ックス1403は、カテゴリ業務名情報(図4)の集約
されたカテゴリ401を検索して表示する。そして、各
画面のカテゴリリストボックス1101,1201,1
404から1つのカテゴリをユーザが選択したときに、
カテゴリ業務名情報(図4)のカテゴリ401とユーザ
により選択されたカテゴリが同一となる業務名402を
検索して、選択項目1102,1202,1405とし
て表示する。
【0037】各画面について詳細に説明する。まず、検
索項目選択画面(図11)では、ユーザは、データベー
スから検索する所望のデータ項目を業務名のリストから
選択する。具体的には、カテゴリリストボックス110
1からカテゴリを選択すると、それに含まれる業務名が
選択項目リストボックス1102に表示される。その選
択項目リストボックス1102から、検索したいデータ
項目を選択し、選択ボタン1103をクリックすると、
検索項目リストボックス1105に追加される。検索項
目リストボックス1105から業務名を削除する場合
は、検索項目リストボックス1105から、その業務名
を選択し、解除ボタン1104をクリックする。検索項
目を集計する場合は、集計ドロップダウンリストボック
ス1106から合計・平均・最大・最小・カウントのい
ずれかを選択する。入力が終了したら、確定ボタン11
11をクリックする。このとき、同時に入力情報の解析
が開始される。
【0038】業務名/計算式登録画面(図14)は、検
索項目選択画面(図11)の名称/式登録ボタン110
7をクリックすると表示される(図15)。この画面
(図14)により、カテゴリ・業務名と簡易な計算式を
登録する。オプションボタン1401を選択すること
で、業務名登録または計算式登録のいずれかを指定す
る。閉じるボタン1410をクリックすると、検索項目
選択画面(図11)に戻る(図15)。
【0039】業務名を登録する場合、オプションボタン
1401で業務名登録をクリックする。次に、業務名テ
キストボックス1402に新規の業務名を入力する。新
規登録する業務名のカテゴリは、カテゴリドロップダウ
ンコンボボックス1403から選択するか、直接入力す
る。登録する業務名のカテゴリを、カテゴリリストボッ
クス1404から選択すると、それに含まれる業務名が
選択項目リストボックス1405に表示される。その選
択項目リストボックス1405から業務名を選択し、選
択ボタン1406をクリックする。このとき、カテゴリ
リストボックス1404で選択されたカテゴリおよび選
択項目リストボックス1405で選択された業務名が、
計算式テキストボックス1407に [カテゴリ].[業務
名] の形式で表示される。登録ボタン1408をクリッ
クすると、カテゴリリストボックス1404で選択され
たカテゴリおよび選択項目リストボックス1405で選
択された業務名に対応する別のカテゴリおよび業務名と
して、コンボボックス1403で選択されたカテゴリお
よびテキストボックス1402で入力された業務名が、
カテゴリ業務名情報103(図4)へ追加(あるいは更
新)される。
【0040】計算式を登録する場合、オプションボタン
1401で計算式登録をクリックする。次に、業務名テ
キストボックス1402に式のラベルとなる業務名を入
力する。新規登録する業務名のカテゴリは、カテゴリド
ロップダウンコンボボックス1403から選択するか、
直接入力する。式の変数となるデータ項目は、業務名を
登録する場合と同様に、カテゴリリストボックス140
4および選択項目リストボックス1405から選択す
る。演算子や定数等は、計算式テキストボックス140
7に直接入力する。登録ボタン1410をクリックする
と、入力された計算式が、カテゴリ業務名情報103
(図4)へ追加(あるいは更新)される。
【0041】条件式設定画面(図12)は、検索項目選
択画面(図11)の条件式設定ボタン1108をクリッ
クすると表示される(図15)。この画面は、検索条件
の式を設定するための画面である。選択項目1203ま
たは条件値1206に業務名を入力する場合、カテゴリ
リストボックス1201でカテゴリを選択し、そのカテ
ゴリに含まれる業務名を表示する選択項目リストボック
ス1202から業務名を選択する。そして、選択項目1
203および条件値1206の右脇のINボタン1204
または1207をクリックすると、選択したカテゴリと
業務名が、選択項目1203または条件値1206にそ
れぞれ表示される。また、演算子ドロップダウンリスト
ボックス1205から演算子を、論理演算子ドロップダ
ウンリストボックス1208から論理演算子を選択す
る。条件値等は直接入力する。入力した条件式を確定す
る場合、OKボタン1209をクリックして、検索項目選
択画面(図11)に戻る。
【0042】ソート設定画面(図13)は、検索項目選
択画面(図11)のソート設定ボタン1109をクリッ
クすると表示される(図15)。この画面は、ソート条
件項目の設定をするための画面である。検索項目選択画
面(図11)により選択した検索項目と同一の業務名リ
ストを検索項目リストボックス1301に表示する。そ
の中からソートする業務名を選択し、選択ボタン130
2をクリックすると、ソート項目リストボックス130
4に追加される。ソート項目リストボックス1304か
ら業務名を削除する場合、その業務名を選択し、解除ボ
タン1303をクリックする。また、昇順/降順ドロッ
プダウンリストボックス1305から、そのソート項目
に関するソートが昇順であるかまたは降順であるかを設
定する。ソート項目の優先順位を設定する場合、ソート
項目リストボックス1304で項目を選択し、上位ボタ
ン1306または下位ボタン1307をクリックする。
このとき、優先順位を高く設定した項目が。上に移動し
て表示される。入力したソート条件を確定する場合、OK
ボタン1308をクリックして、検索項目選択画面(図
11)に戻る。
【0043】次に、データ解析プログラム143による
入力データの解析方法について説明する。上述した入力
画面で、検索項目、条件式、およびソートの条件が設定
され、検索項目選択画面(図11)の確定ボタン111
0がクリックされたとき、対応表ワークエリア(図1
6)を生成する。これは、各画面で入力されたデータを
編集し統合するためのエリアである。なお、図16では
3段に分けて図示したが、上段の表の右端は中段の表の
左端につながり、中段の表の右端は下段の表の左端につ
ながっているものとする。対応表ワークエリア(図1
6)の項番1601は整数で付番する。
【0044】検索項目設定画面(図11)の検索項目リ
ストボックス1105のデータはカテゴリと業務名に解
析し、図16のカテゴリ1604と業務名1606にコ
ピーする。また、集計ドロップダウンリストボックス1
106で集計が指定された場合は、図16の集計160
6にコピーし、集計が指定されていない全ての検索項目
についてはGROUP BY1609に'1'を入力する。なお、
全ての検索項目には種類1602にフラグ'S'を入力す
る。
【0045】ソート設定画面(図13)でソートが指定
された場合、そのソートの指定を、ソート項目リストボ
ックス1304に入力されたカテゴリおよび業務名に対
応する種類1602が'S'の行に反映させる。ソート順
位1607には、ソート項目リストボックス1304の
並びの順に1から始まる整数を入力する。昇順/降順1
608には、昇順/降順ドロップダウンリストボックス
1305で昇順を指定している場合は'A'を、降順を指
定している場合は'D'を入力する。
【0046】条件式設定画面(図12)の選択項目12
03は左辺1616に、演算子1205は演算子161
7に、条件値1206は右辺1618に、論理演算子1
208は論理演算子1619に、それぞれコピーする。
なお、全ての条件式には種類1602にフラグ'W'を入
力する。
【0047】計算式および条件式がある場合は、計算式
1615、左辺1616、および右辺1618を解析す
る。そして、対応表ワークエリア(図16)に行を追加
し、各式で指定されているカテゴリ/業務名をカテゴリ
1604および業務名1605にそれぞれコピーする。
また、元の式の項番を式項番1610に、同一カテゴリ
/業務名の項番を参照項番1611に、それぞれ入力す
る。なお、これらの追加した行の種類1602にはフラ
グ'C'を入力する。
【0048】次に、カテゴリ業務名情報(図4)から、
計算式および条件式以外のカテゴリ1604と業務名1
605に対応するテーブル、カラム、およびカラムデー
タタイプを検索し、テーブル1612、カラム161
3、およびカラムデータタイプ1614に各々コピーす
る。
【0049】図17に、ユーザの入力に応じて対応表ワ
ークエリア(図16)にデータ設定する処理手順を示
す。
【0050】次に、テーブルのリレーションの解析を行
う。これにより、解析情報を入力するためのリレーショ
ンワークエリア(図21)を生成するる。
【0051】具体的には、まず対応表ワークエリア(図
16)のテーブル1612を集約する。集約した結果、
テーブルが1つしかない場合は、テーブルのリレーショ
ンの解析は行わない。テーブルが2つ以上あった場合
は、次のように解析する。
【0052】図18に、2つのテーブルのリレーション
を解析する処理手順を示す。リレーションを解析する2
つのテーブルをテーブルAおよびテーブルBとする。テ
ーブルAおよびテーブルBは、対応表ワークエリア(図
16)のテーブル1612を集約した結果から任意に選
んだ2つのテーブルである。ユニットテーブル情報(図
7)を参照して、相互のテーブルが同一ユニットに含ま
れているかを調べる(ステップ1801まで)。同一ユ
ニットなら、それらのテーブル間のリレーションは分か
るので、そのユニットを特定する情報を出力して処理を
終了する。同一ユニットでない場合、グループユニット
情報(図8)を参照して、同一グループに含まれている
かを調べる(ステップ1802まで)。同一グループで
ない場合、テーブル間のリレーションを見つけることは
できなかったので、テーブルAとテーブルBのリレーシ
ョンなし、との出力情報を出力して処理を終了する。ス
テップ1802で同一グループであった場合、グループ
ユニット情報(図8)を参照し、各テーブルが属するユ
ニットに同一の結合テーブルが存在するかどうかを調べ
ることにより、ユニット同士が直接結合しているかどう
かを調べる(ステップ1803まで)。ユニット同士が
直接結合している場合は、そのユニットと結合テーブル
に関する情報を出力して処理を終了する。
【0053】次に、同一グループであるが同一ユニット
ではなく、さらに、それらのユニットが直接結合してい
ない場合のユニット間リレーション解析方法(ステップ
1804)について説明する。図20は、ユニット単位
で簡略に示したサンプル2のデータベース構成図であ
る。このデータベースのXT2001からYT2002
へのリレーションの解析方法を例に挙げて解説する。
【0054】XT2001が含まれる3ユニット201
1はユニット結合数が2で、結合テーブルはBT200
3とDT2004である。YT2002が含まれる10
ユニット2012はユニット結合数が1で、結合テーブ
ルはHT2005である。そのため、BT2003とH
T2005との間、または、DT2004とHT200
5との間の2つのルートを考える必要がある。3ユニッ
ト2011と10ユニット2012は直接関連していな
いため、ユニット同士を結合するユニットを検索する必
要があり、そのようなユニットのユニット結合数は2で
なければならない。この前提のもとで、ユニット同士の
結合を解析する処理フローを、図19に示す。図19を
参照し、図20のサンプル2を例として、ユニット間リ
レーション解析処理(ステップ1804)の手順を説明
する。
【0055】図19において、リレーションを解析すべ
き2つのユニットを、ユニットAおよびユニットBとす
る。図20のサンプル2の例(以下、本例という)で
は、3ユニット2011をユニットBとし、10ユニッ
ト2012をユニットAとするものとする。ステップ1
901の判定により、ユニットAの10ユニット201
2のユニット結合数が、ユニットBの3ユニット201
1のユニット結合数以下なので、10ユニット2012
が先ユニットとなり、3ユニット2011が後ユニット
となる。ユニット結合数の大小関係が逆のときは、先ユ
ニットと後ユニットの割り当ても逆になる。
【0056】次に、プレイフラグがONになるまで、ル
ープ1の繰り返し処理を行う。まず、処理αとして、先
ユニットに関連する、結合数が2のユニットを検索す
る。本例では、ユニット結合数が少ない10ユニット2
012の結合テーブルHT2005と関連する、結合数
が2のユニットを検索することになる。その結果、7ユ
ニット2013と8ユニット2014が該当する。ステ
ップ1902の判定により、処理αの結果が後ユニット
と同じになるか否か調べる。本例では、処理αの結果で
ある7ユニット2013と8ユニット2014を、後ユ
ニットである3ユニット2011と照合するが、同一ユ
ニットは無い。もし、処理αの結果が後ユニットを含ん
でいれば、ユニットAとユニットBとがどのようなテー
ブルを経由して結合しているかが分かったということで
あるから、ループ1の処理を抜ける。
【0057】ステップ1902で処理αの結果が後ユニ
ットを含んでいなければ、処理αの結果をスタックに待
避するとともに、処理αの結果を先ユニットとし、処理
βとして、後ユニットに関連する結合数が2のユニット
を検索する。本例では、3ユニット2011の結合テー
ブルDT2004と関連する結合数が2のユニットを検
索するものとする。その結果、5ユニット2015、お
よび7ユニット2013が該当する。ステップ1903
の判定により、処理βの結果と1つ前の検索処理で該当
した(すなわち先ユニットに設定されているユニット)
7ユニット2013および8ユニット2014とを照合
する。ここで、7ユニット2013が合致するので、プ
レイフラグがONにされてループ1を抜ける。7ユニッ
ト2013は10ユニット2012と3ユニット201
1の結合ユニットであるため、10ユニット2012⇔
7ユニット2013⇔33ユニット2011でユニット
が結合していることが判明する。
【0058】ユニット間の結合が判明したら、ユニット
テーブル情報(図7)を参照して、ユニット内のテーブ
ル間の情報に置き換えることで、テーブル間のリレーシ
ョンが解析できる。すなわち、該当するユニットのテー
ブルおよびカラム情報をユニットテーブル情報(図7)
からリレーションワークエリア(図21)にコピーす
る。コピーする手順としては、カレントのテーブル70
3を前テーブル2102に、後参照カラム706を前カ
ラム2103にコピーする。そして、同一ユニットで次
の順番にあたるテーブル703を後テーブル2102
に、前参照カラム705を後カラム2105にコピーす
る。以上により、対応表ワークエリア(図16)のテー
ブル1612の欄のテーブルについて、テーブル間のリ
レーションが解析されたことになる。
【0059】次に、対応表ワークエリア(図16)およ
びリレーションワークエリア(図21)の情報から、問
合せSQLを生成する方法を説明する。図22に、SQL組立
プログラム144の処理手順を示す。
【0060】まず、対応表ワークエリア(図16)の計
算式1615および条件式の左辺と右辺1616,16
18については、テーブル1612およびカラム161
3を用いて、計算式1615および条件式の左辺と右辺
1616,1618のカテゴリおよび業務名を、対応す
る物理名に置換し、物理式を作成しておく。次に、対応
表ワークエリア(図16)を参照し、種類1602が'
S'である検索項目からSELECT句を生成する。さらに、集
計1606が指定されている場合は、対応する集合関数
による式を作成する。
【0061】次に、対応表ワークエリア(図16)のテ
ーブル1612を集約したテーブル名を取得し、FROM句
を生成する。FROM句で指定したテーブル数が2以上のと
きは、リレーションワークエリア(図21)を参照して
テーブルリレーション用のWHERE句を生成する。具体的
には、前テーブル2102および前カラム2103と後
テーブル2104と後カラム2105の等価式を作成
し、複数の式をANDでつなぐ。条件式が設定されている
場合は、対応表ワークエリア(図16)を参照して条件
式用のWHERE句を生成する。既にWHERE句があるときはAN
Dでつなげる。
【0062】次に、集計が指定されている場合は、GROU
P BY1609にフラグが立っている項目によるGROUP BY
句を生成する。また、ソートが指定されている場合
は、ソート順位1607と昇順/降順1608が入力さ
れている項目によるORDER BY句を生成する。
【0063】全ての句が生成したら、SELECT、FROM、WH
ERE、GROUP BY、および、ORDER BYの各句を結合する。
完成した問合せSQLをファイルに出力する。以上によ
り、問合せSQLが生成された。図23は、カテゴリおよ
び業務名から物理カラム名および物理式への変換の例、
並びに問合せSQLの組立例を示す。
【0064】
【発明の効果】以上説明したように、本発明によれば、
データベースのカラムにカテゴリ情報および複数の業務
名を付加しているので、データベースの物理構成とSQL
文法を理解していなくても、業務上のカテゴリと業務名
を選択することで、問合せSQLを作成することができ
る。また、業務名を用いた計算式を定義し、その計算式
自身に業務名を付けて登録することができる、使用頻度
の高い計算式の入力の手間を省くことができる。さら
に、データベースのリレーションは、データディクショ
ナリのリレーション情報を解析することで自動的に取得
でき、ユーザがリレーション情報を入力する必要がな
い。
【図面の簡単な説明】
【図1】本発明が適用された業務名指定による問合せSQ
L自動生成装置の構成を示す図である。
【図2】サンプルデータベース構成のテーブル名のみを
示すER図である。
【図3】サンプルデータベース構成をテーブルの結合数
からテーブルを分類し、リレーション構造を示した図で
ある。
【図4】カテゴリや業務名を登録するカテゴリ業務名情
報の例を示す図である。
【図5】テーブルリレーション情報の例を示す図であ
る。
【図6】テーブルリレーション数ワークエリアの例を示
す図である。
【図7】ユニットテーブル情報の例を示す図である。
【図8】グループユニット情報の例を示す図である
【図9】ユニットテーブル情報作成プログラムの処理手
順を示す図である。
【図10】グループユニット情報作成プログラムの処理
手順を示す図である。
【図11】検索項目選択画面を示す図である。
【図12】条件式設定画面を示す図である。
【図13】ソート設定画面を示す図である。
【図14】業務名/計算式登録画面と、カテゴリおよび
業務名を登録する入力例を示す図である。
【図15】画面遷移図である。
【図16】対応表ワークエリアを示す図である。
【図17】対応表ワークエリアにデータを入力する手順
を示す図である。
【図18】2つのテーブル間のリレーションを解析する
手順を示す図である。
【図19】2つのユニット間のリレーションを解析する
手順を示す図である。
【図20】サンプル2データベース構成において、テー
ブルの結合数からテーブルを分類し、リレーション構造
を示した図である。
【図21】リレーションワークエリアの例を示す図であ
る。
【図22】SQL組立プログラムの処理手順を示す図であ
る。
【図23】SQLの組立例を示す図である。
【符号の説明】
110…ディスプレイ 120…キーボード 130…CPU 140…メモリ 141…入力画面 142…リポジトリ生成プログラム 143…データ解析プログラム 144…SQL組立プログラム 145…ワークエリア 150,160…磁気ディスク 151…データディクショナリ 161…テーブルカラム情報 162…リレーション情報 163…カテゴリ業務名情報 164…ユニットテーブル情報 165…グループユニット情報
───────────────────────────────────────────────────── フロントページの続き (72)発明者 林 由紀雄 東京都大田区大森北三丁目2番16号 日立 システムエンジニアリング株式会社内 (72)発明者 奥 悦史 神奈川県川崎市幸区鹿島田890番地 株式 会社日立製作所システム開発本部内 Fターム(参考) 5B075 MM11 ND03 ND23 ND40 NK10 NK13 NK24 NK54 NR02 NR05 NR12 NR15 PP02 PP03 PP13 PP30 PQ02 PQ15 PQ20 PQ40 PQ66 QR01 QT06

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】データベースに発行する問合せSQLを自動
    生成するSQL生成装置であって、 データベースのカラムに、カテゴリ情報および複数の業
    務名を付加する手段と、 付加したカテゴリ情報および業務名を用いてデータベー
    スに対する検索項目を指定する手段と、 指定された検索項目から問合せSQLを自動生成する手段
    とを備えたことを特徴とする問合せSQL生成装置。
  2. 【請求項2】請求項1に記載のSQL生成装置において、 前記業務名により表現された計算式を入力し、該計算式
    に別の業務名を付けて登録する手段をさらに備えたこと
    を特徴とするSQL生成装置。
  3. 【請求項3】請求項1に記載のSQL生成装置において、 前記検索項目として指定されたテーブル間のリレーショ
    ンを前記データベースのデータディクショナリから抽出
    した情報に基づいて取得し、取得したリレーションを前
    記問合せSQLに反映させる手段をさらに備えたことを特
    徴とするSQL生成装置。
JP32237299A 1999-11-12 1999-11-12 業務名指定による問合せsql生成装置 Pending JP2001142885A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32237299A JP2001142885A (ja) 1999-11-12 1999-11-12 業務名指定による問合せsql生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32237299A JP2001142885A (ja) 1999-11-12 1999-11-12 業務名指定による問合せsql生成装置

Publications (1)

Publication Number Publication Date
JP2001142885A true JP2001142885A (ja) 2001-05-25

Family

ID=18142920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32237299A Pending JP2001142885A (ja) 1999-11-12 1999-11-12 業務名指定による問合せsql生成装置

Country Status (1)

Country Link
JP (1) JP2001142885A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092078A (ja) * 2004-09-22 2006-04-06 Apex:Kk 不動産物件のアフターサービス管理システム
JP2008152369A (ja) * 2006-12-14 2008-07-03 Nec System Technologies Ltd Gui操作によるsql文自動生成装置、その方法およびプログラム
JP2009245283A (ja) * 2008-03-31 2009-10-22 Japan Research Institute Ltd データ検索システム、データ検索方法、およびプログラム
JP2009245282A (ja) * 2008-03-31 2009-10-22 Japan Research Institute Ltd データ検索システム、データ検索方法、およびプログラム
JP2010506294A (ja) * 2006-10-04 2010-02-25 セールスフォース ドット コム インコーポレイティッド マルチテナント型オンデマンドデータベースサービスを介して開発アプリケーションへのアクセスを可能にするための方法及びシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092078A (ja) * 2004-09-22 2006-04-06 Apex:Kk 不動産物件のアフターサービス管理システム
JP2010506294A (ja) * 2006-10-04 2010-02-25 セールスフォース ドット コム インコーポレイティッド マルチテナント型オンデマンドデータベースサービスを介して開発アプリケーションへのアクセスを可能にするための方法及びシステム
US9171033B2 (en) 2006-10-04 2015-10-27 Salesforce.Com, Inc. Method and system for allowing access to developed applications via a multi-tenant on-demand database service
JP2008152369A (ja) * 2006-12-14 2008-07-03 Nec System Technologies Ltd Gui操作によるsql文自動生成装置、その方法およびプログラム
JP2009245283A (ja) * 2008-03-31 2009-10-22 Japan Research Institute Ltd データ検索システム、データ検索方法、およびプログラム
JP2009245282A (ja) * 2008-03-31 2009-10-22 Japan Research Institute Ltd データ検索システム、データ検索方法、およびプログラム

Similar Documents

Publication Publication Date Title
JP6580737B2 (ja) データ検索装置、データ検索方法、データ検索プログラム、及び記録媒体
US7725501B1 (en) System and method for rapid database application deployment and use
EP0575358B1 (en) Database management system graphical query front end
US20050114370A1 (en) Identifier vocabulary data access method and system
KR101505858B1 (ko) 대용량 데이터를 용이하게 분석하기 위하여 테이블 관계 및 참조의 템플릿을 검색하여 제공하는 템플릿 기반 온라인 분석보고서 작성 지원 시스템
JP2002297602A (ja) 構造化文書検索方法および構造化文書検索装置および構造化文書管理装置およびプログラムおよび記録媒体
JP2002297605A (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
JP5535062B2 (ja) ウェブログの時系列分析のためのデータ格納および照会方法及びその方法を実行するシステム
Bakke et al. A spreadsheet-based user interface for managing plural relationships in structured data
CN114328471B (zh) 一种基于数据虚拟化引擎的数据模型及其构建方法
CN112100200A (zh) 一种基于维度模型自动化生成sql语句的方法
JP6623754B2 (ja) 表形式データ処理プログラム、方法及び装置
CN114896248A (zh) 实现基于关联池数据表自动拼接生成sql的方法及装置
JP3223645B2 (ja) データべースアクセス方法および装置
CN113297251A (zh) 多源数据检索方法、装置、设备及存储介质
CN109582286A (zh) 基于Freemarker技术的数据规范性校验方法及其装置
JP2001142885A (ja) 業務名指定による問合せsql生成装置
JP2001325276A (ja) 情報処理システム、情報処理方法、コンピュータプログラム、記憶媒体及びプログラム伝送装置
US7035862B2 (en) Method for processing information from an information repository
JPH0934957A (ja) ユーザ振る舞いの解析方法及び装置
JP2000293414A (ja) 異種データソース統合方法
JP2798118B2 (ja) データベース問合せ文作成装置
JP2002297601A (ja) 構造化文書管理方法および構造化文書管理装置およびプログラム
JPH06259446A (ja) 課題構造化システム
JPH0488469A (ja) 経営等管理帳表発行装置