JPH0527149B2 - - Google Patents
Info
- Publication number
- JPH0527149B2 JPH0527149B2 JP59035470A JP3547084A JPH0527149B2 JP H0527149 B2 JPH0527149 B2 JP H0527149B2 JP 59035470 A JP59035470 A JP 59035470A JP 3547084 A JP3547084 A JP 3547084A JP H0527149 B2 JPH0527149 B2 JP H0527149B2
- Authority
- JP
- Japan
- Prior art keywords
- row
- query
- name
- column
- condition
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
〔産業上の利用分野〕
本発明はデータ・ベースを管理するための新規
な計算装置、より具体的には、関係データ・ベー
スをアクセスするために図式的言語の照会からそ
れに等価な線型言語の照会を合成する装置に関す
る。 〔従来技術〕 線型照会言語の一例は、IBMの構造化照会言
語SQLである。(SQL/Data System Terminal
User's Guide,IBM刊行物SH24−5016−0及び
SQL/Data System Application
Programming,IBM刊行物SH24−5018−0参
照)。そのような線型照会言語は、関係データ・
ベース中に記憶された表の多くの多重ビユーを定
義し、アクセスしそして変更するためのものであ
る。(M.W.Blasgen他、“System R:An
architectureal overview”,IBM System
Journal,Vol.20,No.1,1981,pp41ff参照) 図式的照会言語の一例は、IBMの例示照会言
語QBEである。(Query−by−Example
Terminal User's Guide,IBM刊行物SH20−
2078−0参照)そのような図式的照会言語もま
た、データ・ベース中に記憶された表を定義し、
スクセスし、そして変更するためのものである。
QBEは端末装置の操作者にとつて特に親しみや
すい形式を提供している。(M.M.Zloof,“Query
−by−Example:a data base language”,
IBM System Journal,Vol.16,No.4,1977,
pp324ff参照) SQL及びQBEの照会言語は各々データ・ベー
スをアクセスするために設計されてきたが、これ
までは一方の言語によつて管理されるデータ・ベ
ースは他方の言語によつてはアクセスする事がで
きなかつた。従つて、照会が線型照会言語に従つ
て表現されている事をデータ・ベース管理システ
ムが要求されるような場合であつても、端末操作
者即ちユーザが図式的照会言語に従つてデータ・
ベースをアクセスする事を可能にする必要があつ
た。 〔発明の概要〕 従つて本発明によれば、図式的照会言語で表現
された照会をそれに等価な線型言語に変換するた
めの装置が与えられる。 本発明によれば、1つ以上のソース表あるいは
ターゲツト表等の例示表の行及び列の中に並びに
(もしあれば)条件ブロツクの中に現れる例示要
素及び黙示的オペランド述語等の形で表現された
図式的言語による照会を線型言語の照会に翻訳す
る計算装置が提供される。この装置は、ソース表
を各行毎に1つの記入項目を有する行名表の中に
行名を生成する手段;例示要素定義又は黙示的オ
ペランド述語を含む、上記行名表中で指定された
各行内の各データ・フイールドに応答して、列デ
ータ表の中に行名、列名及びデータを特定する記
入項目を生成し記録する手段;黙示的条件を持た
ない例示要素を含むそれら列データ表記入項目を
束縛されたものとして記録する手段;並びに黙示
的条件を有する例示要素又は黙示的オペランド述
語を含む列データ表記入項目毎に基本的述語を条
件表の中に生成する手段を有し;これによつてタ
ーゲツト印刷照会又は組み合せ印刷照会又は挿入
照会又は更新照会又は削除照会として特定された
図式的言語の照会から線型言語の照会を合成する
ためのデータ構造を上記行名表、列データ表及び
条件表の中に形成する。 〔実施例の説明〕 明細書末尾の表49には、下記の説明中で用いら
れる省略語の一覧表が示されている。 最初に、本発明の実施例が使用される環境を説
明する。第1図を参照すると、端末装置1を用い
て操作者は関係データ・ベース9の照会を行な
う。照会は線型形成の(SQL)照会2を用いて
も又図式的な(QBE)照会3を用いてもよい。
本発明は、操作者が照会を図式的な形式で入力し
結果を図式的な形式で受け取る事を選択した場合
に関係する。 照会管理機構(QMF)4はCPU5の主記憶中
に存在する応用プログラムである。これは端末1
から受け取つた図式的照会3に応答して線型形成
の照会7を生成するための翻訳機構を有する。同
様にCPU5の主記憶中に存在する関係データ・
ベース管理機構8は、QMF4又は端末1から受
け取つた線型形式の照会3又は7に応答して、関
係データ・ベース9をアクセスし、QMF4に応
答を返す。この応答は表示装置10に表示される
か又は印刷装置11に印刷される。関係データ・
ベース9は、主記憶中のバツフア及び外部記憶装
置より成る仮想記憶中に存在する。 翻訳機構6の概観は第5図及び第6図に示され
ている。第5図は、翻訳時に使用されるデータ及
び制御表を示し、第6図は翻訳アルコリズムを実
現しているプログラム・モジユールを示す。 翻訳機構6は、図式的照会中のソース表の行毎
に行名を生成し且つ行中のデータ・フイールド毎
に行名、列名及びデータを生成し記録する手段1
2、データ・フイールドの内容に基き条件式を生
成する手段13、並びに上記データを用いて線型
照会を合成する手段14を有する。上記手段12
は、第6図のモジユール114に、手段13はモ
ジユール116に、手段14はモジユール118
〜126に対応する。 次に第2A図〜第4図を参照して、本発明の実
施例における図式的照会言語−例示照会言語
QBEの説明を行なう。QBEは、照会すべき項目
の例示を作成する事によつてユーザが照会を表現
する事を可能にする。例示照会Qを作成するため
に第2A図及び第2B図に示す例示表(スケルト
ンとも呼ばれる)2及び4、並びに第3図の条件
ボツクス6が用いられる。照会される項目は第4
図の表40及び50のような2次元的な表形式に構成
されている。QBE照会中には、表2及び4から
の選択データ9を制限する条件8があつてもよ
い。 「例示表」、「例示行」及び「例示列」という用
語は例示表を参照する時に用いられる。表とは要
素が矩形に配列したものである。例示表とは例示
表2又は4に現われる全ての項目の集合を意味す
るものである。例示行とは例示表2,4の1つの
行に現れるデータ・フイールド9及び行名7の集
合を意味し、また例示列とは例示表2の1つの列
に現れる列名5及びデータ・フイールド9の集合
を意味するものである。(ソース表2は列名フイ
ールド5を有し得るが、ターゲツト表4は持たな
くてもよい。)実際の表は要素から構成されてお
り、その各々は表の特定の行及び列の中に現れ
る。QBEのデータ・フイールド9は、表40(第4
図)の列42中に実際に現れている要素の例示で
ある例示要素(EE)を含んでいてもよい。ここ
で述べる実施例では、例示要素名は下線( )で
始まる。1つの列内の要素は各々、通常同じ意義
を有する。例えば、ある列は特定の仕事に従事す
る人々の名前を含んでいる。 結果表56はQBE照会によつて作成された表で
ある。結果表の各行は拡張された直積
(extended cartesian product)ECPの1つの行
に由来する要素を含むものとみなすことができ
る。ECPは1つ以上のソース表2から形成され
る。ここでECPの概念は理解を助けるためのも
のであつて、下記の例において実際にECPが構
成される必要性は必ずしもない事に注意された
い。ECPは全てのソース表2の行の積なので、
ECPの行の大きさは各ソース表の行の大きさの
積であり、列の大きさは各ソース表の列の大きさ
の和である。 もしもある行の名要素が表の他の行の各要素と
同じ順序で重複していれば、その行は重複したも
のである。表の要素はその要素を含む行及び列と
同じ順序を有する。例えば行の中の3番目の要素
は3番目の列の中にあり、列の中の12番目の要素
は12番目の行の中にある。 結果表56を形成する時にECPの全ての行を使
用する必要はない。即ちQBE照会は、結果表56
の構成に用いられるECPの行の部分集合を選択
する選択基準を含み得る。さらに結果表56を構成
する時に、全ての列を選択する必要もない。即
ち、QBE照会は、選択されたECP行から全ての
列を指定する必要はない。結果表中の要素は、選
択されたECP行の列からの要素のコピーでもよ
い。また選択されたECP行からの1つ以上の要
素のコピーを含む数式の評価値でもよい。また、
それは、選択された行からコピーされたものでは
ない定数値でもよい。一般に、QBE結果表中に
は重複した行は現れない。即ち、QBE照会によ
つて形成された重複行の1つだけのコピーが
QBE結果表中に保持される。 第4図を参照すると、QBE照会の例が示され
ている。端末装置がユーザのスクリーン上に現れ
るのは、例示表16,26及び36並びに結果表56であ
る。照会によつてアクセスされ、上位計算機のデ
ータ記憶領域中に記憶されている関係データ・ベ
ースは表40及び50として表されている。表16は、
表名10、列名12及び14、並びに例示要素1
8及び19を含んでいる。例示表26は表名20、
列名22,24及び例示要素 を含むデータ・フ
イールド27,29を含む。表16及び26はソース
表即ち名前の付いた表である。一方、その名前フ
イールド30が空白の表36はターゲツト表であ
り、表16,26及び36の照会に応答して出力表に表
示されるべき情報を示している。 第4図は2つの表(SALES(販売)表40及び
SUPPLY(提供)表50)からのデータが出力結果
表56において組み合されるために、ターゲツト表
36が必要とされる照会を示している。(例示要素
19は黙示的条件を有する例示要素であり、その
黙示的条件は#$@0001.ITEM=#$@0002.
ITEMである。但し#$@0001はデータ・フイー
ルド19を含む行に割り当てられた行名であり、
#$@0002はデータ・フイールド27を含む行の
行名である。詳細については後述する。) 第4図の照会は下記のように解釈される。デー
タ・フイールド38には、「P.AO(1). TOY」
と記入されている。「P.」はQBE印刷コマンドで
あり、「AO(1).」はQBEソート・パラメータで
あり、「 TOY」は例示要素である。 TOYは
SALES表10のDEPARTMENT(部門)列12に
あり、従つて線60に示すように、SALES表40
をアクセスし、照会を満足する列12からのデー
タを結果表56の対応する列57に入れるように指
示する。同様にデータ・フイールド39の「
IBM」はSUPPLY表50のSUPPLIER(納入業者)
列24の例示要素29「 IBM」を参照してい
るので、照会を満足するSUPPLIER列54が結
果表56の列58に印刷される。例示要素19及び
27は、表40と50との間の連係を与える。 このように、線62に示されるように、結果表
56は列57にSALES表40からの
DEPARTMENT名を含み、線66に示されるよ
うに、列58にSUPPLY表50からのSUPPLIER
名を含む。但し線64に示されるように、列44
からのITEM(品目)は列52からITEMと同じ
である。また要素38の「AO(1).」によつて
指定されるように、データは最初に
DEPARTMENT名に従つて順に、次に要素39
の「AO(2).」によつて指定されるように、
SUPPLIER名に従つて順に配列される。 表1〜表14を参照すると、本発明の装置が実行
する手段のメタ言語記述を理解するのに必要な用
語が、意味論理的規則と共に形式的な構文定義と
して与えられている。明細書の説明は、先の説明
を参照する必要がないように、より基本的なもの
からより複雑な概念へと進行する。ここで用いた
構文表記法はIBM Standards Manual 33−07
(Standard I−B 3−9001 008)に定義され
ているが、それに加えて「反復可能」ボツクス及
び「及び」ボツクスという付加的な表記法を用い
た。「反復可能」ボツクスで囲まれた構成物は反
復する事ができる。また2つの構成物が「及び」
ボツクスで隔てられている時は、両者が存在可能
である。 表1は文字の構文定義を与えている。文字は数
字又は英文字又は特殊文字である。特殊文字は、
数字又は英文字以外の任意の図形文字である。 表2は定数の構文定義を与えている。定数とは
ストリング定数又は数値定数である。ストリング
定数は1つ以上の文字の列、又は識別子である。
識別子は、英文字の後に1つ以上の英文字又は数
字が続いたものである。区切られた識別子は、1
つ以上の文字を引用符(”)内に囲つたものであ
る。 表3は名前の構文定義を与えている。表名は識
別子又は区切られた識別子であり、名前修飾子と
ピリオド(.)が先行していてもよい。列名は識
別子又は区切られた識別子である。名前修飾子は
識別子又は区切られた識別子である。例示要素
は、下線( )に1つ以上の英文字又は数字が続
いたものである。表名は、事前に定義された表の
名前である。列名も事前に定義された列の名前で
ある。例示要素は、表の特定の列に現れる要素に
関する変数名である。名前修飾子は、同じ表名を
持つ表に対して一意性を与えるために使われる。 表4はトークンの構文定義を与えている。トー
クンは下記のいずれかのもの即ち、識別子、例示
要素、数値定数、順次指定子、又はキーワード発
生である。キーワード発生は文字ストリング定数
含まれていないキーワードである。キーワードは
NOT,IN,LIKE,AND,OR,P.,I.,U.又は
D.である。またキーワードは「等しい」又は
「等しくない」又は「より大きい」又は「より少
ない」又は「以上」又は「以下」を意味する文字
又は文字列でもありうる。スペーサは1つ以上の
空白文字の列である。トークンはスペーサが前又
は後にあつてもよい。 表5は式の構文定義を与えている。式は、算術
項、又は式に挿入演算子1及び算術項を続けたも
のである。挿入演算子1は加算符号(+)又は減
算符号(−)である。算術項は算術因子、又は算
術項に挿入演算子2及び算術因子が続いたもので
ある。挿入演算子2は除算符号(/)又は乗算符
号(*)である。算術因子は素子であり、素子の
前には接頭演算子があつてもよい。接頭演算子は
単項正符号(+)又は単項負符号(−)である。
素子は定数又は例示要素参照又は式を括弧で囲ん
だものである。例示要素参照(EER)は、下線
( )の次に英文字又は数字が続いたものであり、
この後さらに1つ以上の英数字が続いてもよい。
EERは、参照中で使われた例示要素名により表
現された要素値への参照である。 QBE照会中の式は、照会によつて照会された
ソース表から形成されたECPの各行に適用され
る。QBEは照会によつて参照されたソース表か
ら形成されたECPの各行を処理する。各行が処
理される時、式は、各例示要素参照に、対応する
要素値を代入する事によつて評価される。 表6は述語の構文を示している。述語は基本述
語又はIN述語又はLIKE述語又はNULL述語であ
る。基本述語は式の後に比較演算子が続きそして
式がさらに続いたものである。IN述語は、式の
後にIN又はNOT IN そしてコンマで区切られ
た1つ以上の定数が続いたものである。LIKE述
語は、例示要素の後に、LIKE又はNOT LIKE、
そして文字ストリング定数の続いたものである。
NULL述語は、例示要素の後に否定比較演算子
及びNULL信号が続いたものである。 基本述語は、基本述語中に現れる式を評価する
ことにより導き出された2つの数値を比較する。 LIKE述語は、要素をストリング定数と比較す
る時に、ある文字位置を無視するために使われ
る。例えば、文字 及び〔が、無視すべき1つ以
上の文字位置を指示するためにストリング定数中
で用いられる。 IN述語は、例示要素により参照された要素が、
IN比較演算子の右側に示された1つ以上の定数
値と等しければ、真と評価される。 表7は、黙示的オペランド述語の構文定義を与
えている。データ・フイールド9の中に現れる黙
示的オペランド述語は、それが例示表中に現れる
ところの列を参照する。ECPの各行が処理され
る時、黙示的述語に従つて参照された列の中の要
素から基本述語が形成される。 表8は条件リストの構文を与えている。条件リ
ストは、反復反応な条件である。条件は条件ボツ
クス6中に現れなければならない。条件リストを
含むために1つ以上の条件ボツクス6を用いても
よい。QBE照会中の条件は、照会によつて参照
されるソース表から形成されたECPの各行に適
用される。各行が処理される時、条件は各例示要
素を対応する要素値で置き換える事によつて評価
される。 表9はソース表リストの構文を与えている。ソ
ース表リストは反復可能なソース表である。ソー
ス表は1つ以上の表であつて、名表は表名フイー
ルド3に表名を、そして少なくとも1つのデー
タ・フイールド9にソース記入項目を、そして任
意的に、データ・フイールド9を含む列に関する
列名フイールド5に列名を含む。ソース記入項目
は例示要素定義又は黙示的オペランド述語又は空
欄である。 「ソース行」という用語は、同じソース行に現
れるソース記入項目の全体を集合的に参照するた
めに用いられる。例示要素参照(EER)及び例
示要素定義(EED)の両者が同じ例示要素(EE)
名を含む場合、EERはEEDを参照する。より一
般的には、もし項目Xが、項目Y中に含まれる
EEDを参照するEERを含むならば、項目Xは項
目Yを参照する。 照会Q中の2つの行R1及びR2は、もしも下
記の条件即ちR1がR2を参照する;R2がR1
を参照する;R1及びR2の両者を参照する照会
Q中の条件が存在するのうち1つ以上が真であれ
ば直接的に連係される。また照会Q中の2つの行
R1及びR2は、R1及びR2が直接的に連係さ
れるか;又はR1が照会Q中のある他の行RXに
直接的に連係され且つRXがR2に連係されてい
れば、連係される。 QBEにおいて、1つだけのソース記入項目が
ソース行に現われていてもよい。またソース表に
おいて、列名を持たない列中のソース記入項目は
空欄でなければならない。例示要素定義または黙
示的オペランド述語のいずれにも解析可能な例示
要素は、例示要素定義として解析される。(この
後者の規則は、例示要素定義と黙示的オペランド
述語との間の構文上のあいまいさが解決されなけ
ればならない方法を指定している。あいまいな場
合としては、比較演算子の省略された黙示的オペ
ランド基本述語と例示要素参照である式とに関係
するものがある。そのような場合は、例示要素定
義として取り扱われる。)この実施例では、空欄
は完全に空白文字から成る記入項目として実現さ
れている。表10は組み合せ印刷照会の構文を示し
ている。組み合せ印刷照会は、組み合せ印刷表
と、場合によつてはそれに条件リスト又はソース
表リストが先行したものである。組み合せ印刷表
は、表名並びに列名及び任意的なソース記入項目
を有する少なくとも1つの列を有する例示表であ
り、この例示表は行フイールド7に組み合せ行属
性及びデータ・フイールド9に1つ以上の組み合
せ記入項目を有する1つ以上の行を有する事があ
りうる。印刷コマンドは「P.」によつて示され
る。順序指定子は「AO.」又は「DO.」である。
括弧内の整数が、最後の「.」の前に現れてもよ
い。 集合指定子は全体指定子又は独自指定子であ
る。全体指定子は「ALL.」によつて表される。
また独自指定子は「UNQ.」によつて表され、重
複した行の単一のコピーが結果表に与えられる事
を要求する。 「組み合せ印刷行」という用語は、組み合せ印
刷表の中の1つの行の組み合せ記入項目及び組み
合せ行属性を集合的に参照するために用いられ
る。組み合せ印刷表はソース行及び組み合せ印刷
行から構成され得る。組み合せ印刷表において、
各ソース行のソース記入項目の数は列名の数に等
しくなければならない。(但しソース記入項目は
空白でもよい。)組み合せ印刷行は少なくとも1
つの印刷コマンドを含む。(この後者の規則は、
ソース行と組み合せ印刷行との間の構文上のあい
まいさを解決している。)もし組み合せ印刷行の
組み合せ行属性が印刷コマンドを含まなければ、
順序指定子を含む組み合せ印刷行中の各組み合せ
記入項目が印刷コマンドも含まなければならな
い。もし印刷コマンドが、組み合せ印刷表のある
組み合せ印刷行のi番目の組み合せ記入項目に含
まれていれば、その表のあらゆる組み合せ印刷行
はその組み合せ行属性又はi番目の組み合せ記入
項目の中に印刷コマンドを持たなければならな
い。もし印刷コマンドが組み合せ印刷表のある組
み合せ印刷行の組み合せ行属性に含まれていれ
ば、あらゆる組み合せ印刷行がその組み合せ行属
性又はあらゆる組み合せ記入項目中に印刷コマン
ドを持たなければならない。もし組み合せ印刷表
が1つ以上の順序指定子を持てば、各順序指定子
は整数を含まなければならない。もし整数が順序
指定子に含まれていれば、それは同じ組み合せ印
刷表中の他の順序指定子中に重複してはいけな
い。組み合せ列は1つ以上の順序指定子を含み得
る。 QBE組み合せ印刷照会は結果表を形成するが、
これは、その照会が与えられたスクリーン上に表
示される。その結果は、組み合せ印刷表中の名付
けられたソース表からコピーされた要素を含む。
共通データ・フイールド9中のP.(印刷コマンド)
は、ソース表の同じ名前を付けられた列から要素
が結果表にコピーされるべき事を示す。行フイー
ルド7中のP.は、照会中の名付けられた全ての列
5が結果表に現れるようにする。表示されべき要
素の例を照会中に用いてもよい。例えば、EMP
(従業員)という表名3を有する表2中にあつて
NAME(名前)という列名5を有する列のデー
タ・フイールド9中に現れる「P. SMITH」は
例えばEMP表からSMITHを含み且つそれに限
定されない全ての名前を表示させる。表示される
べきデータの例は任意的に付加される。即ち、も
し SMITHが先程の例から省略されても、結果
は同じである。 AO.は昇順のソートを意味し、DO.は降順のソ
ートを意味する。もしも順序指定子が組み合せ列
に現れるならば、結果表はその列の要素によつて
ソートされる。もし2個以上の順序指定子が組み
合せ印刷照会中に現れると、データは最初に順序
指定子中の最低の整数値によつてソートされ、次
に残りの順序指定子中の次に大きな整数値によつ
てソートされる。 定義された表だけが組み合せ印刷照会中で名付
けられる。即ち照会されている表は既に存在して
いなければならず、且つそのユーザに利用可能な
表のライブラリ中になければならない。また参照
される列は、定義された表の一部分として定義さ
れていなければならない。 修飾された検策は条件及び/又は黙示的述語を
含むものである。黙示的オペランド述語から形成
された全ての基本述語及び全ての条件は、選択基
準を形成するために論理積を取られる。条件の評
価に関するのと同じ規則が選択基準の評価に適用
される。組み合せ印刷照会から形成されたECP
の各行が処理される時、選択基準に適合する行か
ら得られた要素のみが組み合せ印刷照会結果表に
現れる。 組み合せ印刷照会は、単純検策でも又照会従属
型の検策でもありうる。 組み合せ印刷照会は、照会中にソース行が全く
現れなければ、単純検策である。表の行からの要
素の選択は、同じ行の要素の値にしか存在しな
い。ECPは、組み合せ印刷表の中で言及された
表のコピーである各組み合せ印刷行毎に形成され
る。組み合せ印刷照会は、もしそれが組み合せ印
刷行に連係された1つ以上のソース行を含めば、
照会従属型検策照会である。組み合せ印刷照会中
の条件は1つ以上の条件ボツクス中に表わしても
よい。 同じ例示表に2以上の組み合せ印刷行が現れる
時、各組み合せ印刷行は別個の照会のように取り
扱れる。ECPは組み合せ印刷行によつて参照さ
れた表のコピー及び組み合せ印刷行に連係された
例示行毎のソース表のコピーから成る組み合せ印
刷行毎に形成される。次に各照会からの結果が、
1つの結果表を形成するために、合併される。も
し組み合せ印刷照会がソート基準を含めば、その
結果は最終的な結果表にのみ現れる。 表11はターゲツト印刷照会の構文を与えてい
る。ターゲツト印刷照会は、条件リストを有する
ことのある、ソース表リスト及びターゲツト印刷
表である。ターゲツト印刷表は、行フイールド7
にターゲツト行属性を有し、データ・フイールド
9にターゲツト記入項目を有する例示表であり、
ターゲツト行属性及びターゲツト記入項目は反復
可能である。ターゲツト行属性は印刷コマンド
と、任意的に付加される集合指定子とが続いたも
のである。印刷コマンドは「P.」で表わされる。
ターゲツト記入項目は、式の前に任意的に順序指
定子及び印刷コマンドが付加されたものである。 「ターゲツト印刷行」という用語は、ターゲツ
ト行の中の全てのターゲツト記入項目を集合的に
参照するために用いられる。もしターゲツト印刷
行のターゲツト行属性が印刷コマンドを含まなけ
れば、そのターゲツト印刷行に含まれる各ターゲ
ツト記入項目が印刷コマンドを含まなければなら
ない。もしターゲツト印刷表が2以上の順序指定
子を含めば、各順序指定子は整数値を含まなけれ
ばならない。もし整数値が1つのそのような順序
指定中に現れるならば、同じターゲツト印刷表中
の他の順序指定子中に同じ値が現れてはいけな
い。 この例の組み合せ印刷照会によれば、1つのソ
ース表からの要素のコピーのみを含む結果表を得
る事ができるが、一方ターゲツト印刷照会は2つ
以上のソース表からの定数値、式及び要素を含む
結果表を形成する事を可能にする。一般に、概念
的に、ターゲツト行に連係されたあらゆる例示行
に関するソース表のコピーから成るECPが形成
される。 組み合せ印刷照会はターゲツト印刷照会構文で
表現する事ができる。多数のターゲツト印刷行が
ターゲツト印刷照会に現れる時、組み合せ印刷照
会の場合と同様、各印刷行は別個の照会のように
取り扱れる。ECPは各照会毎に形成され、その
結果は最終的な結果表を形成するために合併され
る。ソート基準は最終的な結果表のみに適用され
る。 保守照会は挿入、削除、更新及び創性の照会で
ある。 第12は挿入照会構文を示す。挿入照会は、挿入
表及びその前に任意的に付加される条件リスト及
びソース表リストより成る。挿入表は表名フイー
ルド3に表名を、列フイールド5に列名を、行フ
イールド7に挿入行属性を、そしてデータ・フイ
ールド9に挿入記入項目を有するソース表2であ
る。複数の列名及び挿入記入項目フイールドがあ
つてもよい。挿入コマンドは「I.」で表わされ
る。 「挿入行」という用語は挿入行属性及び1つ以
上の挿入記入項目を含む1つの行を集合的に参照
するために用いられる。挿入表の挿入行中の挿入
記入項目の数はその挿入表中の列名の数に等し
い。与えられた列名は、挿入表中に2回以上含ま
れていてはならない。ここで、挿入照会の挿入表
の表名は、その挿入照会のソース表の表名であつ
てはならない。(この限定は、SQL行挿入におけ
るSQL照会の仕様が、増補された表を参照して
はならないというSQLの規則による。) 挿入照会は、既存の表に対して1つ以上の行を
付加させる。単純挿入照会は、全ての挿入値が定
数であるようなものである。照会従属型挿入照会
は、挿入値が1つ以上のソース行からの要素を含
むようなものである。挿入行中で言及されなかつ
た(表に関して定義された)列は、表に挿入され
た各々の新しい行毎に空白値を受け取る。照会従
属型照会中に2つ以上のソース行が現れるならば
各ソース行に関するソース表のコピーを含む
ECPが形成される。 表13は更新照会の構文を示す。更新照会は、任
意的に付加される条件リスト及びソース表リスト
を有する事のある更新表より成る。更新コマンド
は「U.」で表示される。 「更新行」という用語は、ソース記入項目又は
列更新記入項目を集合的に参照するために使われ
る。更新表において、更新行中の更新記入項目の
数は列名の数に等しくなければならない。列更新
行は少なくとも1つの列更新項目を含まなければ
ならない。(この規則は、ソース行と列更新行と
の間の構文上のあいまいさを解決する。)更新コ
マンドを含む列更新記入項目はソース記入項目を
参照してはならない。(この制限はSQL行更新中
のSQL照会仕様が、更新される表の列しか参照
できないというSQLの規則による。) 更新照会は、表の選択された行の中の既存の要
素を変更する。更新照会は、その照会がソース行
を含まなければ、単純照会である。また更新照会
は、その照会が1つ以上のソース行を含めば照会
従属型更新である。ECPを形成するための条件
は挿入照会に関するものと同じである。 表14は削除照会の構文を与えている。削除照会
は表並びに任意的に付加される条件リスト及びソ
ース表リストとより成る。削除表は、フイールド
3に表名を、1つ以上のフイールド5に列名を有
し、フイールド7に削除コマンド及び1つ以上の
フイールド9に削除記入項目を含む1つ以上の行
を有し、任意的にソース記入項目を有する例示表
2である。削除コマンドは「D.」で表示される。
削除記入項目はソース項目である。 「削除行」という用語は、削除表中の1つの行
の削除コマンド及び削除記入項目を集合的に参照
する。 削除表の削除行中の削除記入項目の数はその表
の列名の数に等しくなければならない。削除照会
の削除表に含まれる表名は、削除照会のいかなる
ソース表にも含まれていてはならない。(この制
限はSQL行削除中のSQL照会仕様が、変更され
ている表を参照してはならないというSQLの規
則による。) 削除照会は表から行を削除する。削除照会は、
照会中にソース行が現れなければ、単純削除照会
である。また削除照会は、1つ以上のソース行が
照会中に現れるならば、照会従属型削除である。
もし照会中に2以上の削除行が現れるならば、各
削除行は別個の削除照会のように取り扱われる。
ECPは、削除行によつて参照された表のコピー
及び削除行に連係された各ソース行によつて参照
された表のコピーから成る各削除行に関して形成
される。 第5図を参照して、本発明の翻訳手段を実現す
る時に用いられる1つの可能な構造を説明する。
GFTSQL70は、その中にSQL照会文が生成さ
れる、記憶装置中のバツフア領域であり、第7図
〜第12図の手続きの出力を形成する。生成され
たSQL照会文の例は下記の表に示されており、
後に詳述する。 第5図に示す表の集まりは、DXEGFT表106
と呼ばれる。 GFTTABLE72は、照合Qの例示表2毎に
1つの記入項目を与える。GFTTABLE72の
内容91は表15に示されている。左側に示したの
がフイールド名で、右側がその内容の説明であ
る。その中には、GFTCOLMN78へのポイン
タ73を与えるGFTPTCOL/GFTCOLCT74
及びGFTROW82へのポインタ75を与える
GFTPTROW/GFTROWCT76が含まれる。 GFTCOLMN78は、照会Qの例示表の列毎
に1つの記入項目を与える。GFTCOLMN78
の内容89は表16に示されており、GFTSQL7
0へのポインタ71を与えるGFTCNMPTフイ
ールド80を含んでいる。 GFTROW82は、照会Qの例示表の行毎に1
つの記入項目を与える。GFTROW82の内容は
表17に示されており、GFTCOLCN96へのポイ
ンタ87を与えるGFTPTRCL/GFT#FLDSフ
イールド84及びGFTTABLE72へのポイン
タ77を与えるGFTBLEIXフイールド86を含
んでいる。 GFTCOLCN96は、照会Qの例示表の各デー
タ・フイールド9毎に1つの記入項目を含む。
GFTCOLCN96の内容99は表18に示されてお
り、GFTCNTNT104へのポインタ105を
与えるGFTPTRCN/GFTCONLNフイールド
98及びGFTROW82へのポインタ81を与え
るGFTROWIX100を含む。 GFTCNTNT104は、可変長記入項目の集
まり101を与え、各記入項目は例示表のデー
タ・フイールド9中の条件の内容を含んでいる。 GFTCDATA88は、条件ボツクス6又は例
示表のデータ・フイールド9の中に現れる条件毎
に1つの記入項目を与える。GFTCDATA88
の内容は表19に示されており、GFTCONTB1
02へのポインタ103を与える
GFTPTCDT/GFTCDTLN90,GFTROW8
2へのポインタ83を与えるGFTBINDR92、
及びGFTROW82へのポインタ85を与える
GFTSIMCN94を含む。 GFTCONTB102は可変長記入項目の集ま
り97を与える。各記入項目は条件である。 第6図に関連して説明されるように、ポイン
タ、フイールド及びフラグが解析フエーズの間に
初期設定され、合成フエーズの間に利用され変更
される。これらのDXEGFT表106において、
種々のインデツクス、エクステント及びフラグを
用いて、前述の拡張された直積(ECP)が論理
的に形成される。解析フエーズ中に、モジユール
DSQGFTT114が、QBE照会文の各例示表2
毎に表名3を含むデータをGFTTABLEに形成
する。次に表の名列毎に、モジユール
DSQGFTT114はGFTPTCOL/GFTCOLCT
74によつてインデツクスされる位置の
GFTCOLMN中に列名GFTCNAME及びその列
に特有のデータ(例えばP.フラグGFTCLMP)
を記入する。 次にGFTT114は、例示表の各行毎に1つ
の記入項目を用いて、GFTROW82を初期設定
する。この記入項目は、フイールド
GFTROWNM中に生成された行名(RN)を含
む、行に関するデータを有する。ここで、行名は
照会の各N行に割り当てられた独得の識別子であ
つて、#@$0000Nの形を有する。 次にGFTT114は、照会に含まれる各デー
タ・フイールド毎に、行のデータ記入項目に関す
るGFTPTRCL/GFT#FLDS84によつてイン
デツクスされる位置のGFTCOLCN96の記入項
目を初期設定する。GFTCOLCN96は、照会の
各データ・フイールド毎に実際のデータが記憶さ
れるGFTCNTNTの記憶位置のインデツクス及
びデータ・フイールドに関する情報を含む。 次にモジユールDSQGFTS116が、
GFTCOLCN96から導出された情報から
GFTCDATA88及びGFTCONTB102を形
成する。GFTCDATAは条件に関する情報を含
み、GFTCONTB102は条件自体を含んでい
る。表GFTCDATA88及びGFTCONTB10
2は各条件毎に1つの記入項目を有する。
GFTCDATA88及びGFTCONTB102を形
成するために、モジユールDSQGFTS116は
データ・フイールド中に単独で現れる例示要素の
位置を見つけて、それをGFTCOLCN96の
GFTBOUNDフイールド(表18)に束縛されて
いると記録する。次にGFTCOLCN96の中の同
じ例示要素が他のどこかに(上記の意味で)束縛
されているかどうかを調べる。もしそうであれ
ば、条件が黙示され、GFTCONTBの内容97
中に条件記入項目が形成される。このようにして
GFTCOLCN96中の例示要素の全てが、黙示条
件を識別するために処理された時、DSQGFTS
116は、束縛された例示要素ではない
GFTCOLCN96中のデータ・フイールド記入項
目を処理する。そのような記入項目は条件であ
り、条件はGFTPTRCN/GFTCONLN98に
よつてインデツクスされるGFTCNTNTの内容
101から取り出され、GFTCONTBの中に置
かれる。もし例示要素がGFTCNTNT104の
中の条件中に現れるならば、それは
GFTCONTBの内容97にロードされる時にそ
れが束縛されている所のデータ・フイールドの名
前によつて置き換えられる。最後に、
DSQGFTS116は照会の条件ボツクス6中に
現れる条件を調べる。これらは事前にDXEGFT
106のいずれの表にもロードされていない。従
つて条件8は、GFTCOLCN96の
GFTCORNMフイールドから得られた条件に現
れる例示要素の名前(RN.CN)と共に、
GFTCONTB97にロードされる。 解析フエーズの間、P.,I.,U.又はD.を含む例
示テーブルに関するGFTTABLE72の記入項
目が識別されポインタGFTGT(図示せず)によ
つて指示される。 合成フエーズの間、DXEGFT106の諸表
が、SQL即ち線型言語を合成するために、調べ
られ更新される。例えばP.照会文の合成期間にお
いて、等価なSQL文を作成するためにモジユー
ルDSQGFTP120が呼び出される。GFTS11
6が処理を行なつている間、何らかの条件が行を
参照すればGFTROW中にGFTCDTRFがセツト
され、行の中の条件が交差項を持てばGFTROW
82中のGFTXTRMSがセツトされる。(もし条
件が単純な条件であればGFTCDTRFのみがセツ
トされる。)GFTP120はSQLバツフア70を
形成する。P.を持つ行を判別するために
GFTCOLMN78が調べられる。表名は
GFTGTによつてインデツクスされるように、
GFTTABLE72から得られる。GFTROW82
の走査中、少なくとも1つの条件が存在する事を
示すP.フラグが見つかつた時、GFTCDATA8
8が探索され、条件がGFTCONTB102中で
位置を定められ、SQLバツフア70に付け加え
られる。 第7図〜第12図及び表20〜表48と共に第6図
を参照して、本発明を実現するように構成された
種々のプログラム・モジユールの詳細な説明を行
なう。 第7図は、モジユールGFTM110,GFTT
114及びGFTS116の制御の下に実行される
解析フエーズについて説明している。このフエー
ズは表20A及び20Bに詳細に説明されている。 図式的言語管理プログラムDSQGFTM110
は、ユーザの作成したQBE照会文から等価な
SQL照会文への翻訳を制御し初期設定を行なう。
初期設定はユーザの照会中の表、行及び列の数の
判定並びに第5図に示す表及びデータ領域を構成
するGFT共通変数構造DXEGFT106のために
必要な空間の獲得とその後の解放を含む。
DSQGFTM110は、ユーザが照合Q中の全て
の必要なパラメータを渡す事を保証するために線
113によつて表わされるようにパラメータ・プ
ロセツサ112を呼び出し、その後線115及び
117で各々示されるように例示表アナライザ
GFTT114及びそれに続いてソース表及び条
件プロセツサGFTS116を呼び出す事によつて
翻訳を制御する。 例示表プロセツサDSQGFTT114は、ユー
ザの照合Qに含まれる例示表の解析を行なう。そ
れが実行するのは第7図のステツプ152であり、
表20Aの行304〜306に詳細に示されてい
る。GFTT114は第5図の表DXEGFT106
に修飾子、表及び列の名前を記入し、有効な内容
だけを保証するために名前フイールドをテストす
る。各行の行フイールドはそれらが有効な演算子
のみを含んでいる事を見るために解析され、使用
された演算子の型を示すために表DXEGFT10
6中のフラグがセツトされる。生成されたSQL
照会文中の相関変数として用いられる行名RNが
各例示表毎に生成される。(ここで行名と相関変
数とは同義語である。)データ・フイールドは、
それらが有効な演算子を含んでいる事を見るため
に解析され、それに従つてDSTGFTにフラグが
セツトされる。また既存の例示要素及び式が
DXEGFTに置かれ、引用符中にない文字定数が
引用符中に保存され、“null”及び“not null”
が表106への記憶の前に“IS NULL”及び“IS
NOT NULL”に翻訳され、そしてデータ・フ
イールド9に単独で現れる例示要素が識別され
る。また照会全体の誤りの検査が行われ、行に
I.,U.,P.、又はD.を有する例示装置が識別され
る。 この実施例において、本発明にとつて本質的で
はないが、GFTT114の処理のパラメータ代
入フエーズの間に、パラメータは左上隅のフイー
ルド(表名フイールド3)から出発して各列の上
から下へ左から右へ進行しながら各表フイールド
毎に代入される。GFTSQLバツフア70は、値
がパラメータ名に代入された後に表を含むために
用いられる。後に、GFTSQL70は空白にされ
次に照会QからのSQL翻訳文を入れるために用
いられる。GFTT114は、照会の走査中にシ
リアル・トークンを読む毎にトークナイザ134
に行く。 表及び列名フイールド3,5の走査に引き続い
て、GFTT114は行フイールド7を走査する。
行フイールド7はP.,D.,I.又はU.のみを含む可
能性がある。各行毎に、一意性のために行インデ
ツクスを用いて、相関変数が形成される。各相関
変数は、ユーザの照会中に識別子として使われる
ことのない文字の組、例えば文字の組#$@を用
いて識別される。データ・フイールド9はP.,
U.,AO.,DO.ソート優先順位、条件、又は式を
含んでいてもよい。単純な行はP.,I.,U.又はD.
の演算子の混合物を持たないかもしれない。P.だ
けは行フイールド7とデータ・フイールド9の両
者に現れるかもしれない。ある表の行がこれらの
演算子の1つを含む時、もしも前の表がこれらの
演算子の1つを有する行を持てば、その照会は無
効である。なぜならば1つだけの表しかP.又はI.
又はU.又はD.の演算子を持ち得ないからである。
もし行が「純粋な」ソース行(それは定義照会で
ない名前付の表の中に現われ、行はP.,I.,U.又
はD.の演算子のいずれも持たない)であれば、
それはALL.又はUNQ.の指定子を有してはなら
ない。この解析の結果はDXEGFT106の表フ
ラグ・ビツトに記憶される。 図形形式ソース及び条件処理モジユール
DSQGFTS116は、条件ボツクス6の中に形
成されたソース・フイールド9及び条件8を処理
する。このモジユールは第7図のステツプ154〜
160、より詳細には表20A及び20Bの行308〜
330に示すステツプを実行する。 ソース・フイールドは条件又は例示要素(EE)
のいずれかを含むデータ・フイールド9である。
ソース・フイールドは下記のいずれのものでもあ
りうる。(1)純粋ソース行、即ちP.,I.,U.又はD.
を含まない名前付き例示表2中の行、の中のデー
タ・フイールド;(2)名前付き表2のP.行に現れる
データ・フイールド;(3)名前付き表2のD.行に
現れるデータ・フイールド;(4)U.を含まないが、
U.を含む行の中にあるデータ・フイールド。ま
たソース・フイールドは下記のいずれのものでも
あり得ない。(1)名前の付いていない表4中のデー
タ・フイールド;(2)U.を含むデータ・フイール
ド;(3)I.を含む行の中のデータ・フイールド。 もし例示要素(EE)が(P.,AO.,DO.,又は
U.に関するものを除いて)ソース・フイールド
中に単独で現れるならば、それはデータ・フイー
ルドを定義するものとしてフラグされ、そのデー
タ・フイールドに対して「束縛」されていると呼
ばれる。EEはそれが定義している行及び列に対
して束縛されていると呼ばれるが、EEは出力表
中の行、行フイールドにI.又はU.を含む行、表定
義中の定義行として使われる行、又はI.,U.もし
くはD.を含む列には束縛され得ない。EEは2回
以上束縛される事もあり得る。そのような場合、
純粋ソース行でない2つの別の行にEEが束縛さ
れていなければ等価条件が生成される。もし同じ
EE名が2つ以上のソース・フイールド9の中に
現れるならば、等価条件が黙示され、条件が生成
され、その黙示された条件に関してDXEGFT表
中に記憶される。新たに束縛されたEEが、以前
に発見された束縛EEと同じ名前を持つ時、条件
が生成される。同じ名前を持つ3つ以上の束縛さ
れたEEが存在する時、EEの等価性を保証するた
めに最初のヒツトに基いて条件が生成される。ま
た黙示的オペランド述語(条件)がソース・フイ
ールド9に現れることがある。もしそうであれ
ば、列名5が、その条件に先行する黙示的なオペ
ランドである。もし黙示的オペランド述語に何の
比較演算子も先行していなければ、「等価」が黙
示される。条件は、それを含む行に関する相関変
数及びそれを含む列に関する列名5を用いて、完
成されDXEGFT表106に記憶される。条件は
GFTCDATA表88及びGFTCONTB表102に記憶
される。GFTCDATA表88の記入項目は条件に
関するデータを含む。GFTCONTB表102は条件
自体を含む。GFTCDATAへの記入項目は、例
示表中の特定の行及び列への条件中の最初の参照
によつて始められる。参照は、生成された条件に
関するEEでも、例示表条件からの黙示的参照で
も、又条件ボツクス8中に現れるEEでもよい。
これは例示表に対する条件による最初の参照なの
で、条件が2以上の行を参照するかどうか不明で
ある。最初に、1つだけの行が参照されると仮定
する。参照された行及び列に関する相関変数は
GFTCONTB表102に移動される。もし参照が
EEであれば、相関変数はEEに置き換わる。後
に、もし相関変数が不必要になれば、それは条件
から取り除かれる。条件ボツクス6に現れる条件
が処理され、例示要素によつて参照された列及び
行に関する列名及び相関変数を用いて例示要素参
照を置き換える。条件は、P.,U.又はD.の演算
子を含む2つの行を交差参照する条件がないか見
るために誤をテストされる。各条件に関するデー
タ、例えば条件が2つ以上の行を参照しているか
否かが判定されDXEGFT表106に記憶される。
条件中のEEは常に参照を行なうEEである。それ
が参照している行及び列を定めるためにデータ・
フイールド中に同じEEが使われなければならな
い。もしEEがそのように定められていなければ、
EEは未定義としてフラグされる。定義されたEE
は参照済として記録される。 検索処理モジユールDSQGFTP120はP.を
含み且つ名前付き表2の中にある行を処理する図
形形式P.処理モジユールである。これは第8図に
示すステツプ170〜180、即ち表21及び22に詳細に
示すステツプを実行する。表23〜29は種々のP.照
会及び生成された等価なSLQ照会文を示してい
る。 もし名前付き表2のP.行が他の行に連係されて
いなければ、それは表3に示されるような、単純
な検索照会である。もしもそのような行が1つ以
上の他の行と連係されていれば、その照会は表24
〜29に示すような、照会従属型の検索照会であ
る。2つの行は、何らかの条件が両方の行を参照
していれば、連係していると言われる。同じ行に
連係された2つの行も互いに連係されている。表
23の単純な検索照会は、同じ行の中のデータだけ
に基づいて表の各行からデータを選択する。表
24,25及び27に示すような従属型の検索照会は、
他の表の中のデータに基づいて表の各行からデー
タを選択する。多重照会は、表26及び27に示すよ
うに、2つ以上のP.又は2つ以上のD.行を含むも
のである。 単一のSQL SELECT文が、全ての単純な検索
行毎に生成される。例示表の表名フイールド3中
の表名はSQLのFROM節で使われる。単純な検
索行を参照する複数の条件は、互いに論理積を取
られる。もし2つ以上の単純検索行が存在すれ
ば、1つの行を参照する条件は他の単純検索行を
参照する条件と論理和を取られる。そのような全
ての行条件は、生成されるSQLのWHERE節中
に現れる。 またSQLのSELECT文は、検索要求中に現れ
る各々の照会従属行毎に生成される。生成される
FROM節は、P.行を含む表2の表名及び各々の
連係された行毎に、連係された行を含む表表の表
名を含む。相関変数名はFROM節中の各表名に
続く。相関変数名は、表名をFROM節に移動さ
せる連係された行の行名である。DSQGFTT1
14によつて各行毎に一意的な行名が生成され
る。これは、nを照会中の行数として、
#@$0001,#@$0002,…,#@$000nの形
式を有する。表に示した例では、「#@$」の形
式がしばしば用いられ、しばしば行名はX,Y等
の文字で表される。これは#@$形式を表わすも
のと解釈すべきである。連係された行を参照する
全ての条件は、生成されるSQL中のWHERE節
中で論理数を取られ、GFTSQL70に記憶され
る。またSQLのUNION文が各々の生成された
SQL要求の間で生成される。UNIONは全ての重
複を除去する。従つて、もし2以上のP.行が使わ
れるならば、言語規約は全ての重複が除去される
事である。もしALL.が用いられ且つただ1つの
P.行があれば、重複は保持され部分照会が生成さ
れなければならない。というのは外結合(outer
join)は偽の重複を形成し得るからである。 P.を含む列の列名は全ての生成されるSQL文で
使用される。SQLの構文は、UNIONされた
SELECT文に関しては同じ列が選択される事を
要求する。この理由により、P.を含む例示表2の
全ての行は同じデータ・フイールド中にそれらを
有しなければなない。行フイールド7のP.は、名
付けられた列の下、その行のデータ・フイールド
の各々におけるP.と等価である。もし照会が1つ
以上のソート記述を含んでいれば、SQLの
ORDER BY節が生成される。 DSQGFTX126は明示的ターゲツト・プロ
セツサである。このモジユールは、P.を含み且つ
名前の付けられていない表4の中にある行を処理
する。これは、ターゲツト検索照会としても知ら
れる、出力表検索照会である。そのような表はタ
ーゲツト表又は出力表と呼び得る。GFTX12
6は、第9図及び表30及び31に詳細に示されるス
テツプを実行する。表32〜35は、名付けられてい
ない表4に現れるP.照会の例を示す。表32は、2
以上の表からデータを組み合せるため及び/もし
くはデータを集めるためにターゲツト検索を使用
し得る事を示している。ターゲツト行は新しい行
に挿入されるべきデータを特定する。ターゲツト
行には何の条件も表現し得ない事に注意された
い。表33は、ターゲツト表に複数のP.行を有する
多重ターゲツト検索を説明するものである。表34
は、ターゲツト行に連係された行が外部照会中に
結合される、外結合について説明している。表35
は多重ターゲツト検索のUNIONへの翻訳を説明
している。 従つてターゲツト表に存在するP.行毎にSQLの
SELECT節が生成される。選択リストは、それ
に関してSELECT文が生成されるP.行のデー
タ・フイールド9に存在する定数又は式を含む。
そのようなP.行は、他の行で定義されたEEを参
照する事によつて要求中の他の行を参照する。そ
のようなEE参照は、それが定義されている行の
相関変数(形式#@$000nの行名RN)及び定義
行を含む表2の表名によつて置き換えられる。生
成されるSQLのFROM文は、結合された行の
各々に関してその行を含む表2の表名(TN)を
含んでいる。そのような表名の各々には相関変数
が続く。相関名は、表名をFROM文に移動させ
る行の名前である。P.において参照された行又は
ターゲツト行を参照する全ての条件はSQLの
WHERE節で論理積を取られる。SQLのUNION
文は、各々の生成されたSQL要求の間に生成さ
れる。もし要求がソート仕様を含めば、SQLの
ORDER BY節が生成される。 DSQGFTDモジユール118はD.(削除)プロ
セツサである。このモジユールは、D.を含み且
つ名前付き表2の中にある行を処理する。もしそ
のような行が他の行に連係されていなければ、そ
れは単純な削除行である。もしそのような行が削
除行に連係されていれば、それは従属行である。
2つの行は、もしも何らかの条件が両方の行を参
照していれば、連係していると言う。同じ行に対
して連係された2つの行は互いに連係している。
GFTD118は、第10図及び表36に示す手続
きを実行する。表37〜39は、単純削除、従属型の
削除及び多重削除の各々の例を示す。 GFTD118の処理によつて、SQLの
DELETE節及びFROM節が最初に生成される。
D.を含む例示表2の表名がFROM節で使用され
る。もし何らかの条件が存在すれば、WHERE節
が生成される。単純D.行のみを参照する(複数
の)条件はWHERE節で論理積を取られる。もし
も照会従属行が存在すれば、互いに及びD.行に
連係された従属行の組毎にSQLの部分照会文が
生成される。そのような部分照会文の各々は、
WHERE節中で以前に生成された部分照会文又は
条件に対して、SQLのEXISTS比較演算子を用い
て、論理積を取られる。SQLのSELECT*は
FROM節に引き続いて、各部分照会中に生成さ
れる。(SELECT*は、行の全てのフイールドを
選択するための、SQLにおける短縮表記であ
る。)部分照会のFROM節は、連係された各行毎
にその連係された行を含む表2の表名3を含む。
そして相関変数名がFROM節のそのような表名
の後に続く。相関変数名は連係された行の行名
RNである。連係された行を参照する全ての条件
は、生成された部分照会中のWHERE節中に論理
積を取られる。もし2つ以上のD.行が存在すれ
ば、1つのD.行を参照する条件は、別のD.行を
参照する条件と論理和を取られる。 更新処理モジユールDSQGFTU124はU.コ
マンドを処理する。GFTU124は、第11図
及び表40に示す手続を実行する。表41は単純更新
照会U.及びそれに等価なSQLの例を示し、表24
は従属型更新を説明している。 GFTU124は更新照会U.毎に1つのSQLの
UPDATE文を生成する。QBE照会Qには1つだ
けのU.行が現れる可能性がある。U.を含むどの
列も、U.行中の他の列しか参照し得ない。これ
は同じ表の同じ行からしか更新を行ない得ないと
いうSLQの制限のためである。SQLのSET文は、
同じ行中の他の列を参照する定数値又は式のいず
れかを用いて生成される。もしU.行が他の行に
連係されていなければ、それは単純更新照会であ
る。もしU.行が2つ以上のものに連係されてい
れば、その照会は照会従属型の更新照会である。
2つの行は、何らかの条件が両者の行を参照して
いれば、連係していると言う。同じ行に連係され
た2つの行も互いに連係している。 U.行のみを参照する条件は互いに論理積を取
られ、SQLのWHERE節中に生成される。もし
照会が単純更新であれば、SQLは完成する。も
し照会が照会従属型の更新であれば、SQL部分
照会が生成され、部分照会を結合するために
SQLのEXISTS接続子を用いてWHERE節中に既
に存在している条件と論理積を取られる。部分照
会のFROM節は、連係された行毎にその連係さ
れた行を含む表2の表名3を含む。FROM節の
各表名に続いて相関変数名が置かれる。相関変数
名は、表名がFROM節に移動される原因となつ
た連係された行の行名である。連係された行を参
照する全ての条件は、生成されるSQL部分照会
中のWHERE節に論理積を取られる。 DSQGFTIモジユール122は挿入照会I.を処
理する。GFTI122は第12図及び表43に示す
手続を実行する。表44は単純挿入照会の例であ
り、表45は従属型挿入照会の例である。各々は
QBE照会形式とそれに等価なSQL照会を示して
いる。 GFTI122は1つのQBE挿入照会I.に関して
1つのSQLのINSERT文を生成する。もし定数
だけが挿入行に現れるならば、それは単純挿入照
会であり、INSERT文だけが生成される。もし
要求中の他の行が挿入行(従属挿入行)に連係さ
れるならば、SQLのINSERT文の後にSELECT
文が生成される。1つだけのような文が生成され
る。SELECTリストは、I.行のデータ・フイール
ド9に存在する定数又は式、及びI.行に連係され
た他の表2の列5を参照する定数又は式を含む。
また、連係された行毎にその連係された行を含む
表2の表名3を含むSQLのFROM文が生成され
る。そのような表名の各々に相関変数が続く。相
関変数は、照会中の各行毎にDSQGFTT114
によつてDXEGFT106中に生成され記憶され
た独得の名前である。I.行中で参照された行を参
照する全ての条件は、WHERE節中で論理積を取
られる。 トーケナイザ・インタフエース・モジユール
DSQGFTK134は、線121,123,12
7,131及び135に示すように、トークン処
理を行なうために、DSQGFTU124,
DSQGFTD118,DSQGFTP120,
DSQGFTT114,及びDSQGFTS116によ
つて使用されるサービス・モジユールである。 部分照会生成モジユールDSQGFTDP136
は、処理される照会が照会従属型検索照会の時に
使用され、各々線141,137,133A,1
25及び131Aに示すように、GFTX126,
GFTU124,GFTI122,GFTD118及び
GFTP120によつて呼び出される。それは、フ
ラグFRWHRの設定によつて選択される2つの
機能に役立つ。もし、呼び出された時に
FRWHRがオフであれば、1つ以上の行が連係
されたものとみなされ、このモジユールは照会中
に存在する条件を調査し、連係された行を参照す
る条件をフラグし、既に連係されている行を参照
する条件によつて連係された付加的な行をフラグ
する。ヒツト・フラグは、条件が参照されたもの
と判定されるか又は行が連係されたものと判定さ
れる度にターン・オンされる。呼び出しが行なわ
れ且つFRWHRフラグがオンの時、このモジユ
ールはフラグされた行及び条件を用いてSQLの
FROM節及びWHERE節を生成する。FROM節
は、連係された行を有する表2の名前3を含み、
その後には各々の連係された行に関する相関変数
名が続く。SQLのWHERE節は全てのフラグさ
れた条件を含み、それらは互いに論理積を取られ
る。 DSQGFTSEモジユールはモジユールへの入口
を示すトークン・ストリングを用いて、SQLの
SELECTリスト記入項目を生成するために、
GFTI122又はGFTX126によつて呼び出さ
れる(線133又は143)。データ・フイール
ドの内容はSQLバツフア70に移動される。も
しデータ・フイールドが例示要素を含めば、例示
要素は参照されたものとして記録され、例示要素
が定義される全ての行は、データ・フイールドを
含む行に対して連係されたものとフラグされる。
また後続されるコンマは、バツフアに移動される
次のフイールドからSELECTフイールドを分離
するためにSQLバツフア70中に移動される。
モジユールの呼び出しは最後のコンマを除去す
る。 DSQGDTOB130はSQLのORDERBY節を
生成し、GFTP120又はGFTX126によつ
て呼び出される(線129又は139)。 表46はSQL表の表示を形成するために表22,
31,40及び43によつて呼び出される手続を示す。
表47は、SQL探索条件(SC3)を形成するため
に、表36,40,46の手続によつて及び再帰的に表
47の手続によつて呼び出される探索条件形成手続
を示す。表48は、複数の条件ボツクスを含む照会
のSQL等価物を示す。同じ行を照会する条件は
等価なSQL7参照中で論理積を取られ、異なる
行(P.又はD.)を参照する条件は論理和を取られ
る。 表 1 (文字構文) 文字::=数字:英文字:特殊文字 数字::=0:1:2:3:4:5:6:7:
8:9 英文字::=A:B:C:D:E:F:G:
H:I:J:K:L:M:N:O:P:Q:
R:S:T:U:V:W:X:Y:Za:
b:c:d:e:f:g:h:i:j:k:
l:m:n:o:p:q:r:s:t:u:
v:w:x:y:z #:@:$ 特殊文字::=数字又は英文字以外の任意の
EBCDIC図形文字 表 2 (定数構文) 定数::=ストリング定数:数値定数 ストリング定数::=’文字…’:識別子 数値定数::=整定数:10進定数:浮動小数点
定数 整定数::=〔+:−〕整数 整 数::=数字… 10進定数::=〔+:−〕{整数.:〔整数〕.整
数} 浮動小数点定数::={10進定数:整定数}E
整定数 識別子::=英文字〔英文字:数字: 〕… 区切られた識別子::=“文字…” 表 3 (名前構文) 表名::=〔名前修飾子.〕識別子:区切られた
識別子 列名::=識別子:区切られた識別子 名前修飾子::=識別子:区切られた識別子 例示要素::= {英文字:数字}〔英文字:
数字…〕 表4 (トークン構文) キーワード::=NOT:IN:LIKE:AND:
OR:=:−=:>:>=:<:<=:−:
P.:I.:U.:D. キーワード発生::=ストリング定数中に含ま
れないキーワード トークン::=識別子:例示要素:数値定数:
順序指定子:キーワード発生 スペーサ::=1つ以上の空白文字列 表 5 (式構文) 式 ::=算術項 :式 挿入演算子1 算術項 挿入演算子1::=+:− 算術項::=算術因子 :算術項 挿入演算子2 算術因子 挿入演算子2::=*:/ 算術因子::=〔接頭演算子〕素子 接頭演算子::=+:− 素 子::=定数:例示要素参照:(式) 例示要素参照::= {英文字:数字}〔英文
字:数字…〕 表 6 (述語構文) 述語::=基本述語:IN述語 :LIKE述語:NULL述語 基本述語::=式 比較演算子 式 比較演算子::==:−=:>:<:>=:<
=:− IN述語::=式〔NOT〕IN(定数〔,定数〕
…) LIKE述語::=例示要素〔NOT〕LIKE文字
ストリング定数 NULL述語::=例示要素 NULL比較演算
子 NULL記号 NULL比較演算子::==:−=:− NULL信号::=NULL 表 7 (黙示的オペランド述語構文) 黙示的オペランド述語::=黙示的オペランド
基本述語 :黙示的オペランドIN述語 :黙示的オペランドLIKE述語 :黙示的オペランドNULL述語 黙示的オペランド基本述語::=〔比較演算子〕
式 黙示的オペランドIN述語::=IN(定数〔,
定数〕…) 黙示的オペランドLIKE述語::=LIKE文字
ストリング定数 黙示的オペランドNULL述語::=〔NULL比
較演算子〕NULL信号
な計算装置、より具体的には、関係データ・ベー
スをアクセスするために図式的言語の照会からそ
れに等価な線型言語の照会を合成する装置に関す
る。 〔従来技術〕 線型照会言語の一例は、IBMの構造化照会言
語SQLである。(SQL/Data System Terminal
User's Guide,IBM刊行物SH24−5016−0及び
SQL/Data System Application
Programming,IBM刊行物SH24−5018−0参
照)。そのような線型照会言語は、関係データ・
ベース中に記憶された表の多くの多重ビユーを定
義し、アクセスしそして変更するためのものであ
る。(M.W.Blasgen他、“System R:An
architectureal overview”,IBM System
Journal,Vol.20,No.1,1981,pp41ff参照) 図式的照会言語の一例は、IBMの例示照会言
語QBEである。(Query−by−Example
Terminal User's Guide,IBM刊行物SH20−
2078−0参照)そのような図式的照会言語もま
た、データ・ベース中に記憶された表を定義し、
スクセスし、そして変更するためのものである。
QBEは端末装置の操作者にとつて特に親しみや
すい形式を提供している。(M.M.Zloof,“Query
−by−Example:a data base language”,
IBM System Journal,Vol.16,No.4,1977,
pp324ff参照) SQL及びQBEの照会言語は各々データ・ベー
スをアクセスするために設計されてきたが、これ
までは一方の言語によつて管理されるデータ・ベ
ースは他方の言語によつてはアクセスする事がで
きなかつた。従つて、照会が線型照会言語に従つ
て表現されている事をデータ・ベース管理システ
ムが要求されるような場合であつても、端末操作
者即ちユーザが図式的照会言語に従つてデータ・
ベースをアクセスする事を可能にする必要があつ
た。 〔発明の概要〕 従つて本発明によれば、図式的照会言語で表現
された照会をそれに等価な線型言語に変換するた
めの装置が与えられる。 本発明によれば、1つ以上のソース表あるいは
ターゲツト表等の例示表の行及び列の中に並びに
(もしあれば)条件ブロツクの中に現れる例示要
素及び黙示的オペランド述語等の形で表現された
図式的言語による照会を線型言語の照会に翻訳す
る計算装置が提供される。この装置は、ソース表
を各行毎に1つの記入項目を有する行名表の中に
行名を生成する手段;例示要素定義又は黙示的オ
ペランド述語を含む、上記行名表中で指定された
各行内の各データ・フイールドに応答して、列デ
ータ表の中に行名、列名及びデータを特定する記
入項目を生成し記録する手段;黙示的条件を持た
ない例示要素を含むそれら列データ表記入項目を
束縛されたものとして記録する手段;並びに黙示
的条件を有する例示要素又は黙示的オペランド述
語を含む列データ表記入項目毎に基本的述語を条
件表の中に生成する手段を有し;これによつてタ
ーゲツト印刷照会又は組み合せ印刷照会又は挿入
照会又は更新照会又は削除照会として特定された
図式的言語の照会から線型言語の照会を合成する
ためのデータ構造を上記行名表、列データ表及び
条件表の中に形成する。 〔実施例の説明〕 明細書末尾の表49には、下記の説明中で用いら
れる省略語の一覧表が示されている。 最初に、本発明の実施例が使用される環境を説
明する。第1図を参照すると、端末装置1を用い
て操作者は関係データ・ベース9の照会を行な
う。照会は線型形成の(SQL)照会2を用いて
も又図式的な(QBE)照会3を用いてもよい。
本発明は、操作者が照会を図式的な形式で入力し
結果を図式的な形式で受け取る事を選択した場合
に関係する。 照会管理機構(QMF)4はCPU5の主記憶中
に存在する応用プログラムである。これは端末1
から受け取つた図式的照会3に応答して線型形成
の照会7を生成するための翻訳機構を有する。同
様にCPU5の主記憶中に存在する関係データ・
ベース管理機構8は、QMF4又は端末1から受
け取つた線型形式の照会3又は7に応答して、関
係データ・ベース9をアクセスし、QMF4に応
答を返す。この応答は表示装置10に表示される
か又は印刷装置11に印刷される。関係データ・
ベース9は、主記憶中のバツフア及び外部記憶装
置より成る仮想記憶中に存在する。 翻訳機構6の概観は第5図及び第6図に示され
ている。第5図は、翻訳時に使用されるデータ及
び制御表を示し、第6図は翻訳アルコリズムを実
現しているプログラム・モジユールを示す。 翻訳機構6は、図式的照会中のソース表の行毎
に行名を生成し且つ行中のデータ・フイールド毎
に行名、列名及びデータを生成し記録する手段1
2、データ・フイールドの内容に基き条件式を生
成する手段13、並びに上記データを用いて線型
照会を合成する手段14を有する。上記手段12
は、第6図のモジユール114に、手段13はモ
ジユール116に、手段14はモジユール118
〜126に対応する。 次に第2A図〜第4図を参照して、本発明の実
施例における図式的照会言語−例示照会言語
QBEの説明を行なう。QBEは、照会すべき項目
の例示を作成する事によつてユーザが照会を表現
する事を可能にする。例示照会Qを作成するため
に第2A図及び第2B図に示す例示表(スケルト
ンとも呼ばれる)2及び4、並びに第3図の条件
ボツクス6が用いられる。照会される項目は第4
図の表40及び50のような2次元的な表形式に構成
されている。QBE照会中には、表2及び4から
の選択データ9を制限する条件8があつてもよ
い。 「例示表」、「例示行」及び「例示列」という用
語は例示表を参照する時に用いられる。表とは要
素が矩形に配列したものである。例示表とは例示
表2又は4に現われる全ての項目の集合を意味す
るものである。例示行とは例示表2,4の1つの
行に現れるデータ・フイールド9及び行名7の集
合を意味し、また例示列とは例示表2の1つの列
に現れる列名5及びデータ・フイールド9の集合
を意味するものである。(ソース表2は列名フイ
ールド5を有し得るが、ターゲツト表4は持たな
くてもよい。)実際の表は要素から構成されてお
り、その各々は表の特定の行及び列の中に現れ
る。QBEのデータ・フイールド9は、表40(第4
図)の列42中に実際に現れている要素の例示で
ある例示要素(EE)を含んでいてもよい。ここ
で述べる実施例では、例示要素名は下線( )で
始まる。1つの列内の要素は各々、通常同じ意義
を有する。例えば、ある列は特定の仕事に従事す
る人々の名前を含んでいる。 結果表56はQBE照会によつて作成された表で
ある。結果表の各行は拡張された直積
(extended cartesian product)ECPの1つの行
に由来する要素を含むものとみなすことができ
る。ECPは1つ以上のソース表2から形成され
る。ここでECPの概念は理解を助けるためのも
のであつて、下記の例において実際にECPが構
成される必要性は必ずしもない事に注意された
い。ECPは全てのソース表2の行の積なので、
ECPの行の大きさは各ソース表の行の大きさの
積であり、列の大きさは各ソース表の列の大きさ
の和である。 もしもある行の名要素が表の他の行の各要素と
同じ順序で重複していれば、その行は重複したも
のである。表の要素はその要素を含む行及び列と
同じ順序を有する。例えば行の中の3番目の要素
は3番目の列の中にあり、列の中の12番目の要素
は12番目の行の中にある。 結果表56を形成する時にECPの全ての行を使
用する必要はない。即ちQBE照会は、結果表56
の構成に用いられるECPの行の部分集合を選択
する選択基準を含み得る。さらに結果表56を構成
する時に、全ての列を選択する必要もない。即
ち、QBE照会は、選択されたECP行から全ての
列を指定する必要はない。結果表中の要素は、選
択されたECP行の列からの要素のコピーでもよ
い。また選択されたECP行からの1つ以上の要
素のコピーを含む数式の評価値でもよい。また、
それは、選択された行からコピーされたものでは
ない定数値でもよい。一般に、QBE結果表中に
は重複した行は現れない。即ち、QBE照会によ
つて形成された重複行の1つだけのコピーが
QBE結果表中に保持される。 第4図を参照すると、QBE照会の例が示され
ている。端末装置がユーザのスクリーン上に現れ
るのは、例示表16,26及び36並びに結果表56であ
る。照会によつてアクセスされ、上位計算機のデ
ータ記憶領域中に記憶されている関係データ・ベ
ースは表40及び50として表されている。表16は、
表名10、列名12及び14、並びに例示要素1
8及び19を含んでいる。例示表26は表名20、
列名22,24及び例示要素 を含むデータ・フ
イールド27,29を含む。表16及び26はソース
表即ち名前の付いた表である。一方、その名前フ
イールド30が空白の表36はターゲツト表であ
り、表16,26及び36の照会に応答して出力表に表
示されるべき情報を示している。 第4図は2つの表(SALES(販売)表40及び
SUPPLY(提供)表50)からのデータが出力結果
表56において組み合されるために、ターゲツト表
36が必要とされる照会を示している。(例示要素
19は黙示的条件を有する例示要素であり、その
黙示的条件は#$@0001.ITEM=#$@0002.
ITEMである。但し#$@0001はデータ・フイー
ルド19を含む行に割り当てられた行名であり、
#$@0002はデータ・フイールド27を含む行の
行名である。詳細については後述する。) 第4図の照会は下記のように解釈される。デー
タ・フイールド38には、「P.AO(1). TOY」
と記入されている。「P.」はQBE印刷コマンドで
あり、「AO(1).」はQBEソート・パラメータで
あり、「 TOY」は例示要素である。 TOYは
SALES表10のDEPARTMENT(部門)列12に
あり、従つて線60に示すように、SALES表40
をアクセスし、照会を満足する列12からのデー
タを結果表56の対応する列57に入れるように指
示する。同様にデータ・フイールド39の「
IBM」はSUPPLY表50のSUPPLIER(納入業者)
列24の例示要素29「 IBM」を参照してい
るので、照会を満足するSUPPLIER列54が結
果表56の列58に印刷される。例示要素19及び
27は、表40と50との間の連係を与える。 このように、線62に示されるように、結果表
56は列57にSALES表40からの
DEPARTMENT名を含み、線66に示されるよ
うに、列58にSUPPLY表50からのSUPPLIER
名を含む。但し線64に示されるように、列44
からのITEM(品目)は列52からITEMと同じ
である。また要素38の「AO(1).」によつて
指定されるように、データは最初に
DEPARTMENT名に従つて順に、次に要素39
の「AO(2).」によつて指定されるように、
SUPPLIER名に従つて順に配列される。 表1〜表14を参照すると、本発明の装置が実行
する手段のメタ言語記述を理解するのに必要な用
語が、意味論理的規則と共に形式的な構文定義と
して与えられている。明細書の説明は、先の説明
を参照する必要がないように、より基本的なもの
からより複雑な概念へと進行する。ここで用いた
構文表記法はIBM Standards Manual 33−07
(Standard I−B 3−9001 008)に定義され
ているが、それに加えて「反復可能」ボツクス及
び「及び」ボツクスという付加的な表記法を用い
た。「反復可能」ボツクスで囲まれた構成物は反
復する事ができる。また2つの構成物が「及び」
ボツクスで隔てられている時は、両者が存在可能
である。 表1は文字の構文定義を与えている。文字は数
字又は英文字又は特殊文字である。特殊文字は、
数字又は英文字以外の任意の図形文字である。 表2は定数の構文定義を与えている。定数とは
ストリング定数又は数値定数である。ストリング
定数は1つ以上の文字の列、又は識別子である。
識別子は、英文字の後に1つ以上の英文字又は数
字が続いたものである。区切られた識別子は、1
つ以上の文字を引用符(”)内に囲つたものであ
る。 表3は名前の構文定義を与えている。表名は識
別子又は区切られた識別子であり、名前修飾子と
ピリオド(.)が先行していてもよい。列名は識
別子又は区切られた識別子である。名前修飾子は
識別子又は区切られた識別子である。例示要素
は、下線( )に1つ以上の英文字又は数字が続
いたものである。表名は、事前に定義された表の
名前である。列名も事前に定義された列の名前で
ある。例示要素は、表の特定の列に現れる要素に
関する変数名である。名前修飾子は、同じ表名を
持つ表に対して一意性を与えるために使われる。 表4はトークンの構文定義を与えている。トー
クンは下記のいずれかのもの即ち、識別子、例示
要素、数値定数、順次指定子、又はキーワード発
生である。キーワード発生は文字ストリング定数
含まれていないキーワードである。キーワードは
NOT,IN,LIKE,AND,OR,P.,I.,U.又は
D.である。またキーワードは「等しい」又は
「等しくない」又は「より大きい」又は「より少
ない」又は「以上」又は「以下」を意味する文字
又は文字列でもありうる。スペーサは1つ以上の
空白文字の列である。トークンはスペーサが前又
は後にあつてもよい。 表5は式の構文定義を与えている。式は、算術
項、又は式に挿入演算子1及び算術項を続けたも
のである。挿入演算子1は加算符号(+)又は減
算符号(−)である。算術項は算術因子、又は算
術項に挿入演算子2及び算術因子が続いたもので
ある。挿入演算子2は除算符号(/)又は乗算符
号(*)である。算術因子は素子であり、素子の
前には接頭演算子があつてもよい。接頭演算子は
単項正符号(+)又は単項負符号(−)である。
素子は定数又は例示要素参照又は式を括弧で囲ん
だものである。例示要素参照(EER)は、下線
( )の次に英文字又は数字が続いたものであり、
この後さらに1つ以上の英数字が続いてもよい。
EERは、参照中で使われた例示要素名により表
現された要素値への参照である。 QBE照会中の式は、照会によつて照会された
ソース表から形成されたECPの各行に適用され
る。QBEは照会によつて参照されたソース表か
ら形成されたECPの各行を処理する。各行が処
理される時、式は、各例示要素参照に、対応する
要素値を代入する事によつて評価される。 表6は述語の構文を示している。述語は基本述
語又はIN述語又はLIKE述語又はNULL述語であ
る。基本述語は式の後に比較演算子が続きそして
式がさらに続いたものである。IN述語は、式の
後にIN又はNOT IN そしてコンマで区切られ
た1つ以上の定数が続いたものである。LIKE述
語は、例示要素の後に、LIKE又はNOT LIKE、
そして文字ストリング定数の続いたものである。
NULL述語は、例示要素の後に否定比較演算子
及びNULL信号が続いたものである。 基本述語は、基本述語中に現れる式を評価する
ことにより導き出された2つの数値を比較する。 LIKE述語は、要素をストリング定数と比較す
る時に、ある文字位置を無視するために使われ
る。例えば、文字 及び〔が、無視すべき1つ以
上の文字位置を指示するためにストリング定数中
で用いられる。 IN述語は、例示要素により参照された要素が、
IN比較演算子の右側に示された1つ以上の定数
値と等しければ、真と評価される。 表7は、黙示的オペランド述語の構文定義を与
えている。データ・フイールド9の中に現れる黙
示的オペランド述語は、それが例示表中に現れる
ところの列を参照する。ECPの各行が処理され
る時、黙示的述語に従つて参照された列の中の要
素から基本述語が形成される。 表8は条件リストの構文を与えている。条件リ
ストは、反復反応な条件である。条件は条件ボツ
クス6中に現れなければならない。条件リストを
含むために1つ以上の条件ボツクス6を用いても
よい。QBE照会中の条件は、照会によつて参照
されるソース表から形成されたECPの各行に適
用される。各行が処理される時、条件は各例示要
素を対応する要素値で置き換える事によつて評価
される。 表9はソース表リストの構文を与えている。ソ
ース表リストは反復可能なソース表である。ソー
ス表は1つ以上の表であつて、名表は表名フイー
ルド3に表名を、そして少なくとも1つのデー
タ・フイールド9にソース記入項目を、そして任
意的に、データ・フイールド9を含む列に関する
列名フイールド5に列名を含む。ソース記入項目
は例示要素定義又は黙示的オペランド述語又は空
欄である。 「ソース行」という用語は、同じソース行に現
れるソース記入項目の全体を集合的に参照するた
めに用いられる。例示要素参照(EER)及び例
示要素定義(EED)の両者が同じ例示要素(EE)
名を含む場合、EERはEEDを参照する。より一
般的には、もし項目Xが、項目Y中に含まれる
EEDを参照するEERを含むならば、項目Xは項
目Yを参照する。 照会Q中の2つの行R1及びR2は、もしも下
記の条件即ちR1がR2を参照する;R2がR1
を参照する;R1及びR2の両者を参照する照会
Q中の条件が存在するのうち1つ以上が真であれ
ば直接的に連係される。また照会Q中の2つの行
R1及びR2は、R1及びR2が直接的に連係さ
れるか;又はR1が照会Q中のある他の行RXに
直接的に連係され且つRXがR2に連係されてい
れば、連係される。 QBEにおいて、1つだけのソース記入項目が
ソース行に現われていてもよい。またソース表に
おいて、列名を持たない列中のソース記入項目は
空欄でなければならない。例示要素定義または黙
示的オペランド述語のいずれにも解析可能な例示
要素は、例示要素定義として解析される。(この
後者の規則は、例示要素定義と黙示的オペランド
述語との間の構文上のあいまいさが解決されなけ
ればならない方法を指定している。あいまいな場
合としては、比較演算子の省略された黙示的オペ
ランド基本述語と例示要素参照である式とに関係
するものがある。そのような場合は、例示要素定
義として取り扱われる。)この実施例では、空欄
は完全に空白文字から成る記入項目として実現さ
れている。表10は組み合せ印刷照会の構文を示し
ている。組み合せ印刷照会は、組み合せ印刷表
と、場合によつてはそれに条件リスト又はソース
表リストが先行したものである。組み合せ印刷表
は、表名並びに列名及び任意的なソース記入項目
を有する少なくとも1つの列を有する例示表であ
り、この例示表は行フイールド7に組み合せ行属
性及びデータ・フイールド9に1つ以上の組み合
せ記入項目を有する1つ以上の行を有する事があ
りうる。印刷コマンドは「P.」によつて示され
る。順序指定子は「AO.」又は「DO.」である。
括弧内の整数が、最後の「.」の前に現れてもよ
い。 集合指定子は全体指定子又は独自指定子であ
る。全体指定子は「ALL.」によつて表される。
また独自指定子は「UNQ.」によつて表され、重
複した行の単一のコピーが結果表に与えられる事
を要求する。 「組み合せ印刷行」という用語は、組み合せ印
刷表の中の1つの行の組み合せ記入項目及び組み
合せ行属性を集合的に参照するために用いられ
る。組み合せ印刷表はソース行及び組み合せ印刷
行から構成され得る。組み合せ印刷表において、
各ソース行のソース記入項目の数は列名の数に等
しくなければならない。(但しソース記入項目は
空白でもよい。)組み合せ印刷行は少なくとも1
つの印刷コマンドを含む。(この後者の規則は、
ソース行と組み合せ印刷行との間の構文上のあい
まいさを解決している。)もし組み合せ印刷行の
組み合せ行属性が印刷コマンドを含まなければ、
順序指定子を含む組み合せ印刷行中の各組み合せ
記入項目が印刷コマンドも含まなければならな
い。もし印刷コマンドが、組み合せ印刷表のある
組み合せ印刷行のi番目の組み合せ記入項目に含
まれていれば、その表のあらゆる組み合せ印刷行
はその組み合せ行属性又はi番目の組み合せ記入
項目の中に印刷コマンドを持たなければならな
い。もし印刷コマンドが組み合せ印刷表のある組
み合せ印刷行の組み合せ行属性に含まれていれ
ば、あらゆる組み合せ印刷行がその組み合せ行属
性又はあらゆる組み合せ記入項目中に印刷コマン
ドを持たなければならない。もし組み合せ印刷表
が1つ以上の順序指定子を持てば、各順序指定子
は整数を含まなければならない。もし整数が順序
指定子に含まれていれば、それは同じ組み合せ印
刷表中の他の順序指定子中に重複してはいけな
い。組み合せ列は1つ以上の順序指定子を含み得
る。 QBE組み合せ印刷照会は結果表を形成するが、
これは、その照会が与えられたスクリーン上に表
示される。その結果は、組み合せ印刷表中の名付
けられたソース表からコピーされた要素を含む。
共通データ・フイールド9中のP.(印刷コマンド)
は、ソース表の同じ名前を付けられた列から要素
が結果表にコピーされるべき事を示す。行フイー
ルド7中のP.は、照会中の名付けられた全ての列
5が結果表に現れるようにする。表示されべき要
素の例を照会中に用いてもよい。例えば、EMP
(従業員)という表名3を有する表2中にあつて
NAME(名前)という列名5を有する列のデー
タ・フイールド9中に現れる「P. SMITH」は
例えばEMP表からSMITHを含み且つそれに限
定されない全ての名前を表示させる。表示される
べきデータの例は任意的に付加される。即ち、も
し SMITHが先程の例から省略されても、結果
は同じである。 AO.は昇順のソートを意味し、DO.は降順のソ
ートを意味する。もしも順序指定子が組み合せ列
に現れるならば、結果表はその列の要素によつて
ソートされる。もし2個以上の順序指定子が組み
合せ印刷照会中に現れると、データは最初に順序
指定子中の最低の整数値によつてソートされ、次
に残りの順序指定子中の次に大きな整数値によつ
てソートされる。 定義された表だけが組み合せ印刷照会中で名付
けられる。即ち照会されている表は既に存在して
いなければならず、且つそのユーザに利用可能な
表のライブラリ中になければならない。また参照
される列は、定義された表の一部分として定義さ
れていなければならない。 修飾された検策は条件及び/又は黙示的述語を
含むものである。黙示的オペランド述語から形成
された全ての基本述語及び全ての条件は、選択基
準を形成するために論理積を取られる。条件の評
価に関するのと同じ規則が選択基準の評価に適用
される。組み合せ印刷照会から形成されたECP
の各行が処理される時、選択基準に適合する行か
ら得られた要素のみが組み合せ印刷照会結果表に
現れる。 組み合せ印刷照会は、単純検策でも又照会従属
型の検策でもありうる。 組み合せ印刷照会は、照会中にソース行が全く
現れなければ、単純検策である。表の行からの要
素の選択は、同じ行の要素の値にしか存在しな
い。ECPは、組み合せ印刷表の中で言及された
表のコピーである各組み合せ印刷行毎に形成され
る。組み合せ印刷照会は、もしそれが組み合せ印
刷行に連係された1つ以上のソース行を含めば、
照会従属型検策照会である。組み合せ印刷照会中
の条件は1つ以上の条件ボツクス中に表わしても
よい。 同じ例示表に2以上の組み合せ印刷行が現れる
時、各組み合せ印刷行は別個の照会のように取り
扱れる。ECPは組み合せ印刷行によつて参照さ
れた表のコピー及び組み合せ印刷行に連係された
例示行毎のソース表のコピーから成る組み合せ印
刷行毎に形成される。次に各照会からの結果が、
1つの結果表を形成するために、合併される。も
し組み合せ印刷照会がソート基準を含めば、その
結果は最終的な結果表にのみ現れる。 表11はターゲツト印刷照会の構文を与えてい
る。ターゲツト印刷照会は、条件リストを有する
ことのある、ソース表リスト及びターゲツト印刷
表である。ターゲツト印刷表は、行フイールド7
にターゲツト行属性を有し、データ・フイールド
9にターゲツト記入項目を有する例示表であり、
ターゲツト行属性及びターゲツト記入項目は反復
可能である。ターゲツト行属性は印刷コマンド
と、任意的に付加される集合指定子とが続いたも
のである。印刷コマンドは「P.」で表わされる。
ターゲツト記入項目は、式の前に任意的に順序指
定子及び印刷コマンドが付加されたものである。 「ターゲツト印刷行」という用語は、ターゲツ
ト行の中の全てのターゲツト記入項目を集合的に
参照するために用いられる。もしターゲツト印刷
行のターゲツト行属性が印刷コマンドを含まなけ
れば、そのターゲツト印刷行に含まれる各ターゲ
ツト記入項目が印刷コマンドを含まなければなら
ない。もしターゲツト印刷表が2以上の順序指定
子を含めば、各順序指定子は整数値を含まなけれ
ばならない。もし整数値が1つのそのような順序
指定中に現れるならば、同じターゲツト印刷表中
の他の順序指定子中に同じ値が現れてはいけな
い。 この例の組み合せ印刷照会によれば、1つのソ
ース表からの要素のコピーのみを含む結果表を得
る事ができるが、一方ターゲツト印刷照会は2つ
以上のソース表からの定数値、式及び要素を含む
結果表を形成する事を可能にする。一般に、概念
的に、ターゲツト行に連係されたあらゆる例示行
に関するソース表のコピーから成るECPが形成
される。 組み合せ印刷照会はターゲツト印刷照会構文で
表現する事ができる。多数のターゲツト印刷行が
ターゲツト印刷照会に現れる時、組み合せ印刷照
会の場合と同様、各印刷行は別個の照会のように
取り扱れる。ECPは各照会毎に形成され、その
結果は最終的な結果表を形成するために合併され
る。ソート基準は最終的な結果表のみに適用され
る。 保守照会は挿入、削除、更新及び創性の照会で
ある。 第12は挿入照会構文を示す。挿入照会は、挿入
表及びその前に任意的に付加される条件リスト及
びソース表リストより成る。挿入表は表名フイー
ルド3に表名を、列フイールド5に列名を、行フ
イールド7に挿入行属性を、そしてデータ・フイ
ールド9に挿入記入項目を有するソース表2であ
る。複数の列名及び挿入記入項目フイールドがあ
つてもよい。挿入コマンドは「I.」で表わされ
る。 「挿入行」という用語は挿入行属性及び1つ以
上の挿入記入項目を含む1つの行を集合的に参照
するために用いられる。挿入表の挿入行中の挿入
記入項目の数はその挿入表中の列名の数に等し
い。与えられた列名は、挿入表中に2回以上含ま
れていてはならない。ここで、挿入照会の挿入表
の表名は、その挿入照会のソース表の表名であつ
てはならない。(この限定は、SQL行挿入におけ
るSQL照会の仕様が、増補された表を参照して
はならないというSQLの規則による。) 挿入照会は、既存の表に対して1つ以上の行を
付加させる。単純挿入照会は、全ての挿入値が定
数であるようなものである。照会従属型挿入照会
は、挿入値が1つ以上のソース行からの要素を含
むようなものである。挿入行中で言及されなかつ
た(表に関して定義された)列は、表に挿入され
た各々の新しい行毎に空白値を受け取る。照会従
属型照会中に2つ以上のソース行が現れるならば
各ソース行に関するソース表のコピーを含む
ECPが形成される。 表13は更新照会の構文を示す。更新照会は、任
意的に付加される条件リスト及びソース表リスト
を有する事のある更新表より成る。更新コマンド
は「U.」で表示される。 「更新行」という用語は、ソース記入項目又は
列更新記入項目を集合的に参照するために使われ
る。更新表において、更新行中の更新記入項目の
数は列名の数に等しくなければならない。列更新
行は少なくとも1つの列更新項目を含まなければ
ならない。(この規則は、ソース行と列更新行と
の間の構文上のあいまいさを解決する。)更新コ
マンドを含む列更新記入項目はソース記入項目を
参照してはならない。(この制限はSQL行更新中
のSQL照会仕様が、更新される表の列しか参照
できないというSQLの規則による。) 更新照会は、表の選択された行の中の既存の要
素を変更する。更新照会は、その照会がソース行
を含まなければ、単純照会である。また更新照会
は、その照会が1つ以上のソース行を含めば照会
従属型更新である。ECPを形成するための条件
は挿入照会に関するものと同じである。 表14は削除照会の構文を与えている。削除照会
は表並びに任意的に付加される条件リスト及びソ
ース表リストとより成る。削除表は、フイールド
3に表名を、1つ以上のフイールド5に列名を有
し、フイールド7に削除コマンド及び1つ以上の
フイールド9に削除記入項目を含む1つ以上の行
を有し、任意的にソース記入項目を有する例示表
2である。削除コマンドは「D.」で表示される。
削除記入項目はソース項目である。 「削除行」という用語は、削除表中の1つの行
の削除コマンド及び削除記入項目を集合的に参照
する。 削除表の削除行中の削除記入項目の数はその表
の列名の数に等しくなければならない。削除照会
の削除表に含まれる表名は、削除照会のいかなる
ソース表にも含まれていてはならない。(この制
限はSQL行削除中のSQL照会仕様が、変更され
ている表を参照してはならないというSQLの規
則による。) 削除照会は表から行を削除する。削除照会は、
照会中にソース行が現れなければ、単純削除照会
である。また削除照会は、1つ以上のソース行が
照会中に現れるならば、照会従属型削除である。
もし照会中に2以上の削除行が現れるならば、各
削除行は別個の削除照会のように取り扱われる。
ECPは、削除行によつて参照された表のコピー
及び削除行に連係された各ソース行によつて参照
された表のコピーから成る各削除行に関して形成
される。 第5図を参照して、本発明の翻訳手段を実現す
る時に用いられる1つの可能な構造を説明する。
GFTSQL70は、その中にSQL照会文が生成さ
れる、記憶装置中のバツフア領域であり、第7図
〜第12図の手続きの出力を形成する。生成され
たSQL照会文の例は下記の表に示されており、
後に詳述する。 第5図に示す表の集まりは、DXEGFT表106
と呼ばれる。 GFTTABLE72は、照合Qの例示表2毎に
1つの記入項目を与える。GFTTABLE72の
内容91は表15に示されている。左側に示したの
がフイールド名で、右側がその内容の説明であ
る。その中には、GFTCOLMN78へのポイン
タ73を与えるGFTPTCOL/GFTCOLCT74
及びGFTROW82へのポインタ75を与える
GFTPTROW/GFTROWCT76が含まれる。 GFTCOLMN78は、照会Qの例示表の列毎
に1つの記入項目を与える。GFTCOLMN78
の内容89は表16に示されており、GFTSQL7
0へのポインタ71を与えるGFTCNMPTフイ
ールド80を含んでいる。 GFTROW82は、照会Qの例示表の行毎に1
つの記入項目を与える。GFTROW82の内容は
表17に示されており、GFTCOLCN96へのポイ
ンタ87を与えるGFTPTRCL/GFT#FLDSフ
イールド84及びGFTTABLE72へのポイン
タ77を与えるGFTBLEIXフイールド86を含
んでいる。 GFTCOLCN96は、照会Qの例示表の各デー
タ・フイールド9毎に1つの記入項目を含む。
GFTCOLCN96の内容99は表18に示されてお
り、GFTCNTNT104へのポインタ105を
与えるGFTPTRCN/GFTCONLNフイールド
98及びGFTROW82へのポインタ81を与え
るGFTROWIX100を含む。 GFTCNTNT104は、可変長記入項目の集
まり101を与え、各記入項目は例示表のデー
タ・フイールド9中の条件の内容を含んでいる。 GFTCDATA88は、条件ボツクス6又は例
示表のデータ・フイールド9の中に現れる条件毎
に1つの記入項目を与える。GFTCDATA88
の内容は表19に示されており、GFTCONTB1
02へのポインタ103を与える
GFTPTCDT/GFTCDTLN90,GFTROW8
2へのポインタ83を与えるGFTBINDR92、
及びGFTROW82へのポインタ85を与える
GFTSIMCN94を含む。 GFTCONTB102は可変長記入項目の集ま
り97を与える。各記入項目は条件である。 第6図に関連して説明されるように、ポイン
タ、フイールド及びフラグが解析フエーズの間に
初期設定され、合成フエーズの間に利用され変更
される。これらのDXEGFT表106において、
種々のインデツクス、エクステント及びフラグを
用いて、前述の拡張された直積(ECP)が論理
的に形成される。解析フエーズ中に、モジユール
DSQGFTT114が、QBE照会文の各例示表2
毎に表名3を含むデータをGFTTABLEに形成
する。次に表の名列毎に、モジユール
DSQGFTT114はGFTPTCOL/GFTCOLCT
74によつてインデツクスされる位置の
GFTCOLMN中に列名GFTCNAME及びその列
に特有のデータ(例えばP.フラグGFTCLMP)
を記入する。 次にGFTT114は、例示表の各行毎に1つ
の記入項目を用いて、GFTROW82を初期設定
する。この記入項目は、フイールド
GFTROWNM中に生成された行名(RN)を含
む、行に関するデータを有する。ここで、行名は
照会の各N行に割り当てられた独得の識別子であ
つて、#@$0000Nの形を有する。 次にGFTT114は、照会に含まれる各デー
タ・フイールド毎に、行のデータ記入項目に関す
るGFTPTRCL/GFT#FLDS84によつてイン
デツクスされる位置のGFTCOLCN96の記入項
目を初期設定する。GFTCOLCN96は、照会の
各データ・フイールド毎に実際のデータが記憶さ
れるGFTCNTNTの記憶位置のインデツクス及
びデータ・フイールドに関する情報を含む。 次にモジユールDSQGFTS116が、
GFTCOLCN96から導出された情報から
GFTCDATA88及びGFTCONTB102を形
成する。GFTCDATAは条件に関する情報を含
み、GFTCONTB102は条件自体を含んでい
る。表GFTCDATA88及びGFTCONTB10
2は各条件毎に1つの記入項目を有する。
GFTCDATA88及びGFTCONTB102を形
成するために、モジユールDSQGFTS116は
データ・フイールド中に単独で現れる例示要素の
位置を見つけて、それをGFTCOLCN96の
GFTBOUNDフイールド(表18)に束縛されて
いると記録する。次にGFTCOLCN96の中の同
じ例示要素が他のどこかに(上記の意味で)束縛
されているかどうかを調べる。もしそうであれ
ば、条件が黙示され、GFTCONTBの内容97
中に条件記入項目が形成される。このようにして
GFTCOLCN96中の例示要素の全てが、黙示条
件を識別するために処理された時、DSQGFTS
116は、束縛された例示要素ではない
GFTCOLCN96中のデータ・フイールド記入項
目を処理する。そのような記入項目は条件であ
り、条件はGFTPTRCN/GFTCONLN98に
よつてインデツクスされるGFTCNTNTの内容
101から取り出され、GFTCONTBの中に置
かれる。もし例示要素がGFTCNTNT104の
中の条件中に現れるならば、それは
GFTCONTBの内容97にロードされる時にそ
れが束縛されている所のデータ・フイールドの名
前によつて置き換えられる。最後に、
DSQGFTS116は照会の条件ボツクス6中に
現れる条件を調べる。これらは事前にDXEGFT
106のいずれの表にもロードされていない。従
つて条件8は、GFTCOLCN96の
GFTCORNMフイールドから得られた条件に現
れる例示要素の名前(RN.CN)と共に、
GFTCONTB97にロードされる。 解析フエーズの間、P.,I.,U.又はD.を含む例
示テーブルに関するGFTTABLE72の記入項
目が識別されポインタGFTGT(図示せず)によ
つて指示される。 合成フエーズの間、DXEGFT106の諸表
が、SQL即ち線型言語を合成するために、調べ
られ更新される。例えばP.照会文の合成期間にお
いて、等価なSQL文を作成するためにモジユー
ルDSQGFTP120が呼び出される。GFTS11
6が処理を行なつている間、何らかの条件が行を
参照すればGFTROW中にGFTCDTRFがセツト
され、行の中の条件が交差項を持てばGFTROW
82中のGFTXTRMSがセツトされる。(もし条
件が単純な条件であればGFTCDTRFのみがセツ
トされる。)GFTP120はSQLバツフア70を
形成する。P.を持つ行を判別するために
GFTCOLMN78が調べられる。表名は
GFTGTによつてインデツクスされるように、
GFTTABLE72から得られる。GFTROW82
の走査中、少なくとも1つの条件が存在する事を
示すP.フラグが見つかつた時、GFTCDATA8
8が探索され、条件がGFTCONTB102中で
位置を定められ、SQLバツフア70に付け加え
られる。 第7図〜第12図及び表20〜表48と共に第6図
を参照して、本発明を実現するように構成された
種々のプログラム・モジユールの詳細な説明を行
なう。 第7図は、モジユールGFTM110,GFTT
114及びGFTS116の制御の下に実行される
解析フエーズについて説明している。このフエー
ズは表20A及び20Bに詳細に説明されている。 図式的言語管理プログラムDSQGFTM110
は、ユーザの作成したQBE照会文から等価な
SQL照会文への翻訳を制御し初期設定を行なう。
初期設定はユーザの照会中の表、行及び列の数の
判定並びに第5図に示す表及びデータ領域を構成
するGFT共通変数構造DXEGFT106のために
必要な空間の獲得とその後の解放を含む。
DSQGFTM110は、ユーザが照合Q中の全て
の必要なパラメータを渡す事を保証するために線
113によつて表わされるようにパラメータ・プ
ロセツサ112を呼び出し、その後線115及び
117で各々示されるように例示表アナライザ
GFTT114及びそれに続いてソース表及び条
件プロセツサGFTS116を呼び出す事によつて
翻訳を制御する。 例示表プロセツサDSQGFTT114は、ユー
ザの照合Qに含まれる例示表の解析を行なう。そ
れが実行するのは第7図のステツプ152であり、
表20Aの行304〜306に詳細に示されてい
る。GFTT114は第5図の表DXEGFT106
に修飾子、表及び列の名前を記入し、有効な内容
だけを保証するために名前フイールドをテストす
る。各行の行フイールドはそれらが有効な演算子
のみを含んでいる事を見るために解析され、使用
された演算子の型を示すために表DXEGFT10
6中のフラグがセツトされる。生成されたSQL
照会文中の相関変数として用いられる行名RNが
各例示表毎に生成される。(ここで行名と相関変
数とは同義語である。)データ・フイールドは、
それらが有効な演算子を含んでいる事を見るため
に解析され、それに従つてDSTGFTにフラグが
セツトされる。また既存の例示要素及び式が
DXEGFTに置かれ、引用符中にない文字定数が
引用符中に保存され、“null”及び“not null”
が表106への記憶の前に“IS NULL”及び“IS
NOT NULL”に翻訳され、そしてデータ・フ
イールド9に単独で現れる例示要素が識別され
る。また照会全体の誤りの検査が行われ、行に
I.,U.,P.、又はD.を有する例示装置が識別され
る。 この実施例において、本発明にとつて本質的で
はないが、GFTT114の処理のパラメータ代
入フエーズの間に、パラメータは左上隅のフイー
ルド(表名フイールド3)から出発して各列の上
から下へ左から右へ進行しながら各表フイールド
毎に代入される。GFTSQLバツフア70は、値
がパラメータ名に代入された後に表を含むために
用いられる。後に、GFTSQL70は空白にされ
次に照会QからのSQL翻訳文を入れるために用
いられる。GFTT114は、照会の走査中にシ
リアル・トークンを読む毎にトークナイザ134
に行く。 表及び列名フイールド3,5の走査に引き続い
て、GFTT114は行フイールド7を走査する。
行フイールド7はP.,D.,I.又はU.のみを含む可
能性がある。各行毎に、一意性のために行インデ
ツクスを用いて、相関変数が形成される。各相関
変数は、ユーザの照会中に識別子として使われる
ことのない文字の組、例えば文字の組#$@を用
いて識別される。データ・フイールド9はP.,
U.,AO.,DO.ソート優先順位、条件、又は式を
含んでいてもよい。単純な行はP.,I.,U.又はD.
の演算子の混合物を持たないかもしれない。P.だ
けは行フイールド7とデータ・フイールド9の両
者に現れるかもしれない。ある表の行がこれらの
演算子の1つを含む時、もしも前の表がこれらの
演算子の1つを有する行を持てば、その照会は無
効である。なぜならば1つだけの表しかP.又はI.
又はU.又はD.の演算子を持ち得ないからである。
もし行が「純粋な」ソース行(それは定義照会で
ない名前付の表の中に現われ、行はP.,I.,U.又
はD.の演算子のいずれも持たない)であれば、
それはALL.又はUNQ.の指定子を有してはなら
ない。この解析の結果はDXEGFT106の表フ
ラグ・ビツトに記憶される。 図形形式ソース及び条件処理モジユール
DSQGFTS116は、条件ボツクス6の中に形
成されたソース・フイールド9及び条件8を処理
する。このモジユールは第7図のステツプ154〜
160、より詳細には表20A及び20Bの行308〜
330に示すステツプを実行する。 ソース・フイールドは条件又は例示要素(EE)
のいずれかを含むデータ・フイールド9である。
ソース・フイールドは下記のいずれのものでもあ
りうる。(1)純粋ソース行、即ちP.,I.,U.又はD.
を含まない名前付き例示表2中の行、の中のデー
タ・フイールド;(2)名前付き表2のP.行に現れる
データ・フイールド;(3)名前付き表2のD.行に
現れるデータ・フイールド;(4)U.を含まないが、
U.を含む行の中にあるデータ・フイールド。ま
たソース・フイールドは下記のいずれのものでも
あり得ない。(1)名前の付いていない表4中のデー
タ・フイールド;(2)U.を含むデータ・フイール
ド;(3)I.を含む行の中のデータ・フイールド。 もし例示要素(EE)が(P.,AO.,DO.,又は
U.に関するものを除いて)ソース・フイールド
中に単独で現れるならば、それはデータ・フイー
ルドを定義するものとしてフラグされ、そのデー
タ・フイールドに対して「束縛」されていると呼
ばれる。EEはそれが定義している行及び列に対
して束縛されていると呼ばれるが、EEは出力表
中の行、行フイールドにI.又はU.を含む行、表定
義中の定義行として使われる行、又はI.,U.もし
くはD.を含む列には束縛され得ない。EEは2回
以上束縛される事もあり得る。そのような場合、
純粋ソース行でない2つの別の行にEEが束縛さ
れていなければ等価条件が生成される。もし同じ
EE名が2つ以上のソース・フイールド9の中に
現れるならば、等価条件が黙示され、条件が生成
され、その黙示された条件に関してDXEGFT表
中に記憶される。新たに束縛されたEEが、以前
に発見された束縛EEと同じ名前を持つ時、条件
が生成される。同じ名前を持つ3つ以上の束縛さ
れたEEが存在する時、EEの等価性を保証するた
めに最初のヒツトに基いて条件が生成される。ま
た黙示的オペランド述語(条件)がソース・フイ
ールド9に現れることがある。もしそうであれ
ば、列名5が、その条件に先行する黙示的なオペ
ランドである。もし黙示的オペランド述語に何の
比較演算子も先行していなければ、「等価」が黙
示される。条件は、それを含む行に関する相関変
数及びそれを含む列に関する列名5を用いて、完
成されDXEGFT表106に記憶される。条件は
GFTCDATA表88及びGFTCONTB表102に記憶
される。GFTCDATA表88の記入項目は条件に
関するデータを含む。GFTCONTB表102は条件
自体を含む。GFTCDATAへの記入項目は、例
示表中の特定の行及び列への条件中の最初の参照
によつて始められる。参照は、生成された条件に
関するEEでも、例示表条件からの黙示的参照で
も、又条件ボツクス8中に現れるEEでもよい。
これは例示表に対する条件による最初の参照なの
で、条件が2以上の行を参照するかどうか不明で
ある。最初に、1つだけの行が参照されると仮定
する。参照された行及び列に関する相関変数は
GFTCONTB表102に移動される。もし参照が
EEであれば、相関変数はEEに置き換わる。後
に、もし相関変数が不必要になれば、それは条件
から取り除かれる。条件ボツクス6に現れる条件
が処理され、例示要素によつて参照された列及び
行に関する列名及び相関変数を用いて例示要素参
照を置き換える。条件は、P.,U.又はD.の演算
子を含む2つの行を交差参照する条件がないか見
るために誤をテストされる。各条件に関するデー
タ、例えば条件が2つ以上の行を参照しているか
否かが判定されDXEGFT表106に記憶される。
条件中のEEは常に参照を行なうEEである。それ
が参照している行及び列を定めるためにデータ・
フイールド中に同じEEが使われなければならな
い。もしEEがそのように定められていなければ、
EEは未定義としてフラグされる。定義されたEE
は参照済として記録される。 検索処理モジユールDSQGFTP120はP.を
含み且つ名前付き表2の中にある行を処理する図
形形式P.処理モジユールである。これは第8図に
示すステツプ170〜180、即ち表21及び22に詳細に
示すステツプを実行する。表23〜29は種々のP.照
会及び生成された等価なSLQ照会文を示してい
る。 もし名前付き表2のP.行が他の行に連係されて
いなければ、それは表3に示されるような、単純
な検索照会である。もしもそのような行が1つ以
上の他の行と連係されていれば、その照会は表24
〜29に示すような、照会従属型の検索照会であ
る。2つの行は、何らかの条件が両方の行を参照
していれば、連係していると言われる。同じ行に
連係された2つの行も互いに連係されている。表
23の単純な検索照会は、同じ行の中のデータだけ
に基づいて表の各行からデータを選択する。表
24,25及び27に示すような従属型の検索照会は、
他の表の中のデータに基づいて表の各行からデー
タを選択する。多重照会は、表26及び27に示すよ
うに、2つ以上のP.又は2つ以上のD.行を含むも
のである。 単一のSQL SELECT文が、全ての単純な検索
行毎に生成される。例示表の表名フイールド3中
の表名はSQLのFROM節で使われる。単純な検
索行を参照する複数の条件は、互いに論理積を取
られる。もし2つ以上の単純検索行が存在すれ
ば、1つの行を参照する条件は他の単純検索行を
参照する条件と論理和を取られる。そのような全
ての行条件は、生成されるSQLのWHERE節中
に現れる。 またSQLのSELECT文は、検索要求中に現れ
る各々の照会従属行毎に生成される。生成される
FROM節は、P.行を含む表2の表名及び各々の
連係された行毎に、連係された行を含む表表の表
名を含む。相関変数名はFROM節中の各表名に
続く。相関変数名は、表名をFROM節に移動さ
せる連係された行の行名である。DSQGFTT1
14によつて各行毎に一意的な行名が生成され
る。これは、nを照会中の行数として、
#@$0001,#@$0002,…,#@$000nの形
式を有する。表に示した例では、「#@$」の形
式がしばしば用いられ、しばしば行名はX,Y等
の文字で表される。これは#@$形式を表わすも
のと解釈すべきである。連係された行を参照する
全ての条件は、生成されるSQL中のWHERE節
中で論理数を取られ、GFTSQL70に記憶され
る。またSQLのUNION文が各々の生成された
SQL要求の間で生成される。UNIONは全ての重
複を除去する。従つて、もし2以上のP.行が使わ
れるならば、言語規約は全ての重複が除去される
事である。もしALL.が用いられ且つただ1つの
P.行があれば、重複は保持され部分照会が生成さ
れなければならない。というのは外結合(outer
join)は偽の重複を形成し得るからである。 P.を含む列の列名は全ての生成されるSQL文で
使用される。SQLの構文は、UNIONされた
SELECT文に関しては同じ列が選択される事を
要求する。この理由により、P.を含む例示表2の
全ての行は同じデータ・フイールド中にそれらを
有しなければなない。行フイールド7のP.は、名
付けられた列の下、その行のデータ・フイールド
の各々におけるP.と等価である。もし照会が1つ
以上のソート記述を含んでいれば、SQLの
ORDER BY節が生成される。 DSQGFTX126は明示的ターゲツト・プロ
セツサである。このモジユールは、P.を含み且つ
名前の付けられていない表4の中にある行を処理
する。これは、ターゲツト検索照会としても知ら
れる、出力表検索照会である。そのような表はタ
ーゲツト表又は出力表と呼び得る。GFTX12
6は、第9図及び表30及び31に詳細に示されるス
テツプを実行する。表32〜35は、名付けられてい
ない表4に現れるP.照会の例を示す。表32は、2
以上の表からデータを組み合せるため及び/もし
くはデータを集めるためにターゲツト検索を使用
し得る事を示している。ターゲツト行は新しい行
に挿入されるべきデータを特定する。ターゲツト
行には何の条件も表現し得ない事に注意された
い。表33は、ターゲツト表に複数のP.行を有する
多重ターゲツト検索を説明するものである。表34
は、ターゲツト行に連係された行が外部照会中に
結合される、外結合について説明している。表35
は多重ターゲツト検索のUNIONへの翻訳を説明
している。 従つてターゲツト表に存在するP.行毎にSQLの
SELECT節が生成される。選択リストは、それ
に関してSELECT文が生成されるP.行のデー
タ・フイールド9に存在する定数又は式を含む。
そのようなP.行は、他の行で定義されたEEを参
照する事によつて要求中の他の行を参照する。そ
のようなEE参照は、それが定義されている行の
相関変数(形式#@$000nの行名RN)及び定義
行を含む表2の表名によつて置き換えられる。生
成されるSQLのFROM文は、結合された行の
各々に関してその行を含む表2の表名(TN)を
含んでいる。そのような表名の各々には相関変数
が続く。相関名は、表名をFROM文に移動させ
る行の名前である。P.において参照された行又は
ターゲツト行を参照する全ての条件はSQLの
WHERE節で論理積を取られる。SQLのUNION
文は、各々の生成されたSQL要求の間に生成さ
れる。もし要求がソート仕様を含めば、SQLの
ORDER BY節が生成される。 DSQGFTDモジユール118はD.(削除)プロ
セツサである。このモジユールは、D.を含み且
つ名前付き表2の中にある行を処理する。もしそ
のような行が他の行に連係されていなければ、そ
れは単純な削除行である。もしそのような行が削
除行に連係されていれば、それは従属行である。
2つの行は、もしも何らかの条件が両方の行を参
照していれば、連係していると言う。同じ行に対
して連係された2つの行は互いに連係している。
GFTD118は、第10図及び表36に示す手続
きを実行する。表37〜39は、単純削除、従属型の
削除及び多重削除の各々の例を示す。 GFTD118の処理によつて、SQLの
DELETE節及びFROM節が最初に生成される。
D.を含む例示表2の表名がFROM節で使用され
る。もし何らかの条件が存在すれば、WHERE節
が生成される。単純D.行のみを参照する(複数
の)条件はWHERE節で論理積を取られる。もし
も照会従属行が存在すれば、互いに及びD.行に
連係された従属行の組毎にSQLの部分照会文が
生成される。そのような部分照会文の各々は、
WHERE節中で以前に生成された部分照会文又は
条件に対して、SQLのEXISTS比較演算子を用い
て、論理積を取られる。SQLのSELECT*は
FROM節に引き続いて、各部分照会中に生成さ
れる。(SELECT*は、行の全てのフイールドを
選択するための、SQLにおける短縮表記であ
る。)部分照会のFROM節は、連係された各行毎
にその連係された行を含む表2の表名3を含む。
そして相関変数名がFROM節のそのような表名
の後に続く。相関変数名は連係された行の行名
RNである。連係された行を参照する全ての条件
は、生成された部分照会中のWHERE節中に論理
積を取られる。もし2つ以上のD.行が存在すれ
ば、1つのD.行を参照する条件は、別のD.行を
参照する条件と論理和を取られる。 更新処理モジユールDSQGFTU124はU.コ
マンドを処理する。GFTU124は、第11図
及び表40に示す手続を実行する。表41は単純更新
照会U.及びそれに等価なSQLの例を示し、表24
は従属型更新を説明している。 GFTU124は更新照会U.毎に1つのSQLの
UPDATE文を生成する。QBE照会Qには1つだ
けのU.行が現れる可能性がある。U.を含むどの
列も、U.行中の他の列しか参照し得ない。これ
は同じ表の同じ行からしか更新を行ない得ないと
いうSLQの制限のためである。SQLのSET文は、
同じ行中の他の列を参照する定数値又は式のいず
れかを用いて生成される。もしU.行が他の行に
連係されていなければ、それは単純更新照会であ
る。もしU.行が2つ以上のものに連係されてい
れば、その照会は照会従属型の更新照会である。
2つの行は、何らかの条件が両者の行を参照して
いれば、連係していると言う。同じ行に連係され
た2つの行も互いに連係している。 U.行のみを参照する条件は互いに論理積を取
られ、SQLのWHERE節中に生成される。もし
照会が単純更新であれば、SQLは完成する。も
し照会が照会従属型の更新であれば、SQL部分
照会が生成され、部分照会を結合するために
SQLのEXISTS接続子を用いてWHERE節中に既
に存在している条件と論理積を取られる。部分照
会のFROM節は、連係された行毎にその連係さ
れた行を含む表2の表名3を含む。FROM節の
各表名に続いて相関変数名が置かれる。相関変数
名は、表名がFROM節に移動される原因となつ
た連係された行の行名である。連係された行を参
照する全ての条件は、生成されるSQL部分照会
中のWHERE節に論理積を取られる。 DSQGFTIモジユール122は挿入照会I.を処
理する。GFTI122は第12図及び表43に示す
手続を実行する。表44は単純挿入照会の例であ
り、表45は従属型挿入照会の例である。各々は
QBE照会形式とそれに等価なSQL照会を示して
いる。 GFTI122は1つのQBE挿入照会I.に関して
1つのSQLのINSERT文を生成する。もし定数
だけが挿入行に現れるならば、それは単純挿入照
会であり、INSERT文だけが生成される。もし
要求中の他の行が挿入行(従属挿入行)に連係さ
れるならば、SQLのINSERT文の後にSELECT
文が生成される。1つだけのような文が生成され
る。SELECTリストは、I.行のデータ・フイール
ド9に存在する定数又は式、及びI.行に連係され
た他の表2の列5を参照する定数又は式を含む。
また、連係された行毎にその連係された行を含む
表2の表名3を含むSQLのFROM文が生成され
る。そのような表名の各々に相関変数が続く。相
関変数は、照会中の各行毎にDSQGFTT114
によつてDXEGFT106中に生成され記憶され
た独得の名前である。I.行中で参照された行を参
照する全ての条件は、WHERE節中で論理積を取
られる。 トーケナイザ・インタフエース・モジユール
DSQGFTK134は、線121,123,12
7,131及び135に示すように、トークン処
理を行なうために、DSQGFTU124,
DSQGFTD118,DSQGFTP120,
DSQGFTT114,及びDSQGFTS116によ
つて使用されるサービス・モジユールである。 部分照会生成モジユールDSQGFTDP136
は、処理される照会が照会従属型検索照会の時に
使用され、各々線141,137,133A,1
25及び131Aに示すように、GFTX126,
GFTU124,GFTI122,GFTD118及び
GFTP120によつて呼び出される。それは、フ
ラグFRWHRの設定によつて選択される2つの
機能に役立つ。もし、呼び出された時に
FRWHRがオフであれば、1つ以上の行が連係
されたものとみなされ、このモジユールは照会中
に存在する条件を調査し、連係された行を参照す
る条件をフラグし、既に連係されている行を参照
する条件によつて連係された付加的な行をフラグ
する。ヒツト・フラグは、条件が参照されたもの
と判定されるか又は行が連係されたものと判定さ
れる度にターン・オンされる。呼び出しが行なわ
れ且つFRWHRフラグがオンの時、このモジユ
ールはフラグされた行及び条件を用いてSQLの
FROM節及びWHERE節を生成する。FROM節
は、連係された行を有する表2の名前3を含み、
その後には各々の連係された行に関する相関変数
名が続く。SQLのWHERE節は全てのフラグさ
れた条件を含み、それらは互いに論理積を取られ
る。 DSQGFTSEモジユールはモジユールへの入口
を示すトークン・ストリングを用いて、SQLの
SELECTリスト記入項目を生成するために、
GFTI122又はGFTX126によつて呼び出さ
れる(線133又は143)。データ・フイール
ドの内容はSQLバツフア70に移動される。も
しデータ・フイールドが例示要素を含めば、例示
要素は参照されたものとして記録され、例示要素
が定義される全ての行は、データ・フイールドを
含む行に対して連係されたものとフラグされる。
また後続されるコンマは、バツフアに移動される
次のフイールドからSELECTフイールドを分離
するためにSQLバツフア70中に移動される。
モジユールの呼び出しは最後のコンマを除去す
る。 DSQGDTOB130はSQLのORDERBY節を
生成し、GFTP120又はGFTX126によつ
て呼び出される(線129又は139)。 表46はSQL表の表示を形成するために表22,
31,40及び43によつて呼び出される手続を示す。
表47は、SQL探索条件(SC3)を形成するため
に、表36,40,46の手続によつて及び再帰的に表
47の手続によつて呼び出される探索条件形成手続
を示す。表48は、複数の条件ボツクスを含む照会
のSQL等価物を示す。同じ行を照会する条件は
等価なSQL7参照中で論理積を取られ、異なる
行(P.又はD.)を参照する条件は論理和を取られ
る。 表 1 (文字構文) 文字::=数字:英文字:特殊文字 数字::=0:1:2:3:4:5:6:7:
8:9 英文字::=A:B:C:D:E:F:G:
H:I:J:K:L:M:N:O:P:Q:
R:S:T:U:V:W:X:Y:Za:
b:c:d:e:f:g:h:i:j:k:
l:m:n:o:p:q:r:s:t:u:
v:w:x:y:z #:@:$ 特殊文字::=数字又は英文字以外の任意の
EBCDIC図形文字 表 2 (定数構文) 定数::=ストリング定数:数値定数 ストリング定数::=’文字…’:識別子 数値定数::=整定数:10進定数:浮動小数点
定数 整定数::=〔+:−〕整数 整 数::=数字… 10進定数::=〔+:−〕{整数.:〔整数〕.整
数} 浮動小数点定数::={10進定数:整定数}E
整定数 識別子::=英文字〔英文字:数字: 〕… 区切られた識別子::=“文字…” 表 3 (名前構文) 表名::=〔名前修飾子.〕識別子:区切られた
識別子 列名::=識別子:区切られた識別子 名前修飾子::=識別子:区切られた識別子 例示要素::= {英文字:数字}〔英文字:
数字…〕 表4 (トークン構文) キーワード::=NOT:IN:LIKE:AND:
OR:=:−=:>:>=:<:<=:−:
P.:I.:U.:D. キーワード発生::=ストリング定数中に含ま
れないキーワード トークン::=識別子:例示要素:数値定数:
順序指定子:キーワード発生 スペーサ::=1つ以上の空白文字列 表 5 (式構文) 式 ::=算術項 :式 挿入演算子1 算術項 挿入演算子1::=+:− 算術項::=算術因子 :算術項 挿入演算子2 算術因子 挿入演算子2::=*:/ 算術因子::=〔接頭演算子〕素子 接頭演算子::=+:− 素 子::=定数:例示要素参照:(式) 例示要素参照::= {英文字:数字}〔英文
字:数字…〕 表 6 (述語構文) 述語::=基本述語:IN述語 :LIKE述語:NULL述語 基本述語::=式 比較演算子 式 比較演算子::==:−=:>:<:>=:<
=:− IN述語::=式〔NOT〕IN(定数〔,定数〕
…) LIKE述語::=例示要素〔NOT〕LIKE文字
ストリング定数 NULL述語::=例示要素 NULL比較演算
子 NULL記号 NULL比較演算子::==:−=:− NULL信号::=NULL 表 7 (黙示的オペランド述語構文) 黙示的オペランド述語::=黙示的オペランド
基本述語 :黙示的オペランドIN述語 :黙示的オペランドLIKE述語 :黙示的オペランドNULL述語 黙示的オペランド基本述語::=〔比較演算子〕
式 黙示的オペランドIN述語::=IN(定数〔,
定数〕…) 黙示的オペランドLIKE述語::=LIKE文字
ストリング定数 黙示的オペランドNULL述語::=〔NULL比
較演算子〕NULL信号
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
トされる
【表】
ツフアへのポインタ
【表】
ればセツトされる
【表】
トされる
【表】
めばセツトされる
【表】
される
【表】
挿入する。
【表】
【表】
【表】
る。
【表】
は下記のように構成される。
【表】
【表】
る。
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
その時;
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
第1図は、本発明が用いられるデータ・ベー
ス・システムの概略を示す図、第2A図及び第2
B図は、図式的照会の例示表を示す図、第3図は
図式的照会の条件ボツクスを示す図、第4図は関
係データ・ベース及びそれをアクセスするための
典型的な図式的照会及び照会の応答結果を示す
図、第5図は図式的照会から線型照会を合成する
ために本発明の実施例により用いられるデータ構
造を示す図、第6図は本発明の実施例による処理
モジユールを示す図、第7図は第6図のモジユー
ル110,114及び116によつて実行される
ステツプを示す図、第8図は第6図のモジユール
120によつて実行されるステツプを示す図、第
9図は第6図のモジユール126によつて実行さ
れるステツプを示す図、第10図は第6図のモジ
ユール118によつて実行されるステツプを示す
図、第11図は第6図のモジユール124によつ
て実行されるステツプを示す図、第12図は第6
図のモジユール122によつて実行されるステツ
プを示す図である。 1……端末装置、2……線型照会(SQL)、3
……図式的照会(QBE)、4……照会管理機構、
5……CPU、6……翻訳手段、7……線型照会、
8……関係データベース管理機構、9……関係デ
ータベース、10……表示装置、11……印刷装
置、82……行名表GFTROW、96……列デー
タ表GFTCOLCN、88……条件表
GFTCDATA。
ス・システムの概略を示す図、第2A図及び第2
B図は、図式的照会の例示表を示す図、第3図は
図式的照会の条件ボツクスを示す図、第4図は関
係データ・ベース及びそれをアクセスするための
典型的な図式的照会及び照会の応答結果を示す
図、第5図は図式的照会から線型照会を合成する
ために本発明の実施例により用いられるデータ構
造を示す図、第6図は本発明の実施例による処理
モジユールを示す図、第7図は第6図のモジユー
ル110,114及び116によつて実行される
ステツプを示す図、第8図は第6図のモジユール
120によつて実行されるステツプを示す図、第
9図は第6図のモジユール126によつて実行さ
れるステツプを示す図、第10図は第6図のモジ
ユール118によつて実行されるステツプを示す
図、第11図は第6図のモジユール124によつ
て実行されるステツプを示す図、第12図は第6
図のモジユール122によつて実行されるステツ
プを示す図である。 1……端末装置、2……線型照会(SQL)、3
……図式的照会(QBE)、4……照会管理機構、
5……CPU、6……翻訳手段、7……線型照会、
8……関係データベース管理機構、9……関係デ
ータベース、10……表示装置、11……印刷装
置、82……行名表GFTROW、96……列デー
タ表GFTCOLCN、88……条件表
GFTCDATA。
Claims (1)
- 【特許請求の範囲】 1 ソース表又はターゲツト表を含む例示表の行
及び列の中並びに任意的に付加される条件ボツク
ス中に現われる、例示要素又は黙示的オペランド
述語を含む、1つ以上の要素として表現された図
式的言語による照会を線型言語の照会に翻訳する
計算装置であつて、 ソース表中の各行毎に1つの記入項目を有する
行名表の中に行名を生成する手段と、 上記行名表で指定された各行内にあつて例示要
素定義又は黙示的オペランド述語を含む各デー
タ・フイールド毎に、行名、列名及びデータを特
定する記入項目を列データ表中に生成し記録する
手段と、 黙示的条件を有する例示要素又は黙示的オペラ
ンド述語を含む各列データ表の記入項目毎に基本
的述語を含む記入項目を条件表の中に生成する手
段と、 上記行名表、列データ表及び条件表中に形成さ
れたデータ構造を用いて、図式的言語の照会から
線型言語の照会を合成する手段とを含む計算装
置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US470821 | 1983-02-28 | ||
| US06/470,821 US4506326A (en) | 1983-02-28 | 1983-02-28 | Apparatus and method for synthesizing a query for accessing a relational data base |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS59163661A JPS59163661A (ja) | 1984-09-14 |
| JPH0527149B2 true JPH0527149B2 (ja) | 1993-04-20 |
Family
ID=23869195
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP59035470A Granted JPS59163661A (ja) | 1983-02-28 | 1984-02-28 | 図式的言語による照会を線型言語の照会に翻訳する計算装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4506326A (ja) |
| EP (1) | EP0120185B1 (ja) |
| JP (1) | JPS59163661A (ja) |
| DE (1) | DE3485396D1 (ja) |
Families Citing this family (95)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4829427A (en) * | 1984-05-25 | 1989-05-09 | Data General Corporation | Database query code generation and optimization based on the cost of alternate access methods |
| US5097408A (en) * | 1985-01-11 | 1992-03-17 | Wang Laboratories, Inc. | Apparatus for specifying a result relation in a relational database system by selection of rows |
| US4888690A (en) * | 1985-01-11 | 1989-12-19 | Wang Laboratories, Inc. | Interactive error handling means in database management |
| US4769772A (en) * | 1985-02-28 | 1988-09-06 | Honeywell Bull, Inc. | Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases |
| US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
| US5202996A (en) * | 1985-10-11 | 1993-04-13 | Hitachi, Ltd. | Software structuring system and method by data table translation |
| US5047918A (en) * | 1985-12-31 | 1991-09-10 | Tektronix, Inc. | File management system |
| JPS62173545A (ja) * | 1986-01-27 | 1987-07-30 | Hitachi Ltd | デ−タデイクシヨナリ・デイレクトリの維持管理方式 |
| US4967341A (en) * | 1986-02-14 | 1990-10-30 | Hitachi, Ltd. | Method and apparatus for processing data base |
| US5123103A (en) * | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
| US4965763A (en) * | 1987-03-03 | 1990-10-23 | International Business Machines Corporation | Computer method for automatic extraction of commonly specified information from business correspondence |
| US4805099A (en) * | 1987-04-17 | 1989-02-14 | Wang Laboratories, Inc. | Retrieval of related records from a relational database |
| US4791561A (en) * | 1987-04-17 | 1988-12-13 | Wang Laboratories, Inc. | Interactive construction of means for database maintenance |
| US5239663A (en) * | 1987-06-15 | 1993-08-24 | Centre National De La Recherche Scientifique | Self-adapting and multifunctional process and structure for the automated evaluation of logical or arithmetic expressions, particularly for extended database consultation |
| US5008819A (en) * | 1987-10-07 | 1991-04-16 | Gorbatenko George G | Memory spaced array |
| US5077658A (en) * | 1987-10-19 | 1991-12-31 | International Business Machines Corporation | Data access system for a file access processor |
| US5237682A (en) * | 1987-10-19 | 1993-08-17 | International Business Machines Corporation | File management system for a computer |
| US4888681A (en) * | 1987-10-19 | 1989-12-19 | International Business Machines Corporation | Space management system for data files having shared access |
| US4897782A (en) * | 1987-10-19 | 1990-01-30 | International Business Machines Corporation | Local cache structure for maintaining updated file characteristics in a file sharing system |
| US5319780A (en) * | 1987-10-19 | 1994-06-07 | International Business Machines Corporation | System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued |
| US5257374A (en) * | 1987-11-18 | 1993-10-26 | International Business Machines Corporation | Bus flow control mechanism |
| EP0320266A3 (en) * | 1987-12-11 | 1992-03-11 | Hewlett-Packard Company | View composition in a data base management system |
| JP2760794B2 (ja) * | 1988-01-29 | 1998-06-04 | 株式会社日立製作所 | データベース処理方法および装置 |
| US5089985A (en) * | 1988-04-07 | 1992-02-18 | International Business Machines Corporation | System and method for performing a sort operation in a relational database manager to pass results directly to a user without writing to disk |
| US5513332A (en) * | 1988-05-31 | 1996-04-30 | Extended Systems, Inc. | Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween |
| US4956774A (en) * | 1988-09-02 | 1990-09-11 | International Business Machines Corporation | Data base optimizer using most frequency values statistics |
| US4839853A (en) * | 1988-09-15 | 1989-06-13 | Bell Communications Research, Inc. | Computer information retrieval using latent semantic structure |
| US4931928A (en) * | 1988-11-09 | 1990-06-05 | Greenfeld Norton R | Apparatus for analyzing source code |
| US5829002A (en) * | 1989-02-15 | 1998-10-27 | Priest; W. Curtiss | System for coordinating information transfer and retrieval |
| JPH03129472A (ja) * | 1989-07-31 | 1991-06-03 | Ricoh Co Ltd | 文書検索装置における処理方法 |
| KR940004389B1 (ko) * | 1989-10-13 | 1994-05-23 | 인터내셔널 비지네스 머신즈 코포레이션 | 관계형 데이타베이스에 대한 액세스플랜 발생 방법 및 시스템 |
| JPH0833862B2 (ja) * | 1989-10-23 | 1996-03-29 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | オブジエクト指向コンピユータ・システム |
| US5161223A (en) * | 1989-10-23 | 1992-11-03 | International Business Machines Corporation | Resumeable batch query for processing time consuming queries in an object oriented database management system |
| US5161225A (en) * | 1989-10-23 | 1992-11-03 | International Business Machines Corporation | Persistent stream for processing time consuming and reusable queries in an object oriented database management system |
| US5175814A (en) * | 1990-01-30 | 1992-12-29 | Digital Equipment Corporation | Direct manipulation interface for boolean information retrieval |
| US5752016A (en) * | 1990-02-08 | 1998-05-12 | Hewlett-Packard Company | Method and apparatus for database interrogation using a user-defined table |
| US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
| US5390113A (en) * | 1990-04-05 | 1995-02-14 | Sampson; Wesley C. | Method and electronic apparatus for performing bookkeeping |
| US5212639A (en) * | 1990-04-05 | 1993-05-18 | Sampson Wesley C | Method and electronic apparatus for the classification of combinatorial data for the summarization and/or tabulation thereof |
| US5604899A (en) | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
| JP2525275B2 (ja) * | 1990-07-17 | 1996-08-14 | 三洋電機株式会社 | デ―タベ―ス操作方法 |
| US5283737A (en) * | 1990-09-21 | 1994-02-01 | Prolab Software Inc. | Mechanism for generating linguistic expressions based on synonyms and rules derived from examples |
| JP2819517B2 (ja) * | 1990-12-17 | 1998-10-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データベース照会を行う方法およびシステム |
| AU660451B2 (en) * | 1991-03-12 | 1995-06-29 | Wang Laboratories, Inc. | Database management system graphical query front end |
| JPH077422B2 (ja) * | 1991-08-23 | 1995-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム |
| US5421008A (en) * | 1991-11-08 | 1995-05-30 | International Business Machines Corporation | System for interactive graphical construction of a data base query and storing of the query object links as an object |
| US5555403A (en) * | 1991-11-27 | 1996-09-10 | Business Objects, S.A. | Relational database access system using semantically dynamic objects |
| US6578027B2 (en) | 1996-08-20 | 2003-06-10 | Business Objects, Sa | Relational database access system using semantically dynamic objects |
| JPH05324287A (ja) * | 1991-12-17 | 1993-12-07 | Texas Instr Inc <Ti> | 分散環境下で他の部分からデータ及び情報収集部分を分離する方法とシステム |
| CA2079351A1 (en) * | 1992-02-19 | 1993-08-20 | Bruce A. Tate | Scaled depiction of information from a database |
| US5412804A (en) * | 1992-04-30 | 1995-05-02 | Oracle Corporation | Extending the semantics of the outer join operator for un-nesting queries to a data base |
| JPH0689307A (ja) * | 1992-05-04 | 1994-03-29 | Internatl Business Mach Corp <Ibm> | データベース内の情報を表示する装置および方法 |
| JP2710548B2 (ja) * | 1993-03-17 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法 |
| US5454106A (en) * | 1993-05-17 | 1995-09-26 | International Business Machines Corporation | Database retrieval system using natural language for presenting understood components of an ambiguous query on a user interface |
| US5608899A (en) * | 1993-06-04 | 1997-03-04 | International Business Machines Corporation | Method and apparatus for searching a database by interactively modifying a database query |
| US5504886A (en) * | 1993-07-02 | 1996-04-02 | International Business Machines Corporation | System and method for applying user supplied relation definitions to application files for a relational database |
| US5737538A (en) * | 1993-07-27 | 1998-04-07 | Compuserve Incorporated | System for remote microcomputer access and modification of information in host computer |
| US5495604A (en) * | 1993-08-25 | 1996-02-27 | Asymetrix Corporation | Method and apparatus for the modeling and query of database structures using natural language-like constructs |
| US5546526A (en) * | 1993-12-10 | 1996-08-13 | International Business Machines Corporation | Reconfiguration of database by interactive manipulation of icons |
| US5586311A (en) * | 1994-02-14 | 1996-12-17 | American Airlines, Inc. | Object oriented data access and analysis system |
| US5584024A (en) * | 1994-03-24 | 1996-12-10 | Software Ag | Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters |
| US5625812A (en) * | 1994-11-14 | 1997-04-29 | David; Michael M. | Method of data structure extraction for computer systems operating under the ANSI-92 SQL2 outer join protocol |
| US5548754A (en) * | 1995-02-07 | 1996-08-20 | International Business Machines Corporation | Optimization of SQL queries using early-out join transformations |
| US5706494A (en) * | 1995-02-10 | 1998-01-06 | International Business Machines Corporation | System and method for constraint checking bulk data in a database |
| US5778354A (en) * | 1995-06-07 | 1998-07-07 | Tandem Computers Incorporated | Database management system with improved indexed accessing |
| US5737592A (en) * | 1995-06-19 | 1998-04-07 | International Business Machines Corporation | Accessing a relational database over the Internet using macro language files |
| US5894311A (en) * | 1995-08-08 | 1999-04-13 | Jerry Jackson Associates Ltd. | Computer-based visual data evaluation |
| JPH10501086A (ja) * | 1995-11-02 | 1998-01-27 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 記憶プレーン編成及びそれに基づく記憶システム |
| US5664173A (en) * | 1995-11-27 | 1997-09-02 | Microsoft Corporation | Method and apparatus for generating database queries from a meta-query pattern |
| US5787411A (en) * | 1996-03-20 | 1998-07-28 | Microsoft Corporation | Method and apparatus for database filter generation by display selection |
| US6185560B1 (en) | 1998-04-15 | 2001-02-06 | Sungard Eprocess Intelligance Inc. | System for automatically organizing data in accordance with pattern hierarchies therein |
| US6108653A (en) | 1998-08-31 | 2000-08-22 | Platinum Technology Ip, Inc. | Method and apparatus for fast and comprehensive DBMS analysis |
| US6772409B1 (en) * | 1999-03-02 | 2004-08-03 | Acta Technologies, Inc. | Specification to ABAP code converter |
| DE10005832B4 (de) * | 2000-02-10 | 2007-04-19 | Gantenhammer, Andreas | Verfahren zur Auswahl von Produkten |
| US7143108B1 (en) | 2000-04-06 | 2006-11-28 | International Business Machines Corporation | Apparatus and method for deletion of objects from an object-relational system in a customizable and database independent manner |
| US7016903B1 (en) * | 2001-01-25 | 2006-03-21 | Oracle International Corporation | Method for conditionally updating or inserting a row into a table |
| US8005870B1 (en) | 2001-06-19 | 2011-08-23 | Microstrategy Incorporated | System and method for syntax abstraction in query language generation |
| US7430562B1 (en) | 2001-06-19 | 2008-09-30 | Microstrategy, Incorporated | System and method for efficient date retrieval and processing |
| US8606744B1 (en) | 2001-09-28 | 2013-12-10 | Oracle International Corporation | Parallel transfer of data from one or more external sources into a database system |
| KR20040050467A (ko) * | 2002-12-10 | 2004-06-16 | 한국전자통신연구원 | 그래픽 시각 질의를 이용한 레지스트리에 대한 질의시스템 및 방법 |
| US7305410B2 (en) * | 2002-12-26 | 2007-12-04 | Rocket Software, Inc. | Low-latency method to replace SQL insert for bulk data transfer to relational database |
| US7152073B2 (en) | 2003-01-30 | 2006-12-19 | Decode Genetics Ehf. | Method and system for defining sets by querying relational data using a set definition language |
| US20050050030A1 (en) * | 2003-01-30 | 2005-03-03 | Decode Genetics Ehf. | Set definition language for relational data |
| US7251669B1 (en) * | 2003-03-31 | 2007-07-31 | Microsoft Corporation | System and method for database versioning |
| US8311974B2 (en) * | 2004-02-20 | 2012-11-13 | Oracle International Corporation | Modularized extraction, transformation, and loading for a database |
| US20070144511A1 (en) * | 2004-03-30 | 2007-06-28 | Anders Reden | Nebulizer and method therefor |
| US20060015483A1 (en) * | 2004-07-15 | 2006-01-19 | International Business Machines Corporation | SQL query enhancement technique |
| US8819048B1 (en) | 2005-10-24 | 2014-08-26 | Emc Corporation | Virtual repository management to provide retention management services |
| US8015222B2 (en) * | 2005-10-24 | 2011-09-06 | Emc Corporation | Virtual repository management |
| US20070192374A1 (en) * | 2006-02-16 | 2007-08-16 | Emc Corporation | Virtual repository management to provide functionality |
| FR2921783A1 (fr) * | 2007-09-28 | 2009-04-03 | France Telecom | Procede de reduction de charge de serveurs,terminal, dispositif,et produit programme d'ordinateur correspondants |
| US10963512B2 (en) * | 2017-01-20 | 2021-03-30 | Amazon Technologies, Inc. | Query language interoperability in a graph database |
| CN108563694B (zh) * | 2018-03-19 | 2021-04-13 | 广州视源电子科技股份有限公司 | 对逻辑删除的sql执行方法、装置、计算机设备和存储介质 |
| CN108984592B (zh) * | 2018-05-31 | 2020-11-20 | 中诚信征信有限公司 | 一种基于图形数据库的数据处理系统、方法及装置 |
| US10963438B1 (en) * | 2020-11-17 | 2021-03-30 | Coupang Corp. | Systems and methods for database query efficiency improvement |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4283771A (en) * | 1978-07-31 | 1981-08-11 | International Business Machines Corporation | On-chip bubble domain relational data base system |
-
1983
- 1983-02-28 US US06/470,821 patent/US4506326A/en not_active Expired - Lifetime
-
1984
- 1984-01-11 EP EP84100225A patent/EP0120185B1/en not_active Expired - Lifetime
- 1984-01-11 DE DE8484100225T patent/DE3485396D1/de not_active Expired - Lifetime
- 1984-02-28 JP JP59035470A patent/JPS59163661A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| EP0120185A3 (en) | 1988-12-21 |
| EP0120185B1 (en) | 1992-01-02 |
| DE3485396D1 (de) | 1992-02-13 |
| EP0120185A2 (en) | 1984-10-03 |
| US4506326A (en) | 1985-03-19 |
| JPS59163661A (ja) | 1984-09-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0527149B2 (ja) | ||
| US6338056B1 (en) | Relational database extender that supports user-defined index types and user-defined search | |
| US6466931B1 (en) | Method and system for transparently caching and reusing query execution plans efficiently | |
| US5797136A (en) | Optional quantifiers in relational and object-oriented views of database systems | |
| US7152073B2 (en) | Method and system for defining sets by querying relational data using a set definition language | |
| US5432930A (en) | System for accessing cobol data files by generating a dictionary of NF.sup.2 | |
| US5873079A (en) | Filtered index apparatus and method | |
| US5884304A (en) | Alternate key index query apparatus and method | |
| US5732274A (en) | Method for compilation using a database for target language independence | |
| US6167393A (en) | Heterogeneous record search apparatus and method | |
| JP3836928B2 (ja) | データベース処理方法 | |
| US5819282A (en) | Database generator | |
| US5870739A (en) | Hybrid query apparatus and method | |
| US5778354A (en) | Database management system with improved indexed accessing | |
| US6708186B1 (en) | Aggregating and manipulating dictionary metadata in a database system | |
| Tsur et al. | An implementation of GEM: supporting a semantic data model on a relational back-end. | |
| US6343286B1 (en) | Efficient technique to defer large object access with intermediate results | |
| US7542962B2 (en) | Information retrieval method for optimizing queries having maximum or minimum function aggregation predicates | |
| CN108694208A (zh) | 用于构造数据库的方法和装置 | |
| Senko | DIAM II: The binary infological level and its database language-FORAL | |
| Ben-Gan et al. | T-SQL Querying | |
| US5819277A (en) | Method for generating SQL commands to create an integrated global schema | |
| JP2639804B2 (ja) | データベース検索装置 | |
| EP0336579A2 (en) | Relational databases | |
| Dadashzadeh et al. | Converting SQL queries into relational algebra |