JPH04213765A - 関係データベースシステムの表を結合する方法 - Google Patents
関係データベースシステムの表を結合する方法Info
- Publication number
- JPH04213765A JPH04213765A JP3014755A JP1475591A JPH04213765A JP H04213765 A JPH04213765 A JP H04213765A JP 3014755 A JP3014755 A JP 3014755A JP 1475591 A JP1475591 A JP 1475591A JP H04213765 A JPH04213765 A JP H04213765A
- Authority
- JP
- Japan
- Prior art keywords
- rows
- join
- row
- database
- index
- 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
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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- 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/99937—Sorting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明はデータベース管理装置の
分野に関するものであり、とくに、関係データベース管
理装置の少なくとも2つの表を結合するためのハイブリ
ッド技術に関するものである。この技術は、表を結合す
るための確立されている2つの技術の積極的な特徴を組
合わせる点でハイブリッドである。
分野に関するものであり、とくに、関係データベース管
理装置の少なくとも2つの表を結合するためのハイブリ
ッド技術に関するものである。この技術は、表を結合す
るための確立されている2つの技術の積極的な特徴を組
合わせる点でハイブリッドである。
【0002】
【従来の技術】関係データベース装置においては、デー
タは表化されたフォーマットで記憶される。データベー
スの表は、共通の特性を共用する行のセットで構成され
る。図3のSkill−Table は、特定の製造技
能を持つ全ての従業員の記録を記憶する表10である。 この表は隣接する記憶装置においてレコードが順次並べ
られることを意図するが、実際にはレコードはでたらめ
に記憶されることがある。しかし、この明細書における
説明を明確にするため、および以下に述べる本発明の動
作を強調するために、先の形式が図3に示されている。
タは表化されたフォーマットで記憶される。データベー
スの表は、共通の特性を共用する行のセットで構成され
る。図3のSkill−Table は、特定の製造技
能を持つ全ての従業員の記録を記憶する表10である。 この表は隣接する記憶装置においてレコードが順次並べ
られることを意図するが、実際にはレコードはでたらめ
に記憶されることがある。しかし、この明細書における
説明を明確にするため、および以下に述べる本発明の動
作を強調するために、先の形式が図3に示されている。
【0003】図3において、表の各水平スライス(「行
」)は従業員番号(empno) と従業員名(emp
−name)と、技能(skill)との3つのフィー
ルドを含む。したがって、この表の1行目は従業員番号
(empno) が53、姓(emp−name)がフ
ィッシャー、技能が「設計」であるような従業員を示す
。通常、上から下へ行が番号(「識別子」)により識別
されるように、この表は順次番号をつけられ、組立てら
れた行によって様式化される。実際に、行識別子(RI
D) は、この表が含まれる記憶装置の「ページ」にお
けるオフセットに対応する。
」)は従業員番号(empno) と従業員名(emp
−name)と、技能(skill)との3つのフィー
ルドを含む。したがって、この表の1行目は従業員番号
(empno) が53、姓(emp−name)がフ
ィッシャー、技能が「設計」であるような従業員を示す
。通常、上から下へ行が番号(「識別子」)により識別
されるように、この表は順次番号をつけられ、組立てら
れた行によって様式化される。実際に、行識別子(RI
D) は、この表が含まれる記憶装置の「ページ」にお
けるオフセットに対応する。
【0004】「結合」は関係データベース装置において
最も強力な演算子の1つである。その演算子は質問の形
でデータベース装置へ示された基準に従って既存の表か
ら新しい表をユーザが作成できるようにする。たとえば
、図4において、図3の表10を含む管理装置が、表1
0に掲げられている従業員を直属の管理者および所属部
署「dept」に関係づける表12も含む。この装置の
ユーザは、「試験」技能を有し、かつ管理者がデービス
である全ての従業員についての質問を行う。その結果得
られた表が参照番号14で示されている。
最も強力な演算子の1つである。その演算子は質問の形
でデータベース装置へ示された基準に従って既存の表か
ら新しい表をユーザが作成できるようにする。たとえば
、図4において、図3の表10を含む管理装置が、表1
0に掲げられている従業員を直属の管理者および所属部
署「dept」に関係づける表12も含む。この装置の
ユーザは、「試験」技能を有し、かつ管理者がデービス
である全ての従業員についての質問を行う。その結果得
られた表が参照番号14で示されている。
【0005】表が「結合される」と、結果14の行は従
業員名と、管理者と、技能とを図4に示すように含む。
業員名と、管理者と、技能とを図4に示すように含む。
【0006】表10と12のどのレコードが述部(すな
わち、列の値についての諸条件)を満すかの判定におい
ては、表の内容が構造化された検査を受ける。これにつ
いては、レコードのempno フィールドがそれらの
フィールドの垂直の並びを列として取扱うようにして検
査される。表10と12の各々において、この列は「結
合列」と呼ばれる。したがって、サーチ中に、表12の
従業員番号が53である行に出会い、それが管理者述部
を満す時には、表10において従業員番号53の行を見
つけるために表10のempno 列を参照する。同一
の結合列値をを有する行が表10でひとたび見つけられ
ると、技能条件が表10中の行に対して適用される。後
者に類似する諸条件を「ローカル」述部と呼ぶ。という
のは、それらの条件が1つの表の列だけを参照するから
である。
わち、列の値についての諸条件)を満すかの判定におい
ては、表の内容が構造化された検査を受ける。これにつ
いては、レコードのempno フィールドがそれらの
フィールドの垂直の並びを列として取扱うようにして検
査される。表10と12の各々において、この列は「結
合列」と呼ばれる。したがって、サーチ中に、表12の
従業員番号が53である行に出会い、それが管理者述部
を満す時には、表10において従業員番号53の行を見
つけるために表10のempno 列を参照する。同一
の結合列値をを有する行が表10でひとたび見つけられ
ると、技能条件が表10中の行に対して適用される。後
者に類似する諸条件を「ローカル」述部と呼ぶ。という
のは、それらの条件が1つの表の列だけを参照するから
である。
【0007】表10と12において、第1に、結合述部
を満し、第2にそれぞれのローカル述部を満す2つの行
が見つかると、希望の結合表フィールドを含んでいる新
しい行がそれら2つのレコードから形成され、結合表1
4に入れられる。
を満し、第2にそれぞれのローカル述部を満す2つの行
が見つかると、希望の結合表フィールドを含んでいる新
しい行がそれら2つのレコードから形成され、結合表1
4に入れられる。
【0008】2つまたはそれ以上の表を組合わせて1つ
の結合表にする結合法を、1つのやり方、または別のや
り方を実現するために多くの方法が従来技術で知られて
いる。たとえば、本願出願人は下記のデータベース製品
を提供している。各製品は1つまたは複数の結合法をサ
ポートするものである。DB2 、SQL/DS、AS
/400データベースマネージャ、OS/2拡張編集デ
ータベースマネージャがそれである。
の結合表にする結合法を、1つのやり方、または別のや
り方を実現するために多くの方法が従来技術で知られて
いる。たとえば、本願出願人は下記のデータベース製品
を提供している。各製品は1つまたは複数の結合法をサ
ポートするものである。DB2 、SQL/DS、AS
/400データベースマネージャ、OS/2拡張編集デ
ータベースマネージャがそれである。
【0009】上記質問において述べられた1つまたは複
数のそれらの製品のために用いられる構文が下記のよう
にSQL で表される。
数のそれらの製品のために用いられる構文が下記のよう
にSQL で表される。
【0010】SELECT emp name, m
anager, skillFROM dept t
able, skill tableWHERE d
ept table.empno = skill
table.empnoand dept t
able.manager = ”Davis”and
skill table.skill = ”te
st”この質問は、等しいempno を有する全ての
行に対して表10と12を結合する。empno フィ
ールドについての条件は「結合述部」と呼ばれる。結合
述部において言及される表10と12の列は表の「結合
」列である。述部マネージャ=「デービス」と技能=「
試験」は「ローカル述部」と呼ばれる。
anager, skillFROM dept t
able, skill tableWHERE d
ept table.empno = skill
table.empnoand dept t
able.manager = ”Davis”and
skill table.skill = ”te
st”この質問は、等しいempno を有する全ての
行に対して表10と12を結合する。empno フィ
ールドについての条件は「結合述部」と呼ばれる。結合
述部において言及される表10と12の列は表の「結合
」列である。述部マネージャ=「デービス」と技能=「
試験」は「ローカル述部」と呼ばれる。
【0011】この例は限定するものであることを意味し
ない。いいかえると、従来のデータベース装置は、各表
ごとに2つ以上の結合述部と2つ以上のローカル述部を
有する質問をサポートする。また、通常のアンド演算子
とオア演算を用いて、またそれらの演算子の組合わせを
用いて複数の述部を組合わせることができる。更に、結
果行を構成するために結合述部を満す行に対して任意の
数のフィールドを検索できる。
ない。いいかえると、従来のデータベース装置は、各表
ごとに2つ以上の結合述部と2つ以上のローカル述部を
有する質問をサポートする。また、通常のアンド演算子
とオア演算を用いて、またそれらの演算子の組合わせを
用いて複数の述部を組合わせることができる。更に、結
果行を構成するために結合述部を満す行に対して任意の
数のフィールドを検索できる。
【0012】従来の2つの特定の結合手順が知られてい
る。各手順はある条件に対してとくに効率的にする特定
の長さを有し、かつ各手順は他条件に対しては費用を高
くする限界を有する。2つの技術は「ネストされたルー
プ結合」および「分類/マージ結合」と呼ばれる。
る。各手順はある条件に対してとくに効率的にする特定
の長さを有し、かつ各手順は他条件に対しては費用を高
くする限界を有する。2つの技術は「ネストされたルー
プ結合」および「分類/マージ結合」と呼ばれる。
【0013】従来のネストされたループ結合技術を理解
するために図4を参照する。図4(および他の図)にお
いて、dept−table構造12は「外側」表と呼
ばれ、skill−talle 構造10は「内側」表
である。ネストされた結合技術においては、ローカル述
部を満す外側表12中の各行に対して、内側表における
結合列が一致する行に対して走査される。したがって、
従業員の管理者がデービスであるという述部を満す行を
探すために、外側表の結合列が上から下へ走査される。 デービスが管理者として示されている外側表の各行に対
して、インデックスが存在しないとすると、内側表10
の結合列が上から下へ走査される。走査中は、外側表の
行の結合列値に一致する結合列値を有する各内側表行が
、それの技能条件が試験に等しいかどうかの試験を受け
る。したがって、ネストされたループ走査においては、
2つのネストされた走査が採用される。最初に、ローカ
ル述部を満す行に対する外側表の走査を行い、次にそれ
らの各行に対して、内側表10の完全な結合列走査また
は結合列におけるインデックスを介するプローブが行わ
れて一致するレコードを探す。
するために図4を参照する。図4(および他の図)にお
いて、dept−table構造12は「外側」表と呼
ばれ、skill−talle 構造10は「内側」表
である。ネストされた結合技術においては、ローカル述
部を満す外側表12中の各行に対して、内側表における
結合列が一致する行に対して走査される。したがって、
従業員の管理者がデービスであるという述部を満す行を
探すために、外側表の結合列が上から下へ走査される。 デービスが管理者として示されている外側表の各行に対
して、インデックスが存在しないとすると、内側表10
の結合列が上から下へ走査される。走査中は、外側表の
行の結合列値に一致する結合列値を有する各内側表行が
、それの技能条件が試験に等しいかどうかの試験を受け
る。したがって、ネストされたループ走査においては、
2つのネストされた走査が採用される。最初に、ローカ
ル述部を満す行に対する外側表の走査を行い、次にそれ
らの各行に対して、内側表10の完全な結合列走査また
は結合列におけるインデックスを介するプローブが行わ
れて一致するレコードを探す。
【0014】従来技術の分類/マージ結合が図5に示さ
れている。この技術の必須条件は、外側表の結合列と内
側表の結合列を基にしてそれらの表を順序づけすること
である。これにより「SORT」ルーチンの「MERG
E 」フェーズと同様にして結合することが可能にされ
る。それに関連して、分類により各表を順序づけること
ができ、または結合列シーケンス中でアクセスするため
にインデックスを介して表に到達できる。各表における
ローカル述部が図5に示すように分類の前に加えられる
。したがって、従業員番号の大きさの順に管理者=デー
ビスを分類することにより、表12から表20が作成さ
れる。同様に、技能フィールド中に「試験」を有する技
能表レコードを選択し、それらのレコードを従業員番号
により順序づけることにより、技能表10から分数され
た表22が得られる。結合列の順序がひとたび表に対し
て課されると、結合列で分類された構造を用いて結合が
非常に効率良く行われる。このようにして、得た表20
における最初のエントリイに対応する従業員番号で表2
2の結合列を走査することにより走査が開始される。一
致に出会うと、結合表行が一致する行から組立てられ、
結合表14へ入れられる。これに続いて、表20内の次
のレコードが得られ、表22の結合列の走査が最後の走
査が停止された場所からピックアップされる。このよう
にして、分類された表20と22の結合列が、表の結合
を行う際に1回だけおのおの走査される。これとは対照
的に、ネストされたループ結合手順は、外側表ローカル
述部を満す外側表行が見つけられるたびに内側表の結合
列を完全に走査することを要する。
れている。この技術の必須条件は、外側表の結合列と内
側表の結合列を基にしてそれらの表を順序づけすること
である。これにより「SORT」ルーチンの「MERG
E 」フェーズと同様にして結合することが可能にされ
る。それに関連して、分類により各表を順序づけること
ができ、または結合列シーケンス中でアクセスするため
にインデックスを介して表に到達できる。各表における
ローカル述部が図5に示すように分類の前に加えられる
。したがって、従業員番号の大きさの順に管理者=デー
ビスを分類することにより、表12から表20が作成さ
れる。同様に、技能フィールド中に「試験」を有する技
能表レコードを選択し、それらのレコードを従業員番号
により順序づけることにより、技能表10から分数され
た表22が得られる。結合列の順序がひとたび表に対し
て課されると、結合列で分類された構造を用いて結合が
非常に効率良く行われる。このようにして、得た表20
における最初のエントリイに対応する従業員番号で表2
2の結合列を走査することにより走査が開始される。一
致に出会うと、結合表行が一致する行から組立てられ、
結合表14へ入れられる。これに続いて、表20内の次
のレコードが得られ、表22の結合列の走査が最後の走
査が停止された場所からピックアップされる。このよう
にして、分類された表20と22の結合列が、表の結合
を行う際に1回だけおのおの走査される。これとは対照
的に、ネストされたループ結合手順は、外側表ローカル
述部を満す外側表行が見つけられるたびに内側表の結合
列を完全に走査することを要する。
【0015】ネストされた結合技術は内側表の結合列上
におけるインデックスを効率的に使用する。内側表へ送
られた結合列値が順序通りであり、かつ内側表がまとめ
られた時、およびインデックス中の一致する値を見つけ
ることにより内側表において検索された行の数が小さい
時に、ネストされた結合技術は良い。知られているよう
に、表の行が、ほとんど、キー値の順序と同じ物理的順
序で格納される時に、インデックスがまとめられる。
におけるインデックスを効率的に使用する。内側表へ送
られた結合列値が順序通りであり、かつ内側表がまとめ
られた時、およびインデックス中の一致する値を見つけ
ることにより内側表において検索された行の数が小さい
時に、ネストされた結合技術は良い。知られているよう
に、表の行が、ほとんど、キー値の順序と同じ物理的順
序で格納される時に、インデックスがまとめられる。
【0016】
【発明が解決しようとする課題】ネストされたループ結
合の欠点は多数ある。第一に、外側表の各行に対して、
外側表の結合列値がキーとして内側表のインデックスへ
送られる。インデックスキーに一致することが見出され
ると、結合手続きは保留され、データページが装置の記
憶装置に存在しなければ、インデックスキーに対応する
データページを取出すためにI/O 手続きが指名され
る。 I/O プロセスを指名するために結合プロセスを保留
することにより、両者は「同期」させられる。同期I/
O は、内側表におけるまとめられたインデックスアク
セスに対してさえも行われる。その理由は、外側表の結
合列値が順序づけられないことがあるか、外側表結合列
値の間に広い間隙が存在することがあるからである。知
られているように、同期I/O プロセスは、ページ数
を累積して、それらのページ数をまとめてフェッチする
か、ページをプリフェッチする非同期I/O プロセス
よりも長くかかる。ネストされたループ結合の第2の欠
点は、内側表がインデックスの樹を介してアクセスされ
る時に生ずる。 この場合には、内側表の各行の結合列値が、根から始ま
ってインデックスの樹を介してサーチされ、一致するキ
ー値に対する葉ページまで続く。このアクセスモードは
ランダム「インデックスプローブ」と呼ばれている。外
側表の結合列値がはるかに離れていると、インデックス
プローブは効率的である。結合列値が接近していると、
葉ページを通る走査の方がより効率的である。しかし、
この場合には、ネストされたループ結合は、以前の行処
理から得た情報を使用しない。
合の欠点は多数ある。第一に、外側表の各行に対して、
外側表の結合列値がキーとして内側表のインデックスへ
送られる。インデックスキーに一致することが見出され
ると、結合手続きは保留され、データページが装置の記
憶装置に存在しなければ、インデックスキーに対応する
データページを取出すためにI/O 手続きが指名され
る。 I/O プロセスを指名するために結合プロセスを保留
することにより、両者は「同期」させられる。同期I/
O は、内側表におけるまとめられたインデックスアク
セスに対してさえも行われる。その理由は、外側表の結
合列値が順序づけられないことがあるか、外側表結合列
値の間に広い間隙が存在することがあるからである。知
られているように、同期I/O プロセスは、ページ数
を累積して、それらのページ数をまとめてフェッチする
か、ページをプリフェッチする非同期I/O プロセス
よりも長くかかる。ネストされたループ結合の第2の欠
点は、内側表がインデックスの樹を介してアクセスされ
る時に生ずる。 この場合には、内側表の各行の結合列値が、根から始ま
ってインデックスの樹を介してサーチされ、一致するキ
ー値に対する葉ページまで続く。このアクセスモードは
ランダム「インデックスプローブ」と呼ばれている。外
側表の結合列値がはるかに離れていると、インデックス
プローブは効率的である。結合列値が接近していると、
葉ページを通る走査の方がより効率的である。しかし、
この場合には、ネストされたループ結合は、以前の行処
理から得た情報を使用しない。
【0017】最後に、ネストされたループ結合において
は、外側表中に重複結合列値を有する行を、外側表のロ
ーカル述部を含んでいるフィールドでアクセスがキーさ
れる時のように、ランダムにアクセスできる。したがっ
て、外側表中の重複行は、重複行のうちの第1の重複行
に対するCPU 処理時間と同じ処理時間を必要とし、
内側表のデータページが記憶装置になければ、そのデー
タページをフェッチすることを要求できる。
は、外側表中に重複結合列値を有する行を、外側表のロ
ーカル述部を含んでいるフィールドでアクセスがキーさ
れる時のように、ランダムにアクセスできる。したがっ
て、外側表中の重複行は、重複行のうちの第1の重複行
に対するCPU 処理時間と同じ処理時間を必要とし、
内側表のデータページが記憶装置になければ、そのデー
タページをフェッチすることを要求できる。
【0018】分類/マージ結合の欠点は、フィルタリン
グのために結合列インデックスを効果的に使用すること
に失敗することである。この技術においては、結合結果
に関与しない行は分類されることもあり、その結果とし
て、後で結合述部により除去される行のアクセスにおい
て不必要なCPU 時間およびI/O 時間を費やすこ
とになる。
グのために結合列インデックスを効果的に使用すること
に失敗することである。この技術においては、結合結果
に関与しない行は分類されることもあり、その結果とし
て、後で結合述部により除去される行のアクセスにおい
て不必要なCPU 時間およびI/O 時間を費やすこ
とになる。
【0019】ネストされたループ結合と分類/マージ結
合の性能の違いは、1桁またはそれ以上も異なることが
あることを発明者は認めた。含意は、結合法を不正確に
選択するためのコストが非常に高いことである。更に、
不十分または不正確な統計、あるいは表における相関さ
せられた列値のために、今日のデータベース装置は実行
的に大幅に費用がかさむことがある結合法をしばしば選
択する。
合の性能の違いは、1桁またはそれ以上も異なることが
あることを発明者は認めた。含意は、結合法を不正確に
選択するためのコストが非常に高いことである。更に、
不十分または不正確な統計、あるいは表における相関さ
せられた列値のために、今日のデータベース装置は実行
的に大幅に費用がかさむことがある結合法をしばしば選
択する。
【0020】2つの主な従来の結合法の諸欠点を避ける
と同時に、2つの方法の利点を保持する代りの方法に対
する需要がある。
と同時に、2つの方法の利点を保持する代りの方法に対
する需要がある。
【0021】本発明の目的は、ネストされたループ結合
技術と分類/マージ結合技術を強めるために、既存のデ
ータベース構造を用いる結合技術を得ることである。
技術と分類/マージ結合技術を強めるために、既存のデ
ータベース構造を用いる結合技術を得ることである。
【0022】本発明の別の目的は、多数のプロセスを並
列またはパイプライン状に処理できるようにして応答時
間を短くすることである。
列またはパイプライン状に処理できるようにして応答時
間を短くすることである。
【0023】
【課題を解決するための手段】本発明は、結合列につい
てのインデックスと、外側表および内側表のローカル述
部とを利用し、効率的な重複処理および効果的なインデ
ックス検索でデータページに対する順次アクセスを行う
ハイブリッド結合技術で構成される。本発明のハイブリ
ッド結合技術は、ループ結合法および分類/マージ結合
法の性能を向上させる。このハイブリッド結合技術は広
範囲の用途に対して従来技術のいずれよりも良い。本発
明のハイブリッド結合技術は、データベース装置があい
まいな状況にある時には安全な技術を常に提供する。
てのインデックスと、外側表および内側表のローカル述
部とを利用し、効率的な重複処理および効果的なインデ
ックス検索でデータページに対する順次アクセスを行う
ハイブリッド結合技術で構成される。本発明のハイブリ
ッド結合技術は、ループ結合法および分類/マージ結合
法の性能を向上させる。このハイブリッド結合技術は広
範囲の用途に対して従来技術のいずれよりも良い。本発
明のハイブリッド結合技術は、データベース装置があい
まいな状況にある時には安全な技術を常に提供する。
【0024】本発明のハイブリッド結合技術は関係デー
タベース管理装置の2つの表を3段のプロセスで結合す
る。最初に、本発明を実施する任意の装置が、結合述部
がアンド操作により組合わされた時に内側表の1つまた
は複数の結合列に存在することを求め、または内側表の
各結合列についてのインデックスが、全ての結合列につ
いてのインデックスの結果を達成するためにインデック
スのアンド操作またはオア操作を行うことができる場所
に存在することを求めることが主張される。
タベース管理装置の2つの表を3段のプロセスで結合す
る。最初に、本発明を実施する任意の装置が、結合述部
がアンド操作により組合わされた時に内側表の1つまた
は複数の結合列に存在することを求め、または内側表の
各結合列についてのインデックスが、全ての結合列につ
いてのインデックスの結果を達成するためにインデック
スのアンド操作またはオア操作を行うことができる場所
に存在することを求めることが主張される。
【0025】
【作用および発明の効果】正式にいえば、それらの前提
条件は次の通りである。
条件は次の通りである。
【0026】1.結合述部が(P1 AND P2 A
ND…Pn)の形式であるならば、インデックスが内側
表の1つまたは複数の結合列に存在することを本発明は
必要とする。ここに、Pi、i=1,…,n, は各表
の1つの列を含む結合述部である。
ND…Pn)の形式であるならば、インデックスが内側
表の1つまたは複数の結合列に存在することを本発明は
必要とする。ここに、Pi、i=1,…,n, は各表
の1つの列を含む結合述部である。
【0027】2.結合述部が(P、OR P2 OR…
Pn) の形式であるならば、内側表の全ての結合列が
(個々にまたはまとめて)十分なインデックスで表わさ
れるように、それらのインデックスを設けることを本発
明は求める。
Pn) の形式であるならば、内側表の全ての結合列が
(個々にまたはまとめて)十分なインデックスで表わさ
れるように、それらのインデックスを設けることを本発
明は求める。
【0028】3.第1の条件と第2の条件で与えられて
いるように、結合述部が接続的(AND) 形式と離接
的(OR)形式を組合わせた複合述部であれば、第1の
条件と第2の条件を対応する条件に対してホールドせね
ばならない。
いるように、結合述部が接続的(AND) 形式と離接
的(OR)形式を組合わせた複合述部であれば、第1の
条件と第2の条件を対応する条件に対してホールドせね
ばならない。
【0029】本発明の方法の第1の段階においては、内
側表の結合列についてのインデックスが、外側表の行の
そのような値に一致する結合列値を有する内側表の行に
対して走査される。これは外側表と、結合列についての
内側表のインデックス(これは本質的に順序づけられて
いる)とを1回通ったのに応じて行われる。外側表は結
合列において(外側表の結合列についてのインデックス
を分類、走査、またはまとめられたインデックスにより
ある表を走査することにより)順序づけられる。この段
階が終ると、それらの一致する外側表行へ連結されてい
る選択された内側表RID を含んでいる一時的な作業
表が発生される。
側表の結合列についてのインデックスが、外側表の行の
そのような値に一致する結合列値を有する内側表の行に
対して走査される。これは外側表と、結合列についての
内側表のインデックス(これは本質的に順序づけられて
いる)とを1回通ったのに応じて行われる。外側表は結
合列において(外側表の結合列についてのインデックス
を分類、走査、またはまとめられたインデックスにより
ある表を走査することにより)順序づけられる。この段
階が終ると、それらの一致する外側表行へ連結されてい
る選択された内側表RID を含んでいる一時的な作業
表が発生される。
【0030】第2の段階においては、一時的な作業表が
、すでに順序づけられていなければ、RID により順
序づけられ、またはほとんど順序づけられる。
、すでに順序づけられていなければ、RID により順
序づけられ、またはほとんど順序づけられる。
【0031】最後に、内側表の選択された行をフェッチ
するために内側表の行のRID11 ステートメントが
用いられる。ローカル述部と結合述部がそれらの行へ加
えられ、両者を満す述部がそれらの一致する表の行に組
合わされ、結合表に置くために戻される。
するために内側表の行のRID11 ステートメントが
用いられる。ローカル述部と結合述部がそれらの行へ加
えられ、両者を満す述部がそれらの一致する表の行に組
合わされ、結合表に置くために戻される。
【0032】本発明の非常に独特の性質は、データをそ
れの物理的(physical)順序でアクセスできる
ことである。これは非常に効率的なI/Oをサポートす
る。データをそれの物理的な順序でアクセスすることを
サポートする際には、本発明はデータの区画によりタス
クをアクセスするデータの並列実行も可能にする。更に
、方法のコードなる過程をおのおの実行する別々のプロ
セッサで並列タスクを実行することにより、本発明を実
施できる。 1つの過程が結果を次の過程へ供給する(パイプライニ
ング)。
れの物理的(physical)順序でアクセスできる
ことである。これは非常に効率的なI/Oをサポートす
る。データをそれの物理的な順序でアクセスすることを
サポートする際には、本発明はデータの区画によりタス
クをアクセスするデータの並列実行も可能にする。更に
、方法のコードなる過程をおのおの実行する別々のプロ
セッサで並列タスクを実行することにより、本発明を実
施できる。 1つの過程が結果を次の過程へ供給する(パイプライニ
ング)。
【0033】
【実施例】本発明を詳しく説明するための準備として、
以下に述べる技術はSQL 型関係データベース管理装
置、またはそれと同等の装置を含むプログラム式コンピ
ュータ装置で実行可能であることを述べておく。SQL
型装置は本願出願人の製品であるDB2 およびSQ
L/DSデータベース管理装置のような製品で具体化さ
れる。両方の製品はアイビーエム・システム/370
型、または同等の装置で実行できる。とくに、DB2
はMVS/370 およびMVS/XAオペレーティン
グシステムに使用することを意図しており、SQL/D
Sデータベース管理装置はVM/SP 、UM XA
システム製品、VSE/SPおよびVSE オペレーテ
ィングシステムに使用することを意図するものである。 SQL 型のデータベースマネージャが、本願出願人に
より、DS/2 EE 製品およびAS/400製品に
関連して提供される。また、基礎を成すSQL 型装置
に対するユーザインターフェイスが、アイビーエム社か
ら入手できるQMF 設備のようなユーザ質問製品によ
り提供される。その設備は、本願発明により関係データ
ベースへ質問をベースとするユーザインデックスも提供
できる。
以下に述べる技術はSQL 型関係データベース管理装
置、またはそれと同等の装置を含むプログラム式コンピ
ュータ装置で実行可能であることを述べておく。SQL
型装置は本願出願人の製品であるDB2 およびSQ
L/DSデータベース管理装置のような製品で具体化さ
れる。両方の製品はアイビーエム・システム/370
型、または同等の装置で実行できる。とくに、DB2
はMVS/370 およびMVS/XAオペレーティン
グシステムに使用することを意図しており、SQL/D
Sデータベース管理装置はVM/SP 、UM XA
システム製品、VSE/SPおよびVSE オペレーテ
ィングシステムに使用することを意図するものである。 SQL 型のデータベースマネージャが、本願出願人に
より、DS/2 EE 製品およびAS/400製品に
関連して提供される。また、基礎を成すSQL 型装置
に対するユーザインターフェイスが、アイビーエム社か
ら入手できるQMF 設備のようなユーザ質問製品によ
り提供される。その設備は、本願発明により関係データ
ベースへ質問をベースとするユーザインデックスも提供
できる。
【0034】本発明のハイブリッド結合技術が処理フロ
ー1,2,3に示されている。それらの処理フローを表
10と12の例である結合を参照して説明する。この例
が図1に示されている。それらの表は本発明の技術の3
つの相を示す。3つの表が、基礎を成すSQL 型装置
をとる疑似コードの態様で提示されている。疑似コード
においては、外側表(表12)は「T1」と呼ばれ、内
側表(表10)はT2と呼ばれる。知られているように
、SQL 装置は、データベースレコードを順次アクセ
スするために、「カーソル」と呼ばれる構造を採用する
。これに関して、質問のSELECTステートメントに
より形成される。SQL プログラミングにおいては、
SELECTステートメントにより宣言されたカーソル
の実行を開始するためにOPENステートメントが採用
される。質問のFROM項に指定されているデータベー
ス構造にカーソルが適用される。 OPENステートメントは指定されている構造をアクセ
スし、結合条件とローカル条件を満すレコードのフィー
ルドを得る。従来、全ての指定されている構造が完全に
アクセスされるまで、OPENカーソル処理が再帰的に
進む。 OPEN手順は1組の中間結果を組立てる。カーソル処
理のフェッチ相中にレコードを検索するためにそれらの
中間結果は用いられる。
ー1,2,3に示されている。それらの処理フローを表
10と12の例である結合を参照して説明する。この例
が図1に示されている。それらの表は本発明の技術の3
つの相を示す。3つの表が、基礎を成すSQL 型装置
をとる疑似コードの態様で提示されている。疑似コード
においては、外側表(表12)は「T1」と呼ばれ、内
側表(表10)はT2と呼ばれる。知られているように
、SQL 装置は、データベースレコードを順次アクセ
スするために、「カーソル」と呼ばれる構造を採用する
。これに関して、質問のSELECTステートメントに
より形成される。SQL プログラミングにおいては、
SELECTステートメントにより宣言されたカーソル
の実行を開始するためにOPENステートメントが採用
される。質問のFROM項に指定されているデータベー
ス構造にカーソルが適用される。 OPENステートメントは指定されている構造をアクセ
スし、結合条件とローカル条件を満すレコードのフィー
ルドを得る。従来、全ての指定されている構造が完全に
アクセスされるまで、OPENカーソル処理が再帰的に
進む。 OPEN手順は1組の中間結果を組立てる。カーソル処
理のフェッチ相中にレコードを検索するためにそれらの
中間結果は用いられる。
【0035】SQL 処理におけるFETCH ステー
トメントは、中間結果を基にしてレコードを得、SEL
ECTステートメントにおいて指定されているフィール
ドを含む結合表を構成する。
トメントは、中間結果を基にしてレコードを得、SEL
ECTステートメントにおいて指定されているフィール
ドを含む結合表を構成する。
【0036】最後に、CLOSE ステートメントがカ
ーソルおよび関連する任意のプロセスを非活動化する。
ーソルおよび関連する任意のプロセスを非活動化する。
【0037】次に処理フロー1と図1を参照する。カー
ソルが開かれた時に本発明の技術の第1の相が呼び出さ
れる。第1の相の間に中間結果が得られ、外側表(表1
2)の行と、内側表(表10)の中のそれの一致する行
の行識別子(RID) を供給するために表がFETC
H 時刻に用いられる。第1に、分類されたアクセスを
表12に対して行う走査がステートメント100におい
て開かれる。 総称的には、「走査」というのは、表のレコードが行ご
とに順次検査されるレコードサーチのプロセスを指す。 ステートメント101においては、内側表、図5の表1
0、の結合列で走査が開かれる。
ソルが開かれた時に本発明の技術の第1の相が呼び出さ
れる。第1の相の間に中間結果が得られ、外側表(表1
2)の行と、内側表(表10)の中のそれの一致する行
の行識別子(RID) を供給するために表がFETC
H 時刻に用いられる。第1に、分類されたアクセスを
表12に対して行う走査がステートメント100におい
て開かれる。 総称的には、「走査」というのは、表のレコードが行ご
とに順次検査されるレコードサーチのプロセスを指す。 ステートメント101においては、内側表、図5の表1
0、の結合列で走査が開かれる。
【0038】処理フロー1
カーソル解放処理
100 分類されたアクセスを行う走査を解放1
01 T2インデックスで操作を解放102
T1上のEOF/T2上のEOFまで実行103
すべての必要な列を検索し、すべての入
手可能な述部を適用しながら次のT1行を得る。 104 If 新しいキー値が複製で
ない場合、Then 105 T2よりRIDリスト
をフェッチ、ここでインデックスキー=結合列値 105a Else 前のRIDリストが
見つかればそれを使用 106 If RIDリストが見つか
れば、 Then 107 中間結果表中に複合行
(T2 RID、T1 データ)を形成 108 End 120 分類から得られたすべてのランをマージ
121 If ローカル術部(T2)の列のイ
ンデックスが使用されていれば、
Then122 修飾された行要に
分類されたRIDリストを形成 123 RIDと中間結果表のそれとを
AND走査 125 If EOF (T1またはT2の
いずれかの)、 Then 126 T1上の走査を終了127
T2インデックス上の走査を終了130
T2上の連続的なプリフェッチ走査を解放131
中間結果表上の連続的なプリフェッチ走査を解
放
01 T2インデックスで操作を解放102
T1上のEOF/T2上のEOFまで実行103
すべての必要な列を検索し、すべての入
手可能な述部を適用しながら次のT1行を得る。 104 If 新しいキー値が複製で
ない場合、Then 105 T2よりRIDリスト
をフェッチ、ここでインデックスキー=結合列値 105a Else 前のRIDリストが
見つかればそれを使用 106 If RIDリストが見つか
れば、 Then 107 中間結果表中に複合行
(T2 RID、T1 データ)を形成 108 End 120 分類から得られたすべてのランをマージ
121 If ローカル術部(T2)の列のイ
ンデックスが使用されていれば、
Then122 修飾された行要に
分類されたRIDリストを形成 123 RIDと中間結果表のそれとを
AND走査 125 If EOF (T1またはT2の
いずれかの)、 Then 126 T1上の走査を終了127
T2インデックス上の走査を終了130
T2上の連続的なプリフェッチ走査を解放131
中間結果表上の連続的なプリフェッチ走査を解
放
【0039】処理フロー2
フェッチカーソル処理
200 (復帰した行/EOF)まで実行201
中間結果表中の次の行をフェッチ202
If T2 RIDが最後のものと同じであれば
、Then 203 同じ内側表を再使用204
If 行がすべての術部を満足していれ
ば、Then 205 結果行を形成し、ユー
ザに戻す戻った行を表示 206 Else 206a Else 207 すべての術部を適用しながらT
2行をフェッチ(結合術部含む) 208 If 行がすべての術部を満
足するならば、Then 209 結果行を形成し、ユー
ザに戻す210 戻った行を表
示211 End
中間結果表中の次の行をフェッチ202
If T2 RIDが最後のものと同じであれば
、Then 203 同じ内側表を再使用204
If 行がすべての術部を満足していれ
ば、Then 205 結果行を形成し、ユー
ザに戻す戻った行を表示 206 Else 206a Else 207 すべての術部を適用しながらT
2行をフェッチ(結合術部含む) 208 If 行がすべての術部を満
足するならば、Then 209 結果行を形成し、ユー
ザに戻す210 戻った行を表
示211 End
【0040】処理フロー3
カーソル閉鎖処理
If T2上の走査が解放されているとき、Then
それを閉鎖 If 中間結果表上の走査が解放されているとき、T
henそれを閉鎖
それを閉鎖 If 中間結果表上の走査が解放されているとき、T
henそれを閉鎖
【0041】表10のインデックスについての走査を以
下に詳しく説明する。この走査は表10の結合列につい
てのインデックスを順次進んで、表10の結合述部を満
す行のRID を検索する。走査の結果を図1に参照し
て理解できる。インデックスが、たとえば、樹木の形を
有するものとすると、「葉」と呼ばれるそれの最も外側
(最低)の部材が、(key value:RID l
ist)の形を有するインデックスフォーマットで表1
0の行のRID を含む。走査は表10の結合列につい
てキーイングするから、キー値は外側表行の結合列の値
であり、パラメータ「RID list」はそのキー値
を有する表の行を識別するリストである。
下に詳しく説明する。この走査は表10の結合列につい
てのインデックスを順次進んで、表10の結合述部を満
す行のRID を検索する。走査の結果を図1に参照し
て理解できる。インデックスが、たとえば、樹木の形を
有するものとすると、「葉」と呼ばれるそれの最も外側
(最低)の部材が、(key value:RID l
ist)の形を有するインデックスフォーマットで表1
0の行のRID を含む。走査は表10の結合列につい
てキーイングするから、キー値は外側表行の結合列の値
であり、パラメータ「RID list」はそのキー値
を有する表の行を識別するリストである。
【0042】図1の手続き35はローカル述部 (管理
者=「DAVIS」) により表12の行を分類し、対
応するレコードの結合列値によりそれらのレコードを順
序づける。処理の結果が表38により表されている。
者=「DAVIS」) により表12の行を分類し、対
応するレコードの結合列値によりそれらのレコードを順
序づける。処理の結果が表38により表されている。
【0043】処理フロー1のカーソル開放プロセスへ戻
って、ステップ102においてD0ループが開かれる。 ファイルの終り(EOF) 標識に表12で遭遇する。 この手続きにおいては、外側表、表12、中の、外側表
に対してローカルである述部を満す、各行に対して、キ
ー値が表12の行の結合列値に等しいようなセットに対
して表10のインデックスからRID リストが得られ
る。これの例外は、表12の行の結合列値が以前に処理
されたものを複製する時である。
って、ステップ102においてD0ループが開かれる。 ファイルの終り(EOF) 標識に表12で遭遇する。 この手続きにおいては、外側表、表12、中の、外側表
に対してローカルである述部を満す、各行に対して、キ
ー値が表12の行の結合列値に等しいようなセットに対
して表10のインデックスからRID リストが得られ
る。これの例外は、表12の行の結合列値が以前に処理
されたものを複製する時である。
【0044】現在アクセスされている表12の行の結合
列値が表10についてのインデックスのインデックスキ
ーに一致すると仮定すると、(外側表の列のサブセット
と内側表のRID で構成された)複合行がステップ1
06および107で構成される。(このサブセットは質
問を実行するために必要とされる全ての列を含む。)複
合列が形成されるにつれて、それをT2のRID 列で
分類するために送ることができる(ステップ107a)
。多重プロセス(またはタスク)においては、1つのプ
ロセスが1つの複合行を生じて、それらの行を分類のた
めに送ることができる。分類された全てのランはステッ
プ120で組合わされる。複合行は中間結果表120を
形成する。その中間結果表は図1に参照番号45で示さ
れている書式を有する。この表は表10についてのイン
デックスから検索されたRID 値で順序づけられる。
列値が表10についてのインデックスのインデックスキ
ーに一致すると仮定すると、(外側表の列のサブセット
と内側表のRID で構成された)複合行がステップ1
06および107で構成される。(このサブセットは質
問を実行するために必要とされる全ての列を含む。)複
合列が形成されるにつれて、それをT2のRID 列で
分類するために送ることができる(ステップ107a)
。多重プロセス(またはタスク)においては、1つのプ
ロセスが1つの複合行を生じて、それらの行を分類のた
めに送ることができる。分類された全てのランはステッ
プ120で組合わされる。複合行は中間結果表120を
形成する。その中間結果表は図1に参照番号45で示さ
れている書式を有する。この表は表10についてのイン
デックスから検索されたRID 値で順序づけられる。
【0045】ステップ121〜123においては、表1
0に対してローカルである述部で参照される列に1つま
たは複数のインデックスが存在する場合に、中間結果表
45のサイズを小さくするための用意が行われる。ステ
ップ106と107は、RID リストが2つ以上の値
を含むならば、2つ以上の複合レコードを構成すること
に注目されたい。これがたとえばインデックスセット(
53:1,11) により示されている。このインデッ
クスセットは従業員番号53を有するレコードに対して
表12における2行の場所を示すものである。表10に
対してローカルである述部にインデックスが存在する、
すなわち、技能=「試験」である、と仮定すると、ロー
カル述部を満すことにより「修飾する」対応するレコー
ドを有するRID の分類されたリストを作成するため
にローカル述部インデックスが採用される。修飾しない
RID は表にのせられない。それから、分類されたR
ID リストは中間結果表とともにアンド操作されて、
修飾されたRID を表に入れる。この場合には、ステ
ップ123でステップ120を行うことができる、すな
わち、分類された全てのランの「組合わせ」が行われる
と同時に「アンド操作」が行われる。ステップ125〜
127において、手順は表10と12で走査を閉じる。
0に対してローカルである述部で参照される列に1つま
たは複数のインデックスが存在する場合に、中間結果表
45のサイズを小さくするための用意が行われる。ステ
ップ106と107は、RID リストが2つ以上の値
を含むならば、2つ以上の複合レコードを構成すること
に注目されたい。これがたとえばインデックスセット(
53:1,11) により示されている。このインデッ
クスセットは従業員番号53を有するレコードに対して
表12における2行の場所を示すものである。表10に
対してローカルである述部にインデックスが存在する、
すなわち、技能=「試験」である、と仮定すると、ロー
カル述部を満すことにより「修飾する」対応するレコー
ドを有するRID の分類されたリストを作成するため
にローカル述部インデックスが採用される。修飾しない
RID は表にのせられない。それから、分類されたR
ID リストは中間結果表とともにアンド操作されて、
修飾されたRID を表に入れる。この場合には、ステ
ップ123でステップ120を行うことができる、すな
わち、分類された全てのランの「組合わせ」が行われる
と同時に「アンド操作」が行われる。ステップ125〜
127において、手順は表10と12で走査を閉じる。
【0046】最後に、内側表で順次プリフェッチ走査が
開かれる。内側表からの修飾された行がフェッチされ、
かつ外側表の対応する行に組合わされて結合表を形成す
る次の処理フェーズに対してそれらの走査が求められる
。
開かれる。内側表からの修飾された行がフェッチされ、
かつ外側表の対応する行に組合わされて結合表を形成す
る次の処理フェーズに対してそれらの走査が求められる
。
【0047】本発明の1つの独特な特性は表データをそ
れの物理的な順序でアクセスする備えがされていること
である。これは効率的なI/O をサポートする。本発
明は表データをそれの物理的な順序でアクセスするから
、本発明はデータの区画により並列実行の機会も与える
。並列タスクが表デジタルデータをアクセスし、その時
に各並列タスクが、一緒に物理的にまとめられるデータ
のそれの部分に対して各並列タスクが作業すると仮定す
ると、I/O の競合を最少まで減少できる。質問がI
/O に対するものであると、各並列実行タスクがそれ
ぞれのI/O 装置により表データをアクセスできる。
れの物理的な順序でアクセスする備えがされていること
である。これは効率的なI/O をサポートする。本発
明は表データをそれの物理的な順序でアクセスするから
、本発明はデータの区画により並列実行の機会も与える
。並列タスクが表デジタルデータをアクセスし、その時
に各並列タスクが、一緒に物理的にまとめられるデータ
のそれの部分に対して各並列タスクが作業すると仮定す
ると、I/O の競合を最少まで減少できる。質問がI
/O に対するものであると、各並列実行タスクがそれ
ぞれのI/O 装置により表データをアクセスできる。
【0048】質問がCPU に対するものであると、各
並列実行タスクをそれの個々のプロセッサに対して実行
してCPU の能力をフルに利用することが望ましい。 本発明は表データをそれの物理的順序でアクセスするか
ら、各並列タスクは、たとえばプリフェッチ機能によっ
て、それ自身のI/O を大量に実行できる。これはI
/O の効率を高めるばかりでなく、種々の並列タスク
の間での起り得るI/O 競合を減少する。
並列実行タスクをそれの個々のプロセッサに対して実行
してCPU の能力をフルに利用することが望ましい。 本発明は表データをそれの物理的順序でアクセスするか
ら、各並列タスクは、たとえばプリフェッチ機能によっ
て、それ自身のI/O を大量に実行できる。これはI
/O の効率を高めるばかりでなく、種々の並列タスク
の間での起り得るI/O 競合を減少する。
【0049】更に、データの区画により並列関係を利用
するために、表とインデックスのアクセスのより多くの
類似を下記のように行うことができる。それと同時に、
外側表のアクセス中に、トーナメントの樹を利用するこ
とにより、分類されているランを形成できる。分解され
たランは一時的な表に書込むことができる。次に、分類
されたランを含んでいる一時的な表を組合わせのために
アクセスでき、結合列についてのインデックスが同時に
アクセスされる。組合わされたランからの行はインデッ
クスからのRID に組合わされる。それと同時に、行
とRID の組合わせを、RID により分類するトー
ナメントの樹へ導入することにより形成されたランは、
一時的な表へ書込むことができるランを形成する。最後
に、それらの一時的な表をアクセスおよび組合わせるこ
とができ、内側表は同時にアクセスされる。
するために、表とインデックスのアクセスのより多くの
類似を下記のように行うことができる。それと同時に、
外側表のアクセス中に、トーナメントの樹を利用するこ
とにより、分類されているランを形成できる。分解され
たランは一時的な表に書込むことができる。次に、分類
されたランを含んでいる一時的な表を組合わせのために
アクセスでき、結合列についてのインデックスが同時に
アクセスされる。組合わされたランからの行はインデッ
クスからのRID に組合わされる。それと同時に、行
とRID の組合わせを、RID により分類するトー
ナメントの樹へ導入することにより形成されたランは、
一時的な表へ書込むことができるランを形成する。最後
に、それらの一時的な表をアクセスおよび組合わせるこ
とができ、内側表は同時にアクセスされる。
【0050】CPU を並列に利用することにより応答
時間を一層短縮するために、先に概略的に述べたステッ
プを、多数のプロセスまたはタスクを用いることにより
、並列に実行できる。あるステップを実行するプロセス
は、それのステップの結果が発生されるにつれて、それ
らの結果を、次のステップを実行するプロセスへ送る。 このようにして、ステップはパイプラインを形成する。
時間を一層短縮するために、先に概略的に述べたステッ
プを、多数のプロセスまたはタスクを用いることにより
、並列に実行できる。あるステップを実行するプロセス
は、それのステップの結果が発生されるにつれて、それ
らの結果を、次のステップを実行するプロセスへ送る。 このようにして、ステップはパイプラインを形成する。
【0051】次に、本発明の処理の第2の段階を理解す
るために処理フロー2と図1を参照する。FETCH
が発せられると第2の段階が呼出される。このフェーズ
中に、中間結果45がアクセスされ、対応する内側表行
が検索され、ユーザへ戻される。
るために処理フロー2と図1を参照する。FETCH
が発せられると第2の段階が呼出される。このフェーズ
中に、中間結果45がアクセスされ、対応する内側表行
が検索され、ユーザへ戻される。
【0052】処理フロー2のFETCH 処理が繰返し
行われ、ループはステップ200で開かれ、ステップ2
11で閉じられる。ループにおいては、中間結果表45
の行を順次プリフェッチし、内側表10の対応する行を
順次アクセスするために、ステップ131における中間
結果表の走査と、ステップ130における順序プリフェ
ッチ走査とが用いられる。したがって、ステップ201
において、表45の次の行がフェッチされる。フェッチ
される行のRID が以前にフェッチされた行のRID
と同じであるとすると、同じ内側表の行が再び用いら
れる。さもないと、対応する内側表の行が順次プリフェ
ッチされる内側表行のセットから検索され、全ての述部
がそれに対して評価される。行が述部を満したとすると
、質問のSELECTステートメントにより指定された
ようにして作成される。結果行が作成されて、中間結果
表の全てのエントリイがアクセスされるまでこのように
して戻される。処理フロー3のCLOSE 処理がまだ
開かれている任意の走査を閉じ、本発明に従って処理を
終る。
行われ、ループはステップ200で開かれ、ステップ2
11で閉じられる。ループにおいては、中間結果表45
の行を順次プリフェッチし、内側表10の対応する行を
順次アクセスするために、ステップ131における中間
結果表の走査と、ステップ130における順序プリフェ
ッチ走査とが用いられる。したがって、ステップ201
において、表45の次の行がフェッチされる。フェッチ
される行のRID が以前にフェッチされた行のRID
と同じであるとすると、同じ内側表の行が再び用いら
れる。さもないと、対応する内側表の行が順次プリフェ
ッチされる内側表行のセットから検索され、全ての述部
がそれに対して評価される。行が述部を満したとすると
、質問のSELECTステートメントにより指定された
ようにして作成される。結果行が作成されて、中間結果
表の全てのエントリイがアクセスされるまでこのように
して戻される。処理フロー3のCLOSE 処理がまだ
開かれている任意の走査を閉じ、本発明に従って処理を
終る。
【0053】動作の例
図1の例は先に説明され、処理フロー1〜3で具体化さ
れる本発明を示す。本発明の1つの主な前提条件は、結
合列についての良くまとめられたインデックスで結合述
部または表スペースについて分類または索引することに
より、外側表を順序づけることである。図1において、
外側表12を実効的に走査して、それローカル述部の試
験をまず行うことにより、これが満される。示されてい
る値「デービス」に一致する管理者列を有する表12の
全ての列が、表38に示されているように従業員番号に
より順序づけられる。参照番号35の手続きにより外側
表を順序づけることに本発明は限定されものでないこと
が断言される。知られているように、外側表の1つまた
は複数の結合列にインデックスが存在するものとすると
、順序はインデックス中に暗に含まれる。
れる本発明を示す。本発明の1つの主な前提条件は、結
合列についての良くまとめられたインデックスで結合述
部または表スペースについて分類または索引することに
より、外側表を順序づけることである。図1において、
外側表12を実効的に走査して、それローカル述部の試
験をまず行うことにより、これが満される。示されてい
る値「デービス」に一致する管理者列を有する表12の
全ての列が、表38に示されているように従業員番号に
より順序づけられる。参照番号35の手続きにより外側
表を順序づけることに本発明は限定されものでないこと
が断言される。知られているように、外側表の1つまた
は複数の結合列にインデックスが存在するものとすると
、順序はインデックス中に暗に含まれる。
【0054】本発明は、内側表の結合列について索引づ
けすることによる内側表の順序づけを前提とするもので
もある。また、索引づけは順序づけを意味し、RID
が順序づけられるならば、表の行の順序アクセスをサポ
ートする。
けすることによる内側表の順序づけを前提とするもので
もある。また、索引づけは順序づけを意味し、RID
が順序づけられるならば、表の行の順序アクセスをサポ
ートする。
【0055】したがって、結合列により順序づけおよび
分類された外側表12の行を用いて、本発明は、インデ
ックスキー値として、53である最初のレコードへ従業
員番号をとる。このキー値は表10のインデックスを走
査するために用いられる。これらに関して、表10のイ
ンデックスについての走査はセット(1:9) でスタ
ートし、そこからセット(53:1,11) まで走査
する。リスト1,11がセットからフェッチされ、2つ
の複合行が作成されて表45に置かれる。表に置かれる
行は順序づけられるから、最初の行はRID値1により
示される行であり、第2の行はRID 値11によ
分類された外側表12の行を用いて、本発明は、インデ
ックスキー値として、53である最初のレコードへ従業
員番号をとる。このキー値は表10のインデックスを走
査するために用いられる。これらに関して、表10のイ
ンデックスについての走査はセット(1:9) でスタ
ートし、そこからセット(53:1,11) まで走査
する。リスト1,11がセットからフェッチされ、2つ
の複合行が作成されて表45に置かれる。表に置かれる
行は順序づけられるから、最初の行はRID値1により
示される行であり、第2の行はRID 値11によ
【0056】り示される行である。プロセスは構造38
中の次の外側表行へ戻り、キー値を100へ変える。キ
ー値はインデックス走査へ送られる。そのインデックス
走査はキー値セットから順次動き、そこで停止を続け、
セット(100:3) へ動く。複合行が構成され、表
45の行1と11の間に順次置かれ、外側表走査は行2
07へ動く。表38のEOF またはインデックスのE
OF に遭遇するまで、この手順は続く。
中の次の外側表行へ戻り、キー値を100へ変える。キ
ー値はインデックス走査へ送られる。そのインデックス
走査はキー値セットから順次動き、そこで停止を続け、
セット(100:3) へ動く。複合行が構成され、表
45の行1と11の間に順次置かれ、外側表走査は行2
07へ動く。表38のEOF またはインデックスのE
OF に遭遇するまで、この手順は続く。
【0057】中間結果表中の行が形成されるにつれて、
内側表のRID で分類するためにその行を送ることが
できる。分類された全てのランの組合わせを図1の表4
5における結果について行うことができる。フェッチス
テップを行うために内側表行を検索するために必要なI
/O 処理を、表45中のRID のリストをバッファ
マネージャへ送り、それから、検索された内側表の行を
、I/O の終了後に、1つずつアクセスすることによ
り、1つの非同期ステップで行うことができる。検索さ
れた内側表の行は中間結果表45の順序でとられる。こ
の場合には、表における初めの2つのエントリイがロー
カル述部「試験」を加えることに失敗する。その理由は
、技能表の初めの行が「設計」を示し、第2の行が「符
号」を示すからである。しかし、内側表10の行3に対
応する表45における第3のエントリイはローカル述部
に適合する。したがって、FETCH は結果行ウェス
ト/デービス/試験を作成し、それをユーザへ戻す。同
様に、結果表50における第2のエントリイと第3のエ
ントリイは、ローカル述部を満す内側表の行に対応する
。表12のローカル述部は外側表のレコードへすでに加
えられているから、結果レコードのマネージャフィール
ドが全てエントリイ「デービス」を含む。
内側表のRID で分類するためにその行を送ることが
できる。分類された全てのランの組合わせを図1の表4
5における結果について行うことができる。フェッチス
テップを行うために内側表行を検索するために必要なI
/O 処理を、表45中のRID のリストをバッファ
マネージャへ送り、それから、検索された内側表の行を
、I/O の終了後に、1つずつアクセスすることによ
り、1つの非同期ステップで行うことができる。検索さ
れた内側表の行は中間結果表45の順序でとられる。こ
の場合には、表における初めの2つのエントリイがロー
カル述部「試験」を加えることに失敗する。その理由は
、技能表の初めの行が「設計」を示し、第2の行が「符
号」を示すからである。しかし、内側表10の行3に対
応する表45における第3のエントリイはローカル述部
に適合する。したがって、FETCH は結果行ウェス
ト/デービス/試験を作成し、それをユーザへ戻す。同
様に、結果表50における第2のエントリイと第3のエ
ントリイは、ローカル述部を満す内側表の行に対応する
。表12のローカル述部は外側表のレコードへすでに加
えられているから、結果レコードのマネージャフィール
ドが全てエントリイ「デービス」を含む。
【0058】内側表インデックス走査内側表結合列へキ
ーされている内側表インデックスを効率的に走査する方
法が図2と処理フロー4に示されている。インデックス
走査は、処理フロー4の技術を用いることにより、特定
のより低い(より高い)キー値を持つ先行する(後続す
る)ページにある一が現在保持されているならば、特定
のより高い(より低い)キー値を持つ葉ページへの高速
前進(または後退)運動をサポートする。
ーされている内側表インデックスを効率的に走査する方
法が図2と処理フロー4に示されている。インデックス
走査は、処理フロー4の技術を用いることにより、特定
のより低い(より高い)キー値を持つ先行する(後続す
る)ページにある一が現在保持されているならば、特定
のより高い(より低い)キー値を持つ葉ページへの高速
前進(または後退)運動をサポートする。
【0059】処理フロー4を理解するために、内側表結
合列へキーされているインデックスの樹の一部を示す図
2を参照する。この樹の構造は根の節100を有する。 この根の節はそれの各子に対するポインタセットを維持
する。ポインタセットは(CP:MX) で構成される
。その(CP:MX) においては、CPは節のそれぞ
れの子を指す子ポインタであり、MXはその子にわたっ
て索引される最大値である。親の節100の下側に子の
節110、120、130の最初のレベルがある。各節
が親の節を差す親ポインタPPをおのおの維持するとい
うことを付加して、子の節は親の節すなわち根の節10
0と同一に構成される。 図2の樹は親の節110、120、130の全ての子を
示すわけではないから、その樹は不完全である。しかし
、親の節110から出る樹の一部である「副樹」が節1
50と160により示されている。節150と160は
インデックス樹のより低いレベルを表す。樹の葉は構造
170と180により示されている。各構造は(key
value:list)の形式の組合わされたデータ
セットで構成される。図1に示す例においては、それら
のセットはempno とRID のリストで構成され
ているものである。各葉は親ポインタPPと、順次次の
葉へのポインタも含む。したがって、葉170は葉18
0へのポインタを有し、等々である。デジタルデータ構
造200がインデックス走査により維持され、フィール
ドPAL−PAGE、CUR−POS 、NEW−KE
Y を含む。NEW−KEY フィールドは、処理フロ
ー1のステップ100で開始された外側表走査から送ら
れた現在のキー値を含む。構造200は、処理フロー1
のステートメント101において開かれている内側表イ
ンデックスを走査することにより維持される。CUR−
POS フィールドは図2の樹におけるインデックス葉
におけるインデックス走査の現在の位置である。PAR
−PAGEフィールドは現在の位置の親ページへのPP
ポインタを含む。
合列へキーされているインデックスの樹の一部を示す図
2を参照する。この樹の構造は根の節100を有する。 この根の節はそれの各子に対するポインタセットを維持
する。ポインタセットは(CP:MX) で構成される
。その(CP:MX) においては、CPは節のそれぞ
れの子を指す子ポインタであり、MXはその子にわたっ
て索引される最大値である。親の節100の下側に子の
節110、120、130の最初のレベルがある。各節
が親の節を差す親ポインタPPをおのおの維持するとい
うことを付加して、子の節は親の節すなわち根の節10
0と同一に構成される。 図2の樹は親の節110、120、130の全ての子を
示すわけではないから、その樹は不完全である。しかし
、親の節110から出る樹の一部である「副樹」が節1
50と160により示されている。節150と160は
インデックス樹のより低いレベルを表す。樹の葉は構造
170と180により示されている。各構造は(key
value:list)の形式の組合わされたデータ
セットで構成される。図1に示す例においては、それら
のセットはempno とRID のリストで構成され
ているものである。各葉は親ポインタPPと、順次次の
葉へのポインタも含む。したがって、葉170は葉18
0へのポインタを有し、等々である。デジタルデータ構
造200がインデックス走査により維持され、フィール
ドPAL−PAGE、CUR−POS 、NEW−KE
Y を含む。NEW−KEY フィールドは、処理フロ
ー1のステップ100で開始された外側表走査から送ら
れた現在のキー値を含む。構造200は、処理フロー1
のステートメント101において開かれている内側表イ
ンデックスを走査することにより維持される。CUR−
POS フィールドは図2の樹におけるインデックス葉
におけるインデックス走査の現在の位置である。PAR
−PAGEフィールドは現在の位置の親ページへのPP
ポインタを含む。
【0060】動作時には、処理フロー4に示されている
走査は、外側表から最近に受けたNEW−KEY 値を
、走査が現在位置させられている葉に含まれているイン
デックス値の範囲と比較する。新しいキーが葉に属する
ものとすると、キー値に取付けられているリストが探さ
れ、一時的バッファに置かれる。走査が現在位置させら
れているページに新しいキーがないとすると、走査は樹
を上昇し、葉の親ポインタに従って親節に達する。親節
においては、親節から離れた副樹中の他の子のいずれか
により表されている範囲にあるかどうかを判定するため
に、新しいキー値が親節の子ポインタフィールドと比較
される。親節の他の子のうちの1つの子の範囲に新しい
キーがあるものとすると、走査は示されている葉まで子
ポインタに従い、RID リストを検索する。さもない
と、新しいキー値が含まれている副樹を探すまで、走査
は非葉節の親ポインタに従って上昇する。RID リス
トの累積されたセット210を、I/O 処理のために
、ここで説明している本発明の全体の実行の適切な点に
、非同期的に送ることができる。
走査は、外側表から最近に受けたNEW−KEY 値を
、走査が現在位置させられている葉に含まれているイン
デックス値の範囲と比較する。新しいキーが葉に属する
ものとすると、キー値に取付けられているリストが探さ
れ、一時的バッファに置かれる。走査が現在位置させら
れているページに新しいキーがないとすると、走査は樹
を上昇し、葉の親ポインタに従って親節に達する。親節
においては、親節から離れた副樹中の他の子のいずれか
により表されている範囲にあるかどうかを判定するため
に、新しいキー値が親節の子ポインタフィールドと比較
される。親節の他の子のうちの1つの子の範囲に新しい
キーがあるものとすると、走査は示されている葉まで子
ポインタに従い、RID リストを検索する。さもない
と、新しいキー値が含まれている副樹を探すまで、走査
は非葉節の親ポインタに従って上昇する。RID リス
トの累積されたセット210を、I/O 処理のために
、ここで説明している本発明の全体の実行の適切な点に
、非同期的に送ることができる。
【0061】処理フロー4
略号
par−page − pointer to
parent page cur−pos − current po
sition in indexleaf pa
genew−key − the next
key to be lookedup If new−keyが(cur−pos)ペー
ジに属するときThen それを索引 Else 次のpar−page ポインタ(およ
び必要に応じ、再帰的に)により、新しいキーが属する
副樹を特定するために親ページへ移動(cur−pos
)新しいキーが属する副樹の根に達したとき樹を上り始
め、新しいキーが属する葉に達する。
parent page cur−pos − current po
sition in indexleaf pa
genew−key − the next
key to be lookedup If new−keyが(cur−pos)ペー
ジに属するときThen それを索引 Else 次のpar−page ポインタ(およ
び必要に応じ、再帰的に)により、新しいキーが属する
副樹を特定するために親ページへ移動(cur−pos
)新しいキーが属する副樹の根に達したとき樹を上り始
め、新しいキーが属する葉に達する。
【0062】以上説明した本発明は、多重処理または多
重タスク処理CPU 、主記憶装置、およびたとえば磁
気テープの態様の補助記憶装置のような従来の部品を有
するプログラム式コンピュータの態様で実施することが
好ましい。本発明は、たとえば処理フロー1〜4に示さ
れている本発明の諸機能を含んでいるデータベース管理
プログラム(「データベースマネージャ})の目的コー
ド表現を有する磁気テープを介してその装置に埋め込ま
れる。そのプログラムは、PL−1のようなプログラミ
ング言語で書かれたコンピュータプログラムの態様の高
レベル媒介手段を介して、磁気テープのような磁気記憶
装置へ最初に書き込まれる。
重タスク処理CPU 、主記憶装置、およびたとえば磁
気テープの態様の補助記憶装置のような従来の部品を有
するプログラム式コンピュータの態様で実施することが
好ましい。本発明は、たとえば処理フロー1〜4に示さ
れている本発明の諸機能を含んでいるデータベース管理
プログラム(「データベースマネージャ})の目的コー
ド表現を有する磁気テープを介してその装置に埋め込ま
れる。そのプログラムは、PL−1のようなプログラミ
ング言語で書かれたコンピュータプログラムの態様の高
レベル媒介手段を介して、磁気テープのような磁気記憶
装置へ最初に書き込まれる。
【図1】本発明のハイブリッド結合技術を示す説明図。
【図2】親ポインタにより構成されたインデックス樹を
示す説明図。
示す説明図。
【図3】関係データベース管理装置に記憶されている表
を示す説明図。
を示す説明図。
【図4】ネストされたループ法により2つの表を結合す
る従来の技術を示す説明図。
る従来の技術を示す説明図。
【図5】分類/マージ法により2つの表を結合する従来
の技術を示す説明図。
の技術を示す説明図。
10 表
12 表
35 手続き
38 処理結果表
45 中間処理結果表
50 結果表
Claims (9)
- 【請求項1】第2の表の結合列上にインデックスを含む
関係データベース管理装置の第1の表と前記第2の表を
結合する方法において、 (a)第1の表の行をローカル述部と比較する過程と、
(b)ローカル述部を満す第1の表の行を結合述部によ
り順次置く過程と、 (c)結合述部を満す結合列部分を有する第2の表の行
の識別子をインデックスから検索する過程と、(d)過
程(c)のレコード識別名に一致する行を第2の表から
検索する過程と、 (e)過程(d)の第1の表の行を過程(b)の第2の
表の行に組合わせて複合行を発生する過程と、とを備え
る、関係データベース管理装置の第1の表と第2の表を
結合する方法。 - 【請求項2】請求項1記載の方法において、過程(e)
は、(e1)過程(d)の行をローカル述部と比較する
過程と、 (e2)過程(b)の第1の表の行を、ローカル述部を
満す過程(d)の行だけに組合わせる過程と、とを含む
方法。 - 【請求項3】請求項1記載の方法において、過程(c)
は、 (c1)インデックスから検索された識別子をそれのそ
れぞれの一致する第2の表の行のフィールドに組合わせ
て、中間行を発生する過程と、 (c2)中間行を識別子によりある順序に置く過程と、
とを含む方法。 - 【請求項4】第2の表の結合列上においてインデックス
を含み、事前取出し機能を提供する関係データベース管
理装置の第1の表と第2の表を結合する方法において、
(a)第1のローカル述部を満す第1の行を結合列の順
序に置く過程と、 (b)過程(a)の行の結合列値に一致する結合列値を
有する第2の表の行を選択する過程と、(c)過程(b
)において選択された第2の表の行の識別子をインデッ
クスから得る過程と、 (d)過程(c)で得た識別子をそれのそれぞれの一致
する第1の表の行の指定された列に組合わせて中間行を
生ずる過程と、 (e)識別子が順序通りでないとすると、中間行を識別
子により順次置く過程と、 (f)過程(e)の識別子に一致する第2の表の行を、
プリフェッチ機能を用いて検索する過程と、(g)第2
のローカル述部を満す行に対して、検索された第2の表
の行を、過程(d)のそれらのそれぞれの一致する第1
の表の列に組合わせる過程と、とを備える、関係データ
ベース管理装置の第1の表と第2の表を結合する方法。 - 【請求項5】(a)インデックスの樹における各子に子
の両親に対するポインタを維持する過程と、(b)各樹
の節の子に対するポインタと、子を介して到達した副樹
の葉に含まれている最高のキー値とをおのおの含むデー
タ構造のセットを各樹の節に維持する過程と、 (c)キー値のセットのうちの最低のキー値を含む葉を
探し、その値を記録する過程と、 (d)キー値のセットの次に高いキー値が葉にならない
とすると、葉から、次に高いキー値を含んでいる副樹の
根に対するポインタを含んでいる木の節まで親ポインタ
に従う過程と、 (e)過程(d)の節から、次に高いキーを含んでいる
葉まで子ポインタに従い、値を記録する過程と、(f)
キー値のセット中の全ての値が記録されるまで、過程(
d)と(e)を再帰的に行う過程と、を備える、キー値
を含んでいる葉を探すためにインデックス樹の葉を効率
的に走査する方法。 - 【請求項6】データベースを維持するデータベースマネ
ージャを有する計算機システムにおいて、結合述部とロ
ーカル述部をデータベースマネージャへ供給するために
データベースマネージャへ接続される質問手段と、結合
述部を満す第1の表の行をデータベースから選択し、選
択された行を順序づけるデータベースマネージャ中の第
1の手段と、結合述部を満すデータベース中の第2の表
の識別子を得るためにデータベースマネージャ中の第2
の手段と、識別子に一致する第2の表の識別された行を
データベースから検索するためのデータベースマネージ
ャ中の第3の手段と、選択された行を識別された行に組
合わせて複合行を形成する組合わせ手段と、を備える、
データベースの表を結合するための改良。 - 【請求項7】請求項6記載の改良において、識別された
行をローカル述部と比較するためのデータベースマネー
ジャ中の第4の手段を更に含み、組合わせ手段は選択さ
れた行を、ローカル述部を満す識別された行へ結合する
ためのものである改良。 - 【請求項8】データベースを維持するためのデータベー
ス管理手段と、結合述部を満す前記データベース中の第
1のファイルの選択された行を選択し、かつ前記選択さ
れた行を順序づける第1の手段と、結合述部を満す前記
データベース中の第2のファイルの行の識別子を得る第
2の手段と、識別子に一致する第2のファイルの識別さ
れた行をデータベースから検索するI/O 手段と、選
択された行を識別された行に結合して複合行を形成する
組合わせ手段と、を備えるコンピュータ記憶装置におけ
るデータベースマネージャ。 - 【請求項9】請求項8記載のデータベースマネージャに
おいて、識別された行をローカル述部と比較する第3の
手段を更に含み、組合わせ手段は選択された行を、ロー
カル述部を満す識別された行に結合するためのものであ
るデータベースマネージャ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US479523 | 1990-02-13 | ||
| US07/479,523 US5241648A (en) | 1990-02-13 | 1990-02-13 | Hybrid technique for joining tables |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04213765A true JPH04213765A (ja) | 1992-08-04 |
| JP3104708B2 JP3104708B2 (ja) | 2000-10-30 |
Family
ID=23904375
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP03014755A Expired - Fee Related JP3104708B2 (ja) | 1990-02-13 | 1991-01-14 | 関係データベースシステムの表を結合する方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5241648A (ja) |
| EP (1) | EP0442684A2 (ja) |
| JP (1) | JP3104708B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003167916A (ja) * | 2001-11-29 | 2003-06-13 | Casio Comput Co Ltd | ファイル処理装置及びプログラム |
| WO2013145627A1 (ja) | 2012-03-29 | 2013-10-03 | 日本電気株式会社 | 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム |
| WO2015011797A1 (ja) * | 2013-07-24 | 2015-01-29 | 株式会社日立製作所 | データベースシステム、データベースの管理方法及び記憶媒体 |
| US9189647B2 (en) | 2012-04-24 | 2015-11-17 | Nec Corporation | Encrypted database system, linking method, and medium |
Families Citing this family (85)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
| US5448727A (en) * | 1991-04-30 | 1995-09-05 | Hewlett-Packard Company | Domain based partitioning and reclustering of relations in object-oriented relational database management systems |
| US5666526A (en) * | 1993-09-02 | 1997-09-09 | Microsoft Corp. | Method and system for supporting scrollable, updatable database queries |
| JP2711204B2 (ja) * | 1992-03-09 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | リレーショナルデータベースのユーザインターフェースを生成する方法 |
| JP3526585B2 (ja) * | 1992-03-12 | 2004-05-17 | 株式会社リコー | 分散データベースの質問処理最適化方式 |
| US5765005A (en) * | 1992-06-01 | 1998-06-09 | Hitachi, Ltd. | Method for preparing form |
| US5594898A (en) * | 1994-03-25 | 1997-01-14 | Microsoft Corporation | Method and system for joining database tables using compact row mapping structures |
| US5537589A (en) * | 1994-06-30 | 1996-07-16 | Microsoft Corporation | Method and system for efficiently performing database table aggregation using an aggregation index |
| US5664172A (en) * | 1994-07-19 | 1997-09-02 | Oracle Corporation | Range-based query optimizer |
| US5671403A (en) * | 1994-12-30 | 1997-09-23 | International Business Machines Corporation | Iterative dynamic programming system for query optimization with bounded complexity |
| JP3201945B2 (ja) * | 1995-01-10 | 2001-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベースのテーブルを比較する方法 |
| US5619692A (en) * | 1995-02-17 | 1997-04-08 | International Business Machines Corporation | Semantic optimization of query order requirements using order detection by normalization in a query compiler system |
| US5548755A (en) * | 1995-02-17 | 1996-08-20 | International Business Machines Corporation | System for optimizing correlated SQL queries in a relational database using magic decorrelation |
| US6453325B1 (en) | 1995-05-24 | 2002-09-17 | International Business Machines Corporation | Method and means for backup and restoration of a database system linked to a system for filing data |
| US6029160A (en) * | 1995-05-24 | 2000-02-22 | International Business Machines Corporation | Method and means for linking a database system with a system for filing data |
| US5815829A (en) * | 1995-07-19 | 1998-09-29 | Zargar; Dara | Job cost accounting data compression and indexing system and methods for doing the same |
| US5666525A (en) * | 1995-09-21 | 1997-09-09 | The Trustees Of Columbia University In The City Of New York | System and method for performing an efficient join operation on large tables with a small main memory |
| WO1997011433A1 (en) * | 1995-09-21 | 1997-03-27 | The Trustees Of Columbia University In The City Of New York | Performing efficient join operations on large tables |
| US5797136A (en) * | 1995-10-05 | 1998-08-18 | International Business Machines Corporation | Optional quantifiers in relational and object-oriented views of database systems |
| US5774692A (en) * | 1995-10-05 | 1998-06-30 | International Business Machines Corporation | Outer quantifiers in object-oriented queries and views of database systems |
| DE19538448B4 (de) * | 1995-10-16 | 2006-04-06 | Logic Data Gmbh | Datenbankmanagementsystem sowie Datenübertragungsverfahren |
| US5826262A (en) * | 1996-03-22 | 1998-10-20 | International Business Machines Corporation | Parallel bottom-up construction of radix trees |
| US6374232B1 (en) * | 1996-08-29 | 2002-04-16 | Oracle Corp. | Method and mechanism for retrieving values from a database |
| US5873074A (en) * | 1997-04-18 | 1999-02-16 | Informix Software, Inc. | Applying distinct hash-join distributions of operators to both even and uneven database records |
| US5983215A (en) * | 1997-05-08 | 1999-11-09 | The Trustees Of Columbia University In The City Of New York | System and method for performing joins and self-joins in a database system |
| US5903893A (en) * | 1997-09-15 | 1999-05-11 | International Business Machines Corporation | Method and apparatus for optimizing a merge-join operation across heterogeneous databases |
| US6167399A (en) * | 1998-05-05 | 2000-12-26 | Ncr Corporation | Join index for relational databases |
| US7089331B1 (en) | 1998-05-29 | 2006-08-08 | Oracle International Corporation | Method and mechanism for reducing client-side memory footprint of transmitted data |
| US6189010B1 (en) | 1998-06-10 | 2001-02-13 | Platinum Technology, Inc. | Method for repairing constraint violations in a database management system |
| US6226639B1 (en) | 1998-09-22 | 2001-05-01 | International Business Machines Corporation | System and method for hybrid hash join using over-partitioning to respond to database query |
| US6253197B1 (en) | 1998-10-06 | 2001-06-26 | International Business Machines Corporation | System and method for hash loops join of data using outer join and early-out join |
| JP4428488B2 (ja) * | 1999-05-31 | 2010-03-10 | 株式会社ターボデータラボラトリー | 表形式データの結合方法、上記方法を実現するプログラムを記憶した記憶媒体、および、表形式データを結合する装置 |
| US6421663B1 (en) | 1999-06-14 | 2002-07-16 | International Business Machines Corporation | Optimization of joined table expressions by extended access path selection |
| US6424969B1 (en) * | 1999-07-20 | 2002-07-23 | Inmentia, Inc. | System and method for organizing data |
| US7389284B1 (en) | 2000-02-29 | 2008-06-17 | Oracle International Corporation | Method and mechanism for efficient processing of remote-mapped queries |
| US7076255B2 (en) * | 2000-04-05 | 2006-07-11 | Microsoft Corporation | Context-aware and location-aware cellular phones and methods |
| US7213048B1 (en) * | 2000-04-05 | 2007-05-01 | Microsoft Corporation | Context aware computing devices and methods |
| CA2310578A1 (en) | 2000-06-02 | 2001-12-02 | Ibm Canada Limited-Ibm Canada Limitee | Method and apparatus for synchronizing not-logged application temporary tables in a multi-node relational database management system |
| US6505188B1 (en) | 2000-06-15 | 2003-01-07 | Ncr Corporation | Virtual join index for relational databases |
| US6505189B1 (en) | 2000-06-15 | 2003-01-07 | Ncr Corporation | Aggregate join index for relational databases |
| US6618720B1 (en) | 2000-06-15 | 2003-09-09 | Ncr Corporation | Common spool files for maintaining join indexes |
| US6640221B1 (en) | 2000-07-10 | 2003-10-28 | Sas Institute Inc. | System and method for configuring, sequencing and viewing joins in a query |
| US6598041B1 (en) | 2000-09-07 | 2003-07-22 | International Business Machines Corporation | Method, system, and program for processing modifications to data in tables in a database system |
| EP1217540A1 (en) * | 2000-11-29 | 2002-06-26 | Lafayette Software Inc. | Methods of organizing data and processing queries in a database system, and database system and software product for implementing such method |
| US6944679B2 (en) | 2000-12-22 | 2005-09-13 | Microsoft Corp. | Context-aware systems and methods, location-aware systems and methods, context-aware vehicles and methods of operating the same, and location-aware vehicles and methods of operating the same |
| US6643649B2 (en) | 2001-01-30 | 2003-11-04 | International Business Machines Corporation | Utility for cross platform database query |
| US7725423B1 (en) * | 2001-02-08 | 2010-05-25 | Teradata Us, Inc. | Analyzing associations in the order of transactions |
| US7072908B2 (en) * | 2001-03-26 | 2006-07-04 | Microsoft Corporation | Methods and systems for synchronizing visualizations with audio streams |
| US6856996B2 (en) | 2001-03-30 | 2005-02-15 | International Business Machines Corporation | Method, system, and program for accessing rows in one or more tables satisfying a search criteria |
| US6944619B2 (en) * | 2001-04-12 | 2005-09-13 | Primentia, Inc. | System and method for organizing data |
| US6643636B1 (en) * | 2001-06-05 | 2003-11-04 | Ncr Corporation | Optimizing a query using a non-covering join index |
| CA2355418A1 (en) * | 2001-08-16 | 2003-02-16 | Ibm Canada Limited-Ibm Canada Limitee | A schema for sql statements |
| US7103590B1 (en) * | 2001-08-24 | 2006-09-05 | Oracle International Corporation | Method and system for pipelined database table functions |
| US7136847B2 (en) * | 2001-08-31 | 2006-11-14 | International Business Machines Corporation | Method and system for dynamically changing cursor attributes in an embedded SQL application |
| US7020699B2 (en) * | 2001-09-11 | 2006-03-28 | Sun Microsystems, Inc. | Test result analyzer in a distributed processing framework system and methods for implementing the same |
| EP1349082A1 (en) * | 2002-03-28 | 2003-10-01 | LION Bioscience AG | Method and apparatus for querying relational databases |
| EP1349081A1 (en) * | 2002-03-28 | 2003-10-01 | LION Bioscience AG | Method and apparatus for querying relational databases |
| JP4226269B2 (ja) | 2002-05-09 | 2009-02-18 | 株式会社リコー | 定格銘板製造方法及び定格銘板製造プログラム |
| US6973457B1 (en) | 2002-05-10 | 2005-12-06 | Oracle International Corporation | Method and system for scrollable cursors |
| US7610351B1 (en) | 2002-05-10 | 2009-10-27 | Oracle International Corporation | Method and mechanism for pipelined prefetching |
| US20040158561A1 (en) * | 2003-02-04 | 2004-08-12 | Gruenwald Bjorn J. | System and method for translating languages using an intermediate content space |
| US7103603B2 (en) * | 2003-03-28 | 2006-09-05 | International Business Machines Corporation | Method, apparatus, and system for improved duplicate record processing in a sort utility |
| US7111025B2 (en) * | 2003-04-30 | 2006-09-19 | International Business Machines Corporation | Information retrieval system and method using index ANDing for improving performance |
| US7447786B2 (en) * | 2003-05-09 | 2008-11-04 | Oracle International Corporation | Efficient locking of shared data that is accessed for reads in a cluster database |
| US7330859B2 (en) * | 2003-09-10 | 2008-02-12 | International Business Machines Corporation | Database backup system using data and user-defined routines replicators for maintaining a copy of database on a secondary server |
| US6944633B1 (en) * | 2003-12-10 | 2005-09-13 | Ncr Corporation | Performing a join in a partitioned database system |
| US7873629B1 (en) * | 2004-06-07 | 2011-01-18 | Teradata Us, Inc. | Dynamic partition enhanced inequality joining using a value-count index |
| US7640244B1 (en) | 2004-06-07 | 2009-12-29 | Teredata Us, Inc. | Dynamic partition enhanced joining using a value-count index |
| EP1831804A1 (de) * | 2004-12-24 | 2007-09-12 | Panoratio Database Images GmbH | Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken) |
| US7660814B2 (en) * | 2005-12-21 | 2010-02-09 | Teradata Us, Inc. | Techniques for mapping a physical table to multiple virtual tables |
| US7849073B2 (en) * | 2006-12-18 | 2010-12-07 | Ianywhere Solutions, Inc. | Load balancing for complex database query plans |
| US9208186B2 (en) * | 2008-03-26 | 2015-12-08 | Teradata Us, Inc. | Indexing technique to deal with data skew |
| US9171044B2 (en) * | 2010-02-16 | 2015-10-27 | Oracle International Corporation | Method and system for parallelizing database requests |
| US9600513B2 (en) | 2011-06-09 | 2017-03-21 | International Business Machines Corporation | Database table comparison |
| US8825633B2 (en) | 2012-05-15 | 2014-09-02 | Sas Institute Inc. | System, method, and data structure for automatically generating database queries which are data model independent and cardinality independent |
| US10664474B1 (en) * | 2013-03-15 | 2020-05-26 | Progress Software Corporation | Query system |
| US10268639B2 (en) * | 2013-03-15 | 2019-04-23 | Inpixon | Joining large database tables |
| US9940359B2 (en) * | 2014-05-23 | 2018-04-10 | International Business Machines Corporation | Data-partitioned secondary index (DPSI) partition level join |
| US10540358B2 (en) * | 2016-06-20 | 2020-01-21 | Microsoft Technology Licensing, Llc | Telemetry data contextualized across datasets |
| WO2018212106A1 (ja) * | 2017-05-19 | 2018-11-22 | 学校法人神奈川大学 | 情報検索装置、検索用プログラム、データベースの更新方法、データベースの更新装置、データベース更新用プログラム |
| US10459810B2 (en) | 2017-07-06 | 2019-10-29 | Oracle International Corporation | Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery |
| US11182437B2 (en) | 2017-10-26 | 2021-11-23 | International Business Machines Corporation | Hybrid processing of disjunctive and conjunctive conditions of a search query for a similarity search |
| US11868331B1 (en) | 2018-05-21 | 2024-01-09 | Pattern Computer, Inc. | Systems and methods for aligning big data tables in linear time |
| US11301471B2 (en) * | 2020-05-21 | 2022-04-12 | International Business Machines Corporation | Database join prefetcher |
| JP2024126486A (ja) * | 2023-03-07 | 2024-09-20 | 株式会社日立製作所 | データベース管理装置及び方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS607556A (ja) * | 1983-06-27 | 1985-01-16 | Fujitsu Ltd | ジヨイン処理方式 |
| JPS61170840A (ja) * | 1985-01-25 | 1986-08-01 | Fujitsu Ltd | 結合処理における中間データ生成方法 |
| JPH023870A (ja) * | 1988-06-20 | 1990-01-09 | Hitachi Ltd | リレーショナル・データベースのレコード検索方法 |
| JPH0281270A (ja) * | 1988-09-19 | 1990-03-22 | Hitachi Ltd | データベース・システムのデータ表示装置 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS583031A (ja) * | 1981-06-30 | 1983-01-08 | Fujitsu Ltd | リレ−シヨナル・モデルにおけるジヨイン演算処理方式 |
| JPH077385B2 (ja) * | 1983-12-23 | 1995-01-30 | 株式会社日立製作所 | データ処理装置 |
| KR940001563B1 (ko) * | 1985-01-21 | 1994-02-24 | 가부시끼가이샤 히다찌세이사꾸쇼 | 룰 베이스 시스템 |
| 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 |
| JPS61208124A (ja) * | 1985-03-12 | 1986-09-16 | Oki Electric Ind Co Ltd | 分散デ−タベ−ス管理システムにおける結合演算処理方式 |
| US4817036A (en) * | 1985-03-15 | 1989-03-28 | Brigham Young University | Computer system and method for data base indexing and information retrieval |
| US5043872A (en) * | 1988-07-15 | 1991-08-27 | International Business Machines Corporation | Access path optimization using degrees of clustering |
| US5121494A (en) * | 1989-10-05 | 1992-06-09 | Ibm Corporation | Joining two database relations on a common field in a parallel relational database field |
-
1990
- 1990-02-13 US US07/479,523 patent/US5241648A/en not_active Expired - Fee Related
-
1991
- 1991-01-14 JP JP03014755A patent/JP3104708B2/ja not_active Expired - Fee Related
- 1991-02-11 EP EP91301085A patent/EP0442684A2/en not_active Withdrawn
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS607556A (ja) * | 1983-06-27 | 1985-01-16 | Fujitsu Ltd | ジヨイン処理方式 |
| JPS61170840A (ja) * | 1985-01-25 | 1986-08-01 | Fujitsu Ltd | 結合処理における中間データ生成方法 |
| JPH023870A (ja) * | 1988-06-20 | 1990-01-09 | Hitachi Ltd | リレーショナル・データベースのレコード検索方法 |
| JPH0281270A (ja) * | 1988-09-19 | 1990-03-22 | Hitachi Ltd | データベース・システムのデータ表示装置 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003167916A (ja) * | 2001-11-29 | 2003-06-13 | Casio Comput Co Ltd | ファイル処理装置及びプログラム |
| WO2013145627A1 (ja) | 2012-03-29 | 2013-10-03 | 日本電気株式会社 | 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム |
| US9189647B2 (en) | 2012-04-24 | 2015-11-17 | Nec Corporation | Encrypted database system, linking method, and medium |
| WO2015011797A1 (ja) * | 2013-07-24 | 2015-01-29 | 株式会社日立製作所 | データベースシステム、データベースの管理方法及び記憶媒体 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5241648A (en) | 1993-08-31 |
| EP0442684A2 (en) | 1991-08-21 |
| JP3104708B2 (ja) | 2000-10-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04213765A (ja) | 関係データベースシステムの表を結合する方法 | |
| Chaudhuri et al. | AutoAdmin “what-if” index analysis utility | |
| JP3914662B2 (ja) | データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体 | |
| JP3640346B2 (ja) | データベース管理システムにおける集合述部および検索 | |
| US6266660B1 (en) | Secondary index search | |
| US7689553B2 (en) | Execution cost reduction of sampled queries in a database | |
| US8219563B2 (en) | Indexing mechanism for efficient node-aware full-text search over XML | |
| US7966330B2 (en) | Techniques for partition pruning | |
| US7111025B2 (en) | Information retrieval system and method using index ANDing for improving performance | |
| US8126932B2 (en) | Indexing strategy with improved DML performance and space usage for node-aware full-text search over XML | |
| US6081799A (en) | Executing complex SQL queries using index screening for conjunct or disjunct index operations | |
| US20020078015A1 (en) | Database system with methodogy providing faster n-ary nested loop joins | |
| US20060074858A1 (en) | Method and apparatus for querying relational databases | |
| US6343286B1 (en) | Efficient technique to defer large object access with intermediate results | |
| US20040139046A1 (en) | Data organization in a fast query system | |
| US7542962B2 (en) | Information retrieval method for optimizing queries having maximum or minimum function aggregation predicates | |
| US20090216809A1 (en) | Method for updating databases | |
| US20070214104A1 (en) | Method and system for locking execution plan during database migration | |
| US8301665B2 (en) | Accelerated drill-through on association rules | |
| JP2005521953A (ja) | リレーショナルデータベースをクエリーする方法および装置 | |
| Arnold et al. | HRDBMS: Combining the best of modern and traditional relational databases | |
| US9378229B1 (en) | Index selection based on a compressed workload | |
| JPH08235033A (ja) | オブジェクト指向データベース管理システムにおける結合演算方式 | |
| Fang et al. | A comparison of multi-tenant data storage solutions for Software-as-a-Service | |
| Ghandeharizadeh et al. | Omega: A parallel object-based system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |