2 カーレース二面性ビューの例の概要
ここでは、JSONリレーショナル二面性ビューの機能を示すためにF1カーレースのデータを使用します。このユースケースの例は、必要なJSONドキュメントの種類を分析することから始まります。次に、対応するエンティティとその関係、リレーショナル表およびそれらの表に基づいて構築される二面性ビューを定義します。
ノート:
二面性ビューを作成する別の方法では、既存の関連ドキュメント・セットを持つアプリケーションを移行して、二面性ビューを使用するようにできます。
そのために、適切な二面性ビューを自動的に推測して生成するJSON-to-Dualityマイグレータを使用できます。様々な種類のドキュメントを手動で分析して暗黙的なエンティティおよび関係を明らかにし、関連する二面性ビューとその基礎となる正規化された表を定義して移入する必要はありません。
マイグレータがすべて実行します。デフォルトでは、ビュー内またはビュー間で共有可能なドキュメント部分はすべて共有され、ビューは更新可能性が最大化するように定義されます。
『Oracle Databaseユーティリティ』のJSONから二面性への移行を参照してください。
カーレースの例では、3種類のJSONドキュメント(ドライバ、レース、チーム)を使用するドキュメント中心のアプリケーションを考えます。これらの種類のドキュメントのそれぞれは、データを別の種類と共有しています。次に例を示します。
-
ドライバ・ドキュメントには、ドライバに関する情報、ドライバのチームの識別情報およびドライバが参加したレースに関する情報が含まれています。
-
レース・ドキュメントには、特定のレースに関する情報に、表彰者(1位、2位、3位の勝者)に関する情報および各ドライバのレースでの結果が含まれています。これらのいずれにも、ドライバ名とチーム名が含まれています。レーシング・データは1シーズンのレース用です。
-
チーム・ドキュメントには、チームに関する情報に、チームのドライバに関する情報が含まれています。
このデータに対してアプリケーションが実行する操作には、次のものがあります。
-
データベースに対するドライバ、レースまたはチームの追加または削除
-
ドライバ、レースまたはチームの情報の更新
-
チームへのドライバの追加、チームからのドライバの削除、またはチーム間でのドライバの移動
-
ドライバおよびレース情報へのレース結果の追加
この例の目的は、すべての共通情報を共有することです。つまり、ドライバ二面性ビューのID番号302のドライバは、チーム・ビューのドライバ番号302と同じです。
基になる表からの同じデータを含めることで、2つの二面性ビューの間で共通となるデータの共有を指定します。
特定の二面性ビューを定義すると、ビューでサポートされるドキュメントへの挿入、削除または更新が可能かどうか、それらの制約のオーバーライド、サポートされているドキュメントでの特定のフィールドの挿入、削除または更新が可能かどうかを制御できます。デフォルトでは、二面性ビューは読取り専用です。ドキュメントの挿入、削除または更新は実行できません。
関連項目:
-
SQLの使用によるJSONリレーショナル二面性ビューの操作。このドキュメント内の例を反映するSQLスクリプトです
_________________________________________________________
- カーレースの例、JSONドキュメント
カーレースの例には、3種類のドキュメント(チーム・ドキュメント、ドライバ・ドキュメントおよびレース・ドキュメント)があります。 - カーレースの例、エンティティの関係
ドライバ、カーレースおよびチーム・エンティティが、それらの間の関係とともに提示されます。アプリケーションの二面性ビューの定義に必要な表の決定に役立つように、アプリケーション・ドキュメントに対応するエンティティを定義します。 - カーレースの例、表
正規化されたエンティティは、データベース表としてモデル化されます。エンティティ関係は、参加している複数の表の間の結合としてモデル化されます。表team
、driver
およびrace
は、カーレース・アプリケーションで使用されるチーム、ドライバおよびレースJSONドキュメントを提供およびサポートする二面性ビューを実装するために使用されます。