(57)【要約】  削除プロシージャ、挿入プロシージャ、または更新プロシージャに応答してデータベース・アプリケーション・データを追跡および編成するためのシステムおよび／または方法。より具体的には、トリガ実装に関連してバージョンをベースとする保持およびリンク手法を使用するシステムおよび／または方法。
2007531152.tif 000002
【特許請求の範囲】
【請求項１】
データベース内で修正された行の識別を容易にするシステムであって、
複数のデータ行の現行バージョンを格納するベース・テーブル・コンポーネントと、
前記複数のデータ行の前記現行バージョンのコピーを維持するバージョン・ストア・コンポーネントであって、前記コピー内で前記複数のデータ行のサブセットをリンクする少なくとも１つのリンク・コンポーネントを含むバージョン・ストア・コンポーネントと
を備えることを含むことを特徴とするシステム。
【請求項２】
前記複数のデータ行の前記現行バージョンの前記コピー内の各行は、前記複数のデータ行の前記現行バージョンと共通のキー値を共用することを特徴とする請求項１に記載のシステム。
【請求項３】
前記リンクされた行の最後の行を識別するテール識別子をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項４】
前記複数のデータ行の前記現行バージョンの前記コピーは、少なくとも１つの修正された行を識別する識別子を備えることを特徴とする請求項１に記載のシステム。
【請求項５】
前記識別子を使用し、トリガ・オペレーションに従って前記少なくとも１つの修正された行を識別するリンク・コンポーネントを走査するトリガ機構コンポーネントをさらに備えることを特徴とする請求項４に記載のシステム。
【請求項６】
少なくとも１つの挿入された行が前記バージョン・ストア・コンポーネント内に転送されることを特徴とする請求項１に記載のシステム。
【請求項７】
前記少なくとも１つの挿入された行をリンクするために、少なくとも１つの追加リンク・コンポーネントをさらに備えることを特徴とする請求項６に記載のシステム。
【請求項８】
プロシージャを実行するために前記追加のリンクされた行を走査するトリガ機構コンポーネントをさらに備えることを特徴とする請求項７に記載のシステム。
【請求項９】
前記トリガ機構は、前記プロシージャに従って、前記走査されたレコードをフィルタすることを特徴とする請求項８に記載のシステム。
【請求項１０】
請求項１に記載のシステムのコンピュータ実行可能コンポーネントを格納していることを特徴とするコンピュータ可読媒体。
【請求項１１】
請求項１に記載のシステムを使用することを特徴とするコンピュータ。
【請求項１２】
データベース内で修正された行を識別する、コンピュータに実装される方法であって、
データ行の現行バージョンをベース・テーブルに格納すること、
前記データ行の前記現行バージョンのコピーをバージョン・ストア内で維持すること、および、
前記現行バージョンの前記コピー内の前記行のサブセットをリンクすること
を備えることを特徴とする方法。
【請求項１３】
前記データ行のサブセットの新しいバージョンを、前記バージョン・ストア内に転送することをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
異なるキー値を有する前記データ行のサブセットの前記新しいバージョンをチェーン内にリンクすることをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
削除プロシージャ、挿入プロシージャ、更新プロシージャ、のうちの少なくとも１つを実行するために、データ操作言語（ＤＭＬ）イベントを開始することをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記リンク・コンポーネントのテール識別子を登録することをさらに備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
どのリンク・コンポーネントを維持するかどうかを判定することをさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１８】
請求項１２に記載の動作を実行するためのコンピュータ実行可能命令を格納していることを特徴とするコンピュータ可読媒体。
【請求項１９】
データベースに加えられた変更を識別するシステムであって、
複数のデータ行の現行バージョンを保持するための手段と、
前記複数のデータ行の少なくとも１つのバージョンのコピーを維持するための手段と、
同じデータ操作ステートメントによって生成されたバージョン付き行をリンクするための手段と
を備えることを特徴とするシステム。
【請求項２０】
前記リンクされた行の最後の行を追跡するための手段をさらに備えることを特徴とする請求項１９に記載のシステム。
【請求項２１】
挿入された行をバージョン・ストア内に転送するための手段をさらに備えることを特徴とする請求項２０に記載のシステム。
【請求項２２】
トリガ・プロシージャに従って、少なくとも１つの修正された行を識別するために、前記リンクされた行を走査するための手段をさらに備えることを特徴とする請求項２０に記載のシステム。
【請求項２３】
前記トリガ・プロシージャに従って、前記走査された行をフィルタするための手段をさらに備えることを特徴とする請求項２２に記載のシステム。
【請求項２４】
データ操作イベントに応答して、トリガ・プロシージャを実行するための手段をさらに備えることを特徴とする請求項２０に記載のシステム。
【請求項２５】
データベース内でトリガを実行するシステムであって、
前記データベース内の複数のデータ行の現行バージョンを有するベース・テーブル・コンポーネントと、
前記データベース内の前記複数のデータ行の少なくとも１つの異なるバージョンを有するバージョン・ストア・コンポーネントと、
同じデータ操作ステートメントによって生成された前記複数のデータ行の前記少なくとも１つの異なるバージョンのサブセットをリンクする少なくとも１つのリンク・コンポーネントと、
トリガ・プロシージャに従って、前記リンクされた行を走査し、前記走査された行をフィルタするトリガ機構コンポーネントと
を備えることを特徴とするシステム。
【請求項２６】
前記リンクされた行の最後の行を識別する少なくとも１つのテール識別子をさらに備えることを特徴とする請求項２５に記載のシステム。
【請求項２７】
前記トリガ機構は、前記テール識別子を使用し、前記リンクされた行を走査することを特徴とする請求項２６に記載のシステム。
【請求項２８】
少なくとも１つの挿入された行が、前記バージョン・ストア・コンポーネント内に転送されることを特徴とする請求項２５に記載のシステム。
【請求項２９】
前記少なくとも１つの挿入された行をリンクする少なくとも１つの追加のリンク・コンポーネントをさらに備えることを特徴とする請求項２８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータシステムに関し、より詳細には、データベース管理システム（ＤＢＭＳ）におけるトリガのバージョン・ベースのリンクおよび実装に関連するシステムおよび／または方法に関する。
【背景技術】
【０００２】
本願は、２００４年３月２９日に出願された「Systems and Methods for Versioning Based Triggers」という名称の米国特許仮出願第６０／５５７，２８６号明細書、ならびに２００４年７月１２日に出願された米国特許本出願第（不明）号明細書の利益を主張する。これらの出願の全体を参照により本明細書に組み込む。
【０００３】
データベース管理システム（ＤＢＭＳ）の技術的な進展につれて、性能効率を高めることが進行中であり、性能効率を高めるニーズが増大している。具体的には、トリガに関連してデータベース性能を高めることが引き続き、また、ますます求められている。
【０００４】
一般に、ＤＢＭＳでは、データの現行バージョンが「ベース」テーブル内に格納される。ベース・テーブル内の各行（row）は、削除オペレーション、挿入オペレーション、または更新オペレーションの結果として変更される可能性がある。行が変更されたとき、その変更は、１組の一時「遷移」テーブル内に格納することができる。そのような１組の遷移テーブルは、ＤＢＭＳによって自動的に作成および管理することができる。その１組の遷移テーブルは、ベース・テーブルから削除された行を格納する「削除」テーブルと、ベース・テーブル内に挿入された行を格納する「挿入」テーブルとを含むことができる。行が更新された場合、その行の前バージョンは削除テーブル内に格納され、その行の現行バージョンが挿入テーブル内に格納される。
【０００５】
遷移テーブルは、ＤＢＭＳが変更の影響を試験すること、また、トリガ・アクションのための条件を設定することを可能とする。具体的には、遷移テーブルは、テーブル間で参照保全（referential integrity）を延長し、特定のビューの基礎となるベース・テーブル内のデータを変更し、エラーがあるかどうか検査し検出されたエラーに基づいて行動を起こし、変更の前後のテーブルの状態間の差を見出し、およびその差に基づいて行動を起こす。
【０００６】
トリガは、挿入ステートメント、更新ステートメント、または削除ステートメントによってテーブル内の１つまたは複数の行が修正されたとき実行される特別なタイプのストアド・プロシージャ（stored procedure）である。ＤＢＭＳ（たとえば、ＳＱＬ  Ｓｅｒｖｅｒ）は、特定のテーブル上で指定されたオペレーションごとにトリガを呼び出すことができるため、トリガを使用し、ＤＢＭＳの内蔵の保全機能およびデータ操作機能を拡張することができる。従来、ａｆｔｅｒトリガとも呼ばれるトリガ実装は、レコードの旧イメージと新イメージを取り出すためにトランザクション・ログの走査を行うことによって実行されていた。しかし、従来のログをベースとするａｆｔｅｒトリガの実装は、いくつかの問題を提示した。たとえば、ログは、本質的に処理ボトルネックを生み出した。ログ手法は、いくつかの順次書込み応用例において十分とすることができるが、ランダムな読取り応用例において特に有用なものではない。このボトルネック特性は、少なくとも一部には、ログ走査ａｆｔｅｒトリガ実装がスケーラビリティを欠いていることに起因すると考えられる。
【０００７】
従来のログ走査手法の別の落とし穴は、ログがバッファ・プールでバックアップされないことである。わかるように、挿入済み／削除済みテーブルからの読取りは、大量の入出力（Ｉ／Ｏ）プロセスを必要とする可能性が高い。最後に、ラージ・オブジェクト（ＬＯＢ）データベース・フィールド・アクセスは、ａｆｔｅｒトリガにおいて、従来のログをベースとする実装を介してサポートされない。従来のログ走査手法のこれらの制限により、最近の努力と開発は、バージョニングをベースとする実装に向けられている。既存のバージョニングをベースとするａｆｔｅｒトリガ実装は、バージョニングに依拠し、デルタ・ワーク・テーブル（delta worktable）内でレコードの旧イメージと新イメージを提供する。したがって、挿入、削除、または更新されたレコードのキー値を格納するデルタ・ワーク・テーブルが、挿入済み／削除済みテーブル内でレコードを識別するために維持される。
【０００８】
これらの新しい実装形態は、従来のログをベースとする手法の問題の多くを解決したが、ログをベースとする手法よりはるかに遅いものである。この欠点は、データ操作言語（ＤＭＬ）イベント中にデルタ・ワーク・テーブルを占有することに関連するコスト、ならびに、デルタ・ワーク・テーブルとベース・テーブルを接合することによって、トリガ本体実行中に挿入済み／削除済みテーブルを構築するためのコストに由来する。さらに、これにより、デルタ・ワーク・テーブル内で走査される行当たり１回のブックマーク・ルックアップとベース・テーブル内でのバージョニング・ストア訪問が行われる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
バージョンをベースとする実装を介して前述の問題を低減および／または緩和しようとする、また、トリガ効率を高めようとする試みが行われているが、依然として、バージョニングをベースとする実装を使用し、よりコスト効果的かつ効率的なバージョニング・ベースのａｆｔｅｒトリガ実装を生み出すためのシステムおよび／または方法の必要性が実質的に満たされていない。
【課題を解決するための手段】
【００１０】
以下は、本発明のいくつかの態様を基本的に理解するために、本発明の簡単な概要を提供する。この概要は、本発明の広範な全体像ではない。本発明の鍵となる／クリティカルな要素を識別すること、あるいは本発明の範囲を述べることは意図されていない。後で提供されるより詳しい説明に対する序文として、本発明のいくつかの概念を簡単な形態で提供することだけが目的である。
【００１１】
本明細書で開示され特許請求されている本発明は、その一態様において、削除プロシージャ、挿入プロシージャ、または更新プロシージャに応答してデータベース・アプリケーション・データを追跡および編成するためのシステムおよび／または方法を含む。より具体的には、本システムの一態様は、トリガ実装に関連してバージョンをベースとする保持およびリンク手法を使用する。本発明の様々な態様は、データベース・システムのユーザが、データベーステーブル内の行の更新、削除、および／または挿入のアクションに応じて実行すべきオペレーションを指定するための方法を提供するａｆｔｅｒトリガ（たとえば、データベース・システム内の一般に提供されている機能）の性能を改善することができる。ａｆｔｅｒトリガ機構は、ベース・テーブル上の、あるオペレーションによって挿入、削除、または更新された行を示す「挿入済み」および「削除済み」擬似テーブルを提供する。この擬似テーブルは、バージョン・ストア・コンポーネント内に格納することができる。
【００１２】
さらに、本発明の特定の諸態様は、挿入済み擬似テーブルおよび削除済み擬似テーブルに適用可能な行をインスタンス化するための走査機構（たとえば、ＥＶＳ（extended version scan））に関する。本発明は、２つの他の従来型手法、すなわち、デルタテーブルとトランザクション・ログ走査に優る有意な性能上の利点を提供することを理解されたい。バージョン・ストア・コンポーネントは、ベース・テーブル内に含まれるレコードの前バージョンを保持するために使用される。レコードの旧バージョンを維持するバージョン・ストアと、同じキー値の異なるバージョンのためのリンクに加えて、同じデータ修正ステートメント内で生成された異なるキー値を有するバージョン付きレコード同士をリンクし、旧イメージ・チェーンを形成するために、追加のリンクを維持することができる。旧イメージを削除済みテーブルから取り出すために、走査を実装し、このチェーン内のバージョン・レコードすべてを取り出すことができる。
【００１３】
この諸概念を「挿入済み」テーブル・プロシージャに延長するために、データ修正されたとき、レコードの新イメージをバージョン・ストア内に転送することができる。新イメージがバージョン・ストア内に入った後で、同じデータ修正ステートメント下で異なるキー値の新イメージ同士をリンクし、挿入済みテーブル用の新イメージ・チェーンを形成するために、同様なリンクを維持することができる。
【００１４】
本発明の他の態様によれば、各挿入ステートメント、削除ステートメント、更新ステートメントは、新イメージ・チェーンおよび旧イメージ・チェーンの現在のテール（tail）を含むことができる内部構造を有する。ステートメントの間、この内部構造内のテールは、各データ修正オペレーションによって維持することができ、挿入済みテーブルおよび削除済みテーブルから行を取り出すとき、内部構造内のテールを使用し、トリガする際に助けとするために走査を開始することができる。
【００１５】
前述の、また関連の目的を達成するために、以下の説明および添付の図面と関連して、本発明のある例示的な諸態様が本明細書に述べられている。しかし、これらの態様は、本発明の原理を使用することができる様々な方法のいくつかを示すものにすぎず、本発明は、そのような態様とその均等物すべてを含むものとする。本発明の他の利点および新規の特徴は、図面と共に考察したとき、以下の本発明の詳細な説明から明らかになる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明について図面を参照しながら述べる。図面では、全体を通して同じ要素を参照するために同じ符号が使用される。以下の説明では、説明する目的で、本発明を十分理解するために、多数の特定の詳細が述べられている。しかし、これらの特定の詳細なしに本発明を実施することができることは自明とすることができる。場合によっては、本発明について述べることを容易にするために、周知の構造およびデバイスがブロック図の形態で示される。
【００１７】
本願では、「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または、実行中のソフトウェアであるコンピュータ関連のエンティティを指すものとする。たとえば、コンポーネントは、それだけには限らないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能物、実行のスレッド、プログラム、および／またはコンピュータとすることができる。例示のために、サーバ上で動作するアプリケーションもサーバも共にコンポーネントとすることができる。プロセスおよび／または実行のスレッド内に１つまたは複数のコンポーネントが常駐することができ、コンポーネントは、１つのコンピュータに局所化する、かつ／または２つ以上のコンピュータ間で分散することができる。
【００１８】
本発明は、その一態様において、データベース管理システム（ＤＢＭＳ）内で、トリガに関してバージョンをベースとする実装を使用するためのシステムおよび／または方法を対象とする。例として、本発明の一態様は、ＳＱＬ  Ｓｅｒｖｅｒベースのアプリケーションに関連して、バージョニングをベースとするトリガ機構を使用することを対象とする。本発明の諸態様について、本明細書ではＳＱＬ  Ｓｅｒｖｅｒ  ＤＢＭＳに関して述べられているが、本発明の概念と革新は、当技術分野で知られているどの周知のＤＢＭＳにも適用することができることを理解されたい。
【００１９】
具体的には、従来のａｆｔｅｒトリガ実装に関連する性能問題に対処するために、本発明の諸態様は、ＥＶＳ（extended version scan）手法を対象とする。このＥＶＳ手法は、システムが逆リンク走査（reverse-linkage scan）を介して行の諸バージョンにアクセスすることが可能になる、対応するバージョン・レコード・リンクと共に、バージョン・ストアを使用することを含む。ＥＶＳ手法を容易にするために使用されるシステムおよび方法について、以下でさらに詳しく論じる。
【００２０】
最初に図１を参照すると、本発明の一態様によるＤＢＭＳ１００の全体的なブロック図が示されている。図１に示されているように、概してＤＢＭＳ１００は、ベース・テーブル・コンポーネント１０２と、バージョン・ストア・コンポーネント１０４と、トリガ機構コンポーネント１０６とを含むことができる。上記で論じたように、ベース・テーブル・コンポーネント１０２には、データ・レコードの現行バージョンを容れることができる。一方、ベース・テーブル・コンポーネント１０２内に含まれるデータの各行の前バージョンは、バージョン・ストア・コンポーネント１０４内に格納することができる。
【００２１】
例示的なバージョン・ストア・コンポーネント１０４は、レコード・バージョン履歴を含むレコード・ストア・コンポーネント１０８と、複数のレコード・リンク・コンポーネント１１０、１１２とを含むことができる。図には２つのリンク・コンポーネント１１０、１１２だけが示されているが、リンク・コンポーネントは、本発明の代替の諸態様に従って生成および／または記憶することができることを、当業者なら理解するであろう。たとえば、複数のデータ操作言語（ＤＭＬ）ステートメントが実行され、それによって、異なるキー値を有する複数のバージョンのレコードを作成する場合、対応するリンク・チェーンを記憶し、異なるキー値を有する関連レコード同士をリンクすることができることを理解されたい。
【００２２】
バージョン履歴のレコード・ストア・コンポーネント１０８と、（たとえば、同じＤＭＬステートメントから生成された、）ベース・テーブル・コンポーネント１０２内のレコードと同じキー値を有する異なるレコード・バージョンに対応するリンク・コンポーネント１１０とを維持するバージョン・ストア・コンポーネント１０４に加えて、異なるキー値を有するバージョン付きレコードのリンクをベース・テーブル・コンポーネント１０２に関連して表す追加のリンク・コンポーネント１１２を維持することができる。換言すれば、リンク１１２によってリンクされたレコードは、そのレコードを導出するために使用される特定のＤＭＬステートメントに対応する異なるキー値を有する。異なるキー値を有するレコードは、同じＤＭＬステートメント内で生成し、旧イメージ・チェーンを形成することができることを、当業者なら理解するであろう。したがって、削除済みテーブルに対応する旧イメージを取り出すために、このチェーン１１２内でリンクされたバージョン・レコードすべてについてＥＶＳを実行することができる。
【００２３】
本発明の一態様によれば、図２は、ＤＭＬイベントが実行されたときバージョンをベースとするリンクを確立する方法を示す簡易流れ図を示す。説明を簡単にするために、たとえば流れ図の形態で本明細書に示されている１つまたは複数の方法は、一連の動作として示され、述べられているが、本発明によるいくつかの動作は、本明細書に示され述べられているものと異なる順序で、かつ／または他の動作と同時に行われる可能性があるため、本発明は動作の順序によって制限されないことを理解されたい。たとえば、方法は、別法として、状態図内でなど、一連の相互に関係のある状態または事象として表すことができることを、当業者なら理解するであろう。さらに、本発明による方法を実装するために図の動作すべてを必要とするには及ばない。
【００２４】
２０２に進むと、ＤＭＬステートメントの結果として削除、挿入、または更新された各レコードについて、対応するバージョン・チェーン内の先の行のレコード識別子が、バージョン・ストア内への格納と連動してバージョン・レコードに追加される。この識別子は、レコード同士をリンクし、新／旧イメージ・チェーンを形成する際に役立つ可能性がある。レコード識別子は、バージョン・ストア内の行の位置を識別することが可能な、当技術分野で周知の任意の識別子とすることができることをも理解されたい。たとえば、レコード識別子は、バージョン・ストア内の特定のレコードを識別するために、ページおよびスロット識別を表すことができる。
【００２５】
次に、２０４で、レコードがバージョン・ストア内に格納される。先に論じたように、同じ、または異なるキー値を有する複数のバージョンのレコードをバージョン・ストア内に格納することができる。２０６で、同じキー値を有するバージョン同士がリンクされる。
【００２６】
本発明の一態様によれば、トリガに関連するレコードだけがチェーン内にリンクされる。例として、２次インデックスに対応するバージョン・レコードは挿入済み／削除済みテーブル内に参加しないため、これらはチェーン内にリンクされない。また、あるテーブルに関連してトリガが存在しない場合、そのテーブルのバージョン・レコードは、チェーン内にリンクされない。
【００２７】
２０８で、トリガが、ＤＭＬステートメントによって操作されるレコードを含むテーブル（たとえば、削除済み、挿入済み）に関連付けられているかどうか、システムが判定する。２０８で、トリガが存在しないとシステムが決定した場合、システムは２０２に戻り、追加のレコードをバージョン・ストア内に格納する。２０８で、レコードを含む適用可能なテーブルにトリガが関連付けられているとシステムが決定した場合、２１０で、システムは、特定のレコードがそのトリガに関連するかどうか判定する。
【００２８】
２１０で、レコードがトリガと関連しないとシステムが決定した場合、システムは２０２に戻り、追加のレコードをバージョン・ストア内に格納する。２１０で、レコードがトリガと関連するとシステムが決定した場合、システムが進み、２１２でレコード・リンクを確立する。例として、関連するトリガが「削除済み」テーブルに適用可能であり、「挿入」ＤＭＬステートメントが実施される場合、システムは、２１０から２０２に戻ることになる。同様に、関連するトリガが「挿入済み」テーブルに対応し、「削除」操作ステートメントが実行される場合、システムは、特定の行がトリガに関連しないと決定し、２０２に戻ることになる。
【００２９】
インターフェースを使用し、ＤＭＬイベント中にチェーンを維持すべきかどうかシステムに通知することができることを理解されたい。たとえば、テーブル上にトリガがない場合、システムは、チェーンを維持しないと決定することになる。そうでない場合には、トリガ本体解析に基づいて、システムは、新イメージ・チェーンまたは旧イメージ・チェーン、あるいは両方を維持すると決定することができる。
【００３０】
次に、２１２で、システムは、異なるキー値を有するイメージの異なるバージョン同士を、ベース・テーブル内のものとしてリンクする。最後に、２１４で、特定のバージョンとリンクを識別するために、個々のリンクのテールの識別子が、走査および／または後続のトリガの実行に従って後で取り出すために格納される。図２の方法によって示されているように、本発明のこの態様によれば、「削除済み」テーブルおよび／または「挿入済み」テーブルに適用可能な、異なるキー値を有する行に対応するリンクのテール識別子だけ記憶されることになる。任意のデータストア機構またはメモリ・デバイスを使用し、リンクテール識別子の記憶を実施することができることを、当業者なら理解するであろう。
【００３１】
前述のように、行が「更新」された場合、更新ステートメントは、旧イメージの削除オペレーションと、それに続く新イメージの挿入オペレーションとを含む。したがって、その行の前バージョンは、「削除」テーブル内に格納され、その行の現行または新バージョンが「挿入」テーブル内に格納される。図３および図４は、これらの２つのオペレーション、すなわち「削除」および「挿入」をそれぞれ示す。
【００３２】
例を続けると、図３では、本発明の一態様による、ベース・テーブル・コンポーネント１０２とバージョン・ストア・コンポーネント１０４を含むデータベース・システム１００の全体的なブロック図が示されている。この例示的なデータベース・システム１００は、行「削除」プロシージャに関連して、ベース・テーブル・コンポーネント１０２とバージョン・ストア・コンポーネント１０４を表すものである。
【００３３】
ベース・テーブル・コンポーネント１０２は、Ａ１、Ｂ１、Ｃ１（３０２、３０４、３０６）として示されているレコードを含むことができる。本発明の一態様によれば、行Ａ１、Ｂ１、Ｃ１（３０２、３０４、３０６）のミラー・イメージもまた、バージョン・ストア・コンポーネント１０４内に格納することができる。リンク３０８を確立し、図のようにバージョン・ストア・コンポーネント１０４内のレコード同士をリンクすることができる。先に論じたように、リンク３０８は、ベース・テーブル・コンポーネント１０２内のものと合致するレコード（３０２、３０４、３０６）のチェーンを作成する。
【００３４】
本発明の他の態様は、「挿入」プロシージャに従ってレコードを編成および追跡することを対象とする。例を続けて、図４を参照すると、ＤＭＬイベントの結果として、レコードＡ１、Ｂ１、Ｃ１（３０２、３０４、３０６）の新バージョンがベース・テーブル・コンポーネント１０２内に挿入される。新しく挿入されたバージョンは、図４でＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）として示されている。上記で指摘したように、元のバージョンＡ１、Ｂ１、Ｃ１（３０２、３０４、３０６）は、バージョン・ストア内でリンク３０８によってリンクされたままとなる。しかし、新レコードＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）は、挿入オペレーションの結果として、図のように、ベース・テーブル・コンポーネント１０２内の元のレコードに取って代わる。
【００３５】
挿入プロシージャによれば、本発明は、挿入イベントに応じて、新イメージ・レコードＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）のコピーを、ベース・テーブル・コンポーネント１０２からバージョン・ストア・コンポーネント１０４内に「転送する（push）」ように構成することができる。新イメージＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）がバージョン・ストア内に入った後で、図３を参照して述べられているものと同様なリンク・コンポーネント４０８を確立し、挿入イベントを介して作成された新イメージＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）同士をリンクすることができる。
【００３６】
したがって、この新しいリンク４０８は、その挿入済みテーブルについて新イメージ・チェーンを形成する。新レコードＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）をバージョン・ストア・コンポーネント１０４内に挿入することは、レコードを従来のワークテーブル内に挿入することより測定可能に速くなる可能性があることを理解されたい。したがって、データベース・システム１００の効率を高めることができる。
【００３７】
ａｆｔｅｒトリガ機構の実装に関連して、ＤＭＬステートメントが１対の旧（たとえば削除）および新（たとえば挿入）イメージ・チェーン（３０８、４０８）を維持する場合、従来の実装の場合のようにデルタ・ワーク・テーブルが必要とされないことを、当業者なら理解するであろう。したがって、本システムおよび方法は、デルタ・ワーク・テーブルを占有することのコスト、ならびに、デルタ・ワーク・テーブルとベース・テーブルを接合することに関連するコストを完全に回避する。図４の例は２つのイメージ・チェーン（３０８、４０８）を示すが、本明細書で論じられているように、更新ステートメントだけについて、最大で２つのイメージ・チェーンを維持することができることを理解されたい。一方、挿入ステートメントおよび削除ステートメントについては、多くとも１つのイメージ・チェーンが維持されることになる。
【００３８】
図２を参照して先に指摘したように、本発明の一態様によれば、トリガに関連するレコードだけチェーン内にリンクされる。例として、２次インデックスに対応するバージョン・レコードは挿入済み／削除済みテーブル内に参加しないため、これらはチェーン内にリンクされない。また、あるテーブルに関連してトリガが存在しない場合、そのテーブルのバージョン・レコードは、チェーン内にリンクされない。
【００３９】
本発明の他の態様は、複数のテーブル内に位置する行を容れることができるリンク・チェーンを提供する。縦続更新により、複数のテーブルを単一のＤＭＬステートメント内で更新することができることを、当業者なら理解するであろう。したがって、更新された２つ以上のテーブルが、あるトリガを有する場合、新／旧イメージ・チェーン（たとえば、３０８、４０８）は、異なるテーブル内に含まれるレコード同士をリンクすることができる。
【００４０】
本発明によれば、ラージ・オブジェクト（ＬＯＢ）データに対する変更は、チェーン内にリンクされない。というのは、ＬＯＢデータは、ベース行を介してアクセスを受けることができるからである。ネストされたトリガ機構に関して、各ネスト・レベルにおけるＤＭＬステートメントは、それ自体の１対の新旧イメージ・チェーンを維持することができる。複数の対の、読取りオペレーションについて活動状態のチェーンが存在することができるが、最後のＤＭＬステートメントに属するチェーンの対だけ構築オペレーションについて活動状態とすることができることを理解されたい。
【００４１】
次に図５を参照すると、元のバージョン・レコードＡ１、Ｂ１、Ｃ１（３０２、３０４、３０６）と、新たに挿入されたバージョン・レコードＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）とを含むバージョン・ストア・コンポーネント１０４が示されている。また、例を続けると、旧レコード・チェーンと新レコード・チェーンを表すリンク３０８および４０８は、上述のように確立することができる。共通バージョンのレコード同士がリンクされた後で、後続の走査（たとえば、ＥＶＳ）オペレーションに従ってレコードを識別するために、新（４０８）イメージ・チェーンおよび旧（３０８）イメージ・チェーンの識別子を記憶することができる。
【００４２】
例示的な識別方式が、破線で示すブロック５０２内に示されている。図のように、テール識別子５０４を使用し、行の元のバージョンＡ１、Ｂ１、Ｃ１（３０２、３０４、３０６）を含む旧イメージ・チェーン３０８のテールを識別することができる。同様に、テール識別子５０６を使用し、行の挿入後バージョンＡ２、Ｂ２、Ｃ２（４０２、４０４、４０６）を含む新イメージ・チェーン４０８のテールを識別することができる。システムは、構築のために現在活動状態の新（４０８）リンク・チェーンおよび旧（３０８）リンク・チェーンのテール（５０４、５０６）を記録および追跡することができる。当技術分野で知られている識別および／または追跡の任意の周知の方法を使用することができることを理解されたい。例として、チェーンのテールは、ＵＳＭ（Update Sequence Marker）内に格納することができる。
【００４３】
インターフェースを使用し、ＤＭＬイベント中にチェーンを維持すべきかどうかシステムに通知することができることを、当業者なら理解するであろう。たとえば、テーブル上にトリガがない場合、システムにチェーンを維持しないことを通知することができる。そうでない場合には、トリガ本体解析に基づいて、それに応じてシステムに新イメージ・チェーンまたは旧イメージ・チェーン、あるいは両方を維持することを通知することができる。走査インターフェースを使用し、新イメージ・チェーンおよび旧イメージ・チェーン内のリンクに従うことによって、システムが挿入済み／削除済みテーブル内の行を走査することを可能にすることができる。
【００４４】
次にＤＭＬ実行シーケンスに転じると、本発明の一態様は、各ＤＭＬステートメントに従ってＵＳＭを利用する。この態様に鑑みた方法が図６に示されている。６０２に進むと、リンクが整い、ＤＭＬステートメントが開始される。６０４で、ＵＳＭがトリガされ、構築のために新旧イメージ・チェーンのそのテールを登録する。テールは、どのような方法でも、また、当技術分野で周知のどの記憶デバイスでも登録することができることを理解されたい。
【００４５】
次に、６０６で、システムは、ＤＭＬイベントに従ってどの特定のチェーンを維持すべきか識別することができる。６０８で、システムは、現在の動作が「挿入」オペレーションであるかどうか判定する。そうである場合、システムは、６１０で、レコードの新イメージをバージョン・ストアに「転送する」。バージョン・ストア内に入った後、６１２で、新レコードを、新イメージ・チェーンの現在のテールにリンクすることができる。６１４で、新イメージ・チェーンのテールを、挿入された新レコードを指すように更新することができる。
【００４６】
６０８で、現在のオペレーションが「挿入」オペレーションでない（たとえば、削除オペレーション）とシステムが決定した場合、システムは、６１６で、旧レコードをバージョン・ストア内に「転送する」。バージョン・ストア内に入った後、６１８で、旧レコードを、旧イメージ・チェーンの現在のテールにリンクすることができる。６２０で、旧イメージ・チェーンのテールを、旧レコード・バージョンを指すように更新することができる。最後に、必要とされる場合、６２２で、ベース・テーブル内の削除された行からバージョン・ストア内の旧イメージに同じキー値の適切なリンクが維持される。
【００４７】
例示されているように、定期的なバージョニング・オペレーションに従って、ベース行からバージョン・ストア内のバージョン付きレコードにかけてリンクを維持することができる。また、バージョニング・オペレーションでは、バージョン・ストアに転送された新イメージに対するリンクを維持することが必要とされない可能性がある。旧イメージについても、リンクは、ＤＭＬステートメントによって識別されて必要とされるときだけ維持される。したがって、たとえば、データベースがバージョン付けられていない、また、オンラインインデックスが動作していないなど、新バージョンが純粋にトリガの目的のために生成される場合には、リンクが維持されない。この性能最適化は、インデックス／ヒープ削除オペレーションにとって特に有用である。
【００４８】
次に、トリガ本体実行に転じると、図７は、本発明の一態様による方法を示す。７０２に進むと、データを挿入済み／削除済みテーブルから取り出すとき、システムは走査（たとえば、ＥＶＳ）を開始する。一実施形態では、システムは、識別子（たとえば、ＵＳＭ）を走査インターフェースに渡す。次に、７０４で、システムは、チェーン内のリンクに従い、テーブル識別に基づいてレコードをフィルタして除去する。ＬＯＢデータの場合、走査インターフェースは、バージョン付きレコード内に格納されたキー値および行内ＬＯＢ（ｉｎ−ｒｏｗ  ＬＯＢ）に基づいて、識別子を構築することができる。システムは、この識別子をＵＳＭと共に使用し、ＬＯＢ列の旧／新イメージを得ることができる。
【００４９】
次に、図８を参照すると、開示されているアーキテクチャを実行するように動作可能なコンピュータのブロック図が示されている。本発明の様々な態様に対する追加のコンテキストを提供するために、図８と以下の考察は、本発明の様々な態様を実装することができる好適なコンピューティング環境８００について簡潔に一般的に述べることが意図されている。本発明について、上記で１つまたは複数のコンピュータシステム上で動作することができるコンピュータ実行可能命令の一般的な状況で述べられているが、本発明はまた、他のプログラム・モジュールと組み合わせて、かつ／またはハードウェアとソフトウェアの組合せとして実装することができることを、当業者なら理解するであろう。
【００５０】
一般に、プログラム・モジュールは、特定のタスクを実行する、あるいは特定の抽象データタイプを実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、本発明の方法は、それぞれ１つまたは複数の関連デバイスに動作可能に結合することができる、シングル・プロセッサまたはマルチ・プロセッサ・コンピュータ・システム、ミニ・コンピュータ、メインフレーム・コンピュータ、ならびにパーソナル・コンピュータ、ハンドヘルド・コンピューティング・デバイス、マイクロ・プロセッサをベースとする、またはプログラム可能な家電などに実装することができる。
【００５１】
本発明の図の諸態様はまた、通信ネットワークを介してリンクされる遠隔処理デバイスによってある種のタスクが実行される分散コンピューティング環境内で実施することができる。分散コンピューティング環境内では、プログラム・モジュールは、ローカル、遠隔共にメモリ記憶デバイス内に位置することができる。
【００５２】
コンピュータは、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータによってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性媒体と不揮発性媒体、取外し式媒体と非取外し式媒体を共に含む。限定ではなく例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装される揮発性と不揮発性、取外し式と非取外し式の媒体が共に含まれる。コンピュータ記憶媒体には、それだけには限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル・ビデオ・ディスク（ＤＶＤ）もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を記憶するために使用することができる、またコンピュータによってアクセスすることができる任意の他の媒体が含まれる。
【００５３】
通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを、搬送波または他の移送機構など変調データ信号に統合し、任意の情報送達媒体を含む。「変調データ信号」という用語は、情報を信号に符号化するようにその特性の１つまたは複数が設定された、または変化した信号を意味する。限定ではなく例を挙げると、通信媒体には、有線ネットワークまたは直接配線接続など有線媒体と、音響、ＲＦ、赤外線および他の無線媒体など無線媒体とが含まれる。上記のいずれかの組合せもまた、コンピュータ可読媒体の範囲内に含むべきである。
【００５４】
図８を参照すると、コンピュータ８０２を含む、本発明の様々な態様を実装するための例示的な環境８００が示されており、コンピュータ８０２は、処理装置８０４、システム・メモリ８０６、システム・バス８０８を含む。システム・バス８０８は、それだけには限らないが、システム・メモリ８０６を含むシステム・コンポーネントを処理装置８０４に結合する。処理装置８０４は、任意の様々な市販のプロセッサとすることができる。デュアル・マイクロ・プロセッサおよび他のマルチ・プロセッサ・アーキテクチャもまた、処理装置８０４として使用することができる。
【００５５】
システム・バス８０８は、（メモリ・コントローラ付き、または無しの）メモリ・バス、周辺機器バス、および様々な市販のバス・アーキテクチャのいずれかを使用するローカル・バスにさらに相互接続することができる、いくつかのタイプのバス構造のいずれかとすることができる。システム・メモリ８０６は、読出し専用メモリ（ＲＯＭ）８１０およびランダム・アクセス・メモリ（ＲＡＭ）８１２を含む。基本入出力システム（ＢＩＯＳ）は、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなど不揮発性メモリ８１０内に記憶されており、ＢＩＯＳは、起動中などにコンピュータ８０２内の要素間で情報を転送するのを助ける基本ルーチンを含む。また、ＲＡＭ８１２には、データをキャッシュするためのスタティックＲＡＭなど高速ＲＡＭが含まれる可能性がある。
【００５６】
コンピュータ８０２は、適切なシャーシ（図示せず）内で外部使用のために構成することもできる内部ハードディスク・ドライブ（ＨＤＤ）８１４（たとえば、ＥＩＤＥ、ＳＡＴＡ）と、（たとえば、取外し式ディスク８１８との間で読出しまたは書込みをするための）磁気フロッピー（登録商標）ディスク・ドライブ（ＦＤＤ）８１６と、（たとえば、ＣＤ−ＲＯＭディスク８２２を読み取る、または、ＤＶＤなど他の大容量光媒体との間で読出しまたは書込みをするための）光ディスク・ドライブ８２０とをさらに含む。ハードディスク・ドライブ８１４、磁気ディスク・ドライブ８１６、光ディスク・ドライブ８２０は、それぞれハードディスク・ドライブ・インターフェース８２４、磁気ディスク・ドライブ・インターフェース８２６、光ドライブ・インターフェース８２８によってシステム・バス８０８に接続することができる。外部ドライブ実装用のインターフェース８２４は、ユニバーサル・シリアル・バス（ＵＳＢ）とＩＥＥＥ１３９４インターフェース技術のうち少なくとも１つまたは両方を含む。
【００５７】
ドライブとそれらの関連コンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性記憶を実現する。コンピュータ８０２の場合、ドライブおよび媒体は、適切なデジタルフォーマットで任意のデータの記憶に対処する。上記のコンピュータ可読媒体の説明は、ＨＤＤ、取外し式磁気ディスク、ＣＤまたはＤＶＤなど取外し式光媒体を参照しているが、ｚｉｐドライブ、磁気カセット、フラッシュ・メモリ・カード、カートリッジなど、コンピュータによって可読である他のタイプの媒体もまた、例示的な動作環境内で使用することができること、さらに、任意のそのような媒体は、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることを、当業者なら理解されたい。
【００５８】
オペレーティング・システム８３０、１つまたは複数のアプリケーション・プログラム８３２、他のプログラム・モジュール８３４、プログラムデータ８３６を含めて、いくつかのプログラム・モジュールは、ドライブおよびＲＡＭ８１２に記憶することができる。オペレーティング・システム、アプリケーション、モジュール、および／またはデータの全部または一部分もまた、ＲＡＭ８１２内でキャッシュすることができる。
【００５９】
本発明は、様々な市販のオペレーティング・システム、またはオペレーティング・システムの組合せで実装することができることを理解されたい。
【００６０】
ユーザは、１つまたは複数の有線／無線入力デバイス、たとえばキーボード８３８や、マウス８４０などポインティングデバイスを介してコンピュータ８０２にコマンドや情報を入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ＩＲリモート・コントロール、ジョイスティック、ゲームパッド、スタイラス・ペン、タッチスクリーンなどが含まれる可能性がある。これらの、また他の入力デバイスは、しばしば、システム・バス８０８に結合される入力デバイス・インターフェース８４２を介して処理装置８０４に接続されるが、パラレル・ポート、ＩＥＥＥ１３９４シリアル・ポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなど、他のインターフェースによって接続することができる。
【００６１】
モニタ８４４または他のタイプのディスプレイ・デバイスもまた、ビデオ・アダプタ８４６など、あるインターフェースを介してシステム・バス８０８に接続される。コンピュータは、モニタ８４４に加えて、一般にスピーカ、プリンタなど他の周辺出力デバイス（図示せず）をも含む。
【００６２】
コンピュータ８０２は、遠隔コンピュータ８４８など１つまたは複数の遠隔コンピュータに対する、有線および／または無線通信を介した論理接続を使用してネットワーク環境内で動作することができる。遠隔コンピュータ８４８は、ワークステーション、サーバ・コンピュータ、ルータ、パーソナル・コンピュータ、可搬型コンピュータ、マイクロ・プロセッサをベースとする娯楽用家電、ピア・デバイスまたは他の共通ネットワーク・ノードとすることができ、簡潔にするために、メモリ記憶デバイス８５０だけが示されているが、一般に、コンピュータ８０２に関して上述した要素の多数または全部を含む。図の論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）８５２、および／またはより大きなネットワーク、たとえば広域ネットワーク（ＷＡＮ）８５４を含む。そのようなＬＡＮおよびＷＡＮネットワーク環境は、事務所内で、また会社内で普通であり、イントラネットなど全社コンピュータ・ネットワークを円滑化し、それらのすべてが、グローバル通信ネットワーク、たとえばインターネットに接続することができる。
【００６３】
コンピュータ８０２は、ＬＡＮネットワーク環境内で使用されるとき、有線および／または無線通信ネットワーク・インターフェースまたはアダプタ８５６を介してローカル・ネットワーク８５２に接続される。アダプタ８５６は、ＬＡＮ８５２に対する有線または無線通信を容易にすることができ、ＬＡＮ８５２はまた、無線アダプタ８５６と通信するために配置された無線アクセス・ポイントを含むことができる。コンピュータ８０２は、ＷＡＮネットワーク環境内で使用されるとき、モデム８５８を含むことができ、あるいは、ＬＡＮ上の通信サーバに接続され、あるいは、インターネットによってなど、ＷＡＮ８５４を介して通信を確立するための他の手段を有する。モデム８５８は、内部にあっても外部にあっても、また有線デバイスであっても無線デバイスであってもよく、シリアル・ポート・インターフェース８４２を介してシステム・バス８０８に接続される。ネットワーク環境では、コンピュータ８０２に関して示されたプログラム・モジュール、またはその一部分を、遠隔メモリ／記憶デバイス８５０に記憶することができる。図のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することができることを理解されたい。
【００６４】
コンピュータ８０２は、無線通信において動作可能に配置された任意の無線デバイスまたはエンティティ、たとえば、プリンタ、スキャナ、デスクトップおよび／または可搬型コンピュータ、可搬型データアシスタント、通信衛星、無線で検出可能なタグに関連付けられた任意の機器または場所（たとえば、キオスク、新聞雑誌売り場、休憩室）、ならびに電話と通信するように動作可能である。これは、少なくともＷｉ−ＦｉおよびＢｌｕｅｔｏｏｔｈ（商標）無線技術を含む。したがって、通信は、従来のネットワークの場合のように予め定義された構造とすることも、単に少なくとも２つのデバイス間のアドホック通信とすることもできる。
【００６５】
Ｗｉ−Ｆｉ、またはＷｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙは、家庭で長椅子から、またはホテル客室内のベッドから、または仕事中に会議室からワイヤ無しでインターネットに接続することを可能にする。Ｗｉ−Ｆｉは、そのようなデバイス、たとえばコンピュータが室内と外、すなわち基地局の範囲内のどこでもデータを送受信することが可能になる携帯電話のような無線技術である。Ｗｉ−Ｆｉネットワークは、ＩＥＥＥ８０２．１１（ａ、ｂ、ｇなど）と呼ばれる無線技術を使用し、安全な、信頼性の高い高速無線接続を実現する。Ｗｉ−Ｆｉネットワークは、コンピュータを互いに、またインターネットに、また（ＩＥＥＥ８０２．３またはイーサネット（登録商標）を使用する）有線ネットワークに接続するために使用することができる。Ｗｉ−Ｆｉネットワークは、免許不要の２．４ＧＨｚ無線帯域および５ＧＨｚ無線帯域内で、１１Ｍｂｐｓ（８０２．１１ｂ）または５４Ｍｂｐｓ（８０２．１１ａ）データ転送速度を用いて、または両方の帯域を含む製品（デュアルバンド）を用いて動作し、それにより、そのネットワークは、多数の事務所内で使用されている基本的な１０ＢａｓｅＴ有線イーサネット（登録商標）ネットワークに似た実世界性能を提供することができる。
【００６６】
次に、図９を参照すると、本発明による例示的なコンピューティング環境の概略ブロック図が示されている。システム９００は、１つまたは複数のクライアント９０２を含む。クライアント９０２は、ハードウェアおよび／またはソフトウェア（たとえば、スレッド、プロセス、コンピューティング・デバイス）とすることができる。クライアント９０２は、たとえば、本発明を使用することによってクッキーおよび／または関連の文脈情報を収容することができる。システム９００はまた、１つまたは複数のサーバ９０４を含む。サーバ９０４もまた、ハードウェアおよび／またはソフトウェア（たとえば、スレッド、プロセス、コンピューティング・デバイス）とすることができる。サーバ９０４は、たとえば、本発明を使用することによって変換を実行するためのスレッドを収容することができる。クライアント９０２とサーバ９０４の間の１つの可能な通信は、２つ以上のコンピュータ・プロセス間で伝送されるように適合されたデータ・パケットの形態にあるものとすることができる。データ・パケットは、たとえば、クッキーおよび／または関連のコンテキスト情報を含むことができる。システム９００は、クライアント９０２とサーバ９０４の間の通信を容易にするために使用することができる通信フレームワーク９０６（たとえば、インターネットなどグローバル通信ネットワーク）を含む。
【００６７】
通信は、（光ファイバを含む）有線および／または無線技術を介してうまく進めることができる。クライアント９０２は、クライアント９０２にとってローカルな情報（たとえば、クッキーおよび／または関連のコンテキスト情報）を記憶するために使用することができる１つまたは複数のクライアント・データ・ストア９０８に動作可能に接続される。同様に、サーバ９０４は、サーバ９０４にとってローカルな情報を記憶するために使用することができる１つまたは複数のサーバ・データ・ストア９１０に動作可能に接続される。
【００６８】
上述したものには、本発明の諸例が含まれる。当然ながら、本発明について述べるためにコンポーネントまたは方法の考えられるあらゆる組合せについて述べることは可能でなく、本発明の多数の他の組合せおよび変形が可能であることを、当業者なら理解することができる。したがって、本発明は、添付の特許請求の範囲の精神および範囲内に入るそのような変更、修正、および変形形態をすべて包含するものとする。さらに「ｉｎｃｌｕｄｅｓ（含む）」という用語が詳細な説明または特許請求の範囲で使用されている限り、そのような用語は、「ｃｏｍｐｒｉｓｉｎｇ（備える）」が特許請求の範囲内で転換句として使用されたとき解釈されるように「ｃｏｍｐｒｉｓｉｎｇ」という用語と同様に包括的であるものとする。
【図面の簡単な説明】
【００６９】
【図１】本発明の一態様によるデータベース管理システム（ＤＢＭＳ）の全体的なコンポーネントブロック図である。
【図２】本発明の一態様による、データ操作言語（ＤＭＬ）イベントが実行されたときバージョンをベースとするリンクを確立するための一方法を示す図である。
【図３】本発明の一態様による、「削除」オペレーションに関連するＤＢＭＳシステムの全体的なコンポーネントブロック図である。
【図４】本発明の一態様による、「挿入」オペレーションに関連するＤＢＭＳシステムの全体的なコンポーネントブロック図である。
【図５】本発明の一態様による、バージョン・ストアと関連リンクの全体的なコンポーネントブロック図である。
【図６】本発明の一態様による、リンクを確立するための一方法を示す図である。
【図７】本発明の一態様による、トリガ機構を実行するための一方法を示す図である。
【図８】開示されているアーキテクチャを実行するように動作可能なコンピュータのブロック図である。
【図９】本発明による例示的なコンピューティング環境の概略ブロック図である。
【図１】
2007531152.tif 000003
【図２】
2007531152.tif 000004
【図３】
2007531152.tif 000005
【図４】
2007531152.tif 000006
【図５】
2007531152.tif 000007
【図６】
2007531152.tif 000008
【図７】
2007531152.tif 000009
【図８】
2007531152.tif 000010
【図９】
2007531152.tif 000011
【国際調査報告】
2007531152.tif 000012