JPH0772898B2 - インデックスの作成方式 - Google Patents

インデックスの作成方式

Info

Publication number
JPH0772898B2
JPH0772898B2 JP56100142A JP10014281A JPH0772898B2 JP H0772898 B2 JPH0772898 B2 JP H0772898B2 JP 56100142 A JP56100142 A JP 56100142A JP 10014281 A JP10014281 A JP 10014281A JP H0772898 B2 JPH0772898 B2 JP H0772898B2
Authority
JP
Japan
Prior art keywords
data
key
index
database
binary
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
JP56100142A
Other languages
English (en)
Other versions
JPS582938A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP56100142A priority Critical patent/JPH0772898B2/ja
Publication of JPS582938A publication Critical patent/JPS582938A/ja
Publication of JPH0772898B2 publication Critical patent/JPH0772898B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 本発明は、インデックスのキーを所定の記号化方式によ
って創成することによって、データ項目長の変更の際に
もインデックスを再作成せずに実行できるインデックス
の作成方式に関するものである。本発明によれば、デー
タベースの論理構造上のデータ構造の変更が発生して
も、インデックスをそのままの状態で運用を継続するこ
とができる。
複数の利用者からデータを同時に共用するデータベース
処理装置において、データベース管理システムが高度化
する傾向の中で、拡張性,柔軟性に富むデータベース運
用形態を実現する技術が必要とされている。
例えば、データベース導入時に行われるデータベース設
計では上流設計として位置づけられている実在データの
情報分析・整理・統合によって、完全なデータの論理関
係を明らかにする必要がある。しかしながら、実際のデ
ータ分析は膨大かつ常に変化する環境の中でデータを扱
わなければならないため、分析が終了する時点にはな何
らかの影響により、データ設計の手直しをすることが常
である。このような問題はデータベース導入期間や運用
時にも、データベースの手直しは必要となる。したがっ
て、柔軟で拡張性に飛んだデータベース管理システムが
求められている。特に、リレーショナル・データベース
の商用化に伴い、利用者が扱う応用プログラムとデータ
ベースの独立性が強く求められるようになり、利用者の
立場からのデータベース(論理データベース)とデータ
ベース管理システム側のデータベースの独立性が重要な
課題となってきている。
このような要請の中で、データベース物理構造である論
理構造上のデータに対する格納構造以外にも、高速にデ
ータを検索する手段としてのインデックス構造について
も柔軟なインデックス構造が求められている。
データを同時に共用するデータベースでは大きく論理構
造と物理構造に分類できる。これは、下記の文献1の3,
4章からも明らかである。
文献1 「Computer Data−Base Organization」2ed,JAMES MART
IN,PRENTICE−HALL,INC,1977 データベース管理システムは、利用者の応用プログラム
から見える論理的なファイルやテーブル(これを論理デ
ータベースと呼ぶことにする)と物理データベースのデ
ータ・アクセスの変換処理を実現している。ここでは、
本発明に関連しない論理データベースの説明は行わな
い。物理データベースでは、文献1の20章にあるような
周知のインデックス順構造(Indexed Sequential Organ
ization),ハッシュ(Hashing),22章や23章にあるよ
うなポインタ構成(Pointers)やチェーン・リング構造
(Chains AND Ring Structures)がある。これらのデー
タ構造は、主に論理データベースのデータをマッピング
するために利用する。ここでマッピングとは、論理デー
タベース上のレコード(ロー)が論理データベースの複
数の構造に分割して配置したり、複数の論理データベー
スのレコードを一つの物理データベースの構造に配置、
またはそれらの組合せを言う。
それぞれの物理データベース格納構造へのアクセスに
は、挿入・削除・検索・更新といった周知の構成が含ま
れている。例えば、文献1の20章の順処理,乱処理には
検索系の構成や挿入・削除といった構成が示されてい
る。更新の構成は挿入・削除で代行可能であるが、一般
的に更新の構成を独立させることが多い。
論理データベースでは、一つのキーによってレコードを
検索することは稀で、別の項目をキーとして検索するこ
とが通常行われている。物理データベース構造では、通
常は2次インデックス構造で実現されている。2次イン
デックス構造に関しても文献1の26章,29章に記載のよ
うに周知であるため、詳細な仕組みは省略する。
通常は論理データベースか,マッピングされる物理デー
タベースの格納構造(ベースデータ構造と呼ぶことにす
る)をアクセスする前にインデックスをアクセスする。
インデックスは、目的のベースデータ構造内のデータを
高速に検索する手段を提供するものである。一方、デー
タを同時に共用するようなデータベースでは、ベースデ
ータ構造のデータ更新が入ることが一般的なため、イン
デックス・キーのアップグレード(更新)が必要にな
る。現在では、文献1の30章や,下記の文献2にあるよ
うにバランス木構造のインデックスが主流になってきて
いる。
文献2 「The Ubiquitous B−Tree」,D.Comer,ACM Computing S
urveys,VoI11,No2,PP 121−138,ACM,1979 インデックス構造のアクセスは、キーによる検索,順処
理検索,キー挿入,キー削除から構成されていることは
周知である。本発明では、その内でキーの検索方式と挿
入方式を例にして、インデックス部の構成を説明してい
る。
また、下記の文献3には、文字項目に対する複数キーの
記号化に対する構成が記述されている。これによって、
文字項目の空白部分の圧縮が可能となる構成を利用し
て、文字項目の長さ変更に対してインデックスの再編成
を回避することが可能となる。文献3には、数値項目に
関する構成は記述されていない。文字項目の記号化・展
開技法の構成は、周知の文字項目によるマルチ・キー・
フィールドの連結技法として本明細書中に後述されてい
る。
文献3 「An Encoding Method For Multifield Sorting and In
dexing」,Michal W Blasgen,Richard G.Gasey,and Kapa
li P Eswaran,Communications of the ACM,Vo120,No11,
ACM,1977 従来技術の問題点は、データベースの導入時または導入
後に数値項目のデータの変更を行った場合には、必ず物
理データベースの再編成が必要であることである。
ところが、インデックスが関連するデータベースの属性
変更やデータ長の変更は、従来技術では禁止項目である
ことが多い。この場合、いったんインデックスの削除
し、インデックスを再創成する必要があった。再作成の
ためにベースデータ構造の全データを検索しなければな
らないため、システム・サービスを一時的に停止する必
要がある。
したがって、データベースの導入後に、データの変更を
行う際には必ずデータベースをサービスを停止する必要
があった。
本発明は、応用プログラムのトランザクション処理やジ
ョブの切れ目と言った短時間にスキーマや物理構造定義
体の変更のためにサービスは中断するが、インデックス
構造には影響せずに、データベース・サービスを続行で
きるようにするものである。
これらは、特に大規模なトランザクション処理用データ
ベース,部門データベース,個人向けのパーソナルなデ
ータベースには必要なサービスである。大規模なトラク
ザクション処理用データベースでは、予めデータベース
設計を行って、導入テストを行いサービスに入る。デー
タベース設計の上流工程では実在するデータの情報分析
を完全に行ってから導入,サービスに入ることになる
が、外部環境は常に変化しているため、実際にはデータ
ベースの導入やサービス時期に変更が発生する。部門デ
ータベースや個人データベースでは、大規模システムと
比較してデータベース設計に掛ける時間が少ない。この
ようなデータベースで頻繁にデータベースの変更が発生
する。
本発明は、上記の考察に基づくものであって、リレーシ
ョナル・データベース・システムにおいて、データ項目
の長さや属性などの変更に行ってもインデックスの再創
成を必要としないようにしたインデックスの作成方式を
提供することを目的としている。そしてそのため、本発
明のインデックスの作成方式は、 圧縮キーを持つ複数のインデックスからなるインデック
ス部(1)と、 インデックス部(1)から取り出された圧縮キーの展開
およびインデックス部(1)に書き込むべきキーの圧縮
を行う圧縮・展開手段(2)と、 記号化手段(3)と を具備するリレーショナル・データベース・システムに
おけるインデックスの作成方式であって、 記号化手段(3)は、入力項目データの中に数値項目デ
ータが存在する場合には、数値項目データを所定バイト
長の2進データに変換し、 変換の結果得られる2進データを、正のときには正であ
ること及び削除された‘00“(16進)を除いた有効バイ
ト数を示す制御バイト並びに‘00'(16進)が除かれた
データ部から成る記号化2進データに変換し、負のとき
には負であること及び‘FF'(16進)の削減バイト数を
示す制御バイト並びに‘FF'(16進)が削除されたデー
タ部からなる記号化2進データに変換し、 入力項目データの中に他のデータ項目がある場合には、
変換の結果得られた記号化2進データと他のデータ項目
とを連結し、連結したものをキーとして出力するように
構成されている。
ことを特徴とするものである。
要約すると、本発明は内部10進項目や外部10進項目を2
進項目に変更し、2進項目を文字項目と同様な特性を有
する記号化2進項目に変換し、記号化2進項目を含む複
数のデータ項目を従来から知られているマルチ・キー・
フィールドの連結技法を利用して連結したものである。
いま Key={A,B} A char (10) B char (10) であるとする。上式は、キーはデータ項目A,Bから構成
されていること、Aは文字形式で10バイトであること、
及びBも文字形式で10バイトであることを示している。
任意の項目データa1,b1に第1図(イ)のような文字が
入っていると仮定する。項目データを或は値nで分割す
る。文字項目は先頭からの比較バイト数で大小が決定さ
れる性質をもっている。従って、分割部分に制御バイト
の重みを付けることによって、ブランクを省略すること
が出来る。例えば、継続結合部分は‘FF'X、その他は有
効文字数とする。上記の技法を用いて、第1図(イ)の
項目データa1とb1と連結すると、第1図(ロ)のように
なる。また、第2図(イ)の項目データa2とb2とを連結
すると、マルチキーは第2図(ロ)のようになる。な
お、‖は結合を表している。第1図(ロ)のキーをk1
し、第2図(ロ)のキーをk2とすると、k1<k2となる。
nの値を例えば4バイトに固定すれば、文字項目の長さ
の変更に対応することが出来る。なお、第2図(ロ)の
‘03'Xは、直前の4バイトの文字領域における有効文字
数が3文字であることを示している。
次に2進項目の記号化について説明する。先ず入力され
た2進項目を8バイト長に展開する。第3図に示すよう
に、制御バイトを付加し、その1ビット目を空き、2ビ
ット目を符号ビットとし正の時は“1"、負の時は“0"と
する。そして、制御バイトの5ないし8ビット目で以
て、負数のとき‘FF'Xの削除バイト数、正数のとき‘0
0'Xを除いた有効バイト数を表す。‘FF'と‘00'のバイ
ト数を省略することは、絶対数の小さい数ほど省略され
やすいことを示している。
こうしてできた記号化キーの大小比較は文字と同等の比
較が可能である。すなわち、制御バイトの符号ビットで
データの正負の文字比較が可能となる。制御バイト中の
5ないし8ビットは負数については‘FF'Xの省略値数
が、正数については‘00'Xを除いた有効バイト数が設定
してあるため、データの桁数による文字比較が可能とな
る。同一桁については負数は補数表現であり、正数はそ
のものを設定してあるため、文字比較が可能である。
第4図は2進項目の記号化の具体例を示している。第4
図(イ)は入力データ、第4図(ロ)は計算機内部の表
現データ、第4図(ハ)はサプレス後の記号化2進デー
タを示している。
例えば、入力データが−8888(16進)の場合、計算機内
部の表現データはFFFFFFFFFFFF7778(16進)となる。上
述のように、制御バイトの1ビット目は0(空きを示
す)であり、負数のときは制御バイトの2ビット目が0
であり、制御バイトの5ないし8ビット目で以てFF(16
進)の削除バイト数を表すので、計算機内部の表現デー
タ=FFFFFFFFFFFF7778(16進)に対する制御バイトは00
000110(2進)となる。これを16進で表すと06となる。
例えば、入力データが+8888(16進)の場合、計算機内
部の表現データは0000000000008888(16進)となる。上
述のように、制御バイトの1ビット目は0(空きを示
す)であり、正数のときは制御バイトの2ビット目が1
であり、制御バイトの5ないし8ビット目で以て00(16
進)を除いた有効バイト数を表すので、計算機内部の表
現データ=0000000000008888(16進)に対する制御バイ
トは01000010(2進)となる。これを16進で表すと42と
なる。
2進数を倍語長で表現し、もう一度記号化する。これに
よれば、記号化前の2進数は1ないし8バイトまでのデ
ータ定義のデータ長に依存しないため、データ属性が変
更されても、記号化手段によりキーの大小関係を保障で
きる。また、もう一度記号化(圧縮)することにより、
倍語長表現のデータ域を制御バイトのみの増加に押さえ
こむことが可能となる。属性変更についても、内部10進
や外部10進を2進倍語長に変換し、2進記号化手段を使
用すれば属性から独立できる。
第5図はデータベースの検索シーケンスを説明するもの
である。インデックス部1のインデックスは、数値デー
タを記号化し、この結果得られた記号化2進データと他
のデータをマルチ・キー・フィールド連結技法により連
結し、連結して得らたキーを前方圧縮/後方圧縮した圧
縮キーを含んでいるものである。前方/後方圧縮・展開
ルーチン2は、キーを前方/後方圧縮する機能と、圧縮
されたキーを元の形に展開する機能を有しているもので
ある。記号化ルーチンは、入力データ項目i1,i2,i3を記
号化し、これらをマルチ・キー・フィールド連結技法で
連結するものである。次に検索シーケンスについて説明
する。
イ 入力データ項目i1,i2,i3をそれぞれ記号化する。
ロ 連結キーkを出力する(ただし、比較のため最大値
とする)。
ハ インデックス部1内のインデックスのキーを展開す
る。
ニ ハのキーを入力連結キーkと比較し、ハ、ニを繰り
返す。
ホ キーが一致したら、一致を示したインデックスでポ
イントされているデータ項目を出力する。
インデックス部1のインデックスの挿入は、下記のよう
なシーケンスで行われる。
(イ) 入力データ項目i1,i2,i3を記号化する。
(ロ) 連結キーを出力する。
(ハ) インデックス部1のインデックスのキーを展開
する。
(ニ) (ハ)のキーを入力連結キーkと比較する。
(ハ)、(ニ)を繰り返す。
(ホ) インデックスの挿入位置が決まったら、入力連
結キーを前方/後方圧縮ルーチンで圧縮し、圧縮キーと
ポインタによりなるインデックスをその位置に挿入す
る。
上記インデックスについて、インデッスク・キー長が変
更になった場合、第5図に記号化ルーチンの動きを具体
的に説明する。インデックス・キーが単一の2進項目で
ある場合に、インデックス定義がsmall integer(2バ
イトの2進項目と定義する)からlong integer(8バイ
トの2進項目と定義する)に定義変更したい場合を第4
図を例にして説明する。small integerの時に+8888,−
8888(16進)を入力すると、記号化ルーチン3によって
428888と067778と言うキーを作成され、インデックス・
キーとしてインデックス1に登録する。インデックス・
キーはそのまま比較可能であり、キー展開もsmall inte
gerに変換可能である。次にlong integerに変更する。
+888888888888,−888888888888(16進)を入力する
と、記号化ルーチン3によって46888888888888と027777
77777778と言うキーが作成されてインデックス1に登録
する。この時は第4図(ハ)に示すような順になり、sm
all integerの時に作成したキーに影響を与えない。更
に、+0が入力されても40と言うキーになり、インデッ
クスへは067778と428888の間に挿入される。これらのキ
ーはlong integer定義に従って、それぞれ展開すること
可能である。
第6図は在庫テーブルの例を示す図である。このテーブ
ルは四個の項目を有している。PRODUCTは製品名、PNOは
製品番号、QOHは数量、WHNOは倉庫番号をそれぞれ示し
ている。例えば在庫テーブルから在庫数が50以下の製品
名を知りたい場合、SELECT PRODUCT FROM STOCK WHERE
QOH≦50と言う文をリレーショナル・データベースに入
力する。
第7図は格納構造の例を示す図である。図示の例ではデ
ンス(セカンダリ)・インデッスクをPRODUCTとPNOのマ
ルチ・キーで作成している。
第8図は記号化ルーチン変換および前方/後方圧縮の例
を示す図である。例えば3000と言う数字は、記号化2進
データで表現すると、‘42'X‖‘0BB8'Xとなる。この記
号化2進データとステレオと言う文字データとをマルチ
・キーフィールド連結技法で連結すると、‘ステレオ’
‖‘04'X‖‘42'X‖‘0BB8'Xとなる。実際のインデック
ス上では、第9図に示すように、前方/後方圧縮・展開
ルーチンから出力される圧縮キーを結合して並べて、イ
ンデックスのブロック内へ格納する。
以上の説明から明らかなように、本発明によれば、キー
となる数値データを所定バイト長の2進データにし、所
定バイト長の2進データを記号化し、記号化2進データ
と他のデータを連結し、連結されたものを圧縮技法によ
り圧縮し、このようにして作成された圧縮キーをインデ
ックスのキーとしているので、数値データ項目の長さや
属性などの変更を行っても、インデックス部の再編成を
必要としないと言う効果が得られる。
【図面の簡単な説明】
第1図および第2図は従来のマルチ・キー・フィールド
連結技法を説明する図、第3図は本発明による記号化2
進データ項目の構成を示す図、第4図は記号化2進デー
タ項目の具体例を示す図、第5図はデータベース検索シ
ーケンスを説明する図、第6図は在庫テーブルの例を示
す図、第7図は格納構造の例を示す図、第8図は記号化
ルーチン変換および前方/後方圧縮の例を示す図、第9
図は実際のインデックス上での圧縮キーの配置を示す図
である。 2……インデックス部、2……前方/後方圧縮・展開ル
ーチン、3……記号化ルーチン。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】圧縮キーを持つ複数のインデックスからな
    るインデックス部(1)と、 インデッスク部(1)から取り出された圧縮キーの展開
    およびインデックス部(1)に書き込むべきキーの圧縮
    を行う圧縮・展開手段(2)と、 記号化手段(3)と、 を具備するリレーショナル・データベース・システムに
    おけるインデックスの作成方式であって、 記号化手段(3)は、入力項目データの中に数値項目デ
    ータが存在する場合には、数値項目データを所定バイト
    長の2進データに変換し、 変換の結果得られる2進データを、正のときには正であ
    ること及び削除された‘00'(16進)を除いた有効バイ
    ト数を示す制御バイト並び‘00'(16進)が除かれたデ
    ータ部から成る記号化2進データに変換し、負のときに
    は負であること及び‘FF'(16進)の削除バイト数を示
    す制御バイト並びに‘FF'(16進)が削除されたデータ
    部からなる記号化2進データに変換し、 入力項目データの中に他のデータ項目がある場合には、
    変換の結果得られた記号化2進データと他のデータ項目
    とを連結し、連結したものをキーとして出力するように
    構成されている ことを特徴とするインデックスの作成方式。
JP56100142A 1981-06-27 1981-06-27 インデックスの作成方式 Expired - Lifetime JPH0772898B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56100142A JPH0772898B2 (ja) 1981-06-27 1981-06-27 インデックスの作成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56100142A JPH0772898B2 (ja) 1981-06-27 1981-06-27 インデックスの作成方式

Publications (2)

Publication Number Publication Date
JPS582938A JPS582938A (ja) 1983-01-08
JPH0772898B2 true JPH0772898B2 (ja) 1995-08-02

Family

ID=14266056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56100142A Expired - Lifetime JPH0772898B2 (ja) 1981-06-27 1981-06-27 インデックスの作成方式

Country Status (1)

Country Link
JP (1) JPH0772898B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4260221B2 (ja) * 1996-02-06 2009-04-30 フィッシャー−ローズマウント システムズ, インコーポレイテッド フィールドデバイスコンフィギュレーションへのチェンジのレコードのトランザクションデーターベースを管理する為のシステム及び方法
GB2406678B (en) * 2000-11-30 2005-05-18 Coppereye Ltd Database
US10671586B2 (en) * 2017-07-25 2020-06-02 Sap Se Optimal sort key compression and index rebuilding

Also Published As

Publication number Publication date
JPS582938A (ja) 1983-01-08

Similar Documents

Publication Publication Date Title
US20220255014A1 (en) Trie-Based Indices for Databases
US7178100B2 (en) Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
US7565349B2 (en) Method for computing frequency distribution for many fields in one pass in parallel
Bassiouni Data compression in scientific and statistical databases
US7454403B2 (en) Method and mechanism of improving performance of database query language statements using data duplication information
US7783855B2 (en) Keymap order compression
EP3435256B1 (en) Optimal sort key compression and index rebuilding
US5678043A (en) Data compression and encryption system and method representing records as differences between sorted domain ordinals that represent field values
US20040133581A1 (en) Database management system, data structure generating method for database management system, and storage medium therefor
US20030135495A1 (en) Database indexing method and apparatus
US11803336B2 (en) Efficiently accessing, storing and transmitting data elements
EP1504377B1 (en) Storing and querying relational data in compressed storage format
WO1995032477A1 (en) Compressed database with selection of compaction methods
US5301315A (en) Indexing/compression scheme for supporting graphics and data selection
US10146817B2 (en) Inverted index and inverted list process for storing and retrieving information
US5481704A (en) Indexing/compression scheme for supporting graphics and data selection
JP2005018672A (ja) 構造化文書の圧縮方法
US6279004B1 (en) Database index key versioning
JPH0772898B2 (ja) インデックスの作成方式
US20080133562A1 (en) Coding compressible variable length database fields
US7133885B2 (en) Database management system using offsets in entries with at least one varying-length column
US6279003B1 (en) Self-describing multiple key format database index
JP3563823B2 (ja) 文書管理装置
JP3565840B2 (ja) 文書管理方法および文書管理装置
JP2990312B2 (ja) データアクセス方法および装置