JPH033263B2 - - Google Patents

Info

Publication number
JPH033263B2
JPH033263B2 JP56074564A JP7456481A JPH033263B2 JP H033263 B2 JPH033263 B2 JP H033263B2 JP 56074564 A JP56074564 A JP 56074564A JP 7456481 A JP7456481 A JP 7456481A JP H033263 B2 JPH033263 B2 JP H033263B2
Authority
JP
Japan
Prior art keywords
data
processing
engine
sorting
memory
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 - Lifetime
Application number
JP56074564A
Other languages
English (en)
Other versions
JPS57189247A (en
Inventor
Kazuhide Iwata
Yutaka Hitai
Shigeki Shibayama
Shigeru Koyanagi
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.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric Co 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 Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP56074564A priority Critical patent/JPS57189247A/ja
Priority to US06/364,872 priority patent/US4514826A/en
Priority to EP82102957A priority patent/EP0066061B1/en
Priority to DE8282102957T priority patent/DE3274774D1/de
Publication of JPS57189247A publication Critical patent/JPS57189247A/ja
Publication of JPH033263B2 publication Critical patent/JPH033263B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
本発明は関係モデルを扱うデータベースシステ
ムで必要な集合演算を高速に実行することのでき
る関係代数演算装置に関する。 データベースシステムを構築する場合、現実世
界を抽象化して計算機内部に表現するデータをモ
デル化することが必要である。従来よりいくつか
のデータモデルが提唱されているが、その代表的
なものに階層モデル、網モデル、関係モデル等が
ある。この中で特に将来の発展が期待されている
関係モデルは、数学の集合論における関係の概念
を応用したもので、何らかの意味を有するデータ
の集まりを考えてデータベースを構成したもので
ある。上記階層モデルや網モデルは、ポインタの
チエーンで構成された複雑なデータ構造を有する
為、その応用プログラムに依存する度合が大きか
つた。これに対して上記関係モデルは、データを
集合として表現する為にデータ構造が単純である
上、各データの独立性が高く、応用プログラムの
生産性を高めると云う特徴を有している。 ところで、このような関係モデルを用いて構築
されたデータベースを操作して目的とする情報を
取り出そうとすると、データの関係の集まりから
新しい関係を作り出す集合演算が必要となる。例
えば「2、10、15、6」なるデータ要素で構成さ
れた集合f12,10,5,6)と、「3、7、10、4、9、
6、12」なるデータ要素からなる集合23,7,10,7,9,
6

,12)との間の共通要素である集合f32,10,6)と取
り出す場合、その集合演算が必要となる。具体的
にはf1なるキーワードによつてf2なる特許キーワ
ードを検索する場合がこれに該当する。しかして
従来では、この種の演算を汎用の計算機を用いて
ソフトウエア的に実行されているが、大容量デー
タを扱うデータベースでは、演算プログラムが非
常に複雑になると共に、処理時間が長くなると云
う不具合があつた。この為、上記データベースシ
ステムにおける関係モデルの集合演算を効率良く
行い得るハードウエアの開発が強く望まれてい
た。 本発明はこのような事情を考慮してなされたも
ので、その目的とするところは、関係モデルを扱
うデータベースシステムで必要とするデータの集
合演算を効率良く高速度に実行することができ、
しかもハードウエア構成が簡単で実用性の高い関
係代数演算装置を提供することにある。 即ち本発明は、2つのバツフアメモリとFIFO
機能を持つメモリを用いてソート処理するプロセ
ツサからなる第1の処理エレメントを複数個縦続
に結合してソートエンジンを構成すると共に、バ
ツフアメモリとFIFO機能を持つメモリを用いて
マージ処理するプロセツサからなる第2の処理エ
レメントを2個並列に設けてマージエンジンを構
成し、データ数の少ない集合の前記ソートエンジ
ンによるソート結果を前記マージエンジンのバツ
フアメモリに格納した後、上記データ数と同じ数
の他の集合のデータに対する前記ソートエンジン
によるソート結果を前記マージエンジンのFIFO
機能を持つメモリに格納し、これらのメモリに格
納されたデータ間でのマージ処理を行うことによ
つて上記目的を効果的に達成するようにしたもの
である。 以下、図面を参照して本発明の実施例につき説
明する。 第1図a,bは本発明における集合演算の処理
アルゴリズムを示すもので、基本的には同図aに
示すように2つの集合f1,f2からその共通するデ
ータ要素からなる集合f3を取出すものである。そ
の処理アルゴリズムは、先ず第1ステツプとして
構成要素数の少ない集合を選び、その構成要素を
ソート処理する。この場合、集合f1を選び、「2、
10、15、6」なる順序で入力された構成要素、つ
まりデータを所定の規則に従つて、例えば値いの
小さい順序に並び変えてデータ列「2、6、10、
15」なるソート処理された集合g1を形成する。 しかるのち第2ステツプとして集合f2のデータ
を入力し、上記集合g1と同じ構成要素数の組を構
成して、その組におけるデータをソート処理す
る。また上記データに連続して入力されるデータ
についても同様にしてソート処理する。今、集合
f2としてデータが「3、7、4、10、9、6、
1、2」の順序で入力されたとき、データ列
「3、4、7、10」なるソートされた集合g2と、
データ列「1、2、6、9」なるソートされた集
合g3をそれぞれ形成する。 その後、第3ステツプとして、上記集合f2に対
する部分的なソート処理された集合g2,g3が生成
される都度、前記集合g1との間でマージ処理し、
共通するデータ要素を抽出する。この抽出された
データを要素とする集合f3とすることによつて前
記した集合演算が終了する。 このような処理アルゴリズムを実行する本実施
例装置は、例えば第2図に示す如く構成される。 ソートエンジンSEは、複数(n個)の第1の
処理エレメントPE1,PE2〜PEoを縦続に接続し
て構成される。これらの第1の処理エレメント
PEk(k=o〜n)は、それぞれ2つのバツフア
メモリMk1,Mk2とFIFO機能を有するメモリ
Bk2を用いて入力データをソート処理するプロセ
ツサPkにより構成される。上記FIFO機能を持つ
メモリBk2は、データの書込みと読出しとを同時
アクセス可能で、且つデータの書込み順序に従つ
てデータを読出す、所謂フアーストインフアース
トアウト(First In First Out)機能を呈する
RAMにより構成されるものである。そしてプロ
セツサPkは、2つのメモリMk1とBk2あるいは
Mk3とBk3に書込まれたデータを対比し、所定の
規則に従つて、例えば値の小さいデータから順に
データ読出しを行うことによつて、ソート処理を
行うものである。 しかしてこのソートエンジンSEでは、1段目
の処理プロセツサPE1にて、入力されたデータの
列のうち2つ毎に組を形成し、その組においてソ
ート処理する。2段目の処理プロセツサPE2
は、上記ソート処理された2組のデータを入力し
てこれをマージし、4つのデータからなる組を形
成して、その内部においてデータをソート処理す
る。以下同様にして各段の処理エレメントは、前
段で処理された2組のデータについてソート処理
を遂次実行する。これにより、一般的にはn段の
処理エレメントを介することによつて2n個の入力
データ列がソート処理されることになる。 一方、マージエンジンMEは、2つの第2の処
理エレメントRP1,RP2を並列的に設けて構成さ
れる。これらの第2の処理エレメントRP1,RP2
は、1つのバツフアメモリM01(M02)とFIFO機
能を持つメモリB01(B02)とを用いて入力データ
の併合(マージ)処理するプロセツサP01(P02
と、このマージ処理結合である一致したデータを
書込む出力バツフアメモリOB1(OB2)によつて
それぞれ構成される。プロセツサP01(P02)はメ
モリM01(M02)とB01(B02)にそれぞれ書込まれ
た組のデータを順次比較し、その一致を検出して
一致したデータを選択的に取出し、これを出力バ
ツフアメモリOB1(OB2)に書込む如く動作する
もので、2つの処理エレメントRP1,RP2は交互
に動作して、連続する組のデータを順次マージ処
理する。 しかしてこのように構成されたマージエンジン
MEは、共通バスBUSを介して前記ソートエンジ
ンSEに接続されると共に、制御プロセツサCPに
接続されている。制御プロセツサCPはソートエ
ンジンSEによる、入力データに対する一連した
ソート処理を制御すると共に、ソートされたデー
タをマージエンジンMEに導き、このマージエン
ジンMEにて上記入力データのマージ処理を行わ
しめ、これによつて前記した集合演算の処理アル
ゴリズムをパイプライン動作させて制御するもの
である。 次にこのように構成された装置に入力データの
集合f1,f2が入力され、その共通要素からなるデ
ータの集合f3を求める処理プロセスを第3図に示
すタイミング図を用いて説明する。尚、ここでは
集合f1はデータ「2、10、15、6」を要素とし、
集合f2はデータ「3、7、10、4、9、6、1、
2」を要素とするもので、これらのデータを順次
入力して演算処理を実行するものとする。第3図
において横軸には時間(タイミング)の経過が示
され、縦軸には処理エレメントとその状態が示さ
れれている。 今、集合f1のデータ個数がn、集合f2のデータ
個数がmであるとすれば、先ずデータ個数の小な
い集合からデータ入力される。ここではn=4、
m=8であることから集合f1のデータから順にデ
ータ入力される。このようにして順次入力される
データは、第1の処理エレメントPE1のメモリ
M11,B12,M13に、M11,B12,M13,B12,M11
B12…なる順序で順次振分けられて書込まれる。
プロセツサP1では、2個の組を為すデータが入
力される都度、そのデータ比較を行い、例えば値
の小さいデータから順に読出すことによつてソー
ト処処理している。従つて第2段目の処理エレメ
ントPE2には(2、10)(6、15)なる組のデー
タが導かれる。この処理エレメントPE2ではこれ
らを相互に対比し、同様にして値の小さいデータ
から読出す。この場合、同じ組のデータについて
は既に前段のエレメントにてソート処理が行われ
ていることから、他方の組のデータとの間でデー
タ比較を行う。そして、他方の組の比較するデー
タがその読出しによつて無くなつた場合には、所
定値無限大(∞)とデータ比較してデータ読出し
を実行する。尚、値の大きいデータから順にソー
トする場合には、上記所定値として零(0)を用
いればよい。このようにして、集合f1のソート処
理が行われると、その結果はマージエンジンME
に転送され、バツフアメモリM01,M02にそれぞ
れ書込まれる。 また前記第1段目の処理エレメントPE1には、
集合f1のデータに続いて集合f2のデータが続いて
入力される。この集合f2のデータも同様にしてソ
ート処理される。しかして、前記集合f1のデータ
個数と同じ数のデータがソート処理されたとき、
そのデータの組はマージエンジンMEのメモリ
B01に書込まれる。これによつてプロセツサP01
メモリM01とB01との間のデータ対比を順次行い、
部合集合組における共通するデータを検出してい
る。またこの処理エレメントRP1におけるマージ
処理実行中には、ソートエンジンSEにおいて前
記集合f2の残されたデータについてソート処理を
行つている。この組のデータは、マージエンジン
MEのメモリB02に順次格納され、この処理エレ
メントRP2においても同様にマージ処理が行われ
ることになる。そして、集合f1のデータ個数と同
じ数のデータからなる集合f2の部分集合のデータ
組が得られる都度、そのデータはメモリB01
B02に交互に書込まれてマージ処理に供される。
しかして出力バツフアメモリOB1,OB2には、こ
れらのマージ処理によつて得られた共通データが
書込まれ、入力された全てのデータに対する処理
が終了したとき、集合演算によつて得られた集合
f3のデータとして読出される。 かくしてこのような処理ブロセスを実行する本
装置によれば、極めて高速度に処理結果をを得る
ことができる。即ち、前記集合f1,f2のデータ数
をn、m(n<m)とした場合、データ転送の終
了後、 log2n+2n なるタイミング数(ステツプ)で演算が完了す
る。例えば第3図に例示するようにn=4、m=
8の場合、 log24+2・4=10 として、10ステツプで演算を終了する。また、デ
ータ転送には(n+m)ステツプを要するから、
結局22ステツプで全ての処理を完了することにな
る。ちなみに、集合f1で示される検索キーワード
数が8個、集合f2で示される検索対象となる特許
情報のキーワードが1万個である場合には、デー
タ転送後19ステツプで検索が終了することにな
る。このことは、集合f2の要素が1万個も存在す
るにも拘らず極めて高速度な処理が可能なことを
意味する。 また別の大きな特徴として、メモリ容量が小さ
くて良いことである。即ち、第3図に示されるよ
うに、入力データは集合f1のデータ数によつて定
められる組のデータを格納するに十分な容量を備
えていればよく、この場合、各メモリは8ワード
の容量を持てばよい。そして、1万個ものデータ
を有する集合f2は、8個のデータ毎に区分され、
その中でソート処理されたのちマージエンジン
MEのメモリB01,B02に交互に格納されるので、
その構成を非常に簡単にすることができる。その
上、出力バツフアメモリOB1,OB2も、第3図中
○印で示すように、一致データのみを抽出してこ
れを格納すればよいものであるから、小容量化す
ることが可能である。 このことは、マージエンジンMEが並列構成さ
れた2個の処理エレメントRP1,RP2が並列動作
する構成としたことによる。仮りに1個の処理エ
レメントのみでマージ処理を行わんとすれば、マ
ージ処理に要する時間がソート処理に要する時間
よりも長くなるので、その差を吸収する大容量メ
モリが必要となり、具合が悪くなるが本装置では
このような不具合が懸念されることがない。逆に
処理エレメントRPの数を更に増した場合には、
ソート処理時間がマージ処理時間より長くなるの
で、結局入力データの入つてこないエレメントは
何ら機能しないことになる。従つて、実施例のよ
うに処理エレメントRPを2つ用いれば、そのマ
ージ処理とソート処理が調和するので最適な動作
が期待できることになる。 またソートエンジンSEにあつては、入力され
たデータを、集合f1によつて規定されるデータ数
毎に組を形成し、パイプライン動作によつて連続
的にソート処理するので、ソート処理結果を得る
に要する時間も非常に短くてよい。しかも、集合
f1のソート結果を得たのち、同じデータ数の集合
f2のソート結果を得てすぐにマージ処理を開始
し、この間に併行して残るデータのソート処理を
行うので、極めて処理効率が高い。集合f1のデー
タ数が上記した例より多い場合であつても、その
数に応じたステツプ数で連続処理できるので、そ
の効果は絶大である。 このように本装置によれば、関係モデルを扱う
データベースシステムの大容量のデータに対する
集合演算を極めて効率良く、高速度に実行するこ
とができる。 また本装置は第2図に示すように、簡易な構成
によつて実現され、その動作制御も簡単に行うこ
とができる。特に、同じ構成の処理エレメントを
縦続に結合してこれらを共通バス介して駆動し、
ソート処理結果を任意の処理エレメントから取出
す構成なので、システム設計、実装設計等が非常
に容易である。その上、扱うデータ量に応じてソ
ートエンジンの構成段数を適宜増減できるので、
その利点も非常に大きい等の効果も奏し、実用性
が大である。 以上、上記実施例では、共通集合の演算処理に
つき説明したが、他の集合演算を行うこもでき
る。例えば関係データベースで最も複雑といわれ
ている結合(JOIN)演算を高速度に実行するこ
とも可能である。この結合演算は、例えば異つた
2つの関係から共通の属性を利用して新しい関係
を作り出すものである。例えば次表第1表に示さ
れるレコード番号と作曲家の関係、第2表に示さ
れるレコード番号とその作品の関係と云う別個の
属性に従つて構成された集合から、第3表に示す
如き作曲家と作品とからなる新たな属性に従う集
合を作り出すような集合演算が、この結合演算で
ある。
【表】
【表】
【表】 この場合、共通する属性がレコード番号である
ことから、このレコード番号の属性に従つてソー
ト処理したのち併合処理を行つて共通するレコー
ド番号を抽出し、しかるのち、これらのレコード
番号によつて示される作曲家、および作品のデー
タをそれぞれ抽出するようにすればよい。 以上、本発明につき説明したが、本発明は上記
実施例にのみ限定されるものではない。例えば取
扱うデータ量に応じて各メモリの容量やソートエ
ンジンの構成段数定めればよい。またソート処理
の規則性も仕様に応じて定めればよい。要するに
本発明は、その要旨を逸脱しない範囲で種々変形
して実施することができる。
【図面の簡単な説明】
図は本発明の一実施例を示すもので、第1図
a,bは本発明に係る集合演算の概念を示す図、
第2図は実施例装置の概略構成図、第3図は実施
例装置の動作処理プロセスを示すタイミング図で
ある。 SE…ソートエンジン、ME…マージエンジン、
PE1,PE2〜PEo…第1の処理エレメント、RP1
RP2…第2の処理エレメント、CP…制御プロセ
ツサ、BUS…共通バス、M11,M21〜Mo1,M13
M23〜MN3…バツフアメモリ、B12,B22〜Bn2
FIFO機能を持つメモリ、P1,P2〜Po…プロセツ
サ(ソート処理)、M01,M02…バツフアメモリ、
B01,B02…FIFO機能を持つメモリ、P01,P02
プロセツサ(マージ処理)、OB1,OB2…出力バ
ツフアメモリ。

Claims (1)

  1. 【特許請求の範囲】 1 2組の入力データをその組間で相互に比較
    し、所定の規則に従つて上記入力データを順に出
    力して新たな1組のデータを生成する処理エレメ
    ントを複数個縦属に接続し、これらの処理エレメ
    ントをパイプライン動作させて入力データの列を
    ソート処理するソートエンジンと、2組の入力デ
    ータを統合して新たな1組のデータを生成するマ
    ージエンジンとを備え、 前記マージエンジンは、バツフアメモリと
    FIFO機能を持つメモリとを備え、データ数の少
    ない集合の前記ソートエンジンによるソート結果
    を前記バツフアメモリに格納した後、上記データ
    数と同じ数の他の集合のデータに対する前記ソー
    トエンジンによるソート結果を前記FIFO機能を
    持つメモリに格納し、これらのメモリに格納され
    たデータ間でのマージ処理を行うことを特徴とす
    る関係代数演算装置。
JP56074564A 1981-05-18 1981-05-18 Relational algebra operating device Granted JPS57189247A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP56074564A JPS57189247A (en) 1981-05-18 1981-05-18 Relational algebra operating device
US06/364,872 US4514826A (en) 1981-05-18 1982-04-02 Relational algebra engine
EP82102957A EP0066061B1 (en) 1981-05-18 1982-04-06 Relational algebra engine
DE8282102957T DE3274774D1 (en) 1981-05-18 1982-04-06 Relational algebra engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56074564A JPS57189247A (en) 1981-05-18 1981-05-18 Relational algebra operating device

Publications (2)

Publication Number Publication Date
JPS57189247A JPS57189247A (en) 1982-11-20
JPH033263B2 true JPH033263B2 (ja) 1991-01-18

Family

ID=13550833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56074564A Granted JPS57189247A (en) 1981-05-18 1981-05-18 Relational algebra operating device

Country Status (1)

Country Link
JP (1) JPS57189247A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5063855A (ja) * 1973-10-08 1975-05-30

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5063855A (ja) * 1973-10-08 1975-05-30

Also Published As

Publication number Publication date
JPS57189247A (en) 1982-11-20

Similar Documents

Publication Publication Date Title
US4514826A (en) Relational algebra engine
US5307485A (en) Method and apparatus for merging sorted lists in a multiprocessor shared memory system
US5495608A (en) Dynamic index retrieval, bit mapping, and optimization of a single relation access
US5051947A (en) High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream
JPH08339378A (ja) 類似文字列の展開方法、検索方法及びそれらの装置
CN110795469B (zh) 基于Spark的高维序列数据相似性查询方法及系统
JPH033263B2 (ja)
Liu et al. VLSI arrays for minimum-distance classifications
JPH033249B2 (ja)
JP3620203B2 (ja) データベースの検索処理方法
JP2000250921A (ja) データベースの管理方法およびシステム
Keller et al. The one-to-one match operator of the Volcano query processing system
JP2836103B2 (ja) 関係データベースの限定述語処理方法
JPH01163826A (ja) リレーショナルデータベースの結合処理方式
JPH0330066A (ja) 情報検索方式
Menon Sorting and join algorithms for multiprocessor database machines
JPH04215185A (ja) 条件検索処理方式
JPH10260988A (ja) クラスタリング方法
JP3824091B2 (ja) リレーショナルデータベースシステム
JPH0580977A (ja) データ処理装置
CN115809227A (zh) 一种基于数据仓库的向量化设计与实现方法及装置
JPH02151971A (ja) 木構造データのノード探索方法
JPH0798711A (ja) 表の論理積演算検索方式
JPS63149728A (ja) 索引生成方式
JPH01177124A (ja) ソータ記憶管理方式