JP2001022757A - 関係データベースアクセス装置および関係データベースアクセス方法 - Google Patents

関係データベースアクセス装置および関係データベースアクセス方法

Info

Publication number
JP2001022757A
JP2001022757A JP11190241A JP19024199A JP2001022757A JP 2001022757 A JP2001022757 A JP 2001022757A JP 11190241 A JP11190241 A JP 11190241A JP 19024199 A JP19024199 A JP 19024199A JP 2001022757 A JP2001022757 A JP 2001022757A
Authority
JP
Japan
Prior art keywords
join
processing
access
condition
processing means
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.)
Granted
Application number
JP11190241A
Other languages
English (en)
Other versions
JP3584788B2 (ja
Inventor
Shinichiro Tsunako
振一郎 津波古
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP19024199A priority Critical patent/JP3584788B2/ja
Publication of JP2001022757A publication Critical patent/JP2001022757A/ja
Application granted granted Critical
Publication of JP3584788B2 publication Critical patent/JP3584788B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】結合表のネスト構造を意識せず、インデックス
検索も可能化する。 【解決手段】from句処理手段1100はSQL解析部が出力し
たパースツリーの先頭から結合表の有無を検査する。結
合表を検出すると結合表処理手段1100が呼び出され、パ
ースツリー上の結合表を再帰的に処理する。外結合表処
理手段1200,内結合表処理手段1300は結合表の開始表が
外結合,内結合の場合に結合表処理手段1100によって呼
び出され、結合条件の位置するパースツリー上の位置と
結合の種類を識別し、それによって結合条件を移動する
位置と結合条件を満たさない場合にnull値を設定すべき
表を探索する。結合条件設定手段1400は外結合表処理手
段1200または内結合表処理手段1300によって呼び出さ
れ、処理対象表に対し開始表に指定された結合条件を設
定し、結合条件を満たさない場合はnull値を設定すべき
であれば処理対象表にnull値を設定するための準備を整
える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、関係データベース
アクセス装置および関係データベースアクセス方法、特
に、外結合および内結合を含むSQLの結合表機能に関す
る。
【0002】
【従来の技術】関係データベース(relational databas
e)が提唱されるまでの階層型データベースや網型デー
タベースにおけるデータモデルは、周知のとおり、枝や
網と呼ばれるポインタを用いて、それぞれセグメント
間,レコード間を辿るようになっていた。関係データモ
デルは、このような枝や網と呼ばれるポインタを用いた
データ構造の概念を一切捨て、表という概念を持ち込ん
だ。表は、行と列で構成されており、行は横方向に見た
ときの基本構成であってレコードに相当し、列は表を縦
方向に見たときの基本構成であってフィールドに相当す
る。
【0003】関係データベースは、このような表形式の
データモデルであることから、構造がシンプルで、デー
タの種類の組合せが簡単にできるという特徴がある。し
たがって、多目的の利用が可能であり、特に、従来型の
データモデルでは不都合であった、検索のたびに検索条
件のデータの組合せを変えるような非定型の処理にも好
都合である。
【0004】関係デーベースをアクセスするための操作
言語として、SQL(Structured QueryLanguage)がISOとJI
Sで標準化されている。SQLの指示は非手続き型であり、
利用者は手続きをいちいちプログラムで記述する必要が
ないので、関係データベースSQLの操作性を高める一因
となっている。
【0005】ところで、関係データベースにおける各表
は、データの冗長性を排除した正規化が施されているた
め、SQLでは、有意義なアクセスを実現するべく、複数
の表を同時に操作できるようにしている。すなわち、複
数の表の特定の列の値を結び合わせる結合表機能であ
る。この場合、2つの表を結合するには、当然、比較可
能な属性をもつ列が両方の表に存在しなければならな
い。
【0006】表の結合には、1つの表または両方の表か
ら一致しない行を無視する内結合(inner join)と、一
致しないデータの一部または全てを管理する外結合(out
er join)とがある。さらに、外結合には、キーワードjo
inの左側に指定された表の一致しない行も残す左外結合
(left outer join)と、キーワードjoinの右側に指定さ
れた表の一致しない行を残す右外結合(right outer joi
n)とがある。残された新しい行については、左(右)側
に指定された表の列と、空白(null)とが格納される。な
お、このような表の結合については、1998年4月27日、
株式会社トッパン発行のISBN4-8101-9822-8、154~168ペ
ージに記載されている。
【0007】では、JIS X 3005-1995で規定されている
結合表を含む、従来のSQLによる関係データベースの問
合せについて図面を参照して具体的に説明する。
【0008】図19は、表T2と表T3との左外結合をネスト
構造001として有する、表T1と表T2との左外結合を示すS
QL文000である。ネスト構造001では、表T2の列1と表T3
の列1とが一致することが結合条件であり、また、SQL文
000では、表T1の列1と表T2の列1とが一致することが結
合条件である。
【0009】従来、このような関係データベースをアク
セスするには、まず、ネストした中間結果TMPを導出す
る。いま、表T1,T2,T3の各内容が、それぞれ図20の参照
番号002,003,004に示すとおりであるものとすると、
中間結果TMPは、上述の左外結合の説明により図20の参
照番号005で示すようになる。
【0010】その後、図21に示すように、中間結果TMP
を表T1との左外結合の相手の表007として、検索条件008
の下に、SQL文006を処理する。その最終結果RESは、上
述の左外結合の説明により図22の参照番号009で示すと
おりになる。
【0011】
【発明が解決しようとする課題】しかしながら、上述し
た従来の関係データベースのアクセスでは、ネスト構造
を意識して中間結果を作成し、それを更に結合するよう
なデータベースのアクセスが行われるため、無駄なコス
トが発生するという第1の問題点がある。
【0012】また、ネスト構造の順にデータベースをア
クセスしていくと、結合条件008において、本来ならば
表T2の列1に付加されたインデックスの利用が有効なと
ころ、表T2はSQL文006で既に中間結果TMPとして処理さ
れており、実際にはインデックスの利用ができないとい
う第2の問題点がある。ここで、インデックスとは、指
定された列の内容をデータ値でソートしたレコード位置
情報のリストをいい、典型的なインデックス使用の意味
は、表へのアクセスを高速化するものとして周知であ
る。
【0013】さらに、ネスト構造を離れても、図23に例
示するように、T2 left outer joinT3からT3 left oute
r join T2と結合の順番を入れ換えた場合に、結合結果
はそれぞれ0010,0011で示す如く異なったものとなり交
換則が成り立たない。また、3つ以上の表について外結
合の順番を入れ換えると、その結合結果は異なったもの
となり結合則も成り立たないことが容易に検証できる。
したがって、外結合が含まれると、交換則と結合則を前
提にした検索に有効なインデックスの検出が不可能であ
るという第3の問題点がある。
【0014】そこで、本発明の目的は、利用者や利用プ
ログラムがネスト構造を意識する必要のない関係データ
ベースの問合せ装置および関係データベースの問合せ方
法を提供することにある。
【0015】また、本発明の他の目的は、インデックス
を有効に利用できる高速な関係データベースの問合せ装
置および関係データベースの問合せ方法を提供すること
にある。
【0016】
【課題を解決するための手段】本発明の第1の関係デー
タベースアクセス装置は、アクセス文中に結合表を含む
アクセスに対して、前記結合表のネスト構造および外結
合の状態を、一元的な表の並びから成るアクセスに変換
し、これによって中間オブジェクトを生成し、アクセス
実行時に一括処理可能にしたことを特徴とする。
【0017】本発明の第2の関係データベースの問合せ
装置は、アクセス文中に結合表を含むアクセスに対し
て、前記結合表のネスト構造および結合表を構成する基
本表を探索し、該基本表ごとに、順次に、関連する結合
条件と該結合条件を満たさない場合には、該基本表にnu
ll値を設定すべき旨の指定を行うことによって、前記結
合表のネスト構造および外結合の状態を、一元的な表の
並びから成るアクセスに変換し、これによって中間オブ
ジェクトを生成し、アクセス実行時に一括処理可能にし
たことを特徴とする。
【0018】本発明の第3の関係データベースの問合せ
装置は、 SQL文による関係データベースに対するアク
セスを解析して木構造のパースツリーを出力するSQL解
析手段と、前記パースツリーの先頭から順次に結合表の
有無を検査するfrom句処理手段と、該from句処理手段が
結合表を検出するごとに呼び出され、前記パースツリー
上の結合表を再帰的に処理して、当該結合表を親とする
子を順次に探索し未処理の左端の結合表(開始表)を検
出する結合表処理手段と、該結合表処理手段が左(右)
外結合表を検出するごとに呼び出され、当該外結合表を
親とする右(左)側の子の基本表を前記探索と同方向、
かつ順次に探索し、当該基本表の結合状態に基づいたnu
llセットフラグ処理を行う外結合表処理手段と、前記結
合表処理手段が内結合表を検出するごとに呼び出され、
当該内結合表を親とする子の基本表を前記探索と同方
向、かつ順次に探索し、当該基本表の結合状態に基づい
たnullセットフラグ処理を行う内結合表処理手段と、前
記外結合表処理手段または前記内結合表処理手段が基本
表を検出するごとに呼び出され、該基本表に、当該親の
結合条件と、該結合条件を満たさない場合には前記null
セットフラグ処理の結果によりnull値を設定すべき旨と
の設定を行う結合条件設定手段とを有し、上記各手段に
よって生成された最適化パースツリーに基づき、アクセ
ス実行時に一括処理可能な中間オブジェクトを生成でき
るようにしたことを特徴とする。
【0019】更に、本発明の関係データベースの問合せ
装置の好ましい実施の形態は、前記SQL文がインデック
ス文を含む場合に、前記パースツリー中の全ての表につ
いて、インデックス定義の有無と、有の場合に当該表で
使用可能か否かとを検査し、使用可能なインデックスを
設定するインデックス設定手段を付加したことを特徴と
する。
【0020】また、本発明の関係データベースアクセス
方法は、SQL文による関係データベースに対するアクセ
スを解析して木構造のパースツリーを出力する手順と、
前記パースツリーの先頭から結合表の有無を検査する手
順と、該検査によって結合表を検出するごとに呼び出さ
れ、前記パースツリー上の結合表を再帰的に処理して、
当該結合表を親とする子を順次に探索し未処理の左端の
結合表(開始表)を検出する手順と、該探索によって左
(右)外結合表を検出するごとに呼び出され、当該外結
合表を親とする右(左)側の子の基本表を前記探索と同
方向、かつ順次に探索し、当該基本表の結合状態に基づ
いたnullセットフラグ処理を行う手順と、前記内結合表
を検出するごとに呼び出され、当該内結合表を親とする
子の基本表を前記探索と同方向、かつ順次に探索し、当
該基本表の結合状態に基づいたnullセットフラグ処理を
行う手順と、前記探索によって基本表が検出されるごと
に呼び出され、該基本表に、当該親の結合条件と、該結
合条件を満たさない場合には前記nullセットフラグ処理
の結果によりnull値を設定すべき旨との設定を行う手順
とを有し、上記各手順によって生成されたパースツリー
およびアクセスプランから、アクセス実行時に一括処理
可能な中間オブジェクトを生成できるようにしたことを
特徴とする。
【0021】本発明では、結合表およびそのネストの状
態を全てオプティマイザ部で処理し、表を一括処理可能
な一元的な表の並びに変換し、それに従った中間オブジ
ェクトを生成するようにしたため、実行時に結合表単位
で不必要な中間結果を生成する必要がなくなり、最適な
データベースアクセス性能が得られる。
【0022】さらに、結合表およびそのネスト状況を考
慮した有効なインデックスの選択処理や、必要ならJIS
X 3005-1995に定める外結合のnull値変換情報も全て同
時にオプティマイザ部で処理可能であるため、上述の処
理を、オプティマイザ部以外の他のコンポーネントの大
幅な改造を伴うことなく容易に実現できる。
【0023】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。
【0024】図1は、本発明のDBMSの概要を示すブロッ
ク図である。図1において、SQL文110(図8)による問
合せを受けるDBMS100は、SQL文110を解析しパースツリ
ー120(図9)を出力するSQL解析部101と、パースツリー
120から表結合の最適なアクセスプランとしての中間オ
ブジェクト180(図14)を生成するオプティマイザ部102
と、中間オブジェクト180を解釈し実行する実行処理部1
03とから構成されている。
【0025】オプティマイザとは、本来、関係データベ
ースの重要な機能の1つであるオプティマイジング(デ
ータベースの最適化)機能を司る、DBMSのエンジン
をいう。すなわち、オプティマイザは、ある表に対して
SQL文を発行したときに、ユーザのSQL文の書き方に
関係なく、最適なアクセス経路(処理手順)を検出する
機能を有する。最適なアクセス経路とは、例えば、どの
インデックスを使用して、どのようにテーブルをアクセ
スしたら、使用する資源が最少で済むか、ということで
ある。具体例をあげれば、少量データの表である販売実
績表と大量データの表である商品マスター表との結合操
作では、前者を結合条件の基準にする方がパーフォマン
スは上がるであろう。オプティマイザは、このようなデ
ータベースの最適化を行うものである。
【0026】本発明のオプティマイザ部102は、データ
ベースに対する問合せ等のアクセスを行うためのSQL文
中に結合表を含む場合、結合表のネスト構造や外結合の
状態を一元的な表の並びに変換しておき、データベース
アクセスを行う実行処理部において、この表の並びを一
括処理できるようにすることによって、データベースの
最適化を図るものである。そのために、結合表のネスト
構造および結合表を構成する基本表を探索し、該基本表
ごとに、順次に、関連する結合条件と該結合条件を満た
さない場合には、該基本表にnull値を設定すべき旨の指
定を行う。
【0027】本発明のオプティマイザ部は、図2にその
処理遷移とともに示すように、from句処理手段(図3)1
000と、結合表処理手段(図4)1100と、外結合表処理手
段(図5)1200と、内結合表処理手段(図6)1300と、結
合条件設定手段(図7)1400とを含む。そして、パース
ツリー120を入力して、これに含まれる結合表単位に、
結合表とその配下の基本表とを1セットにして、表ごと
に処理していく。各処理の対象となる表を処理対象表と
いう。結合表およびそのネストの状態を全て処理して、
表を一括処理可能な一元的な表の並びに変換し、それに
従った中間オブジェクト180を生成する。
【0028】まず、SQL文110について説明する。図8
は、SQL文110の具体例を示し、これによって、結合表を
含むDBMS100に対する問合せを行う。図8において、oute
r joinは外結合を示し、inner joinは内結合を示す。こ
のSQL文110は、2つの外結合を含む。1つ目は、表T2の
列1と表T3の列1との一致を結合条件112とする、表T2
と表T3との内結合(T2 inner join T3 on T2.c1 =T3 .c
1)をネスト構造として有する。また、2つ目は、表T4の
列1と表T5の列1との一致を結合条件113とする、表T4
と表T5との左外結合である。
【0029】SQL解析部101は、SQL文110を入力してパー
スツリー120を出力する。パースツリー120は、図9に示
すとおり、SQL文110をツリー状に構成したものであり、
木構造を逆さにした形状となっている。木の根に当るの
が、図8のfrom句である。
【0030】図9を参照すると、図8の構造が視覚的に理
解できよう。すなわち、from句131をルートとして、1
つ目の左外結合表132の次に、2つ目の左外結合表137が
位置する。左外結合132は、左側を基本表(結合表でな
い表をいう)133(T1)、右側を内結合表134とし、さら
に、内結合表134は左側を基本表135(T2)、右側を基本
表136(T3)とする。また、2つ目の左外結合表137は、
左側を基本表138(T4)、右側を基本表139(T5)とす
る。特定の表に対して、左側に位置する表を左表、右側
に位置する表を右表ということにする。
【0031】次に、オプティマイザ部102における上述
の各手段の機能について、図2に示す処理遷移図を参照
して説明する。
【0032】from句処理手段1000は、SQL解析部101が解
析した結果であるパースツリー120を入力して、その先
頭から結合表の有無をチェックし、結合表を検出するご
とに結合表処理手段1100を呼び出す(1003)。
【0033】結合表処理手段1100は、パースツリー120
上の結合表を再帰的に処理し(1109,1112)、当該結合
表を親とする子を順次に探索し、未処理の左端の結合表
(開始表)を検出すると、その結合表が外結合表か、内
結合表かによって外結合表処理手段1200または内結合表
処理手段1300を呼び出す(1103,1106)。
【0034】外結合表処理手段1200または内結合表処理
手段1300は、図8における結合条件111,112,113が存在
するパースツリー120上の位置および結合の種類を識別
し、それによって結合条件111,112,113を移動する位
置と、結合条件111,112,113を満たさない場合にnull
値を設定すべき表を探索し、結合条件設定手段1400を呼
び出す(1203,1306等)。外結合表処理手段1200,内結
合表処理手段1300においても、ネスト構造として、それ
ぞれ外結合,内結合を含む場合には、結合表を再帰的に
処理する(1203,1304等)。
【0035】これによって、外結合表処理手段1200は、
結合表処理手段1100により検出された外結合表が、左外
結合表ならこれを親とする右側の子の基本表を結合表処
理手段1100における探索と同方向、かつ、順次に探索
し、一方、右外結合表ならこれを親とする左側の子の基
本表を結合表処理手段1100における探索と同方向、か
つ、順次に探索することになる。また、内結合表処理手
段1300は、結合表処理手段1100により検出された内結合
表を親とする子の基本表を結合表処理手段1100における
探索と同方向、かつ、順次に探索する。
【0036】すなわち、結合表の開始表が外結合の場合
は外結合表処理手段1200が呼び出され、開始表の右以下
の表に対し結合条件111および113が複製、移動され、ま
た、結合条件を満たさない場合には、その表がnull値を
設定するよう、フラグ(nullセットフラグという)を設
定する(このことを、以下、「set_null=YESを設定す
る」という)。
【0037】結合表の開始表が内結合の場合は内結合表
処理手段1300が呼び出され、開始表が外結合の右以下に
位置する場合は、開始表の左以下および右以下の表に対
し結合条件112が複製、移動され、また結合条件を満た
さない場合にはset_null=YESを設定するべく結合条件設
定手段1400を呼び出す。結合表の開始表が外結合の左以
下に位置する場合は、開始表の右以下の表に対し結合条
件112が複製、移動され、また結合条件112を満たさない
場合にはnull値を設定しないように、nullセットフラグ
を設定する(このことを、以下、「set_null=NOを設定
する」いう)べく結合条件設定手段1400を呼び出す。
【0038】結合条件設定手段1400は、処理対象表に対
し、開始表に指定された結合条件111,112または113を
設定し、結合条件を満たさない場合にnull値を設定すべ
きであれば、実行処理部103が結合対象表にnullを設定
するための準備(以下、「set_null_YESを設定」と記
す。)を、そうでなければ何も設定しないための準備
(以下、「set_null_NO」と記す。)をする。
【0039】以上の各手段によって生成されたパースツ
リーを図13に示す。
【0040】次に、図3〜図7に示す上述の各手段の流れ
図をも参照しながら本発明の実施の形態の全体の動作を
説明する。
【0041】まず、SQL解析部101にSQL文110が入力され
ると、SQL解析部101はSQL文110を解析、分解したパース
ツリー120を出力する。オプティマイザ部102はパースツ
リー120を入力し、まずfrom句処理手段1000を実行す
る。
【0042】from句処理手段1000は、図3に示すよう
に、パースツリー120のfrom句先頭から処理を開始し、
結合表132を検出すると(ステップ1001)、検出した結
合表を開始表として(ステップ1002)、結合表処理手段11
00を呼び出す(ステップ1003)。以上の処理をfrom句の
最後まで繰り返す(ステップ1004,1005)。
【0043】結合表処理手段1100は、図4に示すよう
に、開始表132が外結合であると認め(ステップ110
1)、開始表132を処理対象表とし(ステップ1102)、外結
合表処理手段1200を呼び出す(ステップ1103)。また、
開始表が内結合表であることが認められると(ステップ
1104)、開始表を処理対象表とし(ステップ1105)、内
結合表処理手段1300を呼び出す(ステップ1106)。
【0044】その後、開始表の左表が結合表であること
を検出すると(ステップ1107)、その左表を開始表とし
(1108)、結合表処理手段1100を再帰的に呼び出す(ス
テップ1109)。また、開始表の右表が結合表であること
を検出すると(ステップ1110)、その右表を開始表とし
(ステップ1111)、結合表処理手段1100を再帰的に呼び
出す(ステップ1112)。
【0045】外結合表処理手段1200は、図5に示すよう
に、処理対象表の左表が結合表であることが認められる
と(ステップ1201)、その左表を処理対象表とし(ステ
ップ1202)、外結合表処理手段1200を再帰的に呼び出す
(ステップ1203)。しかし、ステップ1201で処理対象表の
左表が結合表であることが認められず、かつ処理対象表
が開始表と等しくなければ(ステップ1204)、nullセッ
トフラグをYESとするとともに左表を処理対象表とし
(ステップ1205)、結合条件設定手段1400を呼び出す
(ステップ1206)。
【0046】同様に、処理対象表の右表が結合表である
ことが認められると(ステップ1207)、その左表を処理対
象表とし(ステップ1208)、外結合表処理手段1200を再帰
的に呼び出す(ステップ1209)。しかし、ステップ1207で
処理対象表の左表が結合表であることが認めらない場合
は、nullセットフラグをYESとするとともに右表を処理
対象表とし(ステップ1210)、結合条件設定手段1400を
呼び出す(ステップ1211)。
【0047】内結合表処理手段1300は、図6に示すよう
に、開始表が左結合表の右下にあるかを検査し(ステッ
プ1301)、その結果が真であれば外結合表処理手段1200
と類似の処理を行う(ステップ1302〜1311)。ただし、
ステップ1304,1309で呼び出すのは内結合表処理手段13
00である。ステップ1301における検査の結果が偽であ
り、かつ処理対象表の右表が基本表であれば(ステップ
1313)、set_null=NOとし(ステップ1314)、結合表設
定手段1400を呼び出す(ステップ1315)。
【0048】結合条件設定手段1400は、図7に示すよう
に、set_nullがYESに等しければ(ステップ1401)、処
理対象表にset_null_YESを設定し(ステップ1402)、ま
たステップ1401でset_nullがNOに等しければ処理対象表
にset_null_NOを設定する(ステップ1403)。その後、
処理対象表に開始表の条件を設定する(1404)。
【0049】では、オプティマイザ部102にパースツリ
ー120(図9)が入力した場合を例として、本発明の実施
の形態の動作を具体的に説明する。
【0050】まず、from句処理手段1000が呼ばれ、from
句処理手段1000では、図9に示すfrom句の先頭131から結
合表か否かを検査する(図3のステップ1001)。先頭の
表132はキーワード「left join」から明らかに結合表で
あるから検査結果は真であるため、現在の表132を開始
表とし(ステップ1002)、結合表処理手段1100を呼び出
す(ステップ1003)。
【0051】結合表処理手段1100では、開始表132が外
結合表か否かが検査され(図4のステップ1101)、結果
は真であるため、開始表132を処理対象表とし(ステッ
プ1102)、外結合表処理手段1200を呼び出す(ステップ
1103)。
【0052】外結合表処理手段1200では、処理対処表13
2の左表133が結合表か否かが検査され(図5のステップ1
201)、結果は偽であり、かつ、処理対象表132が開始表
でもあるため(ステップ1204)、処理対象表132の右表1
34が結合表か否かが検査される(ステップ1207)。その
結果は真であるため、右表134を処理対象表とし(ステ
ップ1208)、外結合表処理手段1200を再帰的に呼び出す
(ステップ1209)。
【0053】この結果、再び、外結合表処理手段1200の
処理が開始され、処理対象表134の左表135が結合表か否
かが検査され(図5のステップ1201)、結果は偽であ
り、かつ、処理対象表134と等しくないため(ステップ1
204)、nullセットフラグをYESとするとともに左表135
を処理対象表とし(ステップ1205)、結合条件設定手段
1400を呼び出す(ステップ1206)。
【0054】ここで、nullセットフラグとは、次ぎに説
明する結合条件設定手段1400において、処理対象表にse
t_null_YESを設定するかset_null_NOを設定するかを振
り分ける(図7のステップ1401)ための制御フラグをい
う。さらに、処理対象表にset_null_YESを設定すると、
図1の実行処理部103が中間オブジェクト180を実行する
ときに、結合表にnull値が設定され得ることになり、se
t_null_NOを設定すると、結合表にnull値を設定される
ことはなくなる。
【0055】結合条件設定手段1400では、set_null=YES
か否かを検査し(図7のステップ1401)、上述のよう
に、図5のステップ1205でset_null=YES とされてい
て、結果は真であるため、処理対象表135にset_null_YE
Sを設定する(ステップ1402)。そして、処理対象表135
に開始表132の検索条件T1.c1=T2.c1を設定して(ステッ
プ1404)、外結合表修理手段1200のステップ1207へリタ
ーンする(ステップ1405)。上述の処理対象表135への
設定結果は図10において情報135aとして示されてい
る。
【0056】三度、外結合表処理手段1200において、処
理対象表134の右表136が結合表か否かが検査され(図5
のステップ1207)、結果は偽であるため、set_null=YES
とするとともに右表136を処理対象表とし(ステップ121
0)、結合条件設定手段1400を呼び出す(ステップ121
1)。
【0057】再び、結合条件設定手段1400において、se
t_null=YESか否かが検査され(図7のステップ1401)、
結果は真であるため、処理対象表136にset_null_YESを
設定し(ステップ1402)、処理対象表136に開始表132の
検索条件T1.c1=T2.c1を設定して(ステップ1404)、外
結合表処理手段1200のステップ1212へリターンする(ス
テップ1405)。上述の処理対象表136への設定結果は図1
0において136aとして示されている。
【0058】外結合表処理手段1200では、結合表処理手
段1100のステップ1107へリターンする(図5のステップ12
12)。
【0059】結合表処理手段1100では、開始表132の左
表133が結合表か否かが検査され(図4のステップ110
7)、結果は偽であるため、開始表132の右表134が結合
表であるか否かが検査され(ステップ1110)、結果は真
であるため、その右表134を開始表とし(ステップ111
1)、結合表処理手段1100を再帰的に呼び出す(ステップ
1112)。
【0060】結合表処理手段1100においては、開始表13
4が外結合表かが検査され(ステップ1101)、結果は偽
であるため、開始表134が内結合表かが検査される(110
4)。その結果は真であるため、開始表134を処理対象表
とし(ステップ1105)、内結合表処理手段1300を呼び出
す(ステップ1106)。
【0061】内結合表処理手段1300では、開始表134が
左外結合の右下にあるかが検査され(ステップ1301)、
結果は真であるため、次に、処理対象表134の左表135が
結合表かが検査される(ステップ1302)。その結果は偽
であるため、set_null=YESとされるとともに、左表135
を処理対象表として(ステップ1305)、結合条件設定手
段1400を呼び出す(ステップ1306)。
【0062】結合条件設定手段1400においては、set_nu
ll=YESか否かを検査され(図7のステップ1401)、上述
のように、図6のステップ1305でset_null=YES とされ
ていて、結果は真であるため、処理対象表134にset_nul
l_YESを設定する(ステップ1402)。そして、処理対象
表135に開始表134の結合条件T2.c1=T3.c1を設定して(ス
テップ1404)、内結合表修理手段1300のステップ1307へ
リターンする(ステップ1405)。上述の処理対象表135
への設定結果は、図10において情報135bとして示され
ている。
【0063】内結合表修理手段1300では、処理対象表13
4の右表136が結合表かが検査され(ステップ1307)、結
果は偽であるため、set_null=YES とされるとともに、
右表136を処理対象表として(ステップ1310)、結合条
件設定手段1400を呼び出す(ステップ1311)。
【0064】結合条件設定手段1400においては、set_nu
ll=YESか否かを検査され(図7のステップ1401)、上述
のように、図6のステップ1305でset_null=YES とされ
ていて、結果は真であるため、処理対象表134にset_nul
l_YESを設定する(ステップ1402)。そして、処理対象
表136に開始表134の結合条件T2.c1=T3.c1を設定して(ス
テップ1404)、内結合表修理手段1300のステップ1312へ
リターンする(ステップ1405)。上述の処理対象表136
への設定結果は、図10において情報136bとして示され
ている。
【0065】内結合表修理手段1300のステップ1312から
は、結合表処理手段1100におけるステップ1113(図4)
へ、さらには、from句処理手段1000におけるステップ10
04(図3)へリターンし、from句の最終かが検査され
る。その結果は、図9から明らかに偽であるため、次の
表137へ進む(ステップ1005)。
【0066】表137は、図9から明らかに結合表である
ため(ステップ1001)、現在の表137を開始表として、
上述の処理と同様な処理を繰り返す。重複を厭わず、以
下に説明する。
【0067】まず、結合表処理手段1100が呼び出される
(ステップ1003)。結合表処理手段1100では、開始表13
7が外結合表かが検査され(ステップ1101)、結果は真
であるため、開始表137を処理対象対表として(ステッ
プ1102)、外結合表処理手段1200を呼び出す(ステップ
1203)。
【0068】外結合表処理手段1200では、処理対象表の
左表138が結合表かが検査され(ステプ1201)、結果は
偽であるため、次に、処理対象表137が開始表と等しい
かが検査される(ステップ1204)。その結果は真である
ため、開始表の右表139が結合表かが検査され(ステッ
プ1207)、結果は偽であるため、set_null=YESとすると
ともに、右表139を処理開始表として(ステップ121
0)、結合条件設定手段1400を呼び出す(ステップ121
1)。
【0069】結合条件設定手段1400においては、set_nu
ll=YESか否かを検査され(図7のステップ1401)、上述
のように、図5のステップ1210でset_null=YES とされて
いて、結果は真であるため、処理対象表139にset_null_
YESを設定する(ステップ1402)。そして、処理対象表1
39に開始表137の結合条件T4.c1=T5.c1を設定して(ステ
ップ1404)、外結合表処理手段1200のステップ1212へリ
ターンする(ステップ1405)。上述の処理対象表139へ
の設定結果は、図10において情報139aとして示されて
いる。
【0070】以上のようにして得られたパースツリー13
0(図10)における情報135aおよび136aは、図9のパ
ースツリー120における左外結合による結合表132の右表
に当る内結合の結合表134を構成する基本表135と136と
のそれぞれについて、前述の左外結合の定義により、結
合条件T1.c1=T2.c1の下にnull値が設定され得ることを
示すことを意味する。また、情報135bおよび136bは、
図9のパースツリー120における左外結合の結合表の右
下に位置する内結合による結合表134を構成する基本表1
35と136のそれぞれについて、左外結合の定義により、
結合条件T2.c1=T3.c1の下にnull値が設定され得ること
を意味する。さらに、情報139aは、図9のパースツリ
ー120における左外結合による結合表137の右表に当る基
本表139について、左外結合の定義により、結合条件T4.
c1=T5.c1の下にnull値が設定され得ることを示すことを
意味する。
【0071】次に、図10のパースツリー130について、
オプティマイザ部102は、基本表133,135,136,138,1
39および付加された情報135a,135b,136a,136b,
139aを再帰的にツリーの左から順に並べることによっ
て、図11に示すアクセスプラン150を得る。
【0072】このアクセスプラン150を上から下へ順に
表T1,T2,T3,T4,T5を処理していくことを考えると、この
内の152中の結合条件T2.c1=T3.c1は、図12に示すよう
に、表T2および表T3の両方の読み込みが完了した時点
162に移動するのが好都合である。こうして得られたア
クセスプラン160(図12)を木構造化したパースツリー1
70を図13に示す。パースツリー170では、上述の考察の
結果を反映して、パースツリー130(図10)における表T2
の検索条件135bを移動して、表T3の検索条件171として
いるのが解る。
【0073】アクセスプラン160は、上述のとおり、基
本表を再帰的にツリーの左から順に並ベることにより得
られる一元的な並びであるため、結合表のネスト構造を
考慮することなく、その順に実行処理部103で処理可能
な中間オブジェクト180のプランとなる。また、その検
索結果もJIS X 3005-1995で規定されている仕様を満た
す。これは、実行時に結合表のネスト構造に従って結合
表単位に中間結果を作成する等の従来のアクセスプラン
よりも高速であり、最適なデータベースアクセス性能を
提供するものである。
【0074】オプティマイザ部102は、アクセスプラン1
60およびパースツリー170により、実行処理部103が処理
可能な中間オブジェクト180(図14)を生成する。中間
オブジェクト180は、実行処理部103が解釈可能なデータ
ベースアクセス手順を示すものである。
【0075】すなわち、図14において、参照番号181で
示される処理では表T1のレコードが先頭から順次に読み
出され、同様に、182では表T2のレコードが先頭から順
次に読み出され、183では表T3のレコードが先頭から順
次に読み出され、184では表T4のレコードが先頭から順
次に読み出され、185では表T5のレコードが先頭から順
に読み出される。
【0076】その際、182の処理実行時には、検索条件1
82aが評価され、評価結果が真であれば読み出されたレ
コード、偽であればnull値をそれぞれ表T2のレコードと
して設定する。
【0077】また、183の処理実行時には、検索条件183
a,183bおよび183cが評価される。検索条件183aの評
価結果が真であれば読み出されたレコード、偽であれば
null値をそれぞれ表T3のレコードとして設定する。同様
に、検索条件183bの評価結果が真であれば読み出され
たレコード、偽であればnull値をそれぞれ表T3のレコー
ドとして設定し、検索条件183cの評価結果が真であれ
ば読み出されたレコード、偽であればnull値をそれぞれ
表T3のレコードとして設定する。185の処理実行時に
は、検索条件185aが評価され、評価結果が真であれば
読み出されたレコード、偽であればnull値をそれぞれ表
T5のレコードとして設定する。
【0078】次に、本発明の他の実施の形態について説
明する。
【0079】この実施の形態は、外結合表を用いたアク
セスであっても、インデックス検索を可能にするもので
あって、図12に示したアクセスプラン160を得るまでの
手順は、第1の実施の形態と同じである。したがって、
本実施の形態におけるオプティマイザ部104は、図15に
示すとおり、図2にインデックス選択手段2000が付加さ
れたものとなる。
【0080】いま、第1の実施の形態の説明で使用した
図8のSQL文110に、図16に示すようなインデックス190が
付帯しているとする。インデックス文190におけるイン
デックス定義191は、表T2の列2をインデックスI2、表T3
の列1をインデックスI3と、それぞれ定義することを意
味する。このようなインデックス検索は、前述のよう
に、データベースに対するアクセスを高速化するものと
して知られている。
【0081】本実施の形態におけるオプティマイザ部10
4は、アクセスプラン160を得た後、これを入力としてイ
ンデックス選択手段2000を呼び出す。インデックス選択
手段2000は、アクセスプラン160中の表16a,16b,16
c,16d,16eの全てについて、インデックス定義191
またはインデックス定義192によるインデックスが存在
し、かつ、そのインデックスが結合条件161〜165で使用
可能なものかを検査する。インデックスが結合条件で使
用可能とは、そのインデックスにおいてインデックス定
義された表について、結合条件が設定されていることを
いう。検査の結果、使用可能なものがあれば、表に使用
可能なインデックスの設定を行い、それをアクセスプラ
ンに反映することにより実行時処理の高速化を図る。
【0082】次に、図17のフローチャートを参照して本
実施の形態の全体の動作を説明する。
【0083】インデックス選択手段2000は、アクセスプ
ラン160の先頭の表から処理を開始し(図17のステップ2
001)、表16aにインデックスが存在するか否かを検査
する(ステップ2002)。その結果は偽であり、また、表
16aは最終表でないため(ステップ2005)、次の表16b
へ進む(ステップ2006)。
【0084】表16bについても、インデックスが存在す
るか否かを検査し(ステップ2002)、結果は真であるた
め、次に、結合条件161を参照してインデックス使用可
能な条件が存在するか否かを検査する(ステップ2003)。
結果は偽であるため、最終表か否かの検査(ステップ20
05)を経て、次の表16cへ進む(ステップ2006)。
【0085】表16cについてインデックスが存在するか
否かを検査した(ステップ2002)結果は真であるため、
次に、検索条件162,163および164を参照してインデッ
クス使用可能な条件が存在するか否かを検査する(ステ
ップ2003)。すると、検索条件162と164についてインデ
ックス192を使用可能であることが解り、検査結果は真
であるため、インデックス192を使用可能なものとして
設定する(ステップ2004)。そして、表16cは最終表でな
いので(ステップ2005)、次の表16dへ進む(ステップ
2006)。
【0086】表16dインデックスが存在するか否か検査
する(ステップ2002)。その結果は偽であり、また表16d
は最終表でないため(ステップ2005)、次の表16eへ進
む(ステップ2006)。
【0087】表16eにインデックスが存在するか否かを
検査する(ステップ2002)。その結果は偽であり、表16e
は最終表であるため(ステップ2005)、リターンする
(ステップ2007)。
【0088】以上の処理の結果、図18に示すような中間
オブジェクト210が得られる。この中間オブジェクト210
において、参照番号211で示される処理は、インデック
ス使用可能と判断された表16cに対するものであって、
インデックスを用いて表T3を読み込むインデックス検索
となる。
【0089】このように、本実施の形態によれば、結合
表を用いたデータベースアクセスにおいても、検索に使
用可能なインデックスを的確に設定できるため、インデ
ックスを用いた最適なデータベースアクセス性能を得る
ことができる。これに対して、従来技術によるときは、
結合表中に外結合を用いた問合せの場合、内結合のみの
場合とは異なって、結合則が利用できないため、インデ
ックス使用可能な条件が限られ、結合条件の移動を考慮
した上で使用可能な選択する必要がある。
【0090】なお、以上に説明したデータベースアクセ
ス方法をコンピュータに実行させるためのプログラムを
半導体メモリ,磁気ディスク等のコンピュータ読み込み
可能な記録媒体に記憶しておき、コンピュータに読み込
ませて実行させるようにしてもよい。記録媒体に記憶さ
れたプログラムは、コンピュータに読み込まれて、上述
の第1の実施の形態、または第2の実施の形態における
オプティマイザ部102または104と同様な動作を行
う。
【0091】
【発明の効果】本発明の第1の効果は、結合表を含むデ
ータベースのアクセスに対して、一元的な表の並びとし
た中間オブジェクトを生成する構成としたため、高速な
データベースアクセス性能を提供できるということであ
る。これは、データベースアクセスを全て一元的な表の
並びに変換するので、実行時に実行処理部が結合表のネ
スト構造や外結合を意識せずに処理することが可能とな
り、また、中間結果を生成する等の特別な処理を付加す
る必要がなくなるからである。
【0092】また、本発明の第2の効果は、結合表を含
むデータベースアクセスに対しても、検索に使用可能な
インデックスを的確に検出できるため、インデックスを
使用した高速なデータベースのアクセス性能を提供でき
るということである。これは、結合表を含むアクセスを
一元的な表の並びに変換するとともに、必要な条件を予
め移動する手順を設けたので、内結合のみの場合以外
の、結合則が適用できない場合であっても、使用可能な
インデックスを的確に検出できるようになったからであ
る。
【図面の簡単な説明】
【図1】本発明のDBMSの実施の形態を示すブロック図
【図2】本発明のDBMSにおけるオプティマイザ部の実施
の形態の処理遷移図
【図3】図2におけるfrom句処理手段1000の流れ図
【図4】図2における結合表処理手段1100の流れ図
【図5】図2における外結合表処理手段1200の流れ図
【図6】図2における内結合表処理手段1300の流れ図
【図7】図2における結合条件設定手段1400の流れ図
【図8】本発明の動作を説明するためのSQL文の例を示
す図
【図9】図8のSQL文を木構造で表したパースツリーを示
す図
【図10】図2の実施の形態によって得られたパースツ
リーを示す図
【図11】図10のパースツリーから得られたアクセスプ
ランを示す図
【図12】図11に示すアクセスプラン中の検索条件を並
び替えたアクセスプランを示す図
【図13】図12のアクセスプランを木構造で表したパー
スツリーを示す図
【図14】図2の実施の形態によって得られた中間オブ
ジェクトを示す図
【図15】本発明のDBMSにおけるオプティマイザ部の他
の実施の形態の処理遷移図
【図16】図15の実施の形態を説明するためのインデッ
クス文の例を示す図
【図17】図15の実施の形態におけるインデックス選択
手段の流れ図
【図18】図15の実施の形態によって得られた中間オブ
ジェクトを示す図
【図19】従来技術を説明するためのSQL文の例を示す
【図20】従来技術を説明するための各表の内容を示す
【図21】従来技術における中間結果を用いたSQL文を
示す図
【図22】図18のSQL文に対して得られた最終結果を示
す図
【図23】従来技術の問題点を説明するための図
【符号の説明】
000 SQL文 001 ネスト構造 006 SQL文 100 データベース管理システム(DBMS) 101 SQL解析部 102 オプティマイザ部 103 実行処理部 104 オプティマイザ部 110 SQL文 120 パースツリー 130 パースツリー 150 アクセスプラン 160 アクセスプラン 170 パースツリー 180 中間オブジェクト 190 インデックス文 210 中間オブジェクト 1000 from句処理手段 1100 結合表処理手段 1200 外結合表処理手段 1300 内結合表処理手段 1400 結合条件設定手段 2000 インデックス選択手段

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 アクセス文中に結合表を含むアクセスに
    対して、前記結合表のネスト構造および外結合の状態
    を、一元的な表の並びから成るアクセスに変換し、これ
    によって中間オブジェクトを生成し、アクセス実行時に
    一括処理可能にしたことを特徴とする関係データベース
    アクセス装置。
  2. 【請求項2】 アクセス文中に結合表を含むアクセスに
    対して、前記結合表のネスト構造および結合表を構成す
    る基本表を探索し、該基本表ごとに、順次に、関連する
    結合条件と該結合条件を満たさない場合には、該基本表
    にnull値を設定すべき旨の指定を行うことによって、前
    記結合表のネスト構造および外結合の状態を、一元的な
    表の並びから成るアクセスに変換し、これによって中間
    オブジェクトを生成し、アクセス実行時に一括処理可能
    にしたことを特徴とする関係データベースアクセス装
    置。
  3. 【請求項3】 SQL文による関係データベースに対する
    アクセスを解析して木構造のパースツリーを出力するSQ
    L解析手段と、 前記パースツリーの先頭から順次に結合表の有無を検査
    するfrom句処理手段と、 該from句処理手段が結合表を検出するごとに呼び出さ
    れ、前記パースツリー上の結合表を再帰的に処理して、
    当該結合表を親とする子を順次に探索し未処理の左端の
    結合表(開始表)を検出する結合表処理手段と、 該結合表処理手段が左(右)外結合表を検出するごとに
    呼び出され、当該外結合表を親とする右(左)側の子の
    基本表を前記探索と同方向、かつ順次に探索し、当該基
    本表の結合状態に基づいたnullセットフラグ処理を行う
    外結合表処理手段と、 前記結合表処理手段が内結合表を検出するごとに呼び出
    され、当該内結合表を親とする子の基本表を前記探索と
    同方向、かつ順次に探索し、当該基本表の結合状態に基
    づいたnullセットフラグ処理を行う内結合表処理手段
    と、 前記外結合表処理手段または前記内結合表処理手段が基
    本表を検出するごとに呼び出され、該基本表に、当該親
    の結合条件と、該結合条件を満たさない場合には前記nu
    llセットフラグ処理の結果によりnull値を設定すべき旨
    との設定を行う結合条件設定手段と を有し、上記各手段によって生成された最適化パースツ
    リーに基づき、アクセス実行時に一括処理可能な中間オ
    ブジェクトを生成できるようにしたことを特徴とする関
    係データベースアクセス装置。
  4. 【請求項4】 前記SQL文がインデックス文を含む場合
    に、前記パースツリー中の全ての表について、インデッ
    クス定義の有無と、有の場合に当該表で使用可能か否か
    とを検査し、使用可能なインデックスを設定するインデ
    ックス設定手段を付加したことを特徴とする請求項3記
    載の関係データベースアクセス装置。
  5. 【請求項5】 前記結合表処理手段は、前記開始表の左
    表または右表が結合表なら、それぞれ左表または右表を
    開始表として再帰的に処理し、また前記from句処理手段
    が検出した開始表が外結合表または内結合表なら該開始
    表を処理対象表とし、 前記外結合表処理手段は、前記処理対象表の左表または
    右表が結合表なら左表または右表を処理対象表として再
    帰的に処理し、また前記処理対象表の左表が結合表でな
    いが前記処理対象表と前記開始表が等しいなら、若しく
    は前記処理対象表の左表が結合表でないならnullセット
    フラグをセットして左表または右表を処理対象表とし、 前記内結合表処理手段は、前記開始表が左結合表の右下
    にあり、かつ前記処理対象表の左表が結合表なら該左表
    を、また、前記開始表の右表が結合表なら該右表をそれ
    ぞれ開始表として再帰的に処理し、また、前記開始表が
    左結合表の右下にあり、かつ前記処理対象表の左表が結
    合表でないとき及び前記開始表の右表が結合表でないと
    きは前記nullセットフラグをセットし、また、前記開始
    表が左結合表の右下になく、かつ前記処理対象表の右表
    が基本表なら前記nuuセットフラグをセットせず、 前記結合条件設定手段は、前記nullセットフラグがセッ
    トされているか否かに応じて、前記処理対象表に結合条
    件を満たさない場合にはnull値を設定すべき旨の指定を
    行うことを特徴とする請求項3または4記載の関係デー
    タベースアクセス装置。
  6. 【請求項6】 SQL文による関係データベースに対する
    アクセスを解析して木構造のパースツリーを出力する手
    順と、 前記パースツリーの先頭から結合表の有無を検査する手
    順と、 該検査によって結合表を検出するごとに呼び出され、前
    記パースツリー上の結合表を再帰的に処理して、当該結
    合表を親とする子を順次に探索し未処理の左端の結合表
    (開始表)を検出する手順と、 該該探索によって左(右)外結合表を検出するごとに呼
    び出され、当該外結合表を親とする右(左)側の子の基
    本表を前記探索と同方向、かつ順次に探索し、当該基本
    表の結合状態に基づいたnullセットフラグ処理を行う手
    順と、 前記内結合表を検出するごとに呼び出され、当該内結合
    表を親とする子の基本表を前記探索と同方向、かつ順次
    に探索し、当該基本表の結合状態に基づいたnullセット
    フラグ処理を行う手順と、 前記探索によって基本表が検出されるごとに呼び出さ
    れ、該基本表に、当該親の結合条件と、該結合条件を満
    たさない場合には前記nullセットフラグ処理の結果によ
    りnull値を設定すべき旨との設定を行う手順と を有し、上記各手順によって生成された最適化パースツ
    リーに基づき、アクセス実行時に一括処理可能な中間オ
    ブジェクトを生成できるようにしたことを特徴とする関
    係データベースアクセス方法。
  7. 【請求項7】 SQL文による関係データベースに対する
    アクセスを解析して木構造のパースツリーを出力する手
    順と、 前記パースツリーの先頭から結合表の有無を検査する手
    順と、 該検査によって結合表を検出するごとに呼び出され、前
    記パースツリー上の結合表を再帰的に処理して、当該結
    合表を親とする子を順次に探索し未処理の左端の結合表
    (開始表)を検出する手順と、 該該探索によって左(右)外結合表を検出するごとに呼
    び出され、当該外結合表を親とする右(左)側の子の基
    本表を前記探索と同方向、かつ順次に探索し、当該基本
    表の結合状態に基づいたnullセットフラグ処理を行う手
    順と、 前記内結合表を検出するごとに呼び出され、当該内結合
    表を親とする子の基本表を前記探索と同方向、かつ順次
    に探索し、当該基本表の結合状態に基づいたnullセット
    フラグ処理を行う手順と、 前記探索によって基本表が検出されるごとに呼び出さ
    れ、該基本表に、当該親の結合条件と、該結合条件を満
    たさない場合には前記nullセットフラグ処理の結果によ
    りnull値を設定すべき旨との設定を行う手順とを有し、
    上記各手順によって生成された最適化パースツリーに基
    づき、アクセス実行時に一括処理可能な中間オブジェク
    トを生成できるようにしたことを特徴とする関係データ
    ベースアクセス方法をコンピュータに実行させるための
    プログラムを記録したコンピュータ読み込み可能な記録
    媒体。
JP19024199A 1999-07-05 1999-07-05 関係データベースアクセス装置および関係データベースアクセス方法 Expired - Fee Related JP3584788B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19024199A JP3584788B2 (ja) 1999-07-05 1999-07-05 関係データベースアクセス装置および関係データベースアクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19024199A JP3584788B2 (ja) 1999-07-05 1999-07-05 関係データベースアクセス装置および関係データベースアクセス方法

Publications (2)

Publication Number Publication Date
JP2001022757A true JP2001022757A (ja) 2001-01-26
JP3584788B2 JP3584788B2 (ja) 2004-11-04

Family

ID=16254864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19024199A Expired - Fee Related JP3584788B2 (ja) 1999-07-05 1999-07-05 関係データベースアクセス装置および関係データベースアクセス方法

Country Status (1)

Country Link
JP (1) JP3584788B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1307595C (zh) * 2001-07-19 2007-03-28 精工爱普生株式会社 管理信息数据库结构定义文件链接的方法及管理设备
JP2009539151A (ja) * 2006-06-01 2009-11-12 メディアライフ モーシュトル ウント ライフ コミュニケーションズ−ウント インフォメーションズテクノロジーン オーエーゲー 関係データベースシステムを制御するための方法
KR100956921B1 (ko) 2008-04-28 2010-05-11 권순용 데이터베이스 액세스 방법
JP2015535369A (ja) * 2012-09-27 2015-12-10 ロジックブロックス, インコーポレイテッドLogicblox, Inc. リープフロッグツリージョイン

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197768A (ja) * 1992-01-20 1993-08-06 Shimadzu Corp 医療検査機器の予約管理装置
JPH06195382A (ja) * 1992-08-20 1994-07-15 Hewlett Packard Co <Hp> 合成dbms較正を用いた分散形データベース管理装置における情報検索
JPH08235218A (ja) * 1995-02-24 1996-09-13 Nec Corp オブジェクト指向データベース管理システムにおける問い合わせの分割処理方式
JPH08328920A (ja) * 1995-05-02 1996-12-13 Hewlett Packard Co <Hp> データベース照会最適化システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197768A (ja) * 1992-01-20 1993-08-06 Shimadzu Corp 医療検査機器の予約管理装置
JPH06195382A (ja) * 1992-08-20 1994-07-15 Hewlett Packard Co <Hp> 合成dbms較正を用いた分散形データベース管理装置における情報検索
JPH08235218A (ja) * 1995-02-24 1996-09-13 Nec Corp オブジェクト指向データベース管理システムにおける問い合わせの分割処理方式
JPH08328920A (ja) * 1995-05-02 1996-12-13 Hewlett Packard Co <Hp> データベース照会最適化システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1307595C (zh) * 2001-07-19 2007-03-28 精工爱普生株式会社 管理信息数据库结构定义文件链接的方法及管理设备
JP2009539151A (ja) * 2006-06-01 2009-11-12 メディアライフ モーシュトル ウント ライフ コミュニケーションズ−ウント インフォメーションズテクノロジーン オーエーゲー 関係データベースシステムを制御するための方法
KR100956921B1 (ko) 2008-04-28 2010-05-11 권순용 데이터베이스 액세스 방법
JP2015535369A (ja) * 2012-09-27 2015-12-10 ロジックブロックス, インコーポレイテッドLogicblox, Inc. リープフロッグツリージョイン

Also Published As

Publication number Publication date
JP3584788B2 (ja) 2004-11-04

Similar Documents

Publication Publication Date Title
US9053210B2 (en) Graph query processing using plurality of engines
US8332389B2 (en) Join order for a database query
CN111670433A (zh) 查询优化器约束
CN106970819B (zh) 一种基于prdl规则描述语言的c程序代码规范检查装置
US9659082B2 (en) Semantic query language
US7111025B2 (en) Information retrieval system and method using index ANDing for improving performance
US20030061244A1 (en) System and method for database query optimization
CN112988782B (zh) Hive支持交互式查询的方法、装置及存储介质
JP2002297605A (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
Hueske et al. Peeking into the optimization of data flow programs with mapreduce-style udfs
Che et al. Query optimization in XML structured-document databases
CN114625732A (zh) 基于结构化查询语言sql的查询方法和系统
JP5927886B2 (ja) クエリシステム及びコンピュータプログラム
Nevarez Inside the SQL Server Query Optimizer
JPH06282576A (ja) ネットワーク型データベースのリレーショナルアクセス方式
CN107818181A (zh) 基于Plcient交互式引擎的索引方法及其系统
JP3584788B2 (ja) 関係データベースアクセス装置および関係データベースアクセス方法
US8589435B2 (en) Method, system and program for simplifying data flow in a statement with sequenced subexpressions
JP4562130B2 (ja) Xmlデータ処理装置、xmlデータ処理方法、xmlデータ処理プログラムおよびxmlデータ処理プログラムを記録した記憶媒体
US20240220499A1 (en) Method and apparatus for optimizing a database query
Rong et al. DBinsight: A Tool for Interactively Understanding the Query Processing Pipeline in RDBMSs
JP7495269B2 (ja) データ管理システムおよびデータ管理方法
Majeed et al. Evaluation of Natural Language Software Interfaces to Databases.
CN116821140B (zh) 数据存储方法、装置、设备及计算机可读存储介质
CN117971888B (zh) 数据引擎的确定方法、装置、设备、存储介质及程序产品

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040726

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070813

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090813

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090813

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100813

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110813

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110813

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120813

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130813

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees