JP2009544064A - 増分ビューの保守を用いたマッピングアーキテクチャ - Google Patents
増分ビューの保守を用いたマッピングアーキテクチャ Download PDFInfo
- Publication number
- JP2009544064A JP2009544064A JP2009502890A JP2009502890A JP2009544064A JP 2009544064 A JP2009544064 A JP 2009544064A JP 2009502890 A JP2009502890 A JP 2009502890A JP 2009502890 A JP2009502890 A JP 2009502890A JP 2009544064 A JP2009544064 A JP 2009544064A
- Authority
- JP
- Japan
- Prior art keywords
- view
- mapping
- database
- query
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
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)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Abstract
Description
一実施形態では、本革新を、このセクションで説明する新規のデータアクセスアーキテクチャ、「Entity Framework(エンティティフレームワーク)」において実装し、その諸態様を組み込むことができる。そのようなEntity Frameworkの例が、本件特許出願人によって開発されたADO.NET vNEXT(登録商標)データアクセスアーキテクチャである。以下に、多くの実装固有の詳細とともに、ADO.NET vNEXTデータアクセスアーキテクチャを全般的に説明するが、この詳細は本発明の実践に必要とみなされるべきではない。
従来のクライアント−サーバアプリケーションは、そのデータに対するクエリおよび永続性のオペレーションをデータベースシステムに委ねる。データベースシステムは、行およびテーブルの形式のデータを操作するが、アプリケーションは、より高水準のプログラミング言語構造(クラス、構造体など)に関してデータを操作する。アプリケーション層とデータベース層との間のデータ操作サービスにおけるインピーダンス不整合は、従来のシステムにおいても問題であった。サービス指向アーキテクチャ(SOA:service−oriented architecture)、アプリケーションサーバ、および多層(multi−tier)アプリケーションの出現とともに、プログラミング環境とよく統合され、任意の層において動作可能な、データアクセスサービスおよびデータ操作サービスの必要性が非常に高まっている。
現代のアプリケーションは、全ての層でデータ管理サービスを必要とする。現代のアプリケーションは、ますます豊富な形式のデータを処理する必要があり、このデータは、構造化されたビジネスデータ(Customers(顧客)とOrders(注文)など)だけではなく、電子メール、カレンダ、ファイル、および文書などの、半構造化されたコンテンツおよび構造化されていないコンテンツも含む。これらのアプリケーションは、より機敏な意思決定プロセスを可能にするために、複数のデータソースからのデータを統合すると同時に、このデータを収集し、浄化し、変形し、格納する必要がある。これらのアプリケーションの開発者は、その生産性を高めるために、データアクセスツール、プログラミングツール、および開発ツールを必要とする。リレーショナルデータベースは、ほとんどの構造化データのデファクトストアになっているが、そのようなデータベースが公開するデータモデル(および機能)と、アプリケーションが必要とするモデル化機能との間の不整合、すなわち周知のインピーダンス不整合の問題がある傾向がある。
このセクションは、より高水準のデータモデル化レイヤが、なぜアプリケーションおよびデータ中心サービスに必須になったのかを論じる。
データベース設計を作成するための今日の支配的な情報モデル化方法は、情報モデルを4つの主要なレベル、すなわち、物理、論理(リレーショナル)、概念、およびプログラミング/プレゼンテーションにファクタリングする。
10〜20年前の、データに基づくアプリケーションは、典型的に、データモノリス、すなわち、論理スキーマレベルでデータベースシステムと対話する動詞オブジェクト関数(例えば、create−order、update−customer)によってファクタリングされたロジックを有する閉じたシステムとして構造化されていた。いくつかの顕著な傾向が、今日、近代のデータに基づくアプリケーションをファクタリングし、展開する方法を形成している。これらの中の主要なものは、オブジェクト指向ファクタリング、サービスレベルアプリケーション構造、およびより高水準のデータ中心サービスである。概念エンティティは、今日のアプリケーションの重要な部分である。これらのエンティティは、様々な表現にマッピングされ、様々なサービスにバインドされなければならない。正しい表現またはサービスバインディングは存在しない。すなわち、XML表現、リレーショナル表現、およびオブジェクト表現の全てが重要であるが、これらの1つが、全てのアプリケーションにとって十分であることはない。したがって、より高水準のデータモデル化レイヤをサポートし、複数のプレゼンテーションレイヤをプラグインすることをも可能にするフレームワークの必要性が存在する。Entity Frameworkは、これらの要件を満たすことを目的とする。
本明細書で説明するEntity Frameworkの前に存在した本件特許出願人のADO.NETフレームワークは、データアクセス技術であり、該技術は、アプリケーションがデータストアに接続し、該データストア内に含まれるデータを様々な方法で操作することを可能にした。これは、Microsoft .NET Frameworkの一部であり、.NET Frameworkクラスライブラリの残りに高度に統合された。以前のADO.NETフレームワークは、2つの主要な部分、すなわち、プロバイダとサービスとを有していた。ADO.NETプロバイダは、特定のデータストアとの話し方を知っているコンポーネントである。プロバイダは、機能の3つのコア部分から構成される。すなわち、コネクションが、基礎になるデータソースに対するアクセスを管理し、コマンドが、データソースに対して実行されるコマンド(クエリ、プロシージャ呼出しなど)を表し、データリーダーが、コマンド実行の結果を表す。ADO.NETサービスは、オフラインのデータプログラミングシナリオを可能にするDataSetなど、プロバイダ中立コンポーネントを含む(DataSetは、データソースに関わらず一貫したリレーショナルプログラミングモデルを提供する、データのメモリ常駐表現である)。
ADO .NET Entity Frameworkは、予め存在する既存のADO.NETプロバイダモデルを基に、次の機能性を追加する。
1.概念スキーマのモデル化を助ける新しい概念データモデルである、Entity Data Model(EDM)。
2.EDMのインスタンスおよびクエリのプログラム的表現(カノニカルコマンドツリー(canonical command tree))を操作して、異なるプロバイダと通信するための新しいデータ操作言語(DML:data manipulation language)である、Entity SQL。
3.概念スキーマと論理スキーマとの間のマッピングを定義する能力。
4.概念スキーマに対するADO.NETプロバイダのプログラミングモデル。
5.ORM同様の機能を提供するオブジェクトサービスレイヤ。
6.データを.NET言語からのオブジェクトとして、プログラミングすることを容易にするLINQ技術との統合。
エンティティデータモデル(EDM:Entity Data Model)は、豊富なデータ中心アプリケーションの開発を可能にする。EDMは、E−Rドメインからの概念を用いて典型的なリレーショナルモデルを拡張する。本明細書で提供する例示的な実施形態では、EDMの組織的概念は、エンティティとリレーションシップとを含む。エンティティは、トップレベルのアイテムを識別(identity)で表し、リレーションシップは、2つまたはそれ以上のエンティティを関係付ける(または、2つまたはそれ以上のエンティティの間のリレーションシップを記述する)のに使用される。
EntityTypeは、エンティティの構造を記述する。エンティティは、そのエンティティの構造を記述するゼロまたはそれ以上のプロパティ(属性、フィールド)を有することができる。さらに、エンティティ型は、キー、すなわち、エンティティのコレクション内でエンティティインスタンスを一意に識別する値を有するプロパティのセットを、定義しなければならない。EntityTypeは、別のエンティティ型から派生する(またはサブタイプ化する)ことができ、EDMは、単一の継承モデルをサポートする。あるエンティティのプロパティは、単純型または複合型とすることができる。SimpleTypeは、スカラ(またはアトミック)型(例えば、整数、ストリング)を表し、ComplexTypeは、構造化されたプロパティ(例えば、Address)を表す。ComplexTypeは、ゼロまたはそれ以上のプロパティから構成され、これらのプロパティ自体は、スカラ型または複合型のプロパティとすることができる。RelationshipTypeは、2つ(またはそれ以上)のエンティティ型の間のリレーションシップを記述する。EDM Schemaは、型のグループ化メカニズムを提供し、型は、スキーマで定義されなければならない。型名と組み合わされたスキーマの名前空間は、特定の型を一意に識別する。
エンティティインスタンス(または単にエンティティ)は、論理的にEntitySet内に含まれる。EntitySetは、エンティティの同種コレクションである。すなわち、あるEntitySet内の全てのエンティティは、同一の(または派生した)EntityTypeを有しなければならない。EntitySetは、概念的にはデータベースのテーブルに類似し、エンティティは、テーブルの行に類似する。エンティティインスタンスは、正確に1つのエンティティセットに属さなければならない。同様に、リレーションシップのインスタンスは、論理的にRelationshipSet内に含まれる。RelationshipSetの定義が、リレーションシップのスコープを決定する。すなわち、これは、リレーションシップに参加するエンティティ型のインスタンスを保持するEntitySetを識別する。RelationshipSetは、概念的にはデータベース内のリンクテーブルに類似する。SimpleTypeおよびComplexTypeを、単に、EntityTypeのプロパティとしてインスタンス化することができる。EntityContainerは、EntitySetおよびRelationshipSetの論理グループ化であり、SchemaがEDM型に関してどのようなグループ化メカニズムであるかに類似する。
サンプルのEDMスキーマを以下に示す。
このセクションは、ADO.NET Entity Frameworkのアーキテクチャの概要を示す。その主な機能コンポーネントは、図1に示されており、以下のものを含む。
ADO.NET Entity Frameworkは、LINQと一緒に、アプリケーションコードとデータとの間のインピーダンス不整合を大幅に減少させることによって、アプリケーション開発者の生産性を高める。このセクションでは、論理レイヤ、概念レイヤ、およびオブジェクト抽象化レイヤでのデータアクセスプログラミングパターンの進化を説明する。
Object Servicesコンポーネントは、概念(エンティティ)レイヤ上のプログラミング/プレゼンテーションレイヤである。これは、プログラミング言語と値ベースの概念レイヤエンティティとの間の対話を容易にする複数のコンポーネントを備えている。プログラミング言語ランタイム(例えば.NET、Java(登録商標))ごとに1つのオブジェクトサービスが存在することが予期される。.NET CLRをサポートするように設計される場合は、全ての.NET言語のプログラムが、Entity Frameworkと対話することができる。Object Servicesは、次の主要コンポーネントから構成される。
一実施形態では、ADO.NET Entity Frameworkなどの汎用データアクセスレイヤのバックボーンは、アプリケーションデータとデータベースに格納されたデータとの間のリレーションシップを確立するマッピング(mapping)とすることができる。アプリケーションは、オブジェクトレベルまたは概念レベルでオブジェクトをクエリして、更新し、これらのオペレーションは、マッピングを介してストアに変換される。マッピングソリューションによって対処する必要のある、複数の技術的課題がある。特に宣言的なデータ操作が不要である場合に、1対1のマッピングを使用してリレーショナルテーブルの各行を1つのオブジェクトとして公開するORMを構築することは、比較的容易である。しかし、より複雑なマッピング、セットベースのオペレーション、パフォーマンス、マルチDBMSベンダのサポート、および他の要件が加わるにつれて、アドホックソリューションは、すぐに手におえなくなる。
マッピングを介してデータにアクセスすることの問題を、「ビュー」に関してモデル化することができる。すなわち、クライアントレイヤ内のオブジェクト/エンティティは、テーブルの行にまたがる豊富なビューと考えることができる。しかし、ビューのうち限られたクラスだけが更新可能であることは周知であり、例えば、商用データベースシステムは、結合または統合を含むビュー内の複数のテーブルに対する更新を許容しない。非常に単純なビューに対するものであっても、一意の更新変換を見つけることは、ビューによる更新振舞いについての内在する指定が不十分なために、ほとんど不可能である。研究により、ビューから更新セマンティクスを引き出すことは困難であり、かなりのユーザの専門知識を必要とする可能性があることが示されている。しかし、マッピング主導型のデータアクセスについては、ビューに対する全ての更新について明確に定義された変換が存在することが有利である。
ADO.NET Entity Frameworkは、上記の課題に対処することを目指す革新的なマッピングアーキテクチャをサポートする。ADO.NET Entity Frameworkは、次のアイデアを活用する。
1.指定:マッピングは、明確に定義された意味を有し、広範囲のマッピングシナリオを専門家でないユーザの理解できる範囲内に置く、宣言的言語(declarative language)を使用して指定される。
2.コンパイル:マッピングは、クエリビューおよび更新ビューと呼ばれる、ランタイムエンジン内でクエリ処理および更新処理を駆動する、双方向ビューにコンパイルされる。
3.実行:更新変換は、具体化されたビューの保守、すなわち堅固なデータベース技術を活用する一般的なメカニズムを使用して行われる。クエリ変換は、ビューアンフォールディング(view unfolding)を使用する。
マッピングは、マッピングフラグメントのセットを使用して指定される。各マッピングフラグメントは、QEntities=QTablesの形式の制約であり、ここで、QEntitiesは、エンティティスキーマ(アプリケーション側)に対するクエリであり、QTablesは、データベーススキーマ(ストア側)に対するクエリである。マッピングフラグメントは、エンティティデータのある部分がリレーショナルデータのある部分にどのように対応するかを記述する。すなわち、マッピングフラグメントは、他のフラグメントと独立に理解することができる、指定の基礎的な単位である。
このマッピングは、ランタイムを駆動する双方向のEntity SQLビューにコンパイルされる。クエリビューは、テーブルに関してエンティティを表し、更新ビューは、エンティティに関してテーブルを表す。
Entities = QueryViews(Tables)
Tables = UpdateViews(Entities)
Entities = QueryViews(UpdateViews(Entities))
Entity Frameworkは、EDMスキーマ、ストアスキーマ、およびマッピングからクエリビューおよび更新ビューを生成する、マッピングコンパイラを含む(メタデータのアーチファクトは、本明細書のメタデータのセクションで論じる)。これらのビューを、クエリパイプラインおよび更新パイプラインによって取り込む(consume)。最初のクエリがEDMスキーマに対して実行されると、このコンパイラを、設計時またはランタイムのいずれかにおいて呼び出すことができる。このコンパイラで使用されるビュー生成アルゴリズムは、正確な再記述のためのanswering−queries−using−views技法に基づく。
(クエリ言語)
一実施形態では、Entity Frameworkを、複数のクエリ言語を処理するように設計することができる。Entity SQLおよびLINQの実施形態を、本明細書においてより詳細に説明するが、同一または類似の原理を他の実施形態に拡張できることは理解されよう。
Entity SQLは、EDMインスタンスにクエリして操作するように設計された、SQLの派生物である。Entity SQLは、以下の方法で標準のSQLを拡張する。
1.EDM構造(エンティティ、リレーションシップ、複合型など)のネイティブサポート:コンストラクタ、メンバアクセッサ、型問合せ、リレーションシップナビゲーション、ネスト/アンネストなど。
2.名前空間。Entity SQLは、名前空間を、型および関数のグループ化構造として使用する(XQueryおよび他のプログラミング言語と同様)。
3.拡張可能な関数。Entity SQLは、非組み込み関数をサポートする。全ての関数(min、max、substringなど)は、名前空間内で明示的に定義され、通常は基礎になるストアから、クエリにインポートされる。
4.SQLと比較される、サブクエリおよび他の構造についてのより直交の扱い(orthogonal treatment)。
LINQは、クエリ関連構造をC#およびVisual Basicなどのメインストリームプログラミング言語に導入する.NETプログラミング言語における革新である。クエリ式(query expressions)は、外部ツールまたは言語プリプロセッサによって処理されるのではなく、言語自体のファーストクラス表現(first−class expressions)である。LINQは、クエリ式が、豊富なメタデータ、コンパイル時の構文チェック、静的な型付け、および以前には命令コードのみに使用可能であったIntelliSenseから利益を得ることを可能にする。LINQは、トラバーサル、フィルタ、結合、射影、ソート、およびグループ化のオペレーションを、直接かつ宣言的な方法で全ての.NETベースのプログラミング言語で表すことを可能にする、汎用の標準クエリ演算子のセットを定義する。Visual BasicおよびC#などの.NET言語も、クエリ理解、すなわち標準クエリ演算子を活用する言語構文拡張をサポートする。C#でのLINQを使用するクエリの例は、本明細書のプログラミングパターンのセクションに示されている。
一実施形態において、カノニカルコマンドツリー(より単純にはコマンドツリー)を、Entity Framework内の全てのクエリのプログラム的(ツリー)表現とすることができる。Entity SQLまたはLINQを介して表されたクエリを、まず解析し、コマンドツリーに変換することができ、全ての後続処理を、このコマンドツリーに対して実行することができる。Entity Frameworkは、コマンドツリー構築/編集APIを介してクエリを動的に構築する(または編集する)ことを可能にすることもできる。コマンドツリーは、クエリ、挿入、更新、削除、およびプロシ−ジャ呼出しを表すことができる。コマンドツリーは、1つまたは複数の式(Expression)から構成される。式は、単に、ある計算を表し、Entity Frameworkは、定数、パラメータ、算術演算、リレーショナル演算(射影、フィルタ、結合など)、関数呼出しなどを含む、様々な式を提供することができる。最後に、コマンドツリーは、EntityClientプロバイダと基礎になるストア固有プロバイダとの間のクエリのための通信の手段として使用することができる。
クエリ実行を、Entity Frameworkの一実施形態では、データストアに委ねることができる。Entity Frameworkのクエリ処理のインフラストラクチャは、Entity SQLまたはLINQのクエリを、追加のアセンブリ情報とともに、基礎になるストアによって評価可能な1つまたは複数の基本的なリレーショナルのみのクエリに分解することに関与し、この追加のアセンブリ情報を使用して、より単純なクエリのフラットな結果を、より豊富なEDM構造に再形成する。
前のセクションで論じたように、クエリ実行は、基礎になるストアに委ねられる。そのような実施形態において、クエリは、まず、ストアにとって適切な形式に変換されなければならない。しかし、異なるストアは、SQLの異なるダイアレクトをサポートし、Entity Frameworkがそれらの全てをネイティブにサポートすることは、現実的ではない。代わりに、クエリパイプラインは、クエリをコマンドツリーの形式でストアプロバイダに引き渡すことができる。ストアプロバイダは、次いで、そのコマンドツリーをネイティブコマンドに変換することができる。これは、コマンドツリーをプロバイダのネイティブSQLダイアレクトに変換することによって達成することができ、したがって、このフェーズはSQLGenである。次いで、結果のコマンドを実行して、関連する結果を作成することができる。
このセクションは、更新処理を例示的なADO.NET Entity Frameworkでどのように実行できるかを説明する。一実施形態では、更新処理の2つのフェーズ、すなわち、コンパイル時とランタイムがある。本明細書で提供される双方向ビューのセクションでは、マッピング仕様をビュー表現のコレクションにコンパイルするプロセスを説明した。本セクションは、どのようにビュー表現をランタイムで活用して、オブジェクトレイヤで実行されるオブジェクト変更(または、EDMレイヤでのEntity SQL DML更新)をリレーショナルレイヤにおける同等のSQL更新に変換するかについて説明する。
例示的なADO.NETマッピングアーキテクチャで活用される洞察の1つは、マテリアライズビュー保守のアルゴリズムを活用して、双方向ビューを介して更新を伝搬することができることである。このプロセスを図7に示す。
1.ビュー保守:
ΔTables = ΔUpdateViews (Entities, ΔEntities)
2.ビューアンフォールディング:
ΔTables = ΔUpdateViews (QueryViews (Tables), ΔEntities)
上記で概説されたアプローチを説明するために、少なくとも5年間勤務した有資格販売員にボーナスおよび昇格を与える次の例を検討されたい。
メタデータサブシステムは、データベースカタログに類似し、Entity Frameworkの設計時およびランタイムのメタデータの必要を満たすように設計される。
メタデータアーチファクトは、例えば、以下のものを含むことができる。
1.プロバイダによってサポートされるプリミティブ型(varchar、intなど)、およびそれらが対応するEDM型(string、int32など)。
2.プロバイダに関する組み込み関数(および、そのシグネチャ)。
Entity Frameworkによって消費されるメタデータは、異なるソースから異なるフォーマットで来る可能性がある。メタデータサブシステムを、統一された低水準のメタデータインターフェースのセットに上に作成することができ、該インターフェースのセットにより、メタデータランタイムが、異なるメタデータの永続フォーマット/ソースの詳細と独立に機能することが可能になる。
異なるタイプのメタデータの列挙。
キーによるメタデータ検索。
メタデータのブラウジング/ナビゲーション。
一時メタデータの作成(例えば、クエリ処理用)。
セッション独立のメタデータのキャッシュと再使用。
一実施形態において、Entity Frameworkは、開発の生産性を高めるための設計時のツールのコレクションを含むこともできる。例示的なツールは、次の通りである。
<マッピングサービス>
一実施形態において、図1の114などのマッピングコンポーネントは、マッピングの全ての態様を管理し、Entity Clientプロバイダ111によって内部的に使用される。マッピングは、2つの潜在的に異なる型空間内の構造の間の変形を論理的に指定する。例えば、エンティティ(概念空間内で、その用語が上記で使用されるとき)を、図8に図式的に示されるように、ストレージ空間内のデータベーステーブルに関して指定することができる。
1.Data領域は、クラス、テーブル、および/またはEDM型の記述を含むことができる。これらの記述は、既存のクラス/テーブル/型を記述することができ、または、そのようなインスタンスを生成するのに使用することができる。サーバ生成値、制約、主キーなどは、このセクションの一部として指定される。
2.Mappingセクションは、型空間の間の実際のマッピングを記述する。例えば、EDMエンティティの各プロパティは、テーブル(またはテーブルのセット)からの1つまたは複数の列に関して指定される。
3.Runtime領域は、実行を制御する様々なノブ、例えば、オプティミスティック並行性制御パラメータおよびフェッチ戦略を指定することができる。
一実施形態において、ドメインモデル化ツールのマッピングコンポーネント172は、マッピング仕様をクエリビュー、更新ビュー、および対応するデルタビューにコンパイルするマッピングコンパイラを含むことができる。図9は、クエリビューおよび更新ビューを生成するためのMSLのコンパイルを図示する。
1.API 900から呼び出されるビュージェネレータ902が、オブジェクト←→エンティティ間のマッピング情報901(MSLを介して指定される)を変換し、O←→E(オブジェクト−エンティティ)空間内のクエリビュー、更新ビュー、および対応する(クエリおよび更新)デルタ式904を作成する。この情報は、メタデータストア908に置くことができる。
2.ビュージェネレータ906が、エンティティ←→ストア間のマッピング情報903(MSLを介して指定される)を変換し、E←→S(エンティティ−ストア)空間内のクエリビュー、更新ビュー、および対応する(クエリおよび更新)デルタ式907を作成する。この情報は、メタデータストア908に置くことができる。
3.依存性分析909コンポーネントは、ビュージェネレータ906によって作成されたビューを検査し、参照整合性および他のそのような制約に反しない更新について一貫した依存性順序(dependency order)910を決定する。この情報は、メタデータストア908に置くことができる。
4.次に、ビュー、デルタ式、および依存性順序908が、メタデータサービスコンポーネント(図1の112)に渡される。
このセクションは、更新処理パイプラインを説明する。一実施形態において、Entity Frameworkは、2種類の更新をサポートすることができる。単一オブジェクト変更とは、オブジェクトグラフをナビゲートしている間に個々のオブジェクトに対して行われる変更である。単一オブジェクト変更について、システムは、現在のトランザクションにおいて作成、更新、および削除されたオブジェクトを追跡する。これは、オブジェクトレイヤにおいてのみ使用可能である。クエリベースの変更とは、例えばテーブルを更新するためにリレーショナルデータベースで行われるように、オブジェクトクエリに基づいて更新/削除ステートメントを発行することによって実行される変更である。図1の131などのObject Providerは、単一オブジェクト変更をサポートするように構成されることがあるが、クエリベースの変更をサポートするように構成されないことがある。一方、Entity Clientプロバイダ111は、クエリベースの変更をサポートすることができるが、単一オブジェクト変更をサポートすることはできない。
単純化1041:式ツリーは、論理式変換ルールを使用することによって単純化される。
SQLの生成1042:式ツリーが与えられると、ストアプロバイダは、式ツリー1038から実際のSQL 1043を生成する。
SQLの実行1044:実際の変更が、データベースに対して実行される。
サーバ生成値:サーバによって生成された値は、EDPレイヤ1030に返される。プロバイダ1044は、サーバ生成値をレイヤ1030内のコンポーネント1039に渡し、コンポーネント1039は、マッピングを使用してこれらをEDM概念に変換する。アプリケーションレイヤ1000は、これらの更新1003をピックアップし、そのレイヤ内で利用される様々なアプリケーションおよびオブジェクトにインストールされるオブジェクトレベル概念に伝搬する。
マッピングインフラストラクチャは、有利には、様々なオペレーションをアプリケーション空間からリレーショナル空間に変換する能力を提供することができ、例えば、開発者によって記述されたオブジェクトクエリが、リレーショナル(ストレージ)空間に変換される。これらの変換は、データの過剰なコピーを伴わない効率的なものでなければならない。マッパー(mapper)は、次の例示的なオペレーションの変換を提供することができる。
Entity Frameworkがサポートできる例示的な開発シナリオを論じる前に、ORマッパーの様々な論理的な部分を説明する。一実施形態では、図11に図示されるように、ORマッピングに5つの部分がある。
開発者の観点からのORマッパーの「可視」部分の1つは、マッピング仕様言語、すなわちMSLであり、開発者は、この言語を使用して、マッピングの様々な部分を互いにどのように結び付けられるかを指定する。ランタイムコントロール(例えば、遅延フェッチ、オプティミスティック並行性制御の問題)も、MSLを使用して指定される。
オブジェクト−EDMマッピング:一実施形態において、全てのオブジェクトのマッピングをEDM型に関して指定する。
EDM−ストアマッピング:一実施形態において、全てのエンティティのマッピングをテーブルに関して指定する。
オブジェクト−ストアマッピング:一実施形態において、全てのオブジェクトのマッピングをテーブルに関して指定する。
各CPersonがCAddressアイテムのコレクションを有するように、1つのエンティティ型CPerson、およびインライン型CAddressを指定する。
2つのテーブル型、SPersonおよびSAddressを、それらのキー(tpidおよびtaid)とともに指定する。
OPersonの後のマッピングは、オブジェクト型OPersonがEntity CPersonにマッピングされることを述べるものである。その後のリストは、OPersonの各フィールドがどのようにマッピングされるかを指定し、nameは名前にマッピングされ、addrsコレクションはアドレスコレクションにマッピングされる。
EDMエンティティ型、CPersonは、テーブル型SPersonに、そのキー属性および名前cname属性でマッピングされる。InlineType CAddressは、単純な手法でSAddressにマッピングされる。テーブルSAddressは、外部キーをSPersonに格納する場合があることに留意されたい。この制約は、マッピングではなく、テーブルのデータモデル仕様において指定されている可能性がある。
開発者は、OPersonに対するオプティミスティック並行性制御を、pidフィールドおよびnameフィールドに対して行うことを指定することを望む場合がある。OAddressについて、開発者は、stateフィールドに対する並行性制御を指定することができる。
HibernateおよびObjectSpacesなどの、ほとんどのORマッピング技術は、重要な短所を有する。すなわち、これらの技術は、比較的アドホックな手法で更新を処理する。オブジェクト変更をサーバにプッシュバックする必要があるとき、これらのシステムによって使用されるメカニズムは、ケースバイケースの原則で更新を扱い、これによりステムの拡張性が制限される。より多くのマッピングケースがサポートされるにつれて、更新パイプラインは、より複雑になり、更新のためにマッピングを構成することが難しくなる。システムが進化するにつれて、システムのこの部分は、正しいことを保証しながら変更することが非常に面倒になる。
1.ビューは、オブジェクトとリレーションとの間のマップを表すための相当な能力(power)および柔軟性を提供する。ORマッピングエンジンのコア部分内の制限されたビュー式の言語から始めることができる。時間およびリソースが許す限り、ビューの能力を使用して、システムを体裁よく進歩させることができる。
2.ビューは、クエリ、更新、およびビュー自体で非常に的確に構成されることが知られている。構成可能性、特に更新に関する更新可能性は、以前に試みられたORマッピングアプローチの一部に関し、問題のある争点であった。ビューベースのテクノロジを採用することによって、そのような懸念事項を回避することができる。
本発明の諸態様の実装において考慮すべき重要な問題は、クエリマッピングビューおよび更新マッピングビューを表すマッピングビュー言語(MVL)の能力が何であるかである。これは、EDMとストアとの間のマッピングとともにオブジェクトとEDMとの間の非規範的マッピング(non−prescriptive mapping)の全てをキャプチャするのに、ほぼ十分に強力である。しかし、全ての非リレーショナルCLRおよびEDMの概念をネイティブにサポートするMVLについて、全てのそのような構造についてデルタ式または増分ビューの更新ルールを設計する必要がある。特に、一例示的実施形態は、次の非リレーショナル代数の演算子/概念に関する更新ルールを必要とすることがある。
複合型−オブジェクト、タプルコンストラクタ、フラット化、複合定数などの部分にアクセスする。
コレクション−ネスト化およびアンネスト化、セット構築/フラット化、相互適用(cross apply)など。
配列/リスト−要素の順序付けは、リレーショナル構造ではなく、明らかに、順序付けリストの代数は、非常に複雑である。
MVLは、2つのレイヤ、すなわち、リレーショナル項(term)内での実際の非規範的マッピングを扱うレイヤと、リレーショナル項への非リレーショナル構造の規範的変換を扱うレイヤに分解される。前者の言語を、R−MVL(リレーショナル−MVL)と称し、対応するマッピングをR−MVLマッピングと称する。同様に、後者の(より強力な)言語を、N−MVL(非リレーショナル−MVL)と称し、マッピングを、N−MVLマッピングと称する。
要約すると、クラス、EDM型、またはテーブルの仕様Mごとに、対応するRES、および、Mと対応するRESとの間の規定の変換を生成する。したがって、図15に図示されるように、次を生成する。
1.Mに対応するRES RES−CDM(M)、RES−Object(M)、またはRES−Store(M)と表される。
2.各仕様MをRESリレーションに関して表すための規定の変換。
3.上記RESリレーションをMに関して表すための規定の変換。
4.クエリマッピングビュー:EDM型に関してオブジェクトを表すOE QMView、ストア(テーブル)に関してEDM型を表すES QMViewの2つのビューがある。
5.更新マッピングビュー:オブジェクトに関してEDM型を表すOE UMView、EDM型に関してストアテーブルを表すES UMViewの2つのビューがある。
6.更新の増分保守のために、UMViewに対するデルタ式も生成する。
クエリマップ:CDM/テーブルに関してオブジェクト/CDMを表す。
更新マップ:CDM/オブジェクトに関してテーブル/CDMを表す。
更新デルタ式:CDM/オブジェクトのデルタに関してテーブル/CDMのデルタを表す。
通知デルタ式:CDM/テーブルのデルタに関してオブジェクト/CDMのデルタを表す。
依存性順序:様々な挿入、削除、更新のオペレーションを異なるリレーションに対して実行しなければならない順序。この順序は、更新プロセス中にデータベース制約に違反しないことを保証する。
ここで、検討してきたPersonの例に関する規定の変換および非規定の変換のマッピングについて、簡潔に示す。クエリマッピングビューと更新マッピングビューとの両方を提示し、対応するビュー保守式については、下記でさらに検討する。
OPersonを、RES構造のR_OPersonに変換し、R_OPersonは、nameおよびpidを単純に反映する。同様に、OAddressを、R_OAddressに変換する。アドレスのコレクションを変換するために、1対多のアソシエーション、R_OPerson_Addressを使用する。EDM構造についても同様である。テーブル(R_SPerson、R_SAddress)のRESは、SPersonおよびSAddressへの恒等マッピングである。これらのRESは、次の通りである。
オブジェクト−ストアマッピング(オブジェクト−EDMマッピングおよびEDM−ストアマッピングにまたがって構成される)を示す。
オブジェクトとEDM空間との間のマッピングは、本質的に恒等である。3つのビュー、R_CPerson、R_CAddress、およびR_CPerson_Addressの全てが、R_SPersonおよびR_SAddressに対する単純な射影である。
OPersonオブジェクトは、R_OAddressとR_OPerson_Addressの結合を行い、結果をネストすることによって、R_OPerson、R_OAddress、およびR_OPerson_Addressを使用して表される。
単純化の後の構成された式は、以下とすることができる(この例に関し、テーブルとそのRES構造との間に恒等変換があることを想起されたい)。
・RES空間内の非規定のビュー
R_SPersonに関するUMViewは、単にR_CPersonに対する射影であり、R_SAddressは、R_CAddressを1対多のアソシエーションテーブル、R_CPerson_Addressと結合することによって構築される。CDMとオブジェクト空間との間のマッピングは、恒等である。
オブジェクトをRESに変換し、その結果、更新をオブジェクト空間からRES空間にプッシュできるようにする必要がある。R_OPersonの規定の変換は、単純な射影であるが、R_OAddressおよびR_OPerson_Addressの変換は、人とそのアドレスとの間で結合を実行することによって達成される。これは、「ポインタ結合」または「ナビゲーション結合」である。
上記のビューを構成して(およびいくつかの単純化を伴って)、次の構成された更新マッピングビューを得る。
生成されたビューが満たす必要がある重要なプロパティは、それらのビューが「ラウンドトリップ」しなければならないことである。すなわち、情報の消失を全て防ぐために、エンティティ/オブジェクトが保存され、その後取り出される際に情報の消失がないことを保証しなければならない。言い換えると、全てのエンティティ/オブジェクトDについて、次を保証することを望む。
D = QMView(UMView(D))
OPersonに関するクエリビューにおいてSPersonを置換することによって、次が得られる。
R_OPerson_Addressについて、わずかに複雑である。次を有する。
R_OAddressは、次のように与えられる。
(クエリトランスレータ)
EDPクエリトランスレータ(EQT)は、マッピングメタデータを利用することによって、クエリをオブジェクト/EDM空間からプロバイダ空間に変換することに関与する。ユーザクエリを、様々な構文、例えば、eSQL、C# Sequence、VB SQLなどで表すことができる。EQTアーキテクチャを図17に示す。ここで、EQTの様々なコンポーネントを説明する。
1.名前解決:クエリ内の全ての名前が、この時点で解決される。これは、エクステント、型、型のプロパティ、型のメソッドなどへの参照を含む。副作用として、そのような式のデータ型も推論される。このサブフェーズは、メタデータコンポーネントと対話する。
2.型のチェックおよび推論:クエリ内の式が型をチェックされ、結果の型が推論される。
3.検証:他の種類の検証が、ここで行われる。例えば、SQLプロセッサ内で、クエリブロックがグループ化の節(group−by clause)を含む場合、このフェーズを使用して、選択リストがグループ化のキー(group−by keys)または集約関数だけを参照できるという制約を実施することができる。
サブクエリフラット化(ビューおよびネストされたサブクエリ)
結合除去
述部の除去および統合
述部のプッシュダウン
共通のサブ式の除去
射影のプルーニング
外部結合→内部結合の変形
左相関の除去
我々が展開していた、人−アドレスの例を検討されたい。ユーザが、次のクエリ(WA内の全ての人を見つける)を実行することを望むと仮定する。このクエリを擬似CSQLで次のように記述することができる。
EQTは、クエリのコンパイル中および実行中に様々なメタデータを必要とする。このメタデータは、次を含む。
ストレージ−空間メタデータ:上で説明したもの。
アプリケーション−>スキーママッピング:ビュー拡張に必要なビュー定義を表す論理演算子ツリー。
スキーマ−>ストレージマッピング:上で説明したもの。
クエリ処理の様々な段階でのエラーは、ユーザが理解できる用語で報告されるべきである。様々なコンパイル時および実行時のエラーが、クエリ処理中に発生することがある。構文分析中および意味分析中のエラーは、ほとんどがアプリケーション空間内であり、ほんのわずかな特殊処理を必要とする。変形中のエラーは、ほとんどがリソースエラー(メモリ不足など)であり、多少の特殊処理を必要とする。コード生成中および後続のクエリ実行中のエラーは、適切に処理されることが必要な可能性がある。エラー報告における主要な課題は、より低いレベルの抽象化で発生するランタイムエラーを、アプリケーションレベルの意味のあるエラーにマッピングすることである。これは、より低いレベルのエラーを、ストレージマッピング、概念マッピング、およびアプリケーションマッピングを介して処理することが必要であることを意味する。
サンプルのOOクエリは、ワシントン州にアドレスを有する全ての人の名前をフェッチする。
このクエリを、項またはR_OPerson、R_OPerson_Address、およびR_OAddressで表された次の純リレーショナルクエリに変換することができる。本質的に、必要な場合に様々なナビゲーションプロバティ(ドット「.」式)を結合式に拡張しようとしている。
ここで、クエリをSQLに変換するためにビューアンフォールディングを行う。
ここで、一連の論理変形を適用して、このクエリを単純化する。
EDPは、アプリケーションが新しいオブジェクトを作成し、更新し、削除し、これらの変更を永続的に格納することを可能にする。ORマッピングコンポーネントは、これらの変更がバックエンドストア変更に正しく変換されることを保証する必要がある。前述したように、オブジェクトに関してテーブルを宣言する更新マッピングビューを使用する。そのようなビューを使用することによって、本質的に、更新の伝搬の問題が、ベースリレーションに対する変更がビューに伝搬される必要があるマテリアライズビュー保守の問題となった。ここでUMViewsの場合は、「ベースリレーション」はオブジェクトであり、「ビュー」はテーブルである。この問題をこの手法でモデル化することによって、リレーショナルデータベースの世界で開発されてきたビュー保守技術の知識を活用することができる。
クエリの場合と同様に、更新に関する多数のマッピング作業が、コンパイル時に実行される。クラス、EDM型、およびテーブルのRelationally Expressed Schemaとともに、これらの型と対応するRES構造との間の規定の変換を生成する。また、クラスのRES構造とEDM型との間、およびEDM型のRES構造とストアテーブルとの間で更新マッピングビューも生成する。
R_OPersonのUMViewは、単にR_SPersonに対する射影であり、R_SAddressは、R_OAddressを、1対多のアソシエーションテーブル、すなわちR_OPerson_Addressと結合することによって構築される。
オブジェクトをRESに変換し、その結果、更新をオブジェクト空間からRES空間にプッシュできるようにする必要がある。「o2r」関数を使用して、オブジェクトの仮想メモリアドレスをpidキーおよびaidキーに変換する。この実装において、単純にオブジェクトのシャドウ状態からキーを得ることができる。R_OPersonに関する規定の変換は、単純な射影であるが、R_OAddressおよびR_OPerson_Addressに関する変換は、人とそのアドレスとの間の結合を実行することによって達成される。
上記のビューを構成して(およびいくつかの単純化を伴って)、次の構成された更新マッピングビューを得る。
アプリケーションが、そのオブジェクト変更をバックエンドに保存することを求めるとき、諸実施形態は、これらの変更をバックエンドストアに変換することができる。すなわち、オブジェクト(ベースリレーション)のデルタ式に関するテーブル(ビュー)のデルタ式を生成することができる。これは、ビュー生成/コンパイルプロセスのRES構造への分解が実際に役立つ領域である。非規定のマッピングに関するデルタ式は、比較的容易に生成することができる。これは、非規定のマッピングがリレーショナル空間にあり(RESは純粋にリレーショナルである)、リレーショナルデータベースにおける大量の研究がこの目標を達成するために行われてきたからである。例えば、データベース文献では、デルタ式ルールが、選択、射影、内部結合、外部結合、準結合、共用体、交差、および差などのリレーショナル演算子に関して表されるビューについて開発されてきた。非リレーショナル構造について、必要なものは、非リレーショナル構造をRES空間へ/から変換する規定のデルタ式を設計することだけである。
1.更新されたオブジェクトコレクション1801のグループのデルタ変更式に関する、RESリレーション1811の規定のデルタ変更式1803。例えば、i(OPerson)に関するi(R_OPerson)。
2.RESリレーション1812のデルタ変更式に関するテーブル1802の規定のデルタ変更式1804。例えば、i(R_SPerson)に関するi(SPerson)。
3.オブジェクトのRESリレーションのデルタ式に関して表された、テーブルのRESリレーションのデルタ式1813。例えば、i(R_OPerson)に関するi(R_SPerson)。
1.上記のステップ1、2、および3で言及したデルタ式を生成する。
2.オブジェクト(OPerson)のデルタ式およびオブジェクトコレクション自体に関するテーブル(SPerson)のデルタ式を有するように、これらの式を構成する。
3.オブジェクトコレクションをそのQMViewを使用してアンフォールドして、オブジェクトのデルタ式およびテーブル自体に関するテーブル(SPerson)のデルタ式を取得する。すなわち、オブジェクトコレクションを除去する。諸実施形態において、このアンフォールディングを回避するか、コレクション全体がクライアントでキャッシュされることを知ることを可能にする、特別な事例が存在する可能性がある。
4.ランタイム作業を減らすように、式を単純化/最適化する。
Claims (20)
- データサービスをアプリケーションに提供する方法であって、
データベースに関連するデータベーススキーマに関して、アプリケーションに関連するアプリケーションスキーマの少なくとも一部を表す、クエリビュー1302を生成することと、
前記アプリケーションスキーマに関して前記データベーススキーマの少なくとも一部を表す、更新ビュー1412を生成することと、
前記データベース1303にクエリするのに、要求アプリケーションの代わりに前記クエリビューを利用することと、
前記データベース1414を更新するのに、前記要求アプリケーションの代わりに前記更新ビューを利用することと
を含むことを特徴とする方法。 - 前記要求アプリケーションから、前記データベースの更新に使用するためのデータを含むプログラミング言語のオブジェクトを受信すること1411をさらに含むことを特徴とする請求項1に記載の方法。
- 前記要求アプリケーションから、前記データベースの更新に使用するためのデータを含む作成命令、挿入命令、更新命令、または削除命令を受信すること1411をさらに含むことを特徴とする請求項1に記載の方法。
- 前記要求アプリケーションンから、前記データベースの更新に使用するためのデータを含む、データ操作言語(DML)の式を受信すること1411をさらに含むことを特徴とする請求項1に記載の方法。
- 前記データベースに対する更新を計算するのに前記更新ビューを利用することは、前記更新ビューにビュー保守アルゴリズムを適用することを含むことを特徴とする請求項1に記載の方法。
- 前記更新ビューにビュー保守アルゴリズムを適用することは、前記更新ビューに関するデルタ式を作成することを含み、さらに、前記デルタ式をクエリビューと組み合わせるためにビューアンフォールディングを使用すること1715を含むことを特徴とする請求項3に記載の方法。
- 前記データベースに対する更新を計算するのに前記更新ビューを利用することは、前記データベースの更新に使用するための受信したデータに、ビュー保守アルゴリズムを適用することを含むことを特徴とする請求項1に記載の方法。
- 前記アプリケーションスキーマは、クラス、リレーションシップ、継承、集約、および複合型をサポートすることを特徴とする請求項1に記載の方法。
- 前記更新ビューは、前記アプリケーションスキーマを前記データベーススキーマに相関させるマッピングを使用して生成されることを特徴とする請求項1に記載の方法。
- 前記クエリビューおよび前記更新ビューは、前記マッピングを使用して生成されることを特徴とする請求項9に記載の方法。
- データサービスをアプリケーションに提供するデータアクセスシステムであって、
データベースに関連するデータベーススキーマに関して、アプリケーションに関連するアプリケーションスキーマの少なくとも一部を表すクエリビューを生成するコンポーネント110と、
前記アプリケーションスキーマに関して前記データベーススキーマの少なくとも一部を表す更新ビューを生成するコンポーネント110と、
前記データベースにクエリするのに、要求アプリケーションの代わりに前記クエリビューを利用するコンポーネント113と、
前記データベースを更新するのに、前記要求アプリケーションの代わりに前記更新ビューを利用するコンポーネント113と
を備えることを特徴とするデータアクセスシステム。 - 前記要求アプリケーションから、前記データベースの更新に使用するためのデータを含むプログラミング言語のオブジェクトを受信するコンポーネント113をさらに備えることを特徴とする請求項11に記載のデータアクセスアーキテクチャ。
- 前記要求アプリケーションから、前記データベースの更新に使用するためのデータを含む作成命令、挿入命令、更新命令、または削除命令を受信するコンポーネント113をさらに備えることを特徴とする請求項11に記載のデータアクセスアーキテクチャ。
- 前記要求アプリケーションからデータ操作言語(DML)の式を受け取るコンポーネント113をさらに備え、前記式は、前記データベースの更新に使用されるデータを備えることを特徴とする請求項11に記載のデータアクセスアーキテクチャ。
- 前記データベースに対する更新を計算するのに前記更新ビューを利用する前記コンポーネント113は、前記更新ビューにビュー保守アルゴリズムを適用することを特徴とする請求項11に記載のデータアクセスアーキテクチャ。
- 前記更新ビューにビュー保守アルゴリズムを適用することは、前記更新ビューのデルタ式を作成し、さらに、前記デルタ式をクエリビューと組み合わせるためにビューアンフォールディングを使用するコンポーネント113を備えることを特徴とする請求項15に記載のデータアクセスアーキテクチャ。
- 前記データベースに対する更新を計算するのに更新ビューを利用する前記コンポーネント113は、前記データベースの更新に使用するための受信したデータに、ビュー保守アルゴリズムを適用することを特徴とする請求項11に記載のデータアクセスアーキテクチャ。
- 前記アプリケーションスキーマは、クラス、リレーションシップ、継承、集約、および複合型をサポートすることを特徴とする請求項11に記載のデータアクセスアーキテクチャ。
- 前記アプリケーションスキーマを前記データベーススキーマに相関させるマッピングを生成するコンポーネント114をさらに備えることを特徴とする請求項11に記載のデータアクセスアーキテクチャ。
- 前記クエリビューおよび前記更新ビューは、前記マッピングを使用して生成されることを特徴とする請求項19に記載のデータアクセスアーキテクチャアーキテクチャ。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US78567206P | 2006-03-23 | 2006-03-23 | |
US60/785,672 | 2006-03-23 | ||
US11/725,206 US7680767B2 (en) | 2006-03-23 | 2007-03-16 | Mapping architecture with incremental view maintenance |
US11/725,206 | 2007-03-16 | ||
PCT/US2007/007261 WO2007112009A1 (en) | 2006-03-23 | 2007-03-22 | Mapping architecture with incremental view maintenance |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009544064A true JP2009544064A (ja) | 2009-12-10 |
JP2009544064A5 JP2009544064A5 (ja) | 2010-05-13 |
JP5064483B2 JP5064483B2 (ja) | 2012-10-31 |
Family
ID=38534796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009502890A Active JP5064483B2 (ja) | 2006-03-23 | 2007-03-22 | 増分ビューの保守を用いたマッピングアーキテクチャ |
Country Status (12)
Country | Link |
---|---|
US (1) | US7680767B2 (ja) |
EP (1) | EP2008206B1 (ja) |
JP (1) | JP5064483B2 (ja) |
KR (1) | KR101411083B1 (ja) |
CN (1) | CN101405729B (ja) |
AT (1) | ATE528720T1 (ja) |
AU (1) | AU2007231006B2 (ja) |
BR (1) | BRPI0709108A2 (ja) |
CA (1) | CA2643699C (ja) |
MX (1) | MX2008011651A (ja) |
RU (1) | RU2441273C2 (ja) |
WO (1) | WO2007112009A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009146388A (ja) * | 2007-10-12 | 2009-07-02 | Asml Masktools Bv | 複雑なリレーショナルデータ構造用のプロパティテーブルビューと組み合わされたコンパクトな表示方法 |
JP2011154653A (ja) * | 2010-01-28 | 2011-08-11 | Nippon Telegr & Teleph Corp <Ntt> | データモデリング方法及び装置及びプログラム |
JP2012194602A (ja) * | 2011-03-14 | 2012-10-11 | Fujitsu Ltd | データストア制御装置、データストア制御プログラムおよびデータストア制御方法 |
Families Citing this family (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093495B (zh) * | 2006-06-22 | 2011-08-17 | 国际商业机器公司 | 基于网状关系维的数据处理方法和系统 |
US8156149B2 (en) | 2007-07-24 | 2012-04-10 | Microsoft Corporation | Composite nested streams |
US8423955B2 (en) * | 2007-08-31 | 2013-04-16 | Red Hat, Inc. | Method and apparatus for supporting multiple business process languages in BPM |
US7996416B2 (en) * | 2007-08-31 | 2011-08-09 | Red Hat, Inc. | Parameter type prediction in object relational mapping |
US9058571B2 (en) * | 2007-08-31 | 2015-06-16 | Red Hat, Inc. | Tool for automated transformation of a business process definition into a web application package |
US8914804B2 (en) | 2007-09-12 | 2014-12-16 | Red Hat, Inc. | Handling queues associated with web services of business processes |
US8825713B2 (en) * | 2007-09-12 | 2014-09-02 | Red Hat, Inc. | BPM system portable across databases |
US7941398B2 (en) * | 2007-09-26 | 2011-05-10 | Pentaho Corporation | Autopropagation of business intelligence metadata |
US8429601B2 (en) * | 2007-11-29 | 2013-04-23 | Red Hat, Inc. | Code completion for object relational mapping query language (OQL) queries |
US8954952B2 (en) * | 2007-11-30 | 2015-02-10 | Red Hat, Inc. | Portable business process deployment model across different application servers |
US9336327B2 (en) * | 2007-11-30 | 2016-05-10 | Microsoft Technology Licensing, Llc | Mapping and query translation between XML, objects, and relations |
US8161000B2 (en) * | 2008-01-04 | 2012-04-17 | International Business Machines Corporation | Generic bijection with graphs |
US8166449B2 (en) * | 2008-01-17 | 2012-04-24 | Microsoft Corporation | Live bidirectional synchronizing of a visual and a textual representation |
US20090193004A1 (en) * | 2008-01-30 | 2009-07-30 | Business Objects, S.A. | Apparatus and method for forming database tables from queries |
US8209340B2 (en) * | 2008-03-31 | 2012-06-26 | Microsoft Corporation | Efficient functional representation of result shaping |
US8375014B1 (en) * | 2008-06-19 | 2013-02-12 | BioFortis, Inc. | Database query builder |
US8819046B2 (en) * | 2008-06-24 | 2014-08-26 | Microsoft Corporation | Data query translating into mixed language data queries |
US8364750B2 (en) | 2008-06-24 | 2013-01-29 | Microsoft Corporation | Automated translation of service invocations for batch processing |
US8375044B2 (en) * | 2008-06-24 | 2013-02-12 | Microsoft Corporation | Query processing pipelines with single-item and multiple-item query operators |
US8713048B2 (en) * | 2008-06-24 | 2014-04-29 | Microsoft Corporation | Query processing with specialized query operators |
US8364751B2 (en) | 2008-06-25 | 2013-01-29 | Microsoft Corporation | Automated client/server operation partitioning |
US8676749B2 (en) * | 2008-07-31 | 2014-03-18 | Sybase, Inc. | Statement logging in databases |
US8176272B2 (en) * | 2008-09-04 | 2012-05-08 | International Business Machines Corporation | Incremental backup using snapshot delta views |
US8285708B2 (en) * | 2008-10-21 | 2012-10-09 | Microsoft Corporation | Query submission pipeline using LINQ |
CN101419616A (zh) | 2008-12-10 | 2009-04-29 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
US9047338B2 (en) | 2008-12-17 | 2015-06-02 | International Business Machines Corporation | Managing drill-through targets |
US8463743B2 (en) * | 2009-02-17 | 2013-06-11 | Microsoft Corporation | Shared composite data representations and interfaces |
US8738584B2 (en) * | 2009-02-17 | 2014-05-27 | Microsoft Corporation | Context-aware management of shared composite data |
US8065323B2 (en) * | 2009-02-23 | 2011-11-22 | Oracle International Corporation | Offline validation of data in a database system for foreign key constraints |
US8150882B2 (en) * | 2009-03-03 | 2012-04-03 | Microsoft Corporation | Mapping from objects to data model |
US8280924B2 (en) * | 2009-03-26 | 2012-10-02 | Microsoft Corporation | Object-relational mapping with dynamic relational schemas |
US9864796B2 (en) * | 2009-06-24 | 2018-01-09 | Microsoft Technology Licensing, Llc | Databases from models |
US8688752B2 (en) * | 2009-08-28 | 2014-04-01 | Adobe Sytems Incorporated | Method and system for deploying a model-based application to an application server |
CA2679786A1 (en) * | 2009-09-16 | 2009-12-16 | Ibm Canada Limited - Ibm Canada Limitee | Conceptual representation of business processes for cross-domain mapping |
US8667028B2 (en) * | 2009-09-28 | 2014-03-04 | At&T Global Network Services Deutschland Gmbh | System and method to determine database schema impact |
US8768947B2 (en) * | 2009-12-22 | 2014-07-01 | At&T Global Network Services Deutschland Gmbh | System and method for implementing unique primary keys across enterprise databases |
US8739118B2 (en) | 2010-04-08 | 2014-05-27 | Microsoft Corporation | Pragmatic mapping specification, compilation and validation |
US8433673B2 (en) * | 2010-05-28 | 2013-04-30 | Oracle International Corporation | System and method for supporting data warehouse metadata extension using an extender |
CN101840230B (zh) * | 2010-06-04 | 2012-02-01 | 浙江中控技术股份有限公司 | 一种监控和管理数据的方法及系统 |
US8843843B2 (en) * | 2010-06-25 | 2014-09-23 | International Business Machines Corporation | Method and system using heuristics in performing batch updates of records |
CA2706741C (en) | 2010-06-29 | 2011-12-13 | Ibm Canada Limited - Ibm Canada Limitee | Managing parameters in filter expressions |
US8566318B1 (en) | 2010-09-10 | 2013-10-22 | Giovanni Sacco | Process for physical database design based on transaction workload |
US9460189B2 (en) | 2010-09-23 | 2016-10-04 | Microsoft Technology Licensing, Llc | Data model dualization |
US20120094600A1 (en) | 2010-10-19 | 2012-04-19 | Welch Allyn, Inc. | Platform for patient monitoring |
US9477730B2 (en) * | 2010-10-28 | 2016-10-25 | Microsoft Technology Licensing, Llc | Web services runtime for dataset transformation |
US8538963B2 (en) * | 2010-11-16 | 2013-09-17 | International Business Machines Corporation | Optimal persistence of a business process |
US8874601B2 (en) * | 2010-12-17 | 2014-10-28 | Sap Ag | SADL query view—a model-driven approach to speed-up read-only use cases |
US20120158763A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Bulk operations |
US8650151B2 (en) * | 2011-01-24 | 2014-02-11 | International Business Machines Corporation | Transactional service pipeline |
US9141403B2 (en) * | 2011-02-15 | 2015-09-22 | Microsoft Technology Licensing, Llc | Data-driven schema for describing and executing management tasks in a graphical user interface |
CN102104510B (zh) * | 2011-03-01 | 2014-01-29 | 北京中创信测科技股份有限公司 | 一种数据视图处理方法和系统 |
US8601007B2 (en) * | 2011-05-17 | 2013-12-03 | Microsoft Corporation | Net change notification based cached views with linked attributes |
US9396284B2 (en) * | 2011-05-18 | 2016-07-19 | Oracle International Corporation | Method and system for implementing efficient updatable relational views over XML data |
WO2013013093A1 (en) * | 2011-07-20 | 2013-01-24 | Ness Computing, Inc. | Method and apparatus for quickly evaluating entities |
US8601016B2 (en) | 2011-08-30 | 2013-12-03 | International Business Machines Corporation | Pre-generation of structured query language (SQL) from application programming interface (API) defined query systems |
US9201558B1 (en) | 2011-11-03 | 2015-12-01 | Pervasive Software Inc. | Data transformation system, graphical mapping tool, and method for creating a schema map |
US9430114B1 (en) | 2011-11-03 | 2016-08-30 | Pervasive Software | Data transformation system, graphical mapping tool, and method for creating a schema map |
CN102521401B (zh) * | 2011-12-24 | 2014-10-15 | 北京数码大方科技股份有限公司 | 数据视图的处理方法及装置 |
US8990187B2 (en) | 2012-05-21 | 2015-03-24 | Google Inc. | Efficient top-down hierarchical join on a hierarchically clustered data stream |
US9922303B2 (en) | 2012-08-30 | 2018-03-20 | Oracle International Corporation | Method and system for implementing product group mappings |
US9953353B2 (en) | 2012-08-30 | 2018-04-24 | Oracle International Corporation | Method and system for implementing an architecture for a sales catalog |
US10223697B2 (en) * | 2012-08-30 | 2019-03-05 | Oracle International Corporation | Method and system for implementing a CRM quote and order capture context service |
RU2515565C1 (ru) * | 2012-10-22 | 2014-05-10 | Закрытое акционерное общество Научно-производственное предприятие "Реляционные экспертные системы" | Способ обновления структурированных данных в системе управления реляционными базами данных |
US9098546B2 (en) * | 2012-12-12 | 2015-08-04 | Sap Se | Advanced business query language |
US9424304B2 (en) | 2012-12-20 | 2016-08-23 | LogicBlox, Inc. | Maintenance of active database queries |
CN103092998B (zh) * | 2013-02-21 | 2017-02-08 | 用友网络科技股份有限公司 | 数据查询系统和数据查询方法 |
JP6343337B2 (ja) * | 2013-03-15 | 2018-06-13 | ニューラ ラブス コーポレイション | 知識への1段階アクセスを提供する適応ユーザインターフェースを有する知的インターネットシステム |
US10705802B2 (en) | 2013-03-20 | 2020-07-07 | Microsoft Technology Licensing, Llc | Extensible and queryable strong types |
US9734183B2 (en) * | 2013-08-08 | 2017-08-15 | Hong Kong Baptist University | System and method for performing view updates in database systems |
US9342555B2 (en) | 2013-08-30 | 2016-05-17 | International Business Machines Corporation | Reporting tools for object-relational databases |
WO2015035289A1 (en) * | 2013-09-06 | 2015-03-12 | Unisys Corporation | Business suite framework for developing software applications |
CN104519103B (zh) * | 2013-09-30 | 2018-10-26 | 腾讯科技(北京)有限公司 | 网络数据的同步处理方法、服务器及相关系统 |
CN104598374B (zh) | 2013-10-30 | 2017-12-01 | 国际商业机器公司 | 校正失效脚本的方法和设备 |
US20150193852A1 (en) * | 2014-01-09 | 2015-07-09 | Cgi Federal, Inc. | System and method for multi-user evaluation of healthplan benefit based on prescription coverage annual cost |
US9961011B2 (en) | 2014-01-21 | 2018-05-01 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
CN105138526B (zh) * | 2014-05-30 | 2019-02-22 | 国际商业机器公司 | 用于为关系型数据库自动生成语义映射的方法和系统 |
US10594619B2 (en) | 2014-06-23 | 2020-03-17 | Oracle International Corporation | System and method for supporting configuration of dynamic clusters in a multitenant application server environment |
US10009225B2 (en) * | 2014-06-23 | 2018-06-26 | Oracle International Corporation | System and method for supporting multiple partition edit sessions in a multitenant application server environment |
WO2016011677A1 (en) * | 2014-07-25 | 2016-01-28 | Hewlett-Packard Development Company, L.P. | Local database cache |
US20160070541A1 (en) * | 2014-09-08 | 2016-03-10 | Unisys Corporation | Conversion of business suite solutions |
US10372697B2 (en) | 2014-12-19 | 2019-08-06 | International Business Machines Corporation | Responding to data requests related to constrained natural language vocabulary terms |
CN104731911A (zh) * | 2015-03-24 | 2015-06-24 | 浪潮集团有限公司 | 一种数据表与实体类的动态映射及转换方法 |
US10078676B2 (en) * | 2015-04-06 | 2018-09-18 | Sap Se | Schema evolution in multi-tenant environment |
EP3079065B1 (en) | 2015-04-08 | 2019-06-12 | Huawei Technologies Co., Ltd. | Redo-logging for partitioned in-memory datasets |
US10872065B1 (en) * | 2015-08-03 | 2020-12-22 | Intelligence Designs, LLC | System for managing relational databases using XML objects |
US11138223B2 (en) * | 2015-09-09 | 2021-10-05 | LiveData, Inc. | Techniques for uniting multiple databases and related systems and methods |
US10970311B2 (en) * | 2015-12-07 | 2021-04-06 | International Business Machines Corporation | Scalable snapshot isolation on non-transactional NoSQL |
US10394775B2 (en) | 2015-12-28 | 2019-08-27 | International Business Machines Corporation | Order constraint for transaction processing with snapshot isolation on non-transactional NoSQL servers |
US10838940B1 (en) | 2016-08-11 | 2020-11-17 | MuleSoft, Inc. | Balanced key range based retrieval of key-value database |
US10437564B1 (en) | 2016-09-16 | 2019-10-08 | Software Tree, LLC | Object mapping and conversion system |
US11086895B2 (en) | 2017-05-09 | 2021-08-10 | Oracle International Corporation | System and method for providing a hybrid set-based extract, load, and transformation of data |
US10558658B2 (en) * | 2017-05-16 | 2020-02-11 | Sap Se | Propagation of structured query language associations |
US10521223B1 (en) * | 2017-08-22 | 2019-12-31 | Wells Fargo Bank, N.A. | Systems and methods of a metadata orchestrator augmenting application development |
US11138157B2 (en) * | 2017-08-30 | 2021-10-05 | Jpmorgan Chase Bank, N.A. | System and method for identifying business logic and data lineage with machine learning |
US10698884B2 (en) * | 2017-11-06 | 2020-06-30 | Bank Of America Corporation | Dynamic lineage validation system |
CN108038665B (zh) * | 2017-12-08 | 2020-01-24 | 平安科技(深圳)有限公司 | 业务规则管理方法、装置、设备及计算机可读存储介质 |
US11106820B2 (en) * | 2018-03-19 | 2021-08-31 | International Business Machines Corporation | Data anonymization |
US11226854B2 (en) * | 2018-06-28 | 2022-01-18 | Atlassian Pty Ltd. | Automatic integration of multiple graph data structures |
US11036497B1 (en) | 2018-10-24 | 2021-06-15 | Cerner Innovation, Inc. | Code assessment for quality control of an object relational mapper and correction of problematic cast functions |
CN111798311A (zh) * | 2020-07-22 | 2020-10-20 | 睿智合创(北京)科技有限公司 | 基于大数据的银行风险分析库平台、搭建方法及可读介质 |
CN111984977B (zh) * | 2020-08-06 | 2022-07-19 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的多租户权限鉴权方法 |
US20220147568A1 (en) * | 2020-11-10 | 2022-05-12 | Sap Se | Mapping expression generator |
EP4030313A1 (en) * | 2021-01-13 | 2022-07-20 | Sage Global Services Limited | Sql statement generator |
US11829735B2 (en) | 2021-07-14 | 2023-11-28 | Bank Of America Corporation | Artificial intelligence (AI) framework to identify object-relational mapping issues in real-time |
US20230091845A1 (en) * | 2021-09-22 | 2023-03-23 | Sap Se | Centralized metadata repository with relevancy identifiers |
US11797552B2 (en) | 2021-10-01 | 2023-10-24 | Sap Se | System and method for selective retrieval of metadata artefact versions |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058391A (en) * | 1997-12-17 | 2000-05-02 | Mci Communications Corporation | Enhanced user view/update capability for managing data from relational tables |
US6618733B1 (en) * | 2000-04-11 | 2003-09-09 | Revelink Inc. | View navigation for creation, update and querying of data objects and textual annotations of relations between data objects |
US6865569B1 (en) * | 2001-08-22 | 2005-03-08 | Ncr Corporation | Determining materialized view coverage |
US6915305B2 (en) * | 2001-08-15 | 2005-07-05 | International Business Machines Corporation | Restructuring view maintenance system and method |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5504885A (en) * | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
US5907846A (en) * | 1996-06-07 | 1999-05-25 | Electronic Data Systems Corporation | Method and system for accessing relational databases using objects |
US6175837B1 (en) * | 1998-06-29 | 2001-01-16 | Sun Microsystems, Inc. | Object-relational mapping toll that processes views |
US6718320B1 (en) * | 1998-11-02 | 2004-04-06 | International Business Machines Corporation | Schema mapping system and method |
US6421658B1 (en) * | 1999-07-30 | 2002-07-16 | International Business Machines Corporation | Efficient implementation of typed view hierarchies for ORDBMS |
US6795825B2 (en) * | 2000-09-12 | 2004-09-21 | Naphtali David Rishe | Database querying system and method |
US7263512B2 (en) * | 2002-04-02 | 2007-08-28 | Mcgoveran David O | Accessing and updating views and relations in a relational database |
US6954748B2 (en) * | 2002-04-25 | 2005-10-11 | International Business Machines Corporation | Remote data access and integration of distributed data sources through data schema and query abstraction |
AU2002953555A0 (en) * | 2002-12-23 | 2003-01-16 | Canon Kabushiki Kaisha | Method for presenting hierarchical data |
CA2438997A1 (en) * | 2003-08-28 | 2005-02-28 | Ibm Canada Limited - Ibm Canada Limitee | System and method for carrying out legacy application transitions |
US7739223B2 (en) * | 2003-08-29 | 2010-06-15 | Microsoft Corporation | Mapping architecture for arbitrary data models |
CN100498766C (zh) * | 2003-12-02 | 2009-06-10 | 天津曙光计算机产业有限公司 | 基于数据库的海量文件管理系统与方法 |
US8150893B2 (en) * | 2004-12-29 | 2012-04-03 | Alcatel Lucent | Method and apparatus for incremental evaluation of schema-directed XML publishing |
US20060195460A1 (en) * | 2005-02-28 | 2006-08-31 | Microsoft Corporation | Data model for object-relational data |
US7685561B2 (en) * | 2005-02-28 | 2010-03-23 | Microsoft Corporation | Storage API for a common data platform |
US7853961B2 (en) * | 2005-02-28 | 2010-12-14 | Microsoft Corporation | Platform for data services across disparate application frameworks |
US7676493B2 (en) * | 2005-09-07 | 2010-03-09 | Microsoft Corporation | Incremental approach to an object-relational solution |
US7440957B1 (en) * | 2005-11-30 | 2008-10-21 | At&T Intellectual Property Ii, L.P. | Updates through views |
US7467128B2 (en) * | 2006-02-15 | 2008-12-16 | Microsoft Corporation | Maintenance of materialized outer-join views |
-
2007
- 2007-03-16 US US11/725,206 patent/US7680767B2/en active Active
- 2007-03-22 CN CN2007800099443A patent/CN101405729B/zh not_active Expired - Fee Related
- 2007-03-22 KR KR1020087023105A patent/KR101411083B1/ko active IP Right Grant
- 2007-03-22 JP JP2009502890A patent/JP5064483B2/ja active Active
- 2007-03-22 RU RU2008137769/08A patent/RU2441273C2/ru active
- 2007-03-22 MX MX2008011651A patent/MX2008011651A/es active IP Right Grant
- 2007-03-22 BR BRPI0709108-7A patent/BRPI0709108A2/pt not_active IP Right Cessation
- 2007-03-22 CA CA2643699A patent/CA2643699C/en not_active Expired - Fee Related
- 2007-03-22 AU AU2007231006A patent/AU2007231006B2/en not_active Ceased
- 2007-03-22 AT AT07753857T patent/ATE528720T1/de not_active IP Right Cessation
- 2007-03-22 EP EP07753857A patent/EP2008206B1/en not_active Not-in-force
- 2007-03-22 WO PCT/US2007/007261 patent/WO2007112009A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058391A (en) * | 1997-12-17 | 2000-05-02 | Mci Communications Corporation | Enhanced user view/update capability for managing data from relational tables |
US6618733B1 (en) * | 2000-04-11 | 2003-09-09 | Revelink Inc. | View navigation for creation, update and querying of data objects and textual annotations of relations between data objects |
US6915305B2 (en) * | 2001-08-15 | 2005-07-05 | International Business Machines Corporation | Restructuring view maintenance system and method |
US6865569B1 (en) * | 2001-08-22 | 2005-03-08 | Ncr Corporation | Determining materialized view coverage |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009146388A (ja) * | 2007-10-12 | 2009-07-02 | Asml Masktools Bv | 複雑なリレーショナルデータ構造用のプロパティテーブルビューと組み合わされたコンパクトな表示方法 |
JP2011154653A (ja) * | 2010-01-28 | 2011-08-11 | Nippon Telegr & Teleph Corp <Ntt> | データモデリング方法及び装置及びプログラム |
JP2012194602A (ja) * | 2011-03-14 | 2012-10-11 | Fujitsu Ltd | データストア制御装置、データストア制御プログラムおよびデータストア制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US7680767B2 (en) | 2010-03-16 |
EP2008206A4 (en) | 2010-04-21 |
KR20090004881A (ko) | 2009-01-12 |
ATE528720T1 (de) | 2011-10-15 |
CA2643699C (en) | 2014-01-07 |
BRPI0709108A2 (pt) | 2011-06-28 |
CA2643699A1 (en) | 2007-10-04 |
CN101405729B (zh) | 2011-04-20 |
EP2008206B1 (en) | 2011-10-12 |
US20070226196A1 (en) | 2007-09-27 |
CN101405729A (zh) | 2009-04-08 |
EP2008206A1 (en) | 2008-12-31 |
MX2008011651A (es) | 2008-09-22 |
RU2008137769A (ru) | 2010-03-27 |
RU2441273C2 (ru) | 2012-01-27 |
KR101411083B1 (ko) | 2014-07-03 |
AU2007231006B2 (en) | 2011-10-06 |
WO2007112009A1 (en) | 2007-10-04 |
JP5064483B2 (ja) | 2012-10-31 |
AU2007231006A1 (en) | 2007-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5064483B2 (ja) | 増分ビューの保守を用いたマッピングアーキテクチャ | |
US10268742B2 (en) | View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform | |
US7647298B2 (en) | Generation of query and update views for object relational mapping | |
US20100082646A1 (en) | Tracking constraints and dependencies across mapping layers | |
Adya et al. | Anatomy of the ado. net entity framework | |
US7912862B2 (en) | Relational schema format | |
Wilkinson et al. | The Iris architecture and implementation | |
KR101159311B1 (ko) | 임의의 데이터 모델에 대한 맵핑 시스템 및 방법 | |
US8131744B2 (en) | Well organized query result sets | |
BRPI0708827A2 (pt) | linguagem de consulta extensÍvel com suporte para tipos de dados ricos | |
WO2006112969A2 (en) | Path expression in structured query language | |
US20060122973A1 (en) | Mechanism for defining queries in terms of data objects | |
Rompf et al. | A SQL to C compiler in 500 lines of code | |
D'silva et al. | Keep your host language object and also query it: A case for SQL query support in RDBMS for host language objects | |
Vavrek | Evolution Management in NoSQL Document Databases | |
Trung | A Method for Live SQL Query Subscription in React Native | |
Dieker | Efficient Integration of Query Algebra Modules into an Extensible Database Framework | |
Onose et al. | Inverse functions in the aqualogic data services platform | |
Russo et al. | Programming Microsoft LINQ in. NET Framework 4 | |
Amer-Yahia et al. | Bulk Loading into Databases: a Declarative Approach | |
Blow et al. | Experiences with XQuery Processing for Data and Service Federation. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100323 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120306 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120606 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120613 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120706 |
|
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: 20120803 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5064483 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150817 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |