JP2001282592A - 参照保全性制約によるリレーショナル・データベース動作の順序付け - Google Patents

参照保全性制約によるリレーショナル・データベース動作の順序付け

Info

Publication number
JP2001282592A
JP2001282592A JP2001061383A JP2001061383A JP2001282592A JP 2001282592 A JP2001282592 A JP 2001282592A JP 2001061383 A JP2001061383 A JP 2001061383A JP 2001061383 A JP2001061383 A JP 2001061383A JP 2001282592 A JP2001282592 A JP 2001282592A
Authority
JP
Japan
Prior art keywords
determining
tables
selected table
database
priority
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.)
Granted
Application number
JP2001061383A
Other languages
English (en)
Other versions
JP3670975B2 (ja
Inventor
J Saro Timo
ティモ・ジェイ・サロ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001282592A publication Critical patent/JP2001282592A/ja
Application granted granted Critical
Publication of JP3670975B2 publication Critical patent/JP3670975B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24565Triggers; Constraints
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

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

Abstract

(57)【要約】 【課題】 参照保全性制約違反を避けるために、リレー
ショナル・データベースに対して実行される動作を計画
的に順序付ける技法を提供すること。 【解決手段】 影響を受ける表について定義された参照
保全性制約に従って動作を自動的に順序付けることによ
って、任意のリレーショナル・データベースに対して実
行される動作の効率を高める方法、システム、およびコ
ンピュータ・プログラム。順序付けは、計画的に実行さ
れるので、アプリケーション開発者は、参照保全性制約
に違反しない形でのアプリケーションの構成を試みると
いう重荷から解放される。データベース変更の効率が、
この技法を使用することによって大幅に高まる。順序付
けは、データベース・エンジン側で実行することができ
る。既存のアプリケーションは、アプリケーション自体
の変更を必要とせずに、この順序付け技法を利用するこ
とができる。この技法を使用する時には、バッチモード
書込動作が可能であり、これによって、実行しなければ
ならないネットワーク・ラウンドトリップの数が減る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・プ
ログラミングの分野に関し、具体的には、影響される表
について定義された参照保全性制約に従って、計画的に
動作を順序付けることによって、リレーショナル・デー
タベースに対して実行される動作の効率を高める方法、
システム、およびコンピュータ可読コードに関する。
【0002】
【従来の技術】「参照保全性(referential integrit
y)」とは、データベースの表の間の一貫性が維持され
る、リレーショナル・データベースの特性を指す。具体
的に言うと、参照保全性を維持するためには、各表の行
の外部キー値のすべてが有効であることが必要である。
外部キーが有効であるのは、その値が、(1)ヌルでな
いか、(2)識別される表のある行に主キーとして現れ
るかのいずれかの場合である。主キーが含まれる表を、
しばしば「親」表と呼び、外部キーが含まれる表を、
「従属」表と呼ぶ。特定の表が外部キーを有しない場合
があり、この場合には、この表に関して実施される参照
保全性制約はなく、そうでない場合には、表が1つまた
は複数の外部キーを有する。表が複数の外部キーを有す
る時には、複数の親表/従属表関係が存在し、そのよう
な関係のそれぞれについて参照保全性制約を実施しなけ
ればならない。
【0003】参照保全性制約は、表の行の挿入または削
除を行う動作がデータベースに対して実行される時と、
更新動作が外部キーの値に影響する時に実施されなけれ
ばならない。挿入制約では、挿入される行の各外部キー
値が、必ず対応する親表に主キー値として現れなければ
ならないことが必要である。たとえば、Employee(従業
員)表とDepartment(部署)表を有するデータベースが
あり、Employee表の各行が、その従業員が働いている部
署を識別する列項目を有すると仮定する。この部署列
を、外部キーとして定義することができ、その場合に
は、対応する主キーが、Department表の部署番号にな
る。この例では、参照保全性を維持するために、ある部
署についてEmployee表で従業員を定義する前に、その部
署をDepartment表で作成することが必要になる。削除制
約では、削除される行の主キーが、従属表の1つまたは
複数の行の外部キー値として指定されていないことが必
要である。例として同一のEmployee表およびDepartment
表を使用すると、部署がDepartment表から削除される場
合には、参照保全性を維持するために、その部署の部署
番号を参照しているすべてのEmployee行を、まず削除し
なければならない(そうしなければ、削除動作を行うこ
とができない)ことが必要である。更新制約では、外部
キー値に対する更新が、親表にすでに主キーとして現れ
ている新しい値を使用しなければならない(または、更
新によって、外部キー値にヌルがセットされる)ことが
必要である。
【0004】したがって、リレーショナル・データベー
スに対して実行される動作の順序が、データベースの参
照保全性を維持するのに非常に重要であることがわか
る。潜在的な参照保全性制約違反の検出を提供し、不整
合データベースにつながる動作を実行できなくする、多
くのデータベース・システムが市販されている(たとえ
ば、無効な挿入動作が、まだ主キー値として使用された
ことがない外部キー値を含むことを示すエラー・メッセ
ージを生成する可能性がある)。InternationalBusines
s Machines Corporation(IBM)社の一般にDB/2
(商標)と称するDATABASE2(商標)製品が、
この種のデータベース・システムの初期の例である
(「DATABASE2」はIBM社の商標であり、
「DB/2」はIBM社の商標である)。
【0005】参照保全性制約違反を避けるために動作を
実行しなければならない順序は、通常は、アプリケーシ
ョン・プログラム内でリレーショナル行が作成または削
除される順序と一致しない。したがって、行をデータベ
ースに挿入または削除する必要がある順序は、アプリケ
ーションのイベント・フローから推論することができな
い。さらに、ユーザが、行の作成または削除に関する情
報を対話的に供給する場合、参照保全性を維持するため
の正しい順序で情報を指定するようにユーザに要求する
ことは、(おそらくは複雑な)表の相互関係を理解する
という非現実的な重荷をユーザに課し、柔軟性のない非
直観的な形で作業することをユーザに要求する。
【0006】参照保全性制約違反を避けるために、リレ
ーショナル・データベースに対して実行される動作を計
画的に順序付ける技法の1つとして、オブジェクト指向
プログラミング・アプリケーションのために、オブジェ
クトの間のアソシエーションを使用して、オブジェクト
・レベルで動作を順序付ける方法が考えられる。
【0007】オブジェクト指向でないアプリケーション
と共に使用することができるか、変更を生成するアプリ
ケーションの有効範囲の外部で(アプリケーションから
の順序付けられない動作の受取時にリレーショナル・デ
ータベース・エンジンで、など)使用することができ、
これによってアプリケーション自体の変更を回避する
か、その両方である、計画的に動作を順序付ける技法を
有することが有利であろう。自動的なデータベース動作
順序付けがなければ、プログラマが、動作を生成するア
プリケーション・プログラムに動作順序付けを手作業で
コーディングするか、データベース内の参照保全性規則
実施を使用不能にするかのいずれかを行う必要がある。
動作順序付けの手作業のコーディングは、時間がかか
り、誤りをおかしやすく、簡単に維持不能なコードにつ
ながる。参照保全性規則検査の使用不能化は、不整合デ
ータベースにつながる可能性がある。
【0008】したがって、リレーショナル・データベー
スに対して実行される動作を自動的に順序付ける、改良
された技法が必要である。
【0009】
【発明が解決しようとする課題】本発明の目的は、参照
保全性制約違反を避けるために、リレーショナル・デー
タベースに対して実行される動作を計画的に順序付ける
技法を提供することである。
【0010】本発明のもう1つの目的は、リレーショナ
ル・データベース動作の効率が高まるように、この順序
付け技法を提供することである。
【0011】本発明のもう1つの目的は、順序付けで、
影響される表について定義された参照保全性制約が使用
される、この方針に基づく順序付け技法を提供すること
である。
【0012】本発明のもう1つの目的は、バッチ・モー
ド処理を使用可能にし、これによって、複数のリレーシ
ョナル・データベース記憶動作を同時に実行でき、これ
によって、アプリケーションとデータベース・エンジン
の間のラウンドトリップの数を減らし、したがって、シ
ステム全体の効率を高める、方針に基づく順序付け技法
を提供することである。
【0013】本発明のもう1つの目的は、オブジェクト
指向アプリケーションと共に使用することに制限されな
い、方針に基づく順序付け技法を提供することである。
【0014】本発明のもう1つの目的は、データベース
変更動作を生成するアプリケーション・プログラムの有
効範囲の外部で使用することができ、これによって、ア
プリケーション自体を無変更のままにすることを可能に
する、方針に基づく順序付け技法を提供することであ
る。
【0015】本発明の他の目的および長所は、部分的に
は以下の説明および図面に示され、部分的には説明から
明白になるか、本発明の実践によって習得することがで
きる。
【0016】
【課題を解決するための手段】前述の目的を達成するた
めに、本明細書で広く説明する本発明の目的に従い、本
発明は、リレーショナル・データベースに対して実行さ
れる動作の効率を高めると同時に参照保全性制約違反を
回避する方法、システム、およびコンピュータ・プログ
ラムを提供する。これは、実行される動作を計画的に順
序付ける技法を使用して達成される。この技法には、デ
ータベースの複数の表の間で挿入順序を判定するステッ
プと、この複数の表の間で削除順序を判定するステップ
と、変更のそれぞれによって実行される動作に従い、変
更のそれぞれによって影響を受ける表の特定の1つに従
って、データベースに対して行われる複数の変更をクラ
スタ化するステップと、クラスタ化された変更をデータ
ベースに適用するステップとが含まれる。クラスタ化さ
れた変更を適用するステップには、さらに、まず、挿入
順序に従って、動作が挿入であるクラスタ化された変更
のすべてを適用するステップと、次に、動作が更新であ
るクラスタ化された変更のすべてを適用するステップ
と、最後に、削除順序に従って、動作が削除であるクラ
スタ化された変更のすべてを適用するステップとが含ま
れる。動作が更新であるクラスタ化された変更は、任意
の順序で適用することができる。
【0017】挿入順序および削除順序の判定は、変更の
クラスタ化および適用の前の時に実行することができ
る。
【0018】この技法は、リレーショナル・データベー
ス・エンジンで動作することができる。この技法は、変
更を生成するアプリケーション・プログラムとは別に動
作することもできる。
【0019】変更のクラスタ化および適用は、後続の複
数の変更のそれぞれについて、繰り返して実行すること
ができる。変更の適用は、バッチ書込モードで実行する
ことができる。
【0020】挿入順序の判定には、さらに、表の選択さ
れた1つのそれぞれについて、1つまたは複数の関係す
る表を識別するステップと、選択された表および関係す
る表のそれぞれの中から、挿入優先順位を判定するステ
ップと、選択された表がそれに関する挿入優先順位を有
する関係する表の前に選択された表を順序付け、選択さ
れた表がそれに対する挿入優先順位を有しない関係する
表の後に選択された表を順序付けるステップとを含める
ことができる。
【0021】挿入優先順位を判定するステップには、さ
らに、選択された表および関係する表の各特定の1つに
ついて、選択された表と特定の関係する表との間の関係
が制約を有するかどうかを判定するステップと、制約が
存在する時に、制約の外部キーが特定の関係する表内に
配置されているかどうか判定するステップと、制約が存
在しない時、または外部キーが特定の関係する表内に配
置されていない時に、選択された表が挿入優先順位を有
しないと結論するステップと、外部キーが特定の関係す
る表内に配置されている時に、選択された表が挿入優先
順位を有すると結論するステップとを含めることができ
る。
【0022】削除順序を判定するステップには、さら
に、表の選択された1つのそれぞれについて、1つまた
は複数の関係する表を識別するステップと、選択された
表および関係する表のそれぞれについて、削除優先順位
を判定するステップと、選択された表がそれに関する削
除優先順位を有する関係する表の前に選択された表を順
序付け、選択された表がそれに関する削除優先順位を有
しない関係する表の後に選択された表を順序付けるステ
ップとを含めることができる。
【0023】削除優先順位を判定するステップには、さ
らに、選択された表および関係する表の各特定の1つに
ついて、選択された表と特定の関係する表との間の関係
が制約を有するかどうかを判定するステップと、制約が
存在する時に、制約の外部キーが選択された表内に配置
されているかどうかを判定するステップと、制約が存在
しない時または外部キーが選択された表内に配置されて
いない時に、選択された表が削除優先順位を有しないと
結論するステップと、外部キーが選択された表内に配置
されている時に、選択された表が削除優先順位を有する
と結論するステップとを含めることができる。
【0024】これから、図面を参照して本発明を説明す
るが、図では、同様の符号がすべての図を通じて同一の
要素を表す。
【0025】
【発明の実施の形態】図1に、本発明を実践することが
できる代表的なワークステーション・ハードウェア環境
を示す。図1の環境には、パーソナル・コンピュータな
ど、関連する周辺装置を含む、代表的な単一ユーザのワ
ークステーション10が含まれる。ワークステーション
10には、マイクロプロセッサ12および、既知の技法
に従ってマイクロプロセッサ12とワークステーション
10の構成要素とを接続し、これらの間の通信を可能に
するのに使用されるバス14が含まれる。ワークステー
ション10には、通常は、ユーザ・インターフェース・
アダプタ16が含まれ、ユーザ・インターフェース・ア
ダプタ16は、バス14を介して、キーボード18、マ
ウス20、または、接触感知画面、ディジタル化入力パ
ッドなどのユーザ・インターフェース装置とすることが
できる他のインターフェース装置22など、1つまたは
複数のインターフェース装置にマイクロプロセッサ12
を接続する。バス14は、LCD画面またはモニタなど
のディスプレイ装置24も、ディスプレイ・アダプタ2
6を介してマイクロプロセッサ12に接続する。バス1
4は、マイクロプロセッサ12を、メモリ28および、
ハード・ドライブ、ディスケット・ドライブ、テープ・
ドライブなどを含めることができる長期保管30も接続
する。
【0026】ワークステーション10は、たとえば通信
チャネルまたはモデム32を介して、他のコンピュータ
またはコンピュータのネットワークと通信することがで
きる。その代わりに、ワークステーション10は、CD
PD(セルラ・ディジタル・パケット・データ)カード
などの、通信チャネルまたはモデム32にある無線イン
ターフェースを使用して通信することができる。ワーク
ステーション10は、LANまたはWANでそのような
他のコンピュータと関連することができ、また、ワーク
ステーション10は、別のコンピュータなどとのクライ
アント/サーバ配置のクライアントとすることができ
る。これらの構成のすべてならびに適当な通信ハードウ
ェアおよび通信ソフトウェアが、当技術分野で既知であ
る。
【0027】図2に、本発明を実践することができるデ
ータ処理ネットワーク40を示す。データ処理ネットワ
ーク40には、無線ネットワーク42およびネットワー
ク44などの複数の個々のネットワークを含めることが
でき、これらのネットワークのそれぞれに、複数の個々
のワークステーション10を含めることができる。さら
に、当業者が諒解するように、1つまたは複数のLAN
を含めることができ(図示せず)、LANには、ホスト
・プロセッサに結合された複数のインテリジェント・ワ
ークステーションを含めることができる。
【0028】さらに図2を参照すると、無線ネットワー
ク42およびネットワーク44には、ゲートウェイ・コ
ンピュータ46またはアプリケーション・サーバ47
(データ・リポジトリ48にアクセスすることができ
る)などのメインフレーム・コンピュータまたはサーバ
も含めることができる。ゲートウェイ・コンピュータ4
6は、各ネットワーク44の入口点として働く。ゲート
ウェイ・コンピュータ46は、通信リンク50aによっ
て別の無線ネットワーク42に結合できることが好まし
い。ゲートウェイ・コンピュータ46は、通信リンク5
0b、50cを使用して1つまたは複数のワークステー
ション10に直接に結合することもできる。ゲートウェ
イ・コンピュータ46は、IBM社から入手可能なEnte
rprise Systems Architecture/370、Enterprise System
s Architecture/390コンピュータなどを使用して実施す
ることができる。応用分野に応じて、Application Syst
em/400(AS/400とも称する)などのミッドレンジ
・コンピュータを使用することができる(「Enterprise
Systems Architecture/370」はIBM社の商標であ
り、「Enterprise Systems Architecture/390」、「App
lication System/400」、および「AS/400」はI
BM社の登録商標である)。
【0029】ゲートウェイ・コンピュータ46は、記憶
装置(データ・リポジトリ48など)に結合49するこ
ともできる。さらに、ゲートウェイ・コンピュータ46
は、1つまたは複数のワークステーション10に直接に
または間接的に結合することができる。
【0030】当業者は、ゲートウェイ・コンピュータ4
6を、無線ネットワーク42から地理的に大きく離れて
配置することができ、同様に、ワークステーション10
を、無線ネットワーク42およびネットワーク44から
かなりの距離に配置することができることを諒解するで
あろう。たとえば、無線ネットワーク42を、米国カリ
フォルニア州に配置し、ゲートウェイ・コンピュータ4
6を、米国テキサス州に配置し、1つまたは複数のワー
クステーション10を、米国ニューヨーク州に配置する
ことができる。ワークステーション10を、TCP/I
P(Transmission Control Protocol/Internet Protoco
l)などのネットワーキング・プロトコルを使用し、セ
ルラ電話、無線ネットワーク、衛星ネットワークなどの
多数の代替接続媒体を介して、無線ネットワーク42に
接続することができる。無線ネットワーク42は、IP
上のTCPまたはUDP(ユーザ・データグラム・プロ
トコル)、X.25、フレーム・リレー、ISDN(サ
ービス総合ディジタル網)、PSTN(公衆交換電話
網)などの通信リンク50aを使用してゲートウェイ・
コンピュータ46に接続されることが好ましい。ワーク
ステーション10は、代替案では、ダイヤル接続による
通信リンク50bまたは50cを使用してゲートウェイ
・コンピュータ46に直接に接続することができる。さ
らに、無線ネットワーク42およびネットワーク44
は、図2に示されたものに類似の形で、1つまたは複数
の他のネットワーク(図示せず)に接続することができ
る。
【0031】本発明を実施するソフトウェア・プログラ
ミング・コードは、通常は、ワークステーション10ま
たはアプリケーション・サーバ47のマイクロプロセッ
サ12によって、CD−ROMドライブまたはハード・
ドライブなどのある種類の長期保管30からアクセスさ
れる。ソフトウェア・プログラミング・コードは、ディ
スケット、ハード・ドライブ、またはCD−ROMなど
のデータ処理システムと共に使用するためのさまざまな
既知の媒体のいずれかで実施することができる。このコ
ードは、そのような媒体上で配布することができ、ま
た、あるコンピュータ・システムのメモリまたは記憶装
置からある種類のネットワークを介して他のコンピュー
タ・システムへ、そのような他のコンピュータ・システ
ムのユーザによる使用のためにユーザに配布することが
できる。その代わりに、プログラミング・コードを、メ
モリ28内で実施し、バス14を使用してマイクロプロ
セッサ12によってアクセスすることができる。ソフト
ウェア・プログラミング・コードをメモリ内または物理
媒体上で実施するか、ネットワークを介してソフトウェ
ア・コードを配布するか、その両方を行う技法および方
法は、周知であり、本明細書ではこれ以上説明しない。
【0032】本発明のユーザは、ワイヤライン(wireli
ne)接続または無線接続を使用して、自分のコンピュー
タをサーバに接続することができる。ワイヤライン接続
とは、ケーブルおよび電話回線などの物理媒体を使用す
る接続であり、無線接続は、衛星リンク、無線電波、お
よび赤外線波などの媒体を使用する。多数の接続技法
を、これらのさまざまな媒体と共に使用することがで
き、コンピュータのモデムを使用して電話回線を介する
接続を確立する、トークン・リングまたはイーサネット
などのLANカードを使用する、セルラ・モデムを使用
して無線接続を確立するなどを行うことができる。ユー
ザのコンピュータは、ラップトップ・コンピュータ、ハ
ンドヘルド・コンピュータ、またはモバイル・コンピュ
ータ、車載装置、デスクトップ・コンピュータ、メイン
フレーム・コンピュータなど、処理機能および通信機能
を有するすべての種類のコンピュータ・プロセッサとす
ることができる。同様に、リモート・サーバは、処理機
能および通信機能を有する多数の異なるタイプのコンピ
ュータのいずれかとすることができる。これらの技法
は、当技術分野で周知であり、それらの使用を可能にす
るハードウェア・デバイスおよびソフトウェアは、簡単
に入手できる。以下では、ユーザのコンピュータを、同
等に「ワークステーション」、「装置」、または「コン
ピュータ」と呼称し、これらの用語のいずれかまたは用
語「サーバ」の使用は、上で説明したいずれかの種類の
計算装置を指す。
【0033】本発明では、行がデータベースに記憶され
るか削除される時に、任意の基礎になるリレーショナル
・データベースについて定義された参照保全性制約に従
って、挿入動作、更新動作、および削除動作を計画的に
順序付ける技法が定義される。本明細書では、主キー列
対外部キー列対によって記述されるデータベース内の関
係する表の間で定義される関係情報およびこれらの列対
に関する保全性規則を使用する順序付けアルゴリズムを
定義する。
【0034】本発明を使用することができる計算環境に
は、インターネット環境、イントラネット環境、エクス
トラネット環境、または他のタイプのネットワーク環境
を含めることができる。これらの環境は、クライアント
・サーバ・アーキテクチャまたは多層アーキテクチャを
使用して構成することができる。本発明は、動作の順序
付けが、データベース・エンジンが配置されるのと同一
の計算機で実行されるか、結果の順序付けされた動作を
データベース・エンジンに送信するためにネットワーク
に接続する前に動作の順序付けが実行される、切断モー
ド(すなわちスタンドアロン・モード)で使用すること
もできる。
【0035】本発明の好ましい実施形態を、図3ないし
18を参照して説明する。
【0036】好ましい実施形態では、本発明は、1つま
たは複数のコンピュータ・ソフトウェア・プログラムと
して実施される。本発明のソフトウェアの実施形態は、
サーバまたはネットワーク内の中間装置で、1つまたは
複数のモジュール(コード・サブルーチンまたは、オブ
ジェクト指向プログラミングで「オブジェクト」とも称
する)として動作することができる。その代わりに、本
明細書で開示される発明的概念から逸脱せずに、ソフト
ウェアがユーザのワークステーションで動作することが
できる。本発明を、リレーショナル・データベースにア
クセスするすべてのシステムならびにリレーショナル・
データベース・エンジンによって使用することができ
る。
【0037】本発明の実施形態は、(i)実行時に排他
的に、または(ii)部分的に実行時の前(たとえば開
発時)に実行される前処理ステップとしておよび部分的
に実行時に、実行することができる。どちらの場合で
も、アプリケーションによって作成される(順序付けら
れていない)変更の組が、データベースに適用される前
に本発明を使用して順序付けられる。順序付けは、デー
タベース・エンジンが常駐するサーバで、クライアント
計算機から変更の組を受け取った後に適用することがで
きる。または、順序付けを、クライアント計算機で適用
し、順序付けられた変更の組を、データベース・エンジ
ンによる直接適用のためにサーバに送ることができる。
場合(i)には、順序付け技法が、アプリケーションが
実行を完了した後に実行されて、そのアプリケーション
によって生成された変更を順序付け、適用する状況が含
まれる。場合(ii)では、特定のアプリケーションに
よって使用される表の間の順序付け関係を、アプリケー
ションを使用して変更を生成する前に、本発明に従っ
て、計画的に判定することができる。
【0038】図3ないし7に、従来技術による、リレー
ショナル・データベース表に記憶されるデータ値の簡単
な例を示す。この例を使用して、本発明の動作を示す。
たとえば、対象の表は、Company(会社)表300、Dep
artment(部署)表310、Employee(従業員)表32
0、Spouse(配偶者)表330、およびAddress(住
所)表340である。Company表300の各行301お
よび302には、単一の会社の情報が格納される。Comp
any表300は、この表にアクセスするための主キーと
して働き、したがって各行の一意の要素であるCompany
Number(会社番号)303によって編成される。この例
では、各行が、会社名のフィールド(列として示され
る)Company Name304も有する。Department表310
は、この表の主キーであるDepartment Number(部署番
号)315によって編成される。各行311、312、
313、および314は、部署名のフィールドDepartme
nt Name316およびこの部署が存在する会社番号のフ
ィールドCompany Number317を有する。Company Numb
er317は、この例では外部キーであり、各部署の行
を、関連する会社を表すCompany表300からの行とリ
ンクする。同様に、Employee表320は、その主キーと
してEmployee Number(従業員番号)325を有し、こ
の表の行をDepartment表310およびSpouse表330に
リンクする外部キー列327および328を有する。Sp
ouse表330は、その主キーとしてSpouse Identifier
(配偶者識別子)335を有し、外部キーを含まない。
Address表340は、主キーとしてAddress Identifier
(住所識別子)345を使用し、外部キー列347を含
む。この外部キー列347の値は、Employee表320の
行を指し、この住所が定義されている従業員を識別する
(図3ないし7で使用される表が、本発明を示すために
簡略化されており、実際のアプリケーションに使用され
る表が、通常は図3ないし7に示されたものよりより多
数のフィールドおよび多数の行を有することは、当業者
に明白であろう)。
【0039】前に述べたように、データベース行に対し
て実行することができる関係演算には、挿入動作、更新
動作、および削除動作の3種類がある。これらの動作タ
イプの間の依存性は次の通りである。 (1)挿入動作は、他の挿入に依存する(すなわち、挿
入される行が、挿入されるもう1つの行を参照する)可
能性があるが、他の種類の動作には依存しない。挿入の
間の依存性の例として、新しい部署の従業員の従業員情
報が、図3ないし7に示されたデータベースに挿入され
ると仮定する。Employee表320は、外部キー列327
についてDepartment表310に依存するので、新しい部
署の行が、その部署の新しい従業員の行の前に挿入され
なければならない。 (2)更新動作は、他の更新には依存しないが、挿入に
依存する(すなわち、ある行が、挿入される行を参照す
るように更新される)可能性がある。更新と挿入の間の
依存性の例として、従業員00050(行322)が部
署E01から部署E10に異動したので、図3ないし7
に示されたデータベースを変更しなければならず、部署
E10が、挿入される新しい部署であると仮定する。こ
の場合、従業員の行322の更新を実行する前に、新し
い部署E10の行を挿入しなければならない。 (3)削除動作は、他の削除に依存する(すなわち、削
除される行が、削除される別の行を参照する)可能性が
あり、更新に依存する(行を更新して、削除される行の
参照を解除しなければならない)可能性がある。削除の
間の依存性の例として、部署E01およびその従業員の
すべてを削除すると仮定する。参照保全性を維持するた
めには、まず従業員の行を削除することが必要であり、
その後、部署の行を削除することができる。削除と更新
の間の依存性の例として、部署E01が削除されるが、
その従業員が削除されないと仮定する。この場合、部署
の行312の削除が発生する前に、この部署のすべての
従業員の行(この例では行322および323)を変更
して、その部署の外部キー列327の値を変更しなけれ
ばならない。
【0040】特定のデータベースの表に関する異なるデ
ータベース動作の間の優先関係が、複雑な前提条件木を
形成する。しかし、動作実行の正しい順序を決定できる
ようになるために、これらの前提条件を完全に解決する
必要はない。その代わりに、挿入動作の間および削除動
作の間でのみ前提条件を解決する必要があり、異なる動
作タイプの間の高水準で解決する必要はあるが、異なる
動作タイプにまたがって個別に解決する必要はない。動
作タイプの間での高水準の動作の解決には、動作を3つ
の相すなわち、まず挿入動作、次に更新動作、最後に削
除動作の順で実行することだけが必要である。この順序
は、上で説明した動作タイプの間の依存性に合わせて調
整されていることがわかる。したがって、おそらく更新
される行によって参照される可能性がある行のすべて
が、すでにデータベース内にあることになるので、挿入
動作を実行した後に更新動作を実行することが安全であ
る。すべての可能な参照解除が更新相中に行われるの
で、更新動作の後に削除動作を実行することができる。
【0041】挿入動作の間の詳細な順序付けを決定する
ために重要な判断基準が、行が挿入される表と、その行
の外部キーによって参照される表である。用語「参照す
る」行または表は、本明細書では、前者を記述するのに
使用され、用語「参照される」行または表は、後者を記
述するのに使用される。図3ないし7の例を使用する
と、外部キー列327(Department Number)を使用し
て、Employee表320内で「従業員Xが部署Yで働いて
いる」関係を示す場合、Employee表320に挿入される
行は、参照する表としてEmployee表、参照される表とし
てDepartment表310を有する。したがって、新しい従
業員00011を、新しい部署E11に挿入する(下で
詳細に説明する図8に示されている)場合、参照する行
は行410であり、参照される行は行420である。し
たがって、行420は、行410が挿入される前にデー
タベースに挿入されなければならない。
【0042】一般に、挿入に関するこの順序付け要件
は、「行を挿入する時に、表A内の参照される行を、表
Bの参照する行の前に挿入しなければならない」と記述
される。すべての参照される行が表Aに挿入されている
場合、表Bの行によって参照される可能性がある表A内
のすべての行が、すでにデータベース内にあるので、表
Bに参照する行を挿入しても安全である。したがって、
挿入動作は、1時に1つの表について実行することがで
き、まず表Aにすべての参照される行を挿入し、その
後、表Bにすべての参照する行を挿入する。したがっ
て、詳細な挿入優先順位は、本発明の技法を使用する時
に、個々の行の間ではなく、表の間で解決するだけでよ
い。
【0043】削除に関する順序付け要件は、「行を削除
する時に、表Bの参照する行を、表Aの参照される行を
削除する前に削除しなければならない」と記述される。
表Bからすべての参照する行を削除した場合、表Bの、
おそらく表Aの行を参照する可能性があるすべての行が
データベースから除去されているので、表Aの参照され
る行を削除しても安全である。したがって、削除動作
は、1時に1つの表について実行することができ、まず
表Bからすべての参照する行を削除し、その後、表Aか
らすべての参照される行を削除する。したがって、詳細
な削除優先順位では、本発明の技法を使用する時に、個
々の行の間ではなく、表の間で解決するだけでよい。
【0044】本発明によって定義される順序付け技法で
は、まず、行を挿入する動作および行を削除する動作の
それぞれについて、影響を受ける表の間で順序付け要件
を判定する(参照される表および参照する表について上
で定義した規則を使用する)。これによって、順序付け
された挿入表リストおよび順序付けされた削除表リスト
(それぞれ図10の要素510および520によって示
される)がもたらされる。影響を受ける行が、その後、
変更される表および実行されるデータベース動作のタイ
プに従ってクラスタ化される。すなわち、挿入動作が、
表によってクラスタ化または分離され、更新動作が、
(厳密には必要でないが、好ましい実施形態によれば表
によって)分離され、削除動作が、表によって分離され
る。これによって、表ごとに3つのリストすなわち、挿
入される行のリスト、更新される行のリスト、および削
除される行のリストがもたらされる(明白であるとお
り、動作タイプごとの個々の表リストは、3つの総合リ
ストに組み合わせることができ、その結果の挿入リスト
および削除リストは、順序付けされた挿入表リストおよ
び順序付けされた削除表リストに従って順序付けされ
る)。
【0045】更新動作を有する表は、上で述べたよう
に、動作順序付けを必要としない。挿入動作および削除
動作について、好ましい実施形態では、ほぼ理想的なア
ルゴリズム(図10および図14ないし16に関して下
で詳細に説明する)を使用して、表の間の詳細な前提条
件を解決する。それぞれの場合で、順序付けアルゴリズ
ムでは、表の2つのリストすなわち、変更が実行される
表の元の順序付けられていないリスト(本明細書では、
同等に未ソート・リストと称する)および順序付けられ
た表リスト(本明細書では同等にソート済みリストと称
する)を使用する。当初、順序付けられた表リストは空
である。順序付けアルゴリズムは、順序付けられていな
いリスト内の表について反復する。反復される表のそれ
ぞれ(「現行表」と称する)が、まず順序付けられた表
リストの末尾に追加される。このアルゴリズムは、その
後、現行表が他の表に対して有する関係(すなわち、そ
れらへまたはそれらからの外部キー)について反復す
る。そのような関係のそれぞれについて、このアルゴリ
ズムは、現行表がその関係で挿入優先順位(挿入順序付
けを実行する時)または削除優先順位(削除順序付けを
実行する時)を有するかどうかをテストする。現行表
が、関係での優先順位を有し、関係する表が、すでに順
序付けられたリストに含まれる(現行表の前の位置に)
場合には、関係する表のそれぞれおよびその下位の優先
順位の関係する表が、再帰的にリストの末尾に移動され
る。順序付けアルゴリズムの完了時に、順序付けられた
リスト内の表の順序は、データベースで定義された参照
保全性規則に対応する、すなわち、ソート済み挿入リス
トが、挿入動作を実行しなければならない順序を規定
し、ソート済み削除リストも同様である。
【0046】現行表は、関係する表が現行表内の主キー
列を参照する外部キー列を有し、この主キー列/外部キ
ー列対に関して定義された制約がある場合に、関係に対
する挿入優先順位を有する。現行表は、現行表が関係す
る表内の主キー列を参照する外部キー列を有し、この主
キー列/外部キー列対に関して定義された制約がある場
合に、関係に対する削除優先順位を有する。
【0047】順序付け相およびクラスタ化相が完了した
後に、ソート済み表リスト内の順序に従って、行の挿
入、更新、および削除を行うことができる。
【0048】この処理の動作を、例に関して説明する。
図8に、図3ないし7のサンプル・データに対して実行
することができる変更を示し、図9に、本発明による順
序付けの後のこれらの変更を示す。図10に、図3ない
し7からの例の表のサブセットと、各表について作成さ
れた動作リストを使用する、本発明に従って実行される
表順序付けの例を示す。
【0049】図8に、図3ないし7の5つの表のデータ
に対して行うことができる7つの代表的な変更の行41
0ないし440を示す。図8および図9で使用される表
フォーマットは、例示を目的とし、本発明と共に使用さ
れる構造を示す目的のものでないことに留意されたい。
さらに、各変更のデータ値のサブセットだけが含まれ、
そのサブセットは、本発明によって使用される関連する
情報を示すものであることに留意されたい。図8の列4
05からわかるように、通常のアプリケーションによっ
て作成される動作のタイプは、混合されている。本発明
による順序付けの後に、動作は、挿入に関する第1の順
序付けられたグループ(420、410、435)、次
に、更新に関する順序付けられていないグループ(この
例では単一の変更の行415だけを含む)、最後に、削
除に関する順序付けられたグループ(440、430、
425)にクラスタ化される。
【0050】図8の列406では、変更によって影響を
受ける表名が識別され、列407では、その表の主キー
値が指定される。したがって、行410では、主キー値
00011(Employee Number325列の)を有する新
しい従業員が、Employee表320に挿入される。列40
8では、この新しい従業員のために使用される外部キー
列327の値が指定され、列409では、この外部キー
が主キーとして定義されている表が識別される(Employ
ee表320の追加の外部キー列328は、図を単純にす
るために行410から省略されているが、図13ないし
17の論理に関して詳細に説明するように、外部キー列
327と同様の形で処理される)。したがって、行41
0の最後の2つの項目は、この新しい従業員が部署E1
1のメンバであることを示す。図4には、この部署番号
の行が含まれておらず、したがって、データベースに行
410を直接に挿入しようと試みると、参照保全性制約
に違反することに留意されたい。しかし、図8の行42
0は、Department表310にこの部署を作成する挿入動
作である。したがって、本発明の順序付け動作は、計画
的に、図9の最初の2つの順序付けられた行(420、
410)によって示されるように、行410の挿入動作
の前に行420の挿入動作が行われるようにし、これに
よって、違反を避ける。行435の残りの挿入動作で
は、従業員番号00012を有する新しい従業員が追加
されるが、この従業員は、部署E21にいるものとして
定義されている。この部署番号は、Department表310
ですでに定義されているので、行435の挿入は、制約
違反を引き起こさない。この挿入の行435は、順序付
けられた挿入動作の3番目として図9に示されている。
しかし、挿入の間(および削除の間)の正確な順序付け
は、必要でないことに留意することが重要である。順序
付け要件は、表によるのであって、特定の表に対する個
々の変更によるのではない。したがって、行410およ
び435(およびEmployee表に対する他の更新)の間の
順序付けは、重要でない。
【0051】行415の更新動作は、図9では、本発明
に従って、更新が挿入の後、削除の前に実行されること
を示すために、行420、410、および435の挿入
動作の後に現れる。複数の更新の間の順序付け(複数の
更新は例に示されてはいないが)は不要である。
【0052】順序付けられた変更の最後のグループが、
削除である。図8の未ソート変更リストには、3つの削
除の行425、430、および440が含まれる。デー
タベースから行を削除する時には、問題の外部キーが、
行を挿入する時と異なる。行を削除するためには、削除
される行の主キーを外部キーとして指定している他の表
の行が存在することができない。図8では、星印を使用
して、この依存性を示す。たとえば、行425では、部
署番号E31を有する部署が、Department表310から
削除される。図3ないし7の残りの表を検査することに
よって、Employee表320が、外部キー列327として
E31を使用する行324を有することがわかる。した
がって、行425の列408および409は、この削除
動作がEmployee表320の従業員00320の行に依存
することを意味する目的のものであり、したがって、削
除動作を実行すると、データベースの参照保全性制約に
違反することになる。しかし、従業員00320の従業
員レコードを先に削除する場合、部署E31の削除は、
この違反をもたらさない。図8の行430は、この従業
員の削除を指定するものであり、したがって、本発明の
方針に基づく順序付け動作によって、これら2つの削除
の間の順序が、図9の順序付けられた行430、425
に示されているように変更される。しかし、従業員00
320の行の削除は、それ自体の制約違反を引き起こす
はずである。行430の列408および409に示され
ているように、この従業員00320は、Address表3
40からの行との依存性関係を有する。というのは、行
341が、(主キー値AD001を使用して)その外部
キー列347からこの従業員を参照しているからであ
る。図8の行440は、この住所の行341の削除動作
である。図3ないし7の表のどの行も、この住所の行3
41に依存しないので、列408および409は、この
削除動作の行440に関する前提条件がないことを示す
ために空白のままにされていた。したがって、3つの削
除動作の最終的な順序は、図9に示されているように4
40、430、425であり、この順序は、Address
表、Employee表、およびDepartment表の間の関係に基づ
いて判定された。
【0053】Employee表、Address表、およびDepartmen
t表を、図3ないし7のデータベースの例からのサブセ
ットと見なし(残りの表と外部キーを無視し)て、図1
0に、これらの表の間の順序付けが本発明に従ってどの
ように実行されるかを示す。図8および図9の例の動作
に関して述べたように、外部キー列327および347
のゆえに、これらの表の間に依存性関係が存在する。挿
入に関する参照する表/参照される表の順序を使用し
て、本発明は、挿入に関する正しい順序付けが、まずDe
partment511、次にEmployee512、最後にAddress
513であると判定する。削除に関する参照する表/参
照される表の順序を使用すると、これらの表の順序は、
Address521、Employee522、およびDepartment5
23に逆転する。図10には、表ごとに3つの動作リス
トが作成されることも示されている。Employee表501
に対して実行される変更に関して、3つのリストは、挿
入される従業員情報のすべてを含むリスト531、従業
員更新に関するリスト532、および削除される従業員
に関するリスト533である。類似するリスト541な
いし543および551ないし553が、それぞれAddr
ess表502およびDepartment表503について作成さ
れる。個々のリスト内では、順序付けは不要であり、こ
れによって、本発明の動作が、参照保全性を維持するた
めの非常に効率的な解決策になる。
【0054】図11および図12に、それぞれ、図3な
いし7の例のデータベースの5つの表の組全体およびそ
れらの図に示された外部キー関係のすべてを使用して実
行される挿入順序付けおよび削除順序付けを示す。アプ
リケーション・プログラムが、これらの図の左欄に示さ
れた順序で動作のグループを作成し、Address表に影響
する動作(601)が最初であり、Employee表に対する
動作(602)、Department表に対する動作(60
3)、Spouse表に対する動作(604)、およびCompan
y表に対する動作(605)が続くと仮定する。矢印6
11ないし614は、図3ないし7の例による、これら
の表の間の外部キー関係を示す。検査からわかるよう
に、本発明の参照する/参照される規則は、挿入動作を
適用する表順序が、Company621、Department62
2、Spouse623、Employee624、およびAddress6
25であることを必要とする。図12の右欄に示された
削除順序では、これらの表が逆の順序で配置される。
【0055】本発明の順序付け技法の好ましい実施形態
を実施するのに使用することができる論理を、図13な
いし18と、図10の例の表に関して詳細に説明する。
この説明では、行われる変更(挿入、更新、および削
除)を、情報の「タプル」と称する。
【0056】図13に、本発明の順序付け技法の好まし
い実施形態の主高水準フローの論理を示す。処理は、ブ
ロック700で開始され、ここで、挿入に使用される表
順序が判定される。この処理を、図14で詳細に説明す
る。図10を参照すると、ブロック700で、挿入順序
付け情報であるDepartment511、Employee512、お
よびAddress513が作成される。次に、削除に使用さ
れる表順序を判定する(ブロック710)が、この削除
順序付けは、図14の論理によって説明する。これによ
って、図10の削除順序付け情報であるAddress52
1、Employee522、およびDepartment523が作成さ
れる(明白なとおり、ブロック700およびブロック7
10を実行する順序は、結果を変更せずに逆転すること
ができる)。その後、アプリケーション・プログラムに
よって作成されたタプルを、表および動作タイプによっ
てクラスタ化する(ブロック720)。図17で、この
処理を詳細に説明する。図10の図を参照すると、ブロ
ック720のクラスタ化では、タプルが適当なリスト5
31ないし533、541ないし543、または551
ないし553に置かれる。これらのリストは、リンク・
リスト構造を使用して作成されることが好ましい。参照
保全性制約に違反しないようにタプルが順序付けられた
ので、ブロック730、740、および750で、デー
タベースでの行の挿入、更新、および削除の動作を(こ
の特定の順番で)適用する。図13には、ブロック72
0ないし750が1回だけ行われるものとして図示され
ているが、特定のアプリケーションのための実施形態
で、これらのブロックの反復繰り返しを選択することが
できることに留意されたい。たとえば、対話的に変更を
行うユーザによって駆動されるアプリケーションは、そ
のアプリケーションが終了するまで、制御が図13のブ
ロック750からブロック720に返されるようにし
て、データベースに対する生成された変更を周期的に適
用することができる。もう1つの例として、トランザク
ション指向アプリケーションと共に使用される時に、ブ
ロック720ないし750の処理を、各トランザクショ
ンの完了時に実行して、トランザクションの有効範囲中
に生成された変更を適用することができる。図13を変
更してこの代替反復手法を実施する方法は、当業者には
明白であろう。
【0057】各動作タイプの個々のタプルについて、変
更の適用を、従来技術の技法を使用して実行することが
でき、したがって、ブロック730、740、および7
50の論理を詳細に説明しなかったことに留意された
い。すなわち、挿入動作が表によって正しく順序付けら
れた後に、各挿入を、既存の技法を使用して順番に適用
することができ、更新および削除についても同様であ
る。本発明の長所は、複数の動作が1回でデータベース
に書き込まれるバッチモード記憶動作を実行することが
できることである。バッチモード書込機能は、従来技術
に存在するが、参照保全性制約を有するデータベース表
と共に使用されることはほとんどない。というのは、従
来技術に、制約に違反しないように表の任意のグループ
に関して複数の書込動作を順序付ける方法を計画的に決
定する技法がないからである(また、表の特定の組に関
する順序付けを実施する論理を手作業でコーディングす
ることが、極端に難しく、誤りをおかしやすいからであ
る)。
【0058】図14の論理は、本発明による、参照保全
性制約に違反しない、正しい表順序付けを判定するのに
使用される論理の好ましい実施形態を示すものである。
図15に、図14が図13のブロック700から呼び出
される時に使用される、挿入動作に関する表の優先順位
を判定するアルゴリズムを示す。図16に、図14がブ
ロック710から呼び出される時に使用される、削除動
作に関する表の優先順位を判定するのに使用される同様
のアルゴリズムを示す。これらの異なるアルゴリズム
は、たとえば図14の論理が挿入の処理または削除の処
理のどちらのために呼び出されたかを示すフラグをセッ
トすることによって、ブロック835から選択的に呼び
出されることが好ましい(その代わりに、図14の論理
を、挿入と削除について複製することができ、この場合
には、図15および図16の論理を、適用可能なコピー
に組み込むことができる)。
【0059】図14の処理は、変更が適用される入力表
の順序付けられていないリストから開始される(この情
報は、生成されたタプルまたはデータベース・スキーマ
の知識から抽出することができる)。図10の図を参照
して、元の未ソート表順序が、Employee表501、Addr
ess表502、およびDepartment表503であると仮定
する(上で述べたように、挿入に関する結果の順序は、
Department511、Employee512、およびAddress5
13になり、削除に関する結果の順序は、521、52
2、および523になる)。ブロック800で、この順
序付けられていない入力リストの最初の表を指すように
現行表ポインタをセットする。ブロック805で、この
表の識別子を、図14の出力として生成される(当初は
空である)順序付けされたリストの末尾に追加する。図
10の例では、現行ポインタは、Employee表を指し、順
序付けられていないリストには、Address表およびDepar
tment表だけが含まれ、順序付けされたリストに、Emplo
yee表が含まれる。
【0060】ブロック810で、現行表が関係を有する
かどうかを検査する。本明細書で使用する「関係」は、
現行表内に存在するものとして定義された外部キーなら
びに他の表内で定義され、現行表を参照する外部キーを
指す。したがって、現行のEmployee表について、2つの
関係すなわち、Departmentとの1つの関係およびAddres
sとの1つの関係があり、したがって、ブロック810
は、肯定の結果を有する。制御はブロック830に移
り、ここで、現行データベース・スキーマの表に関する
関係リスト(図14では「r.s.リスト」と称する)
から、現行表を含む最初の関係を得る。この関係リスト
は、順序付けられないものとすることができ、特定のス
キーマで表の間の関係を判定するための、当技術分野で
既知の技法を使用して得ることができる。図18に、図
10の表および関係に対応するスキーマを示す。図18
では、第1の関係1205、1206が、表1200の
列1203と表1220の列1222の間で定義され、
第2の関係1210、1211が、表1200の列12
01と表1230の列1232の間で定義されている。
【0061】現行表に関する関係がない時には、評価す
る必要がある順序付け制約がなく、したがって、制御
は、単純にブロック810からブロック815に移る。
これによって、この表の詳細な順序付け論理の動作がバ
イパスされ、この表は順序付けされた出力リストのこの
位置にとどまる。
【0062】この例では、Employeeを含む最初の(した
がって現行の)関係が、Employee(「現行」表)とDepa
rtment(したがって「関係する」表)の間の関係である
と仮定する。その場合、ブロック835が、挿入動作と
削除動作のどちらを実行するかに応じて図15または図
16の論理を呼び出して、現行表が現行の関係に対する
優先順位を有するかどうかを判定する。
【0063】挿入処理が実行される場合には、次に図1
5のブロック900を実行する。ブロック900では、
現行関係が制約を有するかどうかを尋ねる。例のEmploy
ee対Department関係の場合、部署番号に対する制約(外
部キー列327を使用する)がある。したがって、ブロ
ック900は肯定の結果を有し、制御はブロック920
に移る(制約がない時には、ブロック900は否定の結
果を有し、ブロック910で、図14の呼出し元論理に
否定の回答を返す)。その後、ブロック920で、関係
する表が現行関係に関して外部キーを有するかどうかを
検査する。この例では、外部キーは、現行表であるEmpl
oyee表内にあり、関係するDepartment表内にはなく、そ
の結果、ブロック920は否定の結果を有する。結果が
否定の時には、ブロック940で、ブロック835に否
定の回答を返す(そうでない場合には、ブロック930
で肯定の回答を返す)。
【0064】比較からわかるように、図16の削除処理
は、図15の挿入処理とほとんど同一である。削除処理
でも、現行関係の制約があるかどうかを検査し(ブロッ
ク1000)、ない場合にはブロック835に否定の回
答を返す。しかし、ブロック1020のテストでは、ブ
ロック920で現行関係の外部キーが関係する表内にあ
るかどうかを尋ねたのに対して、現行関係の外部キー
が、現行表内にあるかどうかを尋ねる。したがって、順
序付けらていないEmployee表501、Address表50
2、およびDepartment表503に関する削除処理を実行
し、Employee対Department関係を評価する(図15に関
して上で説明した)時には、ブロック1020は、この
関係によって使用される外部キー列327が、現行(Em
ployee)表内に存在するので、肯定の結果を有する。図
16の残りの論理は、図15の論理と同一である。
【0065】ここで図14のブロック835の処理に戻
って、図15(削除を処理する時には図16)から否定
の回答が返される場合には、制御はブロック840に移
り、現行表のすべての関係をすでに処理したかどうか
(すなわち、関係リストの終りに達したかどうか)を検
査する。そうでない場合には、制御はブロック860に
移る。Employee対Department関係では、挿入処理に関し
て否定の結果が返されるので、この例では、ブロック8
35に制御が戻った後にブロック840が実行される。
ブロック840は、この時点で否定の結果を有する。と
いうのは、現行Employee表を含むもう1つの関係がある
からであり、その関係は、Employee表とAddress表の間
の関係である。したがって、ブロック845で、関係リ
ストからこの関係を得、その後、ブロック835で、現
行表がこの特定の関係で優先順位を有するかどうかを判
定する。挿入処理についてもう一度図15を参照する
と、現行のEmployee対Address関係は制約を有し、した
がって、ブロック900のテストが肯定の結果を有す
る。この場合、評価される関係で、Address表340の
外部キー列347が使用されている。Address表は、図
15のこの呼出しでの関係する表であり、したがって、
ブロック920が肯定の結果を有し、ブロック930で
ブロック835に肯定の回答が返されることになる。
【0066】もう一度ブロック835に戻って、この例
の第2の関係評価に関して返される肯定の結果が、ブロ
ック860への制御の移動を引き起こす。ブロック86
0では、関係する表が、作成中の順序付けられたリスト
にすでに含まれるかどうかを尋ねる。この例では、この
時点で、順序付けられたリストにEmployee表だけが含ま
れ、関係するAddress表は含まれないので、ブロック8
60は否定の結果を有し、制御はブロック840に戻
る。ブロック840では、関係リストに、まだ評価され
ていない現行表に関する関係があるかどうかをもう一度
検査する。評価すべき関係がない場合、この例ではこの
時点でそうなるが、制御はブロック815に移り、図1
4によって使用されているスタックが空であるかどうか
を検査する。まだスタックに何もプッシュしていないの
で、このテストはこの例では肯定の結果を有し、処理は
ブロック820で継続される。ブロック820では、順
序付けられていないリストが空であるかどうかを訪ねる
が、これは、そのリストが完全に処理された時に真にな
る。このテストの結果が肯定である場合には、図14の
動作は、それが呼び出された目的である挿入処理または
削除処理に関して完了し、制御は図13の呼出し元論理
に戻る。
【0067】ブロック820が否定の結果を有する時に
は、順序付けられていない入力リストから処理しなけれ
ばならない表がまだある。したがって、ブロック825
で、順序付けられていないリストからの次の表を指すよ
うに現行表ポインタをセットし、ブロック805で、順
序付けられていないリストから、作成中の順序付けられ
た出力リストの末尾へ表を移動する。この例では、現行
表ポインタが、Address表を指し、順序付けられていな
いリストに、Department表だけが含まれ、順序付けられ
たリストに、Employee表およびAddress表が含まれる
(当業者に明白であるように、本明細書でのあるリスト
から別のリストへの「表の移動」への言及は、表の識別
子の移動、またはこれと同等に、表へのポインタまたは
表の識別子の移動の短縮表記を意図するものである)。
現行表(Address)は、Employee表に対する単一の関係
を有し、したがって、ブロック810は、肯定の結果を
有する。ブロック830、835、840、815、お
よび820が、前に説明したように実行され、ブロック
835での呼出しから図15のブロック900、92
0、および940が実行され、否定の結果が返される。
ブロック820は、この例ではやはり否定の結果を有
し、ブロック825で、順序付けされないリストの次の
表(最後の表でもあるDepartment)を指すように現行表
ポインタをセットする。その後、ブロック805をもう
一度実行し、Department表を順序付けされたリストの末
尾に移動する。したがって、順序付けされないリストは
空になり、順序付けられたリストにはEmployee、Addres
s、およびDepartmentが含まれる。
【0068】Department表について、Employeeとの1つ
の関係とAddressとの1つの関係の2つの関係が存在す
る。したがって、ブロック810は、肯定の結果を有す
る。Department対Employeeの関係を評価する時に、ブロ
ック835は、肯定の結果を有し、処理はブロック86
0に達する。ブロック860は、関係する表(Employe
e)がすでに順序付けられたリストにあるので、やはり
肯定の結果を有する。したがって、ブロック865で、
図14のために使用されるスタックに現行表(Departme
nt)をプッシュし、ブロック870で、現行表ポインタ
を変更し、その結果、現行表ポインタが、関係する(Em
ployee)表を指すようになる。ブロック805は、現行
(Employee)表を、順序付けられたリスト内のその既存
の位置から順序付けられたリストの末尾に移動し、これ
は、スタックにプッシュされたばかりの表と現行表の間
の関係に従ってリストを順序付けるという効果を有す
る。この例では、この時点で、順序付けられたリストに
Address、Department、およびEmployeeが含まれ、Emplo
yeeは、リスト内でDepartmentより後の位置(したがっ
て、挿入に関するより低い優先順位)に移動されてい
る。
【0069】その後、ブロック810、830、および
835をもう一度実行し、今回は、Employee対Departme
nt関係を評価し、図15から否定の結果が返される。そ
の後、ブロック840および845を実行し、Employee
対Address関係を得る。この関係について、ブロック8
35は、肯定の結果を有し、制御は再びブロック860
に達する。ブロック860では、関係するAddress表が
すでに順序付けられたリストにあることが検出され、し
たがって、ブロック865で、現行Employee表がスタッ
クにプッシュされる(スタックには、EmployeeとDepart
mentが含まれる)。その後、ブロック870および80
5で、Address表が、順序付けられたリストの一番前の
既存の位置から移動されて、リストの末尾の最後の項目
になる。この例の順序付けられたリストは、図10のDe
partment511、Employee512、およびAddress51
3に示されているように、挿入に関して正しい順序にな
っている。
【0070】図14の処理が、この例に関して終了する
形を、これから手短に説明する。Address対Employee関
係が評価され、ブロック835で否定の結果を有する。
これはAddressに関する唯一の関係なので、ブロック8
40からブロック815に制御が移される。この時点
で、スタックには2つの項目があり、したがって、制御
はブロック815からブロック850に移され、ここ
で、一番上の要素(Employee)をポップし、現行表にす
る。制御はブロック840に戻り、ここで、Employeeに
関するすべての関係が、Employeeがスタックにプッシュ
された前の処理サイクル中にすでに処理されていること
が判定される。しかし、スタックのプッシュ動作が、現
行表の最後の関係でない関係のゆえに発生した場合に
は、ブロック840が、否定の結果を有し、制御はブロ
ック845に移って、その表の残りの関係の処理を開始
する。Employeeについて評価すべき関係がもうないこと
の検出によって、制御が再びブロック815に移り、次
にブロック850に移り、ここで、Department表が、ス
タックからポップされ、現行表にされる。Employeeと同
様に、Departmentは、その最後の関係の評価中にスタッ
クにプッシュされたので、ブロック840は、肯定の結
果を有し、制御は再びブロック815に達する。スタッ
クはこの時空なので、制御はブロック820に移り、順
序付けられていないリストが空であることが検出され
る。その後、制御は図13のブロック700に戻り、任
意のデータベース・スキーマの表に関する正しい挿入順
序が、計画的に決定されている。
【0071】図14に示した順序付けアルゴリズムは、
通常はネットワーク構造を形成する、表の間の関係情報
をとりあげ、関連する情報のフラット化された順次表現
を生成するのに使用することができる手法の1つにすぎ
ないことに留意されたい。テーブルの対の間の、関係全
体ではなく制約だけを考慮することによって、このネッ
トワークを木として扱うことができる。したがって、循
環が存在することが不可能になる。図14で説明した手
法は、木をフラット化されたリストに変換する比較的単
純直裁な技法であり、したがって、好ましい実施形態と
して使用される。その代わりに、本明細書で開示される
発明的概念から逸脱せずに、木をフラット化されたリス
トに変換する他の手法を使用することができる。たとえ
ば、上で説明したように、2つの表の間の順序付けを実
施するために、表を順序付けられたリストの末尾に移動
するのではなく、表が、それが依存する表の直後になる
ように表を移動する、より複雑な手法を使用することが
できる。
【0072】ブロック700および710が完了した後
に、挿入順序付けおよび削除順序付けが決定されてい
る。本発明が、前に述べたように部分的に前処理ステッ
プとして使用され、部分的に実行時に使用される時に
は、前処理に、この順序付けの決定が(まず、前に述べ
た従来技術の技法を使用して、対象のスキーマの表およ
び関係を判定した後に)含まれる。クラスタ化処理(そ
の次に図13のブロック720から呼び出されるものと
して図示)およびデータベースを変更するためにアプリ
ケーション・プログラムによって生成されたタプルを適
用するための動作の実行(ブロック730ないし75
0)は、実行時に行われる(または、変更のクラスタ化
および適用を、アプリケーションがその実行時処理を完
了した後に適用することができる)。
【0073】図17に移って、本発明の好ましい実施形
態によって、タプルを適当なリスト(図10の531な
いし533、541ないし543、または551ないし
553など)に入れるのに使用されるクラスタ化技法を
説明する。この処理に入る際に、データベースに対して
行われる変更を表すタプルの順序付けられていないリス
トが、アプリケーション・プログラムによって作成され
ている。たとえば、トランザクション指向アプリケーシ
ョンと共に使用される時には、この論理を、各トランザ
クションの完了時に呼び出して、前に説明したように、
トランザクションの有効範囲中に生成された変更を実行
することができる。その場合には、タプル・リストが、
そのトランザクションに関する変更を表す。または、図
17の論理が、アプリケーションが完了した時に限って
呼び出される場合には、タプル・リストに、アプリケー
ションの全有効範囲中に生成されたすべての変更が含ま
れる。
【0074】ブロック1100で、タプル・リストから
最初の要素を得、ブロック1110で、このタプルによ
って影響される表(すなわち、タプルでその主キー値が
指定されている表)を判定する。ブロック1140で、
タプルが挿入動作に関するものであるかどうかを尋ね
る。そうである場合には、ブロック1150で、ブロッ
ク1110で決定された表の挿入リストにタプルを追加
する。そうでない場合には、ブロック1160で、タプ
ルが削除動作に関するものであるかどうかを尋ねる。こ
の場合、ブロック1170で、適当な表の削除リストに
タプルを追加し、そうでない場合には、ブロック118
0で、適当な表の更新リストにタプルを追加する。前に
述べたように、本発明の長所は、特定の表についてリス
ト内の順序付けが不要であり、したがって、図17のク
ラスタ化論理が高速かつ効率的であることである。タプ
ルを適当なリストに追加した後に、制御はブロック11
30に達し、ここで、すべてのタプルを処理したかどう
かを調べるために検査する。そうである場合には、図1
7の処理が完了し、制御は呼出し元の論理(図13のブ
ロック720)に戻る。そうでない場合には、ブロック
1120で、タプル・リストから次の要素を得、ブロッ
ク1130が否定の結果を有するまで、説明した形で各
タプルを適当なリストに追加する処理を継続する。
【0075】上で示したように、本発明は、任意のリレ
ーショナル・データベースに対して実行される動作を計
画的に順序付けると同時に、そのデータベースの表の間
の参照保全性を自動的に維持する、効率的な技法を提供
する。この技法は、データベース・エンジン自体で使用
することができる。アプリケーションは、アプリケーシ
ョン自体の変更を必要とせずに、方針に基づく順序付け
技法を有利に利用することができる。Enterprise JavaB
eansと共に使用される時には、この技法によって、コン
テナをパーシスタンス機構から独立にすることが可能に
なり、コンテナがパーシスタンス実現方法の詳細を知る
必要がなくなる。さらに、変更タプルが、本発明を使用
する時に表によってクラスタ化されるので、特定の表に
対して実行されるすべての変更を知ることが可能になる
(この「ビッグ・ピクチャ」ビューが使用可能でない従
来技術の技法と対照的に)。この技法では、バッチ書込
動作の使用も可能になり、従来技術で一般的な手法(す
なわち、書込の間の順序を解決するという複雑な問題を
避けるためにデータベース・エンジンに各書込動作を別
々に送る手法)と比較して、非常に改善された性能がも
たらされる。バッチ書込動作を使用する時には、ネット
ワーク・ラウンドトリップの数を、再悪条件シナリオの
(3×表の数)まで減らすことができる。ここで、3
は、異なる動作タイプの数を表す(1タイプの動作だけ
が実行される時には、ラウンドトリップの数を、影響さ
れる表の数まで減らすことができる)。
【0076】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0077】(1)リレーショナル・データベースの参
照保全性を維持するために、前記データベースに対して
実行される動作を計画的に順序付けるコンピュータ・プ
ログラムであって、前記コンピュータ・プログラムが、
コンピュータを、前記データベースの複数の表の間の挿
入順序を判定する手段と、前記データベースの前記複数
の表の間の削除順序を判定する手段と、前記データベー
スに対して行われる複数の変更のそれぞれによって実行
される動作に従い、前記変更のそれぞれによって影響さ
れる前記表の特定の1つに従って、前記複数の変更をク
ラスタ化する手段と、前記クラスタ化された変更を前記
データベースに適用する手段であって、さらに、まず、
前記挿入順序に従って、前記動作が挿入である前記クラ
スタ化された変更のすべてを適用する手段と、次に、前
記動作が更新である前記クラスタ化された変更のすべて
を適用する手段と、最後に、前記削除順序に従って、前
記動作が削除である前記クラスタ化された変更のすべて
を適用する手段とを含む、前記クラスタ化された変更を
前記データベースに適用する手段として機能させるため
のコンピュータ・プログラム。 (2)前記動作が更新である前記クラスタ化された変更
が、任意の順序で適用される、上記(1)に記載のコン
ピュータ・プログラム。 (3)前記挿入順序を判定する前記手段の動作および前
記削除順序を判定する前記手段の動作を、前記クラスタ
化する手段の動作および前記適用する手段の動作の前の
時に実行することができる、上記(1)に記載のコンピ
ュータ・プログラム。 (4)前記コンピュータ・プログラムが、リレーショナ
ル・データベース・エンジンで動作する、上記(1)に
記載のコンピュータ・プログラム。 (5)前記コンピュータ・プログラムが、前記変更を生
成するアプリケーション・プログラムと別に動作する、
上記(1)に記載のコンピュータ・プログラム。 (6)前記クラスタ化する手段の動作および前記適用す
る手段の動作が、後続の複数の変更のそれぞれについて
繰り返して実行される、上記(1)に記載のコンピュー
タ・プログラム。 (7)前記適用する手段が、バッチ書込モードで実行さ
れる、上記(1)に記載のコンピュータ・プログラム。 (8)前記挿入順序を判定する前記手段が、さらに、前
記表の選択された1つのそれぞれについて、1つまたは
複数の関係する表を識別する手段と、前記選択された表
および前記関連する表のそれぞれの間で、挿入優先順位
を判定する手段と、前記選択された表がそれに関する挿
入優先順位を有する前記関連する表の前に前記選択され
た表を順序付け、前記選択された表がそれに関する挿入
優先順位を有しない前記関連する表の後に前記選択され
た表を順序付ける手段とを含む、上記(1)に記載のコ
ンピュータ・プログラム。 (9)前記削除順序を判定する前記手段が、さらに、前
記表の選択された1つのそれぞれについて、1つまたは
複数の関係する表を識別する手段と、前記選択された表
および前記関連する表のそれぞれの間で、削除優先順位
を判定する手段と、前記選択された表がそれに関する削
除優先順位を有する前記関連する表の前に前記選択され
た表を順序付け、前記選択された表がそれに関する削除
優先順位を有しない前記関連する表の後に前記選択され
た表を順序付ける手段とを含む、上記(1)に記載のコ
ンピュータ・プログラム。 (10)前記挿入優先順位を判定する前記手段が、さら
に、前記選択された表および前記関係する表の各特定の
1つについて、前記選択された表と前記特定の関係する
表との間の関係が制約を有するかどうかを判定する手段
と、前記制約が存在する時に、前記制約の外部キーが前
記特定の関係する表内に配置されているかどうかを判定
する手段と、前記制約が存在しない時、または前記外部
キーが前記特定の関係する表内に配置されていない時
に、前記選択された表が前記挿入優先順位を有しないと
結論する手段と、前記外部キーが前記特定の関係する表
内に配置されている時に、前記選択された表が前記挿入
優先順位を有すると結論する手段とを含む、上記(8)
に記載のコンピュータ・プログラム。 (11)前記削除優先順位を判定する前記手段が、さら
に、前記選択された表および前記関係する表の各特定の
1つについて、前記選択された表と前記特定の関係する
表との間の関係が制約を有するかどうかを判定する手段
と、前記制約が存在する時に、前記制約の外部キーが前
記選択された表内に配置されているかどうかを判定する
手段と、前記制約が存在しない時、または前記外部キー
が前記選択された表内に配置されていない時に、前記選
択された表が前記削除優先順位を有しないと結論する手
段と、前記外部キーが前記選択された表内に配置されて
いる時に、前記選択された表が前記削除優先順位を有す
ると結論する手段とを含む、上記(9)に記載のコンピ
ュータ・プログラム。 (12)コンピュータ環境内でリレーショナル・データ
ベースの参照保全性を維持するために、前記データベー
スに対して実行される動作を計画的に順序付けるシステ
ムであって、前記データベースの複数の表の間の挿入順
序を判定する手段と、前記データベースの前記複数の表
の間の削除順序を判定する手段と、前記データベースに
対して行われる複数の変更のそれぞれによって実行され
る動作に従い、前記変更のそれぞれによって影響される
前記表の特定の1つに従って、前記複数の変更をクラス
タ化する手段と、前記クラスタ化された変更を前記デー
タベースに適用する手段であって、さらに、まず、前記
挿入順序に従って、前記動作が挿入である前記クラスタ
化された変更のすべてを適用する手段と、次に、前記動
作が更新である前記クラスタ化された変更のすべてを適
用する手段と、最後に、前記削除順序に従って、前記動
作が削除である前記クラスタ化された変更のすべてを適
用する手段とを含む、前記クラスタ化された変更を前記
データベースに適用する手段とを含むシステム。 (13)前記動作が更新である前記クラスタ化された変
更が、任意の順序で適用される、上記(12)に記載の
システム。 (14)前記挿入順序を判定する前記手段の動作および
前記削除順序を判定する前記手段の動作を、前記クラス
タ化する手段の動作および前記適用する手段の動作の前
の時に実行することができる、上記(12)に記載のシ
ステム。 (15)前記システムが、リレーショナル・データベー
ス・エンジンで動作する、上記(12)に記載のシステ
ム。 (16)前記システムが、前記変更を生成するアプリケ
ーション・プログラムと別に動作する、上記(12)に
記載のシステム。 (17)前記クラスタ化する手段の動作および前記適用
する手段の動作が、後続の複数の変更のそれぞれについ
て繰り返して実行される、上記(12)に記載のシステ
ム。 (18)前記適用する手段が、バッチ書込モードで実行
される、上記(12)に記載のシステム。 (19)前記挿入順序を判定する前記手段が、さらに、
前記表の選択された1つのそれぞれについて、1つまた
は複数の関係する表を識別する手段と、前記選択された
表および前記関連する表のそれぞれの間で、挿入優先順
位を判定する手段と、前記選択された表がそれに関する
挿入優先順位を有する前記関連する表の前に前記選択さ
れた表を順序付け、前記選択された表がそれに関する挿
入優先順位を有しない前記関連する表の後に前記選択さ
れた表を順序付ける手段とを含む、上記(12)に記載
のシステム。 (20)前記削除順序を判定する前記手段が、さらに、
前記表の選択された1つのそれぞれについて、1つまた
は複数の関係する表を識別する手段と、前記選択された
表および前記関連する表のそれぞれの間で、削除優先順
位を判定する手段と、前記選択された表がそれに関する
削除優先順位を有する前記関連する表の前に前記選択さ
れた表を順序付け、前記選択された表がそれに関する削
除優先順位を有しない前記関連する表の後に前記選択さ
れた表を順序付ける手段とを含む、上記(12)に記載
のシステム。 (21)前記挿入優先順位を判定する前記手段が、さら
に、前記選択された表および前記関係する表の各特定の
1つについて、前記選択された表と前記特定の関係する
表との間の関係が制約を有するかどうかを判定する手段
と、前記制約が存在する時に、前記制約の外部キーが前
記特定の関係する表内に配置されているかどうかを判定
する手段と、前記制約が存在しない時、または前記外部
キーが前記特定の関係する表内に配置されていない時
に、前記選択された表が前記挿入優先順位を有しないと
結論する手段と、前記外部キーが前記特定の関係する表
内に配置されている時に、前記選択された表が前記挿入
優先順位を有すると結論する手段とを含む、上記(1
9)に記載のシステム。 (22)前記削除優先順位を判定する前記手段が、さら
に、前記選択された表および前記関係する表の各特定の
1つについて、前記選択された表と前記特定の関係する
表との間の関係が制約を有するかどうかを判定する手段
と、前記制約が存在する時に、前記制約の外部キーが前
記選択された表内に配置されているかどうかを判定する
手段と、前記制約が存在しない時、または前記外部キー
が前記選択された表内に配置されていない時に、前記選
択された表が前記削除優先順位を有しないと結論する手
段と、前記外部キーが前記選択された表内に配置されて
いる時に、前記選択された表が前記削除優先順位を有す
ると結論する手段とを含む、上記(20)に記載のシス
テム。 (23)リレーショナル・データベースの参照保全性を
維持するために、前記データベースに対して実行される
動作を計画的に順序付ける方法であって、前記データベ
ースの複数の表の間の挿入順序を判定するステップと、
前記データベースの前記複数の表の間の削除順序を判定
するステップと、前記データベースに対して行われる複
数の変更のそれぞれによって実行される動作に従い、前
記変更のそれぞれによって影響される前記表の特定の1
つに従って、前記複数の変更をクラスタ化するステップ
と、前記クラスタ化された変更を前記データベースに適
用するステップであって、さらに、まず、前記挿入順序
に従って、前記動作が挿入である前記クラスタ化された
変更のすべてを適用するステップと、次に、前記動作が
更新である前記クラスタ化された変更のすべてを適用す
るステップと、最後に、前記削除順序に従って、前記動
作が削除である前記クラスタ化された変更のすべてを適
用するステップとを含む、前記クラスタ化された変更を
前記データベースに適用するステップとを含む方法。 (24)前記動作が更新である前記クラスタ化された変
更が、任意の順序で適用される、上記(23)に記載の
方法。 (25)前記挿入順序を判定する前記ステップの動作お
よび前記削除順序を判定する前記ステップの動作を、前
記クラスタ化するステップの動作および前記適用するス
テップの動作の前の時に実行することができる、上記
(23)に記載の方法。 (26)前記方法が、リレーショナル・データベース・
エンジンで動作する、上記(23)に記載の方法。 (27)前記方法が、前記変更を生成するアプリケーシ
ョン・プログラムと別に動作する、上記(23)に記載
の方法。 (28)前記クラスタ化するステップの動作および前記
適用するステップの動作が、後続の複数の変更のそれぞ
れについて繰り返して実行される、上記(23)に記載
の方法。 (29)前記適用するステップが、バッチ書込モードで
実行される、上記(23)に記載の方法。 (30)前記挿入順序を判定する前記ステップが、さら
に、前記表の選択された1つのそれぞれについて、1つ
または複数の関係する表を識別するステップと、前記選
択された表および前記関連する表のそれぞれの間で、挿
入優先順位を判定するステップと、前記選択された表が
それに関する挿入優先順位を有する前記関連する表の前
に前記選択された表を順序付け、前記選択された表がそ
れに関する挿入優先順位を有しない前記関連する表の後
に前記選択された表を順序付けるステップとを含む、上
記(23)に記載の方法。 (31)前記削除順序を判定する前記ステップが、さら
に、前記表の選択された1つのそれぞれについて、1つ
または複数の関係する表を識別するステップと、前記選
択された表および前記関連する表のそれぞれの間で、削
除優先順位を判定するステップと、前記選択された表が
それに関する削除優先順位を有する前記関連する表の前
に前記選択された表を順序付け、前記選択された表がそ
れに関する削除優先順位を有しない前記関連する表の後
に前記選択された表を順序付けるステップとを含む、上
記(23)に記載の方法。 (32)前記挿入優先順位を判定する前記ステップが、
さらに、前記選択された表および前記関係する表の各特
定の1つについて、前記選択された表と前記特定の関係
する表との間の関係が制約を有するかどうかを判定する
ステップと、前記制約が存在する時に、前記制約の外部
キーが前記特定の関係する表内に配置されているかどう
かを判定するステップと、前記制約が存在しない時、ま
たは前記外部キーが前記特定の関係する表内に配置され
ていない時に、前記選択された表が前記挿入優先順位を
有しないと結論するステップと、前記外部キーが前記特
定の関係する表内に配置されている時に、前記選択され
た表が前記挿入優先順位を有すると結論するステップと
を含む、上記(30)に記載の方法。 (33)前記削除優先順位を判定する前記ステップが、
さらに、前記選択された表および前記関係する表の各特
定の1つについて、前記選択された表と前記特定の関係
する表との間の関係が制約を有するかどうかを判定する
ステップと、前記制約が存在する時に、前記制約の外部
キーが前記選択された表内に配置されているかどうかを
判定するステップと、前記制約が存在しない時、または
前記外部キーが前記選択された表内に配置されていない
時に、前記選択された表が前記削除優先順位を有しない
と結論するステップと、前記外部キーが前記選択された
表内に配置されている時に、前記選択された表が前記削
除優先順位を有すると結論するステップとを含む、上記
(31)に記載の方法。
【図面の簡単な説明】
【図1】本発明を実践することができるコンピュータ・
ワークステーション環境のブロック図である。
【図2】本発明を実践することができるネットワーク接
続されたコンピュータ環境を示す図である。
【図3】従来技術による、リレーショナル・データベー
ス表に記憶されたデータ値の簡単な例を示す図である。
【図4】従来技術による、リレーショナル・データベー
ス表に記憶されたデータ値の簡単な例を示す図である。
【図5】従来技術による、リレーショナル・データベー
ス表に記憶されたデータ値の簡単な例を示す図である。
【図6】従来技術による、リレーショナル・データベー
ス表に記憶されたデータ値の簡単な例を示す図である。
【図7】従来技術による、リレーショナル・データベー
ス表に記憶されたデータ値の簡単な例を示す図である。
【図8】図3ないし7の記憶されたデータに対して行わ
れる変更の簡単な例を示す図である。
【図9】図3ないし7の記憶されたデータに対して行わ
れる変更の簡単な例を示す図である。
【図10】本発明に従って実行される表順序付けの例を
示す図である。
【図11】本発明に従って実行される表順序付けの例を
示す図である。
【図12】本発明に従って実行される表順序付けの例を
示す図である。
【図13】これによって本発明の好ましい実施形態を実
施することができる論理を示す流れ図である。
【図14】これによって本発明の好ましい実施形態を実
施することができる論理を示す流れ図である。
【図15】これによって本発明の好ましい実施形態を実
施することができる論理を示す流れ図である。
【図16】これによって本発明の好ましい実施形態を実
施することができる論理を示す流れ図である。
【図17】これによって本発明の好ましい実施形態を実
施することができる論理を示す流れ図である。
【図18】従来技術によるデータベース・スキーマのた
めに使用可能な関係情報を示す図である。
【符号の説明】
12 マイクロプロセッサ 16 ユーザ・インターフェース・アダプタ 18 キーボード 20 マウス 22 インターフェース装置 24 ディスプレイ装置 26 ディスプレイ・アダプタ 28 メモリ 30 記憶装置

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】リレーショナル・データベースの参照保全
    性を維持するために、前記データベースに対して実行さ
    れる動作を計画的に順序付けるコンピュータ・プログラ
    ムであって、前記コンピュータ・プログラムが、コンピ
    ュータを、 前記データベースの複数の表の間の挿入順序を判定する
    手段と、 前記データベースの前記複数の表の間の削除順序を判定
    する手段と、 前記データベースに対して行われる複数の変更のそれぞ
    れによって実行される動作に従い、前記変更のそれぞれ
    によって影響される前記表の特定の1つに従って、前記
    複数の変更をクラスタ化する手段と、 前記クラスタ化された変更を前記データベースに適用す
    る手段であって、さらに、 まず、前記挿入順序に従って、前記動作が挿入である前
    記クラスタ化された変更のすべてを適用する手段と、 次に、前記動作が更新である前記クラスタ化された変更
    のすべてを適用する手段と、 最後に、前記削除順序に従って、前記動作が削除である
    前記クラスタ化された変更のすべてを適用する手段とを
    含む、前記クラスタ化された変更を前記データベースに
    適用する手段として機能させるためのコンピュータ・プ
    ログラム。
  2. 【請求項2】前記動作が更新である前記クラスタ化され
    た変更が、任意の順序で適用される、請求項1に記載の
    コンピュータ・プログラム。
  3. 【請求項3】前記挿入順序を判定する前記手段の動作お
    よび前記削除順序を判定する前記手段の動作を、前記ク
    ラスタ化する手段の動作および前記適用する手段の動作
    の前の時に実行することができる、請求項1に記載のコ
    ンピュータ・プログラム。
  4. 【請求項4】前記コンピュータ・プログラムが、リレー
    ショナル・データベース・エンジンで動作する、請求項
    1に記載のコンピュータ・プログラム。
  5. 【請求項5】前記コンピュータ・プログラムが、前記変
    更を生成するアプリケーション・プログラムと別に動作
    する、請求項1に記載のコンピュータ・プログラム。
  6. 【請求項6】前記クラスタ化する手段の動作および前記
    適用する手段の動作が、後続の複数の変更のそれぞれに
    ついて繰り返して実行される、請求項1に記載のコンピ
    ュータ・プログラム。
  7. 【請求項7】前記適用する手段が、バッチ書込モードで
    実行される、請求項1に記載のコンピュータ・プログラ
    ム。
  8. 【請求項8】前記挿入順序を判定する前記手段が、さら
    に、 前記表の選択された1つのそれぞれについて、1つまた
    は複数の関係する表を識別する手段と、 前記選択された表および前記関連する表のそれぞれの間
    で、挿入優先順位を判定する手段と、 前記選択された表がそれに関する挿入優先順位を有する
    前記関連する表の前に前記選択された表を順序付け、前
    記選択された表がそれに関する挿入優先順位を有しない
    前記関連する表の後に前記選択された表を順序付ける手
    段とを含む、請求項1に記載のコンピュータ・プログラ
    ム。
  9. 【請求項9】前記削除順序を判定する前記手段が、さら
    に、 前記表の選択された1つのそれぞれについて、1つまた
    は複数の関係する表を識別する手段と、 前記選択された表および前記関連する表のそれぞれの間
    で、削除優先順位を判定する手段と、 前記選択された表がそれに関する削除優先順位を有する
    前記関連する表の前に前記選択された表を順序付け、前
    記選択された表がそれに関する削除優先順位を有しない
    前記関連する表の後に前記選択された表を順序付ける手
    段とを含む、請求項1に記載のコンピュータ・プログラ
    ム。
  10. 【請求項10】前記挿入優先順位を判定する前記手段
    が、さらに、 前記選択された表および前記関係する表の各特定の1つ
    について、前記選択された表と前記特定の関係する表と
    の間の関係が制約を有するかどうかを判定する手段と、 前記制約が存在する時に、前記制約の外部キーが前記特
    定の関係する表内に配置されているかどうかを判定する
    手段と、 前記制約が存在しない時、または前記外部キーが前記特
    定の関係する表内に配置されていない時に、前記選択さ
    れた表が前記挿入優先順位を有しないと結論する手段
    と、 前記外部キーが前記特定の関係する表内に配置されてい
    る時に、前記選択された表が前記挿入優先順位を有する
    と結論する手段とを含む、請求項8に記載のコンピュー
    タ・プログラム。
  11. 【請求項11】前記削除優先順位を判定する前記手段
    が、さらに、 前記選択された表および前記関係する表の各特定の1つ
    について、前記選択された表と前記特定の関係する表と
    の間の関係が制約を有するかどうかを判定する手段と、 前記制約が存在する時に、前記制約の外部キーが前記選
    択された表内に配置されているかどうかを判定する手段
    と、 前記制約が存在しない時、または前記外部キーが前記選
    択された表内に配置されていない時に、前記選択された
    表が前記削除優先順位を有しないと結論する手段と、 前記外部キーが前記選択された表内に配置されている時
    に、前記選択された表が前記削除優先順位を有すると結
    論する手段とを含む、請求項9に記載のコンピュータ・
    プログラム。
  12. 【請求項12】コンピュータ環境内でリレーショナル・
    データベースの参照保全性を維持するために、前記デー
    タベースに対して実行される動作を計画的に順序付ける
    システムであって、 前記データベースの複数の表の間の挿入順序を判定する
    手段と、 前記データベースの前記複数の表の間の削除順序を判定
    する手段と、 前記データベースに対して行われる複数の変更のそれぞ
    れによって実行される動作に従い、前記変更のそれぞれ
    によって影響される前記表の特定の1つに従って、前記
    複数の変更をクラスタ化する手段と、 前記クラスタ化された変更を前記データベースに適用す
    る手段であって、さらに、 まず、前記挿入順序に従って、前記動作が挿入である前
    記クラスタ化された変更のすべてを適用する手段と、 次に、前記動作が更新である前記クラスタ化された変更
    のすべてを適用する手段と、 最後に、前記削除順序に従って、前記動作が削除である
    前記クラスタ化された変更のすべてを適用する手段とを
    含む、前記クラスタ化された変更を前記データベースに
    適用する手段とを含むシステム。
  13. 【請求項13】前記動作が更新である前記クラスタ化さ
    れた変更が、任意の順序で適用される、請求項12に記
    載のシステム。
  14. 【請求項14】前記挿入順序を判定する前記手段の動作
    および前記削除順序を判定する前記手段の動作を、前記
    クラスタ化する手段の動作および前記適用する手段の動
    作の前の時に実行することができる、請求項12に記載
    のシステム。
  15. 【請求項15】前記システムが、リレーショナル・デー
    タベース・エンジンで動作する、請求項12に記載のシ
    ステム。
  16. 【請求項16】前記システムが、前記変更を生成するア
    プリケーション・プログラムと別に動作する、請求項1
    2に記載のシステム。
  17. 【請求項17】前記クラスタ化する手段の動作および前
    記適用する手段の動作が、後続の複数の変更のそれぞれ
    について繰り返して実行される、請求項12に記載のシ
    ステム。
  18. 【請求項18】前記適用する手段が、バッチ書込モード
    で実行される、請求項12に記載のシステム。
  19. 【請求項19】前記挿入順序を判定する前記手段が、さ
    らに、 前記表の選択された1つのそれぞれについて、1つまた
    は複数の関係する表を識別する手段と、 前記選択された表および前記関連する表のそれぞれの間
    で、挿入優先順位を判定する手段と、 前記選択された表がそれに関する挿入優先順位を有する
    前記関連する表の前に前記選択された表を順序付け、前
    記選択された表がそれに関する挿入優先順位を有しない
    前記関連する表の後に前記選択された表を順序付ける手
    段とを含む、請求項12に記載のシステム。
  20. 【請求項20】前記削除順序を判定する前記手段が、さ
    らに、 前記表の選択された1つのそれぞれについて、1つまた
    は複数の関係する表を識別する手段と、 前記選択された表および前記関連する表のそれぞれの間
    で、削除優先順位を判定する手段と、 前記選択された表がそれに関する削除優先順位を有する
    前記関連する表の前に前記選択された表を順序付け、前
    記選択された表がそれに関する削除優先順位を有しない
    前記関連する表の後に前記選択された表を順序付ける手
    段とを含む、請求項12に記載のシステム。
  21. 【請求項21】前記挿入優先順位を判定する前記手段
    が、さらに、 前記選択された表および前記関係する表の各特定の1つ
    について、前記選択された表と前記特定の関係する表と
    の間の関係が制約を有するかどうかを判定する手段と、 前記制約が存在する時に、前記制約の外部キーが前記特
    定の関係する表内に配置されているかどうかを判定する
    手段と、 前記制約が存在しない時、または前記外部キーが前記特
    定の関係する表内に配置されていない時に、前記選択さ
    れた表が前記挿入優先順位を有しないと結論する手段
    と、 前記外部キーが前記特定の関係する表内に配置されてい
    る時に、前記選択された表が前記挿入優先順位を有する
    と結論する手段とを含む、請求項19に記載のシステ
    ム。
  22. 【請求項22】前記削除優先順位を判定する前記手段
    が、さらに、 前記選択された表および前記関係する表の各特定の1つ
    について、前記選択された表と前記特定の関係する表と
    の間の関係が制約を有するかどうかを判定する手段と、 前記制約が存在する時に、前記制約の外部キーが前記選
    択された表内に配置されているかどうかを判定する手段
    と、 前記制約が存在しない時、または前記外部キーが前記選
    択された表内に配置されていない時に、前記選択された
    表が前記削除優先順位を有しないと結論する手段と、 前記外部キーが前記選択された表内に配置されている時
    に、前記選択された表が前記削除優先順位を有すると結
    論する手段とを含む、請求項20に記載のシステム。
  23. 【請求項23】リレーショナル・データベースの参照保
    全性を維持するために、前記データベースに対して実行
    される動作を計画的に順序付ける方法であって、 前記データベースの複数の表の間の挿入順序を判定する
    ステップと、 前記データベースの前記複数の表の間の削除順序を判定
    するステップと、 前記データベースに対して行われる複数の変更のそれぞ
    れによって実行される動作に従い、前記変更のそれぞれ
    によって影響される前記表の特定の1つに従って、前記
    複数の変更をクラスタ化するステップと、 前記クラスタ化された変更を前記データベースに適用す
    るステップであって、さらに、 まず、前記挿入順序に従って、前記動作が挿入である前
    記クラスタ化された変更のすべてを適用するステップ
    と、 次に、前記動作が更新である前記クラスタ化された変更
    のすべてを適用するステップと、 最後に、前記削除順序に従って、前記動作が削除である
    前記クラスタ化された変更のすべてを適用するステップ
    とを含む、前記クラスタ化された変更を前記データベー
    スに適用するステップとを含む方法。
  24. 【請求項24】前記動作が更新である前記クラスタ化さ
    れた変更が、任意の順序で適用される、請求項23に記
    載の方法。
  25. 【請求項25】前記挿入順序を判定する前記ステップの
    動作および前記削除順序を判定する前記ステップの動作
    を、前記クラスタ化するステップの動作および前記適用
    するステップの動作の前の時に実行することができる、
    請求項23に記載の方法。
  26. 【請求項26】前記方法が、リレーショナル・データベ
    ース・エンジンで動作する、請求項23に記載の方法。
  27. 【請求項27】前記方法が、前記変更を生成するアプリ
    ケーション・プログラムと別に動作する、請求項23に
    記載の方法。
  28. 【請求項28】前記クラスタ化するステップの動作およ
    び前記適用するステップの動作が、後続の複数の変更の
    それぞれについて繰り返して実行される、請求項23に
    記載の方法。
  29. 【請求項29】前記適用するステップが、バッチ書込モ
    ードで実行される、請求項23に記載の方法。
  30. 【請求項30】前記挿入順序を判定する前記ステップ
    が、さらに、 前記表の選択された1つのそれぞれについて、1つまた
    は複数の関係する表を識別するステップと、 前記選択された表および前記関連する表のそれぞれの間
    で、挿入優先順位を判定するステップと、 前記選択された表がそれに関する挿入優先順位を有する
    前記関連する表の前に前記選択された表を順序付け、前
    記選択された表がそれに関する挿入優先順位を有しない
    前記関連する表の後に前記選択された表を順序付けるス
    テップとを含む、請求項23に記載の方法。
  31. 【請求項31】前記削除順序を判定する前記ステップ
    が、さらに、 前記表の選択された1つのそれぞれについて、1つまた
    は複数の関係する表を識別するステップと、 前記選択された表および前記関連する表のそれぞれの間
    で、削除優先順位を判定するステップと、 前記選択された表がそれに関する削除優先順位を有する
    前記関連する表の前に前記選択された表を順序付け、前
    記選択された表がそれに関する削除優先順位を有しない
    前記関連する表の後に前記選択された表を順序付けるス
    テップとを含む、請求項23に記載の方法。
  32. 【請求項32】前記挿入優先順位を判定する前記ステッ
    プが、さらに、 前記選択された表および前記関係する表の各特定の1つ
    について、前記選択された表と前記特定の関係する表と
    の間の関係が制約を有するかどうかを判定するステップ
    と、 前記制約が存在する時に、前記制約の外部キーが前記特
    定の関係する表内に配置されているかどうかを判定する
    ステップと、 前記制約が存在しない時、または前記外部キーが前記特
    定の関係する表内に配置されていない時に、前記選択さ
    れた表が前記挿入優先順位を有しないと結論するステッ
    プと、 前記外部キーが前記特定の関係する表内に配置されてい
    る時に、前記選択された表が前記挿入優先順位を有する
    と結論するステップとを含む、請求項30に記載の方
    法。
  33. 【請求項33】前記削除優先順位を判定する前記ステッ
    プが、さらに、 前記選択された表および前記関係する表の各特定の1つ
    について、前記選択された表と前記特定の関係する表と
    の間の関係が制約を有するかどうかを判定するステップ
    と、 前記制約が存在する時に、前記制約の外部キーが前記選
    択された表内に配置されているかどうかを判定するステ
    ップと、 前記制約が存在しない時、または前記外部キーが前記選
    択された表内に配置されていない時に、前記選択された
    表が前記削除優先順位を有しないと結論するステップ
    と、 前記外部キーが前記選択された表内に配置されている時
    に、前記選択された表が前記削除優先順位を有すると結
    論するステップとを含む、請求項31に記載の方法。
JP2001061383A 2000-03-09 2001-03-06 参照保全性を維持するためにリレーショナル・データベースに対して実行される動作を計画的に順序付けるシステムおよび方法 Expired - Fee Related JP3670975B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/521877 2000-03-09
US09/521,877 US6542883B1 (en) 2000-03-09 2000-03-09 Ordering relational database operations according to referential integrity constraints

Publications (2)

Publication Number Publication Date
JP2001282592A true JP2001282592A (ja) 2001-10-12
JP3670975B2 JP3670975B2 (ja) 2005-07-13

Family

ID=24078512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001061383A Expired - Fee Related JP3670975B2 (ja) 2000-03-09 2001-03-06 参照保全性を維持するためにリレーショナル・データベースに対して実行される動作を計画的に順序付けるシステムおよび方法

Country Status (3)

Country Link
US (1) US6542883B1 (ja)
JP (1) JP3670975B2 (ja)
GB (1) GB2366421B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016126653A (ja) * 2015-01-07 2016-07-11 コニカミノルタ株式会社 管理システム、制御方法、および制御プログラム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7333992B2 (en) * 2003-05-22 2008-02-19 Microsoft Corporation System and method for identifying and storing changes made to a table
US7197498B2 (en) * 2003-06-30 2007-03-27 Intel Corporation Apparatus, system and method for updating a sorted list
US7457817B2 (en) * 2003-12-12 2008-11-25 Oracle International Corporation Versioning in an integration platform
EP1618378A4 (en) * 2004-03-29 2008-10-08 Microsoft Corp SYSTEMS AND METHOD FOR VERSION-BASED TRIGGER
US7647356B2 (en) * 2004-05-07 2010-01-12 Oracle International Corporation Methods and apparatus for facilitating analysis of large data sets
US20050278277A1 (en) * 2004-05-27 2005-12-15 International Business Machines Corporation Method and apparatus for propogating tables while preserving foreign key integrity
US7293022B2 (en) * 2005-04-14 2007-11-06 International Business Machines Corporation List update employing neutral sort keys
US7571192B2 (en) * 2005-06-15 2009-08-04 Oracle International Corporation Methods and apparatus for maintaining consistency during analysis of large data sets
US8285677B2 (en) 2006-06-30 2012-10-09 International Business Machines Corporation Method and apparatus for propagating tables while preserving cyclic foreign key relationships
GB0623237D0 (en) * 2006-11-22 2007-01-03 Ibm Issuing syncpoints during execution of a batch application
US9418154B2 (en) 2007-10-19 2016-08-16 Oracle International Corporation Push-model based index updating
US9594794B2 (en) 2007-10-19 2017-03-14 Oracle International Corporation Restoring records using a change transaction log
US9594784B2 (en) * 2007-10-19 2017-03-14 Oracle International Corporation Push-model based index deletion
US8108360B2 (en) * 2008-04-17 2012-01-31 Microsoft Corporation Database object update order determination
EP2289030A4 (en) * 2008-04-29 2011-08-10 Sugarcrm Inc COMMERCIAL SOFTWARE APPLICATION SYSTEM AND METHOD
US8533240B2 (en) 2010-09-22 2013-09-10 International Business Machines Corporation Write behind cache with M-to-N referential integrity
US10268639B2 (en) * 2013-03-15 2019-04-23 Inpixon Joining large database tables
GB2522832A (en) 2013-10-10 2015-08-12 Ibm A method and a system for loading data with complex relationships
US10698607B2 (en) * 2015-05-19 2020-06-30 Netapp Inc. Configuration update management
US11243956B1 (en) * 2019-07-10 2022-02-08 Amazon Technologies, Inc. Enforcing foreign key constraints for efficient materialized view updates

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1029050C (zh) 1989-10-13 1995-06-21 国际商业机器公司 在数据库系统中强化实施参照约束
JPH04299459A (ja) 1991-03-27 1992-10-22 Nec Corp データベースアクセスシステム
US5404510A (en) 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
JP2583010B2 (ja) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法
US5546576A (en) * 1995-02-17 1996-08-13 International Business Machines Corporation Query optimizer system that detects and prevents mutating table violations of database integrity in a query before execution plan generation
US5819086A (en) * 1995-06-07 1998-10-06 Wall Data Incorporated Computer system for creating semantic object models from existing relational database schemas
US5717924A (en) 1995-07-07 1998-02-10 Wall Data Incorporated Method and apparatus for modifying existing relational database schemas to reflect changes made in a corresponding object model
US5778370A (en) 1995-08-25 1998-07-07 Emerson; Mark L. Data village system
US5819254A (en) 1996-07-23 1998-10-06 Wall Data Incorporated Method of transferring data between relational database tables
US5758335A (en) 1996-09-27 1998-05-26 Bull Hn Information Systems Inc. Optimizing table join ordering using graph theory prior to query optimization
US5926807A (en) 1997-05-08 1999-07-20 Microsoft Corporation Method and system for effectively representing query results in a limited amount of memory
US5974407A (en) 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US6456995B1 (en) 1998-12-31 2002-09-24 International Business Machines Corporation System, method and computer program products for ordering objects corresponding to database operations that are performed on a relational database upon completion of a transaction by an object-oriented transaction system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016126653A (ja) * 2015-01-07 2016-07-11 コニカミノルタ株式会社 管理システム、制御方法、および制御プログラム

Also Published As

Publication number Publication date
US6542883B1 (en) 2003-04-01
JP3670975B2 (ja) 2005-07-13
GB2366421B (en) 2003-12-31
GB0104225D0 (en) 2001-04-11
GB2366421A (en) 2002-03-06

Similar Documents

Publication Publication Date Title
JP2001282592A (ja) 参照保全性制約によるリレーショナル・データベース動作の順序付け
US6393434B1 (en) Method and system for synchronizing data using fine-grained synchronization plans
US8095504B2 (en) N-way synchronization of computer databases
US10481884B2 (en) Systems and methods for dynamically replacing code objects for code pushdown
JP2731376B2 (ja) データベース管理方法
US8180868B2 (en) Adaptive resource management
US7908349B2 (en) Resource management with rule based consistency check
US8086642B2 (en) Apparatus, system, and method for processing hierarchical data in disparate data repositories
US20070143358A1 (en) Data synchronization system and method
US7836429B2 (en) Data synchronization mechanism for change-request-management repository interoperation
KR20040082332A (ko) 프린터 클라이언트를 위한 네트워크 프린터 연결 업데이트스킴
EP0804771A1 (fr) Interface administrateur pour base de donnees dans un environnement informatique distribue
US9026908B2 (en) Systems and methods for providing simultaneous access to documents
US20020046283A1 (en) Apparatus and method for saving session variables on the server side of an on-line data base management system
US6898599B2 (en) Method and system for automated web reports
US6643712B1 (en) Validating the creation of and routing of messages to file objects
US20070094289A1 (en) Dynamic, hierarchical data exchange system
US7058939B2 (en) Automatic link maintenance to ensure referential integrity constraints
US7433875B2 (en) Web store events
JPH07191888A (ja) データベース・マネージャにアクセスするデータベース・アクセス要求の処理方法及びシステム
US11954538B2 (en) Updating a state of a client device using a limited event size protocol
US20050033738A1 (en) Information provision apparatus, format separation apparatus, information provision method and program
Skopp Process centered software development on mobile hosts
Roussev Flexible sharing of distributed objects based on programming patterns
JP2000112759A (ja) 分散オブジェクト環境でのプログラムの静的解析方法および最適化方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040511

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040715

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041111

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: 20050329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080422

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees