JPH08221446A - データ分布推論装置およびデータ分布推論装置を有するリレーショナルデータベースシステム - Google Patents

データ分布推論装置およびデータ分布推論装置を有するリレーショナルデータベースシステム

Info

Publication number
JPH08221446A
JPH08221446A JP7030466A JP3046695A JPH08221446A JP H08221446 A JPH08221446 A JP H08221446A JP 7030466 A JP7030466 A JP 7030466A JP 3046695 A JP3046695 A JP 3046695A JP H08221446 A JPH08221446 A JP H08221446A
Authority
JP
Japan
Prior art keywords
data
distribution
block
column
data distribution
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
JP7030466A
Other languages
English (en)
Inventor
Hitoshi Suzuki
等 鈴木
Akira Sawada
晃 澤田
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP7030466A priority Critical patent/JPH08221446A/ja
Publication of JPH08221446A publication Critical patent/JPH08221446A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 リレーショナルデータベースにおける各カラ
ムのデータ分布について、簡易かつ確実に得る。 【構成】 ブロック別分布データ記憶手段3は、特定カ
ラムにおける前記データ分布を、1または2以上のブロ
ックに分割したブロック別分布データとして記憶する。
修正手段5は、前記いずかのブロック内の特定範囲にお
ける処理結果(検索結果)が与えられると、当該ブロッ
クにおけるブロック別分布データおよび与えられた前記
検索結果に基づいて、前記特定範囲における特定範囲デ
ータ分布を推論し、この推論結果に基づいて、前記特定
範囲が含まれるブロック別分布データを修正する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データベース支援装
置に関し、特に、データ分布取得に関する。
【0002】
【従来技術およびその課題】リレーショナルデータベー
ス(以下データベースと略す)においては、2次記憶装
置へのI/O回数が最小となるアクセスパスを採用し
て、検索を高速化する手法が知られている。この手法
は、複数のカラムへの絞り込み条件がある場合に、絞り
込み率が高くなるカラムから検索するように、検索順序
を決定する手法である。
【0003】このようなアクセスパスの決定する為に
は、各カラムにおける各レコードのフィールド値のデー
タ分布が必要である。このデータ分布を取得するには、
一般にデータベース運用時に、直接データベースからデ
ータ収集が行われる。
【0004】しかしながら、上記のようにしてデータ分
布の取得について、データベース運用時にデータ収集を
行うと、データベース全体のトランザクション処理に負
担がかかり、スループット(単位時間当たりの処理能
力)が低下する。この為、同じ検索命令であっても、デ
ータ分布取得時とそうでない場合とで、得られる処理時
間のデータにばらつきが発生する。したがって、得られ
たログ情報の信頼性が低下する。
【0005】この発明は上記問題を解決し、リレーショ
ナルデータベースにおける各カラムにおける各レコード
のフィールド値のデータ分布について、簡易かつ確実に
取得できるデータ分布推論装置およびその方法を提供す
ることを目的とするまた、リレーショナルデータベース
における各カラムにおける各レコードのフィールド値の
データ分布について、簡易かつ確実に取得できるリレー
ショナルデータベースシステムを提供することを目的と
する
【0006】
【課題を解決するための手段】
【0007】
【課題を解決するために案出した技術思想】請求項1の
データ分布推論装置においては、あるカラムにおけるデ
ータ分布を推論する為に、データ分布をブロック別分布
データとして記憶しておき、ブロック内の特定範囲にお
ける処理結果が与えられると、当該ブロックにおけるブ
ロック別分布データおよび与えられた前記処理結果に基
づいて、前記特定範囲データ分布を推論するようにし
た。
【0008】すなわち、発明の全体構成を示す図である
図1に記載しているように、請求項1のデータ分布推論
装置においては、特定カラムにおける前記データ分布
を、1または2以上のブロックに分割したブロック別分
布データとして記憶するブロック別分布データ記憶手
段、および、前記いずかのブロック内の特定範囲におけ
る処理結果が与えられると、当該ブロックにおけるブロ
ック別分布データおよび与えられた前記処理結果に基づ
いて、前記特定範囲における特定範囲データ分布を推論
し、この推論結果に基づいて、前記特定範囲が含まれる
ブロック別分布データを修正する修正手段を備えたこと
を特徴とする。
【0009】請求項2のデータ分布推論装置において
は、前記ブロック別分布データは、当該ブロックにおけ
る総レコード数、ユニーク数、同一フィールド値を持つ
レコードがいくつあるかを示す度数のいずれか2つであ
り、前記特定範囲における処理結果は、当該特定範囲に
おける総レコード数であることを特徴とする。
【0010】請求項3のデータ分布推論装置において
は、前記ブロック別分布データ記憶手段は、前記ブロッ
ク別分布データとして、少なくとも、当該ブロックにお
ける総レコード数を記憶しており、さらに、複数のブロ
ックにまたがる総レコード数が処理結果として与えられ
ると、当該複数のブロックにおける総レコード数を読み
出して、これに基づいて、少なくとも1のブロックにお
ける特定範囲における処理結果を演算して、前記修正手
段に出力する処理結果変換手段を備えたこと、を特徴と
する。
【0011】実施例においては、処理結果変換手段は、
図6Aから図6Bへデータ分布を修正する場合に、与え
られた処理結果データを変換した処理に該当する。
【0012】請求項4のデータ分布推論装置において
は、前記ブロック別分布データ記憶手段は、相互に関係
する複数のカラムにおけるデータ分布を、前記ブロック
別分布データとして記憶しており、前記修正手段は、前
記複数のカラムのうち、いずれか一のカラムについて、
総レコード数が増減した場合は、当該一のカラム以外の
カラムである他方カラムについて、当該他方カラムにお
けるブロック別分布データにおける各ブロックの構成比
率に応じて、各ブロックにおけるレコード数を増減させ
ること、を特徴とする。
【0013】請求項5のリレーショナルテータベースシ
ステムにおいては、 A)以下のa1)〜a4)を有するリレーショナルテータベー
スシステム、 a1)各レコードについて一または二以上のカラムを有す
るテーブルにデータを記憶するデータ記憶手段、 a2)前記データ記憶手段に記憶されるデータに関するデ
ータ特性を記憶するデータ特性記憶手段、 a3)与えられた処理命令に基づいて、前記データ記憶手
段に記憶されたデータを処理する処理手段、 a4)前記処理手段による処理結果を記憶する処理結果記
憶手段、 B)以下のb1)〜b3)を有するデータ分布推論装置、 b1)特定カラムにおける前記データ分布を、1または2
以上のブロックに分割したブロック別分布データとして
記憶するブロック別分布データ記憶手段、 b2)前記いずかのブロック内の特定範囲における処理結
果が与えられると、当該ブロックにおけるブロック別分
布データおよび与えられた前記処理結果に基づいて、前
記特定範囲における特定範囲データ分布を推論し、この
推論結果に基づいて、前記特定範囲が含まれるブロック
別分布データを修正する修正手段、 b3)前記データ特性記憶手段から、各カラムにおけるフ
ィールド値の最小値、最大値、レコード数、およびユニ
ーク数を特徴量として抽出し、特定カラムにおけるデー
タ分布として、前記ブロック別分布データ記憶手段に記
憶させる特徴量抽出手段、 を備えたことを特徴とする。
【0014】請求項6のデータ分布推論方法において
は、特定カラムにおいて、仮のデータ分布を記憶してお
き、前記リレーショナルデータベースシステムから前記
特定カラムに対する処理結果が与えられると、前記仮の
データ分布および与えられた前記処理結果に基づいて、
より詳細なデータ分布を推論し、前記仮のデータ分布を
修正することを特徴とする。
【0015】請求項7のデータ分布推論方法において
は、前記仮の分布データは、相互に関係する複数のカラ
ムにおけるデータ分布を含み、前記仮のデータ分布の修
正においては、前記複数のカラムのうち、いずれか一の
カラムについて、総レコード数が増減した場合は、これ
に応じて、当該一のカラム以外のカラムについても、レ
コード数を増減させることを特徴とする。
【0016】請求項8のリレーショナルデータベースシ
ステムにおける支援装置においては、特定カラムにおけ
る前記データ分布を、1または2以上のブロックに分割
したブロック別分布データとして記憶するブロック別分
布データ記憶手段、表示命令が与えられると、前記ブロ
ック別分布データを表示手段に表示させる表示制御手
段、を備えたことを特徴とする。
【0017】請求項9のリレーショナルデータベースシ
ステムにおける支援方法においては、特定カラムにおけ
る前記データ分布を、1または2以上のブロックに分割
したブロック別分布データとして記憶しておき、表示命
令が与えられると、前記ブロック別分布データを表示す
ることを特徴とする。
【0018】
【用語の定義】課題を解決するために案出した技術思想
を表現するのに用いた請求項の用語の概念を、以下のよ
うに定義するとともに、その用語と実施例との関係につ
いて説明する。
【0019】「処理結果」:リレーショナルデータベー
スシステムがおこなう各種の処理結果を示すデータであ
り、実施例においては、検索結果、削除結果が該当す
る。
【0020】「ブロック別分布データ」:特定カラムに
おける前記データ分布を、1または2以上のブロックに
分割したデータであり、実施例では、例えば、図4Bに
示すデータ分布では、フィールド値1〜50に分布され
たデータおよびフィールド値51〜100に分布された
データをいう。この場合、2つのブロックに分割されて
いるが、3以上であってもよい。なお、ブロック別分布
データは、図4Aに示すものも含む。すなわち、この場
合、データ分布は、分割しない1のブロックで構成され
る。
【0021】「特定範囲」:前記ブロック別分布データ
の範囲内の範囲であって、実施例では、例えば、最小値
0、最大値100の間の、51以上100の範囲をい
う。
【0022】「ブロックにおける総レコード数」:例え
ば、図4Bに示すデータ分布では、フィールド値1〜5
0においては、総レコード数は、50である。
【0023】「ユニーク数」:カラム全体に特有のフィ
ールド値が何種類あるかを示す値である。
【0024】「度数」:同一フィールド値を持つレコー
ドがいくつあるかを示す値であり、(レコード数/ユニ
ーク数)で表される。
【0025】「修正手段」:実施例においては、CPU
23のステップST15、17、27の処理が該当す
る。
【0026】「処理結果変換手段」:実施例において
は、CPU23のステップST15、17の処理が該当
する。
【0027】「各ブロックの構成比率」:特定カラムに
おける前記データ分布を、1または2以上のブロックに
分割したブロック別データ分布における各ブロックの比
率をいい、実施例においては、例えば、図9Aにおける
各ブロックBL1〜BL4に属するレコード数の比率が
該当する。
【0028】「データ特性」:リレーショナルデータベ
ースにおけるデータの特性を表すもので、実施例におい
ては、各カラムにおけるフィールド値の最小値、最大
値、レコード数、およびユニーク数が含まれる。
【0029】「ブロック別分布データ記憶手段」、「デ
ータ記憶手段」、「データ特性記憶手段」、「処理結果
記憶手段」:実施例においては、ハードディスク26が
該当する。
【0030】「処理手段」:与えられた処理命令に基づ
いて、前記データ記憶手段に記憶されたデータを処理す
る手段であり、実施例においては、データベースに対し
て、データを検索、追加または削除する処理を行うCP
U23の処理に該当する。
【0031】「特徴量抽出手段」:実施例においては、
CPU23のステップST1の処理が該当する。
【0032】
【作用】請求項1または請求項2のデータ分布推論装置
においては、ブロック別分布データを記憶するブロック
別分布データ記憶手段、および前記特定範囲データ分布
を推論して、前記特定範囲が含まれるブロック別分布デ
ータを修正する修正手段を備えている。したがって、当
該ブロックにおけるブロック別分布データおよび与えら
れた前記処理結果に基づいて、前記特定範囲における特
定範囲データ分布を推論し、この推論結果に基づいて、
前記特定範囲が含まれるブロック別分布データを修正す
る。これにより、特定カラムにおけるデータ分布を推論
することができる。
【0033】請求項3のデータ分布推論装置において
は、前記処理結果変換手段を備えているので、複数のブ
ロックにまたがる総レコード数が処理結果として与えら
れると、当該複数のブロックにおける総レコード数を読
み出して、これに基づいて、少なくとも1のブロックに
おける特定範囲における処理結果を演算する。前記修正
手段は、演算された特定範囲における処理結果に基づい
て、前記推論を行う。したがって、複数のブロックにま
たがる総レコード数が処理結果として与えられた場合で
も、前記推論を行うことができる。
【0034】請求項4のデータ分布推論装置において
は、前記ブロック別分布データ記憶手段は、相互に関係
する複数のカラムにおけるデータ分布を、前記ブロック
別分布データとして記憶する。前記修正手段は、前記複
数のカラムのうち、いずれか一のカラムについて、総レ
コード数が増減した場合は、当該一のカラム以外のカラ
ムである他方カラムについて、当該他方カラムにおける
ブロック別分布データにおける各ブロックの構成比率に
応じて、各ブロックにおけるレコード数を増減させる。
したがって、あるカラムについて、レコード数が増減し
た場合に、このカラムと相互に関係する他のカラムのデ
ータ分布を修正することができる。
【0035】請求項5のリレーショナルテータベースシ
ステムにおいては、前記特徴量抽出手段は、前記データ
特性記憶手段から、各カラムにおけるフィールド値の最
小値、最大値、レコード数、およびユニーク数を特徴量
として抽出し、特定カラムにおけるデータ分布として、
前記ブロック別分布データ記憶手段に記憶させる。これ
により、初期ブロック別分布データを得ることができ
る。前記修正手段は、いずかのブロック内の特定範囲に
おける処理結果が与えられると、当該ブロックにおける
ブロック別分布データおよび与えられた前記処理結果に
基づいて、前記特定範囲における特定範囲データ分布を
推論し、この推論結果に基づいて、前記特定範囲が含ま
れるブロック別分布データを修正する。これにより、特
定カラムにおけるデータ分布を推論することができる。
【0036】請求項6のデータ分布推論方法において
は、特定カラムにおいて、仮のデータ分布を記憶してお
き、前記仮のデータ分布および与えられた前記処理結果
に基づいて、より詳細なデータ分布を推論し、前記仮の
データ分布を修正する。これにより、特定カラムにおけ
るデータ分布を推論することができる。
【0037】請求項7のデータ分布推論方法において
は、前記仮の分布データは、相互に関係する複数のカラ
ムにおけるデータ分布を含み、前記仮のデータ分布の修
正においては、前記複数のカラムのうち、いずれか一の
カラムについて、総レコード数が増減した場合は、これ
に応じて、当該一のカラム以外のカラムについても、レ
コード数を増減させる。したがって、あるカラムについ
て、レコード数が増減した場合に、このカラムと相互に
関係する他のカラムのデータ分布を修正することができ
る。
【0038】請求項8、請求項9のリレーショナルデー
タベースシステムにおける支援装置または支援方法にお
いては、表示命令が与えられると、予め記憶したブロッ
ク別分布データが表示される。したがって、操作者は、
1または2以上のブロックに分割したブロック別分布デ
ータで表わされたデータ分布を得ることができる。
【0039】
【実施例】本発明の一実施例を図面に基づいて説明す
る。図1に示すデータ分布推論装置付きリレーショナル
テータベースシステムにおいては、リレーショナルテー
タベースシステム部19にデータ分布推論装置1が付加
されている。
【0040】リレーショナルテータベースシステム部1
9は、通常のリレーショナルテータベースシステムであ
り、通常のデータ記憶手段14、データ特性記憶手段1
5、処理手段16および処理結果記憶手段18を備えて
いる。
【0041】データ記憶手段14は、各レコードについ
て一または二以上のカラムを有するテーブルにデータを
記憶する。データ特性記憶手段15は、データ記憶手段
14に記憶されるデータに関するデータ特性を記憶す
る。本実施例においては、このデータ特性として、各カ
ラムにおけるフィールド値の最小値、最大値、レコード
数、およびユニーク数を含む特性データを採用した。処
理手段16は、与えられた処理命令に基づいて、データ
記憶手段14に記憶されたデータを処理する。なお、デ
ータの処理とは、データの検索、追加、または削除を含
む。処理結果記憶手段18は、処理手段16による処理
結果を記憶する。
【0042】データ分布推論装置1は、ブロック別分布
データ記憶手段3、修正手段5、特徴量抽出手段9、処
理結果変換手段7、報知制御手段10および報知手段1
1を備えている。
【0043】ブロック別分布データ記憶手段3は、特定
カラムにおける前記データ分布を、1または2以上のブ
ロックに分割したブロック別分布データとして記憶す
る。また、ブロック別分布データ記憶手段3は、相互に
関係する複数のカラムにおけるデータ分布を、前記ブロ
ック別分布データとして記憶している。
【0044】なお、本実施例においては、前記ブロック
別分布データとして、当該ブロックにおける総レコード
数、ユニーク数、同一フィールド値を持つレコードがい
くつあるかを示す度数のいずれか2つとした。
【0045】修正手段5は、前記いずかのブロック内の
特定範囲における処理結果が与えられると、当該ブロッ
クにおけるブロック別分布データおよび与えられた前記
処理結果に基づいて、前記特定範囲における特定範囲デ
ータ分布を推論し、この推論結果に基づいて、前記特定
範囲が含まれるブロック別分布データを修正する。
【0046】本実施例においては、前記特定範囲におけ
る処理結果として、当該特定範囲における総レコード数
を採用した。
【0047】また、修正手段5は、前記複数のカラムの
うち、いずれか一のカラムについて、総レコード数が増
減した場合は、当該一のカラム以外のカラムである他方
カラムについて、当該他方カラムにおけるブロック別分
布データにおける各ブロックの構成比率に応じて、各ブ
ロックにおけるレコード数を増減させる。
【0048】特徴量抽出手段9は、データ特性記憶手段
15から、各カラムにおけるフィールド値の最小値、最
大値、レコード数、およびユニーク数を特徴量として抽
出し、特定カラムにおけるデータ分布として、ブロック
別分布データ記憶手段3に記憶させる。
【0049】処理結果変換手段7は、複数のブロックに
またがる総レコード数が処理結果として与えられると、
当該複数のブロックにおける総レコード数を読み出し
て、これに基づいて、少なくとも1のブロックにおける
特定範囲における処理結果を演算して、修正手段5に出
力する。
【0050】報知制御手段10は、報知命令を受ける
と、前記ブロック別分布データ記憶手段3に記憶された
ブロック別分布データに基づいて、データ分布を、報知
手段11に報知させる。
【0051】このように、図1に示すデータ分布推論装
置付きリレーショナルテータベースシステムにおいて
は、処理結果に基づいて、データ分布を推論することが
できる。
【0052】図2は、図1に示すデータ分布推論装置付
きリレーショナルテータベースシステムをCPUを用い
て実現したハードウェア構成の一例を示す。データ分布
推論装置付きリレーショナルテータベースシステム21
は、CPU23、ROM25、RAM27、ハードディ
スク26、キーボード28、マウス33、バスライン2
9、プリンタ31およびCRT30を備えている。キー
ボード28およびマウス33は、各種の命令を入力する
命令入力手段である。
【0053】ROM25には、CPU23の制御プログ
ラム等が記憶されており、CPU23は、この制御プロ
グラムに従いバスライン29を介して、各部を制御す
る。ハードディスク26は、データ辞書ディレクトリ
(図示せず)を有しており、各カラムにおけるフィール
ド値の最小値、最大値、レコード数、およびユニーク数
が記憶されている。また、ハードディスク26には、後
述するログ情報が記憶される。このログ情報は、読み出
されてRAM27に記憶される。CRT30には、CP
U23が演算したデータ分布等が表示される。また、プ
リンタ31は、CPU23からの出力命令を受けると、
後述する推論されたデータ分布を出力する。
【0054】ハードディスク26に記憶されるログ情報
について、図4を用いて説明する。ログ情報は、SQL
文ごとに、その内容およびその処理結果を含む。図4に
示すように、ログ情報には複数のSQL文を含む。
【0055】つぎに、図3を用いて、ROM25に記憶
されたプログラムについて説明する。CPU23は、特
徴量を抽出する(図3ステップST1)。特徴量の抽出
は、ハードディスク26のデータ辞書ディレクトリに記
憶された各カラムにおけるフィールド値の最小値、最大
値、レコード数、およびユニーク数を読み出すことによ
り行われる。
【0056】つぎに、CPU23はデータ分布の初期化
を行う(ステップST2)。この初期化においては、例
えば、整数に関するカラムがあり、その最小値0、最大
値100、レコード数200、ユニーク数50であった
とする。このような状態を、以下、レコード数(0,1
00)=200と、ユニーク数(0,100)=50と
表す。また、このカラムにおいて、同一のフィールド値
を有するレコードが何レコードあるかを表す度数は、レ
コード数/ユニーク数で表される。この場合、度数
(0,100)=200/50=4で表される。
【0057】このようにして、仮のデータ分布として、
図4Aに示すようなデータ分布が設定される。図4Aに
おいて、度数が実線で表されており、レコード数が破線
で表されている。このように、初期状態では、最小値0
と最大値100との間に、均一に分布しているものと仮
定される。
【0058】つぎにCPU23は、処理命令が与えられ
た否か判断する(図3ステップST5)。処理命令が与
えられると、ステップST7に進み、処理結果をハード
ディスク26に記憶する。ここては、図5に示す処理結
果が記憶されたものとする。なお、処理命令とは、例え
ば、検索命令等を含むトランザクション処理をいう。
【0059】CPU23は、ハードディスク26に記憶
された処理結果をRAM27に記憶し、SQL文を1つ
読み出す(ステップST11)。CPU23は、読み出
したSQL文が更新系のSQL文か否か判断する。更新
系のSQL文とは、レコードを削除、または追加するS
QL文をいう。
【0060】例えば、図5に示すログ情報の第一のSQ
L文Q1の実行結果S1は、『検索条件「カラムC1>
50」での処理結果は、150レコードである』ことを
示している。この処理結果から、レコード数(51,1
00)=150である。ここで、レコード数(0,5
0)=レコード数(0,100)−レコード数(51,
100)である。したがって、レコード数(0,50)
=200−150=50であることがわかる。これによ
り、フィールド値1〜50の範囲においては、ユニーク
数(0,50)=50*(50−0)/(100−0)
=25であると推論できる。また、度数(0,50)=
レコード数(0,50)/ユニーク数(0,50)であ
るので、度数(0,50)=50/25=2であると推
論できる。
【0061】同様にして、フィールド値51〜100の
範囲においては、ユニーク数(51,100)=50*
(100−51)/(100−0)≒25であると推論
できる。また、度数(51,100)=レコード数(5
1,100)/ユニーク数(51,100)であるの
で、度数(51,100)=150/25=6であると
推論できる。これにより、図4Aに示す初期データ分布
は、図4Bに示すように、変更される。このように、本
実施例においては、予め、データ分布を、1または2以
上のブロックに分割したブロック別分布データとして記
憶しておき、いずかのブロック内の特定範囲における処
理結果が与えられると、当該ブロックにおけるブロック
別分布データおよび与えられた前記処理結果に基づい
て、前記特定範囲における特定範囲データ分布を推論
し、この推論結果に基づいて、前記特定範囲が含まれる
ブロック別分布データを修正する。したがって、データ
分布を現実に取得する処理が不要となる。
【0062】つぎに、CPU23は、表示命令が与えら
れたか否か判断し(図3ステップST21)、キーボー
ド28またはマウス33から表示命令が与えられた場合
は、推論結果を表示する。CPU23は、表示命令が与
えられない場合は、ステップST25に進み、格納命令
が与えられたか否か判断する。キーボード28またはマ
ウス33から格納命令が与えられた場合は、推論結果を
RAM27に記憶する。つぎに、CPU23は、RAM
27から読み出したトレースログについて、全てのSQ
L文について読み出しが終了したか否か判断する(図3
ステップST28)。
【0063】この場合、まだ残っているので、ステップ
ST11に戻る。図5に示すSQL文Q2の実行結果S
2は、更新系のSQL文ではないので、ステップST1
7に進む。この実行結果S2は、『検索条件「カラムC
1>90」での処理結果は、10レコードである』こと
を示している。
【0064】レコード数(51,90)=レコード数
(51,100)−レコード数(91,100)であ
る。前記処理結果および先の推論結果より、レコード数
(51,90)=150−10=140であると推論で
きる。したがって、フィールド値51〜90の範囲にお
いては、ユニーク数(51,90)=50*(90−5
1)/(100−0)≒20であると推論できる。ま
た、度数(51,90)=レコード数(51,90)/
ユニーク数(51,90)であるので、度数(51,9
0)=140/20=7であると推論できる。このよう
にして、図4Bに示すデータ分布は、図4Cに示すよう
に修正される。
【0065】このように、検索SQL文の実行結果(処
理結果)を参照して、前記ブロック別データ分布を修正
することにより、より正確なデータ分布を得ることがで
きる。
【0066】つぎに、CPU23は、ステップST21
〜ステップST27の処理を行った後、RAM27から
読み出したトレースログについて、全てのSQL文につ
いて読み出しが終了したか否か判断する(ステップST
28)。この場合、まだ残っているので、ステップST
11に戻る。SQL文Q3の実行結果S3は、更新系の
SQL文ではないので、ステップST17に進む。この
実行結果S3は、『検索条件「カラムC1>=30」で
の処理結果は、160レコードである』ことを示してい
る。この場合も、既に得られている先の推論結果を用い
ることにより、同様に推論することができる。この場
合、レコード数(30,50)=レコード数(30,1
00)−レコード数(51,100)=160−150
=10であることがわかる。これにより、フィールド値
30〜50の範囲においては、ユニーク数(30,5
0)=50*(50−30)/(100−0)=10で
あると推論できる。また、度数(30,50)=レコー
ド数(30,50)/ユニーク数(30,50)である
ので、度数(30,50)=10/10=1であると推
論できる。このようにして、図4Cに示すデータ分布
は、図6Aに示すように修正される。
【0067】つぎに、CPU23は、ステップST21
〜ステップST27の処理を行った後、RAM27から
読み出したトレースログについて、全てのSQL文につ
いて読み出しが終了したか否か判断する(ステップST
28)。この場合、まだ残っているので、ステップST
11に戻る。SQL文Q4の実行結果S4は、更新系の
SQL文ではないので、ステップST17に進む。この
実行結果S4は、『検索条件「カラムC1 betwe
en 30 to80」での処理結果は、110レコー
ドである』ことを示している。
【0068】このように、与えられる処理結果が、複数
のブロックにまたがる場合もある。この場合も、既に得
られている先の推論結果を用いることにより、以下に述
べるようにして、推論することができる。
【0069】既に得られているレコード数(30,5
0)を参照すると、レコード数(51,80)=レコー
ド数(30,80)−レコード数(30,50)=11
0−10=100であることがわかる。これにより、フ
ィールド値51〜80の範囲においては、ユニーク数
(51,80)=50*(80−51)/(100−
0)≒15であると推論できる。また、度数(51,8
0)=レコード数(51,80)/ユニーク数(51,
80)≒6.7であると推論できる。
【0070】また、既に得られているレコード数(5
1,90)を参照すると、レコード数(81,90)=
レコード数(51,90)−レコード数(51,80)
=40であることがわかる。これにより、ユニーク数
(81,90)=50*(90−81)/(100−
0)=5であると推論できる。また、度数(81,9
0)=レコード数(81,90)/ユニーク数(81,
90)=8であると推論できる。このようにして、図6
Aに示すデータ分布は、図6Bに示すように修正され
る。
【0071】つぎに、CPU23は、ステップST21
〜ステップST27の処理を行った後、RAM27から
読み出したトレースログについて、全てのSQL文につ
いて読み出しが終了したか否か判断する(図3ステップ
ST28)。この場合、終了したので、ステップST2
9に進む。CPU23は、終了命令が与えられたか否か
判断し、与えられた場合は処理を終了する。終了命令が
与えられない場合は、ステップST5以下の処理を繰返
す。
【0072】つぎに、図3ステップST13にて、読み
込んだSQL文が更新系のSQL文である場合につい
て、説明する。ここでは、整数に関するカラムC1とカ
ラムC2とから構成されたテーブルT1において、以下
の様にデータ分布を得られているものとする。
【0073】カラムC1について: 最小値0, 最大値100, レコード数(0,100)=200, ユニーク数(0,100)=50, レコード数(0,50)=50, ユニーク数(0,50)=25, 度数(0,50)=2, レコード数(51,90)=140, ユニーク数(51,90)=20, 度数(51,90)=7, レコード数(91,100)=10, ユニーク数(91,100)=5, 度数(91,100)=2, カラムC2について: 最小値500, 最大値1000, レコード数(500,1000)=200, ユニーク数(500,1000)=100 レコード数(500,600)=80, ユニーク数(500,600)=40, 度数(500,600)=2, レコード数(601,800)=60, ユニーク数(601,800)=30, 度数(601,800)=2, レコード数(801,900)=40, ユニーク数(801,900)=20, 度数(801,900)=2, レコード数(901,1000)=20, ユニーク数(901,1000)=10, 度数(901,1000)=2, この状態で、図7に示すトレースログが読み込まれた場
合、SQL文Q5の実行結果S5は、更新系のSQL文
である。したがって、CPU23は、図3ステップST
15の処理を行う。図7の実行結果S5は、『実行条件
「カラムC1<=50を削除する」での実行結果は、5
0レコードである』ことを示している。この処理によ
り、カラムC1は、図8Aに示すデータ分布が、図8B
に示すデータ分布に修正される。ここで、カラムC1
は、カラムC2に相互に関係するカラムであるので、カ
ラムC1とカラムC2のレコード数は一致しなければな
らない。本実施例においては、以下のようにして、カラ
ムC2のデータ分布を修正するようにしている。
【0074】カラムC1とカラムC2との間のデータ分
布に関連性がないとすると、カラムC2の総レコード2
00レコードのうち、50レコードがランダムに削除さ
れたものと考えることができる。したがって、4つのブ
ロックBL1〜BL4のレコード数の比率に応じて、デ
ータ分布を修正するようにした。すなわち、レコード数
(500,600):レコード数(601,800):
レコード数(801,900):レコード数(901,
1000)=4:3:2:1である。したがって、それ
ぞれのデータ領域との構成比率に応じて、前記50レコ
ード削除するとすると、それぞれ、20,15,10,
5レコード削除すると推論する。よって、図9Aに示す
データ分布における各ブロックBL1〜BL4は、図9
Bに示すデータ分布における各ブロックBL11〜BL
14に修正される。
【0075】このようにして、相互に関係する複数のカ
ラムにおけるデータ分布を、前記ブロック別分布データ
として記憶しておき、前記複数のカラムのうち、いずれ
か一のカラム(この場合、カラムC1)について、総レ
コード数が増減した場合は、当該一のカラム以外のカラ
ムである他方カラム(この場合カラムC2)について、
当該他方カラムにおけるブロック別分布データにおける
各ブロックの構成比率に応じて、各ブロックにおけるレ
コード数を増減させる。したがって、あるカラムについ
て、レコード数が増減した場合に、このカラムと相互に
関係する他のカラムのデータ分布を修正することができ
る。
【0076】なお、本実施例においては、同じテーブル
のカラムC1,C2を相互に関係する他のカラムとした
場合について説明したが、同じテーブルでないカラムに
ついても同様にして、データ分布を修正することができ
る。
【0077】なお、本実施例においては、ブロック別デ
ータ分布を修正する度に、推論結果を表示および格納す
るか否かを判断している。しかし、これに限定されるこ
となく、トレースログのSQL文の処理が全て終了して
から、前記表示および格納の判断をするようにしてもよ
い。
【0078】また、特徴量として、各カラムにおけるフ
ィールド値の最小値、最大値を記憶するようにしてい
る。したがって、正確な最小値、最大値がわからない場
合には、前記推論はできないとも考えられる。しかし、
正確な最小値、最大値がわからない場合でも、前記推論
はできる。なぜなら、複数の検索結果により、前記最小
値、または最大値を越える部分にデータが分布している
とが判明することがある。したがって、このような場合
に、前記最小値、または最大値を修正するようにすれば
よいからである。すなわち、この最小値、最大値が正確
にわからない場合には、ある程度の値を入力することに
より、前記推論は可能となる。
【0079】なお、各カラムにおけるフィールド値の最
小値、最大値に限定されず、例えば、最小値とその幅、
中央値と上下幅、最大値とその幅を記憶するようにして
もよい。
【0080】また、本実施例においては、ブロック別分
布データとして、当該ブロックにおける総レコード数、
ユニーク数、同一フィールド値を持つレコードがいくつ
あるかを示す度数の全てを記憶するようにしているが、
いずれか2つあれば、残りの1つについては演算するこ
とができるので、あえて全て記憶する必要はない。
【0081】なお、本実施例においては、更新系SQL
文として削除の場合について説明したが、追加する場合
も同様に行うようにすればよい。
【0082】なお、本実施例においては、前記各機能を
実現する為に、CPU23を用い、ソフトウェアによっ
てこれを実現している。しかし、その一部もしくは全て
を、ロジック回路等のハードウェアによって実現しても
よい。
【0083】なお、本発明は、リレーショナルデータベ
ースシステムにおける各テーブルの各カラムにおける各
レコードのフィールド値のデータ分布を推論するデータ
分布推論方法であって、特定カラムにおいて、仮のデー
タ分布を記憶しておき、前記リレーショナルデータベー
スシステムから前記特定カラムに対する処理結果が与え
られると、前記仮のデータ分布および与えられた前記処
理結果に基づいて、より詳細なデータ分布を推論し、前
記仮のデータ分布を修正すること、を特徴とするデータ
分布推論方法という技術思想として、とらえることもで
きる。
【0084】さらに、前記仮の分布データは、相互に関
係する複数のカラムにおけるデータ分布を含み、前記仮
のデータ分布の修正においては、前記複数のカラムのう
ち、いずれか一のカラムについて、総レコード数が増減
した場合は、これに応じて、当該一のカラム以外のカラ
ムについても、レコード数を増減させるようにしてもよ
い。
【0085】
【発明の効果】請求項1または請求項2のデータ分布推
論装置においては、ブロック別分布データを記憶するブ
ロック別分布データ記憶手段、および前記特定範囲デー
タ分布を推論して、前記特定範囲が含まれるブロック別
分布データを修正する修正手段を備えている。したがっ
て、当該ブロックにおけるブロック別分布データおよび
与えられた前記処理結果に基づいて、前記特定範囲にお
ける特定範囲データ分布を推論し、この推論結果に基づ
いて、前記特定範囲が含まれるブロック別分布データを
修正する。これにより、リレーショナルデータベースに
おける各カラムにおける各レコードのフィールド値のデ
ータ分布について、簡易かつ確実に取得できるデータ分
布推論装置を提供することができる。
【0086】請求項3のデータ分布推論装置において
は、前記処理結果変換手段を備えている。したがって、
複数のブロックにまたがる総レコード数が処理結果とし
て与えられた場合でも、前記推論を行うことができるデ
ータ分布推論装置を提供することができる。
【0087】請求項4のデータ分布推論装置において
は、相互に関係する複数のカラムにおけるデータ分布
が、前記ブロック別分布データとして記憶されている。
また、前記複数のカラムのうち、いずれか一のカラムに
ついて、総レコード数が増減した場合は、前記他方カラ
ムにおけるブロック別分布データにおける各ブロックの
構成比率に応じて、各ブロックにおけるレコード数を増
減させる。これにより、あるカラムについてレコード数
が増減した場合に、このカラムと相互に関係する他のカ
ラムのデータ分布を修正することができるデータ分布推
論装置を提供することができる。
【0088】請求項5のリレーショナルテータベースシ
ステムにおいては、前記特徴量抽出手段、前記修正手段
を備えている。したがって、いずかのブロック内の特定
範囲における処理結果が与えられると、当該ブロックに
おけるブロック別分布データおよび与えられた前記処理
結果に基づいて、前記特定範囲が含まれるブロック別分
布データを修正する。これにより、特定カラムにおける
データ分布を推論することができるリレーショナルデー
タベースを提供することができる。
【0089】請求項6のデータ分布推論方法において
は、特定カラムにおいて、仮のデータ分布を記憶してお
き、前記仮のデータ分布および与えられた前記処理結果
に基づいて、より詳細なデータ分布を推論し、前記仮の
データ分布を修正する。したがって、リレーショナルデ
ータベースにおける各カラムにおける各レコードのフィ
ールド値のデータ分布について、簡易かつ確実に取得で
きるデータ分布推論方法を提供することができる。
【0090】請求項7のデータ分布推論方法において
は、前記仮の分布データは、相互に関係する複数のカラ
ムにおけるデータ分布を含み、前記仮のデータ分布の修
正においては、前記複数のカラムのうち、いずれか一の
カラムについて、総レコード数が増減した場合は、これ
に応じて、当該一のカラム以外のカラムについても、レ
コード数を増減させる。したがって、あるカラムについ
てレコード数が増減した場合に、このカラムと相互に関
係する他のカラムのデータ分布を修正することができる
データ分布推論方法を提供することができる。
【0091】請求項8、請求項9のリレーショナルデー
タベースシステムにおける支援装置または支援方法にお
いては、表示命令が与えられると、予め記憶したブロッ
ク別分布データが表示される。これにより、前記データ
分布を得ることができる支援装置または支援方法を提供
することができる。
【図面の簡単な説明】
【図1】本発明にかかるデータ分布推論装置1を有する
リレーショナルデータベースシステムの機能ブロック図
である。
【図2】図1に示すデータ分布推論装置1を有するリレ
ーショナルデータベースシステムをCPUで実現したハ
ードウェア構成を示す図である。
【図3】データ分布推論装置1を有するリレーショナル
データベースシステムの全体の処理フローチャートであ
る。
【図4】推論されたデータ分布を示す図である。
【図5】トレースログの一部を示す図である。
【図6】複数のブロックにまたがる処理結果が与えられ
た場合の処理を説明する為の図である。
【図7】更新系SQL文を含むトレースログの一部を示
す図である。
【図8】データの一部が削除された場合のデータ分布を
示す図である
【図9】相互に関連するカラムに関するデータ分布を示
す図である
【符号の説明】
3・・・・ブロック別分布データ記憶手段 5・・・・修正手段 7・・・・処理結果変換手段 9・・・・特徴量抽出手段 10・・・報知制御手段 11・・・報知手段 14・・・データ記憶手段 15・・・データ特性記憶手段 16・・・処理手段 18・・・処理結果記憶手段

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】リレーショナルデータベースシステムにお
    ける各テーブルの各カラムにおける各レコードのフィー
    ルド値のデータ分布を推論するデータ分布推論装置であ
    って、 特定カラムにおける前記データ分布を、1または2以上
    のブロックに分割したブロック別分布データとして記憶
    するブロック別分布データ記憶手段、 前記いずかのブロック内の特定範囲における処理結果が
    与えられると、当該ブロックにおけるブロック別分布デ
    ータおよび与えられた前記処理結果に基づいて、前記特
    定範囲における特定範囲データ分布を推論し、この推論
    結果に基づいて、前記特定範囲が含まれるブロック別分
    布データを修正する修正手段、 を備えたことを特徴とするデータ分布推論装置。
  2. 【請求項2】請求項1のデータ分布推論装置において、 前記ブロック別分布データは、当該ブロックにおける総
    レコード数、ユニーク数、同一フィールド値を持つレコ
    ードがいくつあるかを示す度数のいずれか2つであり、 前記特定範囲における処理結果は、当該特定範囲におけ
    る総レコード数であること、 を特徴とするデータ分布推論装置。
  3. 【請求項3】請求項1または請求項2のデータ分布推論
    装置において、 前記ブロック別分布データ記憶手段は、前記ブロック別
    分布データとして、少なくとも、当該ブロックにおける
    総レコード数を記憶しており、さらに、 複数のブロックにまたがる総レコード数が処理結果とし
    て与えられると、当該複数のブロックにおける総レコー
    ド数を読み出して、これに基づいて、少なくとも1のブ
    ロックにおける特定範囲における処理結果を演算して、
    前記修正手段に出力する処理結果変換手段を備えたこ
    と、 を特徴とするデータ分布推論装置。
  4. 【請求項4】請求項3のデータ分布推論装置において、 前記ブロック別分布データ記憶手段は、相互に関係する
    複数のカラムにおけるデータ分布を、前記ブロック別分
    布データとして記憶しており、 前記修正手段は、前記複数のカラムのうち、いずれか一
    のカラムについて、総レコード数が増減した場合は、当
    該一のカラム以外のカラムである他方カラムについて、
    当該他方カラムにおけるブロック別分布データにおける
    各ブロックの構成比率に応じて、各ブロックにおけるレ
    コード数を増減させること、 を特徴とするデータ分布推論装置。
  5. 【請求項5】A)以下のa1)〜a4)を有するリレーショナ
    ルテータベースシステム、 a1)各レコードについて一または二以上のカラムを有す
    るテーブルにデータを記憶するデータ記憶手段、 a2)前記データ記憶手段に記憶されるデータに関するデ
    ータ特性を記憶するデータ特性記憶手段、 a3)与えられた処理命令に基づいて、前記データ記憶手
    段に記憶されたデータを処理する処理手段、 a4)前記処理手段による処理結果を記憶する処理結果記
    憶手段、 B)以下のb1)〜b3)を有するデータ分布推論装置、 b1)特定カラムにおける前記データ分布を、1または2
    以上のブロックに分割したブロック別分布データとして
    記憶するブロック別分布データ記憶手段、 b2)前記いずかのブロック内の特定範囲における処理結
    果が与えられると、当該ブロックにおけるブロック別分
    布データおよび与えられた前記処理結果に基づいて、前
    記特定範囲における特定範囲データ分布を推論し、この
    推論結果に基づいて、前記特定範囲が含まれるブロック
    別分布データを修正する修正手段、 b3)前記データ特性記憶手段から、各カラムにおけるフ
    ィールド値の最小値、最大値、レコード数、およびユニ
    ーク数を特徴量として抽出し、特定カラムにおけるデー
    タ分布として、前記ブロック別分布データ記憶手段に記
    憶させる特徴量抽出手段、 を備えたことを特徴とするリレーショナルデータベース
    シテスム。
  6. 【請求項6】リレーショナルデータベースシステムにお
    ける各テーブルの各カラムにおける各レコードのフィー
    ルド値のデータ分布を推論するデータ分布推論方法であ
    って、 特定カラムにおいて、仮のデータ分布を記憶しておき、 前記リレーショナルデータベースシステムから前記特定
    カラムに対する処理結果が与えられると、前記仮のデー
    タ分布および与えられた前記処理結果に基づいて、より
    詳細なデータ分布を推論し、前記仮のデータ分布を修正
    すること、 を特徴とするデータ分布推論方法。
  7. 【請求項7】請求項6のデータ分布推論方法において、 前記仮の分布データは、相互に関係する複数のカラムに
    おけるデータ分布を含み、 前記仮のデータ分布の修正においては、前記複数のカラ
    ムのうち、いずれか一のカラムについて、総レコード数
    が増減した場合は、これに応じて、当該一のカラム以外
    のカラムについても、レコード数を増減させること、 を特徴とするデータ分布推論方法。
  8. 【請求項8】リレーショナルデータベースシステムにお
    ける各テーブルの各カラムにおける各レコードのフィー
    ルド値のデータ分布を表示するリレーショナルデータベ
    ースシステムにおける支援装置であって、 特定カラムにおける前記データ分布を、1または2以上
    のブロックに分割したブロック別分布データとして記憶
    するブロック別分布データ記憶手段、 表示命令が与えられると、前記ブロック別分布データを
    表示手段に表示させる表示制御手段、 を備えたことを特徴とする支援装置。
  9. 【請求項9】リレーショナルデータベースシステムにお
    ける各テーブルの各カラムにおける各レコードのフィー
    ルド値のデータ分布を表示するリレーショナルデータベ
    ースシステムにおける支援方法であって、 特定カラムにおける前記データ分布を、1または2以上
    のブロックに分割したブロック別分布データとして記憶
    しておき、 表示命令が与えられると、前記ブロック別分布データを
    表示すること、 を特徴とする支援方法。
JP7030466A 1995-02-20 1995-02-20 データ分布推論装置およびデータ分布推論装置を有するリレーショナルデータベースシステム Pending JPH08221446A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7030466A JPH08221446A (ja) 1995-02-20 1995-02-20 データ分布推論装置およびデータ分布推論装置を有するリレーショナルデータベースシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7030466A JPH08221446A (ja) 1995-02-20 1995-02-20 データ分布推論装置およびデータ分布推論装置を有するリレーショナルデータベースシステム

Publications (1)

Publication Number Publication Date
JPH08221446A true JPH08221446A (ja) 1996-08-30

Family

ID=12304666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7030466A Pending JPH08221446A (ja) 1995-02-20 1995-02-20 データ分布推論装置およびデータ分布推論装置を有するリレーショナルデータベースシステム

Country Status (1)

Country Link
JP (1) JPH08221446A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017221308A1 (ja) * 2016-06-20 2017-12-28 三菱電機株式会社 データ管理装置、データ管理方法、データ管理プログラム、検索装置、検索方法及び検索プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017221308A1 (ja) * 2016-06-20 2017-12-28 三菱電機株式会社 データ管理装置、データ管理方法、データ管理プログラム、検索装置、検索方法及び検索プログラム

Similar Documents

Publication Publication Date Title
KR20020028208A (ko) 데이터베이스 오브젝트 통계의 실시간 수집 방법 및 시스템
JP4101410B2 (ja) タイムバージョンデータ記憶装置
KR890007156A (ko) 키 레코드 데이타 페칭 및 삽입, 삭제방법
US20040236763A1 (en) System and method for identifying and storing changes made to a table
JP2937519B2 (ja) 文書検索装置
CN112182040B (zh) 数据查询方法、装置、设备和存储介质
US5398338A (en) Record retrieval method using key bondary value table and condition valid status table
JPH08221446A (ja) データ分布推論装置およびデータ分布推論装置を有するリレーショナルデータベースシステム
CN110333970B (zh) 一种数据恢复方法及装置
JP2002259186A (ja) Tree構造型インデクスの整合性チェック処理方法およびプログラムおよび装置
JP2624170B2 (ja) 論理削除データ物理削除方式
CN109325031B (zh) 一种数据统计方法、装置、设备和存储介质
JP3331250B2 (ja) 類似工程図の作成方法
JP3260587B2 (ja) 時系列データ管理方式
JP2738287B2 (ja) 分散型データベースのファイル抽出システム
JP3271452B2 (ja) Cadのレイヤ自動設定方法
JPH0782451B2 (ja) データベース管理システム
JP3043504B2 (ja) 時分割システムサービス方式
JPH0683747A (ja) メニュー情報呼出し装置
JP3035105B2 (ja) 文章情報処理装置
JPH10187701A (ja) データ処理装置、データ処理方法および読み出し可能なプログラムを格納した記録媒体
JP2000067077A (ja) データベースシステム及び表分割指定の処理を行うプログラムを格納した記録媒体
JPH0784849A (ja) データアクセス制御方法
JPH06161995A (ja) 氏名データ整形方法および装置
JPH08185409A (ja) 情報処理方法及びその装置