JPS60134945A - データベース処理方法 - Google Patents
データベース処理方法Info
- Publication number
- JPS60134945A JPS60134945A JP58242024A JP24202483A JPS60134945A JP S60134945 A JPS60134945 A JP S60134945A JP 58242024 A JP58242024 A JP 58242024A JP 24202483 A JP24202483 A JP 24202483A JP S60134945 A JPS60134945 A JP S60134945A
- Authority
- JP
- Japan
- Prior art keywords
- page
- vector
- search
- index
- processing
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、データベース処理方式に係り、特に大規模リ
レーショナル・データベースにおける検索要求の処理に
好適なデータベース処理方式に関する。
レーショナル・データベースにおける検索要求の処理に
好適なデータベース処理方式に関する。
大量データの効率的管理を目的とするデータベース技術
が急速に発展している。データベースの大きな利点は、
データベース利用者が、データの物理的記憶構造を全く
慧識せずに、データ操作用言語を通じてデータにアクセ
スすることが可能である点にある。
が急速に発展している。データベースの大きな利点は、
データベース利用者が、データの物理的記憶構造を全く
慧識せずに、データ操作用言語を通じてデータにアクセ
スすることが可能である点にある。
データベース罠格納されているデータ(以下レコードと
呼ぶ)の、物理的な格納形式は、レコードの挿入・削除
等の操作に対する柔軟性の確保、レコードの格納効率の
向上、などを実現するために一般にかなυ複雑な形式と
なっている。
呼ぶ)の、物理的な格納形式は、レコードの挿入・削除
等の操作に対する柔軟性の確保、レコードの格納効率の
向上、などを実現するために一般にかなυ複雑な形式と
なっている。
従って、ユーザによって論理的にポイントされたレコー
ドに対し、その物理的な格納位置をめる処理(この処理
をデータベース処理におけるアドレス変換と呼ぶ)も、
レコードの物理的な格納形式の複雑さに対応して、かな
り制負荷の処理となっている。
ドに対し、その物理的な格納位置をめる処理(この処理
をデータベース処理におけるアドレス変換と呼ぶ)も、
レコードの物理的な格納形式の複雑さに対応して、かな
り制負荷の処理となっている。
従来金データベース管理システム(以1”DBMSとい
う)では、レコードへのアクセスをルコード単位で行な
っていた。すなわち、あるレコードのデータベースから
の取り出しが必要となった時点毎に、アドレス変換を行
なってレコードの物理アドレスをめてそのレコードヲ取
り出していた。
う)では、レコードへのアクセスをルコード単位で行な
っていた。すなわち、あるレコードのデータベースから
の取り出しが必要となった時点毎に、アドレス変換を行
なってレコードの物理アドレスをめてそのレコードヲ取
り出していた。
しかし、かかるデータベース処理方式には、以下の様な
問題点かめる。
問題点かめる。
第一の問題点は、大量レコードの一括処理を要求された
場合の性能上の問題である。
場合の性能上の問題である。
最近の、特ニリレーショナル・モデルにもとづく高水準
のデータ操作用言語は、1コマンドによって複数のレコ
ードの処理を行なうことができる。
のデータ操作用言語は、1コマンドによって複数のレコ
ードの処理を行なうことができる。
一方、近年のいわゆるスーパー・コンピュータの発達に
示されるよ2に、大量データの一括処理の高速化には、
パイプライン方式などによるベクトル処理が非常に効果
的であることが仰られている。
示されるよ2に、大量データの一括処理の高速化には、
パイプライン方式などによるベクトル処理が非常に効果
的であることが仰られている。
しかし、ルコード毎にアドレス変換を行なう従来のDB
MSでは、前述の様にアドレス変換処理が複雑なため、
複数レコード処理のベクトル化が極めて困難である。
MSでは、前述の様にアドレス変換処理が複雑なため、
複数レコード処理のベクトル化が極めて困難である。
第二の問題点は、同一のレコードに対して複数回のアク
セスを行なう場合には、本質的には1度のアドレス変換
で済むはずであるが、従来方式では、レコードに対する
アクセス回数に等しい回数のアドレス変換を常に必要と
するという欠点がある。
セスを行なう場合には、本質的には1度のアドレス変換
で済むはずであるが、従来方式では、レコードに対する
アクセス回数に等しい回数のアドレス変換を常に必要と
するという欠点がある。
本発明の目的は、上記問題点に対処するために、アドレ
ス変換回数が少なく、かつ検索処理のベクトル化を可能
とするデータベース処理方式を提供することにある。
ス変換回数が少なく、かつ検索処理のベクトル化を可能
とするデータベース処理方式を提供することにある。
上記目的を達成するだめに、本発明は、参照が予想され
るレコード群を予測し、そのレコード群に対するアドレ
ス変換を一括1.て行ない、この変換結果を用いてレコ
ード群を記憶装置上にベクトル形式で展開し、以後の処
理をこのベクトルに対して行なうことを特徴とする。
るレコード群を予測し、そのレコード群に対するアドレ
ス変換を一括1.て行ない、この変換結果を用いてレコ
ード群を記憶装置上にベクトル形式で展開し、以後の処
理をこのベクトルに対して行なうことを特徴とする。
以下、本発明の一実施例を図面罠従って詳細に説明する
。第1図は、本発明をリレーショナル・データベースの
処理に適用した場合の一実施例を示すブロック図である
。
。第1図は、本発明をリレーショナル・データベースの
処理に適用した場合の一実施例を示すブロック図である
。
第1図において、101は主記憶、108は二次記憶、
110は中央処理装置である。主記憶101には、デー
タベース処理グログラム(DBP)102が格納されて
いる。また、主記憶101には、データベース処理のた
めの作業領域106および■10バッファ領域401が
確保されている。
110は中央処理装置である。主記憶101には、デー
タベース処理グログラム(DBP)102が格納されて
いる。また、主記憶101には、データベース処理のた
めの作業領域106および■10バッファ領域401が
確保されている。
データベース処理プログラム102は、ベクトル展開部
103と、検索処理制御部104と、ベクトル処理部1
05とから成る。二次記憶108にはデータベース10
9が格納される。中央処理装置110はヌカ2命令とベ
クトル命令の両方を処理できるベクトル計算機の中央処
理装置である。
103と、検索処理制御部104と、ベクトル処理部1
05とから成る。二次記憶108にはデータベース10
9が格納される。中央処理装置110はヌカ2命令とベ
クトル命令の両方を処理できるベクトル計算機の中央処
理装置である。
データベース109は、テーブルとインデックスとから
成り、テーブルのだて一欄をカラム、横−欄をローと呼
ぶ。
成り、テーブルのだて一欄をカラム、横−欄をローと呼
ぶ。
テーブル、インデックスともに、ページと呼ばれる単位
に分割して二次記憶108に格納される。
に分割して二次記憶108に格納される。
テーブルを格納しているページをデータベージ、インデ
ックスを格納しているページをインデックスベージと呼
ぶ。
ックスを格納しているページをインデックスベージと呼
ぶ。
まず、データベージの構造の例を第2図を用いて説明す
る。
る。
データベージ204内には、スロット205と変位部2
07とがあシ、変位部207には、スロット205の先
頭アドレスと、データベージ204の先頭アドレスの差
が格納される。データベージには複数のスロットが存在
するので、それに対応して変位部も複数存在する。変位
部はデータベージの終わ9から順に配置され終わシに近
い順から番号がつけられる。以下この命号をスロット番
号203と呼ぶ。
07とがあシ、変位部207には、スロット205の先
頭アドレスと、データベージ204の先頭アドレスの差
が格納される。データベージには複数のスロットが存在
するので、それに対応して変位部も複数存在する。変位
部はデータベージの終わ9から順に配置され終わシに近
い順から番号がつけられる。以下この命号をスロット番
号203と呼ぶ。
テーブルのローは、スロット205に格納される。従っ
て、テーブルのローは、そのローが格納されているスロ
ット205が存在するデータページの二次記憶108中
でのページ番号202と、そのローが格納されているス
ロット205のスロツ)8号203とのベア201(以
下これをローIDと呼ぶ)によって二次記憶中で一意に
指定される。スロット205はさらに、複数のカラム値
から成る。
て、テーブルのローは、そのローが格納されているスロ
ット205が存在するデータページの二次記憶108中
でのページ番号202と、そのローが格納されているス
ロット205のスロツ)8号203とのベア201(以
下これをローIDと呼ぶ)によって二次記憶中で一意に
指定される。スロット205はさらに、複数のカラム値
から成る。
次に、インデックスの構造について述べる。゛インデッ
クスには平衡木(以下B−tree という)という木
構造が良く用いられ、本実施例でも、B−treeをイ
ンデックスの構造として1更用する。
クスには平衡木(以下B−tree という)という木
構造が良く用いられ、本実施例でも、B−treeをイ
ンデックスの構造として1更用する。
B−4reeの各ノードが1インデツクス・ページに対
応する。
応する。
B−f;reeのルートに対応するページをルート・ペ
ージ、リーフに対応するページをリーフ・ページと呼ぶ
。
ージ、リーフに対応するページをリーフ・ページと呼ぶ
。
以下、インデックス・ページの溝道例Vこついて第3図
を用いて説明する。
を用いて説明する。
インデックス・ページの構造は、リーフ・ページとリー
フ以外のページとで異なる。
フ以外のページとで異なる。
第3図において、301vj、リーフでないインデック
ス・ページであり、308はリーフであるインデックス
・ページ(リーフ・ページ)でおる。
ス・ページであり、308はリーフであるインデックス
・ページ(リーフ・ページ)でおる。
インデックス・ページには、複数のインデックスエント
リ(以下エントリという)が存在する。
リ(以下エントリという)が存在する。
インデックス・ページ301内のエントリのうち、最も
小さいキー値をもつエントリ304を、そのページの先
頭エントリと呼ぶ。各エントリの最後部には、インデッ
クス・ベージ301内で次に大きなキー値をもつエント
リへのポインタが格納され、インデックス・ベージ30
1内の最後のエントリ、すなわち、そのページ中で最も
大きなキー値をもつエントリの最後部305には、シ次
のエントリが存在しないことを示すマークが格納されて
いる。変位部306には、インデックス・ページ301
の先頭エントリのアドレスと、インデックスページ30
1の先頭アドレスとの差が格納されている。前方ページ
番号307 VCは、インデックス・ページ301の前
方のインデックス・ページの番号が格納される。
小さいキー値をもつエントリ304を、そのページの先
頭エントリと呼ぶ。各エントリの最後部には、インデッ
クス・ベージ301内で次に大きなキー値をもつエント
リへのポインタが格納され、インデックス・ベージ30
1内の最後のエントリ、すなわち、そのページ中で最も
大きなキー値をもつエントリの最後部305には、シ次
のエントリが存在しないことを示すマークが格納されて
いる。変位部306には、インデックス・ページ301
の先頭エントリのアドレスと、インデックスページ30
1の先頭アドレスとの差が格納されている。前方ページ
番号307 VCは、インデックス・ページ301の前
方のインデックス・ページの番号が格納される。
その前方ページ内の任意エントリのキー値は、インデッ
クス・ベージ301内の任意エントリのキー値よシ大き
い。
クス・ベージ301内の任意エントリのキー値よシ大き
い。
ここまでで説明したインデックス・ページの構造は、リ
ーフ・ページとリーフ以外のインデックス・ページとに
共通でるる。
ーフ・ページとリーフ以外のインデックス・ページとに
共通でるる。
リーフ以外のインデックス・ページ301のエン)す3
02のキー値に続く部分303には、下方のインデック
ス・ページ(リーフ・ページ)308のページ番号が格
納されている。インデックス・ページ(リーフ・ページ
)308内の任意のエントリのキー値は、エントリ30
2のキー値以上の値を有する。
02のキー値に続く部分303には、下方のインデック
ス・ページ(リーフ・ページ)308のページ番号が格
納されている。インデックス・ページ(リーフ・ページ
)308内の任意のエントリのキー値は、エントリ30
2のキー値以上の値を有する。
インデックス・ページ(リーフ・ページ)308のエン
)す309のキー値に続く部分310には、そのキー値
に属するローのローIDCすなわち該インデックスがつ
けられているカラムの値がキー値に等しいようなローの
ローID)が格納される。
)す309のキー値に続く部分310には、そのキー値
に属するローのローIDCすなわち該インデックスがつ
けられているカラムの値がキー値に等しいようなローの
ローID)が格納される。
エントリ309のキー値に属するローが複数個ある場合
、エントリ309には複数のローIDが格納される。
、エントリ309には複数のローIDが格納される。
B−treeでは、リーフ・ページの前方ページは必ず
リーフ・ページである。リーフ・ページのうち、他のど
のリーフ・ページからも参照されていないページが唯一
つ存在し、このリーフ・ページを最左リーフ・ページと
呼ぶ。最左リーフ・ページのページ番号it: 、ルー
ト・ページカラ、ページの先頭エントリのキー値の直後
に示されている下方ページを、リーフ・ページまでたど
ることによシ得られる。
リーフ・ページである。リーフ・ページのうち、他のど
のリーフ・ページからも参照されていないページが唯一
つ存在し、このリーフ・ページを最左リーフ・ページと
呼ぶ。最左リーフ・ページのページ番号it: 、ルー
ト・ページカラ、ページの先頭エントリのキー値の直後
に示されている下方ページを、リーフ・ページまでたど
ることによシ得られる。
また、テーブルの任意のローのローIDは、いずれかの
リーフ・ページのエントリ内に必ず格納されておシ、ま
た、インデックス中にそのローIDが重複して格納され
ることはない。
リーフ・ページのエントリ内に必ず格納されておシ、ま
た、インデックス中にそのローIDが重複して格納され
ることはない。
従って、最左リーフ・ページから次々と前方のリーフ・
ページをたどりながらそのページ内をスキャンしていく
ことによシ、テーブルの全ローのローIDを、キー値の
昇j幀に取り出すことができる。
ページをたどりながらそのページ内をスキャンしていく
ことによシ、テーブルの全ローのローIDを、キー値の
昇j幀に取り出すことができる。
さて、二次記憶108に格納されているデータ・ページ
およびインデックス・ページは、主記憶101のI10
バッファ領域401に読み込まれてからデータベース処
理プログラム102によって処理される。
およびインデックス・ページは、主記憶101のI10
バッファ領域401に読み込まれてからデータベース処
理プログラム102によって処理される。
第4図に、I10バッファ領域の構成例を示す。
■10バッファ禎域401は、複数のバッファから成る
。各バッファには、■10バッファ領域401の中で一
意な番号づけがなされており、この番号を以下バッファ
奇号と呼ぶ。110バツフア憤域401内の各バッファ
の主記憶101上でのアドレスは、バッフ7番号よシ定
まる。各バッファのサイズは、二次記憶108における
ページのサイズに等しい。
。各バッファには、■10バッファ領域401の中で一
意な番号づけがなされており、この番号を以下バッファ
奇号と呼ぶ。110バツフア憤域401内の各バッファ
の主記憶101上でのアドレスは、バッフ7番号よシ定
まる。各バッファのサイズは、二次記憶108における
ページのサイズに等しい。
二次記憶108に格納されているデータ・ページまたは
インデックス・ページが、I10バッファ領域401の
あるバッファ、例えばバッファ曹号lのバッファ402
に読み込簸れると、バッファ・ブイレフ) リ403に
は、そのページのページ番号404と、そのバッファの
バッファ番号405のペアが登録される。
インデックス・ページが、I10バッファ領域401の
あるバッファ、例えばバッファ曹号lのバッファ402
に読み込簸れると、バッファ・ブイレフ) リ403に
は、そのページのページ番号404と、そのバッファの
バッファ番号405のペアが登録される。
従って、二次記憶108のあるページが、l[10バツ
フア領域401に存在するか否かは、バッファ・ディレ
クトリ403e探索して、そのページのページ番号が登
録されているか否かによって判定でき、かつ、そのペー
ジ番号とペアになっているバッファ番号からI10バッ
ファ領域401中のどのバッファにそのページが読み込
まれたかがわかる。
フア領域401に存在するか否かは、バッファ・ディレ
クトリ403e探索して、そのページのページ番号が登
録されているか否かによって判定でき、かつ、そのペー
ジ番号とペアになっているバッファ番号からI10バッ
ファ領域401中のどのバッファにそのページが読み込
まれたかがわかる。
ところで、■10バッファ狽域401内のバッファに読
み込まれたインデックス・ページまたはデータ・ページ
の中のインデックス・エントリまたはスロットを、デー
タベース処理プログラム102が処理するには、エント
リもしくは、スロットの主記憶101におけるアドレス
を知る必要がアシ、ローIDから、そのローを格納して
いるスロットの主記憶101上のアドレスを調べる処理
ケ、ローのアドレス変換と呼ぶ。
み込まれたインデックス・ページまたはデータ・ページ
の中のインデックス・エントリまたはスロットを、デー
タベース処理プログラム102が処理するには、エント
リもしくは、スロットの主記憶101におけるアドレス
を知る必要がアシ、ローIDから、そのローを格納して
いるスロットの主記憶101上のアドレスを調べる処理
ケ、ローのアドレス変換と呼ぶ。
また、インデックス・ベージ奎号から、そのインデック
ス・ページ内の先頭エントリのアドレスを調べる処理を
インデックス・ページのアドレス変換と呼ぶ。
ス・ページ内の先頭エントリのアドレスを調べる処理を
インデックス・ページのアドレス変換と呼ぶ。
まず、ローのアドレス変換処理を第5図のフローチャー
トを用いて説明する。
トを用いて説明する。
変数PAGEす、5LOT+にそれぞれ変換の対象であ
るローID中のページ番号、スロット番号を代入する(
ステップ501)。
るローID中のページ番号、スロット番号を代入する(
ステップ501)。
次にバッファ・ディレクトリ403を探索して、そのペ
ージ番号が、バッファ・ディレクトリ403中に登録さ
れているか否かを調べ(ステップ502)、登録されて
いれば、そのページが読み込まれているバッファのバッ
ファ番号から、そのバッファのアドレスを計算してf数
BUIi”FAに代入する(ステップ504)。
ージ番号が、バッファ・ディレクトリ403中に登録さ
れているか否かを調べ(ステップ502)、登録されて
いれば、そのページが読み込まれているバッファのバッ
ファ番号から、そのバッファのアドレスを計算してf数
BUIi”FAに代入する(ステップ504)。
登録されていない場合は、そのページを二次記憶108
から主起i:依101のI10バッファ領域401の適
当なバッファに読み込み、そのページ着号と、そのバッ
ファのバッフ7番号とのペアをバッファ・ディレクトリ
403に登録(ステップ503)した後、上述のステッ
プ504を実行丁Σ。
から主起i:依101のI10バッファ領域401の適
当なバッファに読み込み、そのページ着号と、そのバッ
ファのバッフ7番号とのペアをバッファ・ディレクトリ
403に登録(ステップ503)した後、上述のステッ
プ504を実行丁Σ。
第2図で説明したデータ・ページの14造から明らかな
様に、スロット番号(S LOT#’)209 HE示
す該データページ204中の変位部207の内容とバッ
ファ・アドレスBUFFAの和を計算することにより該
ローが格納されているスロットの主記憶101上のアド
レス変換ロることかできる(ステップ505,506)
。
様に、スロット番号(S LOT#’)209 HE示
す該データページ204中の変位部207の内容とバッ
ファ・アドレスBUFFAの和を計算することにより該
ローが格納されているスロットの主記憶101上のアド
レス変換ロることかできる(ステップ505,506)
。
一方、インデックス・ページのアドレス変換処理を、第
6図のフローチャートを用いて説明する。
6図のフローチャートを用いて説明する。
まず、変換の対酸となるインデックス・ページのベージ
命号を変数PAGEすに代入する(ステップ601)。
命号を変数PAGEすに代入する(ステップ601)。
ステップ602,603,604は、ローのアドレス変
換におけるステップ502゜503.504と同一であ
り、そのインデックス・ページが読み込まれているバッ
ファの主記憶アドレスをめる処理である。第3図で説明
したインデックス・ページの構造から明らかな様に、イ
ンデックス・ページの変位部306の内容とそのインデ
ックス・ページが読み込まれているバッファの主記憶1
01上のアドレスとの和を計算することによシ、インデ
ックス・ページの先頭エントリのアドレスがわかる(ス
テップ605 、606)。
換におけるステップ502゜503.504と同一であ
り、そのインデックス・ページが読み込まれているバッ
ファの主記憶アドレスをめる処理である。第3図で説明
したインデックス・ページの構造から明らかな様に、イ
ンデックス・ページの変位部306の内容とそのインデ
ックス・ページが読み込まれているバッファの主記憶1
01上のアドレスとの和を計算することによシ、インデ
ックス・ページの先頭エントリのアドレスがわかる(ス
テップ605 、606)。
以上、本発明の一実施例の構成と、基本となるデータ構
造と、アドレス変換処理の例を説明した。
造と、アドレス変換処理の例を説明した。
以下、本発明のデータベース処理プログラム102の詳
細な動作例を、ある具体的な検索要求の処理手順を追い
ながら説明する。
細な動作例を、ある具体的な検索要求の処理手順を追い
ながら説明する。
本実施例で例題とする検索を第7図に示す。
検索対壕テーブルは、TABL玖1)710. TAB
IJX2)711の二つである。
IJX2)711の二つである。
TABLE(1)710は5TUDENTとCLASS
の二つのカラムから、TABLE(2)711はCLA
SSとTEACHERの二つのカラムからそれぞれ成っ
ている。
の二つのカラムから、TABLE(2)711はCLA
SSとTEACHERの二つのカラムからそれぞれ成っ
ている。
TABL玖1)711の5TUDENTカラムと、TA
BLE(2)712のCLASSカラムには、それぞれ
インデックスINDEX(1)713、INDEX(2
)714がつけられている。
BLE(2)712のCLASSカラムには、それぞれ
インデックスINDEX(1)713、INDEX(2
)714がつけられている。
検索要求701は、rTABLE(1)とT A B
L F、(2)で、それぞれのCLASSカラムの値が
等しいようなローのペアから5TUDEN’[”カラム
とTEACHERカラムの値のベアをすべて取シ出して
検索結果702として出力せよ」というものである。こ
の様な異なるテーブルを結合する処理はリレーショナル
・モデルではジョイン(join)と呼ばれている。
L F、(2)で、それぞれのCLASSカラムの値が
等しいようなローのペアから5TUDEN’[”カラム
とTEACHERカラムの値のベアをすべて取シ出して
検索結果702として出力せよ」というものである。こ
の様な異なるテーブルを結合する処理はリレーショナル
・モデルではジョイン(join)と呼ばれている。
次に検索処理制御部104の動作例を第8図のフローチ
ャートを用いて説明する。
ャートを用いて説明する。
検索処理制御部104は、検索要求701を解析する(
ステップ800)。検索要求701中には、TABLE
(1)とTABLFr2)の全カラムが引用されている
ので、検索処理制御部104はTABLE(1)とTA
BL]112)の全レコードのベクトル化をベクトル展
開部103に指示する(ステップ801゜802)。
ステップ800)。検索要求701中には、TABLE
(1)とTABLFr2)の全カラムが引用されている
ので、検索処理制御部104はTABLE(1)とTA
BL]112)の全レコードのベクトル化をベクトル展
開部103に指示する(ステップ801゜802)。
ここでテーブルのベクトル化とは、第2図で示したよう
な構造で、データページ204内に格納されている該テ
ーブルの各カラムを一次元配列(ベクトル)の形式〒主
記憶101のfE 業領域106上に展開することを意
味する。
な構造で、データページ204内に格納されている該テ
ーブルの各カラムを一次元配列(ベクトル)の形式〒主
記憶101のfE 業領域106上に展開することを意
味する。
すなわち、TABLE(1)のベクトル化の結果、TA
BLE(1)(7)各o−I)STUDENT カラム
tD値ヲベクトル形式で並べたベクトルDoおよびCL
ASSカラムの値をベクトル形式で並べたベクトルDI
が作業領域106に格納される。
BLE(1)(7)各o−I)STUDENT カラム
tD値ヲベクトル形式で並べたベクトルDoおよびCL
ASSカラムの値をベクトル形式で並べたベクトルDI
が作業領域106に格納される。
同様に、TABLE(2)のベクトル化の結果、TAB
IJ(2) ノ各0−41CLASS カラムノ値ノベ
クトルD2およびTEACHERカラムの値のベクトル
D8が作業領域106に格納される。
IJ(2) ノ各0−41CLASS カラムノ値ノベ
クトルD2およびTEACHERカラムの値のベクトル
D8が作業領域106に格納される。
T A B L E(1襲よびTABLEI2)のベク
トル化が完了すると、検索処理制御部104は、ベクト
ル処理部105にステップ801,802で作られたベ
クトルDo 、DB を用いてベクトル型の二進探索を
行なうように指示する(ステップ8o3)。
トル化が完了すると、検索処理制御部104は、ベクト
ル処理部105にステップ801,802で作られたベ
クトルDo 、DB を用いてベクトル型の二進探索を
行なうように指示する(ステップ8o3)。
ベクトル処理部105における該ベクトル型二進探索が
完了すると、検索処理制御部104は、ベクトル処理部
105に、ベクトル処理部105によって作業領域10
6に格納された該ベクトル型二進探索結果、およびベク
トルDo 、Ds f用いて検索結果を出力するよう指
示する(ステップ804)。 。
完了すると、検索処理制御部104は、ベクトル処理部
105に、ベクトル処理部105によって作業領域10
6に格納された該ベクトル型二進探索結果、およびベク
トルDo 、Ds f用いて検索結果を出力するよう指
示する(ステップ804)。 。
以上が、検索要求701が入力された場合の、検索処理
制御部104の動作である。
制御部104の動作である。
次に、第9図のフローチャートを参照しながらベクトル
展開部103の動作を説明する。
展開部103の動作を説明する。
ベクトル展開部103は、TABLE(1)のベクトル
化を検索処理制御部104に指示される(第8図ステッ
プ801)と、カウンタiをリセットし、INDEX(
1)の最左リーフ・ページ番号を調べ、変数IXPAG
E+に代入する(ステップ901)。
化を検索処理制御部104に指示される(第8図ステッ
プ801)と、カウンタiをリセットし、INDEX(
1)の最左リーフ・ページ番号を調べ、変数IXPAG
E+に代入する(ステップ901)。
次のステップ902で、第6図の70−チャートで示し
た手順によシ最左リーフ・ページ番号I’XPAGE4
−のアドレス変換を行なってその最左リーフ・ページの
先頭エントリの主記憶101上のアドレスをめ、変数E
NTRYAにセットする(ステップ902)、次1c
ENTR,YA Kよって、ポイントされるエントリの
中か6、ローIDを取シ出し、第5図のフローチャート
で示した手順によシそのローIDのアドレス菱換を行な
って、そのローが格納されているスロットの主記憶10
1上のアドレスをめ、定数5LOTAに代入しくステッ
プ903)、さらに、5LOTAでポイントされるスロ
ット力らTABLE(1)O8TUDENT カラムと
CLAS8カラムとの値を取シ出し、それぞれ作業=x
戦ioG上のベクトルDo、DIのi番目の要素Do
(i)、 DI(i)として格納する(ステップ904
)。
た手順によシ最左リーフ・ページ番号I’XPAGE4
−のアドレス変換を行なってその最左リーフ・ページの
先頭エントリの主記憶101上のアドレスをめ、変数E
NTRYAにセットする(ステップ902)、次1c
ENTR,YA Kよって、ポイントされるエントリの
中か6、ローIDを取シ出し、第5図のフローチャート
で示した手順によシそのローIDのアドレス菱換を行な
って、そのローが格納されているスロットの主記憶10
1上のアドレスをめ、定数5LOTAに代入しくステッ
プ903)、さらに、5LOTAでポイントされるスロ
ット力らTABLE(1)O8TUDENT カラムと
CLAS8カラムとの値を取シ出し、それぞれ作業=x
戦ioG上のベクトルDo、DIのi番目の要素Do
(i)、 DI(i)として格納する(ステップ904
)。
そして、カウンタif:+11.(ステップ9o5)、
続いてENTRYAが指すエントリにまだ処理していな
いローIf)が残っているが否がをチェックしくステッ
プ906)、残っていればステップ903へ戻り、未処
理ローIDの処理を開始する。残っていなければ、EN
TR,YAが指すエントリの最後の部分を調べて、次の
エントリがらるが否かをチェックする(ステップ9o7
)。もし次エントリがあれば、ENTRYAに次エント
リの主記憶101上のアドレスをセット(ステップ90
9)した後、ステップ903へ戻シ、次エントリの処理
を行なう。次エントリがなければ、現在処理中のインデ
ックス・ページ(ページ番号: IXPAGE+)の前
方ページがあるか否かをチェックして(ステップ908
)、あれば、IXPAGE寺に前方ページのページ番号
をセット(ステップ910)してから、ステップ902
へ戻り、前方ページの処理を開始する。ステップ908
の判定の結果、前方インデックス・ページがないと判明
した場合、処理が終了する。
続いてENTRYAが指すエントリにまだ処理していな
いローIf)が残っているが否がをチェックしくステッ
プ906)、残っていればステップ903へ戻り、未処
理ローIDの処理を開始する。残っていなければ、EN
TR,YAが指すエントリの最後の部分を調べて、次の
エントリがらるが否かをチェックする(ステップ9o7
)。もし次エントリがあれば、ENTRYAに次エント
リの主記憶101上のアドレスをセット(ステップ90
9)した後、ステップ903へ戻シ、次エントリの処理
を行なう。次エントリがなければ、現在処理中のインデ
ックス・ページ(ページ番号: IXPAGE+)の前
方ページがあるか否かをチェックして(ステップ908
)、あれば、IXPAGE寺に前方ページのページ番号
をセット(ステップ910)してから、ステップ902
へ戻り、前方ページの処理を開始する。ステップ908
の判定の結果、前方インデックス・ページがないと判明
した場合、処理が終了する。
第3図のインデックス・ページの説明において述べたよ
うに、最左リーフページから前方のリーフ・ページを次
々とたどることによシ、テーブルノ全ローを、インデッ
クスのついたカラムの値の昇順にアクセスすることがで
きるので、第9図の処理手順によって、TABLE(1
)の全ローの、5TUDENTカラム値とCLASS
カラム値がそれぞれベクトルDoとD!に格納される。
うに、最左リーフページから前方のリーフ・ページを次
々とたどることによシ、テーブルノ全ローを、インデッ
クスのついたカラムの値の昇順にアクセスすることがで
きるので、第9図の処理手順によって、TABLE(1
)の全ローの、5TUDENTカラム値とCLASS
カラム値がそれぞれベクトルDoとD!に格納される。
また、INDEX(1)は5TUDE4’JTカラムに
つけられたインデックスであシ、ベクトルDOは、昇順
にソートされている。
つけられたインデックスであシ、ベクトルDOは、昇順
にソートされている。
検索処理制御部104の指示によp4 TABLE(2
)もT A B L玖1)と同様に、第9図の処理手順
によってベクトル化される。すなわち、INDEX(2
)の最左リーフページ番号をIXPAGEすにステップ
901でセットしてからステップ902以降を実行する
(但しステップ904でj=2.aとする)ことにより
、TABLE(2り全ローのIcLAssカラム値と、
TICHER力2ム値とが、それぞれベクトルD2とD
3に格納される。INDEX(2)はCLA88カラム
につけられているのでベクトルD2は昇順にソートされ
る。
)もT A B L玖1)と同様に、第9図の処理手順
によってベクトル化される。すなわち、INDEX(2
)の最左リーフページ番号をIXPAGEすにステップ
901でセットしてからステップ902以降を実行する
(但しステップ904でj=2.aとする)ことにより
、TABLE(2り全ローのIcLAssカラム値と、
TICHER力2ム値とが、それぞれベクトルD2とD
3に格納される。INDEX(2)はCLA88カラム
につけられているのでベクトルD2は昇順にソートされ
る。
第8図で説明した様に、ベクトル展開部103で、TA
BIJ(1) kよびT A B L E<2)が検索
処理制御部104の指示によってベクトル化されてベク
トルDo−=DHが作業領域10.6上に作られると、
検索処理制御部104はDIを比較キーベクトルとして
Dz内をベクトル型二進探索する様、ベクトル処理部1
05に指示する(ステップ803)。
BIJ(1) kよびT A B L E<2)が検索
処理制御部104の指示によってベクトル化されてベク
トルDo−=DHが作業領域10.6上に作られると、
検索処理制御部104はDIを比較キーベクトルとして
Dz内をベクトル型二進探索する様、ベクトル処理部1
05に指示する(ステップ803)。
次に、ベクトル処理部105におけるベクトル型二進探
索の処理手順を、第10図のフロー・チャートを参照し
ながら説明する。
索の処理手順を、第10図のフロー・チャートを参照し
ながら説明する。
まず、第10図のフローチャートで用いられている変数
の意味を述べる。
の意味を述べる。
Nlは、TABLE(1)7)CLASSカラム値のベ
クトルD、の長さであり、N2はTABL玖2)のCL
ASSカ2ム値のベクトルD2の長さである。
クトルD、の長さであり、N2はTABL玖2)のCL
ASSカ2ム値のベクトルD2の長さである。
iは、実行回数のカウンタである。L、U、Cはいずれ
も作業領域106に置かれる長さNlのベクトルであり
、Lは探索範囲の下限、Uは探索範囲の上限、Cは探索
範囲の中央をそれぞれ示す。
も作業領域106に置かれる長さNlのベクトルであり
、Lは探索範囲の下限、Uは探索範囲の上限、Cは探索
範囲の中央をそれぞれ示す。
Mは長さN1のビット列であシ、比較結果を格納する(
以下Mをマスクと呼ぶ)。
以下Mをマスクと呼ぶ)。
二進探索結果は、ベクトルUに格納される。
第10図のベクトル型二進探索プログラムの機能は、ベ
クトルD+の各要素、DI(j)(j=0゜・・・・・
・tNI−x)VC対し、ソート済みのベクトルα内に
DI<1)と値が等しいようなりx(k)かめればkを
U(j)に返すことである。但し、DI(j)に等しい
ようなり2の要素が複数存在する場合、すなわちDz(
ko)+−”Dz(kt−+ )がすべてDI(j)に
等しい場合には、U(j)に”(ko、・・・・・・y
k’−t)を返すこととする。
クトルD+の各要素、DI(j)(j=0゜・・・・・
・tNI−x)VC対し、ソート済みのベクトルα内に
DI<1)と値が等しいようなりx(k)かめればkを
U(j)に返すことである。但し、DI(j)に等しい
ようなり2の要素が複数存在する場合、すなわちDz(
ko)+−”Dz(kt−+ )がすべてDI(j)に
等しい場合には、U(j)に”(ko、・・・・・・y
k’−t)を返すこととする。
第10図のフローチャートを参照しながら、ベクトル処
理部105における、ベクトル型二進探索の手順を説明
する。
理部105における、ベクトル型二進探索の手順を説明
する。
実行回数のカウンタiをリセットしくステップ100’
l)、探索範囲の下限ベクトルLと上限ベクトルUを初
期化する(ステップ1002.1003)。
l)、探索範囲の下限ベクトルLと上限ベクトルUを初
期化する(ステップ1002.1003)。
最初の探索(i = O)では、探索範囲はD2全域で
あるので、下限ベクトルLの全要素はOでアシ、Uの全
要素はN2−1である。ステップ1002゜1003は
ともに、あるスカラ値をベクトルの全要素に代入するよ
うなベクトル命令によって処理される。
あるので、下限ベクトルLの全要素はOでアシ、Uの全
要素はN2−1である。ステップ1002゜1003は
ともに、あるスカラ値をベクトルの全要素に代入するよ
うなベクトル命令によって処理される。
そして、カウンタiとtog1%を比較しくステップ1
004) 、カウンタlの値がlogNz以モであれば
終了し、そうでなければステップ1005゜1006お
よび1007を実行し、カウンタiを+1(ステップ1
008)してステップ1004に戻る。
004) 、カウンタlの値がlogNz以モであれば
終了し、そうでなければステップ1005゜1006お
よび1007を実行し、カウンタiを+1(ステップ1
008)してステップ1004に戻る。
すなわち、ステップ1005〜1007はtogN2回
実行される。
実行される。
ステップ1005で、探索範囲の中での中央の位置の計
算をDlの各要素(つまシ比較キー)毎に行なう。ステ
ップ1005は、下限ベクトルLと上限ベクトルUを要
素毎に加算して2で割った商を中央ベクトルCの対応要
素に格納するベクトル命令により実行される。次にDI
の各要素Dt(j)<j=o、・・・・・・、N1−1
)と、要素対応にステップ1005で計算された探索範
囲の中央に位置するDlの各要素D2 (c(j))
(j=o、・・・・・・、N1−1)とを比較し、DI
(j)すなわち比較キーの方が小さければマスクMの第
jビットを0とし、そうでなければマスクMの第jビッ
トを1とする(1006)。マスクMの第jビットが0
、すなわち、被比較値Da (C(j))が比較キーD
t(j)より小さい時は、各比較キーに対応する新しい
探索下限L(j)としてC(j)の値を格納し、マスク
Mの第jピットが1、すなわち被比較値Dx (C(J
))が比較キーDg(J)と等しいか、又は大きい時は
、その比較キーに対応する探索上限U(j)としてC(
j)の値を格納する(ステップ1007)、。ステップ
1006.1007ともにベクトル命令で実行される。
算をDlの各要素(つまシ比較キー)毎に行なう。ステ
ップ1005は、下限ベクトルLと上限ベクトルUを要
素毎に加算して2で割った商を中央ベクトルCの対応要
素に格納するベクトル命令により実行される。次にDI
の各要素Dt(j)<j=o、・・・・・・、N1−1
)と、要素対応にステップ1005で計算された探索範
囲の中央に位置するDlの各要素D2 (c(j))
(j=o、・・・・・・、N1−1)とを比較し、DI
(j)すなわち比較キーの方が小さければマスクMの第
jビットを0とし、そうでなければマスクMの第jビッ
トを1とする(1006)。マスクMの第jビットが0
、すなわち、被比較値Da (C(j))が比較キーD
t(j)より小さい時は、各比較キーに対応する新しい
探索下限L(j)としてC(j)の値を格納し、マスク
Mの第jピットが1、すなわち被比較値Dx (C(J
))が比較キーDg(J)と等しいか、又は大きい時は
、その比較キーに対応する探索上限U(j)としてC(
j)の値を格納する(ステップ1007)、。ステップ
1006.1007ともにベクトル命令で実行される。
ベクトルD2は昇順にソート済みであるのでステップ1
007の結果、各比較キ一対応にU、Lに記憶されてい
る探索範囲は半分となシ、従ってステップ1005〜1
007 をlogzN2 回繰返すことにより、各比較
キーに等しいDlの要素を探索することができる。ステ
ップ1006で、探索範囲の中央のDlの要素と、キー
値が等しい時には、ステップ1007で中央位置を、次
の探索におけるキー値に対応する探索範囲の上限として
いるので、探索終了時には、Dz内にキー値D+(j)
に等しい要素が複数存在する場合にも、その複数要素の
うち、Dz内で最初に現われる要素を位置が上限ベクト
ルU0)として得られる。
007の結果、各比較キ一対応にU、Lに記憶されてい
る探索範囲は半分となシ、従ってステップ1005〜1
007 をlogzN2 回繰返すことにより、各比較
キーに等しいDlの要素を探索することができる。ステ
ップ1006で、探索範囲の中央のDlの要素と、キー
値が等しい時には、ステップ1007で中央位置を、次
の探索におけるキー値に対応する探索範囲の上限として
いるので、探索終了時には、Dz内にキー値D+(j)
に等しい要素が複数存在する場合にも、その複数要素の
うち、Dz内で最初に現われる要素を位置が上限ベクト
ルU0)として得られる。
ベクトル処理部105によって、第10図の70−・チ
ャートに示したベクトル型二進探索が行なわれ、作業領
域106上のベクトルUに探索結果が得られると、第8
図の70−チャートで説明した様に検索処理制御部10
4はベクトル処理部1051c、ベクトルDo 、Dr
およびUを用いて検索要求701の結果を出力する様に
指示する(ステップ804)。
ャートに示したベクトル型二進探索が行なわれ、作業領
域106上のベクトルUに探索結果が得られると、第8
図の70−チャートで説明した様に検索処理制御部10
4はベクトル処理部1051c、ベクトルDo 、Dr
およびUを用いて検索要求701の結果を出力する様に
指示する(ステップ804)。
次に、ベクトル処理部105におけるジョイン結果の作
成手順を第11図の70−・チャートを用いて説明する
。
成手順を第11図の70−・チャートを用いて説明する
。
第11図において、iはDIの処理要素を示すポインタ
で6り、jはDlの処理要素を示すポインタである。i
のリセットを行なった(ステップ1101)後、jに、
第10図に示した処理手順によって作成されたベクトル
型二進探索結果のベクトルUの第1番目の要素U(i)
を格納する(ステップ1102)。次にDl(i)とD
l(j)を比較する(ステップ1103)。
で6り、jはDlの処理要素を示すポインタである。i
のリセットを行なった(ステップ1101)後、jに、
第10図に示した処理手順によって作成されたベクトル
型二進探索結果のベクトルUの第1番目の要素U(i)
を格納する(ステップ1102)。次にDl(i)とD
l(j)を比較する(ステップ1103)。
Dr (i)とDz(j)が等しい時、Dt(i)はT
ABL玖1)のあるローのCLASS カラムの値であ
り、Dl(j)はTABLE(2)のめるローのCLA
SS カラムの値である。従ってり。(i)とDs(j
)は、それぞれのCLASSカラム値が等しいようなT
ABLE(1)のローの5TUDENTカラム値と、T
ABLE(2)のローの′TEACHER,力2ムの値
であシ、検索要求701における検索条件を満たしてい
るので検索結果の1つとして出力する(ステップ′11
o4)。
ABL玖1)のあるローのCLASS カラムの値であ
り、Dl(j)はTABLE(2)のめるローのCLA
SS カラムの値である。従ってり。(i)とDs(j
)は、それぞれのCLASSカラム値が等しいようなT
ABLE(1)のローの5TUDENTカラム値と、T
ABLE(2)のローの′TEACHER,力2ムの値
であシ、検索要求701における検索条件を満たしてい
るので検索結果の1つとして出力する(ステップ′11
o4)。
Dlはソートされておシ、かつ第10図のベクトル型二
進探索処理で説明したようにo2(j)、すなわちDl
(U(i))は、DI(i)に等しいような良の要素
のうち一番最初の要素であるから、DI (i)に等し
いDlの要素が複数ある場合には、Dl(U(i))か
ら始まって、D2内で連続して並んでいる。
進探索処理で説明したようにo2(j)、すなわちDl
(U(i))は、DI(i)に等しいような良の要素
のうち一番最初の要素であるから、DI (i)に等し
いDlの要素が複数ある場合には、Dl(U(i))か
ら始まって、D2内で連続して並んでいる。
従って、jを+1して(ステップ1105) jがN以
上となるか(ステップ1106)またはDI(i)’F
D2(J)となる(ステップ1103)までDo(+)
とDs(J)のペアを出力する(ステップ1104)こ
とにより、DI(DとDl(j)が等しいようなすべて
のj vcツイて、Do (i)とo3(j)を出力す
ることができる。
上となるか(ステップ1106)またはDI(i)’F
D2(J)となる(ステップ1103)までDo(+)
とDs(J)のペアを出力する(ステップ1104)こ
とにより、DI(DとDl(j)が等しいようなすべて
のj vcツイて、Do (i)とo3(j)を出力す
ることができる。
DI(i)と02(j)が等しくない時には、f)+(
+)に等しいDlの要素が存在しないから、iを+1し
て(ステップ1107) iがN、よシ小さいならば(
ステップ1108)、ステップ11o2に戻ってDlの
次要素の処理を行なう。
+)に等しいDlの要素が存在しないから、iを+1し
て(ステップ1107) iがN、よシ小さいならば(
ステップ1108)、ステップ11o2に戻ってDlの
次要素の処理を行なう。
判定ステップ1108で、カウンタiがN1以上となっ
た時には、DIの全要素の処理を完了し、検索結果の出
力を終了する。
た時には、DIの全要素の処理を完了し、検索結果の出
力を終了する。
ベクトル処理部105での第11図のフロー・る(ステ
ップ805)。
ップ805)。
本実施例によれば、第9図で動作を説明したベクトル展
開部103によって、テーブルをベクトル形式に変換す
るので、第10図で示したベクトル型の二進探索のよう
に、ベクトル命令を有効に用いた高速処理が可能となる
。
開部103によって、テーブルをベクトル形式に変換す
るので、第10図で示したベクトル型の二進探索のよう
に、ベクトル命令を有効に用いた高速処理が可能となる
。
また、本実施例の処理手順によれば、アクセス単位がテ
ーブルおよびインデックスである、即ち、ローのアドレ
ス変換およびインデックス・ページのアドレス変換をベ
クトル展開部103の中で、ローとインデックス・ペー
ジのそれぞれについて一括してただ一度のみ行なうので
、従来のローあるいはインデックスページ単位のアクセ
スによるデータベース方式に比べてアドレス変換回叡を
太幅に削減できる。
ーブルおよびインデックスである、即ち、ローのアドレ
ス変換およびインデックス・ページのアドレス変換をベ
クトル展開部103の中で、ローとインデックス・ペー
ジのそれぞれについて一括してただ一度のみ行なうので
、従来のローあるいはインデックスページ単位のアクセ
スによるデータベース方式に比べてアドレス変換回叡を
太幅に削減できる。
本実施例におけるアドレス変換回数の削減効果を示すた
めに、検索費求701の従来の処理方式による処理例を
、第12図を参照しながら説明する。
めに、検索費求701の従来の処理方式による処理例を
、第12図を参照しながら説明する。
従来方式では、まずINDEX(1)を用いてTABL
E(1)のローのローIDを一つ取り出してアドレス変
換を施こし、そのローIDを有するローを取り出し、そ
のローのCLASSカラムの値Xを調べ(ステップ12
01〜1204)、次lI?:Xを比較キーとして、I
N D EX(2)内を、ルートページから順にイン
デックス・ページの変換を行ないながらリーフ・ページ
までXに従ってたどる(1205)ことによって、TA
BLE(2)のローであってそのCLASSカラム1直
がXに等しいものがあればすべて取り出して検索結果と
して出力する(ステップ1206〜1208)。
E(1)のローのローIDを一つ取り出してアドレス変
換を施こし、そのローIDを有するローを取り出し、そ
のローのCLASSカラムの値Xを調べ(ステップ12
01〜1204)、次lI?:Xを比較キーとして、I
N D EX(2)内を、ルートページから順にイン
デックス・ページの変換を行ないながらリーフ・ページ
までXに従ってたどる(1205)ことによって、TA
BLE(2)のローであってそのCLASSカラム1直
がXに等しいものがあればすべて取り出して検索結果と
して出力する(ステップ1206〜1208)。
以下、次に処理するT A B L E(1)のローを
取シ出した後(1209→1203,1209→121
0→1212→1203、または1209→1210→
1211→1213→1202→1203)、上記12
04〜1208の処理をINI)EMI)の全リーフ・
ページを探索しつくすまで繰シ返していた。
取シ出した後(1209→1203,1209→121
0→1212→1203、または1209→1210→
1211→1213→1202→1203)、上記12
04〜1208の処理をINI)EMI)の全リーフ・
ページを探索しつくすまで繰シ返していた。
すなわち、アドレス変換は、ローまたはインデックス・
ページ単位に必要になシ次第随時行なわれていた。
ページ単位に必要になシ次第随時行なわれていた。
第12図に示した従来方式(レコード単位のアクセス)
と、本実施例(テーブル・インデックス単位の一括アク
セス)との、それぞれにおけるアドレス変換回数の比較
を第13図に示す。
と、本実施例(テーブル・インデックス単位の一括アク
セス)との、それぞれにおけるアドレス変換回数の比較
を第13図に示す。
第13図において、NlはT A B L E(1)の
ロー数、N2はTABLE(2)のロー数、MlはI
N D EX(1)のページ数、M2はI N D E
X(2)のページ数、N3は検索結果の出力数である。
ロー数、N2はTABLE(2)のロー数、MlはI
N D EX(1)のページ数、M2はI N D E
X(2)のページ数、N3は検索結果の出力数である。
従って、従えば、一つの学級(CLASS)に−人の担
任教師(TEACHER)がおり、−学級(CLASS
)にU3O人の生徒がいるとすれば、教師の総数t−N
人とし、さらに1インデツクス・ページには、10個の
ローIDが格納されているとして、 N宜 =5 ON、N2 =N、Ns =5 ONとな
る。
任教師(TEACHER)がおり、−学級(CLASS
)にU3O人の生徒がいるとすれば、教師の総数t−N
人とし、さらに1インデツクス・ページには、10個の
ローIDが格納されているとして、 N宜 =5 ON、N2 =N、Ns =5 ONとな
る。
従って従来方式では
本実施例では
のアドレス変換が必要となシ、これは、N=100では
、従来方式が26860回、本実施例では5355回で
必シ、約115に削減される。
、従来方式が26860回、本実施例では5355回で
必シ、約115に削減される。
また、ベクトル展開部103で一度ベクトル化したテー
ブルを別の検索に対して用いる時には、該検索に対する
アドレス変換は全く不要となる。
ブルを別の検索に対して用いる時には、該検索に対する
アドレス変換は全く不要となる。
本実施例では、テーブルのベクトル化の際、全てのカラ
ム値のベクトルを作成したが、メモリの効率的利用のた
めに、第9図に示したベクトル展開部103のステップ
9041Cおけるカラム値ベクトル作成の代わシにスロ
ット・アドレスのベクトルを作成して、データ(カラム
値)のベクトルは作成せず、スロット・アドレス・ベク
トルを用いて、ローへのアクセスを行なっても良い。
ム値のベクトルを作成したが、メモリの効率的利用のた
めに、第9図に示したベクトル展開部103のステップ
9041Cおけるカラム値ベクトル作成の代わシにスロ
ット・アドレスのベクトルを作成して、データ(カラム
値)のベクトルは作成せず、スロット・アドレス・ベク
トルを用いて、ローへのアクセスを行なっても良い。
さらに、検索処理において必要なカラムにインデックス
が付与されている場合も例えば、’I”ABL玖2)の
CI、As Sカラムに対するINDEX(2)が存在
する場合、第9図のステップ903 、904を実行せ
ずに、エントリ内のキー値をそのエントリ内のローID
の個数分だけ連続アドレスに格納していくことによJ)
、Dzに等しいベクトルを作成でき、TABLEX2)
のベクトル化(ローIDの変換)は不要となる。
が付与されている場合も例えば、’I”ABL玖2)の
CI、As Sカラムに対するINDEX(2)が存在
する場合、第9図のステップ903 、904を実行せ
ずに、エントリ内のキー値をそのエントリ内のローID
の個数分だけ連続アドレスに格納していくことによJ)
、Dzに等しいベクトルを作成でき、TABLEX2)
のベクトル化(ローIDの変換)は不要となる。
この時、キー値に属するローIDのベクトルも同時に作
成しておけば、ベクトル処理部105における第11図
の処理の中で、TABLF&2)のTEACHERカラ
ム値(Dsの要素)が必要となった時、そのローIDを
アドレス変換して該カラム値を取シ出して出力すること
ができる。
成しておけば、ベクトル処理部105における第11図
の処理の中で、TABLF&2)のTEACHERカラ
ム値(Dsの要素)が必要となった時、そのローIDを
アドレス変換して該カラム値を取シ出して出力すること
ができる。
この方法によれば、第13図に示したTABLE(2)
に対して必要なアドレス変換回数は、N3回となυ、従
来方式と同一となる。
に対して必要なアドレス変換回数は、N3回となυ、従
来方式と同一となる。
この方法は検索出力N3が少ないと予想される時に有効
となる。
となる。
また、第9図に示したベクトル展開部103の動作では
、テーブルの全ローをベクトル展開したが、検索に全ロ
ーが不要な場合、例えば検索要求701で、T A B
L E(1)のCLA8Sカラムに対し、TABL玖
1)のCLASS (4という条件が付加されている際
には、INDEX(1)のり−7ページのうち、キー値
が4未満のリーフページに格納されているローIDのみ
を変換して、TABLII!1)を部分的にベクトル化
することも容易である。こうすれば、アドレス変換回数
およびメモリ使用量の削減をさらにはかれる。
、テーブルの全ローをベクトル展開したが、検索に全ロ
ーが不要な場合、例えば検索要求701で、T A B
L E(1)のCLA8Sカラムに対し、TABL玖
1)のCLASS (4という条件が付加されている際
には、INDEX(1)のり−7ページのうち、キー値
が4未満のリーフページに格納されているローIDのみ
を変換して、TABLII!1)を部分的にベクトル化
することも容易である。こうすれば、アドレス変換回数
およびメモリ使用量の削減をさらにはかれる。
本実施例では、アドレス変換回数の削減効果について説
明したが、データベース処理システムにおける、レコー
ドへのアクセスに伴なう種々の処理、例えば複数ユーザ
が同一レコードにアクセスする可能性のある場合のレコ
ードのロック処理や、アクセス中のページの主記憶上に
おける位置の固定処理なども、全く同様の一括化により
その回数が削減される。
明したが、データベース処理システムにおける、レコー
ドへのアクセスに伴なう種々の処理、例えば複数ユーザ
が同一レコードにアクセスする可能性のある場合のレコ
ードのロック処理や、アクセス中のページの主記憶上に
おける位置の固定処理なども、全く同様の一括化により
その回数が削減される。
以上述べた様に、本発明によれば、複数レコードに対す
るアドレス変換を一括して、各レコードに対しただ1度
行なうので、不要なアドレス変換がなくなシ、アドレス
変換回数が大幅に削減され、また、一括してアドレス変
換したレコード群をベクトル形式に展開しておくので、
ベクトル処理が可能で、処理の高速化が達成されるとい
う効果がらる。
るアドレス変換を一括して、各レコードに対しただ1度
行なうので、不要なアドレス変換がなくなシ、アドレス
変換回数が大幅に削減され、また、一括してアドレス変
換したレコード群をベクトル形式に展開しておくので、
ベクトル処理が可能で、処理の高速化が達成されるとい
う効果がらる。
第1図は本発明の一実施例を示すブロック図、第2図お
よび第3図は第1図のデータベースのデータ構造図、第
4図は第1図のI10バッファ領域401の詳細な構造
図、第5図はローのアドレス変換手順を示すフローチャ
ート、第6図はインデソクスベージのアドレス変換手順
を示すフローチャート、第7図は第1図の実施例で処理
される検索例を示す説明図、第8図は第7図の検索例を
処理する場合の第1図の検索処理制御部104の動作例
を示すフローチャート、第9図は第7図の検索例を処理
する場合の第1図中のベクトル展開部103の動作例を
示すフローチャート、第10図および第11図は、第7
図の検索例を処理する場合の第1図中のベクトル処理部
105の動作例を示すフローチャート、第12図は、第
7図の検索例を従来方式で処理する場合の処理手順を示
すフローチャート、第13図は、第7図の検索例の流側
における方式とで比較した説明図である。 101・・・主記憶、102・・・データベース処理プ
ログラム、103・・・ベクトル展開部、104・・・
検索処理制御部、105・・・ベクトル処理部、106
・・・作業領域、4O1・・・I10バッファ領域、1
08・・・二次記憶、109・・・データベース、11
0・・・中第Z口 暴3図 第4図 第6図 ・纂80 $70霞
よび第3図は第1図のデータベースのデータ構造図、第
4図は第1図のI10バッファ領域401の詳細な構造
図、第5図はローのアドレス変換手順を示すフローチャ
ート、第6図はインデソクスベージのアドレス変換手順
を示すフローチャート、第7図は第1図の実施例で処理
される検索例を示す説明図、第8図は第7図の検索例を
処理する場合の第1図の検索処理制御部104の動作例
を示すフローチャート、第9図は第7図の検索例を処理
する場合の第1図中のベクトル展開部103の動作例を
示すフローチャート、第10図および第11図は、第7
図の検索例を処理する場合の第1図中のベクトル処理部
105の動作例を示すフローチャート、第12図は、第
7図の検索例を従来方式で処理する場合の処理手順を示
すフローチャート、第13図は、第7図の検索例の流側
における方式とで比較した説明図である。 101・・・主記憶、102・・・データベース処理プ
ログラム、103・・・ベクトル展開部、104・・・
検索処理制御部、105・・・ベクトル処理部、106
・・・作業領域、4O1・・・I10バッファ領域、1
08・・・二次記憶、109・・・データベース、11
0・・・中第Z口 暴3図 第4図 第6図 ・纂80 $70霞
Claims (1)
- 【特許請求の範囲】 1、主記憶装置と、レコードに対する識別子と、該識別
子を、該レコードの該主記憶装置内での格納アドレスに
変換する手段とを有するデータベース処理システムにお
いて、参照されるレコード群全予測する手段を設け、該
レコード群に対応する識別子群を前記アドレス変換手段
によって一括して前記主記憶装置内での格納アドレス群
に変換することを特徴とするデータベース処理方式。 2、上記予測手段により得られた参照が予想されるレコ
ード群または該レコード群の上記主記憶装置内での格納
アドレス群を上記上記j1装置内にベクトル形式で展開
する手段を設け、該ベクトル形式で展開されたレコード
群またはアドレス群を、ベクトル命令により一括処理す
ることを特徴とする特許請求の軛囲第1項記載のデータ
ベース処理方式。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58242024A JPH0724036B2 (ja) | 1983-12-23 | 1983-12-23 | データベース処理方法 |
| US06/684,789 US4644471A (en) | 1983-12-23 | 1984-12-21 | Method for processing a data base |
| US07/015,694 US4785400A (en) | 1983-12-23 | 1987-02-17 | Method for processing a data base |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58242024A JPH0724036B2 (ja) | 1983-12-23 | 1983-12-23 | データベース処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60134945A true JPS60134945A (ja) | 1985-07-18 |
| JPH0724036B2 JPH0724036B2 (ja) | 1995-03-15 |
Family
ID=17083130
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58242024A Expired - Lifetime JPH0724036B2 (ja) | 1983-12-23 | 1983-12-23 | データベース処理方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US4644471A (ja) |
| JP (1) | JPH0724036B2 (ja) |
Families Citing this family (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4888690A (en) * | 1985-01-11 | 1989-12-19 | Wang Laboratories, Inc. | Interactive error handling means in database management |
| US5097408A (en) * | 1985-01-11 | 1992-03-17 | Wang Laboratories, Inc. | Apparatus for specifying a result relation in a relational database system by selection of rows |
| 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 |
| US4839799A (en) * | 1985-07-29 | 1989-06-13 | Hitachi, Ltd. | Buffer control method for quickly determining whether a required data block is in the buffer |
| JP2644728B2 (ja) * | 1986-01-27 | 1997-08-25 | 株式会社日立製作所 | データディクショナリ・ディレクトリシステム |
| US4967341A (en) * | 1986-02-14 | 1990-10-30 | Hitachi, Ltd. | Method and apparatus for processing data base |
| US4858146A (en) * | 1986-08-13 | 1989-08-15 | The Babcock & Wilcox Company | Automated design of structures using a finite element database |
| US5123103A (en) * | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
| US4918593A (en) * | 1987-01-08 | 1990-04-17 | Wang Laboratories, Inc. | Relational database system |
| US4791561A (en) * | 1987-04-17 | 1988-12-13 | Wang Laboratories, Inc. | Interactive construction of means for database maintenance |
| US4805099A (en) * | 1987-04-17 | 1989-02-14 | Wang Laboratories, Inc. | Retrieval of related records from a relational database |
| US5058000A (en) * | 1987-06-30 | 1991-10-15 | Prime Computer, Inc. | System for accessing remote heterogeneous database including formatting retrieved data into applications program format |
| US5072367A (en) * | 1987-10-01 | 1991-12-10 | International Business Machines Corporation | System using two passes searching to locate record having only parameters and corresponding values of an input record |
| US4884218A (en) * | 1987-10-01 | 1989-11-28 | International Business Machines Corporation | Knowledge system with improved request processing |
| US5008819A (en) * | 1987-10-07 | 1991-04-16 | Gorbatenko George G | Memory spaced array |
| ATE147523T1 (de) * | 1987-10-07 | 1997-01-15 | George G Gorbatenko | Speicherraumfeldanordnung zur speicherung von relationalen daten |
| JPH022459A (ja) * | 1987-12-11 | 1990-01-08 | Hewlett Packard Co <Hp> | 問合わせ処理方法 |
| US4961134A (en) * | 1988-07-15 | 1990-10-02 | International Business Machines Corporation | Method for minimizing locking and reading in a segmented storage space |
| US5247665A (en) * | 1988-09-30 | 1993-09-21 | Kabushiki Kaisha Toshiba | Data base processing apparatus using relational operation processing |
| US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
| US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
| US5222235A (en) * | 1990-02-01 | 1993-06-22 | Bmc Software, Inc. | Databases system for permitting concurrent indexing and reloading of data by early simulating the reload process to determine final locations of the data |
| US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
| US5272628A (en) * | 1990-04-16 | 1993-12-21 | Microsoft Corporation | Method and system for aggregating tables having dissimilar formats |
| US5287494A (en) * | 1990-10-18 | 1994-02-15 | International Business Machines Corporation | Sorting/merging tree for determining a next tournament champion in each cycle by simultaneously comparing records in a path of the previous tournament champion |
| GB2252853B (en) * | 1991-02-13 | 1994-06-01 | Fexco Management Services Limi | A data storage and retrieval apparatus |
| US5423038A (en) * | 1992-10-14 | 1995-06-06 | Davis; Marilyn | Specialized data management method |
| WO1995011487A1 (en) * | 1993-10-22 | 1995-04-27 | Fdc, Inc. | Database using table rotation and bimapped queries |
| WO1995012846A1 (en) * | 1993-11-02 | 1995-05-11 | Paracom Corporation | Apparatus for accelerating processing of transactions on computer databases |
| CA2130065C (en) * | 1994-08-12 | 1999-03-02 | Michael Joel Cincinatus | Utilizing pseudotables as a method and mechanism for providing database monitor information |
| US5819276A (en) | 1995-10-06 | 1998-10-06 | International Business Machines Corporation | Method for supporting multiple file-systems in file input/output operations |
| FR2791790B1 (fr) * | 1999-04-02 | 2001-06-22 | Bull Sa | Procede de preconditionnement et de codage d'une table de donnees, et procede de mise en oeuvre de requetes tabulaires sur une machine a capacites vectorielles |
| US6507846B1 (en) * | 1999-11-09 | 2003-01-14 | Joint Technology Corporation | Indexing databases for efficient relational querying |
| US6275822B1 (en) * | 1999-11-09 | 2001-08-14 | Joint Technology, Corporation | Maintaining very large indexes supporting efficient relational querying |
| US6701424B1 (en) * | 2000-04-07 | 2004-03-02 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
| US6938031B1 (en) * | 2001-10-19 | 2005-08-30 | Data Return Llc | System and method for accessing information in a replicated database |
| US20040223292A1 (en) * | 2003-05-05 | 2004-11-11 | Murphy David Mark Anthony | Interconnection of software and consumer electronics functional modules in multifunction devices |
| US7734581B2 (en) * | 2004-05-18 | 2010-06-08 | Oracle International Corporation | Vector reads for array updates |
| US20060059135A1 (en) * | 2004-09-10 | 2006-03-16 | Eran Palmon | Conducting a search directed by a hierarchy-free set of topics |
| US20100241638A1 (en) * | 2009-03-18 | 2010-09-23 | O'sullivan Patrick Joseph | Sorting contacts |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5621273A (en) * | 1979-07-27 | 1981-02-27 | Fujitsu Ltd | Data base processing system |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS583031A (ja) * | 1981-06-30 | 1983-01-08 | Fujitsu Ltd | リレ−シヨナル・モデルにおけるジヨイン演算処理方式 |
| US4631664A (en) * | 1983-07-19 | 1986-12-23 | Bachman Information Systems, Inc. | Partnership data base management system and method |
-
1983
- 1983-12-23 JP JP58242024A patent/JPH0724036B2/ja not_active Expired - Lifetime
-
1984
- 1984-12-21 US US06/684,789 patent/US4644471A/en not_active Expired - Lifetime
-
1987
- 1987-02-17 US US07/015,694 patent/US4785400A/en not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5621273A (en) * | 1979-07-27 | 1981-02-27 | Fujitsu Ltd | Data base processing system |
Also Published As
| Publication number | Publication date |
|---|---|
| US4644471A (en) | 1987-02-17 |
| JPH0724036B2 (ja) | 1995-03-15 |
| US4785400A (en) | 1988-11-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0724036B2 (ja) | データベース処理方法 | |
| US7831626B1 (en) | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node | |
| US5995962A (en) | Sort system for merging database entries | |
| US7603346B1 (en) | Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein | |
| US8224861B2 (en) | Coupled node tree splitting/conjoining method and program | |
| JPH083817B2 (ja) | データベース検索方法 | |
| JPH11212980A (ja) | インデクス作成方法および検索方法 | |
| US7653619B1 (en) | Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height | |
| KR100289331B1 (ko) | 고차원 색인 구조의 동시성 제어 방법 | |
| US8086641B1 (en) | Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same | |
| US7987205B1 (en) | Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations | |
| US20090234852A1 (en) | Sub-linear approximate string match | |
| US7725450B1 (en) | Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations | |
| US7953721B1 (en) | Integrated search engine devices that support database key dumping and methods of operating same | |
| CN111522820A (zh) | 数据存储结构、存储检索方法、系统、设备及存储介质 | |
| CN119128042A (zh) | 基于字典树的AI大模型Tensor索引和保存方法、系统及应用 | |
| JPH09305622A (ja) | 文書検索機能を有するデータベース管理方法およびシステム | |
| WO2012061983A1 (en) | Seed set expansion | |
| JP3288063B2 (ja) | 可変長データの格納および参照システム | |
| JPS63118958A (ja) | 索引フアイル記憶装置 | |
| Du | Binary search in a multiprocessing environment | |
| JPH0330066A (ja) | 情報検索方式 | |
| JPS61141035A (ja) | デ−タ検索方式 | |
| JP2006146355A (ja) | 類似文書検索方法および装置 | |
| JPS6143338A (ja) | 連想技術を使用して稀薄なデータベースをサーチする方法 |