JP2005327232A - 任意のデータモデル用のマッピングアーキテクチャ - Google Patents

任意のデータモデル用のマッピングアーキテクチャ Download PDF

Info

Publication number
JP2005327232A
JP2005327232A JP2004194758A JP2004194758A JP2005327232A JP 2005327232 A JP2005327232 A JP 2005327232A JP 2004194758 A JP2004194758 A JP 2004194758A JP 2004194758 A JP2004194758 A JP 2004194758A JP 2005327232 A JP2005327232 A JP 2005327232A
Authority
JP
Japan
Prior art keywords
data
source
mapping
target
domain
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
JP2004194758A
Other languages
English (en)
Other versions
JP2005327232A6 (ja
JP4847689B2 (ja
Inventor
Alexander Vaschillo
バスチロ アレクサンダー
Ilker Cengiz
センギ イルカー
Bertan Ari
アリ ベルタン
Srinivasa R Burugapalli
アール.ブルガパリ シュリニバーサ
Luca Bolognese
ボロネーゼ ルカ
Avner Y Aharoni
ワイ.アハロニ エイブナー
Steven D White
ディー.ホワイト スティーブン
Alex Laskos
ラスコス アレックス
Andrew J Conrad
ジェイ.コンラッド アンドリュー
Todd F Pfleiger
エフ.プフレイガー トッド
Jason Z Zhu
ゼット.シュー ジェーソン
Chris Suver
スバー クリス
David Schach
シャハ デビッド
Adam J Wiener
ジェイ.ウィーナー アダム
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005327232A publication Critical patent/JP2005327232A/ja
Publication of JP2005327232A6 publication Critical patent/JP2005327232A6/ja
Application granted granted Critical
Publication of JP4847689B2 publication Critical patent/JP4847689B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • 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/25Integrating or interfacing systems involving database management systems
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

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

Abstract

【課題】 データソース自体のメタデータまたは構造を修正せずに2つまたはそれ以上のデータソースの間のマッピングを行うためのデータマッピングアーキテクチャ。
【解決手段】 データマッピングはさらに、更新もサポートする。このアーキテクチャでは、少なくとも、マッピングされるデータソースが与えられ、そのスキーマが事前に定義されており、変更できない場合もサポートする。このアーキテクチャは、少なくとも2つの任意のデータモデルからそれぞれのメタデータを受け取り、データモデル間で表現をマッピングするマッピングコンポーネントを含む。
【選択図】 図1

Description

本発明は、データソース間のデータマッピングに関するものである。
有線方式でも無線方式でも今日一般的になっている情報の自由な流れには、使用するデータの格納および解釈に関してソース(source)とデスティネーション(destination)とで互換性がとれている必要がある。世界に存在する情報源は、多くの場合、情報のソース毎にデータの表現が異なる情報源である。今日企業と個人が直面している主要な問題は、一方のフォーマットで存在するデータが他の目的のためには別のフォーマットで必要になることがあるという点である。
しかし、このようなプロセスは、本質的に大きく異なり絶えず変化するデータセット群により阻害されている。このような例は、様々なソースからデータが届き格納され他のソースから素早くアクセスされるデータウェアハウジングに見られる。一方のデータ表現から他方のデータ表現に変換するのは、時間がかかり、大量のリソースを使うだけでなく、変換問題をはらみ、場合によっては、複雑なためまったく実行不可能である。
以下では、本発明のいくつかの態様の基本的な内容を理解できるように、本発明の要約を簡単に述べる。この要約は、本発明の概要を広範囲にわたって述べたものではない。この要約は、本発明の鍵となる要素や決定的な要素を示したり、本発明の範囲を定めることを目的としていない。後で述べる詳細な説明の前置きとして、本発明のいくつかの概念を簡略化した形式で述べることのみを目的とする。
本明細書で開示され、請求されている本発明は、その一態様において、データソース自体のメタデータまたは構造を修正することなく、2つ(またはそれ以上)のデータソース同士のマッピングが必要なシナリオをサポートする設計のマッピング形式(mapping format)を含む。例えば、オブジェクト空間とリレーショナルデータベース、オブジェクト空間とXMLデータモデル、XMLデータモデルとリレーショナルデータモデルの間のマッピングが実現されるが、あるいは考えられる他のデータモデルからXML、リレーショナルデータモデル、または他のデータモデルへのマッピングを実現することも可能である。このマッピング形式では更新をサポートしており、さらに、マッピングされる両方のデータソースが与えられ、そのスキーマが事前に定義され、変更できない(つまり、読み取り専用である)場合もサポートする。例えば、XMLデータをリレーショナルデータベースにマッピングするためにすでに使用されている方法では、注釈を付け加えるためにXMLスキーマ定義(XSD)ファイルを変更する必要があった。本発明のマッピング形式は、XSDファイルが外部エンティティにより所有され、変更できないかのように働く。また、編集せずに同じXSDファイルを再利用し、異なるデータソース(データベースなど)への複数のマッピングを行うことができる。
各データモデルは、マッピングに対する構造、フィールド、および関係(relationship)という3つの概念(または表現)のうち少なくとも1つを公開する。これらの概念はすべて、データモデル間でマッピングすることができる。1つのデータモデルが3つの表現を持つ他のデータモデルにマッピングされる表現のうちただ1つまたは2つしか持たない可能性がある。マッピング構造は、マッピングスキーマ(mapping schema)の基本コンポーネントであり、対応付けられたマッピングフィールドのコンテナとして使用される。フィールドは、型付きデータを保持するデータモデル概念である。関係は、同じデータモデル内の2つの構造の間のリンクおよび関連付けであり、同じドメイン内の構造が互いにどのような関係にあるかを記述するものである。関係は、構造に他の構造が含まれる2つの構造および/または包含/参照の共通フィールドを通じて確立される。これらは、他の関係を確立できるので(例えば、兄弟関係、機能(function)関係など)関係の単なる例である。本発明により、任意の関係を確立することができる。データモデルのメンバは、マッピングコンテキストに応じて様々なマッピング概念として公開することができる。
意味に関しては、マッピングはメタデータが追加されているビューと同等であり(またビューは実際にはクエリであり)、2つのマッピングされるドメインに関する可逆性のヒントおよび追加情報を含む。一方のデータソースが他方のデータソースにマッピングされる場合、本当に要求されているのは、ターゲットスキーマはソーススキーマの1ビューであるのが望ましいということである。マッピングは、データドメインの上にデータドメインを積み重ねるという形で表されるビューであり、ビュー変換(view transformation)自体を定義するものである。マッピングは、データに対して構造化変換を実行し複合ビューを作成することができ、この変換により、階層が作成されたり、崩壊(collapse)されたり、また一方の要素から他方の要素へ属性を移動し、新しい関係を導入する。
マッピングは、2つまたはそれ以上のマッピングされたモデル間で、マッピング可能な同じ概念を対応付け、接続する。マッピングは、さらに、有向性でもある。したがって、一方のドメインはソースとして分類され、他方のドメインはターゲットとして分類される。マッピングの方向性は、ソースとしてマッピングされるモデルはターゲットとしてマッピングされるモデルと異なる特性を持つという点でマッピングの実装および意味(semantics)に関して重要である。ターゲットはソースモデルのビューを保持し、マッピングはターゲットドメインのクエリ言語を使用して実現される。ソースは、データの永続的位置であり、マッピングはターゲットドメインのクエリ言語で書かれているクエリをソースドメインのクエリ言語に変換する。ソースとターゲットとの違いの1つは、ソースまたはターゲットモデルからの構造またはフィールドが構造およびフィールドについて適用可能なマッピングの個数に関して一部制限を設けているという点である。ターゲットドメインでは、構造およびフィールドは、一度しかマッピングできないが、ソースドメイン内では、構造およびフィールドは複数回マッピングすることができる。例えば、Customersテーブルをターゲットドメイン内のBuyingCustomer要素とReferringCustomer要素にマッピングすることができる。しかし、ローカル要素またはローカルクラスは、一度しかマッピングできない。マッピングの方向属性に起因する他の違いとして、マッピングを使用することによりユーザはターゲットドメインのクエリ言語を通じてマッピングされたモデルを操作することができるという点があげられる(例えば、リレーショナルモデルをXMLモデルにマッピングするためにXQueryを使用し、リレーショナルモデルをオブジェクトモデルにマッピングするためにOPathを使用する)。
マッピングアーキテクチャの他の重要な属性に、更新可能であるという属性がある。これまで、開発者はドメイン間の変更を伝え同期をとるためにコードを書かなければならなかった。しかし、本発明では、マッピングエンジンがそれらのタスクを実行するようになっている。つまり、ユーザがターゲットドメイン内で構造を作成、削除、または修正した場合に、それらの変更はターゲットAPIおよびマッピングエンジンによりソースドメインとの間で自動的に同期がとられる(永続化される)。
他の態様では、マッピングアーキテクチャはスタックすることが可能であり、ソースからターゲットへのマッピングに複数のステージが生じうる。
前記の目的および関連する目的を遂行するために、本発明のいくつかの例示する態様について、以下の説明および付属の図面を参照しながら説明する。ただし、これらの態様は本発明の原理を採用する様々な方法のうちわずかのみを示しており、本発明はこのような態様およびその等価物すべてを含むことを意図している。本発明の他の利点および新規な特徴は、図面を参照しながら本発明の以下の詳細な説明を読むと理解しやすいであろう。
本発明は、本明細書全体を通して類似の番号は類似の要素を表す図面を参照して説明する。以下の説明では、説明のため本発明を完全に理解できるように多数の具体的詳細を述べている。しかし、本発明は具体的詳細を知らなくても実施できることは明白であると思われる。他の場合には、本発明を説明しやすくするために、よく知られている構造およびデバイスがブロック図形式で示されている。
本出願で使用されているように、「コンポーネント」および「システム」という用語は、コンピュータ関連のもの、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかを指すものとする。たとえば、コンポーネントとしては、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータがあるが、これらに限定されない。説明のため、サーバ上で実行されているアプリケーションとサーバは両方ともコンポーネントとすることができる。1つまたは複数のコンポーネントを1つのプロセスおよび/または実行スレッド内に常駐させることができ、またコンポーネントを1台のコンピュータにローカライズし、かつ/または2台またはそれ以上のコンピュータ間に分散させることができる。
本明細書で使用しているように、「推論」という用語は、一般に、イベントおよび/またはデータを介して得られるような1組の観察結果から、システム、環境、および/またはユーザの状態を推理または推論するプロセスを指す。推論を使用して特定のコンテキストまたはアクションを識別したり、または例えば複数の状態について確率分布を生成することができる。推論は確率的なものとすることができる、つまり、データおよびイベントの考察に基づいて注目している状態で確率分布を計算することができる。推論は、さらに、1組のイベントおよび/またはデータから高水準のイベントを構成するために使用される手法を指す場合もある。このような推論を行うことで、イベント同士が時間的に近い関係による相関関係があるかどうか、またイベントおよびデータが1つまたは複数のイベントおよびデータソースを発生元としているかどうかに関係なく、1組の観察されたイベントおよび/または格納されているイベントデータから新しいイベントまたはアクションが構築される。
定義
以下の用語は説明全体を通して使用されており、主題の発明の様々な態様を理解しやすくするためこれらの定義をここに掲載する。
モデル(Model)−設計成果物、例えば、XMLスキーマ、リレーショナルスキーマ、およびオブジェクトスキーマを表す複雑な離散構造。
ドメイン(Domain)−特定のデータモデルに基づきデータを管理する1つまたは複数のアプリケーション。
オブジェクトドメイン(Object domain)−オブジェクトグラフデータモデルのObjectSpace実装。
XMLドメイン(XML domain)−XMLデータモデルに基づくオブジェクトおよびクエリ言語のスタック。
リレーショナルドメイン(Relational domain)−リレーショナルデータモデルに基づくDBMS(データベース管理システム)。
IDomainSchema−マッピング可能な構造のシリアライズ可能なラベル付き有向グラフとしてモデルを公開するモデル管理オブジェクトモデル。モデルグラフの辺(edge)を「関係」と呼ぶ。例えば、XSOM(XMLスキーマXSD(XML Schema Definition)を公開するオブジェクトモデル)、RSOM(リレーショナルスキーマRSD(Relational Schema Definition)を公開するオブジェクトモデル)、およびOSOM(オブジェクトスキーマOSD(Object Schema Definition)を公開するオブジェクトモデル)がある。
マッピング構造(Mapping structure)−対応付けられたマッピングフィールドのコンテナとして使用されるデータモデルスキーマの基本コンポーネント(例えば、リレーショナルドメイン内のテーブル、XMLドメイン内の複合型要素、およびオブジェクトドメイン内のクラス)。
フィールド(Field)−型付き(typed)データを保持するデータモデル概念。概念上、フィールドはスカラー値を保持するが、場合によっては、複合データ(例えば、XMLデータ型およびUDT)を保持することも可能である。さらなる例としては、リレーショナルデータモデルの列、XMLドメイン内の属性および単純型要素、およびオブジェクトドメイン内のプロパティがある。
関係(Relationship)−同じデータモデル内の2つの構造の間のリンクおよび関連付けであり、同じドメイン内の構造が互いにどのように対応付けられているかを記述する。関係は、構造に他の構造が含まれる2つの構造および/または包含/参照の共通フィールドを通じて確立される(例えば、XML包含階層、およびそのフィールドを通じて他のオブジェクトを参照するオブジェクト)。
図1を参照すると、本発明のマッピングシステム100のブロック図が示されている。このフレームワークは、オペレーションに変換される、それぞれのクエリ言語またはAPI(Application Programmable Interfaces)を使用してそのドメイン内でCRUD (Create、Read、Update、およびDelete)オペレーションを実行するデータモデルの能力を提供する。例えば、XMLおよびオブジェクトデータモデルは、クエリ言語(例えば、それぞれXQueryおよびOPath)を使用してそのドメイン内でCRUDオペレーションを実行することができるが、それらのオペレーションは、クエリ言語(例えば、SQL)を使用してリレーショナルドメイン内のオペレーションに変換される。
システム100は、ソースデータモデル102およびターゲットデータモデル104を含み、マッピングコンポーネント106を介してソースモデル102からターゲットモデル104へのマッピングが実行される。各データモデル(102および104)は、対応付けることができる1つまたは複数のエンティティを公開するメタデータに関連付けられている。つまり、ソースモデル102は、ソースメタデータ108を公開し、ターゲットモデル104は、ターゲットメタデータ110を公開し、メタデータ(108および110)はそれぞれ、マッピングコンポーネント106を介して直接対応付けられる概念的エンティティを含む。メタデータエンティティは、構造、フィールド、および関係の概念(または表現)を含む。
マッピングは、少なくとも2つのマッピングされたモデルからの同じマッピング可能な概念、または異なるマッピング可能な概念、または同じマッピング可能な概念と異なるマッピング可能な概念の組合せ(以下で詳述する)を対応付け、接続する。マッピングは、有向性(directional)である。したがって、いくつかのドメインはソース102として分類され、他のドメインはターゲット104として分類される。開示されているマッピングアーキテクチャの有向性の側面は、マッピングの実装および意味に関してかなり有益である。さらに、ソース102としてマッピングされるモデルは、ターゲット104としてマッピングされるモデルと異なる特性を持つことができる。
ターゲットモデル104はソースモデル102のビューを保持する。つまり、マッピングは、ターゲットドメインのクエリ言語を使用して実現される。ソースモデル102は、データの永続的位置であり、マッピングコンポーネントはターゲットドメインのクエリ言語で書かれているクエリをソースドメインのクエリ言語に変換する。
ソース102とターゲット104との違いは、ソースまたはターゲットモデル(102または104)からの構造またはフィールドに、構造およびフィールドについて適用可能なマッピングの個数に関して一部制限があるという点である。ターゲットドメインでは、構造およびフィールドは、一度しかマッピングできないが、ソースドメイン内では、構造およびフィールドは複数回マッピングすることができる。例えば、Customersテーブルをターゲットドメイン内のBuyingCustomer要素とReferringCustomer要素にマッピングすることができる。しかし、ローカル要素またはローカルクラスは、一度しかマッピングできない。ここでは、例、構文、および意味に関してより詳しい説明を行う。
マッピングの方向属性に起因するソースとターゲットとの別の違いは、マッピングを使用することによりユーザはターゲットドメインのクエリ言語を通じてマッピングされたモデルを操作することができるという点である(例えば、XMLマッピングに対する関係のXQuery、およびオブジェクトマッピングに対する関係のOPath)。
図2を参照すると、本発明によるプロセスのフロー図が示されている。説明を簡単にするために、本明細書で示されている1つまたは複数の方法が、例えばフロー図の形式で示され、一連の活動として記述されているが、本発明は活動の順序によって制限されるわけではなく、本発明によるいくつかの活動はその図に示されているここで説明しているのと異なる順序でかつ/または他の活動と同時に実行することも可能であることを理解し、認識するであろう。例えば、当業者であれば、方法を代わりに一連の相互に関連のある状態またはイベントとして状態図などの中に表すことが可能であることを理解し、認識するであろう。さらに、本発明によりこの方法を実装するために例示されているすべての活動が必要なわけではない。
200に、データマッピングのデータモデルが示されている。202で、データモデルが識別されると、各モデルの対応するメタデータが識別される。204で、ソースモデルからターゲットモデルへのデータマッピングが開始する。206で、システムは、マッピングエラーが発生したかどうかを判定する。「Yes」であれば、フローは208に進み、エラーを報告する。フローは、204の入力に戻り、マッピングプロセスを続行する。その一方で、マッピングエラーが発生していない場合、フローは206から210に進み、マッピングプロセスを完了まで続行する。プロセスは、「停止」ブロックに到達する。
図3は、ソースからターゲットへのマッピングを円滑にするために公開されている概念的メタデータエンティティの図を示している。マッピングコンポーネントは、ソースのメタデータ108とターゲットのメタデータ110との間のマッピング機能を調整するマッピングファイル300を作成する。この特定の実施形態では、ソースのメタデータ108およびターゲットのメタデータ110は、それぞれ、構造、フィールド、および関係という、マッピング関係を確立するために使用することができる3つのエンティティを備える。そのため、ソースのメタデータ108は、STRUCTUREエンティティ302、FIELDエンティティ304、およびRELATIONSHIPエンティティ306を含む。同様に、ターゲットのメタデータ110は、STRUCTUREエンティティ308、FIELDエンティティ310、およびRELATIONSHIPエンティティ312を含む。
この構造は、データモデルスキーマの基本コンポーネントであり、関係するマッピングフィールドのコンテナとして使用される。例として、リレーショナルドメイン内のテーブル、XMLドメイン内の複合型要素、およびオブジェクトドメイン内のクラスが含まれる。フィールドエンティティは、型付きデータを保持するデータモデル概念である。概念上、フィールドはスカラー型値を保持するが、場合によっては、複合データ(例えば、XMLデータ型とUDT)を保持することも可能である。フィールドのマッピングの例としては、リレーショナルデータモデルの列、XMLドメイン内の属性および単純型要素、およびオブジェクトドメイン内のプロパティがある。関係は、同じデータモデル内の2つの構造の間のリンクおよび関連付けであり、同じドメイン内の構造が互いにどのような関係にあるかを記述するものである。関係は、構造に他の構造、例えば、XML包含階層、およびそのフィールドを通じて他のオブジェクトを参照するオブジェクトが含まれる、2つの構造および/または包含/参照の共通フィールドを通じて確立される。
データモデルのメンバは、マッピングコンテキストに応じて様々なマッピング概念として公開することができる。例えば、XML要素は、フィールドおよび構造(例えば、単純型要素および複合型要素)として公開することができる。メンバを特定の概念として提示することが有効であるかどうかを判別するのは、マッピングとIDomainSchemaである。データモデルを異なるマッピング概念として公開することができる他の例は、表現も例えばカスタムテーブル内の概念とすることが可能なリレーショナルドメインを伴う。
マッピングの意味
意味に関しては、マッピングは、可逆性のヒントおよび2つのマッピングされたドメインに関する追加情報を含む追加メタデータを持つクエリ/ビューと同等である。一方のデータソーススキーマが他方のデータソーススキーマにマッピングされる場合、要求されているのは、ターゲットスキーマがソーススキーマの1つのビューであることが望ましいということである。マッピングにより、ビュー変換自体が定義される。例えば、リレーショナルデータベースをXMLにマッピングする場合、ビューが定義され、その際に、その表示(またはスキーマ)は最終的にXSDによって定義され、マッピングファイルでは、RSDファイルで表されるリレーショナルデータベースでこのビューを(処理し実行することにより)生成する方法を定義する。
マッピングは、別のデータドメインの上にデータドメインを積み重ねるという形で表されるビューである。マッピングがそのようなビューである(また、ビューは実際にはクエリである)と理解していることが、マッピングの意味を理解するうえで重要である。
マッピングビューとSQLビューとを対比することができる。SQL Serverでは、リレーショナルデータベースの上にリレーションビューを定義することができる。このビューは、基本的に、結果のスキーマ(ステートメントのSELECT句)、ソースのサブスキーマの関連する部分(おおまかにいうと−ステートメントのFROM句)、およびソーススキーマから結果スキーマを生成することができる変換(WHERE句)の3つを組み合わせたSQLクエリによって定義される。
開示されているマッピング形式は、同じ3つの部分を持つが、明確に区別される(XSD、Mapping、RSDのように)。
マッピングは、複合クロスドメインビュー(complex cross−domain view)である。マッピングを使用することで、クロスドメインビューを作成することができる。際立った特徴(例えば、SQLビューまたはXSLTビューの)は、ソースおよびターゲットスキーマが異なるデータモデルドメインに属することができるという点である。マッピングでは、リレーショナルスキーマの上に階層型ビュー(XML)を構築したり、あるいは階層型スキーマの上にグラフビュー(オブジェクト)を構築するなどができる。
開示されているマッピングアーキテクチャにより、XQueryおよびXSLTなどの他の言語をマッピングと併せて使用しターゲットまたはソースドメインを変換することができる。変換は、例えば、オペレーション毎にマップに追加される。オペレーションの例として、Insert、Update、Delete、およびQueryがある。
サンプルコード:
Figure 2005327232
TransformLanguageは、マッピングされるデータを変換するために使用する言語である。TransformLocationは、ディスク上のファイルロケーションまたは変換結果が供給されるインターネット上のファイルロケーションである。ロケーションが指定されていない場合、変換はMapTransform要素のテキストで与えることができる。Operationは、マッピングを使用するアプリケーションに基づいて定義されるこの変換に対するオペレーションである。
マッピングは、データに対して構造化変換を実行し複合ビューを作成することができる。これにより、階層が作成されたり、崩壊されたり、また一方の要素から他方の要素へ属性を移動し、新しい関係を導入することができる。マッピングの結果(ターゲットスキーマ)は、複合スキーマであってもよい。これは、基本的にマルチテーブルデータベーススキーマを単一テーブルに変換する従来のアーキテクチャと対照的である。マッピングにより、出力上での関係で対応付けられる複数のテーブル(要素など)を生成することができる。
マッピングはビューを定義するが、これは、使用するためにはユーザはビューの上でクエリおよび更新を実行できることを意味する。マッピングは、オペレーションではなく、クエリまたは更新オペレーションなしで何らかのデータを生成するのには使用できない。しかし、クエリは、些細なもの(例えば、sql:view(“filename”))でもよく、マッピングビューで記述されたすべてのデータを取り出すことができる(このビューを実現する)。マッピングは、(いくつか例外はあるが)、クエリとそのビュー(更新可能ビュー)に対する更新の両方をサポートする。
技術上、マッピングはクエリに類似している。クエリを介してSQL Viewを定義するのと同じように、マッピングは、さらに、このビューを生成するクエリがあることを意味する。マッピングは、静的な再利用可能更新可能ビューを定義し、ユーザはこのビューを使用して、このビューの上に複数のアドホックなクエリ/更新を課すことができる。
例えば、ユーザは開示されているマッピング形式を使用して、関連する注文と注文明細とともに最後の7日間に注文があったすべての顧客(「Active Customers」と呼ぶ)のビュー(スキーマ)を定義することができる。その後、ユーザは、このビューを使用して、そのビューの上でクエリを実行する。例えば、一方のドメインで、収支が負であるすべての「Active Customers」を取り出すXQueryを課すことができる。実行ステップで、マッピングプロセッサは、XQueryステートメントと組み合わせて、SQLGenエンジンにより、リレーショナルビューの上のSQL Queriesに対するSQL Serverと同様に、マッピングの関連する部分に対応するクエリを作成するために使用されるマッピング情報を公開する。
取り出しおよび更新オペレーションは、本質的に異なる。単一の取り出しオペレーションは、一方向でサポートされているが、3つのオペレーション(挿入、更新、および削除)は、他の方向でサポートされる。例えば、ソースとしてSQL Server内のデータをターゲットXMLスキーマにマッピングし、リレーショナルデータのXMLビューを作成することができるマッピングを定義する。XQueriesは、SQL Server内のテーブルに対して実行することはできない。さらに、同じマッピングを使用して、XMLデータソースの上にリレーショナルビューを表すことはできない。開示されているマッピング形式は、対称的ではなく、容易に反転することはできない。データは、SQL ServerからXMLとして取り出すことができ、またXMLクエリ言語によりクエリを実行することができる。マッピングではビューを通じての更新をサポートしているため、同じマッピングを通じて更新を実行することもできる。
マッピングは、2つのマッピングされるモデル間の双方向(読み書き)変換を適用するのに必要な情報を供給する。データモデルドメイン間でクエリ、更新、挿入、および削除オペレーションを実行するのに必要な情報は、存在しているかどうか(一方のドメイン内に構造が存在するかどうかは、ドメインが同期されている場合に他方のドメイン内に構造が存在することに基づく)、コピー(コピーオペレーションが一方のドメインから他方のドメインへの値、例えばNULL値およびデータ型変換に対する制限付き変換を含むことができる場合にソースモデルおよびターゲットモデル内のマッピングされているフィールド間のコピーデータ)、および関係マップ(ソースドメイン内のそれぞれのマッピングされている構造間の関係に対するターゲットドメイン内の2つのマッピングされている構造間に存在するマップ関係)である。関係同士の間のマッピングは、2つのデータモデル内で並行したナビゲーション、つまり、一方のドメイン内の特定の関係に基づく一方の構造から他方の構造への移動を可能にし、他方のドメイン内の2つのマッピングされている構造間での移動に変換する。
関係マップは、存在またはコピーの意味よりもあまり直感的でない概念である。関係マップは、同時にマッピングされている両方のドメイン内で「グラフ内を探索(walk)する」ことができる必要がある。ターゲットモデルの2つのマッピングされている構造(例えば、オブジェクト、XML)にそれらの間の関係がある場合、または1つのターゲット構造が複数のソース構造(例えば、テーブル内の)にマッピングされる場合、ターゲットドメイン内の暗黙のまたは明示的な関係をソース(例えば、リレーショナル)ドメイン内の一致する関係にマッピングされなければならない。ターゲットドメイン内のすべての関係はソースドメイン内の関係にマッピングされなければならないが、反対はそうではないという要求条件はターゲットドメインはソースドメイン上のビューであるということに起因していることに注意されたい。したがって、マッピングは、このビューを作成するために必要な最低限の情報を必要とする。ソースドメインは、マッピングに関連していないさらに多くの構造(テーブル)および関係を含むことができる。
ドメイン内の構造間の関係は、参照関係(型が他の型への参照を含み、一方の型を削除/更新しても、他の型も削除/更新されることはなく、参照のみが削除される)または所有(ownership)関係(Composite)(構造が他の構造を所有し、構造の1つのインスタンスに対するオペレーションが関係する構造のインスタンスに伝わる場合の関係)のいずれかである。例えば、特定の顧客を削除すると、その注文も削除されるが、注文明細を削除しても製品は削除されない。
特定のマッピングが、読み書き両方のオペレーションに適用される。したがって、マッピングは更新可能(双方向)であると考えられる。異なる動作(例えば、読み取り専用または複数のテーブルシナリオへの1つのターゲット構造の書き込み)を指定するためにユーザはそれぞれのドメインの拡張メカニズムを利用することができる。例えば、リレーショナルドメインは、query、update、insert、およびdeleteコマンドが用意されているCustomTableを公開し、ユーザは、マッピングに基づいてこのコマンドが呼び出されたときに実行されるSQLステートメントを指定することができる。他の例として、リレーショナルドメイン内の列およびテーブルのReadOnlyフラグがある。しかし、このような列またはテーブルを更新しようとすると、エラーが発生するため、このような情報はドメイン内で指定し、マッピングでは指定しない。
次に図4を参照すると、マッピングファイル400を使用してソースリレーショナルスキーマをターゲットXMLスキーマにマッピングする例が示されている。本発明のいくつかの態様では、ソーススキーマ402もターゲットスキーマ404も、マッピングの実行のために修正を必要としない。したがって、ソースリレーショナルスキーマ402とターゲットXMLスキーマ404は両方とも、いずれもが編集を必要としないため、読み出し専用とすることができる。本発明のこのような特徴は著しいものであるが、それは、アプリケーションでは、多くのクライアントデータモデルにおいて編集でマッピングを実行することが許されないからである。
開示されているマッピング形式は、ソースのデータソース402にない情報とともにソースのデータソース402のスキーマを定義するソース記述コンポーネント406、ターゲットのデータソース404内にない情報とともにターゲットのデータソース404のスキーマを定義するターゲット記述コンポーネント408、および中央マッピングコンポーネント410などの3つまたはそれ以上のコンポーネントからなるものとみなすことができる。ソース記述コンポーネント406は、リレーショナルソーススキーマ402を拡張したものであり、ターゲット記述コンポーネント408は、XMLターゲットスキーマ404を拡張したものであり、中央マッピングコンポーネント410は実際のマッピングを実行する。
次に、このタスクでは、ターゲットスキーマ404のXSDにより定義された形式でXMLデータを生成することについてリレーショナルデータベースにクエリを実行できるように、また他の方向では、XMLデータをソースとして受け付けてリレーショナルテーブルにロードし、マッピングに従ってXMLデータを細分(shred)してリレーショナルデータベースに入れられるように、これら2つのスキーマ(402と404)の間のマッピングを定義する。
マッピングを定義するときに従来から存在していた問題の1つは、データソーススキーマの不完全性である。例えば、リレーショナルスキーマは、実際にはデータベース内に存在している関係のいくつかを欠いている場合がある。残念なことに、データベース設計者が関係を一次キー(PK)−外部キー(FK)の制約条件として正式に定義しないのが通例である。外部キー自体は子のテーブル内にも存在しているが、スキーマ内ではそのようなものとしてマークされていない。しかし、開示されているマッピングアーキテクチャでは、一次/外部キーの関係は好ましいものであり、したがって定義する必要がある。他の一般的事例として、一次キーがテーブルに対して一次キーとしてマークされていない場合があげられる。
ときには、カスタム関係をスキーマに追加したい場合もある。例えば、「J」で始まるVIN番号を持つすべての自動車は、関係「made in」を持つ「Countries」テーブル内の「Japan」エントリに対応している。最悪の場合のシナリオでは、リレーショナルスキーマファイルは編集することが許されていないため、何らかの点でスキーマファイル内に欠けている概念を定義するためマッピングファイル400内に場所が必要である。
ソースおよびターゲット記述コンポーネント(406および408)は、これ以降、「DataSource」要素に対応しているものとする。
マッピングの意味−リレーショナルモデル(ドメイン)
リレーショナルドメイン内のマッピング可能な構造は、カスタムテーブル(CustomTableと表す)である。カスタムテーブルは、列/フィールドおよびコマンドの集合体から作成される。カスタムテーブルは、物理的テーブル、ビュー、UDFまたはストアドプロシージャ、SQLステートメント(クエリの結果セット)、およびフィルタ処理されたテーブル(条件が適用されたテーブル)などの物理的リレーショナル構造のうちの1つを表すことができる。データベーステーブルはすべてカスタムテーブルであることに注意されたい。ユーザがデータベーステーブルを参照する場合、バックグラウンドでマッピングによりカスタムテーブルが透過的に作成される。それぞれのカスタムテーブルには、Query、Update、Insert、およびDeleteの4つのコマンドが用意されている。これらのコマンドは、ユーザが明示して作成することも、またマッピングエンジンにより自動的に作成することもできる。カスタムテーブルがデータベーステーブルに基づいている場合、これは、データベーステーブルの関係を継承する(これは、反対方向では生じない)。
カスタムテーブルがマッピングされる毎に、関係ドメイン内に1組のインスタンス(レコードセット、行セットなどとも呼ばれる)を作成する。ユーザが別のマップで作成される1組のインスタンスにマッピングしたいか明示的に識別していない限り、マッピングにより、カスタムテーブルがマッピングされる毎に新しい1組のインスタンスが作成される。
関係−リレーショナルドメイン
2つのカスタムテーブルの間の関係を定義することができる。通常のテーブルに基づくカスタムテーブルは、基本テーブルからすべての関係を継承する。つまり、基本テーブルと他のテーブルとの間には、すでに類似の関係が存在しているため、ユーザ側でカスタムテーブルと他のテーブル(または他のCustomTable)の間の関係を作成する必要はないということである。しかし、基本テーブル同士の間に類似の関係がすでに存在しているカスタムテーブル同士の関係を作成しても誤りではない。このような関係を作成するのは、冗長であり、ユーザは基本テーブルに基づく関係を再利用することができる。
関係を継承する一例として、複数のターゲット構造を列の値に基づき同じテーブルから作成することができる単一テーブル継承の事例をあげることができる。次に図5を参照し、ソースドメイン500とターゲットドメイン502の間のマッピングを考察する。ソースドメイン500は、Departmentテーブル504とEmployeesテーブル506を含む。Departmentテーブル504とEmployeesテーブル506の間の関係508を定義する。Employeesテーブル506には、Departmentsテーブル504からの外部キーがあり、ターゲットドメイン502内に類似の関係が構成される。Employeesテーブル506には、3つの値「M」、「HE」、および「SE」を格納するEmployeeTypeという名前の列がある。ソースドメイン500からターゲットドメイン502へのマッピングの定義では、ターゲットドメイン502内でDepartmentsテーブル504をDepartmentテーブル510にマッピングし、「M」値512をManagerテーブル514(M→Manager)にマッピングし、「HE」値516をHourlyEmployeeテーブル518にマッピングし(HE→HourlyEmployee)、「SE」値520をSalaryEmployeeテーブル522にマッピングする(SE→SalaryEmployee)。ソースドメイン500内の外部キー関係508があるため、ターゲットドメイン502のDepartmentテーブル510はManagerテーブル514、HourlyEmployeeテーブル518、およびSalaryEmployeeテーブル522にリンクする。
外部キーは、ソーステーブルとターゲットテーブルのデータの間のリンクを確立し、強制するために使用される列または列の組合せである。このリンクは、ターゲットテーブルに一次キー値を保持するソーステーブル内の1つまたは複数の列を追加することによりソーステーブルとターゲットテーブルの間に作成される。これらの列は、ターゲットテーブル内の外部キーとなる。
図5の例では、3つのカスタムテーブルCTable(512、516、および520)はDepartmentsテーブル504からEmployeesテーブル506に継承されるため、それらのカスタムテーブル(514、518、および522)とDepartmentsテーブル504との間の明示的関係を作成する必要はないが、作成する可能性はあり、作成しても誤りではない。基本テーブル(Employees506)上の関係508はカスタムテーブル(例えば、カスタムテーブル514)により共有されるので、ユーザはそのカスタムテーブル514と他のテーブルとの間の関係をさらに定義することができる。
以下の規則は、テーブルに基づくカスタムテーブルについて関係をどのように共有するかを説明している。物理的テーブルとカスタムテーブルとの間にマップが存在し、それら2つの間の関係が参照される場合、カスタムテーブルとテーブルとの間の関係は、物理的テーブルとカスタムテーブルが基づいている物理的テーブルとの間の関係であるものとして考えられる。それと反対のことは機能しない、つまり、2つのカスタムテーブルが関係を持つ場合、それらのカスタムテーブルが基づく物理的テーブルはこの関係を共有しないということに注意されたい。2つのカスタムテーブルの間にマップがある場合、参照される関係はカスタムテーブル1とカスタムテーブル2との間の関係、またはカスタムテーブル1とカスタムテーブル2の基本テーブルの間の関係、またはカスタムテーブル1の基本テーブルとカスタムテーブル2の間の関係、またはそれが2つの基本テーブルの間の関係である。
リレーショナルドメイン内の関係は、RSD(Relational Schema Definition)のリレーショナル要素を使用して定義される。関係は、データベースで定義されている物理的外部キー制約またはマッピングのニーズに関する関係の新しい定義に基づくことができる。それぞれの関係は、明確に参照できるように一意的な名前を持たなければならない。以下の例を考察する。
Figure 2005327232
関係は名前により明示的に参照されるため、リレーショナルドメインは、それぞれの関係は異なる1組のColumnJoinsを持つということで区別されるテーブルの同じペアの間で複数の関係を定義することができる。関係要素は、リレーショナルドメインにおけるオペレーション、つまりクエリオペレーションに対するカスタムテーブル間の結合、関連するカスタムテーブルにまたがって更新オペレーションを次から次へと実行するかどうか、更新オペレーションの順序(最初にどのテーブルから削除するかなど)、および更新オペレーションが関係のカーディナリティ(cardinality)とマッチすることのバリデーションをマッピングエンジンで実行するために必要なすべての情報を供給する。
マッピングの意味−オブジェクトドメイン
オブジェクトドメインは、型(クラス)をマッピングを行うためのマッピング可能な構造として公開する。型は、パス表現に基づいてグローバルまたはローカルに関して識別することができる。例えば、Target=“Address”はグローバルクラス「Address」を意味するが、Target=“Customer/Address”はCustomerクラスのフィールドであるAddressクラスを意味する。それぞれの型(グローバルまたはローカル)は、リレーショナルドメイン内のただ1つのカスタムテーブルに直接マッピングすることができる(Map要素を使用して)。型は、他の型のメンバを含んでいてもよい、つまり、型マッピングに基づいて作成されたその型のインスタンスを参照しているということである。参照は、オブジェクト関係情報に基づいて作成される。
オブジェクトドメインの型マッピングの意味は、ソースドメイン内のマッピングされたセットの既存のインスタンスに対しオブジェクトドメイン内の型の最大1つのインスタンスが作成され、オブジェクトドメイン内の関係情報に基づきその型への参照をいくつでも作成することができることである。この点を明らかにするために、顧客はアドレスクラス型である「MyAddress」と呼ばれるメンバを持つ顧客およびアドレスクラスを考察する。顧客クラスは、Customersテーブルにマッピングされ、アドレスクラスは、アドレステーブルにマッピングされる。ユーザが「Address」クラスを取り出すためにマッピングを通じてクエリを発行する場合、同じIDを持つAddressオブジェクトがすでに存在していない限り、クエリ条件に基づきこのクラスの新しいインスタンスが作成される。ユーザが「Customer」クラスを取り出す他のクエリを発行し、スパンは「MyAddress」プロパティを含む場合、オブジェクトストア内にすでにインスタンスがなければ「MyAddress」メンバに対し新しいAddressオブジェクトが作成される。まず、このインスタンスをオブジェクト空間コンテキスト(オブジェクトドメイン)により管理される「Address」オブジェクトコレクションに追加する。次に「MyAddress」フィールドは、「Address」インスタンスへの参照により更新される。
マッピングの意味−XMLモデル(ドメイン)
XMLドメインは、要素をマッピング構造として、要素および属性をマッピングフィールドとして公開する。以下の理由から、XMLスキーマの型定義は無視され、マッピング構造とみなされない。XMLスキーマは、名前付き型と無名型の両方を備える。無名型をマッピングするには、ユーザ側でパス表現を使用することによりそれらの型を識別する必要がある。XMLドメインでは、ドキュメント内に型があればそれに対し新しいコピーが作成される。なぜなら、オブジェクトドメインとは異なり、XMLドメインには、その型に基づいてXMLデータを管理するXMLドキュメントストアがなく、すでに作成されている型のインスタンスへの参照が作成されるからである。このようなXMLキャッシュをそのようなストアにできるようにするため、XMLドメインをマッピングするには、XMLスキーマにはっきり基づいていない場合にメタデータを追加することで型を明確に定義する必要がある。
型名および要素名は、2つの異なる値空間内にあり、マッピングでは型名と要素名とを区別することができる。
XSDスキーマ上のXPathのサブセットを使用して、マッピングすることができるインスタンスを識別する。マッピング構文では、オブジェクトドメイン内の型に基づくマッピングだけでなくXMLドメイン内のマッピングをもサポートする。
マッピング要素および属性
マッピングの構文は、マッピング設計セクションでレイアウトされているマッピングの設計および主要事項をサポートするように設計されている。マッピングスキーマの形式は、XMLとなるように選択されている。XML形式では、マッピングする顧客はXML APIを使用してマッピングファイルを作成、維持することができ、また人間によって可読性がよく(human readable)、マッピングエンジンではXMLスキーマを使用してマッピングファイルのバリデーションを実行することができる。
以下では、1つまたは複数の要素および属性からなるCustomers−Ordersのマッピングの完全なマッピング例を示している。
Figure 2005327232
Figure 2005327232
CustomerおよびOrderはクラスであり、CustomerクラスはプロパティMyOrdersを有し、OrderクラスはプロパティMyCustomerを有するオブジェクトスキーマがマッピングされると仮定すると、マッピングセクションは以下のように変わる。
Figure 2005327232
Figure 2005327232
MAPPINGSCHEMA要素
MappingSchemaは、マッピングスキーマのルート要素である。これは、有効であるべきMappingsおよびDataSources要素を含んでいなければならない。MappingSchemaは、メタデータセグメンテーション規則に基づいてセグメント分割できる。マッピング形式はXMLドキュメントである。これは、単一のルート要素MappingSchemaを有する。マッピングファイルには、ソースおよびターゲットのデータソースの記述、それらの間のマッピング、およびマッピングスキーマに渡すことができるパラメータの多数の定義が含まれる。したがって、ルート要素は、MappingParameters、DataSources、およびMappingsの下位要素(sub−element)を有する。DataSourcesまたはMappings下位要素を含まないマッピング要素は、それでも、有効なマッピングスキーマである。このようなマッピングスキーマに対してクエリおよび更新を実行する動作は、そのスキーマを使用する特定の実装により決定される。ユーザは、通常、この要素上ですべての名前空間を定義しなければならない。この要素には、属性はない。これらの下位要素の順序は重要であり、以下の表に示されているように順序付けなければならない。
Figure 2005327232
例:
Figure 2005327232
Figure 2005327232
DATASOURCE要素
DataSource要素は、マッピングされたデータソースのスキーマ情報を保持する。データソースは、スキーマの様々なセグメントを表す複数のスキーマファイルを収めることができる。この要素は、仮想SQLサーバを表す。
属性:
Figure 2005327232
下位要素:
Figure 2005327232
Schema要素またはInlineSchema要素のいずれが存在していなければならないが、そのうちの1つだけである。例については、マッピングファイルを参照されたい。Schema/InlineSchema要素は、有効なRSDを指していなければならない。
DATATARGET要素
この要素は、マッピングされたターゲットドメインのスキーマ情報を保持する。これらの拡張要素を使用することにより、情報をドメインスキーマに追加する機能が提供される。これは、スキーマを編集できない場合、またはスキーマがマッピング専用に作成されなかった場合に役立つ。ターゲットスキーマは、セグメント分割できる。
属性:
Figure 2005327232
下位要素:
Figure 2005327232
異なるドメインからのターゲットドメインスキーマのセグメントを含んでいると誤りである。例えば、XMLスキーマおよびObjectスキーマを混合すると誤りである。
例については、マッピングファイルの例を参照されたい。
SCHEMA要素
Schema要素は、データソースのスキーマを定義するためにDataSource要素内で使用される。スキーマは、インラインで定義することも、別のファイルで定義することもできる。スキーマが別のXSD、RSDなどのファイル(ほとんどのシナリオではこのケースである)で定義されている場合、Schema要素を使用しなければならない。InlineSchema要素は、スキーマドメインの名前空間内でスキーマをインライン(Schema要素の本体に含まれる)で定義する場合に使用される(XMLデータソースに対するXSDなど)。この要素の下位要素はない。以下の属性が重要である。
Figure 2005327232
例:
Figure 2005327232
INLINESCHEMA要素
Schema要素は、データソースのスキーマを定義するためにDataSource要素内で使用される。InlineSchema要素は、スキーマドメインの名前空間内でスキーマをインライン(Schema要素の本体に含まれる)で定義する場合に使用される(XMLデータソースにはXSDなど)。この要素には、属性はない。この要素には下位要素はない。この要素の本体はスキーマ定義(XSD、RSD、またはOSD)を含む。
例:
Figure 2005327232
Figure 2005327232
RELATIONSHIPMAP要素
RelationshipMapは、SourceドメインとTargetドメイン内の関係をマッピングする方法に関する情報を供給するMap要素の子要素である。ターゲットドメインとソースドメインの両方において一方の構造から他方の構造へ移動するときに使用する関係を識別するために必要である。このセクションでは、マッピングスキーマにおけるこの要素の構文、意味、およびバリデーションについて説明する。読者は、RelationshipMapの概念に精通していなければならない。RelationshipMap要素は、ターゲットドメイン内で、異なるソース構造にマッピングされている2つのマッピングされた構造間の関係が存在する場合に必要である(「マッピングされた構造」とは、「Map」要素を使用してマッピングされた構造を意味する)。このような関係の例として、その型が他のマップ(Object)内にマッピングされるオブジェクトのフィールド/プロパティおよび他のマッピングされたXML要素(XML)の子であるMapped XML要素がある。
RelationshipMapは関係する両方のマップに関してSourceおよびTargetとマッチしていなければならないことに注意されたい。以下では、どのようにこのプロセスが働くか、2つのターゲット構造の間に関係が存在すること(上の例を参照)、これら2つのターゲット構造は2つのMap(2つのMap要素)によりマッピングされ、これらのMap上の適用すべきSourcesはRelationshipMapにおいてSourceとして指定された有効な関係を有することを説明する。
他のソースにマッピングされた継承またはフィールドなどのターゲットドメイン内の他の種類の関係は、異なるマッピング属性を通じて処理されることに注意されたい(継承に対するBasedOnRelationshipおよびFieldMap上のフィールドにはSourceRelationship)。
場合によってはマッピングエンジンはターゲットドメイン内の関係を識別し、(マッピングされているソース(テーブル)の間の)ソースドメイン内のマッチする関係を見つけることによりRelationshipMapを推論することができるが、RelationshipMapは2つの理由から明示されている必要がある。まず、明示的なRelationshipMapは、関係をRSDに追加してもマッピングが壊れないことを意味している。マッピングエンジンがRelationshipMapを推論し、RSDにRelationshipが追加された場合、追加された関係は単一の関係を持つように使用される2つのマッピングされたテーブル間の関係である可能性があるためマッピングを中断する可能性がある。関係を追加した後、マッピングエンジンはどの関係を選択するかを知らないため、例外を投げることになる。第2に、(RelationshipMapを推論することにより)「マジック」を実行し、上の例のようにあいまいな関係が見られる場合に例外を投げる代わりに、ユーザにマッピングという3つの単純な概念をすべて理解することを義務づけると使い勝手が高まる。
Figure 2005327232
SourceはSource(リレーショナル)ドメイン内の有効な関係でなければならない。このバリデーションは、ソーススキーマのすべてのセグメントがロードされた後に実行される。
Targetは、マッピングされたターゲットとの関係を持つターゲットドメイン内の有効な構造でなければならない。Targetは、ターゲットドメイン内の関係するマッピングされた構造の名前でなければならない。他のマップ内でマップされていない、または親のMap上でTargetとの関係を持たない構造(Type、Element)に対し名前を指定すると誤りである。XMLドメインでは、Targetは親マップ上のTargetである要素の子でなければならない。親マップは、RelationshipMapが含まれているMapを参照する。このバリデーションは、マッピングキャッシュ上で実行される。
関係のリスト内で、親MapのSourceは、リスト内の最初の関係の「From」または「To」のいずれかでなければならない。この規則により、第1の関係は親MapのSourceを必ず含む。このバリデーションは、マッピングキャッシュ上で実行される。
関係のリスト内で、関係するTargetのMapのSourceは、リスト内の最後の関係の「From」または「To」のいずれかでなければならない。この規則により、最後の関係は関係するマップのSourceを必ず含む。このバリデーションは、マッピングキャッシュ上で実行される。
Sourceが関係のリストであれば、そのリストは順序付けられていなければならない。それぞれの関係において、「From」または「To」は、次の関係の中の「From」または「To」とマッチしていなければならない。この規則により、テーブルが互いに結合されていないjoin句を持つのは適切でないため、その関係から構築されたJoin/Where句は常に有効である。このバリデーションは、マッピングキャッシュ上で実行される。
2つのマッピングされているターゲット構造同士の関係をマッピングしなければならない。Source属性を通じてソース構造にマッピングされているターゲットドメイン内で関係が定義されている2つのマッピングされたターゲット構造はRelationshipMapを持たなければならない。「Ref」属性を通じてソース構造にマッピングされているターゲット構造との関係は、その関係のマッピングを必要としない。このバリデーションは、以下のアルゴリズムを使用して実行される。
マッピングされたターゲット構造毎に他のターゲット構造とのすべての関係を取得する。

対応付けられたターゲット構造毎に

IF(
関係するターゲット構造はマッピングされる
And(XMLドメインにのみ適用し、Objectについては無視する)
関係する構造は子要素であり、現在のターゲット構造マップは、「Ref」属性を使用してマッピングされない。
上のバリデーション規則に基づく有効なRelationshipMapが存在することを確認する。


関係するターゲットの定義はターゲットドメインの意味によって異なることに注意されたい。このバリデーションは、マッピングキャッシュ上で実行される。
マッピングされた関係のCascadeDelete値は一致していなければならない(オブジェクトドメインについてのみ適用)。一致する値の許容可能行列は以下のとおりである。
Figure 2005327232
任意の他の組合せは誤りである。このバリデーションは、マッピングキャッシュ上で実行される。
関係のカーディナリティ値は一致していなければならず、以下の表に示されている。
Figure 2005327232
任意の他の組合せは誤りである。このバリデーションは、マッピングキャッシュ上で実行される。例については、標準形式の例を参照されたい。
MAP要素
ソースドメインからのマッピングされた構造のインスタンスが存在すれば、マッピングされたターゲット構造のインスタンスがターゲットドメイン内に存在していなければならないというのがMap要素の意味である。Readオペレーションでは、ソースドメイン内に存在するインスタンス毎にターゲットドメイン内の構造のインスタンスが作成される。Writeオペレーションでは、Targetドメイン内のインスタンスについてこのオペレーションはSourceドメイン内の既存のインスタンス上の等価なオペレーションに変換される。例えば、Map要素を使用してCustomersテーブルと顧客オブジェクトまたは要素との間のマッピングを考える。このようなMapには、Customerテーブル内の行毎にCustomer Objectが作成されるという意味がある。このような顧客オブジェクトを削除すると、Customersテーブル内のちょうど1つの行が削除され、新しい顧客オブジェクトを作成すると、Customersテーブルに1行挿入され、更新に対して類似のロジックが適用される。上述の既存の1:1マップに対する拡張およびオーバーライドのメカニズムは、RSDで指定されているCustomTableにより実現される。マッピングされたテーブル以外の何らかのテーブルに他のレコードを挿入するなどの副作用がありえる。ユーザは、他のテーブルのように各オペレーションタイプ(Retrieve、Insert、Update、およびDelete)に対応するコマンドを持つそのようなCustomTableにマッピングすることができる。コマンド毎に、ユーザは、ターゲットドメインで実行されるオペレーションに基づいてそのようなコマンドが呼び出されるときにマッピングエンジンにより実行されるSQL/SPを指定することができる。このコマンドは、ターゲットドメイン内のインスタンス毎にちょうど1回だけ呼び出される(すべてのテーブルは、autoコマンドがtrueに設定されているカスタムテーブルであることに注意されたい)。
同じソース構造を複数のマップで使用することができる。例えば、1つのテーブルを複数のオブジェクト型にマッピングする(CustomersテーブルはCustomerオブジェクトおよびCustomerInfoオブジェクトにマッピングされる)、または同じテーブルを複数のXML要素にマッピングする(CustomersテーブルはCustomerの上位要素にマッピングされ、Customer要素はCompany要素の下にマッピングされる)という操作がある。このようなマッピングは、イテレータ(iterator)とも呼ばれる新しいセットがすべてのマップについてSourceドメイン内に(クエリコマンドを使用して)作成されるという意味を持つ。ユーザは、Sourceの代わりにRef属性を用意することにより同じセットを使用することができる。
属性:
Figure 2005327232
下位要素:
Figure 2005327232
Targetは、DataTarget内の有効な構造である。Targetドメイン内に存在しないターゲットを指すマップを持つのは誤りである。このバリデーションは、マッピングキャッシュ上で実行される。Sourceが存在している場合、DataSource内の有効な構造でなければならない。Sourceドメイン内に存在しないソースを指すマップを持つのは誤りである。このバリデーションは、マッピングキャッシュ上で実行される。
ターゲット構造は、1度しかマッピングできない。この規則により、マッピングを更新可能にすることができるが、それは、Target構造を1度しかマッピングできず、ターゲットドメイン内のその構造の任意のインスタンスは、あいまいなところなく、ソース(リレーショナル)ドメインに書き込むことができる。ユーザは、読み取りまたは書き込みの方向でターゲット構造を複数回マッピングしたい場合、ソース(リレーショナル)ドメイン内でCustomテーブルを使用するとよい。このバリデーションは、マッピングキャッシュ上で実行される。
Map名は、マッピングスキーマ間で一意である。他のマップからこのマップにあいまいなところなく参照できるようにするには、Map名はマッピングファイルにまたがって一意である必要がある。RefおよびBasedOnMapなどの既存のMapを参照する必要があるいくつかの機能性がある。このバリデーションは、マッピングキャッシュ上で実行される。
Ref属性は有効なMapを指していなければならない。Ref属性の値は、マッピングスキーマ内の既存の有効なマップの名前でなければならない。このバリデーションは、マッピングキャッシュ上で実行される。RefおよびSource属性は相互排他的である。同じマップ上に複数のソースがあることは許されないため、このマップで他のマップからのSourceを使用することを意味するRef属性が、同じMap上のSourceと共存することはできない。
BasedOnRelationship属性はBasedOnMapがないと存在できない。RefおよびBasedOnRelationship属性は相互排他的である。Ref属性は、すでにスコープ内にあるSource(イテレータ)を指しており、したがって関係を指定する必要はない。
Refは、Object−Relationalマッピングには使用できない。Ref属性の意味は、オブジェクト−リレーショナルマッピングには適用されない。
例については、上述の完全なマッピングの例を参照されたい。
FIELDMAP下位要素
FieldMap要素は、一方のドメインから他方のドメインに値をコピーするオペレーションを表す。マッピングエンジンは、単に、読み込み時にSourceフィールドの値をTargetフィールドにコピーし、書き込み時にその逆の方向にコピーするだけである。場合によっては、これらの値は異なるSource(テーブル)を出所としており、したがって、Source/Ref/SourceRelationship属性から、その値を取得する方法に関する必要な情報が得られる。FieldMapを使用すると、NULL値変換の定義および書き込みオペレーションの同時実行オプションの設定を行うことができる。
FieldMapを使用すると、ターゲット側のデータを非正規化することができる。ターゲットフィールド(オブジェクト−フィールドなど)は、1度しかマッピングできない。しかし、SourceFieldは、何度もマッピングできる。これは、ユーザがターゲットドメイン内のデータを非正規化したい場合のシナリオをサポートするために許容されている。OrdersテーブルにはCurrencyIDに対するフィールドが1つあり、Orderオブジェクトには金額フィールド毎に、例えば、FreightAmountとFreightCurrency、TaxAmountとTaxCurrencyに対し1つの通貨フィールドがあるシナリオを考える。更新後、マッピングエンジン変更プロセッサ(CP)は、更新され、同じソースフィールドにマッピングされるターゲットフィールドが同じ値を持つことを検証する。
同じソースを持つ複数のFieldMapsは、ユーザが同じセット(変数またはイテレータともいう)を参照していることを意味する。これは、最も単純で、最も直観的な動作であり、ユーザが同じ関係について異なるセットを使用したいシナリオはない。SourceRelationshipを変更するということは、異なるキーに基づいて一方のテーブルを他方のテーブルに結合することが新しい結果セットを作成することを意味するので、新しいセットを意味することに注意されたい。これを明確にし、明示するため、この動作の意味は、すべてのSourceが新しいセット(結果セット上のイテレータ)を意味するMapの意味と異なっている。
属性:
Figure 2005327232
SourceFieldまたはTargetFieldの値の先頭に「$」が付いている場合、他のフィールド(SourceFieldまたはTargetField)はMappingParameterにマッピングされる。SourceFieldがMappingParameterである場合、これはReadOnly FieldMapであり、更新オペレーションが実行されていないことを意味する。SourceField/TargetFieldバリデーション:これらの属性の値は親Map Source/Target構造上の有効なフィールドに、またはMappingParameterにそれぞれ正常に解決されなければならない。これらの属性の値が「$」符号から始まっている場合、これは、マッピングパラメータセクションで宣言されているマッピングパラメータに解決されなければならない。このバリデーションは、マッピングキャッシュ上で実行される。
Source/Ref/SourceRelationshipはソースドメイン内で有効でなければならない。Sourceはソースドメイン内の有効な構造(CustomTable)に解決されなければならず、Refは既存のマップの名前でなければならず、SourceRelationshipはソースドメイン内の有効な関係の名前でなければならない。このバリデーションは、マッピングキャッシュ上で実行される。
Refおよび(Source/SourceRelationship)は相互排他的である。Refの意味は異なるマップからのSourceであるため、そのソースは、スコープ内になければならず、SourceRelationshipの必要はない。
SourceがFieldMap上に存在する場合、MappingではMapのソースとFieldMapのSourceとの関係がわかっている必要があるため、SourceRelationshipが存在していなければならない。
SourceRelationshipは、SourceがFieldMap上に存在していなければ与えることができない。Sourceが存在していない場合、これは、SourceFieldが親マップソース構造に属していることを意味する。したがって、関係情報を必要としない。
どの特定のターゲットフィールドも、1度しかマッピングできない。概念的には、両方のドメインのフィールドはスカラー値であり、したがって、SourceFieldからTargetFieldに値をコピーすることはあいまいであってはならず、マージの意味を持つことはできない。
SourceFieldおよびTargetFieldを両方ともマッピングパラメータとすることはできない。一方のMappingParameterを他方のMappingParameterにマッピングするのは無意味である。
UseForConcurrencyは、SourceFieldがMappingParameterであれば指定できない。マッピングパラメータに関しては、適用できない。
SourceRelationshipのカーディナリティ値は、TargetField型と互換性がなければならない。SourceRelationshipカーディナリティがOneToOneである場合、TargetField型はスカラーでなければならず、そうでない場合、誤りである。SourceRelationshipカーディナリティがOneToManyである場合、TargetField型はリスト型でなければならず、そうでない場合、誤りである。(オブジェクトマッピングでは、このケースはサポートされない)。このバリデーションは、コンパイル時にターゲットフィールドの型と関係のカーディナリティとの間の不整合を検出する場合、例えば、Customerクラス上の「oid int」型プロパティは、Customerクラスと多対1の関係を持つOrdersテーブルのoderId列にマッピングされる場合に使用できる。
Refは、Object−Relationalマッピングには使用できない。Refの意味は、オブジェクト−リレーショナルのマッピングには適用されない。例については、完全なマッピングの例を参照されたい。
OVERFLOWMAP下位要素
この要素は、常に「Map」要素に含まれ、Overflowをマップするために使用される。Overflowは、明示的にマッピングされない包含変数の中にある何かとして定義される。これは、アンマップされた属性および開いているコンテンツを持つXML要素に使用される。この要素は、Objectマッピングには適用できず、したがって、リレーショナルドメインとオブジェクトドメインの間でマッピングされるマッピングスキーマ内にこの要素を保持するのは誤りである。
Overflow SourceFieldは、Map TargetStructure要素をルート要素としている有効なXMLドキュメント(文字列として格納されている)を含まなければならない。クエリでマッピングを使用する場合、ルートノード上の属性は、TargetStructure要素に追加され、下位要素は、その要素の子要素として追加される。
書き込みのシナリオに対しマッピングを使用する場合、TargetStructure要素と同じ名前を持つXML要素が作成され、スキーマ内にないか、またはマッピングされないその要素の属性はルート要素に追加される。マッピングされない、またはスキーマ内にない下位要素は、その要素のテキスト内容を含むその要素の子要素として追加される。
ユーザは、クエリを実行し、オーバーフローデータに更新することができ、この動作は融合(fusion)として参照される。誤り状態は次のとおりである。
Query−マッピングされた属性をオーバーフローフィールド(属性条件の複製を作成する)内に持つ。
Query−TargetStructure要素のテキスト内容をマッピングさせ、オーバーフローフィールドに含める。
属性:
Figure 2005327232
この要素には、下位要素がない。
MAPPINGPARAMETER要素
マッピングパラメータの意味では、実行時に知られている値をソースまたはターゲットフィールドにマッピングできる。MappingParameterは、MappingParametersセクションで宣言され、マッピングAPIを通じて実行時にアクセスすることができる。FieldMapのNullHandling設定はMappingParameterにも適用される。MappingParameterは、SourceFieldまたはTargetFieldのいずれかとして使用することができる。マッピングエンジンは、MappingParameter名の先頭に付いている$プレフィックスに基づいてそれらを区別する。($は、すべてのマッピングされたドメイン、つまりオブジェクト、XML、およびRelational(エスケープできる)では識別子に使用すると不正文字となる)。MappingParameterはアンタイプされ(untyped)、したがってそのXSD型は文字列である。実行時に、マッピングエンジンはこの値をマッピングされたフィールド型の型に変換する(ターゲットフィールドまたはソースフィールドのいずれか)。
この要素のテキスト内容は、このパラメータのデフォルト値である。この値は、ObjectSpace、XQueryProcessor、Bulkload、およびXMLAdapterなどのマッピングを使用するアプリケーションにより実行時に変更することができる。
属性:
Figure 2005327232
SourceField/TargetField/NullValueの値が「$$」で始まる場合、これはマッピングパラメータではないことを意味し、実際の値は単一の「$」で始まる。MappingParameterは、SourceField、TargetField、またはNullValueの値としてしか使用できない。マッピングエンジンは、そのフィールドマッピングに基づいてマッピングパラメータ値を与えることはできない。これらは、MappingParameterはSourceFieldにマッピングされ、書き込みオペレーションで使用され、読み込みオペレーションでは無視されるというマッピングコンテキストで適用され、使用される。MappingParameterは、TargetFieldにマッピングされ、読み込みオペレーションに使用され、書き込みオペレーションで無視される。したがって、MappingParameterは、出力パラメータとして使用することはできない。
Bulkloadでは、ユーザは何回も、データをXSDスキーマに含まれないデータベースに挿入したい場合がある。このデータは、通常、実行時にしか判明せず、XMLドキュメントの一部として含まれない。例えば、userid、マシンIDなどがある。
ユーザは、マッピングスキーマにまたがって使用されるNullValueを統一したい場合がある。これは、MappingParameterを所定のデフォルト値で作成し、多くのFieldMaps内のNullValue属性の値においてこのマッピングパラメータを使用することにより実行される。
バリデーションに関しては、MappingParameterの名前は文字「$」で始まらなければならない。任意の他の文字があるとエラーになる。名前は、「$$」で始めることはできない。このため、ユーザが「$」で始まる有効なドメインフィールド名を持つ場合、またはNULL値を「$」として示したい場合に、「$」記号をエスケープすることができる。
名前は、実行時にマッピングパラメータの値をソースまたはターゲットフィールドに割り当てるときに、あいまいさの発生を回避するためにマッピングスキーマ上で一意的でなければならない。名前の一意性はマッピングスキーマのロードされているすべてのセグメントにまたがるものであることに注意されたい。
BASEDONMAP−BASEDONRELATIONSHIP属性
設計ガイドラインとして、すべての必要なマッピング情報は、ドメインからではなく、マッピングファイル内のマッピングセクションから与えられる。したがって、継承および再帰では、ユーザは再帰要素および継承されたクラスフィールドをマッピングするための情報を明示的に供給する必要がある。ユーザは、「BasedOnMap」属性を構文的なショートカットとして使用することにより、FieldMapsおよびRelationshipMapsを一方のMapから他方のマップへコピーすることができる。これにより、マッピングエンジンは、Object継承シナリオおよびXML再帰シナリオにおいて、マッピング構文を明示し、ドメインから独立させることにより、FieldMapsおよびRelationshipMapsをコピーするのに必要な情報を取得することができる。BasedOnMapオプションでは、FieldMapsおよびRelationshipMapsをそのまま「BasedOnMap」属性の値として名前が参照されるMapからコピーする。コピーされたFieldMaps/RelationshipMapsは、SourceRelationship属性を含む基本のマップと同じである。
BasedOnRelationshipは、Map上のSourceがBasedOnMapが指定されているMap上のSourceと異なる場合に使用される。したがって、すべての関連するソース情報および関係(SourceRelationship、RelationshipMap)を作成および更新する必要がある。BasedOnRelationship属性を指定すると、Source属性はBasedOnReiationship属性の値とともにベースMapおよびSourceRelationshipで指定されているようにSourceの値とともにコピーされたFieldMapsに追加される。コピーされたFieldMapsがすでに、Copied RelationshipMapに関して、SourceおよびSourceRelationship属性を有する場合、これらの属性は新しいマップ上のソースとマップに基づくSourceとの間の関係とともに更新される。
BasedOnMapおよびBasedOnRelationshipの属性は両方とも、構文的ショートカットを使用可能にするマクロとして解釈することができる。以下の説明および規則では、BasedOnMapValue(BasedOnMap属性によって指定された値)、およびBasedRelationshipValue(BasedOnRelationship属性によって指定された値)の2つのキーワードを使用する。
BasedOnMapの値は、FieldMapのコピー元のMap名である。これは、単に、FieldMapsを、指されている名前付きMapからBasedOnMapが宣言されているMapにコピーするだけである。すべての子FieldMapsおよびRelationshipMap要素をそのすべての属性とともに、名前がBasedOnMapValueであるMapからBasedOnMap属性が指定されているMap要素にコピーする。
BasedOnRelationship属性とBasedOnMap属性。すべてのFieldMap要素について、関連するFieldMapsを見つけて更新する。名前がBasedOnMapValueであるMapからすべての子FieldMaps要素を見つける。FieldMaps上にSource属性が存在している場合には、値をそのままにしておき、そうでなければ、Source属性を名前がBasedOnMapValueであるMap要素上のSource属性の値とともにFieldMapsに追加する。
FieldMaps上にSourceRelationship属性が存在する場合、SourceRelationship属性の先頭に空白(“ ”)を挿入する。BasedRelationshipValueをSourceRelationshipの先頭に挿入し、さもなければSourceRelationship属性をBasedRelationshipValueの値とともに追加する。
修正されたSourceおよびSourceRelationship属性および他の変更されていないそのままのすべての属性を持つすべてのFieldMap要素をBasedOnMapおよびBasedOnRelationship属性が指定されているMap要素の中に入れる。
名前がBasedOnMapValueであるMapからすべての子RelationshipMap要素を見つけ、その属性をすべてそのままに維持する。すべてのRelationshipMap要素について、Source属性の値の先頭に空白(“ ”)を挿入する。BasedRelationshipValueをSource属性の先頭に挿入する。すべてのRelationshipMap要素を、修正されたSource属性および他のすべての変更されていない属性とともにBasedOnMapおよびBasedOnRelationship属性が指定されているMap要素にコピーする。
上述の意味では、以下の規則が適用される。BasedOnMapは、有効なMap名を参照しなければならない。BasedOnRelationshipは、ソースドメイン内の有効なRelationship名を参照しなければならない。BasedOnRelationshipが指定されている場合、有効なBasedOnMapが存在していなければならない。コピーされたFieldMapsは、明示的に定義されている場合のように他のすべてのマッピング規則が適用される。
XML事例でのBASEDONRELATIONSHIPの使用例
表:
Employee(EID,FirstName,LastName,HireDate,Salary,Manager)
FiredEmployee(EID,FirstName,LastName,HireDate,Salary,Manager)
XMLでの結果の例:
Figure 2005327232
マッピング:
Figure 2005327232
Figure 2005327232
マッピングエンジンで作成されたとおりの実際のMap:
Figure 2005327232
テーブル階層間の継承(オブジェクト)
表:
Persons(SSID,FirstName,LastName)
Employees(EID,EmployeeSSID,HireDate,Salary,Manager)
Managers(EID,Bonus)
Figure 2005327232
継承階層:Person→Employee→Manager
マッピング:
Figure 2005327232
マッピングエンジンで作成されたとおりの実際のマップ:
Figure 2005327232
Figure 2005327232
同じ基本テーブル(異なるカスタムテーブル)例(オブジェクト)を使用した継承
RSD:
Figure 2005327232
MAP:
Figure 2005327232
つまり、以下を意味する。
Figure 2005327232
NULLHANDLING属性
値NULLは、列のデータ値が不明であるか、または使用可能でないことを意味する。NULLは、ゼロ(数値としても2進数値としても)、長さゼロの文字列、または空白(文字値)と同義でない。むしろ、NULL値を使用した場合、ゼロ(数値列)または空白(文字の列)および非入力(数値と文字の両方の列についてNULL)を区別することができる。どの2つのNull値も等しくはない。2つのNULL値の比較、またはNULLと他の値との比較では、unknownを返すが、それは各NULLの値が不明だからである。NULL値は、通常、不明な、適用できない、または後から付け加えるべきデータを示す。例えば、顧客のミドルイニシャルは、顧客発注時には知られていない可能性がある。NULLのマッピングは、値が不明であるので複合タスクであり、各ドメインはその概念(Null)を異なった形で表現する。ときには、複数の異なる方法で表現することもでき、例えば、XMLドメインではNullをxsi:nil、なし(absence)、または空リストで表現することができ、またオブジェクトドメインはNULL化可能型(nullable types)、およびDBNullである、SQL型を有する。さらに、ユーザは、Nullを表すTargetドメイン内の値を選択したい場合があり、その値はNullイメージと呼ばれることが多い。
NullHanding属性を使用すると、Nullをソースドメインからターゲットドメイン内のNULL表現に変換することができ、またその逆に変換することもできる(ターゲットドメイン内の値からソースドメイン内のNULLに)。
Figure 2005327232
Sをソース(リレーショナル)ドメイン内のSourceFieldとして、Tをターゲット(オブジェクト、XML)ドメイン内のTargetFieldとして定義する。S(Null)←→T(NullHandling属性に基づく値)。これは、クエリ時に、データベース(DB)内のNullはNullHandling、NullValue属性で指定された値に出力されることを意味する。更新時に、ターゲットドメイン内の値が上の属性で指定された値であれば、ターゲットドメイン内の値はソースドメイン内のnullに変換される。ターゲットドメイン内のNull処理に対するデフォルトおよび特定の動作は、各ターゲットドメイン指定で設定される。
新しいターゲット構造(ObjectまたはXML要素)を作成し、フィールドにNull値を割り当てる、またはXML属性を省く場合、更新エンジンによるデフォルトの動作では、値は、列で定義されているデフォルト値に設定される。デフォルト値がない場合、Nullが適用されることを意味する。
ForceNullOnInsertは、ユーザが上述のデフォルト動作をオーバーライドしたい場合をサポートしている。この場合、ユーザは、更新エンジンがNullを明示的に列に書き込み、列で定義されていたデフォルトをオーバーライドすることを望んでいる。ForceNullOnInsert属性をTRUEに設定すると、オブジェクト/要素が作成されたときに、ターゲットドメイン内の任意のnull値についてnullが明示的に列の中に挿入される。この特徴に対する主要なシナリオでは、NullをInsertストアドプロシージャ(カスタムテーブルのinsertコマンドとして公開されている)のパラメータに受け渡すことを可能にする。
NullValueは、NullHandling値が「UseNullValue」の場合に与えることができる。
NullValueとしての空白文字列−この例では、ユーザは顧客のミドルイニシャルプロパティに対しnullを意味する空文字列を指定したい。
Figure 2005327232
null処理にDomainNullを使用する−この例では、MIは、XMLドメイン内の要素の名前である。
Figure 2005327232
XMLは<MI xsi:nil=“true”/>となる。
USEFORCONCURRENCY属性
この属性を必要とする背景にある理論と理由は、Optimistic Concurrencyドキュメントに明記されている。同時実行がMappingで指定され、RSDでは指定されていない理由は、特定のシナリオで、ユーザは異なる同時実行設定を好むことである。2つのクラスにマッピングされた非正規化されたテーブルを考える。これらのクラスには、同時実行制御に使用すべき異なるフィールドがある。一般に、人々は、そのビジネスロジックで推し進められる異なるマッピングで同じRSD情報を共有することを望む。UseForConcurrency属性は列挙型であり、値は、Always(このフィールドは常に同時実行に使用され、デフォルト値である)、Never(このフィールドは同時実行には決して使用されない)、およびModified(このフィールドは値が変更された場合のみ同時実行に使用される)である。
UseForConcurrency属性は、FieldMapとMapの両方で使用することができる。デフォルトのメカニズムは以下のとおりである。UseForConcurrencyが指定されていない場合、デフォルトは「Always」である。UseForConcurrencyがMap上で指定されている場合、FieldMapまたはRelationshipMapでUseForConcurrencyがすでに定義されていない限り、それはMapに関わるすべてのFieldMapおよびRelationshipsに対するUseForConcurrencyの値として使用される。この場合、定義済みの値はMap上で指定されているデフォルトをオーバーライドする。FieldMap上で指定されたUseForConcurrencyは、MapまたはRelationshipMapのいずれかで定義されているUseForConcurrencyをオーバーライドする。
ユーザは、RelationshipMap要素でUseForConcurrency属性を指定することにより明示的にマッピングされていない関係フィールドに対する同時実行設定を制御することができる。RelationshipMap上で行ったこの属性の設定はすべての関係フィールドに適用されることに注意されたい。
バリデーションは以下のように働く。Alternate Key UseForConcurrency=Alwaysであれば、これは同時実行に使用され、Primary Key同時実行は、他のフィールドとしてのデフォルト規則に基づいて判別される。さもなければ、Alternate Keyが存在していないか、UseForConcurrency=Alwaysとマークされていない場合、Primary Key UseForConcurrencyのデフォルトとしてAlwaysに設定される(マッピングエンジンは、Map UseForConcurrency値を無視する)。一次キーFieldMapのUseForConcurrency値が明示的に他の値に設定された場合(NeverまたはModifiedのいずれか)、マッピングエンジンは例外を通る。
例:
Figure 2005327232
Figure 2005327232
マップは次のような内部表現で表される。
Figure 2005327232
REF属性
Ref属性値はMapの名前である。この属性の意味は、ターゲット構造またはターゲットフィールドが名前付きマップの同じSourceにマッピングされるということである。「同じSource」は、リレーショナルドメイン内のテーブルから選択されたセットを意味する。リレーショナルドメインの意味に基づき、マッピングエンジンは、テーブルがマッピングされる毎に新しいレコードセット(selectステートメント)を作成する。XMLドメイン内の異端の(maverick)ケースなどの場合に、ユーザはすでに作成されているセットをターゲット構造またはフィールドにマッピングすることを望むことがある。ユーザが顧客注文を含む顧客要素を持つ以下のシナリオ(XMLドメインマッピングから抜粋)を考察する。Order要素には、顧客名が含まれている。
Figure 2005327232
リレーショナル構造は、MyBuyer Relationshipを含むCustomersおよびOrdersテーブルである。したがって、マッピングは以下のようになる。
Figure 2005327232
Figure 2005327232
これは、別のセットおよび結合を作成する必要がないため注文要素上で顧客名を取得する効率のよい方法である。ソースドメイン内の各構造(行)からマッピングにより複数のXML要素が作成される場合があるため、Ref属性は、XMLドメインでのみ使用されることに注意されたい。さらに、この行からの値は、上の例に示されているように、XML階層内の子孫が選択することができる。
更新の意味
マッピングの強力な属性は、更新可能であるということである。オブジェクトまたはXMLドメイン内の変更の同期をとりSQLサーバドメインに伝えるため以前には大量のコードを書く必要があった多くの開発者は、マッピングエンジンに中継し、タスクを実行してもらうようにできる。ユーザは、ターゲットドメイン内の構造(オブジェクトまたはXML要素)を作成、削除、または修正し、ターゲットドメインAPIおよび以下のセクションではCPと呼ぶ変更プロセッサ(CP)と呼ばれるマッピングエンジンにより魔法を使ったようにソースドメインに対してそれらの変更の同期をとる(永続化する)。このセクションでは、ソースドメイン(リレーショナルデータモデル)内に永続化されているターゲットドメインの変更の意味を説明する。
以下の項は、上述のExistence、Copy、およびMapping Relationshipsのこれらの概念への追加である。
ターゲットユニット−Map要素を使用して同じソース構造にマッピングされるターゲットドメインからの構造または構造のグループ。ターゲット構造のグループは、Ref属性を使用して他のMapを参照しているマップ上のターゲットである(Targetユニットは参照されているマップを含む)。これは、構造のこのようなグループ化が可能でなく、Map要素を使用してマッピングされる各オブジェクトがTargetユニットであるオブジェクトドメインと構造のそのようなグループを上述のように作成できるXMLドメインとの間の鞍の差(saddle difference)である。
ソースユニット−ソースドメイン内の構造。リレーショナルドメインでは、ソースはCustomTableである。
変更ユニット−変更されたターゲットユニットにマッピングされたソースユニット。
CPは、変更ユニットの関係を調べ、ソースドメイン内の関係するユニットに対し実行するオペレーション、オペレーションの順序、およびバリデーションを判別する。変更をターゲットとソースの両方のドメイン内の関係するユニットに適用して同期を維持する操作は非常に複雑である。RelationshipMapセクションのバリデーション規則により、必ず、ターゲットドメインに対する変更はソースドメイン上のCPにより適用される変更と衝突しない。
このセクションでは、ソースドメインスキーマ(RSD)内の関係要素の意味を説明する。
FROMとTO
「From」は、関係内の親ユニットであり、「To」は関係内の子ユニットである。ソースドメイン内のオペレーションの順序を判別するために、親ユニットと子ユニットとの区別が必要である。変更の種類(Insert、Delete、およびUpdate)を使用して、オペレーションの実行順序を判別する。Insert/Updateに対し、親は最初に実行され、Deleteに対し、子が最初に実行される。
CASCADEDELETE/CASCADEUPDATE
変更をソースドメインに適用する場合、CPは変更ユニットとその変更ユニットが親となっている他のマッピングされたソースユニットとの間のあらゆる関係を見つける。CascadeDelete/CascadeUpdateの値により、オペレーションは子テーブルまたはそれ以外に影響を及ぼすかどうかを判別する。これらの属性の値では、CPまたはSQL Serverが子テーブル上で変更を実行するかどうかを決定する。
ISFOREIGNKEYを使用したユニット(テーブル)依存関係の計算
以下では、関係情報に基づいてテーブル内のテーブル依存関係および行依存関係(ユニット依存関係ともいう)を計算し更新エンジンCPの行実行順序を判別することの意味を説明する。CPでは、親(From)と子(To)の情報および関係要素のIsForeignKey属性により表される外部キー制約の存在を利用して、この依存関係および更新ステートメントの実行順序を判別する。
以下は単純な階層であり、Customers→Orders→OrderDetailsとなっており、循環参照はない。
Figure 2005327232
以下は、1つの関係がサーバ上のFK制約でない循環参照である(IsForeignKey=false)。これは、外部キー制約の少なくとも1つの関係はサーバ上で作成されないシナリオである。マッピングの順序は、A→B→Cである。
Figure 2005327232
以下は、すべての関係がサーバ上のFK制約である循環参照である(IsForeignKey=true)。このシナリオでは、関係はすべて、サーバ上の外部キー制約が課される。マッピングの順序は、C→A→Bである。
Figure 2005327232
Figure 2005327232
または
Figure 2005327232
コンパイル時に、「From」および「To」という方向属性は主に、テーブル依存関係を判別する場合に使用される。これにより、第1のシナリオのような単純なすべての階層型シナリオが解決する。他方、関係の方向により循環参照が生じる上の第2および第3のシナリオでは、サーバ上に実装されている外部キー制約(IsForeignKey=“true”)を指していない関係を無視することにより依存関係を見つけ出そうとする。このようにして第2のシナリオを取り扱う。循環参照がそれでも存在している場合(つまり、すべて外部キー制約として実装されているため関係パスすべてが無視されるわけではない)、依存関係グラフはランダムに階層型ツリーに解決される(次のアルゴリズムのセクションで説明する)。
実行時に、第1のシナリオでChangeUnitsを受け取ると、それ以上オペレーションは必要でなく、コンパイル時依存関係グラフによる実行順序で実行される。しかし、第2および第3のシナリオの循環参照については、ChangeUnit.GetParents()を使用して実行時インスタンスを評価し、正しい実行順序を求める。ほとんどの場合、実行時インスタンスはグラフを形成せず、ChangeUnitsは階層方式で実行される(HaroonA→DanielD→Foo→Bar→BillG)。しかし、実行時にインスタンスがグラフを形成する場合でも、コンパイル時依存関係に従ってユニットが実行される。これは、第2のシナリオの場合にうまくゆくが、すべての関係が外部キー制約を参照している第3のシナリオでは、サーバサイドの制約例外がInsertおよびDeleteオペレーションに対し発生する。
ここでアルゴリズムを使用することで、すべてのシナリオに対するマッピングコンパイル時の依存関係を計算することができるが、第2および第3のシナリオの循環参照については実行時インスタンスは評価され優先権を与えられる。マッピング構文から一度計算されたすべてのユニットの依存関係情報は、すべてのソースユニットにそれぞれの相対的序数が割り当てられるコンパイル時マッピングにおいて配列に格納されることに注意すべきである。上述のように第3のシナリオの解決不可能な循環参照であっても、グラフはマッピングファイル内の出現順にランダムにツリーに細分される。このため、関係のないユニット間でも実行の決定論的順序が保証され、したがって特定の潜在的デッドロックのケースが回避される。
カーディナリティは、OneToOneおよびOneToManyのいずれかである。Many−to−manyは意味に関してOneToManyと似ており、更新に関係する。「Map」要素上の「Source」属性により指定されたソースユニットは、強いユニットと呼ばれ、基本の「FieldMap」要素で指定された他のすべてのソースユニットは弱いユニットと呼ばれる。カーディナリティ情報は、弱いユニットおよび強いユニットという概念と緊密に結びついている。OneToManyでは、弱いユニットは読み取り専用と考えられる。
このようなシナリオの例としては、ObjectSpaceのOne Table per Type継承と複数のテーブルにマッピングされたCustomer XML要素(またはClass)(Customer、CustomerInfo)がある。この場合、動作は強いユニットも弱いユニットも読み書きであり、弱いユニット行の存在は、強いユニット行の存在と結びついている。つまり、ターゲットユニットが挿入されると、1つの行が強いユニットに挿入されるだけでなく、対応する行もすべての弱いユニットに挿入されるということである。同様に、ターゲットユニットが削除されると、強いユニットおよび弱いユニット内の対応する行はすべて削除される。弱いユニットを参照する属性を削除することは、この列が強いユニットに属するか弱いユニットに属するかに関係なく対応する列内の値をNULL化するものとしてみなされる。特定の弱いユニットにマッピングされているすべてのターゲットフィールドが削除される場合でも、弱いユニット内の行は削除されないということを明確にする必要がある。弱いユニットからの行は、ターゲットユニットが削除される場合、強いユニットとのみ消される。このターゲットフィールドの削除シナリオは、XLMでしか存在せず、ObjectSpacesでは存在しないことに注意されたい。というのも、クラスのプロパティは削除できず、むしろNULL化できるだけだからである。
FieldMap上のRef属性に関して、FieldMapで「Ref」属性を使用して複数のソースユニットをマッピングする場合、更新の意味はすべてのカーディナリティについて弱いユニットに関し読み取り専用である。これは、更新の意味を制御するために他のマッピングが存在することを意味する「Ref」属性の意味に適合している。読み取り専用の意味では、ターゲットが挿入されると、更新オペレーションは強いユニットに行を挿入するだけであり、弱いユニットに触れる(touch)ことはない。同様に、ターゲットが削除される場合、強いユニット上の行のみが削除される。同様に、弱いユニットを参照している属性が修正されると(更新/削除)、更新エンジン(CP)は例外を投げる。クライアント(ObjectSpaces、XmlCacheなど)は、弱いユニット上の修正された変更をCPに与えないことにより動作を常にオーバーライドすることが可能である。このようにして、例外を発生することなく変更が無視される。
ソースの代わりにRef属性を持つマップは、1つのユニットにまとめられ、主要マップ内にマッピングされているターゲット構造なしでは挿入も削除もできない。概念的には、これらは主要マップの一部である。このような動作である理由は、主要(main)マップは常に、個人キー情報を含むことを保証され、マッピングされる構造はマッピングされる構造の先祖でなければならず、したがって、そのマップの所有者構造とすることができる。
読み取り専用のFieldMapでは、CPは読み取り専用FieldMap内にマッピングされているソースフィールドが変更されず、この場合エラーを投げることを確認する。CustomTable上の更新コマンドの現在のパラメータを読み取り専用ターゲットフィールドにバインドするのは誤りであることに注意されたい。
図6Aを参照すると、マッピングコンポーネント602がネットワーク上に別々に配置されているソースのデータソース602とターゲットのデータソース604のネットワーク図が示されている。ソースのデータソース602とターゲットのデータソース604は両方とも、読み取り専用であるが、それでもマッピングが必要である。本発明では、マッピングコンポーネント606を使用して、ソース602からターゲット604へのマッピングを実行し、マッピングコンポーネント606のネットワークロケーションにいるユーザはそのマッピングを実行するようにマッピングコンポーネント606を構成する。これは、インターネットなどのグローバルな通信ネットワーク(GCN)608を対象とすることができる。さらに、マッピングは、LAN、WAN、WLAN、WWANなどのネットワーク608上で実行することができる。このシナリオでは、顧客がマッピングオペレーションをベンダに実行してもらうために署名(subscribe)する実装が行いやすい。これは必須ではないがベンダは単純に、たぶんログイン情報を取得した後、ネットワーク608を介してソースおよびターゲットのデータモデルにアクセスし、マッピングオペレーションを実行するためにマッピングコンポーネント606を構成する。このシナリオではさらに、LAN、WANなどを介して顧客のマッピングオペレーションをサポートする。
次に図6Bを参照すると、マッピングコンポーネント606をソースロケーションまたはターゲットロケーション、またはその両方のロケーションに配置することができることを示しているネットワーク図610が例示されている。
次に図7を参照すると、開示されているアーキテクチャを実行する動作が可能なコンピュータのブロック図が例示されている。本発明の様々な態様の背景を示すために、図7および以下の説明では、本発明の様々な態様を実装できる適当な動作環境700の概要を簡潔に説明する。本発明は、1つまたは複数のコンピュータで実行できる、コンピュータ実行可能命令の一般的な文脈において上で説明されているが、当業者であれば、本発明は他のプログラムモジュールと組合せかつ/またはハードウェアとソフトウェアとの組合せとして実装できることも理解するであろう。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などが含まれる。さらに、当業者であれば、本発明の方法が、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、さらにはパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースのまたはプログラム可能な家電製品などを含む、他のコンピュータシステム構成でも実施でき、それぞれ1つまたは複数の関連するデバイスに結合され動作可能であることを理解するであろう。本発明の例示されている態様は、通信ネットワークを通じてリンクされているリモート処理デバイスにより特定のタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートのメモリ記憶デバイスに置くことができる。
図7を参照すると、本発明の様々な態様を実装する環境例700はコンピュータ702を含み、コンピュータ702は処理ユニット704、システムメモリ706、およびシステムバス708を含むことが示されている。システムバス708は、限定はしないが、システムメモリ706などのシステムコンポーネントを処理ユニット704に結合する。処理ユニット704は、様々な市販プロセッサのうちのどれでもよい。デュアルマイクロプロセッサおよびその他のマルチプロセッサアーキテクチャも、処理ユニット704として採用することができる。
システムバス708は、様々な市販のバスアーキテクチャを使用するメモリバスまたはメモリコントローラ、周辺機器バス、およびローカルバスを含む数種類のバス構造のうちのいずれかとすることができる。システムメモリ706は、読み取り専用メモリ(ROM)710およびランダムアクセスメモリ(RAM)712を含む。起動時などにコンピュータ702内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム(BIOS)は通常、ROM710に格納される。
コンピュータ702は、ハードディスクドライブ714、磁気ディスクドライブ716(例えば、取り外し可能ディスク718との間で読み書きする)、および光ディスクドライブ720(例えば、CD−ROMディスク722を読み出したり、他の光媒体との間で読み書きを行う)をさらに含む。ハードディスクドライブ714、磁気ディスクドライブ716、および光ディスクドライブ720は、ハードディスクドライブインターフェイス724、磁気ディスクドライブインターフェイス726、および光ドライブインターフェイス728によりそれぞれシステムバス708に接続できる。ドライブおよびその関連コンピュータ可読媒体は、データ、データ構造体、コンピュータ実行可能命令などを格納する不揮発性記憶装置を実現する。コンピュータ702に関しては、ドライブおよび媒体は、適当なデジタル形式で放送番組を格納することに適応している。上述のコンピュータ可読媒体の説明では、ハードディスク、取り外し可能磁気ディスク、およびCDを取り上げているが、当業者であれば、zipドライブ、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、カートリッジなどコンピュータにより読み取り可能な他の種類の媒体も動作環境例で使用することができること、さらに、そのような媒体は本発明の方法を実行するコンピュータ実行可能命令を含むことができることを理解するであろう。
多数のプログラムモジュールを、オペレーティングシステム730、1つまたは複数のアプリケーションプログラム732、その他のプログラムモジュール734、およびプログラムデータ736などのドライブおよびRAM712に格納することができる。本発明は、様々な市販のオペレーティングシステムまたはオペレーティングシステムの組合せで実装できることは理解されるであろう。
ユーザは、キーボード738およびマウス740などのポインティングデバイスを介してコマンドおよび情報をコンピュータ702に入力することができる。他の入力デバイス(図に示されていない)としては、マイク、IRリモートコントロール、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバス708に結合されているシリアルポートインターフェイス742を介して処理ユニット704に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(「USB」)、IRインターフェイスなどの他のインターフェイスにより接続することもできる。モニタ744またはその他の種類の表示デバイスも、ビデオアダプタ746などのインターフェイスを介してシステムバス708に接続される。モニタ744の他に、コンピュータは通常、スピーカ、プリンタなどの他の周辺出力デバイス(図に示されていない)を含む。
コンピュータ702は、リモートコンピュータ748などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することも可能である。リモートコンピュータ748は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、携帯型コンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイス、またはその他の共通ネットワークノードなどでよく、通常は、コンピュータ702に関係する上述の要素の多くまたはすべてを含むが、簡単のため、メモリ記憶デバイス750のみが例示されている。説明されている論理接続は、ローカルエリアネットワーク(LAN)752とワイドエリアネットワーク(WAN)754を含む。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的なものである。
LANネットワーキング環境で使用する場合、コンピュータ702はネットワークインターフェイスまたはアダプタ756を介してローカルネットワーク752に接続される。アダプタ756により、LAN752との有線または無線通信を行うことができ、これはさらに、無線アダプタ756との通信を行うため配置されている無線アクセスポイントも含むことができる。WANネットワーキング環境で使用する場合、コンピュータ702は通常、モデム758を含むか、またはLANで通信サーバに接続されるか、またはインターネットなどのWAN754上で通信を確立するための他の手段を含む。モデム758は、内蔵でも外付けでもよいが、シリアルポートインターフェイス742を介してシステムバス708に接続される。ネットワーク環境では、コンピュータ702またはその一部に関して述べたプログラムモジュールは、リモートメモリ記憶デバイス750に格納できる。図に示されているネットワーク接続は例であり、コンピュータ間に通信リンクを確立するための他の手段を使用できることは理解されるであろう。
図8を参照すると、本発明によるコンピューティング環境例800の概略ブロック図が示されている。システム800は、1つまたは複数のクライアント802を含む。クライアント802は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。クライアント802には、例えば、本発明を採用することによりcookiesおよび/または関連するコンテキスト情報を置くことができる。システム800は、さらに、1つまたは複数のサーバ804を含む。またサーバ804は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることもできる。サーバ804には、例えば、本発明を採用することにより変換を実行するスレッドを置くことができる。クライアント802とサーバ804との間の考えられる1つの通信は、2つまたはそれ以上のコンピュータプロセス間で伝送されるように適合されたデータパケットの形で実行できる。データパケットは、例えば、cookieおよび/または関連するコンテキスト情報を含むことができる。システム800は、クライアント802とサーバ804との間の通信を円滑にするために採用することができる通信フレームワーク806(例えば、インターネットなどのグローバル通信ネットワーク)を含む。通信は、有線(光ファイバを含む)および/または無線技術を介して円滑化することができる。クライアント802は、クライアント802のローカルにある情報を格納するために使用することができる1つまたは複数のクライアントデータストア808に接続し動作させることができる(例えば、cookiesおよび/または関連するコンテキスト情報)。同様に、サーバ804は、サーバ804のローカルにある情報を格納するために使用することができる1つまたは複数のサーバデータストア810に接続し動作させることができる。
図9を参照すると、本発明によるディジーチェーン型のマッピング実装のブロック図が例示されている。開示されている新規性のあるマッピングアーキテクチャによりディジーチェーン型のマッピングシナリオの実装が容易になり、図1のシステム100に似た複数の段900はシリアル方式でソースデータモデルS(任意の構造の)からターゲットデータモデルT(任意の構造の)へ、必要な中間データ変換を行う多数の中間ステージを使用し、最終的にターゲットデータモデルT(送り先)で望むデータ形式を利用できるようにすることは理解されるであろう。このコンテキストでのステージ900は、ソースモデルS、マッピングコンポーネントM、およびターゲットデータモデルTを含むように表されている。ディジーチェーンで複数のステージ900を接続する場合、中間ターゲットデータモデルT1はさらに、後のステージ902のデータソースS2でもある。したがって、中間データモデル(例えば、T1/S2)は、先行するステージ900のマッピングコンポーネントM1のターゲットに対するT1と後続のステージ902の後続のマッピングコンポーネントM2のソースに対するS2の両方としてラベル付けされている。
データモデルは、限定はしないが、クエリ言語、データアクセス言語、データ操作言語、データ定義言語、オブジェクトモデル、リレーショナルモデル、およびXMLモデルなどがある。
一実施例では、ソースデータモデルS1からターゲットデータモデルT2にデータをマッピングすることが目標である。ソースS1はリレーショナルデータ構造であり、ターゲットT2はXMLデータ構造であると考える。さらに、ソースS1からターゲットT2へのパスは、オブジェクトベースのパスしか与えない。第1のステージのマッピングコンポーネントM1はソースS1に適切なリレーショナル記述コンポーネントを使用し、ターゲットT1にオブジェクト記述コンポーネントを使用して、ソースS1から中間ターゲットT1にマッピングする。次に、中間ターゲットT1はマッピングコンポーネントM2のソースS2ではない。次に、マッピングコンポーネントM2は、適切なオブジェクト記述コンポーネントおよびXML記述コンポーネントを使用してソースS2からターゲットT2へのマッピングを完了する。
このような機能を考えると、特定の応用ではステージをいくつでも(900および902)を採用できることは理解されるであろう。
図10を参照すると、本発明のマッピングアーキテクチャのハブ&スポーク方式の実装を示している。この実装は、ネットワークの中断、使用可能な帯域幅などにより、任意の時点でデータパスを使用できるかどうかが決まる大規模なネットワーク環境、例えば、インターネットまたは大規模な企業ネットワークで特に有用である。データが移動しまたはクエリが実行される任意の数のデータソース(S1、S2、およびS3)および任意の数の中間データターゲット1008(T/Sとも表されている)と通信している中央制御エンティティ1000が用意される。最後に、マッピングはソース(S1、S2、およびS3)の1つからターゲットT2へのマッピングであるのが望ましい。
中央制御エンティティ1000は、エンティティ1000のすべての側面を制御する制御コンポーネント1002を含み、これは、一方の種類のデータモデルから他方のデータモデル(例えば、リレーショナル、オブジェクト、XML、...)にデータを変換するためのアクセス可能な記述アルゴリズムを格納する記述コンポーネントリソース1004、およびソース(S1、S2、およびS3)と中間ターゲット1008との間でデータのルーティングまたはスイッチングを行うスイッチングメカニズム1006を含む。
例えば、動作中に、第1の中間データソースターゲット1010からソースS1へのデータクエリが開始される。ソースS1のデータ構造はリレーショナルであり、ターゲット1010はXMLである。ターゲット1010からソースS1へのクエリにより変換情報を制御コンポーネント1002に送り、マッピングの完了に使用するためリソース1004から適切なリレーショナル−XMLマッピングアルゴリズムを取り出しかつ/または生成することができる。マッピング関数(function)は、エンティティ1000の一部である。
より広範な例では、1つのデータモデルに対して行われたマップ要求(クエリまたは更新)を1つまたは複数の異なるデータモデルへの要求に変換することができる場合、ターゲットT2から始まり中間ターゲット/ソース1008のいずれか1つを通りソースS1へ到達するクエリが開始し、エンティティ1000は中間データソース1008を通じて最適なパスを選択することができる。例えば、ソースS1がリレーショナルである場合、ターゲットT2はXMLであり、第1の中間データソース1010はオブジェクトベースであり、第2の中間データソース1012はリレーショナルベースであり、第3の中間データソース1014はXMLベースであり、エンティティ1000は最適なパスがソースS1から第2の中間データソース1012を通りターゲットT2に至るものであると判定することができる。この判定が行われると、制御コンポーネント1002は、ソースS1から中間データソース1012へのリレーショナル−リレーショナルマッピング(リソース1004からの)を採用し、それにより、第2の制御エンティティ1016(制御エンティティ1000と似ている)内のマッピングコンポーネントは第2の中間データソース1012からターゲットT2へのリレーショナル−XMLマッピングを使用する。制御エンティティ(1000および1016)は、リンク1018を介して通信し、データソースを通じてターゲットT2に至る通信経路の1つを介して経路選択を調整することができる。
上で示したように、データソース間のマッピングは類似のデータ構造に対するものとすることができ、例えば、リレーショナル・ツー・リレーショナル、XML・ツー・XMLなどとすることができる。つまり、ソースのリレーショナルデータベースを、異なるリレーショナル構造を有するターゲットリレーショナルデータベースにマッピングすることができるシナリオが存在しうる。同様に、ソースのオブジェクトデータを、異なるオブジェクト構造を持つターゲットオブジェクトデータにマッピングすることができるシナリオが存在しうる。さらに、ソースのXMLデータを、異なるXML構造を持つターゲットXMLデータモデルにマッピングすることができるシナリオが存在しうる。
次に図11を参照すると、本発明の一態様によるスタック可能な構造1100が例示されている。この機能は、図10のネットワーク実装で使用されている。マッピングフレームワークは、便利な1組の形式、API(Application Programmable Interface)、オプティマイザ、ユーティリティ、およびツールを備えており、ユーザは2つの任意のデータモデルの間でデータ処理を実装することができる。誰でも、QIL(クエリ独立言語)コンパイラに対し自身のクエリを実行し、他のデータソースに対し自動的に実行するようにできる。QILは、データソースに対するクエリ(または更新)の万能データソース独立表現である。マッピングにより、一方のデータモデルに対して行われた要求(クエリまたは更新)をマッピングする要求を別のデータモデルへの要求に変換することができる。
例示されているAPIは、リレーショナル1102、XML1104、オブジェクト1106、およびその他1108を含む。したがって、クエリは、実行するためマッピングの複数のレイヤ(1110、1112、および1114)内を移動することができ、その結果を複数回再マッピングしてから送り返すようにできる。マッピングおよびQILは、作成可能である。マッピングは2方向である、つまり可逆であり、更新を自然に実行できる。
上で説明した内容は、本発明の例を含んでいる。もちろん、本発明を説明するためにコンポーネントまたは方法の考えられるすべての組合せを説明することは不可能であるが、当業者であれば、本発明の他の多くの組合せおよび置換が可能であることを理解できるであろう。したがって、本発明は、付属の請求項の精神と範囲内に収まるすべてのそのような変更、修正、および変更形態を包含するものとする。さらに、「includes(含む)」という言い回しを詳細な説明または請求項で使用している範囲において、このような用語は、「comprising(備える、含む)」という用語が請求項の中で接続語(transitional word)として使用した場合に解釈されるように、「comprising」という用語と同様の方法で包括的であることを表す。
本発明のマッピングシステムのブロック図である。 本発明によるプロセスのフロー図である。 ソースからターゲットへのマッピングを円滑にするために公開されている概念的メタデータエンティティの図である。 ソーススキーマをターゲットスキーマにマッピングするためのマッピングファイルの一般的な例を示す図である。 ソースドメインとターゲットドメインとのマッピング例を示す図である。 マッピングコンポーネントがネットワーク上に別々に配置されているソースのデータソースとターゲットのデータソースのネットワーク図である。 マッピングコンポーネントをソースの位置またはターゲットの位置、またはその両方の位置に配置することができることを示しているネットワーク図である。 開示されているアーキテクチャを実行する動作が可能なコンピュータのブロック図である。 本発明によるコンピューティング環境例を示す概略ブロック図である。 本発明によるディジーチェーン型のマッピング実装を示すブロック図である。 本発明マッピングアーキテクチャのハブ&スポーク方式の実装を示す図である。 本発明の一態様によるスタック可能な構造を示す図である。
符号の説明
100 マッピングシステム
102 ソースデータモデル
104 ターゲットデータモデル
106 マッピングコンポーネント
108 ソースメタデータ
110 ターゲットメタデータ

Claims (55)

  1. 任意のデータモデルのマッピングを円滑にするシステムであって、少なくとも2つの任意のデータモデルからそれぞれのメタデータを受け取り、前記データモデル間で表現をマッピングするマッピングコンポーネントを備えることを特徴とするシステム。
  2. 前記データモデルは、クエリ言語であることを特徴とする請求項1に記載のシステム。
  3. 前記データモデルは、データアクセス言語であることを特徴とする請求項1に記載のシステム。
  4. 前記データモデルは、データ操作言語であることを特徴とする請求項1に記載のシステム。
  5. 前記データモデルは、データ定義言語であることを特徴とする請求項1に記載のシステム。
  6. 前記データモデルは、少なくとも1つのオブジェクトモデルおよび少なくとも1つのリレーショナルモデルを含み、前記オブジェクトモデルは前記リレーショナルモデルのうちの少なくとも1つにマッピングされることを特徴とする請求項1に記載のシステム。
  7. 前記データモデルは、前記オブジェクトモデルのうちの1つが前記他のオブジェクトモデルのうちの少なくとも1つにマッピングされるオブジェクトモデルを含むことを特徴とする請求項1に記載のシステム。
  8. 前記データモデルは、XMLモデルおよび少なくとも1つのリレーショナルモデルを含み、前記XMLモデルは前記リレーショナルモデルのうちの少なくとも1つにマッピングされることを特徴とする請求項1に記載のシステム。
  9. 前記データモデルはXMLモデルであり、前記XMLモデルのうちの1つが前記他のXMLモデルのうちの少なくとも1つにマッピングされることを特徴とする請求項1に記載のシステム。
  10. 前記データモデルは、XMLモデルおよび少なくとも1つのオブジェクトモデルを含み、前記XMLモデルは前記オブジェクトモデルのうちの少なくとも1つにマッピングされることを特徴とする請求項1に記載のシステム。
  11. 前記データモデルはリレーショナルモデルであり、前記リレーショナルモデルの1つは前記他のリレーショナルモデルのうちの少なくとも1つにマッピングされることを特徴とする請求項1に記載のシステム。
  12. 前記データモデルは、XMLモデルおよびオブジェクトモデルを含み、前記オブジェクトモデルは前記XMLモデルのうちの少なくとも1つにマッピングされることを特徴とする請求項1に記載のシステム。
  13. 前記データモデルは同じ構造を持つことを特徴とする請求項1に記載のシステム。
  14. 前記マッピングコンポーネントは前記メタデータから導かれたトポロジデータを受け取ることを特徴とする請求項1に記載のシステム。
  15. 前記データモデルは、読み取り専用であることを特徴とする請求項1に記載のシステム。
  16. 前記データモデルは、データモデルのメタデータまたは構造をそれ自身修正することなくマッピングされることを特徴とする請求項1に記載のシステム。
  17. 前記表現は構造、フィールド、および関係のうちの少なくとも1つを含むことを特徴とする請求項1に記載のシステム。
  18. 前記データモデル間でマッピングされた前記表現は、同じ、異なる、および同じものと異なるものとの組合せのうちの少なくとも1つであることを特徴とする請求項17に記載のシステム。
  19. 前記マッピングコンポーネントは階層の作成または破壊、一方の要素から他方の要素への属性の移動、および新しい関係の導入のうちの少なくとも1つによりデータモデルのデータに対する構造上の変換を作成することを特徴とする請求項1に記載のシステム。
  20. 前記マッピングコンポーネントは前記データモデル間の前記同じマッピング可能な概念を関係付け、接続することを特徴とする請求項1に記載のシステム。
  21. 前記データモデル間の前記マッピングは、有向であることを特徴とする請求項1に記載のシステム。
  22. 前記データモデルはソースドメインおよびターゲットドメインを含み、前記ターゲットドメインの構造およびフィールドを少なくとも1回はマッピングすることができることを特徴とする請求項1に記載のシステム。
  23. 前記データモデルはソースドメインおよびターゲットドメインを含み、前記ソースドメインの構造およびフィールドを複数回マッピングすることができることを特徴とする請求項1に記載のシステム。
  24. 前記データモデルはソースドメインおよびターゲットドメインを含み、前記マッピングコンポーネントによりユーザは前記ターゲットドメインのクエリ言語を通じて前記データモデルを操作できることを特徴とする請求項1に記載のシステム。
  25. 前記データモデルはソースドメインおよびターゲットドメインを含み、前記ソースドメインは前記データの永続的ロケーションであることを特徴とする請求項1に記載のシステム。
  26. 前記データモデルはソースドメインおよびターゲットドメインを含み、前記マッピングは、前記ターゲットドメインのクエリ言語で書かれているクエリを前記ソースドメインのクエリ言語に変換することを特徴とする請求項1に記載のシステム。
  27. 前記マッピングコンポーネントは、ソースデータモデルに対しターゲットデータモデルで行われた更新の同期を自動的にとることを容易にすることを特徴とする請求項1に記載のシステム。
  28. 前記マッピングコンポーネントは、それぞれの前記メタデータの概念のようにマッピングするマッピングファイルを含むことを特徴とする請求項1に記載のシステム。
  29. 請求項1の前記システムを実行することを特徴とするコンピュータ。
  30. 任意のデータモデルのマッピングを円滑にするシステムであって、
    ソースのデータソースのソース概念を表すソースメタデータと、
    少なくとも1つのターゲットのデータソースのターゲット概念を表すターゲットメタデータと、
    前記ソースメタデータと前記ターゲットメタデータとを受け取り、前記概念を前記ソースのデータソースから前記ターゲットのデータソースの1つまたは複数と関連する前記ターゲットのメタデータにマッピングするマッピングコンポーネントを備えることを特徴とするシステム。
  31. 前記マッピングされた概念は、同じ、異なる、および同じものと異なるものとの組合せのうちの少なくとも1つであることを特徴とする請求項30に記載のシステム。
  32. 前記データソースは同じ構造を持つことを特徴とする請求項30に記載のシステム。
  33. 前記ソース概念および前記ターゲット概念は両方のデータソースにおいて同じであることを特徴とする請求項30に記載のシステム。
  34. 前記マッピングコンポーネントは前記データソース間の前記同じ概念を関係付け、マッピングすることを特徴とする請求項30に記載のシステム。
  35. 前記ソースおよびターゲットの概念は前記同じデータソース内の2つの構造の間のリンクおよび関連付けである関係要素を含むことを特徴とする請求項30に記載のシステム。
  36. 前記関係要素は、第1の構造が前記同じデータソース内の第2の構造にどのように関係するかを定義することを特徴とする請求項35に記載のシステム。
  37. 前記ソースのデータソースおよび前記ターゲットのデータソースは、前記マッピングコンポーネントから離してネットワーク上に配置されることを特徴とする請求項30に記載のシステム。
  38. 前記マッピングコンポーネントは前記ソースのデータソースおよび前記ターゲットのデータソースのうちの少なくとも一方のローカルにあることを特徴とする請求項30に記載のシステム。
  39. データモデル間でデータをマッピングする方法であって、
    少なくとも2つの任意のデータモデルからそれぞれのメタデータを受け取ることと、
    前記メタデータに基づき前記データモデルのうちの2つの間で表現をマッピングすることを含むことを特徴とする方法。
  40. 前記2つのデータモデルの間でマッピングされた表現は、前記同じ表現であることを特徴とする請求項39に記載の方法。
  41. ソースデータスキーマとターゲットデータスキーマおよびスキーマ内の欠落している情報を定義することをさらに備えることを特徴とする請求項39に記載の方法。
  42. 関数を使用してソースデータモデルをターゲットデータモデルにマッピングしているときにデータを変換することをさらに備えることを特徴とする請求項39に記載の方法。
  43. ターゲットデータモデル内で行われた変更とソースデータモデルとの同期をとることをさらに備えることを特徴とする請求項39に記載の方法。
  44. 任意のデータモデルをマッピングする方法であって、
    ソースのデータソースのソース概念を表すソースメタデータとターゲットのデータソースのターゲット概念を表すターゲットメタデータを受け取ることと、
    前記ソースメタデータおよび前記ターゲットメタデータに基づいて前記ソースとターゲットのデータソースの間で概念をマッピングすることを含むことを特徴とする方法。
  45. 前記データソースは同じ構造を持つことを特徴とする請求項44に記載の方法。
  46. ソースドメイン内に変数を作成することと、
    条件で前記変数を制約することと、
    前記変数を前記ターゲット概念にマッピングすることをさらに備えることを特徴とする請求項44に記載の方法。
  47. 前記変数は、暗黙の作成および明示的作成のうち少なくとも一方で作成されることを特徴とする請求項46に記載の方法。
  48. 前記変数は空の結果セットを表すことを特徴とする請求項46に記載の方法。
  49. 前記マッピングは、1つまたは複数の中間マッピングステージを介して前記ソースデータおよびターゲットデータとの間でスタック可能であることを特徴とする請求項44に記載の方法。
  50. 前記ソースと前記ターゲットとの間のマッピングに対する最適な経路を選択することをさらに備えることを特徴とする請求項44に記載の方法。
  51. 前記最適な経路は、前記経路内の利用可能な帯域幅と中断の少なくとも一方に基づき中央制御エンティティにより選択されることを特徴とする請求項50に記載の方法。
  52. 複数の前記データソースと複数の前記データターゲットとの間の最適な経路を選択することに対する応答としてマッピングアルゴリズムにアクセスすることをさらに備えることを特徴とする請求項44に記載の方法。
  53. 前記マッピングアルゴリズムは、前記ソースデータおよび前記ターゲットデータの構造に関連付けられていることを特徴とする請求項52に記載の方法。
  54. 任意のデータモデルの間のデータのマッピングを円滑にするシステムであって、
    ソースのデータソースのソース概念を表すソースメタデータとターゲットのデータソースのターゲット概念を表すターゲットメタデータを受け取る手段と、
    前記ソースメタデータおよび前記ターゲットメタデータに基づいて前記ソースとターゲットのデータソースの間で概念をマッピングする手段を備えることを特徴とするシステム。
  55. マッピングする前記手段は、前記データソース間の前記同じ概念を関係付け、マッピングするマッピング手段を含むことを特徴とする請求項54に記載のシステム。
JP2004194758A 2003-08-29 2004-06-30 任意のデータモデル用のマッピングアーキテクチャ Expired - Fee Related JP4847689B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/652,214 US7739223B2 (en) 2003-08-29 2003-08-29 Mapping architecture for arbitrary data models
US10/652,214 2003-08-29

Publications (3)

Publication Number Publication Date
JP2005327232A true JP2005327232A (ja) 2005-11-24
JP2005327232A6 JP2005327232A6 (ja) 2007-09-13
JP4847689B2 JP4847689B2 (ja) 2011-12-28

Family

ID=34194672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004194758A Expired - Fee Related JP4847689B2 (ja) 2003-08-29 2004-06-30 任意のデータモデル用のマッピングアーキテクチャ

Country Status (5)

Country Link
US (1) US7739223B2 (ja)
EP (1) EP1519266A3 (ja)
JP (1) JP4847689B2 (ja)
KR (1) KR101159311B1 (ja)
CN (1) CN100468396C (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179146A (ja) * 2005-12-27 2007-07-12 Hitachi Ltd データスキーマのマッピングプログラム及び計算機システム
JP2011258225A (ja) * 2011-08-10 2011-12-22 Fujitsu Ltd データ統合装置、データ統合方法およびデータ統合プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2012514815A (ja) * 2009-01-08 2012-06-28 ニューヨーク マーカンタイル エクスチェンジ インコーポレイテッド 取引マッチングシステムにおける暗示の注文の決定
US8280840B2 (en) 2006-01-18 2012-10-02 Fujitsu Limited Data integration apparatus, data integration method, and computer product
JP2013037726A (ja) * 2012-11-14 2013-02-21 Fujitsu Ltd データ統合装置、データ統合方法およびデータ統合プログラム
JP2015527655A (ja) * 2012-07-24 2015-09-17 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
JP2016525734A (ja) * 2013-05-17 2016-08-25 オラクル・インターナショナル・コーポレイション Etlマップ設計のためのプロジェクタおよびセレクタコンポーネントタイプの使用
JP2017504291A (ja) * 2013-11-12 2017-02-02 エスエムエイ ソーラー テクノロジー アクティエンゲゼルシャフトSMA Solar Technology AG ゲートウェイを介する複数のエネルギー生成システムとのシステム制御ユニットの通信のための方法、及び、対応して構成され、プログラミングされるデータサーバ
WO2018146716A1 (ja) * 2017-02-07 2018-08-16 株式会社日立製作所 データ管理方法及び計算機
US10191863B2 (en) 2014-03-14 2019-01-29 Ab Initio Technology Llc Mapping attributes of keyed entities
US10216814B2 (en) 2013-05-17 2019-02-26 Oracle International Corporation Supporting combination of flow based ETL and entity relationship based ETL

Families Citing this family (232)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019797A1 (en) * 2000-02-16 2002-02-14 Rocky Stewart Message routing system for enterprise wide electronic collaboration
US8412746B2 (en) 2001-05-25 2013-04-02 International Business Machines Corporation Method and system for federated querying of data sources
US20060064666A1 (en) 2001-05-25 2006-03-23 Amaru Ruth M Business rules for configurable metamodels and enterprise impact analysis
US7099885B2 (en) * 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US7546606B2 (en) * 2001-10-18 2009-06-09 Bea Systems, Inc. System and method using a connector architecture for application integration
US7516447B2 (en) * 2002-02-22 2009-04-07 Bea Systems, Inc. Methods and apparatus for building, customizing and using software abstractions of external entities
US7136872B2 (en) * 2002-04-16 2006-11-14 International Business Machines Corporation Method, system, and article of manufacture for transferring structured data between different data stores
US7155438B2 (en) 2002-05-01 2006-12-26 Bea Systems, Inc. High availability for event forwarding
US7257645B2 (en) * 2002-05-01 2007-08-14 Bea Systems, Inc. System and method for storing large messages
US20040078440A1 (en) * 2002-05-01 2004-04-22 Tim Potter High availability event topic
US7676538B2 (en) 2002-05-02 2010-03-09 Bea Systems, Inc. Systems and methods for application view transactions
US7484224B2 (en) * 2002-05-02 2009-01-27 Bae Systems, Inc. Adapter deployment without recycle
US7222148B2 (en) 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US7004836B2 (en) * 2003-01-31 2006-02-28 Igt Gaming device having a die or dice directly associated with the reels in the primary game
US7774697B2 (en) 2003-02-25 2010-08-10 Bea Systems, Inc. System and method for structuring distributed applications
US7584474B2 (en) * 2003-02-25 2009-09-01 Bea Systems, Inc. Systems and methods for transaction chaining
US7293038B2 (en) 2003-02-25 2007-11-06 Bea Systems, Inc. Systems and methods for client-side filtering of subscribed messages
US20040167915A1 (en) * 2003-02-25 2004-08-26 Bea Systems, Inc. Systems and methods for declaratively transforming data objects between disparate representations
US8032860B2 (en) 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US7539985B2 (en) * 2003-02-26 2009-05-26 Bea Systems, Inc. Systems and methods for dynamic component versioning
US7076772B2 (en) * 2003-02-26 2006-07-11 Bea Systems, Inc. System and method for multi-language extensible compiler framework
US20050108682A1 (en) * 2003-02-26 2005-05-19 Bea Systems, Inc. Systems for type-independent source code editing
US20040230955A1 (en) * 2003-02-26 2004-11-18 Bea Systems, Inc. System for multi-language debugging
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7650276B2 (en) 2003-02-26 2010-01-19 Bea Systems, Inc. System and method for dynamic data binding in distributed applications
US7444620B2 (en) * 2003-02-28 2008-10-28 Bea Systems, Inc. Systems and methods for a common runtime container framework
US7650592B2 (en) 2003-03-01 2010-01-19 Bea Systems, Inc. Systems and methods for multi-view debugging environment
US7403956B2 (en) 2003-08-29 2008-07-22 Microsoft Corporation Relational schema format
US8214256B2 (en) * 2003-09-15 2012-07-03 Time Warner Cable Inc. System and method for advertisement delivery within a video time shifting architecture
US7386841B2 (en) * 2003-11-06 2008-06-10 International Business Machines Corporation Technique for determining a target data type in a heterogeneous multi-level environment
KR100521742B1 (ko) * 2003-12-17 2005-10-17 한국전자통신연구원 엑스엠엘 문서의 구조 및 속성 정보의 손실 없이 엑스엠엘문서를 원격 서버로 복제하는 엑스엠엘 데이터베이스이중화 장치 및 그 방법
US9053149B2 (en) 2003-12-23 2015-06-09 Open Text S.A. Method and system to provide composite view of components
US7689542B2 (en) * 2004-01-13 2010-03-30 Oracle International Corporation Dynamic return type generation in a database system
US7822708B1 (en) * 2004-01-28 2010-10-26 Oracle America, Inc. Global attribute mapping data in an enterprise information system
US7228312B2 (en) * 2004-03-09 2007-06-05 Microsoft Corporation Transformation tool for mapping XML to relational database
AU2005223867A1 (en) * 2004-03-19 2005-09-29 Stayton D. Addison Methods and systems for transaction compliance monitoring
US7937319B2 (en) * 2005-03-21 2011-05-03 Oversight Technologies, Inc. Methods and systems for compliance monitoring knowledge base
US8073879B2 (en) * 2004-03-25 2011-12-06 Microsoft Corporation Systems and methods that transform constructs from domain to domain
US7590639B1 (en) 2004-04-29 2009-09-15 Sap Ag System and method for ordering a database flush sequence at transaction commit
US7653651B1 (en) 2004-04-29 2010-01-26 Sap Ag System and method for transparent persistence management
US7469256B1 (en) 2004-04-29 2008-12-23 Sap Ag Cached persistent data management through state tracking
US7296028B1 (en) 2004-04-30 2007-11-13 Sap Ag System and method for mapping object-oriented program code to a database layer
US7827205B2 (en) * 2004-05-27 2010-11-02 International Business Machines Corporation Bi-directional data mapping tool
US20090300037A1 (en) * 2004-08-12 2009-12-03 Amdocs (Israel) Ltd. Enhanced database structure configuration
US7299237B1 (en) * 2004-08-19 2007-11-20 Sun Microsystems, Inc. Dynamically pipelined data migration
US8694532B2 (en) * 2004-09-17 2014-04-08 First American Data Co., Llc Method and system for query transformation for managing information from multiple datasets
US9171100B2 (en) 2004-09-22 2015-10-27 Primo M. Pettovello MTree an XPath multi-axis structure threaded index
US7730027B2 (en) * 2004-12-16 2010-06-01 Sap Ag Graphical transformation of data
US7526499B2 (en) * 2004-12-22 2009-04-28 International Business Machines Corporation Defining and generating a viewtype for a base model
US7409408B2 (en) * 2004-12-22 2008-08-05 International Business Machines Corporation Using ViewTypes for accessing instance data structured by a base model
US7620641B2 (en) * 2004-12-22 2009-11-17 International Business Machines Corporation System and method for context-sensitive decomposition of XML documents based on schemas with reusable element/attribute declarations
US7389304B2 (en) * 2004-12-22 2008-06-17 International Business Machines Corporation Generating a relational view for a base model schema
US7650349B2 (en) * 2005-01-05 2010-01-19 Microsoft Corporation Prescribed navigation using topology metadata and navigation path
US9052879B2 (en) * 2005-02-18 2015-06-09 International Business Machines Corporation Mapping assurance method and apparatus for integrating systems
US7418715B2 (en) * 2005-04-08 2008-08-26 Microsoft Corporation System and method for producing and communicating requested data among networked application programs
WO2006110983A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited System and method for accessing multiple data sources by mobile applications
US7548927B2 (en) 2005-04-21 2009-06-16 Microsoft Corporation Abstracted metadata policy component and related architecture
US8135750B2 (en) * 2005-04-22 2012-03-13 Microsoft Corporation Efficiently describing relationships between resources
US7793260B2 (en) * 2005-04-25 2010-09-07 Microsoft Corporation System for defining and activating pluggable user interface components for a deployed application
US20060248129A1 (en) * 2005-04-29 2006-11-02 Wonderworks Llc Method and device for managing unstructured data
US20060253466A1 (en) * 2005-05-05 2006-11-09 Upton Francis R Iv Data Mapping Editor Graphical User Interface
US7734619B2 (en) * 2005-05-27 2010-06-08 International Business Machines Corporation Method of presenting lineage diagrams representing query plans
US20060277224A1 (en) * 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
EP1896995A4 (en) * 2005-06-24 2009-05-27 Orbital Technologies Inc SYSTEM AND METHOD OF TRANSLATION BETWEEN RELATIONAL DATA BANKING REQUESTS AND MULTIMIMUM DIVISIONAL DATA BANKING REQUESTS
US7930680B2 (en) * 2005-07-08 2011-04-19 Microsoft Corporation XML schema design for environment-specific types based on base types
US7743363B2 (en) * 2005-10-13 2010-06-22 Microsoft Corporation Extensible meta-data
US7603365B2 (en) * 2005-10-13 2009-10-13 International Business Machines Corporation System and method for capture and processing of overflow characters from user input
WO2007059465A2 (en) 2005-11-10 2007-05-24 Computer Associates Think, Inc. Server side application integration framework
US7664742B2 (en) * 2005-11-14 2010-02-16 Pettovello Primo M Index data structure for a peer-to-peer network
US7801844B2 (en) * 2005-11-23 2010-09-21 Microsoft Corporation Surrogate key generation and utilization
US7853590B2 (en) * 2005-12-02 2010-12-14 Microsoft Corporation Remote read-write access to disparate data stores
US7761786B2 (en) * 2005-12-06 2010-07-20 International Business Machines Corporation Reusable XPath validation expressions
US7831629B2 (en) * 2006-01-06 2010-11-09 Microsoft Corporation Method for building data encapsulation layers for highly variable schema
US20070174309A1 (en) * 2006-01-18 2007-07-26 Pettovello Primo M Mtreeini: intermediate nodes and indexes
US7519606B2 (en) * 2006-01-31 2009-04-14 International Business Machines Corporation Schema mapping specification framework
US8375063B2 (en) * 2006-01-31 2013-02-12 International Business Machines Corporation Method and program product for migrating data from a legacy system
US7529758B2 (en) * 2006-02-10 2009-05-05 International Business Machines Corporation Method for pre-processing mapping information for efficient decomposition of XML documents
US7680767B2 (en) 2006-03-23 2010-03-16 Microsoft Corporation Mapping architecture with incremental view maintenance
US7720803B2 (en) * 2006-03-28 2010-05-18 Sap Ag Mapping of a transactional data model to a reporting data model
US9495356B2 (en) * 2006-03-30 2016-11-15 International Business Machines Corporation Automated interactive visual mapping utility and method for validation and storage of XML data
KR100786261B1 (ko) 2006-04-03 2007-12-17 (주)위세아이텍 메타데이터 저장소에의 메타데이터 자동적재 방법
US9122719B2 (en) * 2006-04-28 2015-09-01 Bmc Software, Inc. Database application federation
US7526486B2 (en) * 2006-05-22 2009-04-28 Initiate Systems, Inc. Method and system for indexing information about entities with respect to hierarchies
US7702747B1 (en) * 2006-05-31 2010-04-20 Oracle America, Inc. Identity synchronization across multiple domains
EP2030134A4 (en) 2006-06-02 2010-06-23 Initiate Systems Inc SYSTEM AND METHOD FOR AUTOMATIC WEIGHT GENERATION FOR CHARACTERISTICITY
US7822714B2 (en) * 2006-06-07 2010-10-26 International Business Machines Corporation Extending configuration management databases using generic datatypes
US8285677B2 (en) * 2006-06-30 2012-10-09 International Business Machines Corporation Method and apparatus for propagating tables while preserving cyclic foreign key relationships
US7856415B2 (en) * 2006-09-01 2010-12-21 Dell Products L.P. System and method for mapping events into a data structure
US9202184B2 (en) 2006-09-07 2015-12-01 International Business Machines Corporation Optimizing the selection, verification, and deployment of expert resources in a time of chaos
US7685093B1 (en) 2006-09-15 2010-03-23 Initiate Systems, Inc. Method and system for comparing attributes such as business names
US8356009B2 (en) * 2006-09-15 2013-01-15 International Business Machines Corporation Implementation defined segments for relational database systems
US7698268B1 (en) 2006-09-15 2010-04-13 Initiate Systems, Inc. Method and system for filtering false positives
US8055603B2 (en) * 2006-10-03 2011-11-08 International Business Machines Corporation Automatic generation of new rules for processing synthetic events using computer-based learning processes
US20080294459A1 (en) * 2006-10-03 2008-11-27 International Business Machines Corporation Health Care Derivatives as a Result of Real Time Patient Analytics
US8145582B2 (en) * 2006-10-03 2012-03-27 International Business Machines Corporation Synthetic events for real time patient analysis
US8036979B1 (en) 2006-10-05 2011-10-11 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US7934207B2 (en) * 2006-12-19 2011-04-26 Microsoft Corporation Data schemata in programming language contracts
US8606666B1 (en) 2007-01-31 2013-12-10 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US8606626B1 (en) 2007-01-31 2013-12-10 Experian Information Solutions, Inc. Systems and methods for providing a direct marketing campaign planning environment
US8359339B2 (en) 2007-02-05 2013-01-22 International Business Machines Corporation Graphical user interface for configuration of an algorithm for the matching of data records
US7853611B2 (en) 2007-02-26 2010-12-14 International Business Machines Corporation System and method for deriving a hierarchical event based database having action triggers based on inferred probabilities
US7970759B2 (en) 2007-02-26 2011-06-28 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for pharmaceutical analysis
US7792774B2 (en) 2007-02-26 2010-09-07 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for analysis of chaotic events
US9430552B2 (en) 2007-03-16 2016-08-30 Microsoft Technology Licensing, Llc View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform
US8515926B2 (en) * 2007-03-22 2013-08-20 International Business Machines Corporation Processing related data from information sources
US8423514B2 (en) 2007-03-29 2013-04-16 International Business Machines Corporation Service provisioning
US8429220B2 (en) 2007-03-29 2013-04-23 International Business Machines Corporation Data exchange among data sources
US8370355B2 (en) 2007-03-29 2013-02-05 International Business Machines Corporation Managing entities within a database
US8321393B2 (en) 2007-03-29 2012-11-27 International Business Machines Corporation Parsing information in data records and in different languages
US8694518B2 (en) * 2007-06-14 2014-04-08 Colorquick, L.L.C. Method and apparatus for database mapping
US7720873B2 (en) * 2007-06-21 2010-05-18 International Business Machines Corporation Dynamic data discovery of a source data schema and mapping to a target data schema
US20110010214A1 (en) * 2007-06-29 2011-01-13 Carruth J Scott Method and system for project management
US20090006316A1 (en) * 2007-06-29 2009-01-01 Wenfei Fan Methods and Apparatus for Rewriting Regular XPath Queries on XML Views
US20090055364A1 (en) * 2007-08-21 2009-02-26 Microsoft Corporation Declarative views for mapping
US8150886B2 (en) * 2007-08-29 2012-04-03 Microsoft Corporation Multiple database entity model generation using entity models
US7788275B2 (en) * 2007-09-18 2010-08-31 Microsoft Corporation Customization of relationship traversal
US8112738B2 (en) * 2007-09-26 2012-02-07 Sap Ag Apparatus and method of customizable model import and export to and from XML schema formats
EP2198374A4 (en) 2007-09-28 2013-07-17 Ibm METHOD AND SYSTEM FOR ASSOCIATING DATA SETS IN SEVERAL LANGUAGES
EP2193415A4 (en) * 2007-09-28 2013-08-28 Ibm METHOD AND SYSTEM FOR ANALYZING A SYSTEM FOR THE ADJUSTMENT OF DATA SETS
US8713434B2 (en) 2007-09-28 2014-04-29 International Business Machines Corporation Indexing, relating and managing information about entities
US7930262B2 (en) * 2007-10-18 2011-04-19 International Business Machines Corporation System and method for the longitudinal analysis of education outcomes using cohort life cycles, cluster analytics-based cohort analysis, and probabilistic data schemas
US20090150907A1 (en) * 2007-12-07 2009-06-11 Microsoft Corporation Mapping between disparate data models via anonymous functions
US7779051B2 (en) * 2008-01-02 2010-08-17 International Business Machines Corporation System and method for optimizing federated and ETL'd databases with considerations of specialized data structures within an environment having multidimensional constraints
US20090182595A1 (en) * 2008-01-15 2009-07-16 Milaski John J Operational Transformation for Analyzing Business Processes
US8209340B2 (en) * 2008-03-31 2012-06-26 Microsoft Corporation Efficient functional representation of result shaping
US20100076952A1 (en) * 2008-09-05 2010-03-25 Xuejun Wang Self contained multi-dimensional traffic data reporting and analysis in a large scale search hosting system
US20100076979A1 (en) * 2008-09-05 2010-03-25 Xuejun Wang Performing search query dimensional analysis on heterogeneous structured data based on relative density
US8290923B2 (en) * 2008-09-05 2012-10-16 Yahoo! Inc. Performing large scale structured search allowing partial schema changes without system downtime
CN101398922A (zh) * 2008-10-21 2009-04-01 金蝶软件(中国)有限公司 数据同步方法及装置
US20100106684A1 (en) * 2008-10-26 2010-04-29 Microsoft Corporation Synchronization of a conceptual model via model extensions
US8423523B2 (en) * 2008-11-13 2013-04-16 SAP France S.A. Apparatus and method for utilizing context to resolve ambiguous queries
US8626800B2 (en) * 2008-12-09 2014-01-07 International Business Machines Corporation Synchronization of artifacts across different domains
US8176063B2 (en) * 2009-03-12 2012-05-08 Siemens Product Lifecycle Management Software Inc. System and method for non-overwriting extensible mapping
US8676808B2 (en) 2009-07-09 2014-03-18 Dillon Software Services, Llc Data store interface that facilitates distribution of application functionality across a multi-tier client-server architecture
US20110022978A1 (en) * 2009-07-23 2011-01-27 Rockwell Automation Technologies, Inc. Intelligent device framework
US20110046975A1 (en) * 2009-08-21 2011-02-24 Cerner Innovation, Inc. Dynamically adjusted rules-based decision support using site-specific mapped values
US8688752B2 (en) * 2009-08-28 2014-04-01 Adobe Sytems Incorporated Method and system for deploying a model-based application to an application server
KR101660348B1 (ko) * 2009-09-16 2016-09-27 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8631028B1 (en) 2009-10-29 2014-01-14 Primo M. Pettovello XPath query processing improvements
US9741017B2 (en) 2009-12-08 2017-08-22 Tripwire, Inc. Interpreting categorized change information in order to build and maintain change catalogs
US8996684B2 (en) * 2009-12-08 2015-03-31 Tripwire, Inc. Scoring and interpreting change data through inference by correlating with change catalogs
US8600996B2 (en) * 2009-12-08 2013-12-03 Tripwire, Inc. Use of inference techniques to facilitate categorization of system change information
US9305270B2 (en) * 2009-12-16 2016-04-05 Sap Se Synchronization of recipe structures and bill of materials including the adjustment to manufacturing requirements
US8417726B2 (en) * 2009-12-16 2013-04-09 Sap Aktiengesellschaft Guided structure synchronization
US8478705B2 (en) 2010-01-15 2013-07-02 International Business Machines Corporation Portable data management using rule definitions
US8875129B2 (en) * 2010-02-05 2014-10-28 Tripwire, Inc. Systems and methods for monitoring and alerting events that virtual machine software produces in a virtual infrastructure
US8566823B2 (en) 2010-02-05 2013-10-22 Tripwire, Inc. Systems and methods for triggering scripts based upon an alert within a virtual infrastructure
US8868987B2 (en) * 2010-02-05 2014-10-21 Tripwire, Inc. Systems and methods for visual correlation of log events, configuration changes and conditions producing alerts in a virtual infrastructure
EP2577552A4 (en) * 2010-06-02 2014-03-12 Hewlett Packard Development Co DYNAMIC MULTIDIMENSIONAL SCHEMES USED FOR MONITORING EVENTS
EP2513785B1 (en) 2010-06-03 2017-06-14 International Business Machines Corporation Method and system of adapting a data model to a user interface component
US9330115B2 (en) * 2010-08-06 2016-05-03 International Business Machines Corporation Automatically reviewing information mappings across different information models
US20120036497A1 (en) * 2010-08-09 2012-02-09 Computer Associates Think, Inc. Integrity check while committing changes from an integrated development environment to a source code control system
US8478786B2 (en) 2010-09-14 2013-07-02 Microsoft Corporation Automatic layout derivation and implementation
US8666998B2 (en) 2010-09-14 2014-03-04 International Business Machines Corporation Handling data sets
US9460189B2 (en) * 2010-09-23 2016-10-04 Microsoft Technology Licensing, Llc Data model dualization
CN103154940A (zh) * 2010-10-04 2013-06-12 瑞典爱立信有限公司 数据收集系统中的数据模型模式更新
US10318877B2 (en) 2010-10-19 2019-06-11 International Business Machines Corporation Cohort-based prediction of a future event
US8818963B2 (en) 2010-10-29 2014-08-26 Microsoft Corporation Halloween protection in a multi-version database system
US8949166B2 (en) 2010-12-16 2015-02-03 International Business Machines Corporation Creating and processing a data rule for data quality
US9135319B2 (en) * 2010-12-28 2015-09-15 Sap Se System and method for executing transformation rules
US20120240098A1 (en) * 2011-03-18 2012-09-20 Viacom International, Inc. Software Development and Publishing Platform
US9396284B2 (en) * 2011-05-18 2016-07-19 Oracle International Corporation Method and system for implementing efficient updatable relational views over XML data
KR20120135782A (ko) * 2011-06-07 2012-12-17 한국과학기술정보연구원 메타 데이터 변환 방법 및 이에 적합한 장치
US9122720B2 (en) * 2011-06-14 2015-09-01 Microsoft Technology Licensing, Llc Enriching database query responses using data from external data sources
US9244956B2 (en) 2011-06-14 2016-01-26 Microsoft Technology Licensing, Llc Recommending data enrichments
US9147195B2 (en) 2011-06-14 2015-09-29 Microsoft Technology Licensing, Llc Data custodian and curation system
US8898104B2 (en) * 2011-07-26 2014-11-25 International Business Machines Corporation Auto-mapping between source and target models using statistical and ontology techniques
US9542432B2 (en) 2011-09-30 2017-01-10 Oracle International Corporation Systems and methods for multitenancy data
US9529576B2 (en) * 2011-09-30 2016-12-27 Oracle International Corporation Systems and methods for object to XML mappings
US8954461B2 (en) 2011-09-30 2015-02-10 Oracle International Corporation Systems and methods for object to relational mapping extensions
US9177033B2 (en) 2011-09-30 2015-11-03 Oracle International Corporation Systems and methods for composite persistence units
US8626799B2 (en) 2011-10-03 2014-01-07 International Business Machines Corporation Mapping data structures
US10546057B2 (en) 2011-10-28 2020-01-28 Microsoft Technology Licensing, Llc Spreadsheet program-based data classification for source target mapping
CN103294462A (zh) * 2012-03-05 2013-09-11 阿里巴巴集团控股有限公司 对象映射处理方法、映射处理器和对象映射处理系统
CN102622002B (zh) * 2012-04-01 2014-04-02 广州信邦汽车装备制造有限公司 无线智能扭矩管理系统
CN102800014A (zh) * 2012-07-13 2012-11-28 北京华胜天成科技股份有限公司 一种用于供应链融资的金融数据处理方法
CN103631816A (zh) * 2012-08-27 2014-03-12 阿里巴巴集团控股有限公司 一种跨数据源的业务模型的配置、应用方法和设备
KR101535703B1 (ko) 2012-09-28 2015-07-09 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법
US9507837B2 (en) * 2012-10-01 2016-11-29 Oracle International Corporation Reference data segmentation from single to multiple tables
US10089351B2 (en) * 2012-12-04 2018-10-02 International Business Machines Corporation Enabling business intelligence applications to query semantic models
US9195712B2 (en) 2013-03-12 2015-11-24 Microsoft Technology Licensing, Llc Method of converting query plans to native code
US11074231B1 (en) * 2013-03-15 2021-07-27 Informatica Llc Validating modifications to mapping statements for processing hierarchical data structures
US9514244B2 (en) 2013-04-29 2016-12-06 International Business Machines Corporation Dynamic assignment of business logic based on schema mapping metadata
CN103399964B (zh) * 2013-08-23 2017-02-08 武汉大学 一种支持对地观测数据元数据注册的映射方法及系统
CN103605699A (zh) * 2013-11-07 2014-02-26 远光软件股份有限公司 一种数据关联配置方法及装置
GB2521198A (en) * 2013-12-13 2015-06-17 Ibm Refactoring of databases to include soft type information
US10262362B1 (en) 2014-02-14 2019-04-16 Experian Information Solutions, Inc. Automatic generation of code for attributes
US10474645B2 (en) 2014-02-24 2019-11-12 Microsoft Technology Licensing, Llc Automatically retrying transactions with split procedure execution
CN105447057B (zh) * 2014-09-28 2019-03-22 克拉玛依红有软件有限责任公司 基于业务逻辑模型的模型变换方法及系统
CN105740272B (zh) * 2014-12-10 2019-05-31 博雅网络游戏开发(深圳)有限公司 资源文件搜索方法和系统
CN105760372A (zh) * 2014-12-15 2016-07-13 中兴通讯股份有限公司 面向对象模型数据的转换方法及转换装置
US10242019B1 (en) 2014-12-19 2019-03-26 Experian Information Solutions, Inc. User behavior segmentation using latent topic detection
CN105786925B (zh) * 2014-12-26 2021-02-26 远光软件股份有限公司 基于参考模型进行动态数据建模的方法及装置
CN104598592A (zh) * 2015-01-20 2015-05-06 北京仿真中心 一种基于xml的数据库自定义方法及系统
US9910665B2 (en) * 2015-02-13 2018-03-06 Sap Se Simultaneous operation of multiple versions of an application using bidirectional synchronization and separated read write channels
US10810225B2 (en) * 2015-03-10 2020-10-20 The Boeing Company System and method for large scale data processing of source data
CN104731911A (zh) * 2015-03-24 2015-06-24 浪潮集团有限公司 一种数据表与实体类的动态映射及转换方法
US10120885B2 (en) * 2015-06-01 2018-11-06 Sap Se Smart restrict mode for data definition statements
WO2017005817A1 (en) * 2015-07-06 2017-01-12 Nec Europe Ltd. Apparatus and method for connecting at least two systems by converting data
US10318544B2 (en) * 2015-08-20 2019-06-11 International Business Machines Corporation Transforming and loading data from a source data system to a target data system
US11138223B2 (en) * 2015-09-09 2021-10-05 LiveData, Inc. Techniques for uniting multiple databases and related systems and methods
US10599718B2 (en) 2015-10-09 2020-03-24 Software Ag Systems and/or methods for graph based declarative mapping
CN105389190B (zh) * 2015-12-08 2019-05-24 华为技术有限公司 一种操作系统启动的方法、装置及系统
US11442953B2 (en) 2016-03-31 2022-09-13 Mckesson Corporation Methods and apparatuses for improved data ingestion using standardized plumbing fields
US10657115B2 (en) * 2016-03-31 2020-05-19 Mckesson Corporation Methods and apparatuses for improved data modeling using a relational database management system
CN106095409A (zh) * 2016-05-31 2016-11-09 浪潮通用软件有限公司 一种数据映射的装置及方法
CN107688581B (zh) * 2016-08-04 2021-03-30 北京京东尚科信息技术有限公司 数据模型的处理方法及装置
US10915519B2 (en) * 2016-09-09 2021-02-09 Salesforce.Com, Inc. Processing offline updates to records of a database system
US10248736B1 (en) * 2016-09-19 2019-04-02 Sprint Communications Company L.P. Data loader and mapper tool
US9946777B1 (en) * 2016-12-19 2018-04-17 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US20200065314A1 (en) * 2017-01-06 2020-02-27 University Of Florida Research Foundation, Inc. A method, apparatus and computer program product for user-directed database configuration, and automated mining and conversion of data
CN106682235A (zh) * 2017-01-18 2017-05-17 济南浪潮高新科技投资发展有限公司 一种异构数据映射系统及方法
CN106910146B (zh) * 2017-02-28 2021-10-08 东北师范大学 一种基于流式处理技术的异构教育数据交换平台及方法
CA3062604A1 (en) 2017-05-12 2018-11-15 Bae Systems Plc A system for improved data storage and retrieval
US11119991B2 (en) * 2017-05-12 2021-09-14 Bae Systems Plc System for data storage and retrieval
CA3062397A1 (en) 2017-05-12 2018-11-15 Bae Systems Plc A system for improved data storage and retrieval
US11068451B2 (en) * 2017-08-28 2021-07-20 Micro Focus Llc Database column refresh via replacement
KR102110483B1 (ko) * 2018-03-02 2020-05-28 스마트팩토리 주식회사 데이터 처리 장치 및 방법
CN108664546B (zh) * 2018-03-26 2020-12-25 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) Xml数据结构转换方法和装置
CN108520049B (zh) * 2018-03-30 2021-12-17 新华三大数据技术有限公司 关系图绘制方法及装置
US10956386B2 (en) 2018-03-30 2021-03-23 Mckesson Corporation Methods and apparatuses for automated performance tuning of a data modeling platform
US20200004848A1 (en) * 2018-06-28 2020-01-02 AtScale, Inc. Semantic layer generation
CN109189774A (zh) * 2018-09-14 2019-01-11 南威软件股份有限公司 一种基于脚本规则的用户标签转化方法及系统
US11568011B2 (en) * 2018-11-01 2023-01-31 Rewardstyle, Inc. System and method for improved searching across multiple databases
CN109446380A (zh) * 2018-11-02 2019-03-08 鲁班(北京)电子商务科技有限公司 一种基于xml描述两个数据表关系的方法
US11934456B2 (en) * 2019-02-08 2024-03-19 Intuit, Inc. Unified knowledge graphs
WO2021108552A1 (en) * 2019-11-26 2021-06-03 Reliaquest Holdings, Llc Threat mitigation system and method
JP7216680B2 (ja) * 2020-03-17 2023-02-01 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US11567920B2 (en) * 2020-09-15 2023-01-31 Sap Se Master data mapping scheme permitting querying
CN112765247B (zh) * 2021-01-04 2023-02-21 光大兴陇信托有限责任公司 一种基于混合映射的接口元数据管理方法、装置、设备
CN113282276B (zh) * 2021-05-11 2023-02-17 北京航空航天大学 一种模型的映射方法和装置
US11880365B2 (en) 2022-03-23 2024-01-23 Bank Of America Corporation Multimodal and distributed database system structured for dynamic latency reduction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091494A (ja) * 1996-09-19 1998-04-10 Hitachi Ltd データベース操作プログラムの変換方法および変換装置
JPH11232154A (ja) * 1998-02-16 1999-08-27 Nippon Telegr & Teleph Corp <Ntt> 複数データベース異種性解消検索方法および装置と複数データベース異種性解消検索プログラムを記録した記録媒体
JP2003233528A (ja) * 2002-01-15 2003-08-22 Unicorn Solutions Inc あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US663519A (en) * 1899-05-22 1900-12-11 Rudolf Willy Max Schiemann Electric rail-brake.
US5315709A (en) * 1990-12-03 1994-05-24 Bachman Information Systems, Inc. Method and apparatus for transforming objects in data models
GB9406564D0 (en) 1994-03-31 1994-05-25 Int Computers Ltd Database management system
JPH07295815A (ja) 1994-04-26 1995-11-10 Internatl Business Mach Corp <Ibm> 永続オブジェクトのマッピング・システム及び方法
US6061515A (en) 1994-07-18 2000-05-09 International Business Machines Corporation System and method for providing a high level language for mapping and accessing objects in data stores
US5710917A (en) 1995-06-07 1998-01-20 International Business Machines Corporation Method for deriving data mappings and data aliases
US6018743A (en) 1996-10-04 2000-01-25 International Business Machines Corporation Framework for object-oriented interface to record file data
US6006230A (en) 1997-01-15 1999-12-21 Sybase, Inc. Database application development system with improved methods for distributing and executing objects across multiple tiers
US5926833A (en) 1997-03-24 1999-07-20 International Business Machines Corporation Method and system allowing direct data access to a shared data storage subsystem by heterogeneous computing systems
US5987247A (en) 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US5937409A (en) 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US6076090A (en) 1997-11-26 2000-06-13 International Business Machines Corporation Default schema mapping
US6038565A (en) 1998-01-16 2000-03-14 International Business Machines Corporation Object oriented data format mapping mechanism
US6041386A (en) 1998-02-10 2000-03-21 International Business Machines Corporation Data sharing between system using different data storage formats
US6154748A (en) 1998-04-07 2000-11-28 International Business Machines Corporation Method for visually mapping data between different record formats
US6769124B1 (en) * 1998-07-22 2004-07-27 Cisco Technology, Inc. Persistent storage of information objects
US6569207B1 (en) 1998-10-05 2003-05-27 International Business Machines Corporation Converting schemas to component models
US6370541B1 (en) 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6581062B1 (en) 2000-03-02 2003-06-17 Nimble Technology, Inc. Method and apparatus for storing semi-structured data in a structured manner
US6631519B1 (en) 2000-03-30 2003-10-07 Microsoft Corporation Automated schema and interface generation
US6853997B2 (en) 2000-06-29 2005-02-08 Infoglide Corporation System and method for sharing, mapping, transforming data between relational and hierarchical databases
US20020103793A1 (en) 2000-08-02 2002-08-01 Daphne Koller Method and apparatus for learning probabilistic relational models having attribute and link uncertainty and for performing selectivity estimation using probabilistic relational models
US6795868B1 (en) * 2000-08-31 2004-09-21 Data Junction Corp. System and method for event-driven data transformation
US7873649B2 (en) 2000-09-07 2011-01-18 Oracle International Corporation Method and mechanism for identifying transaction on a row of data
US20030055828A1 (en) 2001-03-29 2003-03-20 Koch Kevin S. Methods for synchronizing on-line and off-line transcript projects
US20030101170A1 (en) 2001-05-25 2003-05-29 Joseph Edelstein Data query and location through a central ontology model
US6907433B2 (en) 2001-08-01 2005-06-14 Oracle International Corp. System and method for managing object to relational one-to-many mapping
US20030074358A1 (en) * 2001-09-24 2003-04-17 Siamak Sarbaz Integration, management and processing of network data from disparate sources
US7509248B2 (en) * 2001-11-14 2009-03-24 Intel Corporation Generic persistence engine
US7149746B2 (en) * 2002-05-10 2006-12-12 International Business Machines Corporation Method for schema mapping and data transformation
US7574652B2 (en) * 2002-06-20 2009-08-11 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US20040044959A1 (en) 2002-08-30 2004-03-04 Jayavel Shanmugasundaram System, method, and computer program product for querying XML documents using a relational database system
US7136843B2 (en) 2002-10-23 2006-11-14 International Business Machines Corporation Object-oriented framework for reasoning having pluggable inference engines
US6859397B2 (en) * 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
US7403956B2 (en) 2003-08-29 2008-07-22 Microsoft Corporation Relational schema format
US8285876B2 (en) 2004-03-19 2012-10-09 International Business Machines Corporation J2EE application versioning strategy
US7685155B2 (en) 2004-03-23 2010-03-23 Microsoft Corporation System and method of providing and utilizing an object schema to facilitate mapping between disparate domains

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091494A (ja) * 1996-09-19 1998-04-10 Hitachi Ltd データベース操作プログラムの変換方法および変換装置
JPH11232154A (ja) * 1998-02-16 1999-08-27 Nippon Telegr & Teleph Corp <Ntt> 複数データベース異種性解消検索方法および装置と複数データベース異種性解消検索プログラムを記録した記録媒体
JP2003233528A (ja) * 2002-01-15 2003-08-22 Unicorn Solutions Inc あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179146A (ja) * 2005-12-27 2007-07-12 Hitachi Ltd データスキーマのマッピングプログラム及び計算機システム
US8280840B2 (en) 2006-01-18 2012-10-02 Fujitsu Limited Data integration apparatus, data integration method, and computer product
US8639670B2 (en) 2006-01-18 2014-01-28 Fujitsu Limited Data integration apparatus, data integration method, and computer product
JP2012514815A (ja) * 2009-01-08 2012-06-28 ニューヨーク マーカンタイル エクスチェンジ インコーポレイテッド 取引マッチングシステムにおける暗示の注文の決定
US11908010B2 (en) 2009-01-08 2024-02-20 New York Mercantile Exchange, Inc. Determination of implied orders in a trade matching system
US11216878B2 (en) 2009-01-08 2022-01-04 New York Mercantile Exchange, Inc. Determination of implied orders in a trade matching system
US10395316B2 (en) 2009-01-08 2019-08-27 Chicago Mercantile Exchange Inc. Determination of implied orders in a trade matching system
JP2011258225A (ja) * 2011-08-10 2011-12-22 Fujitsu Ltd データ統合装置、データ統合方法およびデータ統合プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2015527655A (ja) * 2012-07-24 2015-09-17 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
JP2013037726A (ja) * 2012-11-14 2013-02-21 Fujitsu Ltd データ統合装置、データ統合方法およびデータ統合プログラム
US10216814B2 (en) 2013-05-17 2019-02-26 Oracle International Corporation Supporting combination of flow based ETL and entity relationship based ETL
JP2016525734A (ja) * 2013-05-17 2016-08-25 オラクル・インターナショナル・コーポレイション Etlマップ設計のためのプロジェクタおよびセレクタコンポーネントタイプの使用
JP2017504291A (ja) * 2013-11-12 2017-02-02 エスエムエイ ソーラー テクノロジー アクティエンゲゼルシャフトSMA Solar Technology AG ゲートウェイを介する複数のエネルギー生成システムとのシステム制御ユニットの通信のための方法、及び、対応して構成され、プログラミングされるデータサーバ
US10191862B2 (en) 2014-03-14 2019-01-29 Ab Initio Technology Llc Mapping attributes of keyed entities
US10191863B2 (en) 2014-03-14 2019-01-29 Ab Initio Technology Llc Mapping attributes of keyed entities
US11281596B2 (en) 2014-03-14 2022-03-22 Ab Initio Technology Llc Mapping attributes of keyed entities
JPWO2018146716A1 (ja) * 2017-02-07 2019-07-04 株式会社日立製作所 データ管理方法及び計算機
WO2018146716A1 (ja) * 2017-02-07 2018-08-16 株式会社日立製作所 データ管理方法及び計算機

Also Published As

Publication number Publication date
EP1519266A2 (en) 2005-03-30
CN100468396C (zh) 2009-03-11
KR20050022272A (ko) 2005-03-07
CN1604082A (zh) 2005-04-06
EP1519266A3 (en) 2007-12-26
KR101159311B1 (ko) 2012-06-22
JP4847689B2 (ja) 2011-12-28
US7739223B2 (en) 2010-06-15
US20050050068A1 (en) 2005-03-03

Similar Documents

Publication Publication Date Title
JP4847689B2 (ja) 任意のデータモデル用のマッピングアーキテクチャ
JP2005327232A6 (ja) 任意のデータモデル用のマッピングアーキテクチャ
US7734657B2 (en) Containment hierarchy in a database system
US7933913B2 (en) Secondary index and indexed view maintenance for updates to complex types
RU2421798C2 (ru) Модель данных для объектно-реляционных данных
US8392464B2 (en) Easily queriable software repositories
US7289997B1 (en) System and method for an extensible metadata driven application framework
US6947950B2 (en) Techniques for managing multiple hierarchies of data from a single interface
US7376658B1 (en) Managing cross-store relationships to data objects
US20080256124A1 (en) Schema mapping specification framework
US7613715B2 (en) Map and data location provider
KR20070121664A (ko) 데이터 저장 시스템에서 데이터를 조작하는 시스템 및 방법
US7426521B2 (en) Property and object validation in a database system
Jennings Professional ADO. NET 3.5 with LINQ and the Entity Framework
US20060095513A1 (en) Hypermedia management system
US7769750B2 (en) Metadata based hypermedia management system
Grinberg XML and JSON Recipes for SQL Server: A Problem-Solution Approach
Alanen et al. Version control of software models
Fisher et al. Using Spring with a Content Management System
Velinska et al. Performance of an XML DBMS as a Model Repository in Model-Driven Software Development
Grinberg XML and JSON Recipes for SQL Server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20110506

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110506

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110621

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

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

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

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

LAPS Cancellation because of no payment of annual fees