JPH05204727A - デ−タベ−ス管理方法およびそのシステム - Google Patents

デ−タベ−ス管理方法およびそのシステム

Info

Publication number
JPH05204727A
JPH05204727A JP4011617A JP1161792A JPH05204727A JP H05204727 A JPH05204727 A JP H05204727A JP 4011617 A JP4011617 A JP 4011617A JP 1161792 A JP1161792 A JP 1161792A JP H05204727 A JPH05204727 A JP H05204727A
Authority
JP
Japan
Prior art keywords
data
department
consistency
module
arbitrary
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
JP4011617A
Other languages
English (en)
Inventor
Nobuo Kawamura
信男 河村
Kosaku Yamahira
耕作 山平
Takashi Kodera
孝 小寺
Hidenori Shinozaki
英典 篠崎
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 Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP4011617A priority Critical patent/JPH05204727A/ja
Publication of JPH05204727A publication Critical patent/JPH05204727A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 あるデ−タとの整合性を維持する必要がある
他のデ−タに対して、整合性を簡単に維持することが可
能なデ−タベ−ス管理方法とシステムを実現する。 【構成】 あるデ−タのデ−タ操作要求に対して、作成
された『処理手続き1』の実行時に、予めあるデ−タと
整合性を維持する必要がある他のデ−タの整合性を維持
するための『処理手続き2』『処理手続き3』および
『処理手続き4』をデ−タベ−スから取り出して、これ
らを実行する。これにより、整合性を維持するための処
理を効率よく行うことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リレ−ショナルデ−タ
ベ−スの管理方法および管理システムに関し、特に複数
のリレ−ション(表)間でのデ−タの整合性を保持する
ための方法およびシステムに関する。
【0002】
【従来の技術】デ−タベ−スとは、会社、銀行、病院、
大学、政府機関等の組織体の運用に必要なデ−タを格納
した1以上のファイルの集まりである。そして、そのデ
−タベ−スを管理するため、デ−タを記録し保持するコ
ンピュ−タシステムを、デ−タベ−ス管理システムと呼
ぶ。デ−タベ−ス管理システムのうち、リレ−ショナル
デ−タベ−ス管理システムにおいては、デ−タベ−スが
ユ−ザから2次元の表形式で見られるリレ−ション
(表)からなり、さらにこの表は複数の行(レコ−ド、
またはタップル)から構成されている。また、タップル
は複数個の列(アトリビュ−ト、あるいはフィ−ルド)
から構成され、各列にはその列の特性を示すデ−タ型、
デ−タ長が規定されている。従来のリレ−ショナルデ−
タベ−スでは、個々の表を独立して定義していたので、
複数の表の間でデ−タの関連を持たせるようなことは無
かった。しかし、1987年にISO(国際標準化委員会)
で規格化されたデ−タベ−ス言語SQLでは、複数の表
間で相互に関連する列に注目して、デ−タの参照整合性
を保持することを指定する参照制約が言語仕様として追
加された。これは、ある表の1つないし複数の列からな
る主キ−と、他の1つの表の1つないし複数の列からな
る外部キ−を宣言し、外部キ−が取り得る値は必ず主キ
−の中に値が存在するということを規定するものであ
る。
【0003】例えば、『従業員』表と『部門』表からな
るデ−タベ−スについて考えると、『従業員』表に存在
するある従業員が、『部門』表に存在しない部門に所属
していてはならない。つまり、『従業員』表に存在する
従業員は、必ず『部門』表中にも存在する。存在しない
状態にある場合は、参照整合性が保持されていないこと
になる。この参照整合性を保持するための制約を規定す
るものが参照制約であって、『部門』表中の部門デ−タ
を持つ列が主キ−であり、『従業員』表中の従業員の所
属部門を持つ列が外部キ−である。また、『部門』表の
ような表を被参照表と呼び、『従業員』表のような表を
参照表と呼ぶ。この参照整合性については、例えば、
C.J.Date著『デ−タベ−ス入門(An Introduct
ion toDatabase Systems)』第3版、Addison Wes
ley出版社(1981年)に記載されている。整合性を検査す
る処理は、主キ−に対する更新により対応する外部キ−
との整合性が正しく保持されているか否かを検査する処
理である。例えば、『部門』表に存在する主キ−は部門
デ−タを持つ列であって、ある行の部門デ−タを更新す
る場合には、更新対象となった部門デ−タの値が既に対
応する外部キ−、つまり『従業員』表の従業員の所属部
門として登録されている値に同じものがないことを検査
する処理である。また、『従業員』表に存在するある従
業員の所属が変わったとき、その従業員の所属部門を更
新する場合には、更新する所属部門の値が参照する主キ
−、つまり『部門』表の部門デ−タの値として存在する
ことを検査するものである。これらの検査をする処理
は、他にも主キ−を持つ表から行を削除する場合や、外
部キ−を持つ表に行を挿入する場合等にも、同じような
処理が必要となる。このようなデ−タベ−スのデ−タの
操作は、構造化紹介言語(SQL)を使用するリレ−シ
ョナル・デ−タベ−ス管理システムでは、INSERT
文(行の挿入)、UPDATE文(列の更新)、DEL
ETE文(行の削除)により行われる。従って、参照関
係にある表に対しては、上述のデ−タ操作が行われる
と、参照制約の検査が行われる必要がある。
【0004】一方、ユ−ザが定義した参照制約の検査を
行うトランザクションは、実行時の性能にも問題があ
る。その1つは、ある表の主キ−値に対する更新が発生
する場合には、必ずその更新の前後に参照整合性の検査
を行うトランザクションを起動し、実行する必要があ
る。そのため、更新する表に対する入出力回数は、必ず
2回必要となる。本来は1回でよいにもかかわらず、ト
ランザクションが分れているために別々に入出力を発行
しなくてはならない。また、もし更新した後に参照制約
の検査を実施するトランザクションを実行して制約違反
となったときには、デ−タベ−スの更新を無効にするた
めの回復処理を行う必要があるというオ−バヘッドが課
されることになる。さらに、整合性の検査を行うトラン
ザクションは、デ−タベ−ス管理システムとの情報の授
受も多くなるので、それに伴ってデ−タベ−ス全体の処
理効率も低下することになる。このような効率の低下を
回避するために、参照制約が行われる。参照制約は、デ
−タベ−ス管理システムで整合性の検査とその維持が実
行されるので、デ−タベ−スシステムの処理効率が上が
る。また、参照整合性の検査をユ−ザの業務プログラム
が行うのではなく、デ−タベ−ス管理システムが行うの
で、確実な整合性を実現できる。なお、従来、参照整合
性をデ−タベ−ス管理システムで行う方法として、例え
ば特開平2−39372号公報および特開平2−116
973号公報に開示されている方法がある。これらの公
報に開示されている方法は、2つの参照関係にある表間
の参照制約に関連する情報をオブジェクトとして作成
し、この参照関係にある表に対してデ−タ操作が行われ
る際に、そのオブジェクトをアクセスすることにより参
照制約の検査とその動作を効率的に行うものである。
【0005】
【発明が解決しようとする課題】前述のように、従来の
方法では、(イ)リレ−ショナルデ−タベ−ス管理シス
テムに関連のある表に対して、予めデ−タの更新時に整
合性を保つ動作をユ−ザが定義して、これを実行する必
要があるので、非常に煩わしく、また確実なデ−タの整
合性を維持する方法が不十分であるという問題がある。
また、(ロ)デ−タベ−ス管理システム外で参照整合性
を実行するプログラムもあるが、ある主キ−の値を更新
する場合に、更新する表および参照関係にある表に対す
る入出力回数が増加するとともに、性能の面でも問題が
ある。そして、デ−タベ−ス管理システム外で参照整合
性を行うため、デ−タベ−ス管理システムとの間でデ−
タの授受が多くなって、デ−タベ−スシステムの処理効
率が低下する。さらに、(ハ)前述の特開平2−393
72号公報、特開平2−116973号公報に開示され
た処理方法では、基本的にある更新操作を行ってから参
照整合性の検査を行うので、参照制約違反となるデ−タ
の操作を行った後に、そのデ−タの操作の回復処理また
は全てのデ−タの操作を無効にする処理、つまり徹回処
理を行う必要がある。また、これらの方法では、参照整
合性を維持するために、ある表と他の1つの関連を持つ
表との参照制約の情報を持つ関係記述子を設けて、ある
表のデ−タ操作時に関係記述子にアクセスして、関係記
述子にある参照制約による整合性を維持している。本発
明の第1の目的は、これら従来の課題を解決し、デ−タ
間の参照整合性を迅速に維持することが可能なデ−タベ
−ス管理方法およびシステムを提供することにある。本
発明の第2の目的は、デ−タの更新に伴う参照整合性の
検査回数を、必要最小限に抑えることの可能なデ−タベ
−ス管理方法およびシステムを提供することにある。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明のデ−タベ−ス管理方法は、(イ)デ−タベ
−ス中の任意のデ−タを更新する場合に、デ−タとの内
容の一致を保つ整合性を維持させる必要がある他のデ−
タに対して、それぞれ整合性を維持させるための手続き
用処理モジュ−ルをデ−タベ−ス中に予め格納し、格納
位置に関する情報も格納し、任意のデ−タに対するデ−
タ操作を行う際、整合性を維持させる手続き用処理モジ
ュ−ルをデ−タベ−スから読み出して、手続き用処理モ
ジュ−ルを実行することに特徴がある。また、(ロ)手
続き用処理モジュ−ルは、任意のデ−タとの整合性を維
持させるための他のデ−タを挿入する場合に、挿入する
デ−タが任意のデ−タとの整合性を維持できることを検
査するプログラムモジュ−ルであることにも特徴があ
る。また、(ハ)手続き用処理モジュ−ルは、任意のデ
−タを削除する場合に、削除するデ−タとの整合性が維
持される必要のある他のデ−タが存在しないことを検査
するプログラムモジュ−ルであることにも特徴がある。
また、(ニ)手続き用処理モジュ−ルは、任意のデ−タ
との整合性が維持される必要のある他のデ−タを追加な
いし更新する場合に、追加ないし更新したデ−タと整合
性を維持することができるデ−タが存在することを検査
するプログラムモジュ−ルであることにも特徴がある。
また、(ホ)手続き用処理モジュ−ルは、任意のデ−タ
を削除する場合に、削除するデ−タと整合性を維持する
他のデ−タが存在すれば、デ−タも削除するプログラム
モジュ−ルであることにも特徴がある。また、(ヘ)手
続き用処理モジュ−ルは、任意のデ−タを削除する場合
に、削除するデ−タと整合性を維持する他のデ−タが存
在すれば、デ−タをナル値ないし予め外部より指定され
た値に更新するプログラムモジュ−ルであることにも特
徴がある。また、(ト)手続き用処理モジュ−ルは、任
意のデ−タを更新する場合に、更新するデ−タと整合性
を維持する他のデ−タが存在すれば、デ−タも同じデ−
タに更新するプログラムモジュ−ルであることにも特徴
がある。また、(チ)手続き用処理モジュ−ルは、任意
のデ−タを更新する場合に、更新するデ−タと整合性を
維持する他のデ−タが存在すれば、デ−タをナル値ない
し予め外部より指定された値に更新するプログラムモジ
ュ−ルであることにも特徴がある。また、(リ)デ−タ
ベ−ス中のデ−タ操作を行う場合に、操作の禁止条件を
含む指示を入力して、禁止条件を判定し、判定の結果、
操作が禁止されない場合には、操作を実行するが、判定
の結果、操作が禁止される場合には、操作を実行しない
ことを報告することにも特徴がある。また、(ヌ)禁止
条件は、任意のデ−タとの整合性が維持される必要のあ
る他のデ−タを挿入および更新する場合、挿入および更
新するデ−タが任意のデ−タに存在しなければ、操作を
禁止する条件であり、また禁止条件を含む指示は、挿入
および更新操作が行われる前ないし後に、挿入および更
新したデ−タが任意のデ−タに存在しなければ操作を禁
止する条件を判定する指示であることにも特徴がある。
また、(ル)操作の禁止条件は、任意のデ−タを更新す
る場合に、任意のデ−タと整合性を維持している他のデ
−タが存在すれば、任意のデ−タを更新する操作を禁止
する条件であり、禁止条件を含む指示は、任意のデ−タ
を更新する前ないし後に、任意のデ−タと整合性を維持
している他のデ−タが存在すれば、任意のデ−タを更新
する操作を禁止する条件を判定する指示であることにも
特徴がある。また、本発明のデ−タベ−ス管理システム
は、(ワ)デ−タベ−スと、デ−タベ−ス中の任意デ−
タの更新に伴い、任意デ−タとの整合性を維持する必要
のある他のデ−タに対する整合性維持のための手続き用
処理モジュ−ルを格納する制御手段と、該モジュ−ルを
格納する位置に関する情報を格納する制御手段と、任意
デ−タの更新に伴い、モジュ−ルを読み出して実行する
モジュ−ルとを具備することに特徴がある。
【0007】
【作用】本発明においては、(a)デ−タベ−ス中のあ
るデ−タの更新に伴い、あるデ−タとの整合性を維持さ
れなければならない他のデ−タに対する整合性を維持す
るための手続きを、予めデ−タベ−スに格納しておく。
また、更新するデ−タに対応して整合性を維持するため
の手続きを格納する位置に関する情報を、格納位置を参
照して格納しておく。次に、デ−タの更新があると、そ
れに伴って格納位置を参照して対応する整合性を維持す
るための手続きをデ−タベ−スから読み出し、これを実
行する。これにより、整合性を維持するための処理を効
率よく実行できる。また、(b)デ−タベ−ス中のデ−
タ操作が要求されたとき、そのデ−タ操作の禁止条件を
含む指示を作成する。次に、デ−タ操作の禁止条件を判
定する。判定の結果、禁止条件に該当しないときにはデ
−タ操作を実行するが、禁止条件に該当するときには、
デ−タ操作を実行しないことを報告する。その結果、デ
−タの整合性を検査する処理の回数を無駄に行うことな
く実行できる。さらに、この禁止条件の判定処理をデ−
タ操作の前に行うので、デ−タの整合性を検査する判定
処理を最小限にするのみならず、禁止条件に該当するデ
−タ操作を中止して、回復する処理の時間を短縮するこ
とができる。
【0008】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図2は、本発明の基本動作である3つの表の
参照関係図であり、図3、図4および図5は、それぞれ
図2における部門、従業員、プロジェクトの各表の内容
を示す図であり、図6は、図2における参照制約定義情
報を示す図である。3つの表である部門4、従業員5お
よびプロジェクト6は、3つの参照制約91〜96によ
り参照関係があることを示している。『部門』表4は、
図3に示すように、部門番号、部門名、管理者番号、所
属部門の列から構成されている。『従業員』表5は、図
4に示すように、従業員番号、従業員名、所属部門の列
から構成されている。また、『プロジェクト』表6は、
図5に示すように、プロジェクト番号、プロジェクト
名、担当部署、担当従業員番号、所属プロジェクト名の
列から構成されている。図2の各表4,5,6は、図6
に示す6つの参照制約91〜96により関係付けられて
いる。これらの参照制約の中には、自分自身の表に対す
る参照制約も含まれている(図6の91,96)。6つ
の参照制約の各々の制約の詳細は、図6から明らかであ
る。先ず、『部門』表の参照制約では、制約『制約1』
91は『部門』表4の『所属部門』列が同じ『部門』表
4の『部門番号』列を参照することを制約する。このと
き、被参照列である『所属部門』列に対する更新規則は
RESTRICTであり、参照する『部門番号』列の更
新時には更新対象となる値と同じ値を持つ『所属部門』
列が存在しない場合にのみ更新を許可することを規定し
ている。また、削除規則はCASCADEであって、
『部門』表4から1行削除する場合には、削除する行に
含まれる『部門番号』列の値と同じ値を持つ『所属部
門』列があれば、その行も削除することを規定してい
る。ここで、『制約1』における主キ−は、『部門番
号』列であって、外部キ−は『所属部門』列である。
【0009】次に、『制約2』92は、『従業員』表5
の『所属部門』列が『部門』表4の『部門番号』列を参
照することを制約する。このとき、被参照列である『部
門番号』列に対する更新規則はRESTRICTであ
り、参照する『部門』表の『部門番号』列の更新時には
更新対象となる値と同じ値を持つ『従業員』表の『所属
部門』列が存在しない場合にのみ更新を許可することを
規定する。また、削除規則はSET NULLであっ
て、『部門』表4から1行削除する場合、削除する行に
含まれる『部門番号』列があれば、その行の『所属部
門』列の値をNULL値(空値)に更新することを規定
する。ここで、『制約2』92における主キ−は『部
門』表の『部門番号』列であり、外部キ−は『従業員』
表の『所属部門』列である。次に『制約』3は、『プロ
ジェクト』表6の『担当部署』列が『部門』表4の『部
門番号』列を参照することを制約する。このとき、被参
照列である『所属部門』列に対する更新規則はREST
RICTであり、参照する『部門』表4の『部門番号』
列の更新時には更新対象となる値と同じ値を持つ『プロ
ジェクト』表6の『担当部署』があれば、その行は削除
できないことを規定する。ここで、『制約3』93にお
ける主キ−は『部門』表4の『部門番号』列であり、外
部キ−は『プロジェクト』表6の『担当部署』列であ
る。
【0010】次に、『制約4』94は、『部門』表4の
『管理者番号』列が『従業員』表5の『従業員番号』列
を参照することを制約する。このとき、被参照列である
『従業員』表5の『従業員番号』列に対する更新規則は
RESTRICTであって、参照する『従業員』表5の
『従業員番号』列の更新時には更新対象となる値と同じ
値を持つ『部門』表4の『管理者番号』列が存在しない
場合にのみ更新を許可することを規定する。また、削除
規則はSET NULLであって、『従業員』表5から
1行削除する場合、削除する行に含まれる『従業員番
号』列の値と同じ値を持つ『部門』表4の『管理者番
号』列があれば、同じ値を持つ『部門』表4の『管理者
番号』列の値をNULL値(空値)に更新することを規
定する。ここで、『制約4』94における主キ−は『従
業員』表5の『従業員番号』列であり、外部キ−は『部
門』表4の『管理者番号』列である。次に、『制約5』
95は、『プロジェクト』表5の『担当従業員番号』列
が『従業員』表5の『従業員番号』列を参照することを
制約する。このとき、被参照列である『従業員』表5の
『従業員番号』列に対する更新規則はRESTRICT
であり、参照する『プロジェクト』表6の『担当従業員
番号』列の更新時には、更新対象となる値と同じ値を持
つ『従業員』表5の『担当従業員番号』列が存在しない
場合のみ更新を許可することを規定する。また、削除規
則はRESTRICTであり、『従業員』表5から1行
削除する場合、削除する行に含まれる『従業員番号』列
の値と同じ値を持つ『プロジェクト』表6の『担当従業
員番号』列があれば、その行は削除できないことを規定
する。ここで、『制約5』95における主キ−は『従業
員』表5の『従業員番号』列であり、外部キ−は『プロ
ジェクト』表6の『担当従業員番号』列である。
【0011】次に、『制約6』96は、『プロジェク
ト』表6の『所属プロジェクト番号』列が『プロジェク
ト』表6の『プロジェクト番号』列を参照することを制
約する。このとき、被参照列である『プロジェクト番
号』列に対する更新規則はRESTRICTであって、
参照する『プロジェクト番号』列の更新時には更新対象
となる値と同じ値を持つ『所属プロジェクト番号』列が
存在しない場合にのみ更新を許可することを規定する。
また、削除規則はCASCADEであって、『プロジェ
クト』表6から1行削除する場合、削除する行に含まれ
る『プロジェクト番号』列の値と同じ値を持つ『所属プ
ロジェクト番号』列があれば、その行も削除することを
規定する。ここで、『制約6』96における主キ−は
『プロジェクト番号』列であり、外部キ−は『所属プロ
ジェクト番号』列である。ところで、リレ−ショナル・
デ−タベ−スにおけるデ−タは、複数のタップル(行)
からなるリレ−ション(表)と呼ばれる論理的デ−タ構
造から構成されている。さらに、行は複数のカラム
(列)からなる。このようにして、デ−タベ−ス中に複
数の表が定義される。そして、複数の表が定義される場
合には、表相互間のデ−タの関連を定義する参照制約が
定義されることもある。参照制約を定義する場合、参照
制約を定義する表の1つないし複数の列で構成されるキ
−(外部キ−)を指定して、その外部キ−が参照する主
キ−を指定する。その際に、参照する表を参照表(外部
キ−を持つ表)と呼び、参照される表を被参照表(外部
キ−により参照される主キ−を持つ表)と呼ぶ。また、
参照制約を定義する場合、参照する主キ−のデ−タの操
作に伴う規則を指定することができ、その指定する規則
は、更新時の更新規則、行の削除時の削除規則を指定す
ることができる。
【0012】また、さらに他の規則として、挿入規則が
ある。この挿入規則とは、指定することができない暗黙
の規則である。以下、これらの各規則について、ISO
SQL2の規則を基に補充説明する。SQLについて
は、写像型言語としてSQUAREが先ず登場し、構文
をより利用者向けにしたSEQUELが生れ、さらにシ
ステムRの基本言語SQLに発展した。更新規則には、
4つのオプションが指定できる。これらのオプション
は、前述のように、CASCADE、SET NUL
L、SET DEFAULTおよび指定しない場合の暗
黙の規則である。このうち、CASCADEでは、被参
照表の主キ−値を更新する際に、更新する対象となる値
と同じ値を持つ外部キ−が存在すると、その外部キ−値
も主キ−の更新値と同じ値に更新するように波及させ
る。次に、SET NULLでは、被参照表の主キ−値
を更新する際に、更新する対象となった値と同じ値を持
つ外部キ−が存在すると、その外部キ−値をNULL値
(空値)に更新を伝搬させる。次に、SET DEFA
ULTでは、SET NULLと同じく、予め定められ
た省略時の解釈値に更新する。また、オプションを指定
しないときには、被参照表の主キ−値を更新する際に、
更新する対象となった値と同じ値を持つ外部キ−が存在
するならば、被参照表の主キ−値は更新させないように
する。
【0013】次に、削除規則の場合にも、更新規則と同
じように、4つのオプションを指定することができる。
先ず、CASCADEでは、被参照表の行を削除する場
合、削除する対象となった行の主キ−値と同じ値を持つ
外部キ−が存在すると、その外部キ−値を持つ行も削除
するように波及させる。次に、SET NULLでは、
被参照表の行を削除する場合、削除する対象となった行
の主キ−値と同じ値を持つ外部キ−が存在すると、その
外部キ−値をNULL値(空値)に更新するように伝搬
させる。また、SET DEFAULTでは、被参照表
の行を削除する場合、削除する対象となった行の主キ−
値と同じ値を持つ外部キ−が存在すると、その外部キ−
値を予め定められた省略時解釈値に更新するように波及
させる。さらに、オプションを指定しない場合には、被
参照表の行を削除するとき、削除する対象となった行の
主キ−値と同じ値を持つ外部キ−が存在するならば、被
参照表の行は削除させないようにする。さらに、暗黙の
挿入規則では、オプションを指定できないが参照表に行
を挿入する際には、挿入する行に含まれる全ての外部キ
−値が、それぞれ参照する被参照表の主キ−値に同じ値
が存在するときには、挿入することができるようにす
る。
【0014】図1は、本発明の第1の実施例を示すデ−
タベ−ス管理システムのブロック構成図であり、図7
は、図1のデ−タ操作を実行するデ−タベ−ス管理シス
テムの機能構成図であり、図8は図7の機能ブロックを
実現するためのハ−ドウェア構成図である。以上に述べ
た基本原理を基に、図1の実施例を述べる。本発明のデ
−タベ−ス管理方法は、図1に示すように、複数の処理
手続き(1〜4)50,60,70,80があり、それ
らの中に各々、実行内容52,62,72,82があ
り、それらの実行内容52,62,72,82は制約1
〜制約3によって制約がかけられている。例えば、処理
手続き(1)50には制約54があり、そこにはポイン
タ55が格納され、処理手続き(2)60の先頭アドレ
スが格納されている。また、制約(2)56、制約
(3)58の各ポインタ57,59にはそれぞれ処理手
続き(3)および処理手続き(4)80の先頭アドレス
が格納されている。同じようにして、処理手続き(2)
60には制約64,66,68があり、それらのポイン
タ65,67,69にはそれぞれ処理手続き(2)6
0、(3)70,(4)80の各先頭アドレスが格納さ
れている。
【0015】図7において、デ−タベ−ス管理システム
7は、ユ−ザからの問合わせ、つまりSQL文の構文解
析、意味解析処理を行う構文・意味解析処理10を行っ
た後、与えられた問合わせがデ−タの操作および検索を
行うために最適なアクセスパスを決定する処理12を実
行する。次に、決定したアクセスパスをデ−タベ−ス管
理システムに特有の内部処理手続きを生成する処理手続
き生成処理14を実行する。次に、生成した処理手続き
を実行する処理の正誤を判定し、補正を行う処理手続き
実行処理16を行い、実行している処理手続きの基本的
な処理単位であるデ−タベ−スに対するアクセス、つま
りデ−タベ−スのスキャン処理、デ−タ操作(更新、削
除、挿入)を行うデ−タベ−ス操作処理18を行い、最
後にデ−タベ−ス8中の表の行を格納する最小単位であ
るペ−ジの入出力処理を効率よく行うためのバッファ管
理20を実行する。また、構文・意味解析処理10にお
いてデ−タベ−スの定義に関する問合わせが発行された
場合には、定義系の処理22を行う。また、定義に関す
る情報が格納されているディクショナリ9に対して、デ
ィクショナリ情報の管理をディクショナリ維持管理24
が行う。これらの処理10〜24は、それぞれプログラ
ム処理モジュ−ルであって、いずれも図8の外部記憶装
置3に蓄積されている。デ−タベ−ス8には、部門4、
従業員5、およびプロジェクト6の各表が格納されてい
る。また、ディクショナリ9には、ディクショナリ9を
構成するテ−ブル90が格納されている。次に、本発明
のデ−タベ−ス管理システムは、図8に示すように、C
PU1と主記憶装置2と外部記憶装置3から構成されて
いる。CPU1は、デ−タ演算およびシステム内の各装
置を制御する役目を果す。また、主記憶装置2は、CP
U1が実行する図7におけるデ−タベ−ス理システム7
内の各プログラム処理モジュ−ルおよび各種デ−タを記
憶する。さらに、外部記憶装置3は、図7におけるデ−
タベ−ス管理システム7が管理するデ−タベ−ス8およ
びディクショナリ9を格納するものである。
【0016】図9,図10は、図7における定義系解析
処理の手順を示す処理フロ−チャ−トである。図7のデ
−タベ−ス管理システム7において、ユ−ザから入力さ
れた問合わせが定義系の場合には、問合わせの構文・意
味解析処理10から定義系解析処理22に制御が渡され
る。この定義系解析処理22の処理は、図9に示すよう
に、スキ−マ定義、表定義、スキ−マ削除および表削除
の各処理に分けられる。すなわち、この定義系解析22
には、デ−タベ−スのスキ−マや表の定義等を行う問合
わせと逆に、スキ−マや表を削除する問合わせがある。
ここで、デ−タベ−ス全体の論理的な構造と内容との記
述をスキ−マ(schema)という。先ず、問合わせ
がスキ−マ定義であるか否かを判定し(ステップ22
1)、スキ−マ定義であれば、スキ−マの登録処理を行
う(ステップ222)。スキ−マの登録処理では、ディ
クショナリ9への登録を行うための図7におけるディク
ショナリ維持管理24へ制御を渡すことになる。次に、
スキ−マ定義でない場合には、表定義であるか否かを調
べて(ステップ223)、表定義であれば表定義法に従
って登録処理を行う表定義処理に制御を渡す(ステップ
224)。表の登録処理では、ディクショナリへの登録
を行うために、図7に示すディクショナリ維持管理部2
4に制御を渡すことになる。具体的に、表の定義を図2
の3つの表の関係を例にとって、SQL文により表定義
を説明する。図2の3つの表のうち、『部門』表4を定
義するSQL文は、次のように記述される。 記 CREATE TABLE 部門 (部門番号 CHAR(10), 部門名 NCHAR(10), 管理者番号 CHAR(10), 所属部門 CHAR(10)) PRIMARY KEY(部門番号) FOREIGN KEY(管理者番号)REFERENCES 従業員 ON DELETE SET NULL CONSTRARINT 制約4 ・・・・・・・・・・(1)
【0017】上記CREATE文を解析して、表の定義
情報である表識別子や列定義情報をディクショナリに登
録する。そして、FOREIGN KEY句が指定され
ていると、各制約の内容を解析して、参照制約による整
合性を維持するための処理手続きを生成するために、参
照制約処理手続き生成処理に制御を渡す(ステップ22
5,226)。次に、ステップ223で問合わせが表定
義でなければ、スキ−マ削除(DROP SCHEM
A)であるか否かを調べて(ステップ227)、スキ−
マ削除の場合にはスキ−マの削除処理を行う(ステップ
228)。スキ−マ削除処理では、スキ−マ中に既に表
が存在すれば、その表も削除する。さらに、表について
の参照制約定義があれば参照制約の定義情報も削除す
る。ステップ227で、問合わせがスキ−マ削除でなけ
れば、表削除(DROPTABLE文)であるか否かを
調べ(ステップ229)、表削除の場合には、表の定義
情報を削除する処理へ制御を渡す(ステップ230)。
表の削除処理では、ディクショナリ9からの表の定義情
報を削除するために、図7におけるディクショナリ維持
管理部24に制御を渡すことになる。そして、既に表中
にデ−タが格納されていれば、表中のデ−タも全て削除
することになる。次に、削除する表中に参照制約定義が
あるか否かを調べ(ステップ231)、参照制約定義が
あれば、各参照制約により作成した参照整合性を実施す
るための処理手続きの削除を行う処理に制御を渡す(ス
テップ232)。
【0018】図11、図12は、本発明の特徴的な処理
である図9のステップ226の参照制約処理手続き生成
処理の詳細フロ−チャ−トである。参照制約処理手続き
生成処理部226では、指定された更新規則および削除
規則と暗黙の挿入規則について、各々参照整合性を実施
する処理手続きを生成するものである。先ず、更新規則
が指定されているか否かを調べ(ステップ2261)、
更新規則が指定された場合には、次にオプションの内容
を調べる。指定されたオプションがCASCADEであ
るか否かを調べ(ステップ2262)、CASCADE
であれば、その参照制約を定義した外部キ−が参照する
主キ−値の更新を波及させるための波及更新処理手続き
を生成する(ステップ2263)。いま、図3に示す
『部門』表4の『所属部門』列に対して更新規則がCA
SCADEである場合を仮定して説明する。『所属部
門』列に対して指定する参照制約は同じ『部門』表を参
照する自己参照となっている。この場合、指定する参照
制約は、次のように定義される。 FOREIGN KEY(所属部門) REFERENCES 部門 ON UPDATE CASCADE ・・・・・・・・・・(2)
【0019】上記参照制約により更新規則のオプション
にCASCADEが指定されると、主キ−値の更新によ
り外部キ−である『所属部門』列も更新するという処理
手続きを生成する。この処理手続きをSQLのUPDA
TE文で示すと、次のようなSQL文となる。 UPDATE 部門 SET 所属部門=『部門番号』列更新値 WHERE 所属部門=『部門番号』列更新前値 ・・・・・・・・・・・(3) 上記SQL文をデ−タベ−ス管理システムが実行する内
部処理手続き(中間言語)として生成する。この処理手
続きには、2つの変数である『部門番号』列更新値と更
新前値が含まれる。この変数は、『部門』表に対するデ
−タ操作において抽出され、この内部処理手続きに引数
として渡されることになる。次に、オプションがCAS
CADEでない場合には、SET NULLであるか否
かを調べ(ステップ2264)、SET NULLであ
れば、その参照制約を定義した外部キ−が参照する主キ
−値の更新により、更新前の主キ−値と同じ値を持つ外
部キ−値をNULL値に更新するNULL値更新処理手
続きを生成する(ステップ2265)。上記CASCA
DEのときの例を、SET NULLに替えた場合の処
理手続きをSQL文のUPDATE文で示すと、次のよ
うになる。 UPDATE 部門 SET 所属部門=NULL WHERE 所属部門=『部門番号』列更新前値 ・・・・・・・・・(4)
【0020】上記SQL文を、デ−タベ−ス管理システ
ムが実行する内部処理手続き(中間言語)として生成す
る。この処理手続きには、1つの変数である『部門番
号』列の更新前値が含まれる。この変数は、『部門』表
4に対するデ−タ操作において抽出され、この内部処理
手続きに引数として渡されることになる。さらに、オプ
ションがSET NULLでないときには、SET D
EFAULTであるか否かを調べ(ステップ226
6)、SET DEFAULTであれば、この参照制約
を定義した外部キ−値を予め指定された省略時解釈値に
更新する省略時解釈値更新処理手続きを生成する(ステ
ップ2267)。CASCADEのときの例を、SET
DEFAULTに替えた場合の処理手続きを、SQL
文のUPDATE文で示すと、次のようになる。 UPDATE 部門 SET 所属部門=省略時解釈値 WHERE 所属部門=『部門番号』列更新前値 ・・・・・・・・・・(5)
【0021】上記SQL文をデ−タベ−ス管理システム
が実行する内部処理手続き(中間言語)として生成す
る。この処理手続きには、1つの変数である『部門番
号』列の更新前値が含まれる。この変数は、『部門』表
4に対するデ−タ操作において抽出され、この内部処理
手続きに引数として渡されることになる。また、省略時
解釈値は、必ず参照する主キ−値に存在する値であるこ
とが前提となる。ステップ2266で、この更新規則に
おけるオプションが指定されなかったときには、これま
でのオプションと異なって、表間の整合性を検出しない
ことを解査する処理を生成する(ステップ2268)。
すなわち、整合性検査処理手続きでは、主キ−の更新に
より参照する外部キ−値を更新するか否かではなく、主
キ−を更新する前に更新前の値と同じ値を持つ外部キ−
が存在しないことを検査する必要がある。この整合性を
検査する処理を処理手続きとして生成する。この処理手
続きをSQL文のSELECT文で示すと、次のように
なる。 SELECT*FROM 部門 WHERE 所属部門=『部門番号』列更新前値 ・・・・・・・・・(6)
【0022】上記SQL文をデ−タベ−ス管理システム
が実行する内部処理手続き(中間言語)として生成す
る。この処理手続きには、1つの変数である『部門番
号』列の更新前値が含まれる。この変数は、『部門』表
4に対するデ−タ操作において抽出され、この内部処理
手続きに引数として渡されることになる。ステップ22
61により、更新規則でなければ、削除規則について各
々指定されたオプションであると判定する。すなわち、
指定されたオプションがCASCADEであるか否かを
調べ(ステップ2269)、CASCADEであるとき
には、この参照制約を定義した外部キ−が参照する被参
照表の行を削除するときに削除される行の主キ−値と同
じ値を持つ行も同時に削除するように、波及させるため
の波及削除処理手続きを生成する(ステップ227
0)。ここでは、図3に示す『部門』表4の『所属部
門』列に対して削除規則がCASCADEである場合に
ついて説明する。この制約は、図6の『制約1』91に
対する削除規則である。『所属部門』列に対して指定す
る参照制約は同じ『部門』表4を参照する自己参照とな
っている。このときに、指定する参照制約は、次のよう
に定義される。 FOREIGN KEY(所属部門) REFERENCES 部門 ON DELETE CASCADE ・・・・・・・・・・・・・・(7)
【0023】上記参照制約で削除規則のオプションにC
ASCADEが指定されると、参照している『部門』表
からの行の削除により、削除される行の主キ−値と同じ
値を持つ外部キ−の行も削除するという処理手続きを生
成する。この処理手続きをSQLのDELETE文で示
すと、次のようになる。 DELETE FROM 部門 WHERE 所属部門=『部門番号』列削除対象値 ・・・・・・・・・・(8)
【0024】上記SQL文をデ−タベ−ス管理システム
が実行する内部処理手続き(中間言語)として生成す
る。この処理手続きには、1つの変数である『部門番
号』列削除対象値が含まれる。この変数は、『部門』表
4に対するデ−タ操作において抽出され、この内部処理
手続きに引数として渡されることになる。次に、オプシ
ョンがCASCADEでないときには、SET NUL
Lであるか否かを調べ(ステップ2271)、SET
NULLであれば、この参照制約を定義した外部キ−が
参照する参照中の『部門』表4からの行の削除により、
削除される行の主キ−値と同じ値を持つ外部キ−値をN
ULL値に更新するNULL値更新処理手続きを生成す
る(ステップ2272)。上記CSCADEのときの例
を、SET NULLに替えた場合の処理手続きをSQ
L文のUPDATE文で示すと、次のようになる。 UPDATE 部門 SET 所属部門=NULL WHERE 所属部門=『部門番号』列削除対象値 ・・・・・・・・・(9)
【0025】上記SQL文をデ−タベ−ス管理システム
が実行する内部処理手続き(中間言語)として生成す
る。この処理手続きには、1つの変数である『部門番
号』列の更新前値が含まれている。この変数は、『部
門』表4に対するデ−タ操作において抽出され、この内
部処理手続きに引数として渡されることになる。さら
に、オプションがSET NULLでなければ、SET
DEFAULTであるか否かを調べ(ステップ227
3)、SET DEFAULTであれば、この参照制約
を定義した外部キ−が参照する参照中の『部門』表4か
らの行の削除により、削除される行の主キ−値と同じ値
を持つ外部キ−値を予め指定された省略時解釈値に更新
する省略時解釈値更新処理手続きを生成する(ステップ
2274)。前記CASCADEのときの例を、SET
DEFAULTに替えた場合の処理手続きをSQL文
のUPDATE文で示すと、次のようになる。 UPDATE 部門 SET 所属部門=省略時解釈値 WHERE 所属部門=『部門番号』列削除対象値 ・・・・・・・・・(10)
【0026】上記SQL文をデ−タベ−ス管理システム
が実行する内部処理手続き(中間言語)として生成す
る。この処理手続きには、1つの変数である『部門番
号』列の更新前値が含まれる。この変数は、『部門』表
4に対するデ−タ操作において抽出され、この内部処理
手続きに引数として渡されることになる。また、省略時
解釈値は、必ず参照する主キ−値に存在する値であるこ
とが前提となる。ステップ2273で、この削除規則に
おけるオプションが指定されなかったとき、これまでの
オプションとは異なって、表間の整合性を検出しないこ
とを検査する処理を生成する(ステップ2275)。す
なわち、参照している『部門』表4からの行の削除によ
り、削除される行の主キ−値と同じ値を持つ外部キ−が
存在しないことを検査する必要がある。この整合性を検
査する処理を、処理手続きとして生成するのである。こ
の処理手続きをSQL文のSELECT文で示すと、次
のようになる。 SELECT*FROM 部門 WHERE 所属部門=『部門番号』列削除対象値 ・・・・・・・・(11)
【0027】上記SQL文をデ−タベ−ス管理システム
が実行する内部処理手続き(中間言語)として生成す
る。この処理手続きには、1つの変数である『部門番
号』列の削除対象値が含まれる。この変数は、『部門』
表4に対するデ−タ操作において抽出され、この内部処
理手続きに引数として渡されることになる。次に、実際
のデ−タ操作を例にとり、全体のデ−タ操作処理の流れ
を、図1と図7により詳述する。先ず、『部門』表4か
ら行を削除する場合の処理について述べる。デ−タ操作
を行う問合わせは、次のようなSQL文で行う。 DELETE FROM 部門 WHERE 部門番号=削除対象値 ・・・・・・・・・・・・・・・・(12)
【0028】上記SQL文が発行されると、先ず図7に
おける構文・意味解析処理10で、DELETE文の文
法や意味上の解析処理が行われる。このとき、『部門』
表4に対するデ−タ操作であって、この表の主キ−を参
照する外部キ−、つまり参照制約が存在するので、この
参照制約に関する情報を図7のディクショナリ9から整
合性を維持するための手続きに関する情報を取り出して
おく。次に、アクセスバス決定処理12で、そのDEL
ETE文の実行方法として、指定された削除する行の探
索条件からデ−タベ−スのアクセス手順を決定する。次
に、処理手続き生成処理14では、決定されたアクセス
手順を基にしてデ−タベ−ス管理システムが実行できる
形式に変換するために、このDELETE文に対応する
処理手続きを生成する。次に、処理手続き実行処理16
において、前段で生成された処理手続きを基に、インタ
プリティブにデ−タ操作を実行する。ここで、生成され
た処理手続きは、図1に示す処理手続き50として実行
される。図1において、処理手続き50の中には、前の
構文・意味解析処理10において整合性を維持するため
の手続きに関する情報として、制約(1)54、制約
(2)56、制約(3)58の情報が組み込まれてい
る。各情報54,56,58には、整合性を維持するた
めの手続きが格納されている位置に関する情報が含まれ
ている。すなわち、制約54には、その制約による整合
性を維持するための手続きとして、処理手続き(2)6
0の先頭アドレスが格納されている。また、制約56に
は、その制約による整合性を維持するための手続きとし
て、処理手続き(3)70の先頭アドレスが格納されて
いる。さらに、制約58には、その制約による整合性を
維持するための手続きとして、処理手続き(4)80の
先頭アドレスが格納されている。処理手続き実行処理1
6は、生成された手続きの処理内容を調べて、削除処理
であることが判明すると、図12に示す削除処理手続き
実行処理の流れに従って、インタプリティブ(解釈的)
に実行される。
【0029】図14は、削除処理手続き実行処理の動作
フロ−チャ−トである。削除処理手続き実行処理28で
は、図14に示すように、行削除処理において削除の対
象となる行を図7のデ−タベ−ス操作処理18およびバ
ッファ管理20を通じて探索し、条件を満足する行を1
行だけ削除する(ステップ281)。そして、削除され
た行に対して、その行の主キ−を参照する参照表がある
か否かを調べる(ステップ282)。参照表があるか否
かについては、その処理手続き中に格納されている制約
情報の有無により判定される。この処理手続き(1)5
0の場合、3つの参照表があるので、各々の制約につい
て整合性を維持するための処理手続きを呼び出し、これ
らを実行する(ステップ283,284)。先ず、制約
1について、整合性を維持するための手続きを呼出し、
これを実行する。制約情報54には、この整合性を維持
するための手続きを格納する位置に関する情報55を参
照して、処理手続き(2)60をディクショナリ9から
呼出し、実行する。制約1は、削除対象となった行の主
キ−値と同じ値を持つ同じ表の外部キ−である所属部門
列があれば、その行を削除するものである。これを実行
するための処理手続き(2)60は、その手続きの実行
内容がメモリ62に格納されており、再帰的に処理手続
き実行処理部16で実行される。この整合性を維持する
ための手続きも、図14に示す処理フロ−に従って実行
される。制約1の場合には、参照制約が自己の表に対す
る制約のために、処理手続き(2)60が主キ−の削除
により順次波及されて、再帰的に実行される。しかし、
常に動作が波及される毎に、その処理手続きがディクシ
ョナリ9から呼出されるのではなく、一旦呼出された手
続きを再利用する。
【0030】図15,図16は、更新処理手続き実行処
理の動作フロ−チャ−トである。次に、制約1について
処理が終了すると、制約2についても同じように整合性
を維持するための手続きを呼出し、これを実行する。制
約2は、削除対象となった行の主キ−値と同じ値を持つ
『従業員』表5の外部キ−列である『所属部門』列があ
れば、その行の『所属部門』列の値をNULL値(空
値)に更新する。これを実行するための『処理手続き
(3)』70には、その手続きの実行内容がメモリ72
に格納される。この整合性を維持するための手続きは、
更新処理であるため、図15に示す更新処理手続き実行
処理30の処理に従って実行される。先ず、『部門』表
4で削除対象となった行の『所属部門』列の値が引数と
して渡され、渡された引数をその処理手続きの探索条件
に用いて、『従業員』表5の『所属部門』列で同じ値を
持つ行を探索し、同じ値を持つ行の『所属部門』列の値
をNULL値に更新する(ステップ301)。更新後に
は、この更新が主キ−の更新か否かを調べて(ステップ
302)、この処理手続き(3)70には整合性を維持
するための制約がないため、さらに外部キ−の更新か否
かを調べる(ステップ308)。この手続きは、外部キ
−の更新であるが、この処理手続き中に整合性を維持す
るための手続きに関する情報が含まれていないため、こ
のまま処理を終了する。さらに、制約2の処理が終了す
ると、最後の制約3について同じように整合性を維持す
るための手続きを呼出し、実行する。制約3は、削除対
象となった行の主キ−値と同じ値を持つ『プロジェク
ト』表6の外部キ−である『担当部署』列に同じ値を持
つ行が存在するか否かを検索する。存在する場合には、
制約違反として処理手続き1による『部門』表4からの
行の削除処理を中止して、制約違反が発生したことを報
告する。
【0031】これを実行するための『処理手続き
(4)』80には、その手続きの実行内容がメモリ82
に格納されている。この整合性を維持するための手続き
は、検索処理であって、特にフロ−としては示してない
が、『部門』表4で削除対象となった行の『所属部門』
列の値が引数として渡され、渡された引数をこの処理手
続きの探索条件として用い、該当する行が存在するか否
か検索する。検索の結果は、探索条件を満足する行が存
在すれば、制約違反となり、探索条件を満足する行が存
在しなければ、『部門』表4からの行の削除を実行可能
とする。制約違反になると、処理手続き(4)80の結
果が処理手続き(1)40に返却され、図14において
制約違反が発生したか否かを調べる(ステップ28
5)。制約違反があると、その処理手続きの処理を中断
して、ロ−ルバックする処理を行った後、処理を終了す
る。次に、『従業員』表5への行の挿入を例にとり説明
する。例えば、『従業員』表5への行の挿入を行うSQ
L文は、次のように記述される。 INSERT INTO 従業員 VALUES(‘00015’,‘萩野政雄’,‘95101’) ・・・・・・・・・・・・・・・・(13)
【0032】上記SQL文が発行されると、先ず図7に
示す構文・意味解析処理10で、INSERT文の文法
や意味上の解析処理が行われる。このとき、『従業員』
表5に対するデ−タ操作であって、その表5には外部キ
−つまり参照制約が存在するため、この参照制約に関す
る情報を、図7のディクショナリ9から整合性を維持す
るための手続きに関する情報を取り出しておく。次に、
アクセスパス決定処理12で、このINSERT文の実
行方法として指定された行を挿入するためのデ−タベ−
スのアクセス手順を決定する。そして、決定されたアク
セス手順を基にしてデ−タベ−ス管理システムが実行で
きる形式に変換するため、処理手続き生成処理14でこ
のINSERT文に対応する処理手続きを生成する。こ
のようにして生成された処理手続きを基にして、処理手
続き実行処理16がインタプリティブにデ−タ操作を実
行する。図13、図14に戻って、先ず行を挿入するペ
−ジを割り当てる(ステップ261)。次に、割り当て
たペ−ジに対して行を挿入する処理を、図7に示すデ−
タ操作処理18に対して要求し、行を挿入する(ステッ
プ262)。次に、この挿入表には、参照制約があるか
否かを調べて(ステップ263)、参照制約があるとき
には、参照制約数分以下の処理を繰り返す(ステップ2
64)。この処理手続き中には、前の構文・意順解析処
理10で整合性を維持するための手続きに関する情報と
して、制約2の情報が組み込まれている。制約2には、
整合性を維持するための手続きが格納されている位置の
情報が含まれている。このSQL文はINSERT文で
あるため、この場合の整合性を維持するための手続きと
は、暗黙の挿入規則に基づいた手続きであって、挿入す
る行に含まれる『所属部門』列に相当する値が参照する
『部門』表4の主キ−である『所属部門』列に同じ値を
持つものが存在するか否かを検索する。先ず、この処理
手続き中に含まれる参照制約の情報を参照し、整合性を
維持するための手続きをディクショナリ9から読み出
し、これを実行する(ステップ265)。次に、整合性
を維持するための手続きを実行した結果、制約違反とな
ったか否かを調べて(ステップ266)、制約違反とな
った場合には、処理中断としてロ−ルバック処理を行
い、処理を終了する。
【0033】図17は、本発明の第2の実施例を示すデ
−タベ−ス管理システムの全体構成図である。図17に
おいて、10はデ−タベ−ス管理システム7に対して要
求される問合わせ文の構文のチェックと、意味上の解析
処理を行う構文・意味解析処理部、32は正しく解析さ
れたデ−タ操作の問合せ文に参照制約の定義が含まれて
いるとき、そのデ−タ操作の禁止条件を付加するデ−タ
操作禁止条件付加処理部、14以降の他のモジュ−ル
は、図7で示した構成と同じであるので、説明を省略す
る。この実施例では、前述の参照制約の定義時に更新規
則および削除規則を指定しない場合の暗黙の規則の場合
に適用される。先ず、更新について説明する。『従業
員』表5の『所属部門』列を更新する場合を考えると、
この場合のSQL文は次のように要求される。 UPDATE 従業員 SET 所属部門=更新値 WHERE 従業員番号=更新対象値 ・・・・・・・・・・・・・・(14)
【0034】上記SQL文が発行されると、構文・意味
解析処理部10で、このUPDATE文の文法上のチェ
ックと意味上の解析処理が行われる。意味解析時に、デ
ィクショナリ9を参照することにより、『従業員』表5
の『所属部門』列は外部キ−であることが判る。次に、
解析されたUPDATE文に対してデ−タ操作の禁止条
件を付加するために、デ−タ操作禁止条件付加処理部3
2に制御を渡す。図18は、本実施例におけるデ−タ操
作禁止条件付加処理部32の処理のフロ−チャ−トであ
り、図19は、同じくデ−タ操作禁止条件生成の処理フ
ロ−チャ−トである。先ず、『従業員』表5の『所属部
門』列が参照する『部門』表4の定義情報を予め取り出
しておく(ステップ321)。次に、デ−タ操作を禁止
するための条件を生成する(ステップ322)。デ−タ
操作禁止条件の生成処理322の詳細なフロ−は、図1
9に示す通りである。先ず、要求されたSQL文が主キ
−の更新か、あるいは削除かを調べる(ステップ322
1)。この場合には、条件に合致しないので、次に外部
キ−値の更新か挿入かを調べる(ステップ3229)。
この場合、要求されたUPDATE文は外部キ−の更新
であることが判明する。そして、デ−タ操作禁止条件の
生成を参照制約数分繰り返すようにする(ステップ33
30)。先ず、更新する外部キ−値が存在するか否かを
調べるために、SQL文の副問合わせの述語に見られる
存在比較子であるEXISTS述語を生成する(ステッ
プ3331)。そして、SELECT節を生成し(ステ
ップ3232)、射影する項目は特に指定する必要がな
い。次に、FROM節を生成して、検索の対象となる表
は『部門』表4とする(ステップ3333)。次に、W
HERE節を生成して、探索条件としては『部門』表4
の『所属部門』列に対する等号条件で比較する値は外部
キ−更新値を指定する(ステップ3334)。これらを
生成し終ると、全ての参照制約についての禁止条件の生
成を終了したか否かを調べて(ステップ3335)、終
了したならばその処理を終了する。このようにして、U
PDATE文は次のようにデ−タ操作禁止条件が付加さ
れたものとなる。 UPDATE 従業員 SET 所属部門=更新値 WHERE 従業員番号=更新対象値 AND EXISTS(SELECT*FROM 部門 WHERE 所属部門=更新値) ・・・・・・・・・・・・(15)
【0035】次に、主キ−を更新する場合について説明
する。『従業員』表5の『従業員番号』列を更新する場
合には、このSQL文は例えば次のように要求される。 UPDATE 従業員 SET 従業員番号=更新値 WHERE 従業員番号=更新対象値 ・・・・・・・・・・・・・・(16) 上記SQL文が発行されると、構文・意味解析処理部1
0で、このUPDATE文の文法上のチェックと意味上
の解析処理を実行する。ここで、意味解析時にディクシ
ョナリ9を参照することにより、この『従業員』表5の
『従業員番号』列は主キ−であることが判る。次に、解
析されたUPDATE文に対してデ−タ操作の禁止条件
を付加するために、デ−タ操作禁止条件付加処理部32
に制御を渡す。図18、図19において、先ず『従業
員』表5の『従業員番号』列を参照する『部門』表4お
よび『プロジェクト』表6の参照制約定義情報を予め取
り出しておく(ステップ321)。次に、デ−タ操作を
禁止するための条件を生成する(ステップ322)。デ
−タ操作禁止条件の生成処理では、図19に示すよう
に、先ず、要求されたSQL文が主キ−の更新か、ある
いは削除かを調べる(ステップ3221)。この場合に
は、この条件を満足するので、要求されたUPDATE
文は主キ−の更新であることが判明する(ステップ32
21)。そして、デ−タ操作禁止条件の生成を参照制約
数分繰り返すようにする(ステップ3222)。
【0036】次に、更新前の主キ−値と同じ値を持つ外
部キ−値が存在しないことを調べるため、SQL文の副
問合わせの述語に見られる存在比較子であるNOT E
XISTS述語を生成する(ステップ3223)。次
に、NOT EXISTS述語で評価する副問合わせの
SQL文を生成する。次に、SELECT節を生成し
(ステップ3224)、射影する項目は特に指定する必
要がない。次に、FROM節を生成し(ステップ322
5)、次にWHERE節を生成して、探索条件としては
『部門』表4の『管理者番号』列に対する等号条件で比
較する値は主キ−更新前値を指定する(ステップ322
6)。これらを生成し終ったとき、全ての参照制約につ
いての禁止条件の生成を終了したか否かを調べる(ステ
ップ3227)。この場合、『プロジェクト』表6につ
いての処理があるので、両者の禁止条件を論理結合する
ためにAND条件を生成する(ステップ3228)。次
に、『部門』表4と同じようにデ−タ操作禁止条件を生
成する(ステップ3222ないしステップ3227)。
全ての参照制約について、処理を終了したならば、この
処理を終了する。以上のようにして、UPDATE文は
次のようにデ−タ操作禁止条件が付加されたものとな
る。 UPDATE 従業員 SET 従業員番号=更新値 WHERE 従業員番号=更新対象値 AND NOT EXISTS( SELECT*FROM 部門 WHERE 管理者番号=更新対象値) AND NOT EXISTS( SELECT*FROM プロジェクト WHERE 担当従業員番号=更新対象値) ・・・・・・・・・・・・・・・(17)
【0037】以上のように、デ−タ操作禁止条件が付加
されたSQL文により、図17のアクセスパス決定処理
部14において、デ−タベ−スに対するアクセス経路が
決定される。そして、決定されたアクセスパスに従って
デ−タベ−ス管理システムが処理できる手続きを生成
し、生成した手続きを基に処理手続き実行処理におい
て、インタプリティブに実行される。実行に至っては、
デ−タ操作禁止条件として付加された条件を評価したと
きに、条件が満足されない場合には制約違反として処理
を禁止し、条件が満足される場合にはデ−タ操作を実行
する。次に、削除の場合を考える。『従業員』表5から
行を削除する場合には、SQL文は例えば次のように要
求される。 DELETE FROM 従業員 WHERE 従業員番号=削除対象値 ・・・・・・・・・・・・・(18)
【0038】上記SQL文が発行されると、構文・意味
解析処理部10でこのDELETE文の文法上のチェッ
クおよび意味上の解析処理を実行する。意味解析時にデ
ィクショナリ9を参照することにより、『従業員』表5
の『従業員番号』列は主キ−であることが判る。次に、
解析されたDELETE文に対して、デ−タ操作の禁止
条件を付加するために、デ−タ操作禁止条件付加処理部
32に制御を渡す。デ−タ操作禁止条件付加処理部32
では、図18に示すように、先ず『従業員』表5の『従
業員番号』列を参照する『部門』表4の参照制約定義情
報を予め取り出しておく(ステップ321)。次に、デ
−タ操作を禁止するための条件を生成する(ステップ3
22)。デ−タ操作禁止条件の生成処理は、図19に示
すように、先ず要求されたSQL文が主キ−の更新か、
あるいは削除であるかを調べる(ステップ3221)。
この場合には、条件を満足するので、要求されたDEL
ETE文は主キ−を持つ行の削除であることが判る。次
に、デ−タ操作禁止条件の生成を参照制約数分だけ繰り
返すようにする(ステップ3222)。次に、削除する
行の主キ−値と同じ値を持つ外部キ−値が存在するか否
かを調べるため、SQL文の副問合わせの述語に見られ
る存在比較子であるNOT EXISTS述語を生成す
る(ステップ3223)。次に、NOT EXISTS
述語で評価する副問合わせのSQL文を生成する。先
ず、SELECT節を生成し(ステップ3224)、射
影する項目は特に指定する必要がない。次に、FROM
節を生成し、検索の対象となる表は『部門』表とする
(ステップ3225)。次に、WHERE節を生成し、
探索条件としては『部門』表の『所属部門』列に対する
等号条件で比較する値は削除対象主キ−値を指定する
(ステップ3226)。これらの生成が終了したなら
ば、全ての参照制約についての禁止条件の生成が終了し
たか否かを調べ(ステップ3227)、終了したなら
ば、この処理を終了する。このようにして、DELET
E文は次のようにデ−タ操作禁止条件が付加される。
【0039】 DELETE FROM 従業員 WHERE 従業員番号=削除対象値 AND NOT EXISTS( SELECT*FROM 部門 WHERE 管理者番号=削除対象値) AND NOT EXISTS( SELECT*FROM プロジェクト WHERE 担当従業員番号=削除対象値) ・・・・・・・・・・・・・・・(19) 次に、行の挿入について、例を挙げて説明する。『従業
員』表に行を挿入する場合には、SQL文は次のように
要求される。 INSERT INTO 従業員 VALUES(‘00010’,‘萩野政雄’,‘95101’) ・・・・・・・・・・・・・・・(20)
【0040】上記SQL文が発行されると、構文・意味
解析処理部10では、このINSERT文の文法上のチ
ェックと意味上の解析処理を実行する。意味解析時にデ
ィクショナリ9を参照することにより、『従業員』表5
の『所属部門』列は外部キ−であることが判る。次に、
解析されたINSERT文に対して、デ−タ操作の禁止
条件を付加するために、デ−タ操作禁止条件付加処理部
32に制御を渡す。デ−タ操作禁止条件付加処理部32
の処理は、図18に示すように、先ず『従業員』表5の
『所属部門』列が参照する『部門』表4の定義情報を予
め取り出しておく(ステップ321)。次に、デ−タ操
作を禁止するための条件を生成する(ステップ32
2)。デ−タ操作を禁止するための条件を生成する処理
の流れは、図19に示すように、先ず要求されたSQL
文が主キ−の更新であるか、または削除であるかを判別
する(ステップ3221)。この場合、条件に合致しな
いため、次に外部キ−値の更新であるか、あるいは挿入
であるかを判別する(ステップ3229)。ここでは、
要求されたINSERT文は外部キ−の挿入であること
が判明する。次に、デ−タ操作禁止条件の生成を参照制
約数分だけ繰り返すようにする(ステップ3330)。
次に、挿入する外部キ−値が存在するか否かを調べるた
め、SQL文の副問合わせの述語に見られる存在比較子
であるEXISTS述語を生成する(ステップ333
1)。次に、EXISTS述語で評価する副問合わせの
SQL文を生成する。先ず、SELECT節を生成し
(ステップ3332)、射影する項目は特に指定する必
要がない。次に、FROM節を生成して、検索の対象と
なる表は『部門』表4とする(ステップ3333)。次
に、WHERE節を生成し(ステップ3334)、探索
条件として『部門』表4の『所属部門』列に対する等号
条件で比較する値は、外部キ−挿入値を指定する。以上
の生成が終了すると、全ての参照制約についての禁止条
件の生成が終了したか否かを判別し(ステップ333
5)、終了したならばこの処理を終了する。
【0041】このようにして、INSERT文は次のよ
うにデ−タ操作禁止条件が付加されたものとなる。ただ
し、実際のSQLの文法上は、生成したデ−タ操作禁止
条件をINSERT文には付加できないので、論理的に
付加した形式をとって、後になり処理手続きを生成した
際に1つの手続きとする。 INSERT INTO 従業員 VALUES(‘00015’,‘萩野政雄’,‘95105’) AND EXISTS(SELECT*FROM 部門 WHERE 所属部門=‘95105’) ・・・・・・・・・・・・・・・(21) 上述のようにして生成したSQL文を実行することによ
り、付加したデ−タ操作禁止条件を評価して、禁止条件
に該当する場合には、そのデ−タ操作を中止して、制約
違反になったことを報告する。また、禁止条件に該当し
ないときには、そのデ−タ操作を実行する。デ−タ操作
の禁止条件を含むデ−タ操作を実行する際の処理手順と
して、前記生成する禁止条件によっては、その処理の順
序を変えられる場合がある。これは、図19におけるW
HERE節の生成において、要求されたデ−タ操作のS
QL文中に指定された探索条件を参照して、主キ−に対
して指定された等号条件の条件で、かつ比較する値が定
数の場合には、デ−タ操作の禁止条件の探索条件で外部
キ−に対する条件も同じ値を用いて、等号条件による探
索条件を生成することが可能である。例えば、次のよう
なSQL文が与えられる。 UPDATE 従業員 SET 従業員番号=更新値 WHERE 従業員番号=更新前値 ・・・・・・・・・・・・・(22)
【0042】上記デ−タ操作に際して、禁止条件の生成
処理では、WHERE節に指定された探索条件である
‘従業員番号=更新前値’を参照すると、主キ−である
『従業員番号』列に対して定数による等号条件の比較条
件が指定されているので、禁止条件のWHERE節で
は、対応する外部キ−列の探索条件の比較定数として使
用できる。このようにして、生成されたWHERE節
は、次のようなものとなる。 WHERE 外部キ−構成列=更新前値 ・・・・・・・・・・・・・(23) この禁止条件を付加した場合に、アクセスパス決定処理
では、禁止条件部分の副問合わせを先に評価できること
が判る。従って、このアクセスパスに従って生成された
更新処理手続きは、先ず禁止条件の副問合わせの評価を
行い、評価した結果、禁止条件に合致する結果が得られ
た場合には、後のデ−タ操作処理を行うことなく、制約
違反として、処理を中止することになる。また、前例の
ように、予めWHERE節において、更新対象となる主
キ−の値が判明しない場合にも、更新前値を更新対象表
の検索を行った後に、禁止条件の判定を行うことによ
り、実際に更新を行わずに処理を中止することができ
る。
【0043】
【発明の効果】以上説明したように、本発明によれば、
あるデ−タとの整合性を維持する必要のある他のデ−タ
に対して、整合性を維持すべき手続きをデ−タベ−ス中
に格納して、更新するデ−タに対応して整合性を維持す
るための手続きを読み出し、これを実行することによ
り、整合性を効率よく維持することができる。さらに、
デ−タ操作の要求に対して、そのデ−タ操作の禁止条件
を含む指示を作成して、禁止条件の判定により、禁止条
件に合致しないときのみデ−タ操作を実行するので、デ
−タの整合性を効率よく維持できる。
【0044】
【図面の簡単な説明】
【図1】本発明の一実施例を示す整合性維持のための手
続き実行関連図である。
【図2】本発明の一実施例を示す3つの表の参照関係を
示す図である。
【図3】図2における『部門』表の列の構成とデ−タの
実現値を示す図である。
【図4】図2における『従業員』表の列の構成とデ−タ
の実現値を示す図である。
【図5】図2における『プロジェクト』表の列の構成と
デ−タの実現値を示す図である。
【図6】図2に示した3つの表間の参照制約の定義情報
を示す図である。
【図7】本発明の第1の実施例を示すデ−タベ−ス管理
システムの構成図である。
【図8】図7におけるハ−ドウェア構成図である。
【図9】本発明における定義系解析処理の動作フロ−チ
ャ−トである。
【図10】図9と同じく、定義系解析処理の動作フロ−
チャ−トの他の一部である。
【図11】本発明における制約処理手続き生成処理の動
作フロ−チャ−トである。
【図12】図11と同じく、制約処理手続き生成処理の
動作フロ−チャ−トの一部である。
【図13】本発明における挿入処理手続き実行処理の動
作フロ−チャ−トである。
【図14】本発明における削除処理手続き実行処理の動
作フロ−チャ−トである。
【図15】本発明における更新処理手続き実行処理の動
作フロ−チャ−トである。
【図16】図15と同じく、更新処理手続き実行処理の
動作フロ−チャ−トである。
【図17】本発明の第2の実施例を示すデ−タベ−ス管
理システムの全体構成図である。
【図18】本実施例におけるデ−タ操作禁止条件付加処
理の動作フロ−チャ−トである。
【図19】図18におけるデ−タ操作禁止条件生成処理
の動作フロ−チャ−トである。
【符号の説明】
1 CPU 2 主記憶装置 3 外部記憶装置 4 部門表 5 従業員表 6 プロジェクト表 7 デ−タベ−ス管理システム 8 デ−タベ−ス 9 ディクショナリ 10 構文・意味解析処理部 12 アクセスパス決定処理部 14 処理手続き生成処理部 16 処理手続き実行処理部 18 デ−タベ−ス操作処理部 20 バッファ管理部 22 定義系処理部 24 ディクショナリ維持管理部 32 デ−タ操作禁止条件付加処理部 50,60,70,80 処理手続き1,2,3,4 52,62,72,82 メモリ領域 54,56,58 制約情報 64,66,68 制約情報 55,57,59 ポインタ 65,67,69 ポインタ 91,92,93,94,95,96 制約1,2,
3,4,5,6
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山平 耕作 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 小寺 孝 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 篠崎 英典 広島県広島市中区銀山町3番1号(ひろし まハイビル21) 日立中国ソフトウェア株 式会社内

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 デ−タベ−ス中の任意のデ−タを更新す
    る場合に、該デ−タとの内容の一致を保つ整合性を維持
    させる必要がある他のデ−タに対して、それぞれ整合性
    を維持させるための手続き用処理モジュ−ルを上記デ−
    タベ−ス中に予め格納し、かつ格納位置に関する情報も
    格納しておき、上記任意のデ−タに対するデ−タ操作を
    行う際に、上記整合性を維持させる手続き用処理モジュ
    −ルを上記デ−タベ−スから読み出して、該手続き用処
    理モジュ−ルを実行することを特徴とするデ−タベ−ス
    管理方法。
  2. 【請求項2】 請求項1に記載のデ−タベ−ス管理方法
    において、上記手続き用処理モジュ−ルは、任意のデ−
    タとの整合性を維持させるための他のデ−タを挿入する
    場合に、挿入するデ−タが上記任意のデ−タとの整合性
    を維持できることを検査するプログラムモジュ−ルであ
    ることを特徴とするデ−タベ−ス管理方法。
  3. 【請求項3】 請求項1に記載のデ−タベ−ス管理方法
    において、上記手続き用処理モジュ−ルは、任意のデ−
    タを削除する場合に、削除するデ−タとの整合性が維持
    される必要のある他のデ−タが存在しないことを検査す
    るプログラムモジュ−ルであることを特徴とするデ−タ
    ベ−ス管理方法。
  4. 【請求項4】 請求項1に記載のデ−タベ−ス管理方法
    において、上記手続き用処理モジュ−ルは、任意のデ−
    タとの整合性が維持される必要のある他のデ−タを追加
    ないし更新する場合に、追加ないし更新したデ−タと整
    合性を維持することができるデ−タが存在することを検
    査するプログラムモジュ−ルであることを特徴とするデ
    −タベ−ス管理方法。
  5. 【請求項5】 請求項1に記載のデ−タベ−ス管理方法
    において、上記手続き用処理モジュ−ルは、任意のデ−
    タを削除する場合に、削除するデ−タと整合性を維持す
    る他のデ−タが存在すれば、該デ−タも削除するプログ
    ラムモジュ−ルであることを特徴とするデ−タベ−ス管
    理方法。
  6. 【請求項6】 請求項1に記載のデ−タベ−ス管理方法
    において、上記手続き用処理モジュ−ルは、任意のデ−
    タを削除する場合に、削除するデ−タと整合性を維持す
    る他のデ−タが存在すれば、該デ−タをナル値(NUL
    L)ないし予め外部より指定された値に更新するプログ
    ラムモジュ−ルであることを特徴とするデ−タベ−ス管
    理方法。
  7. 【請求項7】 請求項1に記載のデ−タベ−ス管理方法
    において、上記手続き用処理モジュ−ルは、任意のデ−
    タを更新する場合に、更新するデ−タと整合性を維持す
    る他のデ−タが存在すれば、該デ−タも同じデ−タに更
    新するプログラムモジュ−ルであることを特徴とするデ
    −タベ−ス管理方法。
  8. 【請求項8】 請求項1に記載のデ−タベ−ス管理方法
    において、上記手続き用処理モジュ−ルは、任意のデ−
    タを更新する場合に、更新するデ−タと整合性を維持す
    る他のデ−タが存在すれば、該デ−タをナル値(NUL
    L)ないし予め外部より指定された値に更新するプログ
    ラムモジュ−ルであることを特徴とするデ−タベ−ス管
    理方法。
  9. 【請求項9】 デ−タベ−ス中のデ−タ操作を行う場合
    に、該操作の禁止条件を含む指示を入力して、該禁止条
    件を判定し、該判定の結果、該操作が禁止されない場合
    には、該操作を実行するが、該判定の結果、該操作が禁
    止される場合には、該操作を実行しないことを報告する
    ことを特徴とするデ−タベ−ス管理方法。
  10. 【請求項10】 請求項9に記載のデ−タベ−ス管理方
    法において、上記禁止条件は、任意のデ−タとの整合性
    が維持される必要のある他のデ−タを挿入および更新す
    る場合、挿入および更新するデ−タが上記任意のデ−タ
    に存在しなければ、該操作を禁止する条件であり、また
    上記禁止条件を含む指示は、挿入および更新操作が行わ
    れる前ないし後に、挿入および更新したデ−タが上記任
    意のデ−タに存在しなければ該操作を禁止する条件を判
    定する指示であることを特徴とするデ−タベ−ス管理方
    法。
  11. 【請求項11】 請求項9に記載のデ−タベ−ス管理方
    法において、上記操作の禁止条件は、任意のデ−タを更
    新する場合に、上記任意のデ−タと整合性を維持してい
    る他のデ−タが存在すれば、該任意のデ−タを更新する
    操作を禁止する条件であり、上記禁止条件を含む指示
    は、該任意のデ−タを更新する前ないし後に、該任意の
    デ−タと整合性を維持している他のデ−タが存在すれ
    ば、該任意のデ−タを更新する操作を禁止する条件を判
    定する指示であることを特徴とするデ−タベ−ス管理方
    法。
  12. 【請求項12】 請求項9に記載のデ−タベ−ス管理方
    法において、上記操作の禁止条件は、任意のデ−タを削
    除する場合に、該任意のデ−タと整合性を維持している
    他のデ−タが存在すれば、該任意のデ−タを削除する操
    作を禁止する条件であり、上記禁止条件を含む指示は、
    該任意のデ−タを削除する前ないし後に、該任意のデ−
    タと整合性を維持している他のデ−タが存在すれば、該
    任意のデ−タを削除する操作を禁止する条件を判定する
    指示であることを特徴とするデ−タベ−ス管理方法。
  13. 【請求項13】 デ−タベ−スと、該デ−タベ−スの中
    の任意のデ−タの更新に伴って、該任意のデ−タとの整
    合性が維持される必要のある他のデ−タに対する整合性
    を維持するための手続き用処理モジュ−ルを上記デ−タ
    ベ−ス中に格納する第1の記憶制御手段と、該任意のデ
    −タに対応して上記手続き用処理モジュ−ルを格納する
    位置に関する情報を格納する第2の記憶制御手段と、該
    任意のデ−タの更新に伴って、上記格納位置を参照して
    上記手続き用処理モジュ−ルを読み出し、該モジュ−ル
    を実行するプロセッサを具備することを特徴とするデ−
    タベ−ス管理システム。
  14. 【請求項14】 デ−タベ−スと、該デ−タベ−ス中の
    デ−タ操作のために、該デ−タ操作の禁止条件を含む指
    示を作成するサブモジュ−ルと、該デ−タ操作の禁止条
    件を含む指示を読み出して、該禁止条件を判定するサブ
    モジュ−ルと、判定の結果、該操作が禁止されない場合
    には該操作を実行し、判定の結果、該操作が禁止される
    場合には該操作を実行しないことをオペレ−タに報告す
    るサブモジュ−ルとを有することを特徴とするデ−タベ
    −ス管理システム。
JP4011617A 1992-01-27 1992-01-27 デ−タベ−ス管理方法およびそのシステム Pending JPH05204727A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4011617A JPH05204727A (ja) 1992-01-27 1992-01-27 デ−タベ−ス管理方法およびそのシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4011617A JPH05204727A (ja) 1992-01-27 1992-01-27 デ−タベ−ス管理方法およびそのシステム

Publications (1)

Publication Number Publication Date
JPH05204727A true JPH05204727A (ja) 1993-08-13

Family

ID=11782884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4011617A Pending JPH05204727A (ja) 1992-01-27 1992-01-27 デ−タベ−ス管理方法およびそのシステム

Country Status (1)

Country Link
JP (1) JPH05204727A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235032A (ja) * 1995-02-22 1996-09-13 Nec Software Kansai Ltd データベース更新論理チェック方式
WO2008149552A1 (ja) * 2007-06-06 2008-12-11 Athena Telecom Lab, Inc. データベース矛盾解消方式
US8171003B2 (en) 2007-06-06 2012-05-01 Kunio Kamimura Method and apparatus for changing reference of database
JP2013529814A (ja) * 2010-06-22 2013-07-22 アビニシオ テクノロジー エルエルシー 関連データセットの処理
WO2023275945A1 (ja) * 2021-06-28 2023-01-05 日本電信電話株式会社 データベース管理装置、データベース管理方法およびデータベース管理プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235032A (ja) * 1995-02-22 1996-09-13 Nec Software Kansai Ltd データベース更新論理チェック方式
WO2008149552A1 (ja) * 2007-06-06 2008-12-11 Athena Telecom Lab, Inc. データベース矛盾解消方式
US8171003B2 (en) 2007-06-06 2012-05-01 Kunio Kamimura Method and apparatus for changing reference of database
US9678996B2 (en) 2007-06-06 2017-06-13 Kunio Kamimura Conflict resolution system for database parallel editing
JP2013529814A (ja) * 2010-06-22 2013-07-22 アビニシオ テクノロジー エルエルシー 関連データセットの処理
WO2023275945A1 (ja) * 2021-06-28 2023-01-05 日本電信電話株式会社 データベース管理装置、データベース管理方法およびデータベース管理プログラム

Similar Documents

Publication Publication Date Title
JP3251837B2 (ja) データベースにおける制約違反の検査方法及びそのシステム
US6453314B1 (en) System and method for selective incremental deferred constraint processing after bulk loading data
US7324992B2 (en) Database processing method and system
US5950210A (en) Database row version differentiation process
US5367675A (en) Computer automated system and method for optimizing the processing of a query in a relational database system by merging subqueries with the query
US6098075A (en) Deferred referential integrity checking based on determining whether row at-a-time referential integrity checking would yield the same results as deferred integrity checking
US9116943B2 (en) Halloween protection in a multi-version database system
US7761411B2 (en) Delta operations on a large object in a database
US7136873B2 (en) Dynamic filtering in a database system
US6278994B1 (en) Fully integrated architecture for user-defined search
US6374252B1 (en) Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US6128610A (en) Index with entries that store the key of a row and all non-key values of the row
US7010542B2 (en) Result set formatting and processing
US7672960B2 (en) Performing operations on a set of objects in a database system
US6449609B1 (en) Using materialized view to process a related query containing a one to many lossless join
US20080235260A1 (en) Scalable algorithms for mapping-based xml transformation
US20050165866A1 (en) Method and apparatus for updating XML views of relational data
CN109840256B (zh) 一种基于业务实体的查询实现方法
US9171036B2 (en) Batching heterogeneous database commands
US8478760B2 (en) Techniques of efficient query over text, image, audio, video and other domain specific data in XML using XML table index with integration of text index and other domain specific indexes
KR20170024039A (ko) 유연한 스키마를 사용한 데이터 관리
JPH0652531B2 (ja) リレーシヨナル・データベース管理システム
US7542962B2 (en) Information retrieval method for optimizing queries having maximum or minimum function aggregation predicates
US20120016851A1 (en) System and Method for Partially Deferred Index Maintenance
US20100030726A1 (en) Mechanism For Deferred Rewrite Of Multiple Xpath Evaluations Over Binary XML