説明

分散データベースの質問処理最適化方式

【発明の詳細な説明】
【0001】
【技術分野】本発明は、分散データベースの質問処理最適化方式に関し、より詳細には、リレーション(Relation:関係)のn次の次数の概念を導入し、その定量化を図る分散データベースの質問処理最適化方式に関する。
【0002】
【従来技術】データベースとしては、集中化して利用するものと、分散化して利用するものとがあり、データベースの間では、必要に応じてデータを取り出すことができるようになっていることが必要である。また、コンピュータシステムやネットワークの技術の進歩につれて、分散データベースの問題が重要になってきている。分散データベースの理論については多くの重要な問題が残されている。分散データベースの質問処理の最適化はその中の一つである。分散データベースは、従来の集中データベースと比べてその挙動が大きく変わっている。質問処理だけを対象としても、通信回線上でのデータ転送に応じて、質問処理の最適化も違う手法を用いざるを得ない。
【0003】文献■「分散データベースの木質問の最適化」(李紅,佐藤 洋 データベース・システム研究会64-6,プログラミング言語研究会26-3,September 1990.)には、分散データベースの木質問処理の準結合による解法の最適スケジュールを求める問題について述べられている。すなわち、問題を木質問に限り、任意の関係を簡約する(reduce)ための準結合の系列より成るスケジュールを考え、全回線使用時間を最適化する最適化問題について考察している。また、文献■「分散データベースの質問処理の最適化に関する考察」(李紅,佐藤 洋 データベース・システム研究会64-6,March 1988.)には、回線使用時間と応答時間の最適な解を求めるアプローチとして、複数属性による結合・準結合について検討されている。しかし、今までの分散データベースの質問処理の最適化に関する研究は、分散データベースに多く存在する複数属性で結合する質問を考えていない傾向があるが、これは現実と掛け離れている。
【0004】以下に、複数属性による結合について説明する。リレーションR1(a,b,c,…)とリレーションR2(a,b,c,…)と属性a,b,cについて結合をする。これは、十分に研究されていない複数属性による結合の質問である。このような質問は、集中型のデータベースにはあまり現れないものであって、分散データベースに多く現れるものと考えてもよいだろう。集中の関係型データベースの場合は、異なる関係が同じ複数の属性を持つと、データの冗長になりやすいし、処理速度も遅くなりがちでデメリットが多い。また、実際に運用するとき、データベースの首尾一貫性,障害回復,データベースの保守,耐故障性などの面にも問題が出てくる。分散データベースの場合は、共通の属性をもつ関係を異なる場所に置くことはしばしば起こり、極端な例でいうと、水平に分割された関係は、その属性が皆同じである。従って、単一属性の結合のみを最適化の対象とするモデルが不完全だと考えられる。この問題を正面から取り扱う研究はほとんどないようである。
【0005】次に、結合と準結合からレデューサー(reducer)を求める方法について述べる。通常、分散データベースの質問処理は三つのステップからなっている。(a)局所処理(step1),(b)データ転送によるリレーションサイズの減少(step2),(c)結果を求めるノードへのデータ転送と演算(step3)である。(b)において、単一準結合を用いるものはたくさん提案されている。最近では、この段階で結合を導入する提案も見られる。図4(a)〜(e)は、結合と準結合を説明するための図である。図(a),(b)はリレーションA,Bを、図(c)は結合を、図(d),(e)は準結合を各々示している。リレーションA(図(a))とリレーションB(図(b))をaに関し結合すると、図(c)のようになり、すべてのデータが包含される。リレーションA(図(a))の属性aに関し、リレーションB(図(b))へ準結合すると、リレーションAの属性aはa1がリレーションBの属性aのa1と共通するので、図(d)のようになる。また、リレーションA(図(a))の属性bに関し、リレーションB(図(b))へ準結合すると、リレーションAの属性bのb2がリレーションBの属性bのb2と共通するので、図(e)のようになり、b3のタプルは除外される。以上のように、準結合は結合による処理よりもデータ量を減らして取扱うことが可能であり、結合をレデューサーに入れることは又準結合で得られない効果があることもわかる。
【0006】
【目的】本発明は、上述のごとき実情に鑑みてなされたもので、分散データベースの質問処理の最適化に対して、リレーションの次数の概念とその定量化及びこれをベースとした複数属性による準結合を用いた分散データベースの質問処理最適化方式を提供することを目的としてなされたものである。
【0007】
【構成】本発明は、上記目的を達成するために、(1)ネットワークで接続された複数のノードに分散されたリレーショナルデータベースからなる分散データベースシステムにおいて、リレーションのタプル数が、該リレーション中のk個の相異なる任意の単一属性毎のタプル数の積の最小値を超える場合の最大のkを該リレーションの次数として決定する次数決定手段と、複数属性で結合する質問に現れる各リレーション間で、準結合してから他のノードに転送する方が、準結合せずに直接他のノードに転送するよりコストが低いような準結合をメリットのある準結合として求めて、これらのリレーション間の準結合取った結果を転送列に加える操作を行う準結合手段とを有し、リレーションを前記次数決定手段で決定された次数毎に分けてリレーション集合を作成し、この最も低い次数のリレーション集合から最も高い次数のリレーション集合に対して順次、サイズの小さいリレーションに対してメリットのある準結合を得て、転送列を得ること、或いは、(2)ネットワークで接続された複数のノードに分散されたリレーショナルデータベースからなる分散データベースシステムにおいて、各ノード内リレーションに対して、複数属性結合する質問射影と選択演算及びノード内での結合として実行する局所処理手段と、リレーションのタプル数が、該リレーション中のk個の相異なる任意の単一属性毎のタプル数の積の最小値を超える場合の最大のkを該リレーションの次数として決定する次数決定手段と、前記局所処理した各リレーションを次数毎に分けてリレーション集合を作る集合手段と、前記集合手段で求めた最も小さい次数のリレーション集合を除くすべてのリレーション集合から、異なる単一属性に対して最もサイズの小さいリレーションを一つずつ抽出して該最も小さい次数のリレーション集合に付加する抽出手段と、前記リレーション集合内でサイズの最も小さいリレーションから最も大きいリレーションまで順次、該リレーションとこれ以外のリレーション集合内のリレーションに対して、準結合してから他のノードに転送する方が、準結合せずに直接他のノードに転送するよりコストが低いような準結合を求めて、これらのリレーション間の準結合を取った結果を転送列に加える操作を行う準結合操作手段と、前記準結合操作手段で加えた転送列を次に高い次数のリレーション集合に追加する操作を、最も低い次数のリレーション集合から最も高い次数のリレーション集合まで繰り返して行う制御手段とを備え、前記制御手段は、最後に、結合されていないリレーションを直接に質問を求めるノードに転送するようにしたこと、更には、(3)前記(2)において、前記準結合操作手段は、他のリレーションと準結合を行ってもコストを低くできないとき、そのリレーションをリレーション集合から削除し、他のリレーションと共通の属性を持たないリレーションは削除しないことを特徴としている。
【0008】まず、図3(a)〜(d)に基づき、分散データベースの質問処理について説明する。図(a)は、コミュニケーションネットワークを示す図で、ノード(局所:サイト)■〜■を有し、ノード■には分散データベース(DDB1:Distributed Data Base 1)を有し、ノード■には分散データベース(DDB2)、ノード■には分散データベース(DDB3)を各々有している。また、DDB1におけるリレーションはR1(a,b)(a,bは属性)を、DDB3におけるリレーションはR3(a,b)を各々有している。ノード■は質問を提出するノードである。例えば、質問R(a,b)=R1(a,b)*R3(a)(*は結合を示す)があった場合、図(b)〜(d)の転送手順が考えられる。図(b)においては、ノード■からR1(a,b)がノード■へ、ノード■よりR3(a)がノード■へ転送される。図(c)において、ノード■よりR3(a)がノード■へ転送され、準結合を取り、ノード■からR1(a,b)がノード■へ転送される。図(d)において、ノード■よりR1(a)がノード■へ転送され、準結合を取り、ノード■よりR3(a)がノード■へ転送され、準結合を取り、次にノード■よりR1(a,b)がノード■へ転送される。図(d)における転送手順は、他の順番も考えられる。コストを最小とするこのような転送手順を提案することが本発明の目的である。
【0009】次に、分散データベースのモデルとリレーションのn次次数の概念について、以下に説明する。
■分散データベースの質問処理最適化方式のモデルと記述法について説明する。本発明における分散データベースの質問処理の環境は、遠隔地に分散されたコンピュータネットワークである。そのため、質問処理のコストは通信にかかるコストのみとする。コストは転送するデータの量の線型関数とし、次の式を用いる。
C = C0 + βX …(1)
0は通信設定のコスト、βは単位データを転送するコスト、Xは転送されるデータの量である。簡単のため、β=1とする。
【0010】質問の対象となるデータベースは、分散されたリレーショナルデータベースである。質問処理は、まずネットワークの各ノードで行われるものとする。したがって、扱うリレーションはそれぞれ異なるノードに格納されているとする。同じデータが複数存在するときは、事前に一つ選ばれたとする。データはリレーション上に均一に分布されているとし、リレーションの属性は統計的に互いに独立とする。以上の仮定は多くの文献で見られるが、ほとんどの文献では結合する属性は一つであることと仮定しているか、または、一般的な質問であると仮定するが、最適化の課程において、単一属性の結合しか考慮にいれていない。このような仮定は、実際に分散データベースの質問処理の多くに対して最適化の程度を妨げている。すなわち、分散データベース環境に多く現れる複数属性に関する結合が含まれていない。
【0011】本発明においては、複数属性による結合を含む一般的な質問を最適化の対象とする。ここでは、リレーションをU,R等で表わし、属性をa,b,c,…で表わす。R(a,b,c)は属性aとbとcを持つリレーションを表わすことになる。R(a)はリレーションをaに射影した関係とする。R(a,b,c)のタプル(Tuple)数はtまたはTで記述する。R(a)のタプル数はtaまたはtR(a)で表わす。Daは属性aの領域の大きさを表わす。R(a)の選択度はpaまたはpRで、p=ta/Daである。また、以下のような記号を使う。
R(a):リレーションR(a)、または、そのタプル数|R|:リレーションRのサイズtab:属性aとbからなるリレーションR(a,b)のタプル数R1→R2:リレーションR1をリレーションR2に転送し、R2のノードで準結合する。
【0012】■複数属性を持つリレーションの選択度と複数属性による準結合について説明する。従来、リレーションR(a,b)の選択度を論じるとき、単一属性に射影したリレーションR(a)(R(b))の選択度pa=ta/Da(pb=tb/Db)しか取り扱われていない。tabはリレーションR(a,b)のタプル数とすると、次のような不等式が成り立つ。
tab ≦ ta × tb …(2)
上記の式の両端をDa×Dbで割ると、次の式が成り立つ。
【0013】
【数1】


【0014】複数属性を持つリレーションR(a,b)の選択度pabは、上記式の左端によって決まる。
pab = tab/(Da × Db) …(4)
同様に、タプルt個を持つリレーションR(a1,a2,…an)の選択度pは、p = t/(Da1 × Da2 ×…Dan) …(5)
となる。後述するように、複数属性を準結合するとき、このように定義した複数属性の選択度を用いる方法は、単一属性のときと同様に合理性を持っている。したがって、タプル数tを持つリレーションRが選択度pの複数(単一)属性のリレーションによって準結合された場合、準結合された後のリレーションのタプル数t′がt′= t × p …(6)
となる。結合されない属性bのタプル数の期待値R′(b)は次の式で計算する。
【0015】この式は、(6)式の近似式である。
R′(b) = min{t×p,tR(b)} …(7)
式(2)は次のようになっていることが多い。
tab ≪ ta × tb …(8)
したがって、次式が成り立つ場合が多い。
pab ≪ pa × pb …(9)
この式は、左辺が複数属性(a,b)で準結合する場合の選択度であり、右辺が属性aと属性bを別々で準結合する場合の選択度である。複数属性による準結合のほうが、それぞれ単一属性による準結合より結合を受ける関係をより小さくすることを示している。属性の数が多ければ、レデューサーとしての効率も大きくなる。しかし、複数属性においては、その中の単一属性に注目すると、データの重複が存在する。
【0016】■リレーションのn次次数の概念について説明する。前記文献■では、リレーションを1次か2次かについて定性的に述べている。ここで、定性的な意味における1次,2次とは、例えば、社員を特定する場合にコード(社員番号)がわかればコードのみで特定される。すなわち、1つの属性で特定されれば、それが1次である。しかし、コードがわからず、社員名のみで特定しようとすると、同姓同名のものは特定されないので、生年月日を加味して特定するような場合には、属性が2つ必要となり、これが2次である。本発明においては、もっとも一般的なケースに対してリレーションの次数を定量的に規定する。
【0017】リレーションR(a1,a2,…an)のタプル数をTとし、R(ai)(i=1,2,…n)のタプル数をtiとする。リレーションRに対して整数Ki(i=1,2,…n)を次のように計算する。
1 = min{t1,t2,…tn
2 = min{t1×t2,t1×t3…tn-1×tn} …(10)
… … Kn = t1×t2×…×tnしたがって、K1 ≦ K2 ≦ … ≦ Kn …(11)
1 ≦ T ≦ Kn …(12)
が成り立つ。
1 ≦ K2 ≦ … ≦ Km ≦ T < Km+1≦ … ≦ Kn …(13)
のとき、リレーションRの次数をmとし、次のように書くことにする。
d(R)= m.
以上のことから、次の表1のリレーションR(a,b,c)は1次のリレーションである。
【0018】
【表1】


【0019】すなわち、表1より t1=80,t2=100,t3=60であるので、K1 = t3 = 60K2 = t3 × t1 = 60 × 80 = 4800K3 = t1 × t2 × t3 = 60 × 80 × 100=480000となり、リレーションRのタプル数T=100であるので、K1(=60)≦T(=100)<K2(=4800)
が成り立つので、次数は1次である。次の表2のリレーションR(a,b,c)は2次のリレーションである。
【0020】
【表2】


【0021】すなわち、表2より、リレーションRのタプル数T=5000であるので、K2(=4800)≦T(=5000)<K3(=480000)
が成り立つので、次数は2次である。
【0022】次に、リレーションの次数と複数属性の準結合について説明する。前述では、リレーションの次数について説明した。この次数について定性的に説明すると、一般的には、リレーションの各属性のタプル数がリレーションのタプル数と多く違わなければその関係が1次のリレーションであるし、リレーションのタプル数がリレーション内の二つの属性のタプル数の積とほぼ同等なら、その関係は2次のリレーションである。同時に、属性n個のリレーションの次数がnのとき、リレーションのタプル数は全ての属性のタプルの積に近いであろう。
【0023】複数の結合属性の持つリレーションを他のノードに転送するときに、次の3つのことに注意しなければならない。第1に転送されるデータの量、いわゆるコスト、第2に転送されるデータによって先方のリレーションはサイズがどのくらい減るか、これは、ベニフィト(benefit)と呼ばれ、転送されるデータの選択度と関係する。第3に転送されるデータの属性間の関連情報である。リレーションを属性に射影してから転送する場合は、射影によって他のデータとの間の対応情報が失われることがあるが、重複するデータの量が減ることになる。選択度は射影するたびに大幅に増える。次数の説明から分かるように、明らかにn個の属性を持つリレーションRはその次数d(R)が1とnの間である。
【0024】リレーションRのタプル数をTとし、射影されたリレーションR′のタプル数をT′とする。次式が成り立つ。
T′≦ TリレーションRの次数を計算するための整数をKとし、射影されたリレーションR′の次数を計算するための整数をK′とすると、前述した次数の説明によって、K′i ≧ Ki (1≦i≦Rの属性数)
が成り立つ。上記の両式によって、R′の次数はRの次数より増えないことを示している。このことから(A):“リレーションR(a1,a2,…an)の任意の射影R′の次数はRの次数より増えることはない”ということが言える。実際に、射影した関係R′の次数はかなり小さくなることが多い。さらに“1次のリレーションの任意の射影は次数が1次である。”も言える。
【0025】以下に、準結合を取るときのリレーションの次数について説明する。リレーションRのタプル数をTとし、リレーションR1(a1)の選択度はpとする。準結合したあとのリレーションをR′とし、そのタプル数をT′とする。また、Rの各属性のタプル数をti(i=1,2,…n)とし、R′の各属性のタプル数をt′i(i=1,2,…n)とする。したがって、T′= T × p …(14)
となる。これから次式が成り立つことを証明する。
T′< K′m+1 …(15)
便宜のため、t2≦t3≦ … ≦tnとする。したがって、 K′m+1= min{t1×p×min{T′,t2}×min{T′,t3}×…×min{T′,tm+1}, min{T′,t2}×min{T′,t3}×…×min{T′,tm+2}} …(16)
T′が式(16)の右辺の計算結果に現れるなら、式(15)が成り立つ。そうでないとき、式(16)は次式になる。
K′m+1=min{t1×p×t2×t3×…×tm+1,t2×t3×…×tm+2} …(17)
式(17)の右辺において、両値のどちらが小さくても、Km+1の定義と式(14)を考えると、T′<K′m+1が成り立つ。すなわち、単一属性の準結合を受けたリレーションの次数が大きくならないことがわかる。
このことから(B): "準結合したリレーションの非結合属性のタプル数の期待値は、式(7)を用いて計算するものとすれば、リレーションR(a1,a2,…an)は単一属性のリレーションR1(a1)によって準結合を取っても次数は増えない" ということが言える。
【0026】後述する式(25)と前記(B)の説明により、(C): "準結合したリレーションの非結合属性のタプル数の期待値は、式(7)を用いて計算するものとすれば、リレーションR(a1,a2,…an)は他のリレーションによって準結合を取っても次数は増えない" ことが言える。又、式(16)でT′≦t2が成り立つようにpを選べば(C1):準結合を受けるリレーションは準結合したあとに1次のリレーションにも成り得る。
【0027】前記(A)と(C)ではリレーションが射影されること、または、準結合を受けることで次数が小さくなる(大きくはならない)こと、(C1)では、準結合するときの選択度が小さければ、準結合をしたあとのリレーションの次数も最小限に小さくなることがわかった。リレーションの次数が小さいとき、リレーション内でデータの重複度は少ない。例えば、1次のリレーションでは任意の二つの属性に射影すれば、そのデータは重複しない。一般的にn属性のリレーションは次数がm(m>1)のとき、そのリレーション内でタプル数のもっとも小さい単一属性はデータが極めて大きい回数重複する。前記(A)により、このようなリレーションは部分属性に射影することによって次数を減らすことができるし、重複度も減らすことができる。一般的に許される重複度はリレーションの次数とリレーションのサイズの両方に関係する。リレーションの次数だけを考えると、ここで単にm>n/2のときには高次リレーションと呼び、そうでないときは低次リレーションと呼ぶことにする。すなわち、リレーションの各単一属性のタプル数をソートした列を考えるとき、その列の中間にある単一属性のデータが重複しているなら高次リレーションとなる。
【0028】リレーションの次数の規定はリレーションの全体のタプル数に緊密に依存している。同じ属性を持つリレーションの全体のタプル数が小さいとき、その次数も通常小さい。複数属性による準結合をすることによって、準結合されたリレーションのタプル数は非常に小さくなり、これと同時にそのリレーションの次数も小さくなる。この現象は準結合する複数属性の数に関係する。複数属性の数が多ければ多いほど結合されたリレーションはタプル数と次数が小さくなる。リレーションの次数は、リレーションをどのように射影して転送するかを判断する重要な因子になっている。リレーションは、次数が高い程データが多く重複して、射影されたリレーションの選択度が小さい。このような高次のリレーションを部分属性に分割すると、より低い転送コストが得られる
【0029】図1は、本発明による分散データベースの質問処理最適化方式の一実施例を説明するための構成図で、図中、1は局所処理手段、2は集合手段、3は抽出手段、4は準結合操作手段、5は準結合手段、6は次数決定手段、6aは判断手段、6bは分割手段、7は転送列作成手段、8は制御手段である。局所処理手段1は、ネットワークの各ノード内で複数属性による結合を含む質問に現われる各リレーションに対して、射影と選択と結合演算のすべて、あるいはいずれかを処理する。集合手段2は、該局所処理手段1に基づいて得たリレーションを次数毎に分けてリレーション集合を作る。複数属性による結合を含む質問に現われるリレーションの次数を得る。次数決定手段6は、前述した(10)式〜(13)式に基づいて決定される。準結合した結果のリレーションの次数が高次リレーションであるかどうかの判断をする判断手段6aと、該判断手段6aにより高次であると判断されたときには、部分属性に分割することにより低次のリレーションとする分割手段6bとを有する。該分割手段6bにより分割された低次のリレーションを、次に大きいサイズのリレーション集合へ付加するようにする。抽出手段3は、前記集合手段2によって作られたリレーション集合の中からサイズの最も小さい異なる単一属性のリレーションを抽出し、該リレーションを新たにリレーション集合に付加する。準結合操作手段4は、前記抽出手段3により付加されたリレーション集合内におけるリレーションから順次にメリットのある準結合を準結合手段5により求め、転送列作成手段7により転送列を得て、次に高い次数のリレーション集合に付加する。制御手段8は、前記各手段の低次から最高次のリレーション集合までの制御を行わせて最終的な転送列を求め、質問を求めるノードへ転送する。
【0030】次に、図2に基づき、質問処理最適化方式の手順について説明する。これまでは、リレーションの次数の性質について説明したが、ここでは、リレーションの次数の性質を利用した質問処理最適化方式の手順について説明する。リレーションが準結合される場合を検討する。準結合されてから他のノードに転送するほうが、準結合せずに直接に他のノードに転送するよりコストが低い場合、その準結合をメリットのある準結合と呼ぶ。次の手順は、全回線使用時間(total time)を最適化の対象とするものである。
step1: 各ノードで局所処理、すなわちノード内での射影と選択演算及び結合を行う。
step2: 局所処理したリレーションを次数ごとにわけて、i次のリレーションからなる集合をGiとする。次数のもっとも小さい集合をGlと書く。
step3: Glを除くすべてのリレーションから、サイズの最も小さい異なる単一属性を一つずつ抽出する。抽出された単一属性のリレーションをG1に付加する。
【0031】step4: リレーション集合G1から順次に次数のもっとも高いリレーション集合まで、次のような操作を繰り返して行う。
step4-1:集合内でリレーションをサイズの昇順にソートする。
step4-2:集合内でサイズの小さいリレーションからメリットのある準結合を求め、準結合をとり、これを転送列に加える。他のリレーションと準結合を行ってもメリットがないとき、そのリレーションは集合から削除される。ただし、他のリレーションと共通の属性を持たないリレーションは削除しない。
step4-3:準結合した結果のリレーションは、高次リレーションなら、それを適切に低次リレーションに分けて、次にサイズの大きいリレーションに対して準結合をとる。この操作は、この集合のもっともサイズの大きいリレーションまで行われる。
step4-4:上記の操作によって得られた結果は複数のリレーションも有りえる。これらのリレーションを次に高い次数のリレーション集合に追加する。最も次数の高いリレーション集合の場合は、その結果のリレーションを質問を求めるノードに転送する。
step5: 最後に、結合されていないリレーションを直接に質問を求めるノードに転送するか、または、前記step4で得られた結果を適切に射影し、準結合をしてから質問を求めるノードに転送するかを選択する。質問は質問を求めるノードで計算される。図2に示した手順を応答時間を小さくするための手段に直すには、以下のところで並列化を図ればよい。step3では、抽出されたリレーションを適切に全てのリレーション集合に付加する。step4を並列に実行する等の方法を取ればよい。以下の表3に具体的な実施例を示す。
【0032】
【表3】


【0033】分散データベースは、リレーションR1(a,b)とR2(a,b,c)とR3(a,b,c)から構成されている。リレーションの次数と次数の高さも前記表3に示している。この分散データベースに対して、リレーションR1とR2とR3を属性(a,b,c)について結合する質問が現れるとき、前記処理手順に従って実行する。通信設定のコストC0=5とする。前記手順のstep2によって次数ごとのリレーション集合は次の通りである。
1={R1}, G2={R2}, G3={R3
前記手順のstep3にしたがって、リレーションR2とR3から単一属性のリレーションR2(b)とR3(a)とR3(c)を抽出し、それをリレーション集合G1に追加すると、G1は次のようになる。
G′1 ={R3(a),R2(b),R3(c),R1
【0034】このリレーション集合において、前記手順のstep4により、次の転送が選ばれる。
3(a) → R12(b)を使ってメリットのある準結合が得られなかったため、R2(b)をG2に付加しない。R3(a)とR1で結合した結果、R′1(a,b)とR3(c)をG2に追加する。R′1のタプル数は80×0.3=24になる。リレーション集合G′2は次の通りとなる。
G′2 ={R′1(a,b),R3(c),R2
前記手順のstep4にしたがって、R′1をR2に転送して準結合する。その結合結果は低次リレーションなので、リレーション集合G3に追加し(R3(c)はR2(b)と同じ理由でG3に付加せず)、リレーションR3と準結合を取る。結果として、次の転送スケジュールが得られる。
転送スケジュール: R3(a) → R1 → R2 → R3 →そのコストは次の式によって計算できる。
【0035】
【数2】


【0036】以下の表4に他の実施例を示す。
【0037】
【表4】


【0038】分散データベースは表4の関係から構成されているリレーションR1とR2とR3とR4を属性(a,b,c)について結合する質問のスケジュールを前記処理手順で求める。通信設定のコストC0=5とする。前記手順のstep2と3によって、次数ごとのリレーション集合は次の通りである。
G′1={R4(a),R3(b),R4(c),R1,R2}, G2={R3,R4
リレーション集合G′1において、前記手順のstep4により、次の転送とリレーションが選ばれる。
4(a) → R2 …(18)
3(b)が削除され、G′1で得られた結果R′2とR4(c)とR1をG2に付加すると、リレーション集合G′2は次の通りとなる。
G′2={R′2(a,b),R4(c),R1,R3,R4
【0039】前記手順のstep4にしたがって、次の転送スケジュールが選ばれる。
R′2(a,b) → R3(a,b) → R4(a,b,c) → …(19)
前記手順のstep5では、関係R′4(b)をR1に転送し、準結合をしてから結果の求めるノードに転送する。
R′4(b) → R1 → …(20)
前記(18),(19),(20)から、最終転送スケジュールは次のようになる。
転送スケジュール:R4(a) → R2(a,b) → R3(a,b) → R4(a,b,c) →R′4(b) → R1 →そのコストは、次の式によって計算できる。
【0040】
【数3】


【0041】次に、複数属性を持つリレーションの選択度について説明する。ここでは、複数属性による準結合を行ったときの選択度について述べる。リレーションU(a,b,…)をリレーションR(a,b)により準結合を行う。リレーションR(a,b)を属性a,bに分けて別々に結合するのではなく、aとbペアを送って準結合するものとする。このとき、R(a,b)のタプルはDa×DbからランダムにtR個が選ばれたと考えると、リレーションR(a,b)の選択度pRは次の式となる。
R = tR/(Da×Db) …(21)
R(a,b)のタプルをこのように選んだとすると、R(a,b)のaまたはbの単一属性のタプル数の期待値が求められる。これを使って、特別の場合の近似式をtaについてのみ与えると、taの期待値は次のようになる。
【0042】
【数4】


【0043】tbについても同様である。これから準結合に用いるリレーションR(a,b)に関して、そのタプル数tの他、単一属性のタプル数ta,tbが与えられている場合を考える。このとき、t個のタプルはランダムに選ばれるが、taとtbが与えられているため、前の場合のサブアンサンブルを考える必要があり、その選択度は前記(21)と一致しない恐れがある。準結合を受けるリレーションU(a,b)のあるタプルχを考える。χの属性aの値,bの値が、a,bの値の中にある確率pa,pbは、 pa = ta/Da, pb = tb/Db …(23)
である。この条件が満たされた上でχの中のab対の値がR(a,b)の中のab対と一致する条件確率pabは、R(a,b)のab対がta×tb個の対の中からランダムに選ばれると考えて、pab = t/(ta×tb) …(24)
となる。(23)のpaとpbの積とpabを掛けて、R(a,b)の選択度pは、 p = pa×pb×pab = t/(Da×Db) …(25)
となり、(21)と一致していることが分かる。このようにして、(21)または(25)の選択度の公式は、十分な合理性を持つと考えられる。以上は2属性のことを考えたが、属性数が3以上の場合も同様に拡張できる。
【0044】まず、すべてのもっとも小さい単一属性を考慮に入れる。単一属性のリレーションはサイズが小さくて、すべての情報を持っている。射影されるもっとも小さい単一属性は、高次のリレーションから分離される確率が高いため、転送コストも低い。次に、2次以上のリレーションの準結合を考える。この段階では、複数属性の準結合また結合が導入される。そのため、リレーションの属性の間にある対応情報の損失をかなり小さい程度に押さえることができ、かつ、小さい選択度(複数属性を持つリレーションの選択度)で他のリレーションを有効にレデュースすることができる。
【0045】すべてのリレーションを単一属性に射影してから結合するという従来の方法について検討してみる。表3に示す分散データベースを例に取ることにする。リレーションR2にすべての単一属性を送って結合した結果、リレーションはサイズが216であるが、同様にしてすべての単一属性とリレーションR3と準結合した結果、リレーションはサイズが11520である。この数値と前述したすべての転送コスト121との差は明らかに非常に大きい。これは、単一属性の準結合を用いて高次リレーションのサイズが効果的に減らされないことを示している。単一属性の限界とも言える。
【0046】また、リレーション(複数の属性を持つ)をレデューサーに加わることについて、本発明の手順はできるだけ多くのリレーションをレデューサーに入れている。まず、低次のリレーションを入れて、高次のリレーションを低次にしてから入れるようになっている。このようにして、結合による効果を得ることができる。各ノードのリレーションの次数や複数属性の選択度などの情報を管理しなければならないのは、ネットワークのオーバーヘッドを増やすのではないかという疑問点がある。しかし、実際の分散データベースを考えると、各ノードで多くとも数キロバイトの情報量が増えるだけで、大きい問題はない。
【0047】
【効果】以上の説明から明らかなように、本発明によると、分散データベースに合うモデルを使って、分散データベースの質問処理最適化方式を提案しているので、複数属性による準結合をレデューサーに入れる方式が非常に有効で、結合演算も取り入れることができた。これらはリレーションのn次の次数の概念の導入とその定量化によって実現されている。また、転送コストを小さくすることができ、質問処理に要する全回線使用時間の短縮化が図れる。
【図面の簡単な説明】
【図1】 本発明による分散データベースの質問処理最適化方式の一実施例を説明するための構成図である。
【図2】 本発明による分散データベースの質問処理最適化方式の一実施例を示すフローチャートである。
【図3】 分散データベースの質問処理を説明する図である。
【図4】 リレーションの結合と準結合を説明するための図である。
【符号の説明】
1…局所処理手段、2…集合手段、3…抽出手段、4…準結合操作手段、5…準結合手段、6…次数決定手段、6a…判断手段、6b…分割手段、7…転送列作成手段、8…制御手段。

【特許請求の範囲】
【請求項1】 ネットワークで接続された複数のノードに分散されたリレーショナルデータベースからなる分散データベースシステムにおいて、リレーションのタプル数が、該リレーション中のk個の相異なる任意の単一属性毎のタプル数の積の最小値を超える場合の最大のkをリレーションの次数として決定する次数決定手段と、複数属性で結合する質問に現れる各リレーション間で、準結合してから他のノードに転送する方が、準結合せずに直接他のノードに転送するよりコストが低いような準結合をメリットのある準結合として求めて、これらのリレーション間の準結合取った結果を転送列に加える操作を行う準結合手段とを有し、リレーションを前記次数決定手段で決定された次数毎に分けてリレーション集合を作成し、この最も低い次数のリレーション集合から最も高い次数のリレーション集合に対して順次、サイズの小さいリレーションに対するメリットのある準結合を得て、転送列を得ることを特徴とする分散データベースの質問処理最適化方式。
【請求項2】 ネットワークで接続された複数のノードに分散されたリレーショナルデータベースからなる分散データベースシステムにおいて、各ノード内のリレーションに対して、複数属性結合する質問射影と選択算及びノード内での結合として実行する局所処理手段と、リレーションのタプル数が、該リレーション中のk個の相異なる任意の単一属性毎のタプル数の積の最小値を超える場合の最大のkを該リレーションの次数として決定する次数決定手段と、前記局所処理した各リレーションを次数毎に分けてリレーション集合を作る集合手段と、前記集合手段で求めた最も小さい次数のリレーション集合を除くすべてのリレーション集合から、異なる単一属性に対して最もサイズの小さいリレーションを一つずつ抽出して該最も小さい次数のリレーション集合に付加する抽出手段と、前記リレーション集合内でサイズの最も小さいリレーションから最も大きいリレーションまで順次、該リレーションとこれ以外のリレーション集合内のリレーションに対して、準結合してから他のノードに転送する方が、準結合せずに直接他のノードに転送するよりコストが低いような準結合を求めて、これらのリレーション間の準結合を取った結果を転送列に加える操作を行う準結合操作手段と、記準結合操作手段で加えた転送列を次に高い次数のリレーション集合に追加する操作を、最も低い次数のリレーション集合から最も高い次数のリレーション集合まで繰り返して行う制御手段とを備え、前記制御手段は、最後に、結合されていないリレーションを直接に質問を求めるノードに転送するようにしたことを特徴とする分散データベースの質問処理最適化方式。
【請求項3】 請求項2に記載の分散データベースの質問最適化方式において、前記準結合操作手段は、他のリレーションと準結合を行ってもコストを低くできないとき、そのリレーションをリレーション集合から削除し、他のリレーションと共通の属性を持たないリレーションは削除しないことを特徴とする分散データベースの質問処理最適化方式。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図4】
image rotate


【特許番号】特許第3526585号(P3526585)
【登録日】平成16年2月27日(2004.2.27)
【発行日】平成16年5月17日(2004.5.17)
【国際特許分類】
【出願番号】特願平4−88208
【出願日】平成4年3月12日(1992.3.12)
【公開番号】特開平5−257768
【公開日】平成5年10月8日(1993.10.8)
【審査請求日】平成11年3月3日(1999.3.3)
【出願人】(000006747)株式会社リコー (37,907)
【参考文献】
【文献】疋田 定幸,図解分散型データベースシステム,日本,株式会社オーム社,1989年 5月25日,第1版,P.94〜95