JPS63131227A - デ−タ処理方式 - Google Patents

デ−タ処理方式

Info

Publication number
JPS63131227A
JPS63131227A JP61276555A JP27655586A JPS63131227A JP S63131227 A JPS63131227 A JP S63131227A JP 61276555 A JP61276555 A JP 61276555A JP 27655586 A JP27655586 A JP 27655586A JP S63131227 A JPS63131227 A JP S63131227A
Authority
JP
Japan
Prior art keywords
row
column
ids
value
columns
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.)
Pending
Application number
JP61276555A
Other languages
English (en)
Inventor
Akira Yamamoto
彰 山本
Tadashi Osone
匡 大曽根
Masashi Tsuchida
正士 土田
Hiroyuki Kitajima
北嶋 弘行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61276555A priority Critical patent/JPS63131227A/ja
Publication of JPS63131227A publication Critical patent/JPS63131227A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、リレーショナル・データベースにおいて、同
一ローの異ったカラム間の結合処理に関する。
〔従来の技術〕
本発明は、リレーショナル・データベース演算において
、カラム・ワイズに格納したテーブルのカラム間のつき
合せ高速に処理する方式に関する。
リレーショナル・データベースは、テーブルと称する2
次元マトリクスのデータ構造を持つデータの集合である
。この中で、テーブルの横の部分がローと呼ばれ、通常
のファイルのレコードに相当し、縦の部分がカラムと呼
びれ1通常のファイルのフィールドに相当する。
この場合、テーブルを補助記憶装置に格納する型式とし
ては、同一ローに属する値の集合をまとめて格納するロ
ー・ワイズ型式と同一カラムに属する値をまとめて格納
するカラム・ワイズ型式の2種類がある。どちらの格納
型式が効率的であるかは、アクセス・パターンにより異
り、一方に決定することはできない。
本発明では、カラム・ワイズに格納したテーブルにおけ
るデータベース(DBと略す)処理を扱う。
カラム・ワイズにデータを格納した場合、各カラムごと
に、値とロー識別子(IDと略す)のペア情報が1つの
エントリとしてディスク上に格納される。
リレーショナル・データベースにおける最も属性的な演
算の1つにセレクションと呼ばれる演算がある。これは
、例えば、あるテーブルのカラムAが100以上でカラ
ムBが50以下のローの集合を求めるというものである
この場合、まず、カラムへの情報をディスク装置から読
み出すとする。これらの情報に対し、指定された演算を
施すと、カラムAの値が100以上のイ16であるロー
IDとこのローIDの実際のカラム値の集合が得られる
ことになる。次に、カラムBの情報をディスク装置から
読み出す。これらの情報に対して指定された演算を施す
と、カラムBの50以下の値であるローiDとこのロー
IDの実際のカラム値の集合が得られることになる。
この時、カラムAに関する条件を満足するローIDの集
合とカラムBに関する条件を満足するローIDの集合共
通に含まれるローIDの集合が求めるローIDの集合と
いうことになる。さらに、テーブルを構成するカラムA
、カラムB以外のカラムの情報も取り出す必要がある。
例えば、カラムCの場合、カラムC全体の情味の中から
、カラムAとカラムBの条件をみたすローIDの集合と
それぞれのローIDが有するカラムCの値を取り出す必
要がある。以上の処理をカラムC以外のカラムに対して
も実行する必要がある。
従って、カラム・ワイズに格納されたテーブルのDB処
理においては、ローIDの集合とローIDの集合のつき
合せ処理が非常に多く発生する。
つき合せ処理は、そのまま実行するとそれぞれの集合に
属するローIDの個数をM個、N個とするとMXNのオ
ーダの処理量を必要とする。これは非常に多くの処理量
となる。一方、前もって、それぞれのローIDをソーテ
ィングしてからローIDのつきあわせ処理を開始すると
処理量のオーダを、M Q ogM + N Q og
Nにまで減じることができる。
従って、第5世代コンピュータ機構のDBマシン・デル
タ(Dslta)では専用のソート・エンジンにより、
ローIDのソーティングを行ってから。
つき合わせ処理に入る方式をとっている。
しかし、ソート処理は専用エンジンを使用しても負荷の
多い処理である。特に、セレクション指定のないカラム
に関しては、テーブル全体のロー数に等しいローIDの
ソート処理が必要となるため、処理量が大きくなる。
これに対して、ハツシュ関数を利用する方法もある。こ
の手法は、テーブルとテーブルのジョイン処理に用いら
れている。テーブルとテーブルのジョイン処理の際には
、ローIDのつき合せ処理ではなく、カラム値どうしの
つき合せ処理が必要となる。ハツシュ処理は1つのロー
ごとに実行することが可能であるため、データ転送処理
と回期して実行可能である。
ICL社のデータベースマシンCAFSでは、ジョイン
処理の際、ハッシュ・ビット・アレイという方式を用い
ている。これは、一方のテーブルの条件を満たしている
ローのジョイン対象カラムの値の集合の値のそれぞれに
対し、ハッシュイング関数を適用する。具体的にはハツ
シュ関数の結果の定義域をMとするとMビットのアレイ
を用意し、あらかじめ、すべてのビットを′0′にして
おく。このアレイをT、ハツシュ関数をf、カラム値を
nとすると。
T(f(n))←“1′        ・・・(1)
という操作をすべてのカラム値に対して実行する。
次に、もう一方のテーブルを読み出す際には。
ジョイン対象となるカラムのカラム値をとりだし。
以下のチェックを行う、この時のカラム値をmとする。
T(f(m))”Oor  T(f(m))=1  −
(2)この時、T(f(m))=Oであれば、このロー
は選択の対象とせず、T(f(m))=1となるローの
みを選択対象とする。
この時、ジノニウムの発生が問題となる。これは、カラ
ム値が異っても、関数適用の結果が等しくなるというも
のである。これは、カラム値の分布により発生するもの
で、ジノニウムの発生を少なくするような関数の設定は
事実上困難であるという問題があった。
一方1発明者らは、特願昭61−28807の中で、一
方のテーブルの条件を満足するローのジョイン対象とな
るカラムの値の集合をソートしておき、もう一方のテー
ブルをディスク装置から転送する際、このデータ転送処
理と同期して、ジョイン・カラムの値をソートされた情
報の間でバイナリ・サーチ処理を行う方式を提案してい
る。
しかし、CAFSや特願昭61−28807で対象とし
ているのはテーブルのジョイン処理に関する方式であり
、カラム・ワイズに格納されたテーブルにおけるローI
D処理を対象としたものではない。
〔発明が解決しようとする問題点〕
第5世代コンピュータ機構で研究開発したDBマシンデ
ルタ(Delta)はカラム・ワイズに格納されたテー
ブルを扱っているため、ローIDのつきあわせ処理が頻
繁に発生する。Deltaでは専用ソート装置により、
ローIDのつきあわせ処理を実行している。しかし、専
用エンジンを用いるとはいえ、ソート処理は負荷量の多
い処理である。
一方、ICL社のCAFSではジョイン処理に対してハ
ッシュ・ビット・アレイ方式を適用して、ジョイン対象
となるカラムに関する選別処理を行っている。また、発
明者らは、特願昭61−28807において、2分検索
専用のハードウェアを用いて。
ジョイン対象となるカラムどうしのつき合せを行ってい
る。しかし、以上の技術は、ジョイン処理において、ジ
ョイン対象となるカラムに関する演算処理である。
本発明は、ローIDのつき合せ処理をデータ転送と同期
して、専用ハードウェアで実行し、見かけ上データ転送
時間だけでこれらの処理を完了させるものである。
〔問題点を解決するための手段〕
本発明は、ローIDのつきあわせ処理をデータ転送と同
期して実行する方式に関し、基本的には、従来のジョイ
ン処理において用いられている手法を応用する。
ハッシュ・ビット・アレイ方式は、ハツシュ関数を用い
るため、ジノニウムの発生が問題となるため、ジノニウ
ムの発生が少ないハツシュ関数の設定が重要である。し
かし、ジノニウムの発生はハッシュイングの対象となる
値の分布により定まるため、従来技術であるジョイン処
理適用時には、ジョイン対象となるカラム値の分布によ
りハツシュ関数を変更したり、カラム値の分布などを知
る必要があり、実システムへ適用する際の大きな障害と
なっていた。
しかし、本発明の対象となるローIDの場合には、ロー
IDのつけ方は各DBMSにおいて一様であるため、カ
ラム値の分布も既知であり、ハツシュ関数も1つ用意す
ればすむ、しかし、ローIDのつけ方は1例えば、1番
から順につけていくなという比較的単純なケースが多い
ため、特定のビットを取り除くなという簡単な操作で関
数適用後の値をランダマイズすることが可能である。
ランダマイズ可能となる場合には、ジノニウムの発生は
少ないということは周知の事実であるため。
ローIDのつき合せ処理には、ハツシュ関数を用いた方
式が向いていると考えらる。
さらに、CAFSで採用されている方式では、単にロー
を選別しているだけで、実際にどのローとどのローを結
合するなどという情報はCAFSでは作成しない、また
、ローの結合処理はCPU側で行なわれるが、具体的な
方式については触れられていない。本発明では、単に1
選別を行うだけでなくどの日−IDとどのローIDを結
合するかを、判別するための補助情報も、データ転送と
同期して作成する。
一方、発明者らは、特願昭61−28807の中で、一
方のケーブルのジョイン対象となるカラムの値をソート
しておき、もう一方のテーブルを転送する際に、このデ
ータ転送と同期して専用の2分検索エンジンにより、異
ったテーブルのローどうしの結合情報を作成する方式を
提案している。本方式はローIDの結合の際にも適用可
能であり、あるカラムに関する条件を満足したローID
の集合をソートしておき、別のカラムの値とローIDか
ら構成される情報をディスクから転送する際、ローID
の結合情報を作成することができる。
本発明は基本的には、カラム・ワイズに格納されたテー
ブルにおけるローIDの結合情報作成に関するものであ
るが、ロー・ワイズに格納されたテーブルのあるカラム
に対して付けられたインデクス処理に対しても有効であ
る。インデクスは、カラム値とローIDからなる情報を
バイヤー ツリー(B−tree)化したものであるた
め、インデクスを全体検索することは、カラム・ワイズ
に格納されたテーブルにおいて、あるカラムに関して、
カラム値とローIDからなる情報をすべてのローに対し
て検索することと等価である。従って、検索対象となる
すべてのカラムにインデクスが付けられていれば、本発
明は、ローワイズに格納されたテーブルの検索処理に対
しても適用できる。
〔作用〕
本発明は、データ転送と同期して、カラム・ワイズに格
納されたデータベースにおいて、同一ローの異ったカラ
ム間のつきあわせ情報をデータ転送中に作成する方式に
関する。
基体的には、ハツシュ関数によりフィルタリングを行う
機構(ハッシュ・ビット・アレイ)を■10系に設けた
DBマシン内に設青し、最初に転送したカラム値のロー
IDの集合からハッシュ・ビット・アレイを作成し、こ
れを次のカラム値十ローIDから成るデータを流す際に
、ローIr)のフィルタリングを行い、ローIDとロー
IDの結合情報を作成する。
あるいは、DBマシン内に2分検索用のハードを設け、
ローID情報と直接比較処理を行って、ローIDのフィ
ルタリング処理を行い、ローTDとローIDの結合情報
を作成してもよい。
〔実施例〕
以下1本発明の詳細な説明する。第2図は。
本発明の実施対象となる計算機システムの構成である。
計算機システムは、CPU10.主記憶装置11.チャ
スル12.DBマシン13.制御装!1T14.1個以
上のディスク装置15から構成される。
本実施例では、二次記憶装置をディスク装置15とした
が、別に他の装置の場合でも有効である。DBマシン1
3が本発明の対象となるDB演算の大半を実行する。本
実施例では、DBマシン13をチャネル12と制御表[
14の間に置いたか、ディスク装置15と主記憶11の
間の任意の位置でよく、また、任意の装置内にこのDB
マシン13の機能を組み込んでもよい。また、本実施例
では、チャネル12以下の構成を1系列にしたが、チャ
ネル12.DBマシン13.制御装置14などは、計算
機システムの中に複数個存在してよい。さらに、複数の
CPUを有する計算機システムの場合にも本発明は有効
である。
第1図には、この計算機システムのソフトウェア構成を
示す、ソフトウェアは、CPUl0.及び、主記憶11
側に存在する。ソフトウェアは、RDBの管理を行うR
DBMS (ソレーショナルデータベース マネジメン
ト・システム:Re1ational Databas
e Management SyStem)20 。
RDBMSに対してAP(アプリケーション プログラ
ム: Applicatj、on Program) 
2 L、ハードウェア装置、計算機システムなどのIR
理などを行なうOS(オペレーティング システム: 
OperatingSystem) 22が存在する。
ただし、RDFIMS20.がハードウェア装置などの
管理機能を持てば0822存在しなくともよい。また、
AP21は別装置に存在してもよい。ただし、この場合
には、別’!A71のAP21との通信を行う通信管理
プログラムがCP U 10及び主記憶11側に存在す
るものとする。
AP21は808MS20に対して、D B演算要求を
発行する。RDnMS20はAP21から受は取ったD
B演算要求を調べ、DBマシン13に実行させるべき処
理を決定し、この処理要求をDBマシン13に発行する
808MS20で扱うデータは第3図に示す様に、マト
リクス状のテーブル30(通常のファイル)の集合であ
る。テーブル30はN組のカラム32から構成されるロ
ー31より構成される。各ロー31の同じカラム32の
値は同じ定義値を持つ。
例えば、0番めのカラム32が国名を表すとすると、各
ローのこのカラム32の値は、′米国′とか1日本′と
いった値となる。
808MS20に対する最も典型的な処理要求は、あめ
条件を満足したローの集合の中から特定のカラムを取り
出し、もとのテーブルの部分集合からなるテーブルを作
成する。この例を第4図に示す。
第4図の例は、カラムA40(商品名)がボルトである
ローの集合から、カラムA40とカラムB41 (店主
名)を切り出す処理である。検索結果は、検索結果テー
ブル42という形で表われされる。
計算機システムの記憶装置は1次元の装置であるために
、主記憶11上に格納する場合も、ディスク装置上に格
納する場合も、ロー・ワイズにテーブルを格納するか、
カラム・ワイズにテーブルを格納するかを決定する必要
がある。第5図は、これを示したものである。
第5図(a)は、テーブルをロー・ワイズに格納したも
ので、同一ローの各カラムのバリューを連続した領域に
格納するものである。この際、それぞれのバリューに対
応して、このバリューがどの方ラム31のバリューであ
るかと示すカラムIDがつけられる。
第5図(b)は、テーブルをカラム・ワイズに格納した
もので、同一カラム32の各ローのバリューを連続した
領域に格納するものである。この際、それぞれのバリュ
ーに対応してどのロー30のバリューであるかを示すロ
ーIDが付けられる。
通常、テーブルを構成するカラムの数は多くとも数10
0件であり、テーブル3oをロー・ワイズに格納した場
合、すべてのロー31の情報を同じカラム32順に並べ
ることは比較的容易である。
一方、テーブル30を構成するロー31の数は。
数10万件になる場合もまれでないため、カラム・ワイ
ズにテーブル30を格納する場合、すべてのカラム32
の情報を同じロー31順に並べることば困雛である。
一般に、テーブル30をロー・クイズに格納する方が効
率がよいか、カラム・クイズに格納する方が効率がよい
かはアクセス・パターンによって決定する。
従って、ロー・ワイズの格納型式を採用しているDBM
Sもカラム・ワイズの格納型式を採用しているDBMS
も世の中には存在する。
テーブルをディスク装置15上にロー・ワイズに格納す
ると条件を満たすロー31を見い出すためには、テーブ
ル30全体を主記憶に転送する必要がある。従って、こ
れを防止するため、頻繁に条件指定されるカラム32に
はインデクスが作成されろ。インデクスは、すべてのロ
ー31のインデクス作成対象となっているカラム32の
バリュー33とローID51のペア情報を、バリュー3
3Jli’iにソートし、B−tree化したものであ
る。
このため、インデクスを全件検索することは、カラム・
ワイズに格納されたテーブルのある1つのカラム32全
体を検索することと等価となる。従って、切り出しの対
象となるすべてのカラムに対してインデクスが付けられ
ている時には、カラム・ワイズに格納されたテーブル3
0に対する検索処理と等価な検索処理が可能である。
次に、カラム・ワイズに格納されたテーブル30に対す
る処理方式例について述べる。ここでは、第4図に示し
た例を用いる。
まず、カラムA40に関する検索を行い、カラムA40
の値がボルトであるローrD51の集合をうる。次に、
カラムBの検索を行うが、この時、カラムBに関するバ
リュー33+ローID51の集合の中で、選択の候補と
なるものは、カラムAの条件を満足するローID51を
有するバリュー33+ローID51の集合である。従っ
て、カラムAの条件を満足するローID51の集合とカ
ラムBのすべてのローID51の集合とのつき合せ処理
を行い、どのカラムAのバリューとどのカラムBのバリ
ューを結合すべきかを判別する必要がある。
ソーティングを行なわないで、あるローIDの集合とロ
ーIDの集合の共通集合を求めようとすると処理のオー
ダは、(ローI D)”必要とする。
ソーティングを行うと(ローID)XQog(ローID
)のオーダとなるため、ローIDのつき合せ処理を行う
際には、しばしばソーティングが用いられる。しかし。
この場合、カラムAに関しては、条件を満足したローI
Dの集合のみをソート対象とするためそれほど問題ない
が、カラムBに関しては、テーブル3oのロー31数に
等しいローID51のソート処理を実行しなければなら
ないので、非常に処理量が大きくなる。
本発明では、ローID51のつき合せ処理を、二次記憶
装置からのデータ転送と同期して実行する方式、及び、
装置に関する0本発明では、2つのつき合せ方式を発明
の対象とする。
第1の方法はハッシュ・ビット・アレイ方式に基づく方
法である。ハッシュ・ビット・アレイ法は、CAFSで
ジョイン処理の際、ジョイン・カラムに対して用いられ
ているが、ジノニウムを少なくするために、ジョイン・
カラムの値の分布によって適切なハツシュ関数の選択が
必要であり、この点で問題であった。しかし、ローID
51の場合は、通常、単純に1番から順につけらていく
ことが多いため、適当なビットを取り除くことにより、
ランダマイズすることができる。また、CAFSでは、
単にロー31を選別するのみで。
異ったテーブルのどのロー31とどのロー31をジョイ
ン対象とするかという情報は作成していない。また、C
PU側でこれらのジョイン処理を基体的にどのように行
うかについては述べていない。
本発明では、この点についても考慮する。
以下、ハツシュ−ビット・アレイ方式について述べる。
基本的には、Nビットのハッシュ・ビット・アレイを作
成する。T (N)をNビットのハッシュ・ビット・ア
レイとする。ハツシュ関数を、fとする。第4図に示し
た例では、まず、カラムAの条件を満足するバリュー3
2とローID51の集合が得られる。第11図(a)に
示すように、この集合を6120とし、集合の元(この
場合。
1組のバリュー33十ローID51)の数をに個とする
。δ、V121をバリュー33.δ、工122をローI
D51、それぞれの集合とする。
以下、δ、Iに属するローID51の集合すべてに対し
、あらかじめすべてのビットをクリアしたT (N)に
対して、以下に示す演算を施す。
T(f(δ、 L (k) )←1      ・・・
(3)(k=1.・・・・・・、N) (3)式により、ハッシュ・ビット・アレイが完成され
る。この場合、カラムB41を読み出した時、カラムB
41のバリュー33十ローID51の集合の中で、ロー
ID51が次式を満たさなければ、このローID51は
カラムA40に関して条件を満足するローIDの集合に
は、属する可能性は全くないため、主記憶11までこの
情報を送る必要はない。
T(f(ローID))=1        ・・・(4
)ジョイン処理を対象としたCAFSなどのハッシュ・
ビット・アレイ方式では、同様にジョイン対象となるカ
ラム32のバリュー33にハツシュ関数を適用し1次式
を満たさないロー31は主記憶に送らないようにしてい
る。(CAFSでは、ロー・ワイズに格納されたテーブ
ル30を取り扱いの対象としている。) T(f(バリュー))=1       ・・・(5)
しかし、CAFSに関する公知例は、以上の内容で、実
際にどのロー31とどのロー31を結合させるかに関す
る処理方式は特に関与していない。
この場合、ローID51のつき合せを行い、同じローI
D51を有するカラムA40のバリュー33とカラムB
41のバリュー33を結合させ、フィルタリング結果4
2を作成するためには、以下の様なことを可能にする必
要がある。
(1)ジノニウムの発生をチェックできる。
(2)カラムBのあるローID51+バリユー33が与
えられた時、同じローID51を有するカラムAのバリ
ュー33を高速にみつけることができる。
第11図の(b)は、(1)、(2)の条件をみたすデ
ータ構造を示す、ハツシュ・ポインタ・アレイ123は
、N個のポインタを格納するアレイである。ローIDポ
インタ124+次ポインタ125は、1つのペア情報で
ある。この場合、ローIDポインタ124がある1つの
ローID51をポイントするため、ハツシュ・ポインタ
・アレイ123のn番めのポインタから次ポインタ12
5をたどることにより参照されるローIDポインタ12
4の集合がさし示すローID51の集合か、カラムA4
0の条件を満たすローID51の集合のうちf(ローI
D)がnとなるローIDの集合となるようにする。これ
により、カラムBに関するあるバリュー33十ローID
51が与えられた時、ハツシュ・ポインタ・アレイ12
3のf (ローID)番目のポインタを次ポインタ12
5が空となるまでたどり、この間のローIDポインタ1
24が指すローID51の集合の中に該当するローID
51があるかを確かめる。存在しない場合には、このバ
リュー33+ローID51は選択の必要がないことにな
る。一方、同じローTD51が見つかった時には、この
ローID51に対応するカラムAのバリュー33も見つ
かるため、ローID51が等しいカラムB41のバリュ
ー33とカラムAのバリューを結合できる。
次に、ローID51のソート情報を用いて2分検索を行
う方式について述べる。この場合は、カラムAの条件を
満足するバリュー33+ローID51の集合内のローI
Dのソート結果を用いて。
DBマシン内で、カラムBに関するバリュー33+ロー
ID51の集合をフィルタリングする。この場合、カラ
ムB内のそれぞれのローID51を取り出し、ローID
51のソート情報との間で2分検索を行い、一致したも
ののみ、バリュー33+ローID51をCPU10側に
送る。この時、何番めのソート情報と一致したかという
一致情報をつける。この後、CPU側で、カラムA40
とカラムB41のつき合せ処理を行う。
以下、各部の処理フロー図を説明する。
まず、C:PUlの側の処理フローを説明する。
第6図は、ハッシュ・ビット・アレイ方式を用いる場合
の、処理フロー図である。
ステップ600は、他のカラム32の条件を満たしたロ
ーID51の集合より、ハツシュ・ビツト・アレイTz
(N)の情報作成、異なったカラム32のバリュー33
と結合するためのハツシュ・ポインタ・アレイ123な
どの情報を作成する。
次に、ステップ601では、DBマシン13に検索要求
を発行する。この時、DBマシン13に対しては、ステ
ップ600で作成したハッシュ・ビット・アレイTz(
N)、及び、検索対象となるカラムに対して付加された
条件式、この条件式とこれ以外の条件式との論理関係(
アンドかオアかということ)などを送り、DBマシン1
3からの検索結果が帰ってくるのを待つ。
ステップ602では、DBマシンのフィルタリング結果
と、ハツシュ・ポインタ・アレイ123などの情報に基
づき、ジノニウムの発生をチェックし、他のカラムとの
結合情報を作成する。
次に、ローID51のソート情報を用いる場合について
、第7図を用いて説明する。ステップ700は、他のカ
ラムの条件を満たしたローID51の集合のソート処理
を行う。
ステップ701では、DBマシン13に検索要求を発行
する。ステップ601と異なるのは、ハッシュ・ビット
・アレイのかわりにローID51のソート情報を送るの
が異るのみで片は、同様である。ステップ702では、
フィルタリング結果と他のカラム31との情報に基づき
、結合処理を行う。
以下、DBマシン側の処理の流れについて述べる。第8
図は、DBマシンの樋成図である。プロセッサ80は、
チャネル12、制御装置14とのインターフェイス、基
本的なりB演算を実行する。
データ転送装置81は、制御装置14との間のデー転送
を行う。プロセッサ用メモリ82はプロセッサ80用の
メモリである。
専用エンジン用メモリ85には、ハッシュ・ビット・ア
レイ方式によりローID’51をフィルタリングする場
合には、ハッシュ・ビット・アレイを格納する。一方、
ソートされたローID51の集合と2分検索処理を行う
場合、ソートされたローID51の集合を専用エンジン
用メモリ55に格納する。
ハツシュ・エンジン86は、ハツシュ関数演算を実行し
、ハッシュ・ビット・アレイ内の対応ビットが1かOか
を判別する。ハツチド・サーチ・エンジン87は、2分
検索処理を行う専用ハードウェアである。
共通メモリ88は、プロセッサ80、データ転送装置8
1により共にアクセスされる情報である。
共通メモリ88に格納される情報を第9図に示す。検索
筒rIfi90はディスク装置16の中の検索対象とな
る装置の識別子とこの装置の中の実際に検索すべき範囲
を表す、テーブルID91.カラムID92は検索対象
となるテーブル30、カラム31の識別子である。条件
式93は、ローID51に関するフィルタリング以外に
、このカラム31のカラム値に対して指定した条件1例
えば。
カラム値が10以下であるという条件式を表す。
論理式94は、ローIDに関するフィルタリングと条件
式93で示した他の条件式とのアンド、オアの論理式を
表わしたものである。
フィルタリング・タイプ95は、ローID51のフィル
タリングをハッシュ・ビット・アレイで行うか、2分検
索で行うかを示す、情報数910は、ハッシュ・ビット
・アレイ方式の場合、アレイのビット数、2分検索で処
理する場合、ソートされたロー1051の個数を表す。
フィルタリング結集格納領域96は、論理式94に示さ
れた論理条件を満たしたローID51+バリユー33の
ペア情報を格納する領域である。
入カバツファA97.入カバツファ898はディスク装
置16から読み出した1つのブロックのデータを格納す
るバッファである。バッファを2面設けた理由はディス
ク装置16からのデータ転送とDB演算を並行して行う
ためのである。
以上、プロセッサ80の処理フローを説明する。
プロセッサ80は本発明の対象となる処理以外の処理が
可能であってもよいが、ここでは本発明の対象となる部
分について述べる。
第10図はプロセッサ80の処理フロー図である。プロ
セッサ80は、チャネル12から検索要求を受は取った
時に動作を開始する。まず、ステツブ11oOで、検索
情報と共通メモリ87内の所定の場所、例えば、検索範
囲に関する情報は、検索範囲90に設定する。さらに、
ハッシュ・ビット・アレイ、あるいは、ローID51の
ソート情報を専用エンジン用メモリ85に格納する。
ステップ1101では、検索筒VIi90より得た情報
により、制御装置14を通じて、該当するディスク装置
にシーク・サーチ要求が完了するのを待つ、これが完了
すると、ステップ11o2では。
1ブロツクのデータ転送要求をデータ転送装置81に対
して発行する。
ステップ1103では、1ブロツク分のデータ転送処理
が完了するのを待つ、これが完了すると、ステップ11
04で、すべての検索範囲のデータ転送が完了したかを
チェックし、これが成立しない場合には、ステップ11
05で次のブロックの転送要求をデータ転送装置81に
対して要求する。
次に、転送の完了した1ブロツク分のDB演算処理を実
行する。
ステップ1106では、1つのローID51を取り出し
、ハッシュ・ビット・アレイ方式でローID51のフィ
ルタリングと行う場合にはハツシュ・エンジン86へ、
2分検索によりローID51のフィルタリングを行う場
合にはハツチド・サーチ・エンジン87に、ローID5
1を渡し、それぞれのエンジンが処理を終了するのを待
つ。
これが帰ってくると、ステップ1107では条件式93
で指定されたカラム値に関する条件式を実行する。ステ
ップ1108では、以上の結果と論理式94より1選択
の可否を決定し、選択する場合、ローID51+バリユ
ー33のペア情報をフィルタリング結果格納領域96に
格納する。
ステップ1109では、ブロック内のすべての演算が終
了したかをチェックする。これが成立しなければ、ステ
ップ1106ヘジヤンプし、演算を続行する。これが、
成立した時には、ステップ1110で、すべての検索範
囲のDB演算処理が終了したかをチェックする。これが
成立しなければ、ステップ1103ヘジヤンプする。こ
れが成立し、すべての検索範囲の検索処理が終了すると
ステップ1111で、フィルタリング結果格納領域96
内のフィルタリング結果をチャネル12に送り、処理を
終了させる。
以上は、カラム・ワイズに格納されたテーブル30に対
する検索処理であるが、すでに述べたように、ロー・ク
イズに格納されたテーブル30に対して付けられたイン
デクスのリーフ・ページに対する検索処理にも適用可能
である。
インデクスのリーフ・ページの場合は、第12図(a)
に示したようにバリュー33が格納順序にソートされて
いる。ただし、本発明では、特に。
バリュー33がソートされているかどうか関係ないため
、以上述べた方式を特に変更する必要がない、ただし、
(b)に示したように、異ったロー31が同一のカラム
値を持つ時、バリュー33の重複排除が行なわれ、1つ
のバリュー33に対して、複数のローID51を格納す
る格納型式をとる場合もある。この場合には、プロセッ
サ80゜CPU側のソフトウェアをこの格納型式用に若
干変更すれば、対撚可能である。ローID個数140は
、同一バリュー33を有するローID51の個数である
〔発明の効果〕
ヒツト率が高く、テーブルの全体検索を行う場合には、
カラム・ワイズにテーブルを格納した方が、取り出すカ
ラムのみを転送すればよいため、データの転送量は、ロ
ー・ワイズにテーブルを格納するより少なくでき、効率
を高められる6本発明によれば、データ転送と同期して
、そのカラムにつけられた条件式を満たすかどうかを調
べ、かつ、他のカラムの条件を満たしたローIDの集合
とのつき合せ処理を行うため、CPU側に負荷をほとん
どかけることなく条件を満たす結果を得ることができる
0例えば、カラム長が等しい10個のカラムのうち2個
が取り出しの対象となっている時には経過時間を約17
5にすることができる。
また、本発明はローワイズに格納されているテーブルに
付けられているインデクスに対しても適用可能で、同様
の効果を得ることができる。
【図面の簡単な説明】
第1図は本発明の対象となる計算機システムの構成を示
すブロック図、第2図は本発明の対象となる計算機シス
テム上のソフトウェア構成を示すブロック図、第3図は
テーブルの構成を示す説明図、第4図はフィルタリング
処理例を示す説明図。 第5図はロー・ワイズ格納型式とカラム・クイズ格納型
式の例示図、第6図は本発明の実施例におけるハッシュ
・ビット・アレイ方式を用いる場合のCPU側ソフトウ
ェアの処理フロー図、第7図は本発明の実施例における
ローIDのソート情報を用いる場合のCPU側のソフト
ウェアの処理フロー図、第8図はDBマシンの構成図、
第9図は共通メモリの格納情報の説明図、第10図はプ
ロセッサの処理フロー図、第11図は異ったカラムのバ
リューを結合するための情報の説明図、第12図はイン
デクスのリーフ・ページのフォーマ第1 図 傑2閲 第3 閲 #〆図 擾 S″ 図 (α) (b) バOh−、?3υ1卜        バクニー33−
Iト$t  fA 157 図 茅δ躬 勇5   タ   ム1

Claims (1)

  1. 【特許請求の範囲】 1、リレーショナル・データベースにおいて、カラム・
    ワイズに格納したテーブルのあるカラムに関するバリュ
    ー+ローIDの集合を二次記憶装置から主記憶装置に転
    送する処理と同期して、他のカラムの条件をみたしたロ
    ーIDの集合と転送中のローIDのつき合せ処理を行い
    、転送中のバリュー+ローIDの集合の中で、条件を満
    たしたバリュー+ローIDの集合のみを主記憶に送るこ
    とを特徴としたデータ処理方式。 2、複数のレコード(複数のフィールドと呼ばれるデー
    タ項目により構成される1件分のデータ)により構成さ
    れる一般のファイルのあるフィールドにつけられたイン
    デクス、あるいは、リレーショナル・データベースにお
    いて、ロー・ワイズに格納されたテーブルのあるカラム
    につけられたインデクスを二次記憶装置から転送する際
    、一般ファイルの場合、他のフィールドに関する条件を
    満たしたレコードIDの集合、リレーショナル・データ
    ベースの場合他のカラムに関する条件を満たしたローI
    Dの集合と転送中のレコードID、あるいは、ローID
    のつき合せ処理を行い、条件を満たしたバリュー+ロー
    ID(あるいは、レコードID)を主記憶に送ることを
    特徴とするデータ処理方式。 3、第1項、あるいは、第2項に記載にした他カラムの
    条件をローIDの集合をハッシュイングしてハッシュイ
    ング結果に対応するビットを1にしたアレイを作り、転
    送中のバリュー+ローIDの集合の中で、ローIDに同
    じハッシュ関数を通用した結果が対応するビットが1と
    なるバリュー+ローIDの集合のみを主記憶に転送する
    ことを特徴としたデータ処理方式。 4、第3項に記載したローIDのハッシュイングの際用
    いるハッシュ関数を、ローIDの特定のビットを取り除
    く関数か、まつたく、ビットと取り除かずローIDその
    もを取り出す関数とすることを特徴とするデータ処理方
    式。 5、第3項に記載したハッシュ・ビット・アレイ方式を
    用いる際、CPU側に、他カラムの条件を満たすローI
    Dの集合をローIDのハッシュ関数値が同一になるサブ
    集合に分類し、それぞれのサブ集合をポインタで接続し
    、他のカラムとの結合処理を高速に行うことを特徴とす
    るデータ処理方式。 6、第1項、あるいは、第2項に記載した他のカラムの
    条件を満たしたローIDの集合をソートしておき、転送
    中のローIDとの間で2分検系を行い、条件を満たすバ
    リュー+ローIDの集合を選別することを特徴とするデ
    ータ処理方式。 7、第6項に記載した条件を満たすバリュー+ローID
    のペア情報のそれぞれに、ソートされたローIDの何番
    めの情報と一致したかを付加することを特徴とするデー
    タ処理方式。
JP61276555A 1986-11-21 1986-11-21 デ−タ処理方式 Pending JPS63131227A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61276555A JPS63131227A (ja) 1986-11-21 1986-11-21 デ−タ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61276555A JPS63131227A (ja) 1986-11-21 1986-11-21 デ−タ処理方式

Publications (1)

Publication Number Publication Date
JPS63131227A true JPS63131227A (ja) 1988-06-03

Family

ID=17571118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61276555A Pending JPS63131227A (ja) 1986-11-21 1986-11-21 デ−タ処理方式

Country Status (1)

Country Link
JP (1) JPS63131227A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02238568A (ja) * 1989-03-13 1990-09-20 Fujitsu Ltd データベース処理システム
JP2011013758A (ja) * 2009-06-30 2011-01-20 Hitachi Ltd データ処理装置、及び処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02238568A (ja) * 1989-03-13 1990-09-20 Fujitsu Ltd データベース処理システム
JP2011013758A (ja) * 2009-06-30 2011-01-20 Hitachi Ltd データ処理装置、及び処理方法

Similar Documents

Publication Publication Date Title
Bajda-Pawlikowski et al. Efficient processing of data warehousing queries in a split execution environment
Boral et al. Database machines: An idea whose time has passed? A critique of the future of database machines
Koudas et al. High dimensional similarity joins: Algorithms and performance evaluation
Raman et al. Online dynamic reordering for interactive data processing
US5307485A (en) Method and apparatus for merging sorted lists in a multiprocessor shared memory system
US7743060B2 (en) Architecture for an indexer
US5557791A (en) Outer join operations using responsibility regions assigned to inner tables in a relational database
US6138114A (en) Sort system for merging database entries
US6266660B1 (en) Secondary index search
KR20010083096A (ko) 가치-사례-연결을 통한 컴퓨터에 의해 구현되는데이터베이스
US7685138B2 (en) Virtual cursors for XML joins
US20120131022A1 (en) Methods and systems for merging data sets
US5842208A (en) High performance recover/build index system by unloading database files in parallel
CN103309958A (zh) Gpu和cpu混合架构下的olap星型连接查询优化方法
US7725448B2 (en) Method and system for disjunctive single index access
US6253197B1 (en) System and method for hash loops join of data using outer join and early-out join
US6999967B1 (en) Semantically reducing the number of partitions involved in a join
US6925463B2 (en) Method and system for query processing by combining indexes of multilevel granularity or composition
JPS63131227A (ja) デ−タ処理方式
Song et al. Indexing dataspaces with partitions
Ordonez et al. A survey on parallel database systems from a storage perspective: rows versus columns
Li et al. Computing frequent itemsets inside oracle 10g
JPS59121436A (ja) デ−タ群のソ−ト方法
Aguilar-Saborit et al. Ad hoc star join query processing in cluster architectures
Sousa et al. Data mining on parallel database systems