JPS62187931A - デ−タベ−ス演算装置及び方法 - Google Patents

デ−タベ−ス演算装置及び方法

Info

Publication number
JPS62187931A
JPS62187931A JP61028807A JP2880786A JPS62187931A JP S62187931 A JPS62187931 A JP S62187931A JP 61028807 A JP61028807 A JP 61028807A JP 2880786 A JP2880786 A JP 2880786A JP S62187931 A JPS62187931 A JP S62187931A
Authority
JP
Japan
Prior art keywords
column
database
columns
specified
storage device
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
JP61028807A
Other languages
English (en)
Inventor
Akira Yamamoto
彰 山本
Tadashi Osone
匡 大曽根
Masashi Tsuchida
正士 土田
Hiroyuki Kitajima
北嶋 弘行
Kazuhiro Sato
和洋 佐藤
Yoshiaki Yamashita
山下 芳明
Nobuhiro Taniguchi
谷口 伸博
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 JP61028807A priority Critical patent/JPS62187931A/ja
Publication of JPS62187931A publication Critical patent/JPS62187931A/ja
Priority to US07/418,343 priority patent/US4967341A/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、リレーショナル・データベース(以下RDB
と略す)、システムなどファイルシステムにおいて、デ
ータ転送と同期してRDB演算を実行するRDBマシン
を設けた際、特にジョイン演算を高速にサポートする装
置、及び、方法に関する。
〔従来の技術〕 データ転送と同期したデータベース(DB)マシンなど
では、単一テーブルに関する演算は容易に可能であるが
、ジョイン処理は、一方のテーブルのデータをマシン内
に蓄積しなければならないし、かつ、ジョイン操作をD
Bマシン側で行うとかえってCPUに転送するデータ駄
が増大する可能性がある。しかし、ジョイン処理はRD
B演算の中でも処理量が多く高速化のニーズの高い処理
である。
これについてはたとえばミツチェル著[コンテントアド
レッサブル・ファイルストア」(Mitchell、 
 R,W、:  ’Cont、enj  Addres
sableFile  5tore’   Proce
edings  of  0nlineConfere
nce on Dat、abtIse Technol
ogy。
April  l 976)などに記載されている通り
である。
いわゆるシー・エイ・エフ・ニス(CAFS(Cont
、er+t、 Addressable File 5
hore))などはハツシュ・ビット・アレイ、すなわ
ち、ハツシングを利用したジョイン処理の高速化をサポ
ートを行っている。しかし、ハツシュを用いた場合ジノ
ニウムの発生が問題となる。従って、ジノニウムの発生
の少い関数を選ぶことが必要となるが、これはデータの
値の分布により決定されるため。
実際には、困難である。
〔発明が解決しようとする問題点〕
本発明は、ファイルなどI10系DBマシンにおいてデ
ータ転送と同期してジョイン処理の大部分の演算を実行
することによって、RDBシステムにおけるジョイン処
理の高速化を図るものである。
本発明の目的はファイルなどのI10手段と情報処理装
置間のデータ転送の際にテーブル等のジョイン処理を該
転送と併行して行う新たなマシンを提供することにある
〔問題点を解決するための手段〕
RDBなどのファイルにおけるデータ構成は。
テーブルと呼ばれるマトリクスによって構成される。通
常のファイルのレコードに相当する部分がローと呼ばれ
、フィールドに相当する部分がカラムと呼ばれる。
RDBにおけるDB演算処理は、単一テーブルに関する
ものと複数テーブルにまたがるものがある。複数テーブ
ルにまたがる処理は、各テーブルのローどうしを結合す
る処理(ジョイン処理)が伴う。
ジョイン処理は通常、テーブルとテーブルをそれぞれの
テーブルのある特定のカラムを共通にして結合する。(
このカラムを結合カラムと呼ぶ。)具体的には、以下の
様な手続きを行う。テーブルlのカラムaとテーブル2
のカラムbを結合カラムにして結合処理を行う場合と考
える。テーブル1のあるローのカラムaの値がAとする
と、このローとテーブル2のカラムbの値がAであるロ
ーの集合が結合されることになる。従って、テーブル2
のカラムbの値がAであるローの数がn個あるとすると
、この結合により新しいn個のローができることになる
。(非常に少ないケースではあるが、テーブル2のカラ
ムbの値がA以下の〇−と結合を行うような要求が指定
される場合もある。)以上の処理を、テーブルaのすべ
てのローに関して行うとテーブルの結合処理が終了する
以上より、テーブルlのあるローの結合カラムの値が、
テーブル2の結合カラムの値の集合に含まれない場合、
このローは結合すべきテーブル2のローが存在しないた
め、結合処理を行う必要がないということがわかる。従
って、テーブル1のデータをディスク装置から読み込む
際、テーブル2の結合カラムの集合をDBマシン内に蓄
積しておき、テーブル1の結合カラムとの値がこれらの
値の中に含まれるかを判別すればよいことになる。
上記の処理の考え方はICL社のCAFSなどで用いら
れているが、すでに述べたように、この場合に、ハツシ
ング関数を用いているため、ジノニウムが発生するため
充分に効果が上げられない可能性があった。
ここでは、結合カラムの値のそのものを比較する方式を
とる。+11−に演算を行うと、テーブル2のX、+1
合カラムの値の数をN個とすると1つのローの転送時間
内にN個の演算を行う必要があるため、データ転送に追
随してこれらの処理を行うことはむずかしい。しかし、
前もって結合カラムの値の工1′、合をソーティングし
ておけば、2分検索を用いることができるため、演算関
数はLog 2Nで済むことになる。この場合、N=1
000個でも演算個数はlO個程度である。
従って、専用の2分検索用のハードウェアを設けること
により、この演算を実行する方式をとる。
〔作用〕
DBマシン内に蓄積した1方のテーブルのソートされた
カラムの値の集合を、もう1方のテーブルをディスク装
置から読み出す際、このデータ転送と同期して、2分検
索を行う専用ハードウェアを用い、結合すべきローを選
択する。
通常、D[3に対する演算要求は、他テーブルのカラム
との条件演算だけでなく同一テーブル内の他のカラムと
の条件演算を同時に指定されることが一般的である。さ
らに、条件を満たしたローの中から特定のカラムを切り
出す要求も指定される。
従って、DBマシンは、上記の2分検索処理とこれらの
処理を並行して実行する機能を持つ必要がある。
〔発明の実施例〕
以下、本発明の実施例を図に従い説明する。
本発明は、データ転送と同期してRD[3演算の中のジ
ョイン処理の大半の部分を処理するDBマシン、データ
蓄積をした二次記憶装置から主記憶族までのデータ転送
路のいずれかの場所、たとえば、チャネルとit;IJ
御装置の間に置き、ジョイン処理を高速化するものであ
る。この場合、チャネル。
制御装置の中に上記の処理を実行するDI3マシン機能
を組み込んでもよい。
第1図に、上記DBマシンを有する計算機システムのハ
ードウェア構成図を示す。計算機システ11は、CPT
J I O,主記憶装置11.チャネル+2.DBマシ
ン13.制御装置14,1個以上のディスク装置15、
から構成される。
本実施例では、二次記憶装置としてディスク装置15と
したが別に他の装置の場合でも有効である。また、本実
施例では、DBマシン13をチャネル12と制御装置1
4の間に置いたが、すでに述べたように、ディスク装置
15と主記憶装置11の間の任意の位置に置いてもよく
、また、任意の装置にこのDBマシン13の機能を組み
込んでもよい。また、本実施例では、チャネル12以下
の構成を1系列にしたが、チャネル+2.DBマシン1
3.制御装置14などは計算機システムの中に複数個存
在してよい。
さらに、第]7I2Iに示すように複数のCPUを有す
る計算機システムの場合もある。
第2図には、この計算機システムのソフトウェア構成を
示す。ソフトウェアは、CPU10及び主記憶11側に
存在する。ソフトウェアは、RDnの管理を行うRD 
B M S (Re1ational Dal、thb
aseManagement、  System)  
 2 0  、   R1)  B  M  S  2
 0  に対してAP(Δpplica1.ion P
rogram) 21 、ハードウェア装置、計算機シ
ステムなどの管理などを軒うOS (Operatin
g 5yst、+!m)  22が存在する。
ただし、RDBMS 20がハードウェア装置々置など
の管理機能を持てば0S22は存在しなくてもよい。ま
た、AI)21は別装置に存在してもよい。
ただし、この場合には、別装置のΔl’ 21との通信
を行う通ず、:i管理プログラムが、CI’) U ]
 O及び上記↑α11側に存在しなければならない。た
だし。
本実施例では、第2図に示す様に、RDBMS20、A
P21,0822がCPUl0  主記憶ll側に存在
するものとする。AP21はRDBMS20に対して、
DB演算要求を発行する。RDBMS20はAP21か
ら受は取ったDB演算要求を、その内容に従って2いく
つかの部分的なりB演算要求に分割し、この部分的なり
B演算要求を0822を通じてDBマシン13に送るか
、DB演算要求を分割せずそのまま0822を通じてD
Bマシン13に送る。
RDBMS 20で扱うデータは第3図に示す様に、マ
トリクス状のテーブル30(通常のファイル)の集合で
ある。テーブル30はロー31とカラム32からなる。
ロー31は通常のファイルのレコードに相当し、カラム
゛32はフィールドに相当する。RDB演算は、一般的
にこれらのテーブルの集合から新しいテーブルの作成し
てDB演算要求を発行したAP21に渡す。
DB演算要求は、1つのテーブル30から部分的なテー
ブル30を作成する要求と、(この場合。
テーブル全体を選んでもよい。)複数のテーブル30か
ら1つの新しいテーブル30を作成する要求とがある。
この場合もそれぞれのテーブル30全体から新しいテー
ブル30を作成する要求の場合もあり、個々のテーブル
30から部分的なテーブル30を作成し、複数の部分的
なテーブル30から新しいテーブルを作成する場合もあ
る。もちろん、あるテーブル30全体と別のテーブル3
0から作成した部分的なテーブル30から新しいテーブ
ル30を作成してもよい。
第4図は単一テーブルに対するDB演算要求を示す・こ
の場合、ロー31に対して条件式を設定する。(それぞ
れのロー31の中の指定したカラム32がある値に等し
いこと、指定した2つのカラム32の値どうしが等しい
ことといったようなを条件を設定する。この例を第6図
の中に示しである。ここで、カラム32とある定数に関
する条件式をセレクション、力゛ラム32間の条件式を
リストリクジョンと呼ぶ。)条件式の結果は、式が成立
すると真となり、成立しない場合には、偽となる。一般
的には、複数の条件式の設定が可能で、これらの条件式
の関係は論理式(AND、OR)などで表現される。こ
の論理式の演算結果が真の値となったロー31が選択さ
れるが、これを選択ロー41と呼ぶ、さらに、これらの
ロー31の中から指定したカラム32が切り出されるに
れを指定カラム42と呼ぶ。この結果、選択ロー41と
指定カラム42から成るテーブル30が得られることに
なる。この結果を単一テーブル演算結果テーブル40と
呼ぶ。
第5図は、複数のテーブル30から1つの新しいテーブ
ル30を作成するようなりB演算を示したものである。
この場合、細かく見るとこれらは、2つのテーブル30
の結合処理(ジョイン処理)に分解できる。この結果処
理の順番によって処理効率は大きく見るが、この判断は
RDMS20で行い、DBマシン13側では分解された
演算要求を受は取るものとする。従って、以下、2つの
テーブルの結合処理を例にして、DBマシン13の持つ
べき機能について述べる。
第6図は、2つのテーブル30の結合処理の詳細を示し
たものである6通常、テーブルA60とテーブルB61
は、それぞれのテーブル内でのセレクション、リストリ
クジョンの条件が設定され、さらに、テーブル30間の
カラム31どうしの条件式が設定される。これを結合カ
ラムと呼び、第6図では、テーブルA60の結合カラム
a62゜テーブルB61の結合カラムb63である0例
えばテーブルa60のあるロー31の結合カラムa62
の値がαであり、結合カラムa62と結合カラムbの条
件が等しいという条件が指定されているとすると、テー
ブルBの結合カラムbの値がαであるローの集合と結合
を行えという要求が指定されることになる。従って、異
ったケーブルのどのロー31とどのロー31を結合すべ
きかということは、結合カラムどうしの演算結果のみに
よって決まることになる。この場合、テーブルA60゜
テーブルB61はディスク′J装置15上にあるため。
どちらか一方のテーブルが先に読み出されることになる
。ここでは、テーブルB61が読み出されるものとする
。従って、テーブルA60のデータが読みだされる時、
テーブルB61のセレクション・リストリクジョンを条
件を満足した。ロー、すなわち、選択ローb67の結合
カラムのa62の値の集合がマシン内に蓄積しであると
、テーブルB61の選択ローb67の結合カラムb63
の値の集合とテーブルA60の選択ローa6[3の結合
カラ、ムa62の値の集合の演算を行うことができる0
例えば、テーブル30間のセレクション。
リストリクジョンの条件を満たしたローでも、このロー
の結合カラムa62の値が、テーブルB61の結合カラ
ムb63の値の集合に含まれていなければ選ぶ必要がな
いということになる。この時、この演算を高速に行うた
めには、テーブルA60のカラムa62の値の集合とソ
ーティングしておくことが必要である。この後、結合す
べき、選択ローa64と選択ローb65を結合し、結合
演算テーブル610を作成する。
以上をまとめると、テーブル30間の結合処理を効率よ
く行うため、DBマシン13では、以下の機能を持てば
よい。
(1)DBマシン13にテーブル30のデータ転送中に
、AP21から渡すよう指定された指定カラムとは独立
に、他テーブル30との結合処理の対象となるカラム(
結合カラム)を切り出す機能を設ける。この結合カラム
はn個のテーブルの結合処理を考慮すると複数個の結合
カラムが指定可能でなければない。これを以下、第12
図に示すように結合カラム情報120と呼ぶ。この場合
、結合カラム情報120の中には、1つ、あるいは。
2つ以上の結合カラム121のカラムの値であるカラム
値122と、この値を切り出した選択ロー41が格納さ
れている主記憶装置11上、あるいは、DBマシン12
のバッファ上のアドレスが簡単に見い出せる様な選択ロ
ーポインタ123を付ける。これは選択ロー41どうし
の結合処理を高速に行うためである。
(2)DBマシン12は、テーブル30の転送中にその
テーブル30内で指定されたセレクション・リストリク
シコンなどの条件式に関する演算と並行して、他のテー
ブル30のソーティングさ、hた結合カラ11の幀の集
合との演算を行う(1能を持−〕。
(3)さらに結合カラム情報に関して次のような機能を
持つことが望しい。
(a)  複数のテーブル30に関する結合カラム情報
120をDBマシンに蓄積する機能(b)  結合カラ
ム情報120を各結合カラムごと121にソーティング
する機能 (c)  CP U I O上のRDBMS20から結
合カラム情報120と受は取りDBマシン13に格納す
る機能 DBマシン13の中には、最低1つの結合カラム情報1
20が蓄積可能でなければならないが、3つ以上のテー
ブルの結合処理などを考慮すると複数の結合カラム情報
120か、DI37シン12内に蓄積可能であることが
望しい。(c)の機能は、結合カラ11情報12′0を
RD B M S 20から受は取る機能であるが、こ
れは、計算機システム内にDBマシン13が複数存在す
る場合や、DBマシン12内のバッファが不足して、一
度、主記憶装置11側に送ったものを再びロードする場
合に必要な機能である。
また、AP21からは、選択ロー41をある指定カラム
42の値に従って、ソーティングせよという要求が発行
される場合がある。この場合、ソート対象となるカラム
に関して1以上の様な情報を作成しても、効果がある。
第7図は、DBマシン12の内部構成図である。
プロセッサa700は、制御装置14.チャネル12そ
れぞれの装置の間のデータ転送処理と1条件を満たした
ロー30の指定カラム31を切り出す処理と結合カラム
情報をfヤ成する1N能を持つコントロール・ス(−レ
ージa701はプロセッサaの内部メモリである。入力
バッファ、l 703 、人カバソファb704.入カ
バッファb705は、ディスク装置]5かj)送られて
きたデータを格納するバッフγで、ちる。ディスク装置
15との転送102位をブロックど呼ぶが、それぞれの
入カバソファにはブロックが1つずつNG納される。ブ
ロックには、複数のロー31が格納される。バッファを
3面設ける理由は、ディスク装置15からのデータ転送
処理とデータベース演算処理を並行して行うためである
出力バッファa706.出カバソファb707は、指定
条件を満たした選択ロー41のAP21から指定された
指定カラム32を格納するバッファである。バッファを
、2面設ける理由は、この格納処理とチャネル12への
転送処理を並行に行うためである。
検索情報バッファ708はチャネル13側から送られて
くる第8図に示す検索情報80を格納するものである。
この詳細を以下で説明する。検索範囲81は、ディスク
装置15のどの範囲をVA索するかを指定したものであ
る。テーブル1D82は検索対象となるテーブル30の
認別子である。
指定カラムリスト82は、AP22にわたす指定カラム
42の認別子の集合を指定する。この指定カラムリス1
〜82されたカラム31の値だけが出カバッファa31
.出カバソファbに格納されろ。
結合カラム・リスト83は、結合カラム情報120とし
て切り出す、結合カラム121の認別子の集合を指定し
たものである。この詳細を第9図に示す。結合カラム情
IJ i D り 0はこの結合カラム情報のiDであ
る。選択ローポインタの有無91は、このローを切り出
した選択ロー41へのポインタをつけるかどうかを示す
ものである。カラ11数92はこの結合カラム・リスト
の中に入れる結合カラム121の認別子の数である。カ
ラム1D93は結合力ラムトh報の中に入れる結合カラ
ム121の識別子であり、カラム数92で指定しただけ
の数のカラム1D93が格納される。テーブル内条件式
リスト85は検索対象となるテーブル30のロー31内
のセレクション、リストリクジョンに関する条件式のリ
ス1−である。結合カラム条件式リスト86は、他のテ
ーブル30の結合対象となるカラム32の条件式のリス
1−である。
この詳細を第10図に示す。条件式数lOOは。
結合カラムに関する条件式の数である。以下、結合カラ
ム条件式101の詳2411について述べる。カラム1
D102は検索対象となるテーブル30の側の結合カラ
ムである。演算子103は結合カラム間の演算子(=r
 ”+ >、など)である。この結合カラム情報i D
 104 、結合カラム1D105が、結合カラム・リ
スト84で示した結合カラム情報1D90.結合カラム
1D93と対応づけられ、DBマシン12がどのテーブ
ル30のどの結合カラム121の値の集合と演算を行え
ばよいかを判別することが可能となる。以上の様な条件
式が指定した条件式数100の数だけ指定されることに
なる。論理式87は、テーブル円条件式リスト85.結
合カラム条件式リスト86の論理関係を表現したもので
ある。
結合カラム情報バッファ710は、複数個存在し、各バ
ッファ内に以上述べた結合カラム情報120を格納する
バッファである。1つの結合カラム情報に複数の結合カ
ラム121が含まれる場合、各結合カラム121ごとに
ソーティング情報110を作り、これと結合カラム情報
バッファ710に格納する必要がある。これを第11図
(a)に示す。結合カラム情報120の中の結合カラム
121が1つの場合には、(b)の様に結合力ラム情報
120全体をソーティングする。なお、結合カラム情報
120は、検索範囲81で指定した検索範囲の検索が終
了しても、結合カラム情報バッファ710内に  する
。これは他のテーブルの結合カラム121との演算を、
複数図の検索要求で蓄積した結合カラム121のカラム
値122の集合を行うためである。従って、結合カラム
情報1D90がすでに定義済みの場合には、すでに結合
カラム情報バッファ710に、今回の検索で得た結合カ
ラム情報120を追加する。なお、本実施例では、結合
カラム情報120の主記憶袋5111への転送要求を受
けとった時、結合カラム情報バッファ120解放を行う
ものとする。
他の方法としては、結合カラム情報バッファ120の解
放要求を伝えるコマンドを設けることも考えられる。バ
ッチ・サーチ・エンジン712は1つ以上存在し、結合
カラム条件式リスト86で指定された演算を行う。ただ
し、この演算は演算量が多いため1本実施例では、各エ
ンジンが1つの演算しか実行しないものとする。ただし
、処理量が少ない場合には、複数の演算をデータ転送と
同期して実行可能である。このエンジンの出力は、ソー
ティングされている結合カラム120の何番目のカラム
値122と一致したか、あるいは。
一致したものがないということである。ソーティング・
エンジン713は指定された結合カラム情報120の結
合カラム121のソーティング情報111を作成するか
、結合カラム情lI2120自体をソーティングする。
プロセッサb714は、セクション・リストリクジョン
処理、すなわち、テーブル内条件式リスト85の演算を
実行し、バッチ・サーチ・エンジン712の制御と入力
データの設定、2つのエンジンの演算結果と論理式87
から選択ロー41の選別を判定する。さらに、ソーティ
ング・エンジン713の制御とする。コントロール・ス
トレージbは、プロセッサb714の内部メモリである
インターフェイス・バッファ711はプロセッサa70
0とプロセッサb714のインターフェイス・バッファ
である。このバッファに格納されるインターフェイス情
報を第13図に示す。検索情報フラグ130は検索情報
が検索情報バッファ709に格納されたことを示すフラ
グである。フィルタリング・フラグ131は、セレクシ
ョン・リストリクジョンなどの対象となるブロックが入
カバッファa703〜人カバソファC705のいずれか
に格納されたことを示す。入力バッファ1D132はこ
のブロックが格納された入力バッファの認別子である。
ソーティング・フラグ133と結合カラム情報1D13
4は、ソーティングの対象となる情報が格納されている
結合カラム情報120の識別子である。110を示す以
上の情報はプロセッサa700がプロセッサb714に
伝える情報である。検索情報完了フラグ135、フィル
タリング完了フラグ136.ソーティング完了フラグ1
37はプロセッサb714がそれぞれの処理を完了した
時に、この をプロセッサa700に伝えるものである
。ロー選別リスl−138はブロックの中ので検索条件
を満たした選択ロー41をプロセッサa700に報告す
る情報である。
データ転送装置a702はプロセッサa700の指示に
従い、制御装置13から転送されてきた入力ブロックを
入カバソファa703〜入カバノファc705の中で指
定されたバッファに入力する。データ転送装置b708
はプロセッサa700から指定されたバッファ、出力バ
ッファa706、出力バッファb707.検索情報バシ
ファ709.結合カラム情報バッフ7710とチャネル
12の間でデータ転送を行う。
ディスク装置15の入力ブロックの処理はパイプライン
処理的に行う。すなわち、データ転送装置22a702
が入力バッファa703の中にブロックを転送している
時、プロセッサb714などが入力バッファb704の
中に格納されたブロックのセレクション・リス1−リク
ション処理、他テーブルの結合カラム121との演算を
行い、ブロックの中のロー31から選別すべき選択ロー
41を判別している。同時に、プロセッサa700は入
力バッファC705に格納されたブロック、プロセッサ
bから受は取った条件を満たす選択ロー41を指定した
ロー選別リスト138をもとに、プロセッサa700か
ら選択を指定された選択ロー41全体の中から指定カラ
ムリスト82の中で指定された指定カラム42を出力バ
ッファa706、あるいは、出力バッファb707に格
納し、さらに、プロセッサa700から選択を指定され
た選択ロー41の結合カラム情報120を結合カラム情
報バッファ710の中に格納する。この処理をバッファ
ミツ03→バツフアbフ04→バツフアc705とサイ
クリックに処理を行う。
以下、プロセッサa700とプロセッサb714の処理
フロー図を示す。
まず、プロセッサa700の処理フロー図を第14図に
示す。
プロセッサa700は、チャネル12からの入出力コマ
ンド制御装置13から位置付は完了通知を受は取った時
、データ転送装置a 702からの完了通知、データ転
送”A 置すからの完了通知、プロセッサb714から
のソーティング完了通知を受は取った時、それぞれの動
作を開始する。以上の処理はステップ1400〜ステツ
プ1404で行う。
まず、チャネル12からの入出力コマンドを受は取った
場合について述べる。本実施例では。
DBマシン13は、チャネル12からの検索情報80の
受信要求コマンド、チャネル12への出力バッファa7
06、あるいは、出力バッファb707の通信要求コマ
ンド、チャネル12への結合カラム情報の通信要求、受
信要求、ソーティング要求のコマンドを考慮する。DB
マシン13は他の要求も受は取るが本発明には直接関係
しないため、ここでは省略する。ただし、この中で出力
バッファのチャネル12への通信要求は別2チップで受
は取るため、ここでは2種類の要求のみを受ける。まず
、受は取ったコマンドの解析をステップ1405で行う
まず、検索情報を受信せよという要求を受は取った場合
について述べる。ステップ1406では。
現在別の検索情報80を処理中かをチェックする。
受は取っている場合には、ステップ1407で、この要
求をキャンセルし、ステップ1400へ戻る。
以下、他に処理中の検索処理がない場合について述べる
。ステップ1408で、この情報を検索情報バッファに
転送するよう要求する。ステップ1409では、これが
完了するのを待つ。この完了通知を受は取ると、ステッ
プ1410で検索情報80の中の検索範囲81より、デ
ィスク装置15の位置付は要求を制御装置14に対して
発行する。次に、ステップ1411で検索情報フラグ1
30をオンにしてプロセッサb714に検索情報80が
検索情報バッファ709に格納されたことを知らせる。
次にステップ1412で、検索情報80から、指定カラ
ム・リスト83.結合カラムリスト84をコントロール
・ストレージa700に格納し、指定カラム42と結合
カラム情報120作成の準備を行う。次に、ステップ1
413でプロセッサb714からの処理完了を待つ。こ
れが完了するとステップ1400へ戻る。
次に、検索カラム情報120の通信要求を受は付けた場
合について述べる。この場合、ステップ1416で、デ
ータ転送装置b708に転送要求を発行して、ステップ
1417でこれが完了するのを待ち、完了すると、ステ
ップ1418て、この情報を格納していた結合カラム情
報バッファ710を解放し、ステップ700へ戻る。結
合カラム情報120の受信要求を受けとった場合、ステ
ップ1419で結合カラム情報バッファ710の割り当
てを行い、ステップ1420で、データ転送装置b70
8に転送要求を発行するる次に。
ステップ1421にこれが完了するのを待ち、完了した
後、ステップ700へ戻る。結合カラム情報120のソ
ーティング要求を受は付けた場合、ステップ1422で
ソーティング・フラグ133をオンにして、ソーティン
グ対象となる結合カラム情報120の識別子を結合カラ
ム情報1D134に格納して、プロセッサb714にソ
ーティング要求を発行した後ステップ700に戻る。
ここで、ステップ700に在るのは、ソーティング中に
は、チャネル12.DBマシン13.制御装置14の転
送バスが完全に空いているため、DB演算に関係しない
要求を受は付けられるようにするためである。
次に、制御装置13からの位置付は完了通知を受は取っ
た時の処理について述べる。この場合、ステップ142
3で1ブロツクの検索要求を制御装置14に発行し、ス
テップ1424でデータ転送装置a 702に対してl
ブロックのデータ転送要求と入力バッファa703に入
力するように要求を発行した後、ステップ]、 400
 戸−戻る。
次に、データ転送装置a 702からデータ転送から完
了した場合の処理について述べる。この詳細は、ステッ
プ1425でも記したように第15図に示す。まず、ス
テップ1500で指定検索範囲のデータ転送がすでに終
了しているかをチェックする。終了している場合は、ス
テップ1504ヘジヤンプする。まだ、転送が終了して
いない場合、ステップ1501で次のブロックの検索通
知を制御装置13に伝える。この後、データ転送装置a
702に対してデータ転送要求を発行する。
この場合、入力すべきバッファは入力バッファミツ03
→入カバッファb704→入カバソファC705とサイ
クリックに変化させるため、今転送が完了したバッファ
の次のバッファを指定する。
次に、今転送の完了したバッファの識別子を入力バッフ
ァ1D132にセットし、さらに、フィルタリング・フ
ラグ131をオンにして、プロセッサbに対して処理要
求を発行する。この後、ステップ1504で、指定カラ
ムを切り出すべきブロックが存在するかを判別し、存在
しなければ、処理を終了する。ステップ1505からは
、カラム31の切り出し処理に入いる。ステップ150
5で、コン1へロール・ストレージa701にすでに取
り込んだロー選別リス1〜138より選択指定のある選
択ロー41を1つ探す。もう選択ロー41が残っていな
ければ、ステップ1513ヘジヤンプする。この判断を
、ステップ1506で行った後、まだ1選択指定のロー
31が残っていれば。
ステップ1507で結合カラム情報に従って、結合カラ
ム情報バッファ710に格納する。(結合カラム情報1
20を作成する必要がない場合には作成しない。)次に
ステップ1508で指定カラムを出力バッファa706
.あるいは、出力バッファb707のうち現在バッファ
を格納している側のバッファに格納する。出力バッファ
a706と出カバソファb707の使用もサイクリック
に行なわれる。この後、ステップ1509で出カバソフ
ァが満杯でないかをチェックする。満杯でなければ、ス
テップ1506ヘジヤンプする。満杯の時には、ステッ
プ1510でチャネル12へ前の入出力コマンドの処理
が終了したことを通知する。(通常、コマンド・チェイ
ンされている複数の連続した入出力コマンドは1つ前の
コマンドの処理が完了した時に次のコマンドがチャネル
12から送られてくる。)ステップ1511で次のコマ
ンドを受けとる。この場合、出力バッファの内容をチャ
ネル12側に送るような入出力コマンドがくるものとす
る。CPU側のRDBMS20はO8を通じて、検索情
報をDBマシン!31に送る入出力コマンドと出カバソ
ファの内容をDBマシン13から受は取る複数個の入出
力コマンドをコマンド・チェインして入出力要求を発行
するものとする。この後、ステップ1512で、データ
転送装置a702を起動して出力バッファの内容をチャ
ネルに送るように指定する。この後、ステップ150G
へ戻る。
選択ロー41の指定カラム42の切り出しが終了すると
、ステップ1513すべでの検索範囲のカラム31の切
り出しが終了したかをチェックする。そうであれば、ス
テップ1517ヘジヤンプする。
そうでなければ、ステップ1514でプロセッサb71
4からの完了通知を待つ。これが完了すると、フィルタ
リング完了フラグ136をオフにして、ロー選別リスト
138をコントロール・ストレージd701に取り込む
。次に、ステップ1516でプロセッサb714の処理
が完了したブロックは検索範囲の最後のブロックかをチ
ェックする。そうであれば、ステップ1504ヘジヤン
プする。これは、この条件が成立した時には。
データ転送装置iaは、検索筒12I81のデータ転送
がすでに終了していて、起動していないため、データ転
送袋fil a 702の完了を待つ必要がないためで
ある。そうでなければ、処理を終了させる。
検索範囲81のすべてのカラムの切り出しが終了すると
出力バッファが満杯でなくともこれをチャネル12に送
る必要がある。従って、ステップ1510〜ステツプ1
512と同様の処理をステップ1517〜ステツプ15
19で行い、処理を終了させる。
次にデータ転送装置b708からの完了通知を受は取っ
た場合について述べる。この場合、検索情報80.結合
カラム情報120の転送に対する完了通知はそオLぞれ
ステップ1409.ステップ1417、ステップ142
1で受は取るため、ここで受は取る完了通知は、出力バ
ッファa706−あるいは、出力バッファb707の転
送完了通知である。ステップ1426で検索筒rIII
81の最終部分の検索結果708を格納した出力バッフ
ァ内容の転送が完了したのかをチェックする。そうでな
い場合、ステップ1400へ戻る。これが成立した場合
、この をチャネル12に通知する。この場合、通常の
コマンドの完了通知ではなく、例えば、まだ発行してい
ないコマンドがあった場合では、もうこれらのコマンド
の発行は終了させるといった内容である。すでに述べた
ように、チャネル12に対して、通常の完了通知を発行
するとコマンド・チェインの次の入出力コマンドが発行
されることになるためである。この後、検索情報バッフ
ァ709の内容をクリアして、この検索情報で指定され
た検索を終了させる。
最後に、プロセッサb714からのソーティングの完了
通知を受は取った場合について述べる。
この場合、ステップ1429でチャネル12に対して完
了通知を発行し、ソーティング完了フラグ137をオフ
にし、ステップ1400へ戻る。
次に、プロセッサb714の処理について述べる。これ
を、第16図に示す。プロセッサb714はプロセッサ
a700から、検索情報の処理要求、フィルタリング要
求、ソーティング要求を受けた時動作を開始する。これ
らの要求の有無の判定をステップ1600〜ステツプ1
602で行う6 まず、検索情報フラグ1300がオンになった場合の処
理について述べる。この場合は、ステップ1602で検
索情報バッファ709内の検索情報80の中のテーブル
内条件式85.結合カラム条件弐86.論理式87な見
て、セレクション・リストリクジョン、他テーブルの結
合カラムの他の集合との演算処理、これらの演算結果か
らローの選択処理などを行うのに必要な情報を、コント
ロール・ストレージb715内に作る。これが終了する
と、検索情報フラグ130をオフにして、検索情報完了
フラグ135をオンにして、プロセッサa700に処理
が完了した旨を報告する。
次に、フィルタリング・フラグ131がオンになった場
合について述べる。この場合、入力バッファ1D132
で指定された入力バッファに格納されたブロック中のロ
ー31の選択の有無を判定する処理に入いる。ステップ
1605ですべてのローの選択の有無の判定が終了した
かを判定する。
これが終了した場合には、ステップ1615ヘジヤンプ
する。ステップ1606では選択の有無を判定が済んで
いないロー31の中からこの処理に入いるロー31を決
定する。ステップ1607ではもう起動していない他テ
ーブルの結合カラムとの条件式がないかをチェックする
。これが残っていない場合、ステップl 609ヘジヤ
ンプする。
次に、ステップ1608で、起動すべきバッチ・サーチ
・エンジン712を決め、この起動を行い、同時に、こ
のエンジンに対し、検索対象となっているテーブルの側
の結合カラム121のカラム値122と他テーブルの結
合カラム121のカラム値122の集合が格納されてい
る結合カラム情報バッファ710の識別子を渡す。この
後、さらに実行すべき他テーブルの結合カラム121と
の条件式がないかを判定するため、ステップ1607へ
戻る。
バッチ・サーチ・エンジン712の起動が終了すると、
次に、ステップ1609からセレクション・リストリク
ジョン処理に入いる。ステップ1609でもう実行して
いないセレクション・リストリクジョン条件式が残って
いないかをチェクする。残っていなければ、ステップ1
611ヘジヤンプする。残っていれば1条件式を1つ選
んで。
この条件式を、ステップ1610で実行する。
ステップ1611では、この条件式結果を記憶する。こ
の後、まだ実行していない条件式があるかどうかをチェ
ックするために、ステップ1609ヘジヤンプする。
すべてのセレクション・リストリクジョンが終了すると
、ステップ1609で起動したすべてのバッチ・サーチ
・エンジンの処理が終了するのをステップ1612で待
つ。次に、これが終了すると、すべての演算結果とすで
にコントロール・ストレージb715に格納した論理式
87の情報をもとにステップ1613で、このロー30
を選別するかどうかを判定する。この判定結果をステッ
プ1614でコントロール・ストレージb715内に記
憶し、さらに、まだ選択の有無を判定していないロー3
1があるかどうかをチェックするため、ステップ160
5へ戻る。
ブロック内のすべてのロー31選択判定処理が完了する
と、ステップ1615で、ブロック内のすべてのロー3
1の選択の有無の判定結果をロー選択リスト138に格
納する。この後、フィルタリング・フラグ131をオフ
にして、フィルタリング完了フラグ136をオンにして
、処理が完了したことをプロセッサa700に通知する
最後に、ソーティング・フラグ133がオンになった場
合について述べる。まず、ステップ1616で結合カラ
ム情報1D134からソーティングを行うべき結合カラ
ム情報120を調べ。
ソーティングを行うべき結合カラムが1個かどうかを判
定する。そうでない場合は、ステップ1622ヘジヤン
プする。1個の場合、結合力ラム情報120全体をソー
ティングするようソーティング・エンジン713にステ
ップ1617で要求する。次にステップ1618でこれ
が完了するのを待ち、これが完了するとステップ162
2ヘジヤンプする。
結合カラム121が2つ以上ある場合には、ステップ1
619でまだソーティングすんでいない結合カラム12
1があるかをチェックする。ない場合は、ステップ16
22へジャンプする。ある場合は、ソーティングすべき
結合カラム121を1つ選び、ソーティング装置に対し
て、この結合カラム121のソーティング情報111を
作成するよう要求し、ステップ1621でこれが完了す
るのを待つ。この完了後、まだソーティングがすんでい
ない結合カラム121があるかどうかをチェックするた
め、ステップ1619へ戻る。
すべての結合カラム121のソーティングが終了すると
、ステップ1622で、ソーティング・フラグ133を
オフにしてさらに、ソーティング・完了フラグ134を
オンにして処理が完了したことをプロセッサb714に
通知する。
〔発明の効果〕
本発明によれば、複数テーブルの結合処理の大半をデー
タ転送時間の中に含ませることができるため、CPU負
荷を大幅に削減することができる。
特にリレーショナルDB演算などにおいては、テーブル
の結合処理は性能上の問題になり易い処理であり、この
点を改善する本発明の効果は重要である。
【図面の簡単な説明】
第1図は本発明の実施例であるDBマシンを有する計算
機システムを示すブロック図、第2図は本発明DBマシ
ンとCPU側のソフトウェアとの関係を示すブロック図
。 第3図はテーブルの構成例を示す図。 第4図は本発明における単一テーブルの検索処理例を示
す図、 第5図は本発明における複数テーブルの検索処理例を示
す説明図、 第6図は本発明におけるテーブルの結合処理を示す図、 第7図は本発明DBマシンの構成を示すブロック図、 第8図、第9図は検索情報のフォーマットを示す説明図
、 第10図(a)、(b)は本発明結合カラム条件式リス
トのフォーマットを示す説明図。 第11図は本発明結合カラム情報のソーティングを示す
説明図、 第12図は本発明結合カラム情報のフォーマットを示す
説明図、 第13図は本発明インターフェイス・バッファの格納情
報を示す図、 第14図は本発明プロセッサaの処理フロー図。 第15図は本発明プロジェクシJン処理のフロー図、 第16図は本発明プロセッサbの処理フロー図である。 第17図は本発明の1実施例を示すブロック図である。 5、符号の説明 13・・・DBマシン、700,701,714゜71
5・・・プロセッサ、712・・・バッチ・サーチ・エ
ンジン、713・・・ソーティングエンジン、703〜
707,709〜711・・・バッファ。 第1扇 第2圀 ノ、5− 第4日 Aくシ犬lりへ4i! 第S目 O町llJ′CJ J6鷹−ラkAll     、16史声弘btりvJ
7目 第3目 第デ国 第1/国 (lジ に4シ)0う乙、@p\2イ固毛ス上イつ賜金
(bン、勇ミ;d≧声ラム*pX゛を邊翻ルイト第 7
2 υ0 第 )3 圀

Claims (1)

  1. 【特許請求の範囲】 1、少くも1つのCPU、第1の記憶装置、第2の記憶
    装置および少くも1つのデータベース演算装置よりなる
    情報処理システムにおいて、上記第1の記憶装置上のテ
    ーブルを、上記第2の記憶装置に転送する際、該テーブ
    ルとマージすべき他のテーブルのカラムとの内容を上記
    転送と同期して、上記データベース演算装置内に上記マ
    ージすべき順序に応じて蓄積することを特徴とするデー
    タベース演算方法。 2、CPU、主記憶装置、チャネル、制御装置、補助記
    憶装置、及び、上記補助記憶装置と主記憶装置との間の
    データ転送パスに結合したデータベース演算装置から構
    成される計算機システムにおいて、上記補助記憶装置上
    のテーブルを、上記主記憶装置に転送する手段を、該転
    送の際、他のテーブルのカラムを、上記データ転送処理
    と同期して、上記データベース演算装置内の内部メモリ
    に蓄積する手段を有することを特徴とするデータベース
    演算装置。 3、上記データベース演算装置内に蓄積する上記他テー
    ブルのカラムと指定された少くも1つのカラムのデータ
    として該カラムの値をとり出したローが格納される第2
    の記憶装置上のアドレスが容易に判別できる情報を付加
    することを特徴とする第1項記載のデータベース演算方
    法。 4、上記テーブルを上記補助記憶装置から転送する際、
    該データ転送と同期して、テーブル内の同じローのカラ
    ムのデータに対し指定された条件を満足するローの指定
    されたカラムのデータを選んで上記主記憶装置に送る処
    理を上記データベース演算装置が実行している時、該条
    件を満足したローの中で、他のテーブルのカラムとの演
    算が指定されている1つ以上のカラムの値を、データベ
    ース演算装置内の内部メモリに蓄積する手段を有する第
    2項記載のデータベース演算装置。 5、上記データベース演算装置内に蓄積する他テーブル
    のカラムと演算を指定された少くも1つのカラムのデー
    タ値に、上記カラムの値をとり出す選択条件をみたした
    ローの指定されたカラムが主記憶上に格納されるアドレ
    スが容易に判別できる情報を付加することを特徴とする
    第2項記載のデータベース演算装置。 6、上記他テーブルのカラムとの演算が指定されている
    カラムの値を上記CPU側からデータベース演算装置に
    送り、これを上記データベース演算装置内のメモリに蓄
    積する手段を有する第2項記載のデータベース演算装置
    。 7、上記テーブルを上記補助記憶から転送する際、各ロ
    ーの指定されたカラムのデータとデータベース内に蓄積
    された他のテーブルのカラムのデータの集合に関して指
    定された選択条件に関する演算を、データ転送と同期し
    て実行して、この選択条件をみたしたローの指定された
    カラムのみを上記主記憶装置に送る手段を有する第2項
    記載のデータ演算装置。 8、上記テーブルのカラムのデータの集合に関して指定
    された選択条件に関する演算と、上記他のテーブル内の
    同じローのカラムのデータに対して指定された条件に関
    する演算を行い、両者の演算結果から選択すると決定し
    たローの指定されたカラムのみを主記憶に送る処理と、
    テーブルの上記補助記憶装置からのデータ転送と同期し
    て実行する手段を有する第4項記載のデータベース演算
    装置。 9、上記他テーブルのカラムのデータをあらかじめソー
    ティングしておく第7項または第8項記載のデータベー
    ス演算装置。 10、上記選択条件を満たしたローの中で、他のテーブ
    ルのカラムとの演算が指定されているカラムの値をデー
    タベース演算装置の内部メモリに蓄積する手段を有する
    第7項または第8項記載のデータベース演算装置。 11、上記データベース演算装置内に蓄積する他テーブ
    ルのカラムとの演算と指定されたカラムのデータに、こ
    れらのカラムを切り出した選択条件とみたしたローが上
    記主記憶上に格納されるアドレスが容易に判別できる情
    報と付加する手段を有する第10項記載のデータベース
    演算装置。 12、上記他テーブルのカラムとの演算において、上記
    ソーティング結果を2分検索方法を用いてサーチし、高
    速処理を実行する手段を有する第1項記載のデータベー
    ス演算装置。 13、1台以上のチャネルと主記憶装置を有する1台以
    上のCPUと、チャネルと経由して任意のCPUと接続
    された1台以上の制御装置、それぞれの制御装置に接続
    されローとカラムよりなるマトリクス状のデータ構造を
    持つ複数のテーブルより構成されるリレーショブル・デ
    ータベースのデータを蓄積した1台以上の補助記憶装置
    、及び、補助記憶装置、制御装置、チャネル、主記憶か
    らなるデータ転送バス上の任意の装置、あるいは、これ
    らの任意の装置の間に用意されたリレーショナル・デー
    タベース演算を実行するデータベース演算装置から構成
    される計算機システムであって、補助記憶装置上のテー
    ブルを主記憶に転送する際、他のテーブルのカラムとの
    関係で演算を指定された1つ以上のカラムのデータ値を
    、データ転送処理と同期して、データベース演算装置内
    の内部メモリに蓄積する手段を持つことを特徴とするデ
    ータベース演算装置。
JP61028807A 1986-02-14 1986-02-14 デ−タベ−ス演算装置及び方法 Pending JPS62187931A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61028807A JPS62187931A (ja) 1986-02-14 1986-02-14 デ−タベ−ス演算装置及び方法
US07/418,343 US4967341A (en) 1986-02-14 1989-10-06 Method and apparatus for processing data base

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61028807A JPS62187931A (ja) 1986-02-14 1986-02-14 デ−タベ−ス演算装置及び方法

Publications (1)

Publication Number Publication Date
JPS62187931A true JPS62187931A (ja) 1987-08-17

Family

ID=12258694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61028807A Pending JPS62187931A (ja) 1986-02-14 1986-02-14 デ−タベ−ス演算装置及び方法

Country Status (1)

Country Link
JP (1) JPS62187931A (ja)

Cited By (3)

* 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 データベース処理システム
US5956719A (en) * 1996-03-29 1999-09-21 Fujitsu Limited Synchronization method applied to databases in network management system
JP2015094988A (ja) * 2013-11-08 2015-05-18 国立大学法人佐賀大学 データ構造、データ生成装置、その方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60178547A (ja) * 1984-02-24 1985-09-12 Hitachi Ltd デ−タ処理方式
JPS619737A (ja) * 1984-06-25 1986-01-17 Hitachi Ltd デ−タベ−ス処理方法および装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60178547A (ja) * 1984-02-24 1985-09-12 Hitachi Ltd デ−タ処理方式
JPS619737A (ja) * 1984-06-25 1986-01-17 Hitachi Ltd デ−タベ−ス処理方法および装置

Cited By (3)

* 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 データベース処理システム
US5956719A (en) * 1996-03-29 1999-09-21 Fujitsu Limited Synchronization method applied to databases in network management system
JP2015094988A (ja) * 2013-11-08 2015-05-18 国立大学法人佐賀大学 データ構造、データ生成装置、その方法及びプログラム

Similar Documents

Publication Publication Date Title
US4967341A (en) Method and apparatus for processing data base
CN110309233B (zh) 数据存储的方法、装置、服务器和存储介质
WO2004027649A1 (en) Asymmetric streaming record data processor method and apparatus
EP3499388B1 (en) Method and device for processing join query
CN107209768A (zh) 用于数据集的可扩展排序的方法和设备
CN114756629A (zh) 基于sql的多源异构数据交互分析引擎及方法
CN114328470A (zh) 针对单个源表的数据迁移方法及装置
US8606744B1 (en) Parallel transfer of data from one or more external sources into a database system
JPS62187931A (ja) デ−タベ−ス演算装置及び方法
US20170371927A1 (en) Method for predicate evaluation in relational database systems
CN115438025A (zh) 数据处理方法及装置
JPH01134642A (ja) データベース管理処理方式
CN107784032A (zh) 一种数据查询结果的渐进式输出方法、装置及系统
CN113468169A (zh) 硬件数据库查询方法、数据库系统查询方法及装置
JPS63131227A (ja) デ−タ処理方式
JPH05324430A (ja) データ処理装置
EP0377993A2 (en) Sorting distributed data
US20240311372A1 (en) Method and database system for optimizing query processing execution scheme
US20230325390A1 (en) Methods and systems for performing a vectorized delete in a distributed database system
JPH0581338A (ja) データ処理装置
JPH0580977A (ja) データ処理装置
JPH0581342A (ja) データ処理装置
JP2787107B2 (ja) バッファ制御方式及び装置
JPH09305614A (ja) データベースの検索処理方法
JP3263123B2 (ja) データ処理システムにおけるソート処理方式