JP3824091B2 - リレーショナルデータベースシステム - Google Patents
リレーショナルデータベースシステム Download PDFInfo
- Publication number
- JP3824091B2 JP3824091B2 JP27131092A JP27131092A JP3824091B2 JP 3824091 B2 JP3824091 B2 JP 3824091B2 JP 27131092 A JP27131092 A JP 27131092A JP 27131092 A JP27131092 A JP 27131092A JP 3824091 B2 JP3824091 B2 JP 3824091B2
- Authority
- JP
- Japan
- Prior art keywords
- logical
- join
- logical area
- variable
- area
- 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 - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
本発明は、テーブル形式に従ってデータを管理する構成を採るリレーショナルデータベースシステムに関し、特に、テーブルを複数の論理エリアに分割する構成を採るときにあって、ジョイン処理を高速に実行できるようにするリレーショナルデータベースシステムに関する。
【0002】
近年、リレーショナルデータベースシステムでは、扱うデータの数が益々増加してきている。このような大量のデータを扱うために、リレーショナルデータベースシステムでは、負荷分散を目的とした1つの手法として、テーブルを複数の論理エリアに分割して、それらの論理エリアにデータ(レコード)を格納するという分割格納手法を採るようになってきている。このような分割格納手法を採るときにあっても、高速にジョイン処理を実行できる構成を構築していく必要がある。
【0003】
【従来の技術】
ジョイン処理とは、2つ以上のテーブルを結合する処理で、一般的に各テーブルのジョインキーとなる項目値の等しいもの同士のレコードを結合して1つの結果テーブルを導く処理である。
【0004】
このジョイン処理は、例えば、図4に示すような2つのテーブルがある場合に、一方のテーブルT1のA2欄のデータと、もう一方のテーブルT2のB1欄のデータとが一致するレコード同士を結合して、そのテーブルT1のA2/A3欄のデータと、テーブルT2のB3欄のデータとを出力せよという
SELECT T1.A2, T1.A3, T2.B3
FROM T1,T2
WHERE T1.A2=T2.B1
といった検索命令を実行するときに必要となる。
【0005】
このジョイン処理を効率的に実行するためには、先ず最初に、各々のテーブルのレコードをジョインキー(上述の検索命令では、T1.A2,T2.B1)でキーの昇順にソートし、次に、このソートした結果を順検索して、結合キーの値の等しいレコード同士を結合して結果を得る構成が知られている。
【0006】
一方、近年、リレーショナルデータベースシステムでは、扱うデータの数の増加に対処するために、テーブルを複数の論理エリアに分割して、それらの論理エリアにデータ(レ コード)を格納するという分割格納手法を採るようになってきている。
【0007】
従来、このような分割格納手法を採る場合には、テーブルを構成する複数の論理エリアに跨がってのキーの昇順性を獲得するために、各々のテーブルの全ての論理エリアを対象にジョインキーでレコードをキーの昇順にソートし、次に、このソートしたテーブルを順検索することによりレコードの結合を行う構成を採っている。すなわち、分割格納手法を採るときであっても、複数の論理エリア間に跨がる範囲においてジョイン処理を行うときには、ジョイン対象の全ての論理エリアを対象にジョインキーでレコードのソート処理を実行するという方法を採っていたのである。
【0008】
【発明が解決しようとする課題】
しかしながら、従来技術のように、複数の論理エリアに分割格納されるような大量のレコードに対してソート処理を行うという方法を採ると、ソート用の外部データセットが不足したり、大量のレコードをソートするために多大な処理時間を要する等、実用性の観点から様々な問題点があった。
【0009】
本発明はかかる事情に鑑みてなされたものであって、リレーショナルデータベースシステムがテーブルを複数の論理エリアに分割する構成を採るときにあって、ジョイン処理を高速に実行できるようにする新たなリレーショナルデータベースシステムの提供を目的とする。
【0010】
【課題を解決するための手段】
図1に本発明の原理構成を図示する。
【0011】
図中、1は本発明を具備するリレーショナルデータベースシステムである。このリレーショナルデータベースシステム1では、複数の論理エリアにレコードを分割格納する第1及び第2のテーブル2,3を持つことを想定している。
【0012】
更に、この原理構成図では、第1のテーブル2は、3つの論理エリア4-i(i=1〜3)にレコードを分割格納し、第2のテーブル3は、2つの論理エリア5-i(i=1,2)にレコードを分割格納することを想定している。
【0013】
各論理エリア4-i,5-iは、1対1に対応付ける形でB + treeインデックスを備えており、このB+ treeインデックスを用いることによりレコードそのものはソートされる必要はない。
【0014】
6はリレーショナルデータベースシステム1の備える管理手段であって、第1のテーブル2が3つの論理エリア4-iにレコードを分割格納しているという情報と、第2のテーブル3が2つの論理エリア5-iにレコードを分割格納しているという情報とを管理する。
【0015】
7はリレーショナルデータベースシステム1の備える決定手段であって、第1のテーブル2の論理エリア4-iと、第2のテーブル3の論理エリア5-iとの全ての組み合わせを決定する。
【0016】
8はリレーショナルデータベースシステム1の備えるジョイン検索手段であって、決定手段7の決定した組み合わせの論理エリア4-i,5-iの持つレコードをジョイン処理の対象としてジョイン処理を実行する。
【0017】
9はリレーショナルデータベースシステム1の備える結果テーブルであって、ジョイン検索手段8の処理結果を格納する。
【0018】
【作用】
本発明では、決定手段7は、第1のテーブル2の論理エリア4-iを順次選択するとともに、この論理エリア4-iを選択するときに、第2のテーブル3の論理エリア5-iを順番に選択する。あるいは、第2のテーブル3の論理エリア5-iを順次選択するとともに、この論理エリア5-iを選択するときに、第1のテーブル2の論理エリア4-iを順番に選択する。
【0019】
すなわち、図1の原理構成図の例で説明するならば、決定手段7は、例えば、第1番目に、論理エリア4-1と論理エリア5-1との組み合わせ、第2番目に、論理エリア4-1と論理エリア5-2との組み合わせ、第3番目に、論理エリア4-2と論理エリア5-1との組み合わせ、第4番目に、論理エリア4-2と論理エリア5-2との組み合わせ、第5番目に、論理エリア4-3と論理エリア5-1との組み合わせ、第6番目に、論理エリア4-3と論理エリア5-2との組み合わせを決定するのである。
【0020】
ジョイン検索手段8は、この決定手段7による決定処理を受けて、決定手段7の決定した組み合わせの論理エリア4-i,5-iの持つレコードをジョイン処理の対象として、その組み合わせの論理エリア4-i,5-iの持つジョインキーについてのB+ treeインデックス(ジョインキー値を昇順にしてテーブルデータ(レコード)へのポインタ情報を管理するもの)を使って、その組み合わせの論理エリア4 -i ,5 -i 同士についてジョイン処理を実行して、その処理結果を結果テーブル9に格納する。
【0021】
このように、本発明では、リレーショナルデータベース1がレコードを複数の論理エリアに分割格納するテーブル構成に従って管理するという構成を採るときにあって、2つのテーブルの各論理エリア単位に、それらの論理エリアの持つジョインキーについてのインデックス(ジョインキー値の大きさの順にテーブルデータ(レコード)へのポインタ情報を管理するもの)を使ってジョイン処理を実行していく構成を採るものであることから、複数の論理エリアに跨がるレコードのソート処理を行わなくても済むようになるので、高速にジョイン処理を実行できるようになる。
【0022】
【実施例】
以下、実施例に従って本発明を詳細に説明する。
【0023】
図2に、本発明のリレーショナルデータベースシステム1の実行するジョイン処理の処理フローの一実施例を図示する。次に、この処理フローに従って本発明を詳細に説明する。
【0024】
リレーショナルデータベースシステム1は、複数の論理エリアにレコードを分割格納する構成を採る2つ以上のテーブルをジョインするときには、図2の処理フローに示すように、先ず最初に、ステップ1で、変数iにジョインするテーブル数をセットするとともに、処理対象となるテーブルを識別する変数jに“1”をセットする。すなわち、図3に示すように、テーブルT1と、テーブルT2という2つのテーブルをジョインするときには、変数iにテーブル数の“2”をセットするとともに、変数jにテーブルT1を識別する“1”をセットするのである。ここで、テーブルT1,T2は、各論理エリア毎に、B+ treeインデックスを備えることを想定している。
【0025】
次に、ステップ2で、変数jが示すj番目のテーブルの最初の論理エリア(図中ではDSIと略記する)をジョイン対象として位置付ける。すなわち、図3の例で説明するならば、テーブルT1の論理エリア#1をジョイン対象として位置付けるのである。
【0026】
続いて、ステップ3に進んで、変数jの値を1つカウントアップし、続くステップ4で、変数jの値が変数iの値よりも大きくなったか否かを判断して、大きくないとき、すなわち、まだ論理エリアを位置付けていないテーブルがあるときには、ステップ2に戻っていく。この処理に従って、図3の例で説明するならば、ステップ3の処理に従って、変数jの値が“1”から“2”に増分するときに、ステップ4で変数jの値が変数iの値よりも大きくないことが判断されることから、ステップ2の処理に従って、変数jの値が“2”であるときに指されるテーブルT2の最初の論理エリア#Aがジョイン対象として位置付けられることになる。
【0027】
ステップ4の判断で、変数jの値が変数iの値よりも大きくなったことを判断すると、ステップ5に進んで、B+ treeインデックスを参照しつつ、ジョイン対象として位置付けた論理エリア同士のジョイン処理を実行する。すなわち、図3の例で説明するならば、テーブルT1の論理エリア#1と、テーブルT2の論理エリア#Aとの間で、B + tree インデックスを使いレコードのソート処理を行うことなく、ジョイン処理を行うのである。
【0028】
続いて、ステップ6で、変数jに“1”をセットする。すなわち、図3の例で説明するならば、変数jがテーブルT1を示すようにセットするのである。続いて、ステップ7で、変数jの指すj番目のテーブルの最終の論理エリアになったのか否かを判断して、最終の論理エリアでないと判断するときには、ステップ8に進んで、変数jの指すj番目のテーブルの論理エリアを1つ進めて、この論理エリアをジョイン対象として位置付ける。すなわち、図3の例で説明するならば、この時点では、ステップ7の判断時にテーブルT1の論理エリア#1が選択されているので、ステップ8に進んで、論理エリアを論理エリア#2に進めてジョイン対象として位置付けるのである。
【0029】
続いて、ステップ9で、変数kに変数jの値をセットし、続くステップ10で、変数kの値が“1”であるか否かを判断して、変数kの値が“1”であるときには、ステップ5に戻っていくことで、ステップ5でのジョイン処理を繰り返していくことになる。すなわち、図3の例で説明するならば、最初に、ステップ2の処理に従ってジョイン対象として位置付けられたテーブルT2の論理エリア#Aと、ステップ8の処理に従ってジョイン対象として位置付けられたテーブルT1の論理エリア#2との間で、B + tree インデックスを使いレコードのソート処理を行うことなくジョイン処理を行い、次に、テーブルT2の論理エリア#Aと、ステップ8の処理に従って更に1つ進められたテーブルT1の論理エリア#3との間で、B + tree インデックスを使いレコードのソート処理を行うことなくジョイン処理を行っていくのである。
【0030】
ステップ8の処理に従って論理エリアを1つずつ進めていくと、ステップ7で、変数jの指すj番目のテーブルの最終の論理エリアになることを判断するので、このときには、ステップ11に進んで、変数jの値を1つカウントアップし、続くステップ12で、変数jの値が変数iの値よりも大きくなったか否かを判断して、大きくないときには、ステップ2に戻っていく。すなわち、図3の例で説明するならば、変数jの値を“2”にセットすることで、変数jがテーブルT2を指すようにセットするのである。
【0031】
このようにしてステップ7に戻ると、ステップ7で、変数jの指すj番目のテーブルの最終の論理エリアになったのか否かを判断して、最終の論理エリアでないと判断するときには、ステップ8に進んで、変数jの指すj番目のテーブルの論理エリアを1つ進めて、この論理エリアをジョイン対象として位置付けるとともに、続くステップ9で、変数kに変数jの値をセットする。すなわち、図3の例で説明するならば、テーブルT2の論理エリアを論理エリア#Aから論理エリア#Bに進めて、変数kに変数jの値である“2”をセットするのである。
【0032】
ステップ10で、変数kの値が“1”でなくなることを判断すると、ステップ13に進んで、変数kの値を1つカウントダウンし、続くステップ14で、変数kの示すk番目のテーブルの論理エリアを先頭のものに戻してジョイン対象として位置付けてから、ステップ10に戻っていく。すなわち、図3の例で説明するならば、変数kに“1”をセットするとともに、変数kの指すテーブルT1の先頭の論理エリア#1をジョイン対象として位置付けてから、ステップ10に戻っていくのである。
【0033】
このようにしてステップ10に戻ると、再び変数kの値が“1”であることを判断して、ステップ5に戻っていくことで、ステップ5でのジョイン処理を繰り返していくことになる。すなわち、図3の例で説明するならば、最初に、ステップ8の処理に従ってジョイン対象として位置付けられたテーブルT2の論理エリア#Bと、ステップ14の処理に従ってジョイン対象として位置付けられたテーブルT1の論理エリア#1との間で、B + tree インデックスを使いレコードのソート処理を行うことなくジョイン処理を行い、次に、テーブルT2の論理エリア#Bと、ステップ8の処理に従って更に1つ進められたテーブルT1の論理エリア#2との間で、B + tree インデックスを使いレコードのソート処理を行うことなくジョイン処理を行い、続いて、テーブルT2の論理エリア#Bと、ステップ8の処理に従って更に1つ進められたテーブルT1の論理エリア#3との間で、B + tree インデックスを使いレコードのソート処理を行うことなくジョイン処理を行っていくのである。
【0034】
このように検索処理を実行していくと、ステップ7で、変数jの指すj番目のテーブル(テーブルT1である)の最終の論理エリアになることを判断するので、このときには、ステップ11に進んで、変数jの値を1つカウントアップし、続くステップ12で、変数jの値が変数iの値よりも大きくなったことを判断して処理を終了する。
【0035】
このようにして、本発明に従うと、リレーショナルデータベースシステム1がレコードを複数の論理エリアに分割格納するテーブル構成に従って管理するという構成を採るときにあって、レコードへのポインタとそのレコードの持つキー値とをリーフ部データとしてキー値の大きさの順に管理するインデックスを使ってジョイン処理を実行することができるようになることから、複数の論理エリアに跨がったレコードのソートを行うことなくジョイン処理を実行することができるのである。
【0036】
【発明の効果】
以上説明したように、本発明によれば、リレーショナルデータベースシステムがレコードを複数の論理エリアに分割格納するテーブル構成に従って管理するという構成を採るときにあって、インデックスを使ってジョイン処理を実行することができるようにする構成を採るものであることから、複数の論理エリアに跨がったレコードのソートを行うことなくジョイン処理を実行することができるようになるので、高速にジョイン処理を実行できるようになる。
【図面の簡単な説明】
【図1】 本発明の原理構成図である。
【図2】 本発明に係るジョイン処理の処理フローの一実施例である。
【図3】 本発明に係るジョイン処理の一例である。
【図4】 2つのテーブルを管理するリレーショナルデータベースシステムの一例である。
【符号の説明】
1 リレーショナルデータベースシステム
2 テーブル
3 テーブル
4 論理エリア
5 論理エリア
6 管理手段
7 決定手段
8 ジョイン検索手段
9 結果テーブル
Claims (1)
- 複数の論理エリアに分割された2つのテーブルを処理対象として、その2つのテーブルの中に含まれる同一の項目値を持つレコードを結合して1つの結果テーブルを導くジョイン処理を実行するリレーショナルデータベースシステムにおいて、
一方のテーブルの論理エリアを順次選択するとともに、それに合わせて、他方のテーブルについても同様に論理エリアを順次に選択することで、ジョイン対象となる2つのテーブルの論理エリアの全ての組み合わせを決定する決定手段と、
上記論理エリアに1対1に対応付ける形で用意されて、上記論理エリアに属するレコードへのポインタ情報をジョインキー値の大きさの順に管理するインデックスを使って、上記決定手段の決定した論理エリアの組み合わせのそれぞれについて、その組み合わせの論理エリア同士についてジョイン処理を実行する実行手段とを備えることを、
特徴とするリレーショナルデータベースシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27131092A JP3824091B2 (ja) | 1992-10-09 | 1992-10-09 | リレーショナルデータベースシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27131092A JP3824091B2 (ja) | 1992-10-09 | 1992-10-09 | リレーショナルデータベースシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06119214A JPH06119214A (ja) | 1994-04-28 |
JP3824091B2 true JP3824091B2 (ja) | 2006-09-20 |
Family
ID=17498271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27131092A Expired - Fee Related JP3824091B2 (ja) | 1992-10-09 | 1992-10-09 | リレーショナルデータベースシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3824091B2 (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0782451B2 (ja) * | 1987-06-23 | 1995-09-06 | 三菱電機株式会社 | データベース管理システム |
JPH02178854A (ja) * | 1988-12-29 | 1990-07-11 | Nec Corp | レンジ分割管理方式 |
JPH07104871B2 (ja) * | 1989-08-31 | 1995-11-13 | 三菱電機株式会社 | リレーショナル・データベースにおけるジョイン処理方式 |
US5121494A (en) * | 1989-10-05 | 1992-06-09 | Ibm Corporation | Joining two database relations on a common field in a parallel relational database field |
JP3395208B2 (ja) * | 1991-07-10 | 2003-04-07 | 株式会社日立製作所 | 分散データベースのソート方法およびアクセス方法 |
JP3269849B2 (ja) * | 1992-05-29 | 2002-04-02 | 株式会社日立製作所 | 並列データベース処理システムとその検索方法 |
-
1992
- 1992-10-09 JP JP27131092A patent/JP3824091B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06119214A (ja) | 1994-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6266660B1 (en) | Secondary index search | |
US5257365A (en) | Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records | |
US6236988B1 (en) | Data retrieval system | |
US7062499B2 (en) | Enhanced multiway radix tree and related methods | |
JP2000187668A (ja) | グループ化方法と重複排除方法 | |
MXPA01000123A (es) | Base de datos implementada por computadora con conectividad valor caso. | |
JPH08255176A (ja) | データベースのテーブルを比較する方法及びシステム | |
US7080072B1 (en) | Row hash match scan in a partitioned database system | |
CN107209768A (zh) | 用于数据集的可扩展排序的方法和设备 | |
US5247662A (en) | Join processor for a relational database, using multiple auxiliary processors | |
Berra et al. | Computer architecture for a surrogate file to a very large data/knowledge base | |
WO2005043409A1 (ja) | 表形式データの結合方法、結合装置およびプログラム | |
JP3824091B2 (ja) | リレーショナルデータベースシステム | |
CN112860734A (zh) | 地震数据多维度范围查询方法及装置 | |
JPH0782429B2 (ja) | 複数ファイルのマージ方法 | |
JPH0773187A (ja) | 検索システム | |
JPH01163826A (ja) | リレーショナルデータベースの結合処理方式 | |
JPH02236778A (ja) | 問い合わせ最適化処理方法 | |
JPH0934906A (ja) | 図書管理装置 | |
JPH10240741A (ja) | 木構造型データの管理方法 | |
JPH10301935A (ja) | データ処理方法 | |
JPS61141035A (ja) | デ−タ検索方式 | |
JPH11306183A (ja) | データベース検索システム | |
JPH0675254B2 (ja) | 開係データベース演算システム | |
JPH04148373A (ja) | データ検索システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050412 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050613 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050616 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20051126 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060621 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |