JP3564173B2 - 相対編成フアイルのアクセス装置 - Google Patents
相対編成フアイルのアクセス装置 Download PDFInfo
- Publication number
- JP3564173B2 JP3564173B2 JP14511994A JP14511994A JP3564173B2 JP 3564173 B2 JP3564173 B2 JP 3564173B2 JP 14511994 A JP14511994 A JP 14511994A JP 14511994 A JP14511994 A JP 14511994A JP 3564173 B2 JP3564173 B2 JP 3564173B2
- Authority
- JP
- Japan
- Prior art keywords
- record
- index
- index key
- relative
- key
- 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 - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
本発明は相対編成フアイルのアクセス装置に関し、特に相対編成フアイルのレコードの任意項目を索引キーとして索引編成フアイルを利用して高速にアクセスする相対編成フアイルのアクセス装置に関する。
【0002】
【従来の技術】
相対編成フアイルとは、相対レコード番号で一意に識別される複数のレコードに一定のスペースが割当てられ、通常は相対レコード番号がそれに対応するレコードの先頭からの相対位置を表すように編成されたフアイルをいう。
【0003】
図6に相対編成フアイルのレコードとその格納状態が図示されている。すなわち、レコードは、そのレコードを一意に識別する相対レコード番号を格納する相対レコード番号部61とデータを格納するデータ部62とから構成されており、相対レコード番号順に格納されている。
【0004】
従来の相対編成フアイルのアクセス装置では、レコードの任意項目をキーとして(キーを例えば図7(a)の形式とする)これによりそのキーに対応する指定レコードにアクセスする場合に、予め図7(b)に示すようなキーと相対レコード番号との対応表である索引編成フアイルを作成しておき、これを参照してキーに対応する相対レコード番号を調べ、その相対レコード番号により指定レコードにアクセスしていた。この索引編成フアイルでは、収容されている索引キーの数は相対編成フアイルのレコード件数と同じとなっている。
【0005】
索引編成フアイルを使用してレコードを検索する場合に、レコード件数の大小に対応して最上位、中位、…、最下位などのように複数階層から構成される索引ブロックを使用して効率的にアクセスする公知の方法が、よく知られている。
【0006】
そして、この方法では、階層数を削減すればアクセスの高速化ができるので、キーを図8(a)のように、メインキーとサブキーとの2レベルに分け、メインキーによる索引編成フアイルを作成して索引編成フアイルに収容され索引レコードの件数はメインキーの数に削減し、それに伴なって索引ブロックの階層数も削減できてアクセスの高速化を行なっている。
【0007】
索引編成フアイルのレコード(最下位の索引ブロックに相当)は図8(b)に示すように、メインキーを収容するキー部81と、それに所属するサブキーの個数83と、サブキー84−1−1とそれに対応するレコードのデータフアイル内相対ブロック番号s1 とブロック内開始位置s2 とそのレコード長s3 とからなるデータレコード位置情報84−1−2とから構成される複数のレコード位置情報84−1〜84−nとから構成されている。
【0008】
そして、指定レコードの検索に際しては、先ず指定されたメインキーにより索引編成フアイルから上述の公知の方法により、対応する最下位索引ブロックを読み出し、次いで、この索引ブロック内の各サブキー84−1−1〜84−n−1と指定されたサブキーとを比較して同一サブキーを探索して指定レコードのフアイル内位置情報を獲得し、それにより、指定レコードにアクセスしている。
【0009】
【発明が解決しようとする課題】
上述した従来の相対編成フアイルのアクセス装置は、索引編成フアイルの索引キーの数が相対編成フアイルに収容しているレコードの数と同じとなり、アクセスに要する時間が長くなるという問題がある。
【0010】
また、これを改善して索引編成フアイルの索引キーの数をメインキーの数に削減した発明では、サブキーによる対応するレコードの位置情報の検索に際しては、サブキーの比較動作を行なわなければならず、メインキーに所属するサブキーの数が多くなった場合には、アクセスに要する時間が長くなるという問題がある。
【0011】
本発明の目的は、索引キーを2分し、その一方を数字のみより構成される第2の索引キーとし、残余を第1の索引キーとする場合に、索引キーに対応するレコードの位置情報を第1の索引キーにより検索された索引レコード内の第2の索引キーの数字に対応する位置に格納することにより格段にアクセスを高速化した相対編成フアイルのアクセス装置を提供することにある。
【0012】
【課題を解決するための手段】
第1の発明の相対編成フアイルのアクセス装置は、相対レコード番号により一意に識別される複数のデータレコードを格納している相対編成フアイルと、前記データレコードの1つの項目を索引キーとし前記索引キーを少なくとも前記索引キーの一部の数字のみより構成される第2の索引キーとその残余から構成される第1の索引キーとに2分して作られた前記第1の索引キーとこの第1の索引キーに属する複数の相対レコード番号を前記第2の索引キーの示す位置情報に基づいて配列したデータ部とから構成される索引レコードを複数格納している索引編成フアイルと、前記索引キーを入力する索引キー入力手段と、入力された前記索引キーの第1の索引キーの供給に応答して前記索引編成フアイルから対応する索引レコードを取得しこのデータ部を出力する索引レコード取得手段と、入力された前記索引キーの第2の索引キーの供給を受け、これと相対レコード番号の桁数を用いて、前記索引レコード取得手段から供給されるデータ部におけるアドレスを算出し、これにより対応する相対レコード番号を取得する相対レコード番号取得手段と、前記相対レコード番号の供給を受け前記相対編成フアイルから対応するデータレコードを取得するデータレコード取得手段と、前記データレコードの供給を受けこれを外部に出力する出力手段とを含んで構成されている。
【0015】
【実施例】
次に、本発明の実施例について図面を参照して説明する。
【0016】
データレコードにアクセスするための索引キーはデータレコードの1項目をそれに使用できるが、以下の説明では、便宜上図2(a)に示すように6個の数字または文字等より構成される索引キー25を例にとって説明する。そして索引キーを上位部分21と下位部分22とに2分し(必ずしも等分ではない)、それぞれ第1の索引キー、第2の索引キーと以下呼称する。第2の索引キー22は数字のみから構成されているものとする。第1の索引キー21は文字のみの構成、数字のみの構成または文字と数字の混在の構成いずれでもよいとする。
【0017】
図1は本発明の相対編成フアイルのアクセス装置の一実施例を示すブロック図である。
【0018】
本実施例の相対編成フアイルのアクセス装置は、図1に示すように、索引キーを入力する索引キー入力部1と、入力された索引キーに対応するデータレコードを出力する出力部2と、相対レコード番号により一意に識別される複数のレコードを格納している相対編成フアイル4と、第1の索引キーとその第1の索引キーに属する複数の相対レコード番号からなる索引レコードを複数格納している索引編成フアイル5と、入力された第1の索引キーの供給に応答して索引編成フアイル5から対応する索引レコードを取得する索引レコード取得部6と、入力された第2の索引キーと供給される第1の索引キーに対応する索引レコードとから入力された索引キー(入力された第1の索引キーと入力された第2の索引キーとからなる索引キー)に対応するデータレコードの相対レコード番号を取得する相対レコード番号取得部7と、供給される相対レコード番号により相対編成フアイル4から対応するデータレコードを取得し出力部2へ出力するデータレコード取得部8とを含んで構成されている。
【0019】
索引レコード取得部6と相対レコード番号取得部7とデータレコード取得部8とは、主記憶および中央処理装置等から構成されるデータ処理部3としてプログラム制御により動作する。
【0020】
索引編成フアイル5はデータレコードのどの項目を索引キーとするかに応じて予め作成される。その索引レコードは前述のように第1の索引キーと、その第1の索引キーに属する複数の相対レコード番号から構成されているが、ここにその詳細を図2(b)を参照して説明する。
【0021】
図2(b)は索引編成フアイル5に格納されている索引レコードのデータの格納状態を示すデータ格納図である。図2(b)の索引レコード20はキー部23とデータ部24とから構成されており、キー部23には第1の索引キーが格納されており、データ部24にはキー部23に格納されている第1の索引キーに属する複数のデータレコードのそれぞれの相対レコード番号が2進数表示で格納されている。
【0022】
そしてこの第1の索引キーに属するデータレコードの数は第2の索引キーの10進法上の桁数で決る。すなわち、第2の索引キーの10進法上の桁数が2であれば100個、3であれば1000個である。
【0023】
次に、データ部24に収容される複数の相対レコード番号の収容形態であるが、相対レコード番号の2進数表示の場合の桁数に第2の索引キーの10進数表示の数字を乗じた桁数番目の次の位置から収容されている。索引キーが6個の場合のデータレコードの数は、索引キーが全て数字とした場合には100万個となり、したがって相対レコード番号の2進数表示の場合の桁数は20桁(図2(b)でLに相当する)となる。そして第2の索引キーが「123」(図2(b)でd1 =1,e1 =2,f1 =3の場合に相当)の場合には123*20=2460番目(図2(b)でmに相当する)の桁の次から始まる20桁に対応する相対レコード番号の2進数表示のデータが格納される。すなわち、このようにすることにより第2の索引キーは求める相対レコード番号のデータ部24内の格納位置を示す位置情報として使用できることになる。
【0024】
データレコードのどの項目を索引キーとするかを決めたら、上述のようにして、予め索引編成フアイル5を作成しておく。
【0025】
以後の説明では、相対レコード番号取得部7の動作により3つの実施例にわけて説明する。
【0026】
次に、図1、図2および図3を参照して第1の実施例の動作について説明する。
【0027】
索引キー入力部1から索引キー「a1 b1 c1 d1 e1 f1 」を入力する。
【0028】
索引レコード取得部6は入力された索引キーのうちの上位部分の第1の索引キーである「a1 b1 c1 」の供給をうけて、これをキーとして前述の公知の方法により、索引編成フアイル5を検索してこれに対応する索引レコード20を取得し、そのデータ部24を相対レコード番号取得部7に供給する。
【0029】
相対レコード番号取得部7は、索引レコード取得部6から供給される第1の索引キーに対応するデータ部24と、入力された索引キーのうちの下位部分の第2の索引キーである「d1 e1 f1 」の供給をうけて、入力された索引キーに対応するデータレコードの相対レコード番号を取得する。
【0030】
次に相対レコード番号取得部7の動作を図3の動作流れ図を参照して説明する。図3において、Lは相対レコード番号の2進数表示の場合のビット数、Pは探索する相対レコード番号の、データ部24における格納場所の始点のビット位置、Sは探索する相対レコード番号の値である。
【0031】
始めに、探索する相対レコード番号のデータ部24における格納場所の始点を、第2の索引キーの示す数字を10進数としてこれに相対レコード番号の2進数表示の場合のビット数Lを乗じて、これに1を加算して始点Pを計算する(ステップ31)。始点Pにより、相対レコード番号Sを読み出してデータレコード取得部8にこれを供給する(ステップ34)。
【0032】
次に、データレコード取得部8は、相対レコード番号取得部7から入力された索引キー「a1 b1 c1 d1 e1 f1 」に対応する相対レコード番号の供給をうけて、これをキーとして前述の公知の検索法により相対編成フアイル4から供給された相対レコード番号に対応するデータレコードを検索して出力部2に供給し、出力部2はこれを出力する。
【0033】
次に、本発明の第2の実施例について説明する。
【0034】
第2の実施例では索引レコードのデータ部から相対レコード番号を探索するときに、データ部の末尾から先頭に向かって丁度第1の実施例とは逆方向に探索するものである。したがって、第1の実施例とは相対レコード番号取得部7の動作を異にするのみである。
【0035】
そこで第2の実施例の相対レコード番号取得部7の動作を図4を参照して説明する。図4において、Qは探索する相対レコード番号の格納場所の終点の桁位置、Nはデータ部24の全体の桁数、他の記号の意味は第1の実施例の同一である。
【0036】
始めに、探索する相対レコード番号のデータ部24における格納場所の終点を、第2の索引キーの示す数字を10進数としてこれに1を加算した数に相対レコード番号の2進数表示の場合の桁数Lを乗じて終点Qを計算する(ステップ41)。次にデータ部24の末尾から順に先頭方向に向かって、探索する終点の桁位置を探し(ステップ42)、その終点の桁位置にある値から順に先頭方向に向かって相対レコード番号値を読み出して記憶し(ステップ43)、最後に記憶した相対レコード番号を読み出してデータレコード取得部8にこれを供給する(ステップ44)。
【0037】
次に本発明の第3の実施例について説明する。
【0038】
第3の実施例では索引レコードのデータ部から相対レコード番号を探索するときに、第2の索引キーの位置情報の示す位置を探索する際に、第1の実施例のようにデータ部の先頭から探索した方が早いか、第2の実施例のようにデータ部の末尾から探索した方が早いかを判断してから探索動作に入るものである。
【0039】
そこで、その判断機能を相対レコード番号取得部7に有せしめるとともに、その後の動作を行なうために、第3の実施例の相対レコード番号取得部7は第1の実施例および第2の実施例の相対レコード番号取得部7の探索動作を共に行なえるようにしてあり、その他の構成および動作は、第1および2の実施例と同一である。
【0040】
そこで、第3の実施例の相対レコード番号取得部7の動作を図5を参照して説明する。
【0041】
先ず、第2の索引キーの示す相対レコード番号の格納位置の中央桁のデータ部の先頭より数えた桁番とデータ部の中央桁の桁番とを比較し(ステップ51)、データ部の中央桁の桁番以下のときには第1の実施例のようにデータ部の先頭から探索し(ステップ51のY枝)、データ部の中央桁の桁番より大きいときには第2の実施例のようにデータ部の末尾から探索させる(ステップ51のN枝)。
【0042】
以上説明したように、第1の実施例では索引キーを2分しその一方を数字のみより構成される第2の索引キーとし、残余を第1の索引キーとする場合に、索引キーに対応するデータレコードの位置情報を第1の索引キーにより検索された索引レコード内の第2の索引キーの数字に対応する位置に格納することにより格段にアクセスを高速化できるという効果を有する。
【0043】また第1の索引キーにより検索された索引レコードには第2の索引キーの情報が顕在していないため、索引編成フアイルのフアイル容量を削減できるという効果を有する。
【発明の効果】
以上説明したように、本発明の相対編成フアイルのアクセス装置は、索引キーを2分しその一方を数字のみより構成される第2の索引キーとし、残余を第1の索引キーとする場合に、索引キーに対応するデータレコードの位置情報を第1の索引キーにより検索された索引レコード内の第2の索引キーの数字に対応する位置に格納することにより格段にアクセスを高速化できるという効果を有する。
【0044】
更に、第3の実施例では探索方向を判断してから探索動作に移行するため、第1および第2の実施例よりも更にアクセスを高速化できるという効果を有する。
【0045】
以上の説明では第1の索引キーを索引キーの上位部分、第2の索引キーを下位部分としたが、本発明はこれに限定されるものではなく、索引キー中の数字部分の少なくとも1部を第2の索引キーとし、その他を第1の索引キーとしても適用できることは自明である。
【0046】
【発明の効果】
以上説明したように、本発明の相対編成フアイルのアクセス装置は、索引キーを2分しその一方が数字の場合に、指定キーに対応するデータレコードの位置情報を指定第1の索引キーにより検索された索引レコード内の指定第2の索引キーの数字に対応する位置に格納することにより格段にアクセスを高速化できるという効果を有する。
【0047】
また第1の索引キーにより検索された索引レコードには第2の索引キーの情報が顕在していないため、索引編成フアイルのフアイル容量を削減できるという効果を有する。
【図面の簡単な説明】
【図1】本発明の相対編成フアイルのアクセス装置の一実施例を示すブロック図である。
【図2】(a)は図1の実施例の索引キーの一例を示すキー形式図、(b)は図1の実施例の索引編成フアイルの索引レコードの格納状態を示すデータ格納図である。
【図3】第1の実施例の相対レコード番号取得部の動作を示す流れ図である。
【図4】第2の実施例の相対レコード番号取得部の動作を示す流れ図である。
【図5】第3の実施例の相対レコード番号取得部の動作を示す流れ図である。
【図6】相対編成フアイルのデータ格納図である。
【図7】(a)は従来例の索引キーの一例を示すキー形式図、(b)はその索引編成フアイルの索引レコードの格納状態を示すデータ格納図である。
【図8】(a)は他の従来例の索引キーの一例を示すキー形式図、(b)はその索引編成フアイルの索引レコードの格納状態を示すデータ格納図である。
【符号の説明】
1 索引キー入力部
2 出力部
3 データ処理部
4 相対編成フアイル
5 索引編成フアイル
6 索引レコード取得部
7 相対レコード番号取得部
8 データレコード取得部
20 索引レコード
21 第1の索引キー
22 第2の索引キー
23、71、81 キー部
24、62、72、82 データ部
25 索引キー
61 相対レコード番号部
83 サブキーの個数
84−1〜84−n レコード位置情報
84−1−1〜84−n−1 サブキー
84−1−2〜84−n−2 データレコード位置情報
Claims (1)
- 相対レコード番号により一意に識別される複数のデータレコードを格納している相対編成フアイルと、前記データレコードの1つの項目を索引キーとし前記索引キーを少なくとも前記索引キーの一部の数字のみより構成される第2の索引キーとその残余から構成される第1の索引キーとに2分して作られた前記第1の索引キーとこの第1の索引キーに属する複数の相対レコード番号を前記第2の索引キーの示す位置情報に基づいて配列したデータ部とから構成される索引レコードを複数格納している索引編成フアイルと、前記索引キーを入力する索引キー入力手段と、入力された前記索引キーの第1の索引キーの供給に応答して前記索引編成フアイルから対応する索引レコードを取得しこのデータ部を出力する索引レコード取得手段と、入力された前記索引キーの第2の索引キーの供給を受け、これと相対レコード番号の桁数を用いて、前記索引レコード取得手段から供給されるデータ部におけるアドレスを算出し、これにより対応する相対レコード番号を取得する相対レコード番号取得手段と、前記相対レコード番号の供給を受け前記相対編成フアイルから対応するデータレコードを取得するデータレコード取得手段と、前記データレコードの供給を受けこれを外部に出力する出力手段とを含むことを特徴とする相対編成フアイルのアクセス装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14511994A JP3564173B2 (ja) | 1994-06-27 | 1994-06-27 | 相対編成フアイルのアクセス装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14511994A JP3564173B2 (ja) | 1994-06-27 | 1994-06-27 | 相対編成フアイルのアクセス装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0816441A JPH0816441A (ja) | 1996-01-19 |
JP3564173B2 true JP3564173B2 (ja) | 2004-09-08 |
Family
ID=15377840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14511994A Expired - Fee Related JP3564173B2 (ja) | 1994-06-27 | 1994-06-27 | 相対編成フアイルのアクセス装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3564173B2 (ja) |
-
1994
- 1994-06-27 JP JP14511994A patent/JP3564173B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0816441A (ja) | 1996-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5497485A (en) | Method and apparatus for implementing Q-trees | |
EP0124097B1 (en) | Method for storing and retrieving data in a data base | |
US6014733A (en) | Method and system for creating a perfect hash using an offset table | |
US4760526A (en) | Method for storing data into a file device and for data retrieval | |
US7206250B2 (en) | Method for storing data blocks in a memory | |
CA2103461A1 (en) | Relational data base memory utilization analyzer | |
WO2004036589A1 (en) | Virtual content addressable memory with high speed key insertion and deletion and pipelined key search | |
JP3251138B2 (ja) | ハッシュ方式 | |
JP3564173B2 (ja) | 相対編成フアイルのアクセス装置 | |
US6901396B1 (en) | Packed radix search tree implementation | |
JP3129248B2 (ja) | 2次元配列コードを用いた文字列検索方法 | |
US7130857B2 (en) | Method for accessing a memory unit in which sequences of notes are stored, corresponding memory unit and corresponding program | |
JP2604787B2 (ja) | 二次元データ格納方式 | |
JP3031944B2 (ja) | データ処理装置 | |
EP0564290B1 (en) | High speed sorting apparatus | |
JP2596332B2 (ja) | データ組合せ抽出方法およびその装置 | |
JP2748504B2 (ja) | 入力処理装置 | |
KR860001384A (ko) | 연상방법을 사용한 데이타 베이스의 탐색방법 | |
JPH11282758A (ja) | 不揮発性メモリへのデータ書き込み装置及び方法 | |
JPH04276836A (ja) | 可変長データの記録方法とその検索方法 | |
JPH0196728A (ja) | データベース・テーブルを検索する方法 | |
JPH0320842A (ja) | 索引順編成ファイル格納方式 | |
JP2000076106A (ja) | 索引順編成ファイルの管理方法 | |
JPS63189934A (ja) | デ−タベ−ス副次エントリ処理方式 | |
KR20010054699A (ko) | 에이티엠 셀의 채널연결정보를 검색하기 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040422 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040607 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080611 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |