JPH1011338A - リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体 - Google Patents

リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体

Info

Publication number
JPH1011338A
JPH1011338A JP8164008A JP16400896A JPH1011338A JP H1011338 A JPH1011338 A JP H1011338A JP 8164008 A JP8164008 A JP 8164008A JP 16400896 A JP16400896 A JP 16400896A JP H1011338 A JPH1011338 A JP H1011338A
Authority
JP
Japan
Prior art keywords
record
common
records
individual
field
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
JP8164008A
Other languages
English (en)
Inventor
Kunisaku Ikeda
国作 池田
Hiroaki Yagi
宏明 八木
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 Information Systems Ltd
Original Assignee
Hitachi Information Systems 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 Information Systems Ltd filed Critical Hitachi Information Systems Ltd
Priority to JP8164008A priority Critical patent/JPH1011338A/ja
Publication of JPH1011338A publication Critical patent/JPH1011338A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 格納容量の削減とアクセス効率向上を両立さ
せることが可能なRDB、該RDBへのデータ圧縮格納
/検索時の読み出し復元を行うデータ格納・読み出し方
法、およびそのための制御プログラムを記録した記録媒
体を提供する。 【解決手段】 格納データレコード(入力レコードa〜
d)を、主キー部と、サブキー部と、共通フィールド部
と、個別フィールド部とに区分けし、主キー部同値の複
数レコードを、主キー部と共通データフィールド部とN
ULL値フィールド部とで構成される一つの親レコード
(共通格納レコード)と、主キー部と、サブキー部
と、個別データフィールド部とNULL値フィールド部
とで構成される複数の子レコード(個別格納レコード
〜)とに分割してデータベースに格納する。また、指
定された主キーとサブキーから読み出した該当の親レコ
ードと、子レコードとを1レコードに合成し、格納デー
タレコードを復元する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リレーショナル・
データベース・システム(Relational Data Base S
ystem:以下RDBと略す)に関するものであり、特
に、データを大幅に圧縮して格納することが可能なRD
B、該RDBへのデータ圧縮格納および読み出し復元を
行うデータ格納・読み出し方法、およびそのための制御
プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】RDBは、データを複数の表の形式で記
憶するデータベースである。各表はデータ要素の集まり
である行(レコードともいう)と列から構成され、各表
は他の表と区別するための表名を持っている。RDBに
おける各表の行の順序は任意であり、また、一つ以上の
表に対して自由に選択(Selection;表から特定の条件
に合致した行を取り出す/Restriction;制約),射影
(Projection;表から特定の列だけを取り出す),結
合(Join;2つ以上の表から1つの表を生成)などの
関係演算,合併(Union;2つの照会結果を連接して合
わせる),共通(Intersection;複数の表間で共通の
内容を取り出す),差(Difference;複数の表間の差
分データを取り出す)などの集合演算、挿入(Insert;
行単位での挿入),削除(Delete;行単位での削
除),更新(Update;データ要素単位での更新)など
の変更操作が可能である。RDBは、表表現であるため
一覧性があり親しみやすくまた各種操作が理解しやすい
ために広く研究されて様々な改良が加えられている。な
お、RDBの詳細については、例えば、平尾隆行著「関
係データベースシステム」(1991年3月20日 近代科学社
発行)を参照されたい。
【0003】RDBの表定義設計は、対象業務の論理デ
ータモデルを設計し、正規化手順を経てRDBの表定義
における列定義を決定する。通常、正規化手順により表
列定義の主キー以外の項目属性の間に従属関係がなくな
るまで正規化を行い、各表の列定義を決定する。また、
正規化を行うことで、各表の列同志の項目重複を避ける
ことができる。以下、その例を具体的に説明する。
【0004】(例題)ある契約マスタの非正規化型とし
て論理データ項目が以下のケースを想定する。 1.証券番号 2.顧客番号 3.契約者氏名 4.契約者住所 5.契約者電話番号 6.証券種類 7.契約明細項目1(ex;契約期間) 8.契約明細項目2(ex;契約料)
【0005】これらのデータにおいて、同一顧客が契約
するセット商品の契約情報をRDB上で保有管理する場
合、個別の契約内容を(証券番号+枝番)で登録管理す
るケースでは、表定義の列定義項目として以下の構成が
考えられる。 (表定義A) 1.証券番号 2.証券番号枝番 3.顧客番号 4.契約者氏名 5.契約者住所 6.契約者電話番号 7.証券種類 8.契約明細項目1(ex;契約期間) 9.契約明細項目2(ex;契約料)
【0006】キーとして「証券番号+証券番号枝番」を
考えた場合、表定義Aにおいてデータ項目3〜6につい
ては、顧客番号をキーとする従属関係が存在するため、
正規化によりRDBにおけるデータモデルの表定義は、
次のように2つに分割される。 (表定義1) 1.証券番号 2.証券番号枝番 3.顧客番号 4.証券種類 5.契約明細項目1(ex;契約期間) 6.契約明細項目2(ex;契約料) (表定義2) 1.顧客番号 2.契約者氏名 3.契約者住所 4.契約者電話番号
【0007】上記のような表定義においてマスタ内容の
照会処理を考えた場合、表へのアクセスは、 1.表定義1からの契約明細の検索アクセス 2.表定義2から該当契約の契約者情報(氏名,住所,
電話番号など)の検索アクセス の2回の表アクセスを行うことになる。
【0008】
【発明が解決しようとする課題】上記例題の表定義構成
において、次のような条件を有する場合には、表へのア
クセス時間が問題となってくる。 1.主キーの枝番で保管する同一顧客の契約レコードが
平均2件以上存在する。(同一キーで検索できる表レコ
ードが2件以上存在する) 2.保有契約件数が多数存在する。 3.表の1レコード内に従属関係の項目が多数存在す
る。 (上記例題での契約者氏名,契約者住所,契約者電話番
号など)
【0009】上記のような条件のデータ項目を保有する
表定義を考えた場合、格納容量を削減するためには、上
記例題のように、従属関係項目を別表定義として分離
し、2表にすることが考えられる。しかしながら、この
ようにした場合には格納容量は削減できるが、アクセス
対象の表が2表になるため、アクセス効率が低下すると
いう新たな問題を招く。また、全てのデータ項目を1表
で定義した場合、表へのアクセスは、1表のみとなり表
へのアクセス効率は向上するが、表列定義内の各レコー
ドで同一主キー同志で「同一な従属関係の項目」が多数
重複して存在するため、RDBの格納容量が膨大とな
る。従って、上記のようなケースでは、格納容量の削減
とアクセス効率向上を両立させることが困難になる。本
発明は、上記問題点を解決し、格納容量の削減とアクセ
ス効率向上を両立させることが可能なRDB、該RDB
へのデータ圧縮格納/検索時の読み出し復元を行うデー
タ格納・読み出し方法、およびそのための制御プログラ
ムを記録した記録媒体を提供することを目的とする。
【0010】
【課題を解決するための手段】本発明は、上記目的を達
成するために、RDBにおいて、格納データレコード
(入力レコードa〜d)を、主キー部と、サブキー部
と、共通フィールド部と、個別フィールド部とに区分け
し、主キー部が同値を持つデータレコードが複数レコー
ド存在する場合に、主キー部同値の複数レコードを、主
キー部と共通データフィールド部とNULL値フィール
ド部とで構成される一つの親レコード(共通格納レコー
ド1)と、主キー部と、サブキー部と、個別データフィ
ールド部とNULL値フィールド部とで構成される複数
の子レコード(個別格納レコード〜)とに、分割し
て格納するレコード分割・格納手段と、指定された主キ
ーとサブキーから読み出した該当の親レコード(共通格
納レコード)と、子レコード(個別格納レコード〜
)とを1レコードに合成し、格納データレコード(入
力レコードa〜d)を復元するレコード読み出し復元手
段とを備えたことを特徴としている。
【0011】また、この場合、親レコード(共通格納レ
コード)と、前記親レコード(共通格納レコード)
に対応する子レコード(個別格納レコード〜)を、
共に同じレコード・フォーマット、レコード長で作成
し、親レコード(共通格納レコード)における共通デ
ータフィールド部は、子レコード(個別格納レコード
〜)におけるNULL値フィールド部に、また、子レ
コード(個別格納レコード〜)における個別データ
フィールド部は、親レコード(共通格納レコード)に
おけるNULL値フィールド部に、それぞれ対応するよ
うに格納データレコード(入力レコードa〜d)をフォ
ーマットすることを特徴としている。
【0012】また、本発明のリレーショナル・データベ
ースにおけるデータレコードの格納・読み出し方法は、
格納データレコード(入力レコードa〜d)を、主キー
部と、サブキー部と、共通フィールド部と、個別フィー
ルド部とに区分けし、主キー部が同値を持つデータレコ
ードが複数レコード存在する場合に、主キー部同値の複
数レコードを、主キー部と共通データフィールド部とN
ULL値フィールド部とで構成される一つの親レコード
(共通格納レコード)と、主キー部と、サブキー部
と、個別データフィールド部とNULL値フィールド部
とで構成される複数の子レコード(個別格納レコード
〜)とに分割してデータベースに格納し、指定された
主キーとサブキーから読み出した該当の親レコード(共
通格納レコード)と、子レコード(個別格納レコード
〜のいずれか)とを1レコードに合成し、格納デー
タレコード(入力レコードa〜d)を復元することを特
徴としている。
【0013】また、この場合、親レコード(共通格納レ
コード)と、前記親レコード(共通格納レコード)
に対応する子レコード(個別格納レコード〜)を、
共に同じレコード・フォーマット、レコード長で作成
し、親レコード(共通格納レコード)における共通デ
ータフィールド部は、子レコード(個別格納レコード
〜)におけるNULL値フィールド部に、また、子レ
コード(個別格納レコード〜)における個別データ
フィールド部は、親レコード(共通格納レコード)に
おけるNULL値フィールド部に、それぞれ対応するよ
う格納データレコード(入力レコードa〜d)をフォー
マットすることを特徴としている。
【0014】さらに、本発明の記録媒体は、格納データ
レコード(入力レコードa〜d)を、主キー部と、サブ
キー部と、共通フィールド部と、個別フィールド部とに
区分けし、主キー部が同値を持つデータレコードが複数
レコード存在する場合に、主キー部同値の複数レコード
を、主キー部と、共通データフィールド部と、NULL
値フィールド部とで構成される一つの親レコード(共通
格納レコード)と、主キー部と、サブキー部と、個別
データフィールド部と、NULL値フィールド部とで構
成される複数の子レコード(個別格納レコード〜)
とに、分割して格納するレコード分割・格納手順と、指
定された主キーとサブキーから読み出した該当の親レコ
ード(共通格納レコード)と、子レコード(個別格納
レコード〜)とを1レコードに合成し、格納データ
レコード(入力レコードa〜d)を復元するレコード読
み出し復元手順を含んだデータベース・アクセス制御プ
ログラムが記録されたものであることを特徴としてい
る。
【0015】また、この場合、レコード分割・格納手順
は、親レコード(共通格納レコード)と、前記親レコ
ード(共通格納レコード)に対応する子レコード(個
別格納レコード〜)を、共に同じレコード・フォー
マット、レコード長で作成し、親レコード(共通格納レ
コード)における共通データフィールド部は、子レコ
ード(個別格納レコード〜)におけるNULL値フ
ィールド部に、また、子レコード(個別格納レコード
〜)における個別データフィールド部は、親レコード
(共通格納レコード)におけるNULL値フィールド
部に、それぞれ対応するよう格納データレコード(入力
レコードa〜d)をフォーマットするようにしたもので
あることを特徴としている。
【0016】
【発明の実施の形態】表定義上で、1表にて定義した場
合(表定義Aのケース)、1表の列定義項目内で従属関
係にある項目については、同一主キー(枝番なし)同志
のレコード間で項目値が重複して格納されてしまうた
め、RDB格納容量が増大する。このため、同一主キー
(枝番なし)同志のレコード間での従属関係にある項目
の格納を同一主キーのレコード件数分格納せず、1レコ
ード分の格納に抑えて格納できれば、2表に分割して格
納するケースとほぼ同等の格納容量となる。本発明で
は、以下の格納方法によりアクセス効率のよい1表によ
る表定義RDBを使用し、レコード間の「従属関係にあ
る項目」の重複格納を避けることにより、格納容量の削
減も実現している。
【0017】(1)格納する主キーが重複するレコード
の各項目を、各レコード個別フィールド群と共通フィー
ルド群とに振り分けて登録する。各レコード個別項目
は、個別格納レコード「主キー+枝番(01〜)」に格
納する。個別格納レコード内の共通フィールドには、N
ULL値設定として格納する。主キーが重複するレコー
ドの共通項目は、「主キー+枝番(00)」の共通格納
レコードとして格納する。共通格納レコードの個別フィ
ールドには、個別格納レコードと反対にNULL値を設
定して格納する。入力レコードから共通格納レコードお
よび個別格納レコードに分離するためには、RDBの列
定義での各項目の内、どの項目が共通フィールドでどの
項目が個別フィールドかを識別する情報が必要になる。
本実施例では、本識別する情報としてMASKテーブル
を定義しておき、該MASKテーブルとの突き合わせに
より格納レコードへの分離を行う。 (2)レコードの復元時は、上記分割レコードを統合
し、格納時のレコードを復元する。
【0018】上記発明の実施の形態によると、同一キー
内(枝番などで複数のレコードが存在する)の複数レコ
ード間で、重複している情報を、共通格納レコードとし
て集約するとともに、個別格納レコードは共通格納レコ
ードと逆の重複しない情報を設定し作成している。これ
により、データベースの標準機能である「連続文字圧縮
機能」が有効に働き、ディスク容量を削減することがで
きる。このとき、共通格納レコードに設定するフィール
ドと、個別格納フィールドに設定するフィールドの識別
は、MASKテーブルとの比較によって実現させてお
り、1項目単位に比較する方法に比較して処理効率が向
上する。また、格納レコードの復元は、共通格納レコー
ドと個別格納レコードの合成により実現させている。
【0019】以下、本発明の実施例を図面を用いて詳細
に説明する。図1は本発明の実施例に係るリレーショナ
ル・データベース1とユーザプログラム2とデータベー
ス管理システム(DBMS)3とDBアクセス制御ルー
チン4の関係を示す概念図である。DBアクセス制御ル
ーチン4は、ユーザプログラムから受け取った入力レコ
ードからリレーショナル・データベース1へ格納する格
納レコードを作成するとともに、リレーショナル・デー
タベース1に格納されている格納レコードから元の入力
レコードを復元するためのルーチンである。以下の説明
で明らかになるように、このDBアクセス制御ルーチン
4は、ユーザプログラムがデータベースに対しレコード
の入出力要求を行った場合、次のような処理を実施す
る。
【0020】(1)レコード検索要求の場合、データベ
ースから共通格納レコードと個別格納レコードを入力
し、共通格納レコードと個別格納レコードでレコードを
復元処理を行い、復元したレコードをユーザプログラム
へ返す。 (2)レコード更新要求の場合、データベースから共通
格納レコードを入力し、ユーザプログラムから受け取っ
たレコードと該共通格納レコードとで個別格納レコード
を作成し、個別格納レコードをデータベースに格納す
る。本発明は、このDBアクセス制御ルーチン4の機能
により、ユーザプログラム2側からもデータベース管理
システム(DBMS)3側からも、相互の関連を意識す
ることなく、リレーショナル・データベース1のアクセ
スを可能としている。
【0021】図2は、ユーザプログラム2から入力され
る入力レコードからリレーショナル・データベース1へ
格納する格納レコードを作成する方法を示すイメージ図
である。本方法では、同一キー(枝番などで区別して管
理されている同一主キーを有するデータは同一キーとし
て取り扱う)を有する複数の入力レコードから、共通フ
ィールド(複数のレコード間で同一の情報が設定されて
いる比率が大きい項目の集まり)に該同一の情報を設定
し、個別フィールド(複数のレコード間で同一の情報が
設定されている比率が小さい項目の集まり)の情報は
「NULL値」を設定した共通格納レコードと、個別フ
ィールド情報として対応する入力レコードの個別フィー
ルドの値を設定し、共通フィールドの情報として「NU
LL」値を設定(例外的に、入力レコードの共通フィー
ルドが共通格納レコードの共通フィールドの情報と異な
る場合には入力レコードの共通フィールドの情報を優先
して設定)した個別格納レコードを作成する。このよう
にして、共通格納レコードが同一キー毎に1レコード作
成され、個別格納レコードが入力レコード数だけ作成さ
れる。
【0022】次に、図2を用いて、入力レコードから格
納レコードを作成する方法をさらに詳細に説明する。図
2の例では、入力レコードa〜dはキーが全て同一のA
AAで枝番がそれぞれ1〜4を有している。入力レコー
ドa,b,dの共通フィールド1が同一の情報「AA」
を有し、入力レコードcの共通フィールド1だけが情報
「BB」を有している。また、入力レコードa,b,c
の共通フィールド2が同一の情報「CC」を有し、入力
レコードdの共通フィールド2だけが情報「DD」を有
している。個別フィールド1および2の情報は全ての入
力レコードで異なっている。
【0023】なお、以下の説明では、簡単のために入力
レコードが4個の場合を説明しているが入力レコード数
は任意でよく、多ければ多いほど本発明の効果が顕著に
なる。また、入力レコードの共通フィールドと個別フィ
ールドとしてそれぞれ2個のみを示しているが、この数
も任意でよいことはいうまでもない。
【0024】上述したように、共通格納レコードは、
共通フィールド1に入力レコードa,b,dで共通の情
報「AA」を、共通フィールド2に入力レコードa,
b,cで共通の情報「CC」を入れ、個別フィールド1
および2には全て「NULL値」を入れることにより、
入力レコードa〜dに対してただ一つ作成される。
【0025】個別格納レコード〜の各々は、個別フ
ィールド1および2には対応する入力レコードa〜dの
個別フィールド1および2の情報をそのまま入れ、共通
フィールド1および2には原則として「NULL値」を
入れて作成する。例外的に、入力レコードの共通フィー
ルドの情報が共通格納レコードの共通フィールドの情
報と異なる場合に、その入力レコードに対応する個別格
納レコードの共通フィールドにその入力レコードの共通
フィールドの情報を優先的に設定するようにする。入力
レコードa〜dに上記操作を行うことにより、図2に示
されているような格納レコードが作成される。特に、個
別格納レコードの共通フィールド1には「BB」が、
個別格納レコードの共通フィールド2には「DD」が
入れられることに留意されたい。
【0026】以上の説明から明らかなように、格納レコ
ードを作成する場合、共通フィールドの情報が1番目の
入力レコードの共通フィールドの情報と同一の情報を有
する入力レコードに対応する個別格納レコードの共通フ
ィールドは「NULL値」に設定されるため、データベ
ースの標準機能である「連続文字圧縮機能」が有効に働
きデータベース格納容量を削減することができる。この
ことは、入力レコード数が多く、かつ入力レコードの共
通フィールドができるだけ共通の情報を有しているほど
データベース格納容量(ディスク容量)の削減効果が大
きいことを意味している。
【0027】なお、1番目の入力レコードの共通フィー
ルドだけが後続する他の入力レコードの共通フィールド
の値と異なっている場合には個別格納レコードの共通フ
ィールドを「NULL値」に設定することができないた
め、上述した連続文字圧縮機能によるデータベース格納
容量の削減効果はなくなるが、「1番目の入力レコード
の共通フィールドだけが後続する他の入力レコードの共
通フィールドの値と異なっている場合」という状況は確
率的に小さく、ほとんどの場合に対して上記データベー
ス格納容量(ディスク容量)の削減効果が期待できる。
【0028】次に、格納レコードから入力レコードを復
元する方法について説明する。図3は、リレーショナル
・データベース1に格納されている共通格納レコード
と個別格納レコード〜から構成される格納レコード
から入力レコードa〜d(復元後レコードa’〜d’と
して示す)を復元する方法を示すイメージ図である。レ
コードの復元は、共通格納レコードの共通フィールドの
情報と、個別格納レコードの個別フィールドの情報を合
成して行われる。ただし、個別格納レコードの共通フィ
ールドに「NULL値」以外の情報が設定されている場
合には、この個別格納レコードの共通フィールド情報を
優先して採用するようにする。
【0029】図3を用いて具体的に説明すると、復元後
レコードa’は、共通フィールド1および2の情報とし
て共通格納レコードの共通フィールド1および2の情
報「AA」「CC」を、個別フィールド1および2の情
報として個別格納レコードの個別フィールド1および
2の情報「ああ」「いい」を抽出して合成し、復元後レ
コードb’は、共通フィールド1および2の情報として
共通格納レコードの共通フィールド1および2の情報
「AA」「CC」を、個別フィールド1および2の情報
として個別格納レコードの個別フィールド1および2
の情報「うう」「ええ」を抽出して合成する。
【0030】復元後レコードc’は、共通フィールド1
の情報としては、個別格納レコードの共通フィールド
1に共通格納レコードの共通フィールド1の情報「A
A]とは異なる情報「BB」が設定されているのでこの
情報「BB」を採用するとともに、共通フィールド2の
情報として共通格納レコードの共通フィールド2の情
報「CC」を、個別フィールド1および2の情報として
個別格納レコードの個別フィールド1および2の情報
「おお」「かか」を抽出して合成する。
【0031】復元後レコードd’は、共通フィールド2
の情報としては、個別格納レコードの共通フィールド
2に共通格納レコードの共通フィールド2の情報「C
C」とは異なる情報「DD」が設定されているのでこの
情報「DD」を採用するとともに、共通フィールド1の
情報として共通格納レコードの共通フィールド1の情
報「AA」を、個別フィールド1および2の情報として
個別格納レコードの個別フィールド1および2の情報
「きき」「くく」を抽出して合成する。
【0032】図2に示したように、格納レコード作成と
して、 (イ)1番目の入力レコードから共通格納レコードと1
番目の個別格納レコードを作成 (ロ)2番目以降の入力レコードから2番目の個別格納
レコードを作成(共通フィールドの情報が1番目の共通
フィールドの情報と同一の場合) (ハ)2番目以降の入力レコードから2番目の個別格納
レコードを作成(共通フィールドの情報が1番目の共通
フィールドの情報と異なっている場合) の3種類ある。
【0033】図4〜図6は、これら3種類の格納レコー
ド作成手順の具体例を説明するための図であり、MAS
Kテーブルを利用している点に特徴がある。図4は同一
キー(AAA)を有する入力レコードに対応する格納レ
コードを作成する場合の初回の格納レコード作成手順を
示す図であり、この手順により1番目の入力レコードa
から共通格納レコードと1番目の個別格納レコード
が作成される。同図に示すように、初回の格納レコード
作成手順は、まず、MASKテーブル1(共通フィール
ドがHIGH−VALUE値で、個別フィールドが「N
ULL値」のテーブル)と1番目の入力レコードaとで
論理積をとり、共通格納レコードを作成する。これは
論理積のビット操作により、共通格納レコードの共通
フィールドの情報は入力レコードの共通フィールドの情
報のままとし、個別フィールドの情報を全て「NULL
値」として作成することに相当している。
【0034】次に、MASKテーブル2(共通フィール
ドが「NULL値」で、個別フィールドがHIGH−V
ALUE値のテーブル)と入力レコードaとで論理積を
とり、個別格納レコード(1番目の入力レコードaに
対応)を作成する。これは論理積のビット操作により、
個別格納レコードの共通フィールドの情報を「NUL
L値」とし、個別フィールドの情報は入力レコードaの
情報のまま「ああ」「いい」として作成することに相当
している。なお、上述したMASKテーブル1およびM
ASKテーブル2は、レコードコピーライブラリにより
自動生成される。
【0035】図5は、同一キーを有する2番目以降の入
力レコードに対応する格納レコードを作成する場合、該
2番目以降の入力レコードの共通フィールドの内容が共
通格納レコードの共通フィールドの内容と同一の場合
(本実施例では2番目の入力レコードbが該当してい
る)の格納レコード作成手順を説明するための図であ
り、同図は2番目の入力レコードbから2番目の個別格
納レコードを作成する場合の例を示している。すなわ
ち、上記図4に示した初回の格納レコード作成手順で作
成した共通格納レコードと入力レコードbとで排他的
論理和をとり、第2の個別格納レコードを作成してい
る。これは排他的論理和のビット操作により、個別格納
レコードの共通フィールドの情報を「NULL値」と
し、個別フィールド1および2の情報は入力レコードの
個別フィールドの情報のまま「うう」「ええ」として作
成することを意味している。
【0036】図6は、2番目以降の入力レコードで共通
フィールドの情報が共通格納レコードの共通フィールド
の内容と異なる場合(本実施例では3番目の入力レコー
ドcおよび4番目の入力レコードdが該当している)の
格納レコード作成方法を説明するための図であり、これ
により上記実施例の3番目の個別格納レコードおよび
4番目の個別格納レコードが作成される。図6は3番
目の入力レコードcから3番目の個別格納レコードを
作成する場合の例を示したものであるが、4番目の入力
レコードdから4番目の個別格納レコードを作成する
場合も同様な方法がとられる。
【0037】図6の方法は図5に示した2番目以降の格
納レコード作成方法と類似しているが、共通格納レコー
ドと入力レコードとで、排他的論理和をとったとき、
共通フィールドの情報が「NULL値」にならない場合
(すなわち共通フィールドの内容が共通の情報でない場
合)、入力レコードの情報を優先して設定するようにし
たところが図5と異なっている。このようにすることに
よって、入力レコードの共通フィールドの情報が全て同
一でない場合に対しても柔軟に対応できるようになる。
【0038】図5および図6の方法を実施するために、
共通格納レコードの共通フィールド(1番目の入力レ
コードの共通フィールドと同じ)と2番目以降の入力レ
コードの共通フィールドの情報が全て一致しているかど
うか、また、もし不一致の場合にはどの共通フィールド
の情報が不一致なのかを判別する必要がある(図6に示
ように、不一致の共通フィールドに入力レコードの情報
を優先して設定するため)。次に、この判別方法を図7
および図8を用いて説明する。
【0039】まず、入力レコードとMASKテーブル1
(共通フィールドがHIGH−VALUE値で、個別フ
ィールドが「NULL値」のテーブル)とで論理積をと
って結果1を得、次に、その結果1と共通格納レコード
とで排他的論理和をとって結果2を得る。結果2の共
通フィールドと個別フィールドを含めた全フィールドが
「NULL値」の場合、共通フィールド情報の値は一致
していると判断する。図7にその具体例を示す。同図
は、2番目の入力レコードbに対してこの処理を行った
例を示したもので、結果2の全てのフィールドが「NU
LL値」になるので入力レコード2と共通格納レコード
の共通フィールドの情報が全て一致(共通フィールド
1が「AA」、共通フィールド2が「CC」で一致)し
ているものと判断される。
【0040】また、結果2の全フィールドが「NULL
値」でない場合は、判定する範囲を2分割しそれぞれの
範囲に対して同様の処理を行い、2分割された範囲内で
全フィールドが「NULL値」であれば、その範囲内で
は共通フィールドが一致していると判断し、全フィール
ドが「NULL値」でない範囲についてのみ再度上記と
同様の処理を行う、という処理を繰り返し、範囲を順次
絞り込んで不一致の情報を有する共通フィールドを特定
する。
【0041】図8にその具体例を示す。同図は、3番目
の入力レコードcに対してこの処理を行った例を示した
もので、結果1の共通フィールド1の情報が「BB」
で、共通格納レコードの共通フィールド1の情報が
「AA」であるので結果2の共通フィールド1の情報は
「NULL値」にならない。この場合、不一致のフィー
ルドを見付けるために、不一致である全フィールドの範
囲(イ)を範囲(ロ)と範囲(ハ)に2分割して各範囲
で同様の処理を行うと範囲(ハ)内の全フィールドは
「NULL値」であるためこの範囲内では共通フィール
ドは一致している。一方、範囲(ロ)内の全フィールド
が「NULL値」でないためこの範囲(ロ)内のフィー
ルドに不一致フィールドがあることがわかる。さらに範
囲(ロ)を範囲(ニ)と範囲(ホ)に2分割しそれぞれ
の範囲に同様の処理を行う。その結果、範囲(ホ)のフ
ィールドは「NULL値」であるが範囲(ニ)のフィー
ルドは「NULL値」でないため、最終的に範囲
(ニ),すなわち共通フィールド1の情報が不一致であ
ることがわかる。
【0042】図9〜図11は、個別格納レコードを入力
レコードイメージへ復元する方法を説明するための図で
ある。まず、図9に示すように、個別格納レコードとM
ASKテーブル1(共通フィールドがHIGH−VAL
UE値で、個別フィールドが「NULL値」のテーブ
ル)とで論理積をとって結果1を得る。得られた結果1
の全フィールドが「NULL値」の場合、共通フィール
ドの情報が共通格納レコードの情報と一致していると判
断できるため、個別格納レコードと共通格納レコードと
で論理和をとれば、入力レコードの復元が可能となる。
【0043】例えば、図9および図10は個別格納レコ
ードと共通格納レコードから入力レコードa’を復
元する例であり、この場合、結果1の全フィールドが
「NULL値」であるため復元する入力レコードの共通
フィールドの情報が共通格納レコードの共通フィールド
の情報「AA」「CC」と一致していると判定され、図
10に示すように、個別格納レコードと共通格納レコ
ードとの論理和をとることによって復元される。すな
わち、個別格納レコードの共通フィールド1および2
と共通格納レコードの個別フィールド1および2はと
もに「NULL値」であるので、復元後の入力レコード
a’は、共通フィールド1および2に共通格納レコード
の共通フィールド1および2の情報「AA」および
「CC]が、個別フィールド1および2に個別格納レコ
ードの個別フィールド1および2の情報「ああ」およ
び「いい」がそのまま設定される。
【0044】また、個別格納レコードとMASKテーブ
ル1(共通フィールドがHIGH−VALUE値で、個
別フィールドが「NULL値」のテーブル)とで論理積
をとった結果1の全フィールドが「NULL値」でない
場合、共通フィールドの情報が共通格納レコードの情報
と不一致であると判断できるので、図8のときと同様の
2分割により不一致の範囲が共通フィールド1に絞り込
まれる。図11は、個別格納レコードと共通格納レコ
ードから入力レコードcを復元する場合を示してい
る。
【0045】図11において、一致している範囲の情報
は、図10の場合と同様に、個別格納レコードと共通格
納レコードとの論理和をとることによって復元される。
すなわち、個別格納レコードの共通フィールド2と共
通格納レコードの個別フィールド1および2は「NU
LL値」であるので、復元後のレコードc’は、共通フ
ィールド2に共通格納レコードの共通フィールド2の
情報「CC」が、個別フィールド1および2には個別格
納レコードの個別フィールド1および2の情報「お
お」および「かか」が設定される。また、最終的に絞り
込まれた不一致のフィールド(すなわち「共通フィール
ド1」)の情報は、個別格納レコードの情報「BB」
を優先して設定することによって、復元後レコードc’
が復元される。
【0046】
【発明の効果】以上説明したように、本発明のデータベ
ースの重複項目格納方法によれば、同一キー内(枝番な
どで複数のレコードが存在する)の複数レコード間で、
重複している情報を、共通格納レコードとして集約(個
別項目情報は「NULL値」)するとともに、個別格納
レコードは共通格納レコードと逆の重複しない情報を設
定(重複項目情報は「NULL値」)し作成しているた
め、データベースに格納する場合、データベースの標準
機能である「連続文字圧縮機能」が有効に働き、ディス
ク容量が大幅に削減できるという顕著な効果がある。
【0047】また、共通格納レコードに設定するフィー
ルドと、個別格納フィールドに設定するフィールドの識
別は、MASKテーブルとの比較によって実現させてい
るため、共通情報、個別情報に変更があっても、MAS
Kテーブルの修正で対応できるため、ユーザプログラム
の修正は不要となり、容易に変更できるという効果があ
る。さらに、格納レコードの復元は、共通格納レコード
と個別格納レコードの論理和により実現しているため、
1項目単位に比較する方法に比較して処理効率を大幅に
向上させる効果がある。
【図面の簡単な説明】
【図1】本発明の実施例に係るユーザプログラム,DB
アクセス制御ルーチン,データベース管理システム(D
BMS),およびリレーショナル・データベースの関連
を示す概念図である。
【図2】データベースへ格納するためのデータ作成イメ
ージを表わす図である。
【図3】データベースに格納されている格納レコードか
らの復元イメージを表わす図である。
【図4】最初の入力レコードから格納レコード(共通格
納レコード,個別格納レコード)を作成する方法を示す
図である。
【図5】2番目以降の入力レコードから格納レコード
(個別格納レコード)を作成する方法を示す図である
(共通フィールドが同一の場合)。
【図6】2番目以降の入力レコードから格納レコード
(個別格納レコード)を作成する方法を示す図である
(共通フィールドが異なる場合)。
【図7】共通格納レコードと個別格納レコードの共通フ
ィールドの情報の一致/不一致の判定方法を示す図であ
る(一致の場合)。
【図8】共通格納レコードと個別格納レコードの共通フ
ィールドの情報の一致/不一致の判定方法および不一致
の共通フィールドの見つけ出す方法を示す図である(不
一致の場合)。
【図9】格納レコードから入力レコードへ復元する場
合、個別格納レコードの共通フィールドの情報が共通格
納レコードの共通フィールドの情報と一致しているか否
かを見つけ出す方法を示す図である。
【図10】格納レコードから入力レコードへ復元する場
合、個別格納レコードの共通フィールドの情報が共通格
納レコードの共通フィールドの情報と一致しているとき
の復元方法を示す図である。
【図11】格納レコードから入力レコードへ復元する場
合、個別格納レコードの共通フィールドの情報が共通格
納レコードの共通フィールドの情報と不一致のときの復
元方法を示す図である。
【符号の説明】
1:リレーショナル・データベース、2:ユーザプログ
ラム、3:データベース管理システム(DBMS)、
4:DBアクセス制御ルーチン

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 リレーショナル・データベース・システ
    ムにおいて、格納データレコードを、主キー部と、サブ
    キー部と、共通フィールド部と、個別フィールド部とに
    区分けし、主キー部が同値を持つデータレコードが複数
    レコード存在する場合に、 主キー部同値の複数レコードを、主キー部と共通データ
    フィールド部とNULL値フィールド部とで構成される
    一つの親レコード(共通格納レコード)と、主キー部
    と、サブキー部と、個別データフィールド部とNULL
    値フィールド部とで構成される複数の子レコード(個別
    格納レコード)とに、分割して格納するレコード分割・
    格納手段と、 指定された主キーとサブキーから読み出した該当の親レ
    コードと、子レコードとを1レコードに合成し、格納デ
    ータレコードを復元するレコード読み出し復元手段とを
    備えたことを特徴とするリレーショナル・データベース
    ・システム。
  2. 【請求項2】 請求項1記載のリレーショナル・データ
    ベース・システムにおいて、 親レコードと、前記親レコードに対応する子レコード
    を、共に同じレコード・フォーマット、レコード長で作
    成し、親レコードにおける共通データフィールド部は、
    子レコードにおけるNULL値フィールド部に、また、
    子レコードにおける個別データフィールド部は、親レコ
    ードにおけるNULL値フィールド部に、それぞれ対応
    するように格納データレコードをフォーマットすること
    を特徴とするレコード分割、格納手段を有するリレーシ
    ョナル・データベース・システム。
  3. 【請求項3】 リレーショナル・データベースにおける
    データレコードの格納・読み出し方法において、 格納データレコードを、主キー部と、サブキー部と、共
    通フィールド部と、個別フィールド部とに区分けし、主
    キー部が同値を持つデータレコードが複数レコード存在
    する場合に、主キー部同値の複数レコードを、主キー部
    と共通データフィールド部とNULL値フィールド部と
    で構成される一つの親レコードと、主キー部と、サブキ
    ー部と、個別データフィールド部とNULL値フィール
    ド部とで構成される複数の子レコードとに分割してデー
    タベースに格納し、指定された主キーとサブキーから読
    み出した該当の親レコードと、子レコードとを1レコー
    ドに合成し、格納データレコードを復元するようにした
    データレコード格納・読み出し方法。
  4. 【請求項4】 請求項3記載のデータレコード格納・読
    み出し方法において、親レコードと、前記親レコードに
    対応する子レコードを、共に同じレコード・フォーマッ
    ト、レコード長で作成し、親レコードにおける共通デー
    タフィールド部は、子レコードにおけるNULL値フィ
    ールド部に、また、子レコードにおける個別データフィ
    ールド部は、親レコードにおけるNULL値フィールド
    部に、それぞれ対応するよう格納データレコードをフォ
    ーマットすることを特徴とするデータレコード格納・読
    み出し方法。
  5. 【請求項5】 リレーショナル・データベース・システ
    ムにおけるデータベース・アクセス制御プログラムであ
    って、格納データレコードを、主キー部と、サブキー部
    と、共通フィールド部と、個別フィールド部とに区分け
    し、主キー部が同値を持つデータレコードが複数レコー
    ド存在する場合に、主キー部同値の複数レコードを、主
    キー部と、共通データフィールド部と、NULL値フィ
    ールド部とで構成される一つの親レコードと、主キー部
    と、サブキー部と、個別データフィールド部と、NUL
    L値フィールド部とで構成される複数の子レコードと
    に、分割して格納するレコード分割・格納手順と、指定
    された主キーとサブキーから読み出した該当の親レコー
    ドと、子レコードとを1レコードに合成し、格納データ
    レコードを復元するレコード読み出し復元手順を含んだ
    データベース・アクセス制御プログラムが記録された記
    録媒体。
  6. 【請求項6】 請求項5記載の記録媒体において、 前記レコード分割・格納手順は、親レコードと、前記親
    レコードに対応する子レコードを、共に同じレコード・
    フォーマット、レコード長で作成し、親レコードにおけ
    る共通データフィールド部は、子レコードにおけるNU
    LL値フィールド部に、また、子レコードにおける個別
    データフィールド部は、親レコードにおけるNULL値
    フィールド部に、それぞれ対応するよう格納データレコ
    ードをフォーマットするものであることを特徴とする記
    録媒体。
JP8164008A 1996-06-25 1996-06-25 リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体 Pending JPH1011338A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8164008A JPH1011338A (ja) 1996-06-25 1996-06-25 リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8164008A JPH1011338A (ja) 1996-06-25 1996-06-25 リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体

Publications (1)

Publication Number Publication Date
JPH1011338A true JPH1011338A (ja) 1998-01-16

Family

ID=15785024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8164008A Pending JPH1011338A (ja) 1996-06-25 1996-06-25 リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体

Country Status (1)

Country Link
JP (1) JPH1011338A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947944B1 (en) 1999-04-26 2005-09-20 Denso Corporation Database managing apparatus and database record retrieving apparatus
JP2013015935A (ja) * 2011-07-01 2013-01-24 Hitachi Ltd Xmlファイル構造の復元方法。
JP2019525286A (ja) * 2016-07-04 2019-09-05 光毅 陶 光ディスクに基づくデータベースデュアルコア記憶システム及びそれを用いた方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947944B1 (en) 1999-04-26 2005-09-20 Denso Corporation Database managing apparatus and database record retrieving apparatus
JP2013015935A (ja) * 2011-07-01 2013-01-24 Hitachi Ltd Xmlファイル構造の復元方法。
JP2019525286A (ja) * 2016-07-04 2019-09-05 光毅 陶 光ディスクに基づくデータベースデュアルコア記憶システム及びそれを用いた方法

Similar Documents

Publication Publication Date Title
US6175836B1 (en) Optimization of relational database queries
US6035303A (en) Object management system for digital libraries
US20040015486A1 (en) System and method for storing and retrieving data
US20070179941A1 (en) System and method for performing an inexact query transformation in a heterogeneous environment
US6427145B1 (en) Database processing method, apparatus for carrying out the same and medium storing processing program
JP2002501256A (ja) データベース装置
US20070005619A1 (en) Method and system for detecting tables to be modified
ZA200100187B (en) Value-instance-connectivity computer-implemented database.
JPH10505440A (ja) プログラミング言語−具体的データファイルのsqlベースの操作を可能にするコンピュータベースの情報アクセス方法および装置
JP3452531B2 (ja) データ・マイニングする方法およびシステム
US20030177117A1 (en) Metadata system for managing data mining environments
US20080294673A1 (en) Data transfer and storage based on meta-data
US7136861B1 (en) Method and system for multiple function database indexing
US5943665A (en) Method and system for performing conceptual joins across fields of a database
US10437872B2 (en) Computer implemented and computer controlled method, computer program product and platform for arranging data for processing and storage at a data storage engine
JP4562749B2 (ja) 文書の圧縮格納方法及び装置
JPH1011338A (ja) リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体
KR100532823B1 (ko) 데이터 무결성 관리장치와 관리방법 그리고 그 방법을컴퓨터 상에서 실행하는 프로그램을 기록한 기록매체
JP2002140218A (ja) データ処理方法、コンピュータ読み取り可能な記録媒体及びデータ処理装置
JP2002229821A (ja) データベース管理システム
US8849866B2 (en) Method and computer program product for creating ordered data structure
JP2003157249A (ja) 文書の圧縮格納方法
JP3555542B2 (ja) グループ番号設定装置およびグループ番号設定方法
JPH09305449A (ja) データベース管理システム
CN111367915A (zh) 一种区块链数据的操作方法及装置