JP2523642B2 - デ―タベ―ス・アクセス最適化方法 - Google Patents

デ―タベ―ス・アクセス最適化方法

Info

Publication number
JP2523642B2
JP2523642B2 JP62138120A JP13812087A JP2523642B2 JP 2523642 B2 JP2523642 B2 JP 2523642B2 JP 62138120 A JP62138120 A JP 62138120A JP 13812087 A JP13812087 A JP 13812087A JP 2523642 B2 JP2523642 B2 JP 2523642B2
Authority
JP
Japan
Prior art keywords
record
distance
type
search
matrix
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
JP62138120A
Other languages
English (en)
Other versions
JPS63303426A (ja
Inventor
雅司 陶山
恵子 中川
利夫 山根
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 JP62138120A priority Critical patent/JP2523642B2/ja
Publication of JPS63303426A publication Critical patent/JPS63303426A/ja
Application granted granted Critical
Publication of JP2523642B2 publication Critical patent/JP2523642B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データベース.アクセスに係り、特にデー
タベースの構造を意識しないアクセスに好適なアクセス
最適化に関する。
〔従来の技術〕
第2図(a)に示すような論理構造をもつデータがあ
ったとする。各データは第2図(b)のように格納され
ている。
あるレコードをモデル化したものをレコードタイプと
いい、それに対応してデータベース中で、実際のデータ
値をもって存在するものをレコードオカレンスという。
例えば第2図(b)に示す売上レコードがデータベース
中の情報として、伝票番号,顧客番号,商品番号,売上
数量の各情報をモデル化したものがレコードタイプであ
り、実際にデータをもつ個々のものをレコードオカレン
スという。
例えば、レコード.タイプBを検索条件としてレコー
ド.タイプHを検索する場合を考える。まずレコード.
タイプBを検索し一定の条件を満たしているレコード.
オカレンスをみつける。このレコード.オカレンスとセ
ット.タイプbで結ばれているレコード.タイプDのレ
コード.オカレンスをみつける。さらにセット.タイプ
dで結ばれているレコード.タイプEから該当するレコ
ード.オカレンスをみつける。このとき利用者はこのデ
ータの論理構造を意識しながら検索しているのでHを検
索するのにレコード間の関連を示す情報であり、データ
ベースの管理情報として記憶されているセット.タイプ
hを使って検索目標であるレコード.タイプHにたどり
つく。このような論理構造について意識しないで検索を
行う方法の一例としては特開昭57−25038号に記載のよ
うにデータ定義時に予め定められた複数のレコード.タ
イプに対してどのセット.タイプにしたがって検索を行
うかを定めた検索処理手順を定義しておき検索処理手順
を命令で指定して処理実行時に検索処理手順にもとづい
て当該レコード.タイプをアクセスするとなっている。
〔発明が解決しようとする問題点〕
上記従来技術は、検索処理手順を定義するには依然論
理構造を意識する必要があり、エンドユーザが利用する
には専門家に予め検索処理手順を定義しておいてもらう
必要があり、定型的な業務には適しているが、臨時に発
生する非定型的な業務(例えば、定型業務は定期的に出
力される営業成績や給与計算など企業の専門部署でシス
テムを作成.運営している。これに対して、期間の途中
の結果などを加工して短期間の経営的な意思決定に利用
する報告書を作成したり、コンピュータの専門家でなく
人事.経理.営業員といった実務担当者自身が試行錯誤
しながら直接自分が欲しい結果を得たりするような業務
をいう。)には配慮されておらず、このような業務が発
生するたびに専門家の手を煩わせることになる。またデ
ータの論理構造が変更された場合、検索処理手順の定義
をやり直さなければならない。
本発明の目的は、構造型データベースにおいて検索要
求を行う命令中に検索目標レコード.タイプ識別子と検
索条件を指定するだけで検索目標レコード.タイプや条
件レコード.タイプへのアクセス.パスを意識せずに検
索を行えるようにして極力専門家の手を煩わせることな
くエンドユーザ自身によってデータベースにアクセスさ
せることにある。
〔問題点を解決するための手段〕
上記目的は、複数のレコード.タイプがセット.タイ
プによって連結されている構造型データベースがもつデ
ータベース定義ライブラリをもとにして各レコード.タ
イプ間で最短ルートを通るには何本のカセット.タイプ
をたどればよいかを表現したディスタンス.マトリック
スというマトリックス状のテーブルを作成しておき、利
用者によって指定された検索目標レコード.タイプ識別
子と検索条件をもつ命令を解析する際に、このディスタ
ンス.マトリックスによって検索条件となるレコード.
タイプと検索目標レコード.タイプの最短ルートを見つ
け出すことにより、達成される。
〔作 用〕
ディスタンス.マトリックスを作成しておくことによ
り、利用者にかわって複雑な論理構造をもつデータの検
索において最適なアクセス.パスを見つけ出し、このア
クセス.パスにもとづいて検索が実行できるようにす
る。それによって、利用者は検索の対象となるレコー
ド.タイプ間の論理構造を意識する必要がない。また、
検索実行時にディスタンス.マトリックスを参照するよ
うなインタプリティブな実行形態(インタプリタによる
実行)においてはダイナミックに最適なアクセス.パス
を決定することができるため、データの論理構造が変更
になってもディスタンス.マトリックをメンテナンスし
ておけば検索を行うために作成したロジックを組み直す
必要もない。なお、「検索を行うために作成したロジッ
ク」とは、データベースに対し、どういう条件を待つど
ういうレコードが欲しいかを表現した検索要求のこと。
従来プログラムを作成してデータの論理構造を意識して
検索要求を行わなければならなかった。そのためデータ
の論理構造が変更になるとその変更にあわせてプログラ
ムを修正しなければならなかった。ディスタンス.マト
リックスを利用すると論理構造が変更になった場合、デ
ィスタンス.マトリックスをその変更にあわせてメンテ
ナンスしておけばプログラムそのものは修正する必要が
ない。
〔実施例〕
以下、本発明の一実施例を図により説明する。第1図
に示すのがディスタンス.マトリックスであり、これは
第2図に示す論理構造をもつデータの各レコード.タイ
プ間の距離を表わしている。例えば、レコード.タイプ
Aからレコード.タイプHをたどるには最短で4本のセ
ット.タイプをたどる必要があることがわかる。第1図
に示すディスタンス.マトリックスの生成方法について
説明する。
はじめにディスタンス.マトリックス生成のためのシ
ステムの構成について説明する。第5図にシステム構成
図を示す。ディスプレイ装置の画面あるいはカードによ
り定義を行旨の命令と該当する論理構造の名称を入力す
る。これにより制御部から定義部に制御が渡り、データ
ベース中のデータ定義が格納されている定義ライブラリ
を参照して該当する論理構造の情報を入力し、これをも
とにディスタンス.マトリックスを生成する。これと同
時に第6図に示すようなテーブルを作成しておく。マト
リッククスの番号とレコードにつけられた番号は対応付
けられている。また各レコードがオーナとなるセット情
報などの関連情報ももっている。これらが外部記憶装置
に格納される。
次に画面あるいはカードより検索を行う旨の命令と検
索要求が入力されると制御部から検索部に制御が渡る。
外部記憶装置からディスタンス.マトリックスと図6−
2に示す情報が主記憶装置に入力される。これらを元に
して検索要求が解析されデータベース.アクセスの最適
化が図られて、データベースの検索を行う。データベー
スより得られた結果は入力された命令に従って、画面や
プリンタ等に出力される。
次に、第1図,第2図における生成例を説明する。
まず同一レコード.タイプ間の距離(例えば、AとA,
BとB)は0なので、マトリックスに0をセットする。
データベースのデータ定義ライブラリよりオーナレコー
ドとメンバレコードの関係にあるレコード.タイプを知
ることができるのでオーナとメンバの関係にあるレコー
ド.タイプ同士の距離を1とセットする(例えばAとB,
BとC)。データ定義ライブラリ中に各レコード.タイ
プの定義情報と各セット.タイプの定義情報があり、セ
ット.タイプの定義情報にはこのセット.タイプのオー
ナとメンバになるそれぞれのレコード名が格納されてい
る。セットタイプの情報を読み込むことによりオーナと
メンバの関係を知ることができる。例えば第2図で示す
論理構造の定義情報中のセット.タイプ定義情報を読む
ことにより、セット.タイプa,b,c,d,e,f,g,hの情報が
得られる。例えばセット.タイプaの定義情報にはオー
ナレコード名としてAが、メンバ.レコード名としてB
が登録されているので、レコードAとBがオーナとメン
バの関係にあることことがわかる。
次に距離が1のものについて1行目すなわちレコー
ド.タイプAに対して列方向(J)へ距離が1のレコー
ド.タイプを捜す。レコード.タイプAに対してレコー
ド.タイプBが距離1であることがわかる。続いてAに
ついて距離が2のレコード.タイプをみつけるにはBか
らの距離が1のものをみつければよいので、2行目のB
に対して列方向(J)をサーチして距離が1のものをみ
つける。ここではレコード.タイプA,C,Dがみつかる
が、現在Aについて距離が2のレコード.タイプを捜し
ているので、A以外のレコード.タイプC,DがAとの距
離が2となる。そこで、1行目の2列目と3列目に2を
セットする。さらに2行目,3行目,…と行方向(I)に
ついても同様にして距離が2のマトリックスを求める。
次に距離3をセットするために距離が2のものについて
注目する。1行目すなわちAに対して距離が2のレコー
ド.タイプはCとDがある。Cについて距離が1の関係
にあるものを捜すとBがある。しかしAとBはすでに距
離が1とわかっている。DについてみるとDからの距離
が1のレコード.タイプはBとEである。AとBは距離
が1とわかっている。AとEは対応するマトリックスが
空欄なので距離が3となる。1行目の5列目に3をセッ
トする。以下行方向(I)に対しても同様の処理が行わ
れ距離が3のものすべてが求められる。さらに距離が4,
5,…のものについても同様の処理で求められ、マトリッ
クスのすべてが埋まるまで繰り返される。以上の処理を
図示すれば第3図のフローチャートのごとくなる。即
ち、はじめに、同一レコード.タイプ間の距離を0にす
る。データ定義ライブラリのセット情報に各セットのオ
ーナとメンバのレコード名が格納されていて、この情報
を参照することにより、レコード.タイプ間の距離が1
のものをマトリックスにセットすることができる。
次にNとは注目する距離数で、まず距離が1の関係か
ら注目していく。次にI=1とは行方向に対し第1行目
に注目することを意味する。この第1行目に対し、今度
はJ=1として列方向第1列目に注目する。次に「距離
(I,J)」とは「距離(行,列)=距離数」という関数
のことである。例えば今I=1,J=1なので、マトリッ
クスの第1行,第1列目を表わし、距離数は0である。
ところで今N=1の距離の関係が1のものを捜している
ので、Jに1を加えて、第1行目,第2列目を参照す
る。すると距離数が1であるので条件に合う。第1列目
すなわちAと第2列目すなわちBとの距離が1である。
そこでBからの距離が1でかつAでないレコードがあれ
ばそのレコードとAの距離が2ということになる。そこ
でレコードBの行(第2行目)について注目し、K=1
として列方向に第1列目から捜していく。距離(J,K)
より今J=2,K=1なので、第2行目,第1列目でここ
に距離1が格納されている。しかし今I=1でK=1で
あり、I≠Kという条件が成立しないのでさらにKに1
を加え、2列目を見ていく。今ここではBからの距離が
1でかつAでないレコードを捜しているのでI≠Kとは
「Aでないレコード」という条件に対応したものであ
る。また、第2行目の第2列目は距離が0である。さら
にK=1を加え、第2行目,第3列目を見る。ここで距
離が1であり、かつI=1,K=3でI≠Kが成立する。
そこで距離(I,K)すなわち第1行目の第3列目はまだ
値がセットされていないので距離(I,K)=N+1を実
行すなわちマトリックスの第1行目,第3列目に2をセ
ットする。これによりAとCが距離が2であると表わせ
た。さらに第2行目(レコードB)について第4列目以
降で距離が1のものを捜して行く。ここでは第4列目が
距離が1なので、第1行目,第4列目にも距離が2とセ
ットされAとDも距離が2となる。第8列目まで見終わ
ると次にJに1を加え、第1行目第3列目から第8列目
まで同様にして処理されていく。第8列目まで処理が終
了するとIに1を加えて今度は第2行目について第1列
目から第8列目まで処理していく。Iについても8行目
まで処理が行われ、この時点で距離が2の関係にあるマ
トリックスがうめられる。次にNに1を加えて注目する
距離数を2とする。
再度第1行目,第1列目から距離が2のものを捜して
行く。距離が2の関係にあるものを見つけ出すと例えば
第1行目,第3列目すなわちAとCの関係からさらにC
と距離が1のレコード例えばEを見つけだす。これによ
りAとEが距離が3の関係にあることが知れ、第1行
目,第4列目に3がセットされる。これについても第1
行目,から第8行目まで処理が終了した時点で、距離3
の関係にあるものがすべてセットされることになる。ま
たNに1を加え、距離3のものに注目していく。
以上の処理を繰り返すことによりすべてのマトリック
スに距離数がセットされて処理が終了する。
以上のようにして完成したディスタンス.マトリック
スは外部記憶装置に保存しておき、検索時に主記憶装置
にロードしてこれを参照して最適なアクセス.パスをみ
つけだす。いま第2図に示す論理構造をもつデータの検
索を行うコマンド1が第4図のように与えられていると
する。このコマンドはレコード.タイプBがWという条
件を満たすようなレコード.タイプHを検索することを
意味し、このコマンドが投入されると実際にはWという
条件を満たすBを検索し、特定のセット.タイプをたど
ってレコード.タイプHを検索することになる。従って
コマンドの解析の一処理としてレコード.タイプBとH
を結ぶアクセス.パスを決定しなければならない。B−
Hのアクセス.パスは第2図からリセット.タイプb→
d→hおよびb→d→e→f→gという二通り考えら
れ、最適化をはかる上でb→d→hというアクセス.パ
スをみつけださなければならない。第4図の解析処理2
中のアクセス.パス決定処理3で示すような手順で最適
なアクセス.パスをみつける。
(ア)ディスタンス.マトリックスを外部記憶装置より
入力する。
(イ)Xに検索起点のレコード.タイプ番号を、Yに最
終検索目標レコード.タイプ番号をそれぞれセットす
る。この場合、第1図のディスタンス.マトリックスよ
りXにBすなわち2を、YにHすなわち8を入れHをア
クセス.キューにスタックしておく。
ここで、Xは検索起点レコード.タイプ番号格納領
域。Yは検索パスを見つけだすための作業領域。
距離(2,8)とはマトリックスの2行目,8列目を示
し、その場所に格納されている値がレコード.タイプB
とHの距離を表す。マトリックスは外部記憶装置より主
記憶装置に2次元のテーブルとして格納されるので、例
えばそのテーブルの名称を「距離」とすれば「距離(2,
8)」とすればテーブルの2行目,8列目がアクセスでき
る。
また、このアクセス.キューはどういう順序でアクセ
スするのかを表わしたテーブル。このテーブルは「先入
れ後出し」になっていて、この場合H,E,D,Bの順に格納
され、アクセスの際にはB→D→E→Hという順にアク
セスしていくことを示す。
(ウ)ディスタンス.マトリックスの距離(2,8)より
距離R=3とわかる。
(エ)さらにディスタンス.マトリックスより、Yすな
わちHより距離が1のレコード.タイプはEとGがあ
り、XすなわちBからR−1=2の距離にあるレコー
ド.タイプはEであるためEがアクセス.キュー4にス
タックされ、E→Hとたどらなければならないことがわ
かる。
(オ)距離Rに2を入れ、YにEのレコード番号を入れ
る。同様にしてEから1の距離でBから距離が1のレコ
ード.タイプDをみつけ、Dをアクセス.キュー4にス
タックする。
(カ)距離Rが1となりBがアクセス.キュー4にスタ
ックされる。アクセス.キュー4の並びからB→D→E
→Hという順にレコード.タイプをアクセスすればよい
ということがわかり、これによりb→d→hというセッ
ト.タイプをたどるルートが最適なアクセス.パスであ
ることが見出せる。
以上のような手順でみつけだしたアクセス.パスにも
とづいて次のような検索が実行される。
第4図のアクセス.パス決定処理で生成したアクセ
ス.キューをもとにして、解析が行われてデータベース
へアクセス要求を行う操作言語を生成する。例えばアク
セス.キューより最初にアクセスするレコードを取り出
す。ここではレコードBでありかつコマンド17からB=
Wという条件キーとなっているので FIND B WHERE条件→Wという条件が指定される。
が生成される。これはレコードBを一定の条件で検索す
ることを意味する。次にアクセス.キューよりレコード
Dを検索する必要があるので、BとDを結ぶセットbを
たどった検索を行う必要があることがわかり、 FIND CURRENT MEMBER PF b が生成される。これは現在検索されたオーナレコード
(ここではレコードB)とセットbで結ばれたメンバレ
コード(ここではレコードD)を検索することを意味す
る。
同様にして次にEレコードを検索するために FIND CURRENT MEMBER OF dを生成する。
さらにアクセス.キューよりHを取り出す。Hの次はな
いのでHが最終検索目標のレコードであることがわかる
ので FETCH H WITHIN h を生成する。これは現在検索されているオーナ.レコー
ド(ここではレコードE)とセットhで結ばれたメンバ
レコードHを検索し、データベースから検索した結果を
本システムの一定の領域に読み込むことを意味する。
以上のデータ操作言語が生成されこれを検索実行セク
ションではデータベース.管理システムに伝えてデータ
ベースとのアクセスが行われる。
本実施例によれば、レコード.タイプ間の論理構造を
知らなくても、第4図のコマンド1に示すようにレコー
ド.タイプ名称がわかっていれば検索が行える。また、
検索実行時にディスタンス.マトリックスを参照してダ
イナミックに最適なアクセス・パスを決定するので、デ
ータの論理構造が変更になってもディスタンス.マトリ
ックスを再生成しておけば、検索用のコマンドのロジッ
クを変更する必要がないという効果もある。
〔発明の効果〕
本発明によれば、自動的にデータの論理構造にもとづ
くアクセス.パスをみつけだすので、論理構造を意識し
ないでデータベースを検索することを可能にする。
【図面の簡単な説明】 第1図は本発明の一実施例のディスタンス.マトリック
ス図、第2図は第1図のもとになったデータの論理構造
図、第3図はディスタンス.マトリックスの生成処理一
実施例のフローチャート、第4図は最適なアクセス.パ
スを捜す処理の一実施例のフローチャート、第5図はデ
ィスタンス.マトリックス生成のためのシステム構成
図、第6図はディスタンス.マトリックス生成に使用さ
れるテーブルの構成を示す図。 1〜8……レコード.タイプ 9〜16……セット.タイプ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭61−51239(JP,A) 特開 昭63−288326(JP,A) 特開 昭57−25038(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】構造型データベースをアクセスするため
    に、検索目標レコード識別子と検索条件を指定できる命
    令体系をもち、この命令の解析にもとづいて検索処理を
    行なうデータ処理装置におけるデータベース・アクセス
    最適化方法であって、該構造型データベースがもつ定義
    ライブラリをもとにして各レコード・タイプ間で最短ル
    ートを通るには何本のセット・タイプをたどればよいか
    を表現したディスタンス・マトリックス・テーブルとい
    うマトリックス状のテーブルを設け、検索要求時に、該
    ディスタンス・マトリックス・テーブルを参照して検索
    条件中に指定されたレコード・タイプと検索目標レコー
    ド・タイプの最適ルートを見つけ出すことを特徴とする
    データベース・アクセス最適化方法。
JP62138120A 1987-06-03 1987-06-03 デ―タベ―ス・アクセス最適化方法 Expired - Lifetime JP2523642B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62138120A JP2523642B2 (ja) 1987-06-03 1987-06-03 デ―タベ―ス・アクセス最適化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62138120A JP2523642B2 (ja) 1987-06-03 1987-06-03 デ―タベ―ス・アクセス最適化方法

Publications (2)

Publication Number Publication Date
JPS63303426A JPS63303426A (ja) 1988-12-12
JP2523642B2 true JP2523642B2 (ja) 1996-08-14

Family

ID=15214435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62138120A Expired - Lifetime JP2523642B2 (ja) 1987-06-03 1987-06-03 デ―タベ―ス・アクセス最適化方法

Country Status (1)

Country Link
JP (1) JP2523642B2 (ja)

Also Published As

Publication number Publication date
JPS63303426A (ja) 1988-12-12

Similar Documents

Publication Publication Date Title
US5088052A (en) System for graphically representing and manipulating data stored in databases
US8799229B2 (en) Searchable archive
US7039622B2 (en) Computer-implemented knowledge repository interface system and method
US5826257A (en) Method and structure for maintaining and utilizing a lookup value associated with a stored database value
KR100402913B1 (ko) 데이타베이스검색을위한병렬처리시스템
US7844570B2 (en) Database generation systems and methods
KR101213798B1 (ko) 복합 데이터 액세스
CN1987861A (zh) 处理数据库查询的系统和方法
JP2005115514A (ja) データベース検索システム及びその検索方法並びにプログラム
JP4343206B2 (ja) 構造化文書検索支援装置およびプログラム
US11803550B2 (en) Workload-aware column imprints
US6269359B1 (en) Relational data base system and method for rapidly realizing a query to a database
US11934404B2 (en) Servicing database requests using canonicalized tables
JP2523642B2 (ja) デ―タベ―ス・アクセス最適化方法
WO2011099114A1 (ja) ハイブリッド型データベースシステム及びその動作方法
JP2004192657A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
JP2001067369A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
US20240184793A1 (en) Deep mining of enterprise data sources
Weissman et al. Working with spark in big data clusters
JP2737899B2 (ja) プロダクト管理装置
JPH0461382B2 (ja)
JPS63269224A (ja) デ−タベ−スアクセス方式
JPH0312337B2 (ja)
JPH01255926A (ja) 時系列データベースシステム
EP2942720A1 (en) Domain based keyword search