JPH03288967A - データベース処理システム - Google Patents
データベース処理システムInfo
- Publication number
- JPH03288967A JPH03288967A JP2090464A JP9046490A JPH03288967A JP H03288967 A JPH03288967 A JP H03288967A JP 2090464 A JP2090464 A JP 2090464A JP 9046490 A JP9046490 A JP 9046490A JP H03288967 A JPH03288967 A JP H03288967A
- Authority
- JP
- Japan
- Prior art keywords
- join
- target
- key
- condition
- outer join
- 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
Links
- 238000000034 method Methods 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000008878 coupling Effects 0.000 abstract 9
- 238000010168 coupling process Methods 0.000 abstract 9
- 238000005859 coupling reaction Methods 0.000 abstract 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000001174 ascending effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 102100030146 Epithelial membrane protein 3 Human genes 0.000 description 1
- 101001011788 Homo sapiens Epithelial membrane protein 3 Proteins 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
この発明は、データベースへの問い合わせを効率的に処
理するためのデータベース処理システムに係り、特に2
つの入力テーブルを対象とするアウタジョイン演算方式
に関する。
理するためのデータベース処理システムに係り、特に2
つの入力テーブルを対象とするアウタジョイン演算方式
に関する。
(従来の技術)
一般にデータベース処理システムにおいてサポートされ
る演算には、単一テーブルを対象とするソート、ユニー
ク、プロジェクション、集計演算等と、2つのテーブル
を対象とするリストリクジョン、ジョイン、集合演算等
がある。このうち、ジョイン演算は、2つのテーブル(
入力テーブル)、例えば第5図(a)に示すセールスマ
ンテーブル51と第5図(b)に示す売上実績テーブル
52のキーカラム同士を比較して与えられた結合条件に
適合するタプル同士を結合し、新しいテーブル(出力テ
ーブル)のタプルとして生成する演算である。ジョイン
演算には、ナチュラルジョイン(自然結合)、アウタジ
ョイン(外結合)等がある。第5図(a)、(b)のテ
ーブル51..52を対象とするナチュラルジョインの
結果(出力テーブル)を第5図(C)に、アウタジョイ
ンの結果(出力テーブル)を第5図(d)に示す。
る演算には、単一テーブルを対象とするソート、ユニー
ク、プロジェクション、集計演算等と、2つのテーブル
を対象とするリストリクジョン、ジョイン、集合演算等
がある。このうち、ジョイン演算は、2つのテーブル(
入力テーブル)、例えば第5図(a)に示すセールスマ
ンテーブル51と第5図(b)に示す売上実績テーブル
52のキーカラム同士を比較して与えられた結合条件に
適合するタプル同士を結合し、新しいテーブル(出力テ
ーブル)のタプルとして生成する演算である。ジョイン
演算には、ナチュラルジョイン(自然結合)、アウタジ
ョイン(外結合)等がある。第5図(a)、(b)のテ
ーブル51..52を対象とするナチュラルジョインの
結果(出力テーブル)を第5図(C)に、アウタジョイ
ンの結果(出力テーブル)を第5図(d)に示す。
さて、上記のアウタジョインは、第5図(d)から明ら
かなように、与えられた結合条件に適合しないタプルを
生成するのに有効である。その理由は、例えば第5図(
a)、(b)に示す2つのテーブルを対象とする場合に
ついて述べるならば、セールスマンテーブル51と売上
実績テーブル52とをジョインしてまだ1件も売上げて
いないセールスマンをも求めることができるからである
。この際、売上げを持たないセールスマンは売上刃ラム
をnull(空)としておくのがアウタジョインである
。このアウタジョインの結果は、従来は第6図に示すよ
うな手順(アウタジョイン代替手順)により求められて
いた。以下、第6図の手順について説明する。なお、第
6図は第5図(a)に示すセールスマンテーブル51と
第5図(b)に示す売上実績テーブル52を対象とする
アウタジョインの場合である。
かなように、与えられた結合条件に適合しないタプルを
生成するのに有効である。その理由は、例えば第5図(
a)、(b)に示す2つのテーブルを対象とする場合に
ついて述べるならば、セールスマンテーブル51と売上
実績テーブル52とをジョインしてまだ1件も売上げて
いないセールスマンをも求めることができるからである
。この際、売上げを持たないセールスマンは売上刃ラム
をnull(空)としておくのがアウタジョインである
。このアウタジョインの結果は、従来は第6図に示すよ
うな手順(アウタジョイン代替手順)により求められて
いた。以下、第6図の手順について説明する。なお、第
6図は第5図(a)に示すセールスマンテーブル51と
第5図(b)に示す売上実績テーブル52を対象とする
アウタジョインの場合である。
■まず、セールスマンテーブル51と売上実績テーブル
52を入力した後、名前(姓)同士を等結合(イコール
でジョイン)シ(ステップ561)、結果を中間テーブ
ルTEMPIへ格納する。
52を入力した後、名前(姓)同士を等結合(イコール
でジョイン)シ(ステップ561)、結果を中間テーブ
ルTEMPIへ格納する。
■中間テーブルTEMPIから名前と売上目標をプロジ
ェクション(切り出し)シ(ステップ562)、結果を
中間テーブルTEMP2へ格納する。
ェクション(切り出し)シ(ステップ562)、結果を
中間テーブルTEMP2へ格納する。
■中間テーブルTEMP2をユニーク(同シ値のタプル
を除去)シ(ステップ563)、結果を中間テーブルT
EMP3へ格納する。
を除去)シ(ステップ563)、結果を中間テーブルT
EMP3へ格納する。
■セールスマンテーブル51がら中間テーブルTEMP
3をディファレンス(集合差)シ(ステップ564)、
結果を中間テーブルTEMP4へ格納する。
3をディファレンス(集合差)シ(ステップ564)、
結果を中間テーブルTEMP4へ格納する。
■中間テーブルTEMP4の右隣に売上実績カラムの値
としてnullを付加しくステップ565)、結果を中
間テーブルTEMP5へ格納する。
としてnullを付加しくステップ565)、結果を中
間テーブルTEMP5へ格納する。
■中間テーブルTEMP 1と中間テーブルTEMP5
をユニオン(集合布)シ(ステップ566)、結果をア
ウタジョインの最終出力(出力テーブル)とする。
をユニオン(集合布)シ(ステップ566)、結果をア
ウタジョインの最終出力(出力テーブル)とする。
(発明が解決しようとする課題)
上記したように従来は、アウタジョイン演算を行うのに
、相当数の演算コマンド(等結合、プロジェクション、
ユニーク、ディファレンスなどのコマンド)を組み合わ
せる必要があり、その都度多量のテーブルデータの入出
力が発生することから、高速処理が行えないという問題
があった。
、相当数の演算コマンド(等結合、プロジェクション、
ユニーク、ディファレンスなどのコマンド)を組み合わ
せる必要があり、その都度多量のテーブルデータの入出
力が発生することから、高速処理が行えないという問題
があった。
この発明は、アウタジョイン演算において、テーブルデ
ータ入出力回数および取扱いデータ量の削減が図れ、も
ってデータベース演算性能が向上できるデータベース処
理システムを提供することにある。
ータ入出力回数および取扱いデータ量の削減が図れ、も
ってデータベース演算性能が向上できるデータベース処
理システムを提供することにある。
[発明の構成]
(課題を解決するための手段および作用)この発明は、
アウタジョインの対象テーブル上の対象結合キーを順に
取り出し、その取り出した対象結合キー毎にアウタジョ
インの条件テーブル上の条件結合キーと照合し、与えら
れた結合条件に適合しない場合には条件結合キーを順に
切り替えて照合を進める照合手段と、この照合手段によ
って結合条件に適合する照合が行われた場合に、その際
の対象結合キーおよび条件結合キーをもとにジョイン処
理を行って新しく出力タプルを生成する通常ジョイン処
理手段と、上記照合手段により条件結合キーが順に切り
替えられて照合が進められても結合条件に適合する照合
が行われなかった場合に、その際の対象結合キーをもと
にアウタジョイン処理を行って新しく出力タプルを生成
するアウタジョイン処理手段とを設けることにより、等
結合、プロジェクション、ユニーク、ディファレンスな
どのコマンドを組み合わせてアウタジョイン演算を行う
従来システムに比べて、テーブルデータの入出力回数お
よび取扱いデータ量が削減できるようにしたことを特徴
とするものである。
アウタジョインの対象テーブル上の対象結合キーを順に
取り出し、その取り出した対象結合キー毎にアウタジョ
インの条件テーブル上の条件結合キーと照合し、与えら
れた結合条件に適合しない場合には条件結合キーを順に
切り替えて照合を進める照合手段と、この照合手段によ
って結合条件に適合する照合が行われた場合に、その際
の対象結合キーおよび条件結合キーをもとにジョイン処
理を行って新しく出力タプルを生成する通常ジョイン処
理手段と、上記照合手段により条件結合キーが順に切り
替えられて照合が進められても結合条件に適合する照合
が行われなかった場合に、その際の対象結合キーをもと
にアウタジョイン処理を行って新しく出力タプルを生成
するアウタジョイン処理手段とを設けることにより、等
結合、プロジェクション、ユニーク、ディファレンスな
どのコマンドを組み合わせてアウタジョイン演算を行う
従来システムに比べて、テーブルデータの入出力回数お
よび取扱いデータ量が削減できるようにしたことを特徴
とするものである。
また、この発明は更に、対象テーブルのタプルを予め指
定された結合キーカラムでソートすると共に、条件テー
ブルのタプルを予め指定された結合キーカラムでソート
して、このソート後の対象テーブルおよび条件テーブル
を上記照合手段の照合処理に供するソート手段を設ける
一方、上記照合手段に、与えられた結合条件に適合せず
、且つその際の対象結合キーおよび条件結合キーの大小
が予め定められた関係にある場合には、この対象結合キ
ーとの結合条件に適合する条件結合キーがもはや検出さ
れないものとして対象結合キーを切り替える機能を設け
ることにより、無駄な照合動作の発生を極力防止するよ
うにしたことを特徴とするものである。
定された結合キーカラムでソートすると共に、条件テー
ブルのタプルを予め指定された結合キーカラムでソート
して、このソート後の対象テーブルおよび条件テーブル
を上記照合手段の照合処理に供するソート手段を設ける
一方、上記照合手段に、与えられた結合条件に適合せず
、且つその際の対象結合キーおよび条件結合キーの大小
が予め定められた関係にある場合には、この対象結合キ
ーとの結合条件に適合する条件結合キーがもはや検出さ
れないものとして対象結合キーを切り替える機能を設け
ることにより、無駄な照合動作の発生を極力防止するよ
うにしたことを特徴とするものである。
(実施例)
第1図はこの発明の一実施例に係るデータベース処理シ
ステムのブロック構成図である。同図において、10は
システムの中枢を成し、データベース問い合わせの処理
を行うCPU、11は各種プログラム、データ等が格納
されるメモリである。
ステムのブロック構成図である。同図において、10は
システムの中枢を成し、データベース問い合わせの処理
を行うCPU、11は各種プログラム、データ等が格納
されるメモリである。
12は後述するデータベース演算装置16に対するアウ
タジョイン演算指示に用いられるアウタジョインコマン
ド、13はアウタジョインの対象となる第1の入力テー
ブル(以下、対象テーブルと称する)、14はアウタジ
ョインの条件となる第2の入力テーブル(以下、条件テ
ーブルと称する)、15はアウタジョインの結果として
の出力テーブルである。アウタジョインコマンド12、
対象テーブル13、条件テーブル14および出力テーブ
ル15はメモリ11に格納される。
タジョイン演算指示に用いられるアウタジョインコマン
ド、13はアウタジョインの対象となる第1の入力テー
ブル(以下、対象テーブルと称する)、14はアウタジ
ョインの条件となる第2の入力テーブル(以下、条件テ
ーブルと称する)、15はアウタジョインの結果として
の出力テーブルである。アウタジョインコマンド12、
対象テーブル13、条件テーブル14および出力テーブ
ル15はメモリ11に格納される。
16はCPUl0からの要求に応じて各種のデータベー
ス演算を行うデータベース演算装置である。
ス演算を行うデータベース演算装置である。
データベース演算装置16は、CPUl0から送られる
コマンド(データベース演算コマンド)の解析を行うコ
マンド解析部17と、このコマンド解析部17によって
アウタジョインコマンドが解析された場合に同解析部1
7からの指示でアウタジョイン演算を実行する専用のデ
ータベース演算実行部(以下、アウタジョイン実行部と
称する)18とを有している。データベース演算装置1
6は更にアウタジョイン実行部18以外のデータベース
演算実行部も有しているが、本発明に直接関係しないた
め第1図では省略されている。データベース演算装置1
6はCPUl0およびメモリ11と共にバス19に接続
されている。
コマンド(データベース演算コマンド)の解析を行うコ
マンド解析部17と、このコマンド解析部17によって
アウタジョインコマンドが解析された場合に同解析部1
7からの指示でアウタジョイン演算を実行する専用のデ
ータベース演算実行部(以下、アウタジョイン実行部と
称する)18とを有している。データベース演算装置1
6は更にアウタジョイン実行部18以外のデータベース
演算実行部も有しているが、本発明に直接関係しないた
め第1図では省略されている。データベース演算装置1
6はCPUl0およびメモリ11と共にバス19に接続
されている。
第2図は上記アウタジョインコマンド12のフォーマッ
トを示す。図中、21は対象テーブル(第1の入力テー
ブル) 13の情報であり、アウタジョインに必要なキ
ーカラムの情報、テーブル13のタプル数、テーブル1
3のタプルの長さ(タプル長)、テーブル13の構成情
報およびメモリll上の位置情報(アドレス)を含む。
トを示す。図中、21は対象テーブル(第1の入力テー
ブル) 13の情報であり、アウタジョインに必要なキ
ーカラムの情報、テーブル13のタプル数、テーブル1
3のタプルの長さ(タプル長)、テーブル13の構成情
報およびメモリll上の位置情報(アドレス)を含む。
22は条件テーブル(第2の入力テーブル) 14の情
報であり、アウタジョインに必要なキーカラムの情報、
テーブル14のタプル数、テーブル■4のタプルの長さ
(タプル長)、テーブル14の構成情報およびメモリl
l上の位置情報を含む。23は結合条件を示す結合演算
子であり、アウタジョインのキー同士の比較演算子(−
、<。
報であり、アウタジョインに必要なキーカラムの情報、
テーブル14のタプル数、テーブル■4のタプルの長さ
(タプル長)、テーブル14の構成情報およびメモリl
l上の位置情報を含む。23は結合条件を示す結合演算
子であり、アウタジョインのキー同士の比較演算子(−
、<。
〉、≦、≧、≠)を含む。24は出力テーブル15の情
報であり、アウタジョインの結果テーブルの構成情報お
よびメモリ11上の位置情報を含む。
報であり、アウタジョインの結果テーブルの構成情報お
よびメモリ11上の位置情報を含む。
第3図は対象テーブル13、条件テーブル14および出
力テーブル15の構成と、アウタジョインでのテーブル
変化を説明するための図である。なお、対象テーブル1
3は第5図(a)に示したセールスマンテーブル51に
一致し、条件テーブル14は第5図(b)に示した売上
実績テーブル52に一致するものとする。第3図におい
て、31は対象テーブル13のソートキーとしての対象
キー(対象ソートキー)、32は条件テーブル14のソ
ートキーとしての条件キー(条件ソートキー)である。
力テーブル15の構成と、アウタジョインでのテーブル
変化を説明するための図である。なお、対象テーブル1
3は第5図(a)に示したセールスマンテーブル51に
一致し、条件テーブル14は第5図(b)に示した売上
実績テーブル52に一致するものとする。第3図におい
て、31は対象テーブル13のソートキーとしての対象
キー(対象ソートキー)、32は条件テーブル14のソ
ートキーとしての条件キー(条件ソートキー)である。
本実施例において対象ソートキー31および条件ソート
キー32は“名前”である。33は対象テーブル13の
タプル(対象タプル)、34は条件テーブル14のタプ
ル(条件タプル)である。35はソート後の対象テーブ
ル13の結合キーとしての対象キー(対象結合キー)、
aeはソート後の条件テーブル14の結合キーとしての
条件キー(条件結合キー)である。本実施例において対
象結合キー35および条件結合キー3Bは“名前”であ
る。37はソート後の対象テーブルであり、アウタジョ
インの入力対象テーブルである。38はソート後の条件
テーブルであり、アウタジョインの入力条件テーブルで
ある。39は通常のジョインの出力タプルであり、条件
タプル(34)のキーカラムを除く残りのカラムには元
の条件タプル(34)の対応するカラム値が含まれる。
キー32は“名前”である。33は対象テーブル13の
タプル(対象タプル)、34は条件テーブル14のタプ
ル(条件タプル)である。35はソート後の対象テーブ
ル13の結合キーとしての対象キー(対象結合キー)、
aeはソート後の条件テーブル14の結合キーとしての
条件キー(条件結合キー)である。本実施例において対
象結合キー35および条件結合キー3Bは“名前”であ
る。37はソート後の対象テーブルであり、アウタジョ
インの入力対象テーブルである。38はソート後の条件
テーブルであり、アウタジョインの入力条件テーブルで
ある。39は通常のジョインの出力タプルであり、条件
タプル(34)のキーカラムを除く残りのカラムには元
の条件タプル(34)の対応するカラム値が含まれる。
40はアウタジョインの出力タプルであり、条件側のキ
ーカラムを除く残りのカラムにはnullが含まれる。
ーカラムを除く残りのカラムにはnullが含まれる。
第4図は第1図に示すアウタジョイン実行部18のマー
ジジョインアルゴリズムによるアウタジョイン演算実行
動作を説明するためののフローチャートである。但し、
第4図のフローチャートは結合のための比較演算子がイ
コール(−)の場合である。
ジジョインアルゴリズムによるアウタジョイン演算実行
動作を説明するためののフローチャートである。但し、
第4図のフローチャートは結合のための比較演算子がイ
コール(−)の場合である。
次に、この発明の一実施例の動作を、アウタジョイン演
算を例に、第1図乃至第4図を参照して説明する。なお
、以下の説明では、便宜上、“名前°の大小比較は五十
音順の「読み」で行うものとする(本来は、漢字コード
のビットパターンで行う)。
算を例に、第1図乃至第4図を参照して説明する。なお
、以下の説明では、便宜上、“名前°の大小比較は五十
音順の「読み」で行うものとする(本来は、漢字コード
のビットパターンで行う)。
まずCPUl0は、データベース問い合わせ中にアウタ
ジョインの処理が必要となったとき、第2図に示すよう
な、対象テーブル13(セールスマンテーブル51)の
情報21、条件テーブル14(売上実績テーブル52)
の情報22、これら2つのテーブル13.14の結合条
件を表わす結合演算子23および出力テーブル15の情
報24を含むアウタジョインコマンド12をメモリ11
上に生成し、このアウタジョインコマンド12をバス1
9を経由してデータベース演算装置16に送る。
ジョインの処理が必要となったとき、第2図に示すよう
な、対象テーブル13(セールスマンテーブル51)の
情報21、条件テーブル14(売上実績テーブル52)
の情報22、これら2つのテーブル13.14の結合条
件を表わす結合演算子23および出力テーブル15の情
報24を含むアウタジョインコマンド12をメモリ11
上に生成し、このアウタジョインコマンド12をバス1
9を経由してデータベース演算装置16に送る。
データベース演算装置16は、CPUl0から送られた
アウタジョインコマンド12を受は取るとコマンド解析
部17を起動し、同コマンド12の解析を行わせる。そ
してコマンド解析部17は、コマンド解析の結果に応じ
て対応するデータベース演算実行部を起動する。この例
のように、データベース演算コマンドがアウタジョイン
コマンド12の場合には、コマンド解析部17はアウタ
ジョイン実行部18にアウタジョインコマンド12を渡
して同実行部18を起動し、アウタジョインを実行する
ように指示する。
アウタジョインコマンド12を受は取るとコマンド解析
部17を起動し、同コマンド12の解析を行わせる。そ
してコマンド解析部17は、コマンド解析の結果に応じ
て対応するデータベース演算実行部を起動する。この例
のように、データベース演算コマンドがアウタジョイン
コマンド12の場合には、コマンド解析部17はアウタ
ジョイン実行部18にアウタジョインコマンド12を渡
して同実行部18を起動し、アウタジョインを実行する
ように指示する。
アウタジョイン実行部18はアウタジョイン実行部18
からの指示に応じ、アウタジョインコマンド12に含ま
れる対象テーブル13の情報21および条件テーブル1
4の情報22の中から、それぞれのキーカラム情報を取
り出し、それぞれのソートキー(対象ソートキー811
条件ソートキー32)により対象テーブル13のタプル
(対象タプル33)と条件テーブル14のタプル(条件
タプル34)を例えば昇順でソートする(第4図ステッ
プSl、S2)。
からの指示に応じ、アウタジョインコマンド12に含ま
れる対象テーブル13の情報21および条件テーブル1
4の情報22の中から、それぞれのキーカラム情報を取
り出し、それぞれのソートキー(対象ソートキー811
条件ソートキー32)により対象テーブル13のタプル
(対象タプル33)と条件テーブル14のタプル(条件
タプル34)を例えば昇順でソートする(第4図ステッ
プSl、S2)。
このステップSl、S2のソート処理は、後での結合キ
ー同士の照合回数を最小に抑えるために行うものである
。なお、本実施例において上記ソートキー(対象ソート
キー31、条件ソートキー32)は、対象テーブル13
としてのセールスマンテーブル51の“名前1および条
件テーブル14としての売上実績テーブル52の“名前
″である。
ー同士の照合回数を最小に抑えるために行うものである
。なお、本実施例において上記ソートキー(対象ソート
キー31、条件ソートキー32)は、対象テーブル13
としてのセールスマンテーブル51の“名前1および条
件テーブル14としての売上実績テーブル52の“名前
″である。
以上のステップSl、S2のソート処理の結果、メモリ
11上には、2つのテーブル、即ちソート後の対象テー
ブル37およびソート後の条件テーブル38(第3図参
照)が生成される。アウタジョイン実行部18は、この
2つのテーブル87.38を第4図に示すマージジョイ
ンアルゴリズムに従い、対象結合キー35(対象ソート
キー31に同じ)と条件結合キー36(条件ソートキー
32に同じ)を照合することによりアウタジョインの処
理を実行し、結果を出力テーブル15として生成し、メ
モリ11に出力する。このアウタジョインの処理の詳細
を以下に説明する。
11上には、2つのテーブル、即ちソート後の対象テー
ブル37およびソート後の条件テーブル38(第3図参
照)が生成される。アウタジョイン実行部18は、この
2つのテーブル87.38を第4図に示すマージジョイ
ンアルゴリズムに従い、対象結合キー35(対象ソート
キー31に同じ)と条件結合キー36(条件ソートキー
32に同じ)を照合することによりアウタジョインの処
理を実行し、結果を出力テーブル15として生成し、メ
モリ11に出力する。このアウタジョインの処理の詳細
を以下に説明する。
まずアウタジョイン実行部18は、第4図ステップSL
、S2のソート処理の結果であるソート後の対象テーブ
ル371条件テーブル38のダブル(対象タプル、条件
タプル)のインデックスi。
、S2のソート処理の結果であるソート後の対象テーブ
ル371条件テーブル38のダブル(対象タプル、条件
タプル)のインデックスi。
jlおよびアウタジョインの結果となる出力テーブル1
5のタプル(出力タプル)のインデックスkを初期値0
に設定すると共に、i番目の対象タプル(以下、対象タ
プル[ilと称する)の対象結合キー35(以下、対象
キー[ilと称する)に−致するj番目の条件タプル(
以下、条件タプル[jlと称する)の条件結合キー8B
(以下、条件キー[jlと称する)が存在したことを
示すためのフラグF(1で真)を初期値Oに設定する(
第4図ステップS3.S4)。次にアウタジョイン実行
部18は、対象キー[il (i−0の例であれば名
前「大輪」)と条件キー[jl (j−0の例であれ
ば名前「大輪」)を比較する(第4図ステップS5)。
5のタプル(出力タプル)のインデックスkを初期値0
に設定すると共に、i番目の対象タプル(以下、対象タ
プル[ilと称する)の対象結合キー35(以下、対象
キー[ilと称する)に−致するj番目の条件タプル(
以下、条件タプル[jlと称する)の条件結合キー8B
(以下、条件キー[jlと称する)が存在したことを
示すためのフラグF(1で真)を初期値Oに設定する(
第4図ステップS3.S4)。次にアウタジョイン実行
部18は、対象キー[il (i−0の例であれば名
前「大輪」)と条件キー[jl (j−0の例であれ
ば名前「大輪」)を比較する(第4図ステップS5)。
もし、対象キー[il−条件キー[jlであるならば、
アウタジョイン実行部18は上記フラグFを1に設定す
る(第4図ステップS6)。この場合アウタジョイン実
行部18は、通常のジョイン処理として、条件タプルN
]からキー(名前)を除く他のカラムを対象タプル[i
lの右側に結合し、°出力テーブル15のタプル[k]
(k番目の出力タプル)を生成し、メモリ11に出
力する(第4図ステップS7)。そしてアウタジョイン
実行部18は出力タプルインデックスkを+1しく第4
図ステップS8)、Lかる後に条件タプルインデックス
jを+1する(第4図ステップS9)。
アウタジョイン実行部18は上記フラグFを1に設定す
る(第4図ステップS6)。この場合アウタジョイン実
行部18は、通常のジョイン処理として、条件タプルN
]からキー(名前)を除く他のカラムを対象タプル[i
lの右側に結合し、°出力テーブル15のタプル[k]
(k番目の出力タプル)を生成し、メモリ11に出
力する(第4図ステップS7)。そしてアウタジョイン
実行部18は出力タプルインデックスkを+1しく第4
図ステップS8)、Lかる後に条件タプルインデックス
jを+1する(第4図ステップS9)。
一方、対象キー[il〉条件キーN]であるならば、ア
ウタジョイン実行部18は上記ステップ86〜S8をス
キップして条件タプルインデックスjを+1する(第4
図ステップS9)。
ウタジョイン実行部18は上記ステップ86〜S8をス
キップして条件タプルインデックスjを+1する(第4
図ステップS9)。
アウタジョイン実行部1BはステップS9を実行すると
、jの値が条件テーブル38のタプル数(したがって条
件テーブル14のタプル数)に等しくなったか否かの判
定を行い(第4図ステップ510)、NOであればステ
ップS5の比較処理に戻る。これに対してステップS1
0の判定がYESであれば、アウタジョイン実行部18
はフラグFが1であるか否かの判定を行う(第4図ステ
ップ511)。このステップS11の判定は、上記ステ
ップS5の比較処理の結果、対象キー[ilく条件キー
[jlが判定された場合(即ち、現在の対象キー[il
に一致する条件キー[jlが今後検出される可能性がな
(なった場合)にも行われ、この際にはステップ56〜
S10がスキップされる。
、jの値が条件テーブル38のタプル数(したがって条
件テーブル14のタプル数)に等しくなったか否かの判
定を行い(第4図ステップ510)、NOであればステ
ップS5の比較処理に戻る。これに対してステップS1
0の判定がYESであれば、アウタジョイン実行部18
はフラグFが1であるか否かの判定を行う(第4図ステ
ップ511)。このステップS11の判定は、上記ステ
ップS5の比較処理の結果、対象キー[ilく条件キー
[jlが判定された場合(即ち、現在の対象キー[il
に一致する条件キー[jlが今後検出される可能性がな
(なった場合)にも行われ、この際にはステップ56〜
S10がスキップされる。
ステップS11の判定がNOの場合、即ちフラグFが0
の場合、アウタジョイン実行部18は、アウタジョイン
処理として、条件タプルを構成するカラム(ここでは名
前と売上実績)のうち、キーカラム(名前)を除く他の
カラムスペース(売上実績のカラムスペース)に対して
null値を埋め、対象タプル[ilの右側に結合する
ことで出力テーブル15のタプル[k]を生成し、メモ
リ11に出力する(第4図ステップ512)。次にアウ
タジョイン実行部18は出力タプルインデックスkを+
1しく第4図ステップ813)、しかる後に対象タプル
インデックスiを+1する(第4図ステップ514)。
の場合、アウタジョイン実行部18は、アウタジョイン
処理として、条件タプルを構成するカラム(ここでは名
前と売上実績)のうち、キーカラム(名前)を除く他の
カラムスペース(売上実績のカラムスペース)に対して
null値を埋め、対象タプル[ilの右側に結合する
ことで出力テーブル15のタプル[k]を生成し、メモ
リ11に出力する(第4図ステップ512)。次にアウ
タジョイン実行部18は出力タプルインデックスkを+
1しく第4図ステップ813)、しかる後に対象タプル
インデックスiを+1する(第4図ステップ514)。
一方、ステップS11の判定がNoの場合、即ちフラグ
Fが1の場合には、アウタジョイン実行部■8はフラグ
Fを初期値Oに戻しく第4図ステップ515)、Lかる
後に上記ステップS14に進んで対象タプルインデック
スiを+1する。
Fが1の場合には、アウタジョイン実行部■8はフラグ
Fを初期値Oに戻しく第4図ステップ515)、Lかる
後に上記ステップS14に進んで対象タプルインデック
スiを+1する。
アウタジョイン実行部18はステップS14を実行する
と、iの値が対象テーブル37のダブル数(したがって
対象テーブル13のタプル数)に等しくなったか否かの
判定を行う(第4図ステップ516)。もし、ステップ
S16の判定がNoであれば、アウタジョイン実行部1
8は対象キー[i−1コ一対象キー[ilであるか否か
、即ちそれまで対象となっていた対象キーが新たな対象
キーに一致するか否かの判定を行い(第4図ステップ5
17)、一致するならば、この新たな対象キー[ilに
一致する条件キーを検索するために条件タプルタプルイ
ンデックスjを値1に設定しく第4図ステップS1g)
、Lかる後に前記ステップS5の比較処理に戻る。これ
に対して一致しなければ(対象キー[1−11一対象キ
ー[ilでなければ)、アウタジョイン実行部18はj
の値が条件テーブル38のタプル数に一致するか否かの
判定を行う(第4図ステップ519)。アウタジョイン
実行部18は、jの値が条件テーブル38のタプル数に
一致するならば、現在の対象キー[ilに一致する条件
キー[jlはもはや存在し得ないものとして、上記ステ
ップS12のアウタジョイン処理に戻る。またjの値が
条件テーブル38のタプル数に一致しないならば、アウ
タジョイン実行部18は、現在の対象キー[ilに一致
する条件キー[jlが存在する可能性があるものとして
、上記ステップS5の比較処理に戻る。なお、上記ステ
ップS17の判定がNoの場合に、上記ステ、ブS19
を省略して無条件にステップS5に戻るようにしてもよ
い。但し、この方式では、jの値が条件テーブル38の
タプル数に一致している場合には、結果が分かっている
ステップS5 Sllの判定処理を行わなければなら
ず無駄である。
と、iの値が対象テーブル37のダブル数(したがって
対象テーブル13のタプル数)に等しくなったか否かの
判定を行う(第4図ステップ516)。もし、ステップ
S16の判定がNoであれば、アウタジョイン実行部1
8は対象キー[i−1コ一対象キー[ilであるか否か
、即ちそれまで対象となっていた対象キーが新たな対象
キーに一致するか否かの判定を行い(第4図ステップ5
17)、一致するならば、この新たな対象キー[ilに
一致する条件キーを検索するために条件タプルタプルイ
ンデックスjを値1に設定しく第4図ステップS1g)
、Lかる後に前記ステップS5の比較処理に戻る。これ
に対して一致しなければ(対象キー[1−11一対象キ
ー[ilでなければ)、アウタジョイン実行部18はj
の値が条件テーブル38のタプル数に一致するか否かの
判定を行う(第4図ステップ519)。アウタジョイン
実行部18は、jの値が条件テーブル38のタプル数に
一致するならば、現在の対象キー[ilに一致する条件
キー[jlはもはや存在し得ないものとして、上記ステ
ップS12のアウタジョイン処理に戻る。またjの値が
条件テーブル38のタプル数に一致しないならば、アウ
タジョイン実行部18は、現在の対象キー[ilに一致
する条件キー[jlが存在する可能性があるものとして
、上記ステップS5の比較処理に戻る。なお、上記ステ
ップS17の判定がNoの場合に、上記ステ、ブS19
を省略して無条件にステップS5に戻るようにしてもよ
い。但し、この方式では、jの値が条件テーブル38の
タプル数に一致している場合には、結果が分かっている
ステップS5 Sllの判定処理を行わなければなら
ず無駄である。
やがて、対象タプルインデックスiの値が対象テーブル
37のタプル数に一致するようになり、ステップS16
の判定がYESとなると、アウタジョイン実行部18は
一連のアウタジョイン演算の実行を終了する。これによ
り、アウタジョインの結果として第3図に示すような出
力テーブル15がメモリll上に得られる。
37のタプル数に一致するようになり、ステップS16
の判定がYESとなると、アウタジョイン実行部18は
一連のアウタジョイン演算の実行を終了する。これによ
り、アウタジョインの結果として第3図に示すような出
力テーブル15がメモリll上に得られる。
以上のように、本実施例におけるアウタジョインの処理
とは、対象結合キー35(対象テーブルのあるタプルの
対象ソートキー31の意味)の全てを条件結合キー3B
(条件テーブルのあるタプルの条件ソートキー32の意
味)と照合(第4図のフローチャートでは、結合条件と
しての比較演算子をイコール“−として比較)し、結合
条件に適合する場合(ここでは両者が等しい場合)には
通常のジョイン処理により新しく出力タプル39を生成
し、適合しない場合には次々と条件結合キー36との照
合を進めていき、そのときの対象結合キー35がいずれ
の条件結合キー36とも適合しなかった場合、アウタジ
ョイン処理により新しく出力タプル40を生成する処理
である。なお、対象ソートキー31および対象結合キー
35は同値であり、第4図のフローチャートに示すよう
に総称して単に対象キーと称することもできる。同様に
条件ソートキー32および条件結合キー36も同値であ
り、第4図のフローチャートに示すように総称して単に
条件キーと称することもできる。
とは、対象結合キー35(対象テーブルのあるタプルの
対象ソートキー31の意味)の全てを条件結合キー3B
(条件テーブルのあるタプルの条件ソートキー32の意
味)と照合(第4図のフローチャートでは、結合条件と
しての比較演算子をイコール“−として比較)し、結合
条件に適合する場合(ここでは両者が等しい場合)には
通常のジョイン処理により新しく出力タプル39を生成
し、適合しない場合には次々と条件結合キー36との照
合を進めていき、そのときの対象結合キー35がいずれ
の条件結合キー36とも適合しなかった場合、アウタジ
ョイン処理により新しく出力タプル40を生成する処理
である。なお、対象ソートキー31および対象結合キー
35は同値であり、第4図のフローチャートに示すよう
に総称して単に対象キーと称することもできる。同様に
条件ソートキー32および条件結合キー36も同値であ
り、第4図のフローチャートに示すように総称して単に
条件キーと称することもできる。
なお、第3図に示すアウタジョインの結果である出力テ
ーブル15のタプルの順序は、第5図(d)に示す従来
方式による最終結果のテーブルのそれとは一致していな
いが、一般にデータベース演算は集合演算であり、タプ
ルは集合の要素としてテーブル内での順序とは独立して
いることを考えれば、この不一致は同等問題はない。
ーブル15のタプルの順序は、第5図(d)に示す従来
方式による最終結果のテーブルのそれとは一致していな
いが、一般にデータベース演算は集合演算であり、タプ
ルは集合の要素としてテーブル内での順序とは独立して
いることを考えれば、この不一致は同等問題はない。
以上は、CPUl0により生成されるアウタジョインコ
マンドエ2に従って、データベース演算装置11Bがメ
モリ11から独立にアウタジョインを実行する場合につ
いて説明したが、このアウタジョイン実行に適用される
アルゴリズム(処理方式)は、CPUl0自身によるデ
ータベース処理におけるアウタジョイン実行にも利用可
能である。
マンドエ2に従って、データベース演算装置11Bがメ
モリ11から独立にアウタジョインを実行する場合につ
いて説明したが、このアウタジョイン実行に適用される
アルゴリズム(処理方式)は、CPUl0自身によるデ
ータベース処理におけるアウタジョイン実行にも利用可
能である。
また、前記実施例では、第4図ステップSl。
S2により対象テーブル13のタプル(対象タプル33
)と条件テーブル14のタプル(条件タプル34)を、
それぞれのソートキー(対象ソートキー3L条件ソート
キー32)によりソートする場合について説明したが、
このソート処理(ステップSl。
)と条件テーブル14のタプル(条件タプル34)を、
それぞれのソートキー(対象ソートキー3L条件ソート
キー32)によりソートする場合について説明したが、
このソート処理(ステップSl。
S2)は省略可能である。但し、ソート処理を省略した
場合には、対象(結合)キー[ilに一致する条件(結
合)キー[jlを検索するのに、常に条件テーブル14
の全てのタプルを対象としなければならず、前記実施例
より処理に時間を要する。
場合には、対象(結合)キー[ilに一致する条件(結
合)キー[jlを検索するのに、常に条件テーブル14
の全てのタプルを対象としなければならず、前記実施例
より処理に時間を要する。
またソートする場合でも、前記実施例のように昇順ソー
トに限るものではなく降順ソートであってもよい。この
場合、第4図のステップS5で対象キー[il〉条件キ
ー[jlが判別されたときにはステップS11に進み、
対象キー[il<条件キー[jlが判別されたときには
ステップS9に進むように、前記実施例とは逆にすれば
よい(“−°を結合条件とする場合)。
トに限るものではなく降順ソートであってもよい。この
場合、第4図のステップS5で対象キー[il〉条件キ
ー[jlが判別されたときにはステップS11に進み、
対象キー[il<条件キー[jlが判別されたときには
ステップS9に進むように、前記実施例とは逆にすれば
よい(“−°を結合条件とする場合)。
[発明の効果コ
以上詳述したようにこの発明によれば、等結合、プロジ
ェクション、ユニーク、ディファレンスなどのコマンド
を組み合わせることなくアウタジョイン演算が行えるた
めに、従来に比べてテーブルデータ入出力回数および取
扱いデータ量が削減でき、データベース演算性能の向上
が図れる。
ェクション、ユニーク、ディファレンスなどのコマンド
を組み合わせることなくアウタジョイン演算が行えるた
めに、従来に比べてテーブルデータ入出力回数および取
扱いデータ量が削減でき、データベース演算性能の向上
が図れる。
第1図はこの発明の一実施例に係るデータベース処理シ
ステムのブロック構成図、第2図は同実施例で適用され
るアウタジョインコマンドのフォーマットを示す図、第
3図は同実施例における対象テーブル、条件テーブルお
よび出力テーブルの構成例と、アウタジョインでのテー
ブル変化を説明するための図、第4図はアウタジョイン
演算手順を説明するためのフローチャート、第5図はジ
ョイン演算の対象となる2つの入力テーブルとジョイン
演算の結果である出力テーブルの一例を示す図、第6図
は従来のアウタジョイン演算の手順を説明するための図
である。 lO・・・CPU、11・・・メモリ、12・・・アウ
タジョインコマンド、13・・・対象テーブル、14・
・・条件テーブル、15・・・出力テーブル、18・・
・データベース演算装置、17・・・コマンド解析部、
18・・・アウタジョイン実行部。
ステムのブロック構成図、第2図は同実施例で適用され
るアウタジョインコマンドのフォーマットを示す図、第
3図は同実施例における対象テーブル、条件テーブルお
よび出力テーブルの構成例と、アウタジョインでのテー
ブル変化を説明するための図、第4図はアウタジョイン
演算手順を説明するためのフローチャート、第5図はジ
ョイン演算の対象となる2つの入力テーブルとジョイン
演算の結果である出力テーブルの一例を示す図、第6図
は従来のアウタジョイン演算の手順を説明するための図
である。 lO・・・CPU、11・・・メモリ、12・・・アウ
タジョインコマンド、13・・・対象テーブル、14・
・・条件テーブル、15・・・出力テーブル、18・・
・データベース演算装置、17・・・コマンド解析部、
18・・・アウタジョイン実行部。
Claims (2)
- (1)対象テーブルおよび条件テーブルを対象とするア
ウタジョイン(外結合)により新たな出力テーブルを生
成するアウタジョイン演算機能を有するデータベース処
理システムにおいて、上記対象テーブル上の対象結合キ
ーを順に取り出し、この取り出した対象結合キー毎に上
記条件テーブル上の条件結合キーと照合し、与えられた
結合条件に適合しない場合には上記条件結合キーを順に
切り替えて照合を進める照合手段と、この照合手段によ
って上記結合条件に適合する照合が行われた場合に、そ
の際の上記対象結合キーおよび条件結合キーをもとにジ
ョイン処理を行って新しく出力タプルを生成する通常ジ
ョイン処理手段と、 上記照合手段により上記条件結合キーが順に切り替えら
れて照合が進められても上記結合条件に適合する照合が
行われなかった場合に、その際の上記対象結合キーをも
とにアウタジョイン処理を行って新しく出力タプルを生
成するアウタジョイン処理手段と、 を具備することを特徴とするデータベース処理システム
。 - (2)対象テーブルおよび条件テーブルを対象とするア
ウタジョイン(外結合)により新たな出力テーブルを生
成するアウタジョイン演算機能を有するデータベース処
理システムにおいて、上記対象テーブルのタプルを予め
指定された結合キーカラムでソートすると共に、上記条
件テーブルのタプルを予め指定された結合キーカラムで
ソートするソート手段と、 このソート手段によるソート後の上記対象テーブル上の
対象結合キーを順に取り出し、この取り出した対象結合
キー毎に上記ソート手段によるソート後の上記条件テー
ブル上の条件結合キーと照合し、与えられた結合条件に
適合しない場合には上記条件結合キーを順に切り替えて
照合を進める照合手段であって、与えられた結合条件に
適合せず、且つその際の上記対象結合キーおよび条件結
合キーの大小が予め定められた関係にある場合には、上
記対象結合キーを切り替える照合手段と、この照合手段
によって上記結合条件に適合する照合が行われた場合に
、その際の上記対象結合キーおよび条件結合キーをもと
にジョイン処理を行って新しく出力タプルを生成する通
常ジョイン処理手段と、 上記照合手段により上記条件結合キーが順に切り替えら
れて照合が進められても上記結合条件に適合する照合が
行われなかった場合に、その際の上記対象結合キーをも
とにアウタジョイン処理を行って新しく出力タプルを生
成するアウタジョイン処理手段と、 を具備することを特徴とするデータベース処理システム
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2090464A JPH03288967A (ja) | 1990-04-06 | 1990-04-06 | データベース処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2090464A JPH03288967A (ja) | 1990-04-06 | 1990-04-06 | データベース処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03288967A true JPH03288967A (ja) | 1991-12-19 |
Family
ID=13999328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2090464A Pending JPH03288967A (ja) | 1990-04-06 | 1990-04-06 | データベース処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03288967A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7680784B2 (en) | 2007-04-27 | 2010-03-16 | Toru Furuya | Query processing system of a database using multi-operation processing utilizing a synthetic relational operation in consideration of improvement in a processing capability of a join operation |
US12086124B2 (en) | 2020-05-13 | 2024-09-10 | Nec Corporation | Integration device, data table integration method, and program |
-
1990
- 1990-04-06 JP JP2090464A patent/JPH03288967A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7680784B2 (en) | 2007-04-27 | 2010-03-16 | Toru Furuya | Query processing system of a database using multi-operation processing utilizing a synthetic relational operation in consideration of improvement in a processing capability of a join operation |
US12086124B2 (en) | 2020-05-13 | 2024-09-10 | Nec Corporation | Integration device, data table integration method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06215029A (ja) | テキスト検索方法 | |
JPH03288967A (ja) | データベース処理システム | |
US6009267A (en) | Apparatus for analyzing the task specification (business rule specification) of a source program | |
JPH08235033A (ja) | オブジェクト指向データベース管理システムにおける結合演算方式 | |
JPS617936A (ja) | 情報検索方式 | |
JPH0773187A (ja) | 検索システム | |
JP3259781B2 (ja) | データベース検索システムおよびデータベース検索方法 | |
JPH09204449A (ja) | 部品表作成処理装置 | |
JPH1125142A (ja) | Cadデータの登録・検索方法及びその装置 | |
JPH06162096A (ja) | レコード検索方法 | |
JPS60247756A (ja) | デ−タベ−ス装置 | |
JPS61123929A (ja) | デ−タ検索方式 | |
JPS607557A (ja) | 文字型デ−タの区分化圧縮法 | |
JP2633918B2 (ja) | メソド検索方法及びメソド検索手続き生成方法 | |
JPH0497451A (ja) | データの関連付けによるファイルデータ処理方式 | |
JP3304363B2 (ja) | ジョブセパレータの出力方式 | |
JPS63257030A (ja) | 文字列検索回路 | |
JPH0452967A (ja) | 集合ファイルに対する論理積演算処理方式 | |
JPH04148373A (ja) | データ検索システム | |
JPH023870A (ja) | リレーショナル・データベースのレコード検索方法 | |
JPH0581339A (ja) | データ処理装置 | |
JPH08153108A (ja) | 情報検索方法及びその装置 | |
Shi et al. | Efficient attribute reduction algorithm | |
JPH0285921A (ja) | 併合処理装置 | |
JPH0644326A (ja) | 情報検索装置 |