JP2013164846A - 関連付けられたデータ依存関係 - Google Patents

関連付けられたデータ依存関係 Download PDF

Info

Publication number
JP2013164846A
JP2013164846A JP2013021456A JP2013021456A JP2013164846A JP 2013164846 A JP2013164846 A JP 2013164846A JP 2013021456 A JP2013021456 A JP 2013021456A JP 2013021456 A JP2013021456 A JP 2013021456A JP 2013164846 A JP2013164846 A JP 2013164846A
Authority
JP
Japan
Prior art keywords
database object
database
dependency
relationship
computer
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
JP2013021456A
Other languages
English (en)
Other versions
JP2013164846A5 (ja
JP6174328B2 (ja
Inventor
Edward Tewksbary David
エドワード ティークスバリー デービッド
Milliken Clark David
デービッド ミリケン クラーク
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.)
Dassault Systemes Enovia Corp
Original Assignee
Dassault Systemes Enovia 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 Dassault Systemes Enovia Corp filed Critical Dassault Systemes Enovia Corp
Publication of JP2013164846A publication Critical patent/JP2013164846A/ja
Publication of JP2013164846A5 publication Critical patent/JP2013164846A5/ja
Application granted granted Critical
Publication of JP6174328B2 publication Critical patent/JP6174328B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Abstract

【課題】複数のデータベースオブジェクトの投影インデックスの最新性を保持する際に使用するためのコンピュータ実施方法を提供すること。
【解決手段】このコンピュータ実施方法は、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間における接続を表す投影インデックスを作成するステップと(302)、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定するステップと(308)、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるパス依存関係を特定するステップと(316)、エンティティー依存関係およびパス依存関係のうちの一方または両方の修正に応答して投影インデックスを更新するステップと(320)を含む。
【選択図】図3

Description

本明細書に記載されている実施形態は、一般には、データベースの技術に関し、より詳細には、インデックス作成の技術および方法に関する。
リレーショナルデータベースに基づく少なくともいくつかの知られているアプリケーションは、データベースオブジェクトが1つまたは複数の関係を通じてその他のデータベースオブジェクトに接続されることを可能にするモデリング機能(modeling capability)を提供する。より具体的には、そのようなアプリケーションは、タイプによって、また、どんなタイプの関係がデータベースオブジェクトどうしを接続するかに従って、データベースオブジェクトを記述することを可能にする。その上、そのようないくつかのアプリケーションは、正規化されたデータに対する検索を可能にする。しかし、正規化されたデータの検索は一般に、過度なプロセッサおよび/またはメモリの利用を必要とする。その他のアプリケーションは、検索がインデックスに基づいて実行されることを可能にする。しかし、これらのインデックスは、データベース内でのノードおよび/またはノードの関係(nodal relationship)の追加、修正、および/または削除に起因して、古くなる場合が多い。
本発明の一態様においては、複数のデータベースオブジェクトの投影インデックスの最新性(currency)を保持する際に使用するためのコンピュータ実施方法を提供することを目的とする。
このコンピュータ実施方法は、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間における接続を表す投影インデックスを作成するステップと、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定するステップと、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるパス依存関係を特定するステップと、エンティティー依存関係およびパス依存関係のうちの一方または両方の修正に応答して投影インデックスを更新するステップとを含む。
別の態様においては、あるコンピュータシステムが、エンティティー依存関係およびパス依存関係によって接続されている少なくとも第1のデータベースオブジェクトおよび第2のデータベースオブジェクトを含む複数のデータベースオブジェクトを格納するように構成されているメモリエリアを含む。このメモリエリアはまた、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間における関係が、第1のデータベースオブジェクトに関連付けられて格納されるようにデータベースオブジェクトの投影インデックスを格納する。このコンピュータシステムはまた、メモリエリアに動作可能に結合されているプロセッサを含む。このプロセッサは、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定し、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるパス依存関係を特定し、エンティティー依存関係およびパス依存関係のうちの一方または両方の修正に応答して投影インデックスを更新するように構成されている。
別の態様においては、複数のデータベースオブジェクトの投影インデックスの最新性を保持する際に使用するためのコンピュータプログラム製品が提供され、このコンピュータプログラム製品は、コンピュータによって実行可能なコンポーネントを有する1つまたは複数のコンピュータ可読記録媒体を含む。それらのコンポーネントは、プロセッサによって実行されたときに、エンティティー依存関係およびパス依存関係によって接続されている少なくとも第1のデータベースオブジェクトおよび第2のデータベースオブジェクトを含むデータベースオブジェクトをメモリエリア内に格納すること、および第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間における関係が、第1のデータベースオブジェクトに関連付けられて格納されるようにデータベースオブジェクトの投影インデックスをメモリエリア内に格納することをプロセッサに行わせるインデックス作成コンポーネントを含む。それらのコンポーネントはまた、プロセッサによって実行されたときに、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定することをプロセッサに行わせるエンティティー依存関係コンポーネントと、プロセッサによって実行されたときに、第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるパス依存関係を特定することをプロセッサに行わせるパス依存関係コンポーネントとを含む。インデックス作成コンポーネントはまた、エンティティー依存関係およびパス依存関係のうちの一方または両方の修正に応答して投影インデックスおよび第1のデータベースオブジェクトを更新することをプロセッサに行わせる。
本発明の1つまたは複数の実施形態の詳細は、添付の図面および以降の説明に記載されている。本発明のその他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
2つのデータベースオブジェクトの間におけるエンティティー依存関係およびパス依存関係を示すシンプルなブロック図である。 投影を使用してリレーショナルデータベースをどのようにフラット化することができるかを示す図である。 投影インデックスの最新性を保持する際に使用するための例示的なコンピュータ実施方法を示すフローチャートである。 例示的なコンピュータシステムを示すブロック概略図である。 図4に示されているコンピュータシステムと共に使用するための例示的なコンピュータアーキテクチャーを示すブロック概略図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。 本明細書に記載されている実施形態のユースケースを示すブロック図である。
本明細書に記載されている実施形態においては、「データベースオブジェクト」という用語は一般に、データを格納すること、データのクエリーを行うこと、またはデータを参照することのために使用される、データベース内の任意の定義されたオブジェクトを指す。例示的なタイプのデータベースオブジェクトは、テーブル、ビュー、クラスタ、シーケンス、インデックス、ストアドプロシージャー、およびシノニムを含む。上記の例は、例示的なものにすぎず、したがって、けっして「データベースオブジェクト」という用語の定義および/または意味を限定することを意図していない。
最新のデータベースオブジェクト値および/またはパスを保持する際に使用するためのシステム、方法、装置、およびコンピュータプログラム製品の例示的な実施形態が、本明細書に記載されている。本明細書に記載されている実施形態は、投影されるデータに関連付けられている2つのタイプの依存関係を識別することによって、データベース内の古いデータを減らすことを容易にする。第1のタイプの依存関係は、エンティティー依存状態(dependence)であり、この場合、データは、何らかのデータベースオブジェクトの一部として格納され、それによって、そのデータベースオブジェクトに変更があれば、別のデータベースオブジェクト上に投影される値が影響を受ける可能性が生じる。エンティティー依存関係は、単一のデータベースオブジェクトを識別し、たとえばオブジェクト識別子を使用して記述される。第2のタイプの依存関係は、パス依存状態である。2つのデータベースオブジェクトの間における1つまたは複数の関係が修正されると、投影によって別の一式のエンティティーへ導かれる可能性がある。パス依存関係は、たとえば、エンティティー識別子、関係タイプ、および関係方向(relationship direction)を使用して記述することができる。
図1は、2つのデータベースオブジェクトの間におけるエンティティー依存関係およびパス依存関係を示すシンプルなブロック図である。具体的には、図1は、第1のデータベースオブジェクト(Obj1)102と、第2のデータベースオブジェクト(Obj2)104と、「foo」という値を有する第3のデータベースオブジェクト(Obj3)106とを含む複数のデータベースオブジェクト100を示している。図1はまた、データベースオブジェクト100どうしの間における複数の関係108を示している。具体的には、第1の関係(Rel1)110が、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間に存在し、第2の関係(Rel2)112が、第2のデータベースオブジェクト104と、第3のデータベースオブジェクト106との間に存在する。それぞれの関係108は、1つの関係タイプに関連付けられている。たとえば、第1の関係110は、関係タイプREL1に関連付けられており、第2の関係112は、関係タイプREL2に関連付けられている。その上、それぞれの関係108は、「to」または「from」など、1つの関係方向に関連付けられており、この関係方向は、2つの関連したデータベースオブジェクトの間における依存関係の方向を示す。
図1の例においては、第1のデータベースオブジェクト102は、依存エンティティーである。なぜなら、第3のデータベースオブジェクト106に対する変更があれば、その変更によって、第1のデータベースオブジェクト102および/または第2のデータベースオブジェクト104上に投影される値が潜在的に変更される可能性があるためである。したがって、第3のデータベースオブジェクト106と、少なくとも第1のデータベースオブジェクト102との間に、エンティティー依存状態114が存在する。その上、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間に、第1のパス依存関係116が存在する。上述のように、第1のパス依存関係116は、第1のデータベースオブジェクト102の識別子などのエンティティー識別子、関係タイプ、および、第1のデータベースオブジェクト102から第2のデータベースオブジェクト104へなどの関係方向を使用して識別することができる。したがって、図1に示されているように、第1のパス依存関係116は、Obj1/REL1/fromとして識別することができる。同様に、第2のデータベースオブジェクト104と、第3のデータベースオブジェクト106との間に、第2のパス依存関係118が存在する。上述のように、第2のパス依存関係118は、第2のデータベースオブジェクト104の識別子などのエンティティー識別子、関係タイプ、および、第3のデータベースオブジェクト106から第2のデータベースオブジェクト104へなどの関係方向を使用して識別することができる。したがって、図1に示されているように、第2のパス依存関係118は、Obj2/REL2/toとして識別することができる。
データベースオブジェクト100および関係108のそれぞれは、メタデータ120を含むことができる。そのようなメタデータ120を検索する際には、特定のデータベースオブジェクト100、たとえば第3のデータベースオブジェクト106を、接続されているデータベースオブジェクト100、たとえば第1のデータベースオブジェクト102に関連して検索することが望ましい場合が多い。たとえば、別のデータベースオブジェクト100が所与のメタデータ値を有する場合には、その別のデータベースオブジェクト100に接続されているすべてのデータベースオブジェクト100を特定するように検索を構築することができる。そのような検索は、既存のデータベースオブジェクト構造が維持され、それによってクエリーが、接続されている複数のデータベースオブジェクト100を横断して、それぞれが所与の基準にマッチするかどうかが確認される場合には、正規化されたデータに対して実行することができる。少なくともいくつかの知られているリレーショナルデータベースシステム、たとえば、大きなデータセットを伴うリレーショナルデータベースシステムにおいては、このことによって、高価なメモリリソースおよび/または処理リソースが必要となる。したがって、本発明の実施形態は、データベースオブジェクト構造を「フラット化」する。そのようなアプローチにおいては、それぞれのデータベースオブジェクト100は、別々のフォームに格納され、その他の接続されているデータベースオブジェクト100のメタデータ120は、それらの接続されているデータベースオブジェクト100が、あたかも元のデータベースオブジェクト100上に直接存在するかのように、元のデータベースオブジェクト100上に投影される。そのような「投影」は、データの「フラット化」と呼ばれる場合が多い。その上、そのような投影は、より迅速でリソース集約度のより低い検索を容易にするために、更新可能なインデックスとして格納することができる。
図2は、投影を使用してリレーショナルデータベースをどのようにフラット化することができるかを示している。具体的には、図2は、上述したような、データベースオブジェクト100と、データベースオブジェクト100どうしの間における関係108とを含む、リレーショナルデータベースなどのデータベース200のブロック図である。図2の右手側には、投影インデックス202のブロック図表示がある。具体的には、図2は、あるデータベースオブジェクト、たとえば第3のデータベースオブジェクト106のメタデータ値120が、別のデータベースオブジェクト、たとえば第1のデータベースオブジェクト102上にどのように投影されるかを示している。
図3は、データベースオブジェクト100(図1に示されている)の投影インデックス202(図2に示されている)の最新性を保持する際に使用するための例示的なコンピュータ実施方法を示すフローチャート300である。例示的な一実施形態においては、第1のデータベースオブジェクト102と、少なくとも第2のデータベースオブジェクト104(両方とも、図1に示されている)との間における接続を表すために、投影インデックス202が302において作成される。図2に示されているように、第1のデータベースオブジェクト102と第3のデータベースオブジェクト106(図1に示されている)との間における接続を表すために、投影インデックス202を作成することができる。投影インデックス202は、メモリエリア内に格納される。その上、以降でさらに詳細に説明するように、投影インデックス202は、1つまたは複数のデータベースオブジェクト100の値に対する修正、および/またはデータベースオブジェクト100どうしの間における関係108に対する修正を反映するように更新することができる。
いくつかの実施形態においては、投影インデックス202は、データベースオブジェクト100をメモリエリア内に格納することによって作成され、それによって、第1のデータベースオブジェクト102と、少なくとも第2のデータベースオブジェクト104との間におけるエンティティー依存関係および/またはパス依存関係が、第1のデータベースオブジェクト102に関連付けられてメモリエリア内に格納される。
例示的な一実施形態においては、コンピュータが、データベースオブジェクト100どうしの間における、たとえば、第1のデータベースオブジェクト102と、別のデータベースオブジェクト100との間における1つまたは複数のエンティティー依存関係を304において処理する。たとえば、第1のデータベースオブジェクト102と、第3のデータベースオブジェクト106との間において、エンティティー依存関係114が検知される。コンピュータは、修正または削除されたデータベースオブジェクト100のリストを306において特定する。投影インデックス202に基づいて、コンピュータは、メモリエリアを検索して、第2のデータベースオブジェクト104および/または第3のデータベースオブジェクト106が修正または削除されたときに影響を受けたエンティティー依存関係を308において特定する。たとえば、投影インデックス202に基づいて、コンピュータは、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104および/または第3のデータベースオブジェクト106との間におけるエンティティー依存関係114が、第2のデータベースオブジェクト104および/または第3のデータベースオブジェクト106の修正によって影響を受けているかどうかを特定する。第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104および/または第3のデータベースオブジェクト106との間における影響を受けたエンティティー依存関係を特定したことに応答して、コンピュータは、310において、第1のデータベースオブジェクト102が最新ではない(noncurrent)ことをメモリエリア内に示す。
その上、コンピュータはまた、データベースオブジェクト100どうしの間における、たとえば、第1のデータベースオブジェクト102と、別のデータベースオブジェクト100との間における1つまたは複数のパス依存関係を312において処理する。たとえば、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間において、第1のパス依存関係116(図1に示されている)が検知され、第2のデータベースオブジェクト104と、第3のデータベースオブジェクト106との間において、第2のパス依存関係118(図1に示されている)が検知される。コンピュータは、データベースオブジェクト100どうしの間における修正または削除された関係108のリストを314において特定する。投影インデックス202に基づいて、コンピュータは、メモリエリアを検索して、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間における第1のパス依存関係116などの関係が修正されたときに影響を受けたパス依存関係を316において特定する。同様に、コンピュータは、第2のデータベースオブジェクト104と、第3のデータベースオブジェクト106との間における第2のパス依存関係118が修正されたことを検知する。影響を受けたパス依存関係を特定したことに応答して、コンピュータは、318において、第1のデータベースオブジェクト102が最新ではないことをメモリエリア内に示す。
例示的な一実施形態においては、コンピュータは、エンティティー依存関係およびパス依存関係のうちの少なくとも一方の修正を検知したことに応答して、および第1のデータベースオブジェクト102が最新ではないとしてマークまたは表示されたときに、320において投影インデックス202を作成または更新する。たとえば、コンピュータは、第1のデータベースオブジェクト102を更新して、影響を受けたエンティティー依存関係および/または影響を受けたパス依存関係の修正を反映することによって、320において投影インデックス202を更新する。
図4は、最新のデータベースオブジェクト値および/またはパスを保持する際に使用するための、ならびに上述のプロセス、および/または上述のプロセスに関連付けることができるさらなるプロセスを実行する際に使用するための例示的なコンピュータシステム400を示すブロック概略図である。例示的な一実施形態においては、メモリエリア402が、メタデータ、データベースオブジェクト、データベースオブジェクトどうしの間における関係、データベースオブジェクトどうしの間におけるエンティティー依存関係、データベースオブジェクトどうしの間におけるパス依存関係、または任意の適切な情報もしくはデータなどのデータを格納する際に使用するための1つまたは複数のストレージデバイス404を含む。いくつかの実施形態においては、メモリエリア402は、サーバシステム406に結合されており、そしてサーバシステム406は、ネットワーク410を介して管理者システムおよび/またはユーザシステムなどのクライアントシステム408に結合されている。ストレージデバイス404は、1つもしくは複数のデータベースとして具体化することができ、単一のもしくは複数の地理的サイトに配置することができ、またはサーバシステム406と統合することができる。
理解できるように、ネットワーク410は、インターネットなどの公的なネットワーク、またはLANもしくはWANネットワークなどの私的なネットワーク、またはそれらの任意の組合せとすることができ、PSTNまたはISDNサブネットワークを含むこともできる。ネットワーク410はまた、イーサネット(登録商標)ネットワークなどの有線ネットワークとすることもでき、またはEDGE、3G、および4Gワイヤレスセルラーシステムを含むセルラーネットワークなどのワイヤレスネットワークとすることもできる。ワイヤレスネットワークは、WiFi、Bluetooth(登録商標)、または知られているその他の任意のワイヤレス形態の通信とすることもできる。したがってネットワーク410は、例示的なものにすぎず、けっして本発明の進歩の範囲を限定するものではない。
当業者なら認識するように、クライアントシステム408は、図5を参照して後述するコンピュータシステム、または知られているその他の任意のコンピューティングシステムなど、任意の適切なコンピュータシステムとすることができる。その上、サーバシステム406は、上述のプロセス、および/または上述のプロセスに関連付けることができる任意のさらなるプロセスを実行するように構成されているということを理解されたい。
サーバシステム406は、上述のプロセスを実行するための非一時的なコンピュータ可読命令を格納し、それらの命令を、ネットワーク410を介してクライアントシステム408に提供する。その上、サーバシステム406は、クライアントシステム408にとって必要とされた際には、メモリエリア402からデータを提供することもできる。したがって図4は、クラウドコンピューティング、分散コンピューティングなどを介したコンピュータシステム400の実装形態を含む。
図5は、サーバシステム406および/またはクライアントシステム408(それぞれ図4に示されている)と共に使用するための例示的なコンピュータアーキテクチャー500を示すブロック概略図である。
例示的な一実施形態においては、コンピュータアーキテクチャー500は、上述のプロセス、および/または上述のプロセスに関連付けることができる任意のさらなるプロセスを実行する1つまたは複数のプロセッサ502(CPU)を含む。「プロセッサ」という用語は一般に、システムおよびマイクロコントローラ、RISC(reduced instruction set circuit)、ASIC(application−specific integrated circuit)、プログラマブルロジック回路、および/または本明細書に記載されている機能を実行することができるその他の任意の回路もしくはプロセッサを含む任意のプログラム可能なシステムを指すということを理解されたい。上記の例は、例示的なものにすぎず、したがって、けっして「プロセッサ」という用語の定義および/または意味を限定することを意図していない。
上述のプロセス、および/または上述のプロセスに関連付けることができる任意のさらなるプロセスのステップは、コンピュータ実行可能命令として、たとえば、システムバス506によってプロセッサ502に動作可能におよび/または通信可能に結合されているメモリエリア504内に格納することができる。「メモリエリア」とは、本明細書において使用される際には、一般に、最新のデータベースオブジェクト値および/またはパスを保持する際に役立つように1つまたは複数のプロセッサによって実行可能なプログラムコードおよび命令を格納する任意の手段を指す。メモリエリア504は、1つまたは複数の形態のメモリを含むことができる。たとえばメモリエリア504は、RAM(random−access memory)508を含むことができ、RAM508は、不揮発性RAM、磁気RAM、強誘電体RAM、および/またはその他の形態のRAMを含むことができる。メモリエリア504は、ROM(read−only memory)510、および/またはフラッシュメモリ、および/またはEEPROM(electrically−programmable read−only memory)を含むこともできる。その他の任意の適切な磁気、光学、および/または半導体メモリ、たとえばHDD(hard−disk drive)512を単体で、またはその他の形態のメモリと組み合わせて、メモリエリア504内に含むことができる。HDD512は、プロセッサ502にメッセージを伝送する際に、およびプロセッサ502からメッセージを受け取る際に使用するためのディスクコントローラ514に結合することもできる。その上、メモリエリア504は、適切なカートリッジディスク、CD−ROM、DVD、またはUSBメモリなど、着脱可能なまたは取り外し可能なメモリ516とすることもでき、またはそうしたメモリ516を含むこともできる。上記の例は、例示的なものにすぎず、したがって、けっして「メモリエリア」という用語の定義および/または意味を限定することを意図していない。
さらに、いくつかの実施形態においては、メモリエリア504は、データベースを含む。本明細書において使用される際には、「データベース」という用語は一般に、階層型データベース、リレーショナルデータベース、フラットファイルデータベース、オブジェクトリレーショナルデータベース、オブジェクト指向データベース、およびコンピュータシステム内に格納されるレコードまたはデータのその他の任意の構造化された集合を含むデータの任意の集合を指す。上記の例は、例示的なものにすぎず、したがって、けっしてデータベースという用語の定義および/または意味を限定することを意図していない。データベースの例は、Oracle(登録商標) Database、MySQL、IBM(登録商標)DB2、Microsoft(登録商標)SQL Server、Sybase(登録商標)、およびPostgreSQLを含むが、それらを含むことだけに限定されない。しかし、本明細書に記載されているシステムおよび方法を可能にする任意のデータベースを使用することができる。(Oracleは、カリフォルニア州レッドウッドショアーズのOracle Corporationの登録商標であり、IBMは、ニューヨーク州アーモンクのInternational Business Machines Corporationの登録商標であり、Microsoftは、ワシントン州レドモンドのMicrosoft Corporationの登録商標であり、Sybaseは、カリフォルニア州ダブリンのSybaseの登録商標である。)
コンピュータアーキテクチャー500はまた、ディスプレイデバイス518を含み、ディスプレイデバイス518は、ディスプレイコントローラ520に結合されており、たとえば動作可能に結合されている。ディスプレイコントローラ520は、ディスプレイデバイス518によって表示するためのデータを、システムバス506を介して受け取る。ディスプレイデバイス518は、モニタ、テレビジョンディスプレイ、プラズマディスプレイ、LCD(liquid crystal display)、LED(light−emitting diode)に基づくディスプレイ、OLED(organic LED)に基づくディスプレイ、ポリマーLEDに基づくディスプレイ、表面伝導型電子放出素子に基づくディスプレイ、投影および/もしくは反映されたイメージを含むディスプレイ、またはその他の任意の適切な電子デバイスもしくはディスプレイメカニズムとすることができるが、それらには限定されない。その上、ディスプレイデバイス518は、関連付けられたタッチスクリーンコントローラを伴うタッチスクリーンを含むことができる。上記の例は、例示的なものにすぎず、したがって、けっして「ディスプレイデバイス」という用語の定義および/または意味を限定することを意図していない。
加えて、コンピュータアーキテクチャー500は、ネットワーク(図5には示されていない)と通信する際に使用するためのネットワークインターフェース522を含む。その上、コンピュータアーキテクチャー500は、1つまたは複数の入力デバイス、たとえばキーボード524、および/またはポインティングデバイス526、たとえばローラーボール、マウス、タッチパッドなどを含む。それらの入力デバイスは、I/O(input/output)インターフェース528に結合され、I/Oインターフェース528によってコントロールされ、I/Oインターフェース528は、システムバス506にさらに結合されている。
ディスプレイデバイス518、キーボード524、ポインティングデバイス526、ならびにディスプレイコントローラ520、ディスクコントローラ514、ネットワークインターフェース522、およびI/Oインターフェース528の一般的な特徴および機能は知られているため、本明細書においては、説明を簡潔にするために、それらの特徴に関する説明を省略する。
図6〜図11は、本明細書に記載されている実施形態のさまざまなユースケースを示すブロック図である。より具体的には、図6〜図11は、従来技術によって未解決である複数の問題を解決するために、本明細書に記載されている実施形態をどのように使用することができるかを示している。図6〜図11のそれぞれにおいては、投影インデックス202が既に作成されていると想定する。その上、後述の例のそれぞれは、サーバシステム406またはクライアントシステム408(両方とも図4に示されている)によって実行することができる。さらに、図6〜図11に示されているそれぞれのデータベースオブジェクトの間における元の関係については、図1に関連して上述した。これは、本明細書に記載されている実施形態を使用することができる状況を網羅した組合せではないということを理解されたい。これらは単に、知られているシステムおよび方法から記載の実施形態を区別するための例示的なものである。
図6は、上述の実施形態が、第3のデータベースオブジェクト106のメタデータ値が修正されたときに第1のデータベースオブジェクト102の更新をどのように可能にするかを示している。はじめに、修正または削除されたデータベースオブジェクト100のリストが生成される。図6に示されているように、第3のデータベースオブジェクト106の値120が、「foo」から「bar」へ変更されている。次いで、第3のデータベースオブジェクト106に対するエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。前に説明したように、第1のデータベースオブジェクト102は、第3のデータベースオブジェクト106のエンティティー依存関係114を有する。なぜなら、第3のデータベースオブジェクト106に対する変更があれば、その変更によって、第1のデータベースオブジェクト102上に投影される値が潜在的に変更される可能性があるためである。したがって、第1のデータベースオブジェクト102は、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。
次に、修正または削除された関係108のリストが生成される。このシナリオにおいては、修正または削除された関係108がないため、影響を受けた関係/パス依存関係の理由から「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次いで、マークされたオブジェクトは、修正を反映するようにインデックスが付けられる。たとえば、第3のデータベースオブジェクト106の値の投影が、第1のデータベースオブジェクト102上に投影されるように、投影インデックス202が再作成される。
図7は、上述の実施形態が、中間のデータベースオブジェクト100が削除されたときに第1のデータベースオブジェクト102の更新をどのように可能にするかを示している。はじめに、修正または削除されたデータベースオブジェクト100のリストが生成される。図7に示されているように、第2のデータベースオブジェクト104が削除されている。次いで、第2のデータベースオブジェクト104がエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。このシナリオにおいては、そのようなデータベースオブジェクト100がないため、「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次に、修正または削除された関係108のリストが生成される。図7に示されているように、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間に、第1の関係110が存在し、第2のデータベースオブジェクト104と、第3のデータベースオブジェクト106との間に、第2の関係112が存在する。第2のデータベースオブジェクト104を削除した結果、第1の関係110および第2の関係112も削除されている。次いで、影響を受けたパス依存関係が、修正または削除された関係108のリストから特定される。この場合、第1の関係110を削除したことによって、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間におけるパス依存関係が影響を受けている。同様に、第2の関係112を削除したことによって、第2のデータベースオブジェクト104と、第3のデータベースオブジェクト106との間におけるパス依存関係が影響を受けている。したがって、第1のデータベースオブジェクト102が、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。次いで、マークされたオブジェクトは、修正を反映するようにインデックスが付けられる。たとえば、第3のデータベースオブジェクト106の値の投影が、パス依存関係を伴わずに第1のデータベースオブジェクト102上に投影されるように、投影インデックス202が再作成される。
図8は、上述の実施形態が、リーフデータベースオブジェクト(leaf database object)100が削除されたときに第1のデータベースオブジェクト102の更新をどのように可能にするかを示している。はじめに、修正または削除されたデータベースオブジェクト100のリストが生成される。図8に示されているように、第3のデータベースオブジェクト106が削除されている。次いで、第3のデータベースオブジェクト106に対するエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。前に説明したように、第1のデータベースオブジェクト102は、第3のデータベースオブジェクト106のエンティティー依存関係114を有する。なぜなら、第3のデータベースオブジェクト106を削除すると、第1のデータベースオブジェクト102上に投影される値が変更されるためである。したがって、第1のデータベースオブジェクト102は、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。
次に、修正または削除された関係108のリストが生成される。このシナリオにおいては、修正または削除された関係108がないため、「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次いで、マークされたオブジェクトは、削除を反映するようにインデックスが付けられる。たとえば、第3のデータベースオブジェクト106の値が、もはや第1のデータベースオブジェクト102上に投影されないように、投影インデックス202が再作成される。
図9は、上述の実施形態が、中間の関係108が削除されたときに、または中間のデータベースオブジェクト100が接続を解除されたときに第1のデータベースオブジェクト102の更新をどのように可能にするかを示している。はじめに、修正または削除されたデータベースオブジェクト100のリストが生成される。図9に示されているように、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間における第1の関係110が削除されている。次いで、第2のデータベースオブジェクト104がエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。このシナリオにおいては、そのようなデータベースオブジェクト100がないため、「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次に、修正または削除された関係108のリストが生成される。図9に示されているように、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間における第1の関係110が削除されている。次いで、影響を受けたパス依存関係が、修正または削除された関係108のリストから特定される。この場合、第1の関係110を削除したことによって、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間におけるパス依存関係が影響を受けている。したがって、第1のデータベースオブジェクト102が、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。次いで、マークされたオブジェクトは、修正を反映するようにインデックスが付けられる。たとえば、第3のデータベースオブジェクト106の値が、もはや第1のデータベースオブジェクト102上に投影されないように、投影インデックス202が再作成される。
図10は、上述の実施形態が、新たなリーフデータベースオブジェクト100の追加をどのように可能にするかを示している。はじめに、修正された(たとえば、追加された)データベースオブジェクト100のリストが生成される。図10に示されているように、「foo2」というメタデータ値124を有する第4のデータベースオブジェクト(Obj3a)122が追加されている。図10はまた、第4のデータベースオブジェクト122と、第2のデータベースオブジェクト104との間における第3の関係(rel2a)126を示している。上述のように、それぞれの関係108は、1つの関係タイプに関連付けられている。ここでは、第3の関係126は、関係タイプREL2に関連付けられている。第4のデータベースオブジェクト122の追加に伴って、第2のデータベースオブジェクト104と、第4のデータベースオブジェクト122との間に、第3のパス依存関係が存在する。上述のように、第3のパス依存関係は、第2のデータベースオブジェクト104の識別子などのエンティティー識別子、関係タイプ、および、第4のデータベースオブジェクト122から第2のデータベースオブジェクト104へなどの関係方向を使用して識別することができる。したがって、第3のパス依存関係は、Obj2/REL2/toとして識別することができる。
次に、第4のデータベースオブジェクト122がエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。このシナリオにおいては、そのようなデータベースオブジェクト100がないため、「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次いで、修正または削除された関係108のリストが生成される。図10に示されているように、第2のデータベースオブジェクト104と、第4のデータベースオブジェクト122との間における第3の関係126が追加されている。次いで、影響を受けたパス依存関係が、修正または削除された関係108のリストから特定される。この場合、第3の関係126を追加したことによって、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間におけるパス依存関係が影響を受けている。したがって、第1のデータベースオブジェクト102が、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。次いで、マークされたオブジェクトは、修正を反映するようにインデックスが付けられる。たとえば、第4のデータベースオブジェクト122の値が、第1のデータベースオブジェクト102上に投影されるようになるように、投影インデックス202が再作成される。
図11は、上述の実施形態が、新たなリーフデータベースオブジェクト100および新たな中間のデータベースオブジェクト100の追加をどのように可能にするかを示している。はじめに、修正された(たとえば、追加された)データベースオブジェクト100のリストが生成される。図11に示されているように、「foo2」というメタデータ値124を有する第4のデータベースオブジェクト(Obj3a)122が追加されている。図11はまた、第4のデータベースオブジェクト122と、第2のデータベースオブジェクト104との間における第3の関係(rel2a)126を示している。上述のように、それぞれの関係108は、1つの関係タイプに関連付けられている。ここでは、第3の関係126は、関係タイプREL2に関連付けられている。第4のデータベースオブジェクト122の追加に伴って、第2のデータベースオブジェクト104と、第4のデータベースオブジェクト122との間に、第3のパス依存関係が存在する。上述のように、第3のパス依存関係は、第2のデータベースオブジェクト104の識別子などのエンティティー識別子、関係タイプ、および、第4のデータベースオブジェクト122から第2のデータベースオブジェクト104へなどの関係方向を使用して識別することができる。したがって、第3のパス依存関係は、Obj2/REL2/toとして識別することができる。
図11はまた、追加されている第5のデータベースオブジェクト(Obj2a)128を示している。第1のデータベースオブジェクト102と、第5のデータベースオブジェクト128との間に、第4の関係(rel1a)130が存在する。上述のように、それぞれの関係108は、1つの関係タイプに関連付けられている。ここでは、第4の関係130は、関係タイプREL1に関連付けられている。第5のデータベースオブジェクト128の追加に伴って、第1のデータベースオブジェクト102と、第5のデータベースオブジェクト128との間に、第4のパス依存関係が存在する。第4のパス依存関係は、第1のデータベースオブジェクト102の識別子などのエンティティー識別子、関係タイプ、および、第1のデータベースオブジェクト102から第5のデータベースオブジェクト128へなどの関係方向を使用して識別することができる。したがって、第4のパス依存関係は、Obj1/REL1/fromとして識別することができる。
次に、第5のデータベースオブジェクト128がエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。このシナリオにおいては、そのようなデータベースオブジェクト100がないため、「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次いで、修正または削除された関係108のリストが生成される。図11に示されているように、第1のデータベースオブジェクト102と、第5のデータベースオブジェクト128との間における第4の関係130が追加されている。次いで、影響を受けたパス依存関係が、修正または削除された関係108のリストから特定される。この場合、第4の関係130を追加したことによって、第1のデータベースオブジェクト102と、第5のデータベースオブジェクト128との間における第4のパス依存関係が生じている。その上、第2のデータベースオブジェクト104と、第4のデータベースオブジェクト122との間における第3の関係126が追加されている。第3の関係126を追加したことによって、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間におけるパス依存関係が影響を受けている。したがって、第1のデータベースオブジェクト102が、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。次いで、マークされたオブジェクトは、修正を反映するようにインデックスが付けられる。たとえば、第4のデータベースオブジェクト122および第5のデータベースオブジェクト128が、第1のデータベースオブジェクト102上に投影されるようになるように、投影インデックス202が再作成される。
図12は、上述の実施形態が、第1の新たなリーフデータベースオブジェクト100の追加をどのように可能にするかを示している。より具体的には、図12は、上述の実施形態が、第2のデータベースオブジェクト104が最初に、第2のデータベースオブジェクト104を別のデータベースオブジェクト100に接続する関係を有していない場合に、第1の新たなリーフデータベースオブジェクトの追加をどのように可能にするかを示している。言い換えれば、図12は、新たに追加されたリーフデータベースオブジェクトから第2のデータベースオブジェクト104への最初の関係が、どのように作成されるかを示している。はじめに、修正された(たとえば、追加された)データベースオブジェクト100のリストが生成される。図12に示されているように、「foo2」というメタデータ値134を有する第6のデータベースオブジェクト(Obj3a)132が追加されている。図12はまた、第6のデータベースオブジェクト132と、第2のデータベースオブジェクト104との間における第5の関係(rel2a)136を示している。上述のように、それぞれの関係108は、1つの関係タイプに関連付けられている。ここでは、第5の関係136は、関係タイプREL2に関連付けられている。第6のデータベースオブジェクト132の追加に伴って、第2のデータベースオブジェクト104と、第6のデータベースオブジェクト132との間に、第5のパス依存関係が存在する。上述のように、第5のパス依存関係は、第2のデータベースオブジェクト104の識別子などのエンティティー識別子、関係タイプ、および、第6のデータベースオブジェクト132から第2のデータベースオブジェクト104へなどの関係方向を使用して識別することができる。したがって、第5のパス依存関係は、Obj2/REL2/toとして識別することができる。
次に、第6のデータベースオブジェクト132がエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。このシナリオにおいては、そのようなデータベースオブジェクト100がないため、「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次いで、修正または削除された関係108のリストが生成される。図12に示されているように、第2のデータベースオブジェクト104と、第6のデータベースオブジェクト132との間における第5の関係136が追加されている。次いで、影響を受けたパス依存関係が、修正または削除された関係108のリストから特定される。この場合、第5の関係136を追加したことによって、第1のデータベースオブジェクト102と、第2のデータベースオブジェクト104との間におけるパス依存関係が影響を受けている。したがって、第1のデータベースオブジェクト102が、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。次いで、マークされたオブジェクトは、修正を反映するようにインデックスが付けられる。たとえば、第6のデータベースオブジェクト132の値が、第1のデータベースオブジェクト102上に投影されるようになるように、投影インデックス202が再作成される。
図13は、上述の実施形態が、第1の新たなリーフデータベースオブジェクト100および第1の新たな中間のデータベースオブジェクト100の追加をどのように可能にするかを示している。より具体的には、図13は、上述の実施形態が、第1のデータベースオブジェクト102が最初に、第1のデータベースオブジェクト102を別のデータベースオブジェクト100に接続する関係を有していない場合に、第1の新たなリーフデータベースオブジェクトおよび第1の新たな中間のデータベースオブジェクトの追加をどのように可能にするかを示している。言い換えれば、図13は、新たに追加されたリーフデータベースオブジェクトおよび中間のデータベースオブジェクトから第1のデータベースオブジェクト102への最初の関係が、どのように作成されるかを示している。はじめに、修正された(たとえば、追加された)データベースオブジェクト100のリストが生成される。図13に示されているように、第7のデータベースオブジェクト(Obj2a)138が、中間のデータベースオブジェクト100として追加されている。第1のデータベースオブジェクト102と、第7のデータベースオブジェクト138との間に、第6の関係(rel1a)140が存在する。上述のように、それぞれの関係108は、1つの関係タイプに関連付けられている。ここでは、第6の関係140は、関係タイプREL1に関連付けられている。第7のデータベースオブジェクト138の追加に伴って、第1のデータベースオブジェクト102と、第7のデータベースオブジェクト138との間に、第6のパス依存関係が存在する。第6のパス依存関係は、第1のデータベースオブジェクト102の識別子などのエンティティー識別子、関係タイプ、および、第1のデータベースオブジェクト102から第7のデータベースオブジェクト138へなどの関係方向を使用して識別することができる。したがって、第6のパス依存関係は、Obj1/REL1/fromとして識別することができる。
図13はまた、「foo2」というメタデータ値144を有する、追加されている第8のデータベースオブジェクト(Obj3a)142を示している。図13はまた、第7のデータベースオブジェクト138と、第8のデータベースオブジェクト142との間における第7の関係(rel2a)146を示している。上述のように、それぞれの関係108は、1つの関係タイプに関連付けられている。ここでは、第7の関係146は、関係タイプREL2に関連付けられている。
次に、第7のデータベースオブジェクト138および第8のデータベースオブジェクト142がエンティティー依存状態を有するデータベースオブジェクト100を含むデータベースオブジェクト100のリストが生成される。このシナリオにおいては、そのようなデータベースオブジェクト100がないため、「古い」または最新ではないとしてマークされるデータベースオブジェクト100はない。
次いで、修正、削除、または追加された関係108のリストが生成される。図13に示されているように、第1のデータベースオブジェクト102と、第7のデータベースオブジェクト138との間における第6の関係140、および、第7のデータベースオブジェクト138と、第8のデータベースオブジェクト142との間における第7の関係146が追加されている。次いで、影響を受けたパス依存関係が、修正または削除された関係108のリストから特定される。この場合、第6の関係140および第7の関係146を追加したことによって、第1のデータベースオブジェクト102と、第7のデータベースオブジェクト138との間における第6のパス依存関係が生じている。したがって、第1のデータベースオブジェクト102が、影響を受けたオブジェクトとしてマークされる(すなわち、「古い」または最新ではないとしてマークされる)。次いで、マークされたオブジェクトは、修正を反映するようにインデックスが付けられる。たとえば、第7のデータベースオブジェクト138および第8のデータベースオブジェクト142が、第1のデータベースオブジェクト102上に投影されるようになるように、投影インデックス202が再作成される。
最新のデータベースオブジェクト値および/またはパスを保持する際に使用するためのシステム、方法、装置、およびコンピュータプログラム製品の例示的な実施形態が、詳細に上述されている。本システム、方法、装置、およびコンピュータプログラム製品は、本明細書に記載されている特定の実施形態に限定されるものではなく、むしろ、本方法のオペレーション、ならびに/または本システムおよび/もしくは装置のコンポーネントは、本明細書に記載されているその他のオペレーションおよび/またはコンポーネントから独立して別個に利用することができる。さらに、記載のオペレーションおよび/またはコンポーネントは、その他のシステム、方法、および/もしくは装置において定義することもでき、またはその他のシステム、方法、および/もしくは装置と組み合わせて使用することもでき、本明細書に記載されているシステム、方法、および記録媒体のみと共に実施することに限定されるものではない。
コンピュータ、たとえば本明細書に記載されているコンピュータは、少なくとも1つのプロセッサまたは処理装置と、システムメモリとを含む。コンピュータは、典型的には、少なくとも何らかの形態のコンピュータ可読メディアを有する。限定ではなく、例として、コンピュータ可読メディアは、コンピュータ可読記録媒体および通信メディアを含む。コンピュータ可読記録媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するための任意の方法またはテクノロジーにおいて実装される非一時的な、揮発性の、および不揮発性の、取り外し可能な、および取り外し不能なメディアを含む。通信メディアは、典型的には、搬送波もしくはその他の伝送メカニズムなどの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを具体化し、任意の情報伝達メディアを含む。当業者なら、変調されたデータ信号をよく知っており、変調されたデータ信号は、情報をその信号内でエンコードするような方法で設定または変更されたその特性のうちの1つまたは複数を有する。また上記のいずれの組合せも、コンピュータ可読メディアの範囲内に含まれるものである。
本発明については、例示的なコンピュータシステム環境との関連から説明しているが、本発明の実施形態は、その他の多くの汎用または専用のコンピュータシステム環境または構成と共に使用することができる。このコンピュータシステム環境は、本発明のいかなる態様の使用または機能の範囲に関しても何らかの限定を提示することを意図するものではない。その上、このコンピュータシステム環境は、この例示的な動作環境内に示されているコンポーネントのうちの任意の1つまたは組合せに関して何らかの依存性または必要性を有すると解釈すべきではない。本発明の態様と共に使用するのに適する可能性のあるよく知られているコンピュータシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、携帯電話、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのうちのいずれかを含む分散コンピューティング環境などを含むが、それらには限定されない。
本発明の実施形態については、1つまたは複数のコンピュータまたはその他のデバイスによって実行される、プログラムコンポーネントまたはプログラムモジュールなどのコンピュータ実行可能命令という一般的なコンテキストにおいて説明することができる。本発明の態様は、任意の数および編成のコンポーネントまたはモジュールと共に実施することができる。たとえば、本発明の態様は、図に示され本明細書に記載されている特定のコンピュータ実行可能命令または特定のコンポーネントもしくはモジュールに限定されるものではない。本発明の代替実施形態は、図示され本明細書に記載されているよりも多くの機能または少ない機能を有するさまざまなコンピュータ実行可能命令またはコンポーネントを含むことができる。
本明細書に記載されているシステム、方法、装置、およびコンピュータプログラム製品の例示的な技術的効果は、(a)第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間における接続を表す投影インデックスを作成すること、(b)第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定すること、(c)第1のデータベースオブジェクトと、少なくとも第2のデータベースオブジェクトとの間におけるパス依存関係を特定すること、および(d)エンティティー依存関係およびパス依存関係のうちの一方または両方の修正に応答して投影インデックスを更新することのうちの少なくとも1つを含む。
図示され本明細書に記載されている本発明の実施形態におけるオペレーションの実行または実施の順序は、特段の指定がない限り、必須ではない。すなわち、それらのオペレーションは、特段の指定がない限り、任意の順序で実施することができ、本発明の実施形態は、本明細書で開示されているよりも多いオペレーションまたは少ないオペレーションを含むことができる。たとえば、特定のオペレーションを別のオペレーションの前に、別のオペレーションと同時に、または別のオペレーションの後に実施または実行することは、本発明の態様の範囲内であると考えられる。
本発明の態様またはその実施形態の要素を紹介する際に、「a」、「an」、「the」、および「said」という冠詞は、それらの要素が1つまたは複数存在するということを意味することを意図している。「comprising」、「including」、および「having」という用語は、包括的であることを意図しており、記載されている要素のほかにさらなる要素が存在しうるということを意味している。
本明細書は、最良の形態を含めて本発明を開示するために、そしてまた、任意の当業者が、任意のデバイスまたはシステムを作成して使用すること、および任意の組み込まれた方法を実行することを含めて、本発明を実施することを可能にするために、例を使用している。本発明の特許性のある範囲は、特許請求の範囲によって定義され、また、当業者が想起するその他の例を含むことができる。そのようなその他の例は、特許請求の範囲の文言と異ならない構造的要素を有する場合には、または特許請求の範囲の文言との非実質的な相違を有する均等な構造的要素を含む場合には、特許請求の範囲の範疇内にあることを意図されている。

Claims (24)

  1. 複数のデータベースオブジェクトの投影インデックスの最新性を保持する際に使用するためのコンピュータ実施方法であって、
    前記複数のデータベースオブジェクトのうちの第1のデータベースオブジェクトと、前記複数のデータベースオブジェクトのうちの少なくとも第2のデータベースオブジェクトとの間における接続を表す前記投影インデックスを作成するステップと、
    前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定するステップと、
    前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間におけるパス依存関係を特定するステップと、
    前記エンティティー依存関係および前記パス依存関係のうちの少なくとも一方の修正に応答して前記投影インデックスを更新するステップと
    を含むことを特徴とするコンピュータ実施方法。
  2. 前記投影インデックスを作成するステップは、前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間における前記エンティティー依存関係および前記パス依存関係のうちの少なくとも一方が、前記第1のデータベースオブジェクトに関連付けられて格納されるように、前記複数のデータベースオブジェクトをメモリエリア内に格納するステップを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  3. エンティティー依存関係を特定するステップは、前記第2のデータベースオブジェクトが修正されていることを検知するステップを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  4. エンティティー依存関係を特定するステップは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記エンティティー依存関係が、前記第2のデータベースオブジェクトの前記修正によって影響を受けているかどうかを、前記投影インデックスに基づいて特定するステップをさらに含むことを特徴とする請求項3に記載のコンピュータ実施方法。
  5. 前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記エンティティー依存関係が、前記第2のデータベースオブジェクトの前記修正によって影響を受けていると特定したことに応答して、前記第1のデータベースオブジェクトが最新ではないことをメモリエリア内に示すステップをさらに含むことを特徴とする請求項4に記載のコンピュータ実施方法。
  6. パス依存関係を特定するステップは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における関係が修正されていることを検知するステップを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  7. パス依存関係を特定するステップは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記パス依存関係が、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記関係の前記修正によって影響を受けているかどうかを、前記投影インデックスに基づいて特定するステップをさらに含むことを特徴とする請求項6に記載のコンピュータ実施方法。
  8. 前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記パス依存関係が、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記関係の前記修正によって影響を受けていると特定したことに応答して、前記第1のデータベースオブジェクトが最新ではないことをメモリエリア内に示すステップをさらに含むことを特徴とする請求項7に記載のコンピュータ実施方法。
  9. 前記投影インデックスを更新するステップは、前記エンティティー依存関係および前記パス依存関係のうちの少なくとも一方の前記修正を反映するように前記第1のデータベースオブジェクトを更新するステップを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  10. メモリエリアであって、
    エンティティー依存関係およびパス依存関係によって接続されている少なくとも第1のデータベースオブジェクトおよび第2のデータベースオブジェクトを含む複数のデータベースオブジェクトを格納し、
    前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間における関係が、前記第1のデータベースオブジェクトに関連付けられて格納されるように前記複数のデータベースオブジェクトの投影インデックスを格納するように構成されているメモリエリアと、
    前記メモリエリアに動作可能に結合されているプロセッサであって、
    前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定し、
    前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間におけるパス依存関係を特定し、
    前記エンティティー依存関係および前記パス依存関係のうちの少なくとも一方の修正に応答して前記投影インデックスを更新するように構成されているプロセッサと
    を含むことを特徴とするコンピュータシステム。
  11. 前記プロセッサは、前記第2のデータベースオブジェクトが修正されていることを検知するようにさらに構成されていることを特徴とする請求項10に記載のコンピュータシステム。
  12. 前記プロセッサは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記エンティティー依存関係が、前記第2のデータベースオブジェクトの前記修正によって影響を受けているかどうかを、前記投影インデックスに基づいて特定するようにさらに構成されていることを特徴とする請求項11に記載のコンピュータシステム。
  13. 前記プロセッサは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記エンティティー依存関係が、前記第2のデータベースオブジェクトの前記修正によって影響を受けていると特定したことに応答して、前記第1のデータベースオブジェクトが最新ではないことを前記メモリエリア内に示すようにさらに構成されていることを特徴とする請求項12に記載のコンピュータシステム。
  14. 前記プロセッサは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における関係が修正されていることを検知するようにさらに構成されていることを特徴とする請求項10に記載のコンピュータシステム。
  15. 前記プロセッサは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記パス依存関係が、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記関係の前記修正によって影響を受けているかどうかを、前記投影インデックスに基づいて特定するようにさらに構成されていることを特徴とする請求項14に記載のコンピュータシステム。
  16. 前記プロセッサは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記パス依存関係が、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記関係の前記修正によって影響を受けていると特定したことに応答して、前記第1のデータベースオブジェクトが最新ではないことを前記メモリエリア内に示すようにさらに構成されていることを特徴とする請求項15に記載のコンピュータシステム。
  17. 前記プロセッサは、前記エンティティー依存関係および前記パス依存関係のうちの少なくとも一方の前記修正を反映するように前記第1のデータベースオブジェクトを更新するようにさらに構成されていることを特徴とする請求項10に記載のコンピュータシステム。
  18. 複数のデータベースオブジェクトの投影インデックスの最新性を保持する際に使用するためのコンピュータ読み取り可能記録媒体であって、前記コンピュータ読み取り可能記録媒体はコンピュータによって実行可能なコンポーネントを有し、前記コンポーネントは、
    少なくとも1つのプロセッサによって実行されたときに、
    エンティティー依存関係およびパス依存関係によって接続されている少なくとも第1のデータベースオブジェクトおよび第2のデータベースオブジェクトを含む複数のデータベースオブジェクトをメモリエリア内に格納すること、および
    前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間における関係が、前記第1のデータベースオブジェクトに関連付けられて格納されるように前記複数のデータベースオブジェクトの投影インデックスを前記メモリエリア内に格納することを前記少なくとも1つのプロセッサに行わせるインデックス作成コンポーネントと、
    少なくとも1つのプロセッサによって実行されたときに、前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間におけるエンティティー依存関係を特定することを前記少なくとも1つのプロセッサに行わせるエンティティー依存関係コンポーネントと、
    少なくとも1つのプロセッサによって実行されたときに、前記第1のデータベースオブジェクトと、少なくとも前記第2のデータベースオブジェクトとの間におけるパス依存関係を特定することを前記少なくとも1つのプロセッサに行わせるパス依存関係コンポーネントと
    を含み、前記インデックス作成コンポーネントは、前記エンティティー依存関係および前記パス依存関係のうちの少なくとも一方の修正に応答して前記投影インデックスおよび前記第1のデータベースオブジェクトを更新することを前記少なくとも1つのプロセッサにさらに行わせることを特徴とするコンピュータ読み取り可能記録媒体。
  19. 前記エンティティー依存関係コンポーネントは、前記第2のデータベースオブジェクトが修正されていることを検知することを前記少なくとも1つのプロセッサにさらに行わせることを特徴とする請求項18に記載のコンピュータ読み取り可能記録媒体。
  20. 前記エンティティー依存関係コンポーネントは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記エンティティー依存関係が、前記第2のデータベースオブジェクトの前記修正によって影響を受けているかどうかを、前記投影インデックスに基づいて特定することを前記少なくとも1つのプロセッサにさらに行わせることを特徴とする請求項19に記載のコンピュータ読み取り可能記録媒体。
  21. 前記エンティティー依存関係コンポーネントは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記エンティティー依存関係が、前記第2のデータベースオブジェクトの前記修正によって影響を受けていると特定したことに応答して、前記第1のデータベースオブジェクトが最新ではないことをメモリエリア内に示すことを前記少なくとも1つのプロセッサにさらに行わせることを特徴とする請求項20に記載のコンピュータ読み取り可能記録媒体。
  22. 前記パス依存関係コンポーネントは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における関係が修正されていることを検知することを前記少なくとも1つのプロセッサにさらに行わせることを特徴とする請求項18に記載のコンピュータ読み取り可能記録媒体。
  23. 前記パス依存関係コンポーネントは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記パス依存関係が、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記関係の前記修正によって影響を受けているかどうかを、前記投影インデックスに基づいて特定することを前記少なくとも1つのプロセッサにさらに行わせることを特徴とする請求項22に記載のコンピュータ読み取り可能記録媒体。
  24. 前記パス依存関係コンポーネントは、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記パス依存関係が、前記第1のデータベースオブジェクトと、前記第2のデータベースオブジェクトとの間における前記関係の前記修正によって影響を受けていると特定したことに応答して、前記第1のデータベースオブジェクトが最新ではないことをメモリエリア内に示すことを前記少なくとも1つのプロセッサにさらに行わせることを特徴とする請求項23に記載のコンピュータ読み取り可能記録媒体。
JP2013021456A 2012-02-07 2013-02-06 関連付けられたデータ依存関係 Active JP6174328B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/367,785 US8990175B2 (en) 2012-02-07 2012-02-07 Related data dependencies
US13/367,785 2012-02-07

Publications (3)

Publication Number Publication Date
JP2013164846A true JP2013164846A (ja) 2013-08-22
JP2013164846A5 JP2013164846A5 (ja) 2016-03-24
JP6174328B2 JP6174328B2 (ja) 2017-08-02

Family

ID=47826852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013021456A Active JP6174328B2 (ja) 2012-02-07 2013-02-06 関連付けられたデータ依存関係

Country Status (6)

Country Link
US (1) US8990175B2 (ja)
EP (1) EP2626797A3 (ja)
JP (1) JP6174328B2 (ja)
KR (1) KR20130091276A (ja)
CN (1) CN103294756B (ja)
CA (1) CA2805113A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341166B2 (en) 2011-09-01 2022-05-24 Full Circle Insights, Inc. Method and system for attributing metrics in a CRM system
US10621206B2 (en) * 2012-04-19 2020-04-14 Full Circle Insights, Inc. Method and system for recording responses in a CRM system
US10282290B2 (en) * 2014-06-24 2019-05-07 Shimadzu Corporation Analyzing device management system
US20180268001A1 (en) * 2017-03-16 2018-09-20 International Business Machines Corporation Managing a database management system using a set of stream computing data
US11138236B1 (en) * 2017-05-17 2021-10-05 Palantir Technologies Inc. Systems and methods for packaging information into data objects
CN111050849B (zh) 2017-07-11 2022-04-08 反射医疗公司 用于pet检测器余辉管理的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816396A (ja) * 1994-06-29 1996-01-19 Fuji Xerox Co Ltd データ管理システム
JPH09259021A (ja) * 1996-03-19 1997-10-03 Fujitsu Ltd データ管理装置及び方法
US20050278275A1 (en) * 2004-05-28 2005-12-15 Metadata, Llc Defining a data dependency path through a body of related data
US20060122977A1 (en) * 2004-12-06 2006-06-08 International Business Machines Corporation Techniques for managing interdependent data objects
JP2008149552A (ja) * 2006-12-18 2008-07-03 Toray Ind Inc 射出成形用加飾シート

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933820A (en) 1996-05-20 1999-08-03 International Business Machines Corporation System, method, and program for using direct and indirect pointers to logically related data and targets of indexes
US6490597B1 (en) * 1999-07-14 2002-12-03 Ericsson Inc. Stored data object management and archive control
DE10040987B4 (de) * 1999-09-29 2006-10-12 International Business Machines Corp. Verfahren und Vorrichtung für übereinstimmende Aktualisierungen von redundanten Daten in relationalen Datenbanken
US7587428B2 (en) * 2000-10-13 2009-09-08 Microsoft Corporation Maintaining a relationship between two different items of data
US20020087734A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
US6714943B1 (en) 2001-01-31 2004-03-30 Oracle International Corporation Method and mechanism for tracking dependencies for referential integrity constrained tables
US6728719B1 (en) 2001-01-31 2004-04-27 Oracle International Corporation Method and mechanism for dependency tracking for unique constraints
US7680818B1 (en) * 2002-12-18 2010-03-16 Oracle International Corporation Analyzing the dependencies between objects in a system
US7801882B2 (en) 2004-10-01 2010-09-21 Microsoft Corporation Optimized constraint and index maintenance for non updating updates
JP5038939B2 (ja) 2008-03-03 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報検索システム、方法及びプログラム
CN101763428A (zh) * 2010-01-04 2010-06-30 山东浪潮齐鲁软件产业股份有限公司 一种SOA对web服务的注册存储管理应用系统
US8346788B1 (en) * 2011-03-29 2013-01-01 Emc Corporation Techniques for mapping data models using an intermediate processing layer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816396A (ja) * 1994-06-29 1996-01-19 Fuji Xerox Co Ltd データ管理システム
JPH09259021A (ja) * 1996-03-19 1997-10-03 Fujitsu Ltd データ管理装置及び方法
US20050278275A1 (en) * 2004-05-28 2005-12-15 Metadata, Llc Defining a data dependency path through a body of related data
US20060122977A1 (en) * 2004-12-06 2006-06-08 International Business Machines Corporation Techniques for managing interdependent data objects
JP2008149552A (ja) * 2006-12-18 2008-07-03 Toray Ind Inc 射出成形用加飾シート

Also Published As

Publication number Publication date
CN103294756B (zh) 2017-08-08
CN103294756A (zh) 2013-09-11
EP2626797A2 (en) 2013-08-14
CA2805113A1 (en) 2013-08-07
US20130204853A1 (en) 2013-08-08
KR20130091276A (ko) 2013-08-16
JP6174328B2 (ja) 2017-08-02
US8990175B2 (en) 2015-03-24
EP2626797A3 (en) 2016-07-20

Similar Documents

Publication Publication Date Title
US10803029B2 (en) Generating javascript object notation (JSON) schema from JSON payloads
US11550769B2 (en) Data processing method, apparatus, and system
US10515059B2 (en) Time slider operator for temporal data aggregation
JP6174328B2 (ja) 関連付けられたデータ依存関係
US10726039B2 (en) Systems and methods for updating database indexes
US9613070B2 (en) Multi-entity normalization
US11256690B2 (en) Using row value constructor (RVC) based queries to group records of a database for multi-thread execution
US10606865B2 (en) Database scale-out
US10776330B2 (en) Optimized re-deployment of database artifacts
US8925105B2 (en) Indexed security for use with databases
US10839012B2 (en) Adaptable adjacency structure for querying graph data
US10984021B2 (en) Deployment of independent database artifact groups
US20180173800A1 (en) Data promotion
US10585896B2 (en) Managing data in relational database management system
US20130275369A1 (en) Data record collapse and split functionality
US20120102412A1 (en) Synchronization of form fields in a client-server environment
US20200401595A1 (en) Estimating the number of distinct entities from a set of records of a database system
US11762855B1 (en) Incremental maintenance of query results

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170601

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170706

R150 Certificate of patent or registration of utility model

Ref document number: 6174328

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250