5 JSONリレーショナル二面性ビューの使用
二面性ビューでサポートされるドキュメントまたはドキュメントの一部を挿入(作成)、更新、削除および問合せることができます。二面性ビューに関する情報をリストできます。
通常、ドキュメント中心のアプリケーションは、SQL/JSONファンクションまたはOracle Database API for MongoDB、Simple Oracle Document Access (SODA)、Oracle REST Data Services (ORDS)などのクライアントAPIを使用して、JSONドキュメントを直接操作します。分析、レポート、機械学習などのデータベース・アプリケーションおよび機能は、SQL、PL/SQL、JavaScriptまたはC (Oracle Call Interface)を使用して同じデータを操作できます。
また、SQLおよびその他のデータベース・コードは、他のリレーショナル・データと同様に、二面性ビューの基礎となるリレーショナル表のデータに直接動作することもできます。これには、変更操作が含まれています。基礎となる表のデータに対する変更は、二面性ビューによって提供されるドキュメントに自動的に反映されます。例5-3に、これを示します。
その逆も同様であるため、ドキュメントまたはドキュメントの基礎となるデータに対する動作では、他方にも自動的に影響を与えます。これには、二面性ビューによって提供されるJSONドキュメントとリレーショナル・データの間の二面性が反映されています。
ドキュメント・ビューの基礎となる表に対する操作は、次のように、ビューでサポートされるドキュメントに自動的に影響します:
-
二面性ビューのルート(上位レベル)表に行の挿入を実行すると、新しいドキュメントがビューに挿入されます。たとえば、
driver表に行を挿入すると、ビューdriver_dvにドライバ・ドキュメントが挿入されます。ただし、表
driverはドライバ・ドキュメントのデータの一部のみを提供するため、その表でサポートされているドキュメント・フィールドのみ、データが移入されるため、ドキュメントの他のフィールドは欠落しているか空です。 -
ルート表からの行の削除を実行すると、ビューから対応するドキュメントが削除されます。
-
ルート表の行を更新すると、対応するドキュメントが更新されます。
行の挿入と同様に、その表データでサポートされるドキュメント・フィールドのみが更新され、他のフィールドは変更されません。
ノート:
JSONリレーショナル二面性ビューでサポートされるドキュメントまたはその基礎となる表データの更新は、そのデータの内容が変更されていない場合でも、データの一部の行が更新されたとSQLによってレポートされます。これは標準のSQL動作です。更新操作が成功すると、常に、ターゲットとする行が更新されたとレポートされます。これは、更新操作に付随するトリガーまたは行変換演算子が存在する可能性があり、それ自体がデータを変更できるという事実も示しています。
二面性ビュー自体に対する操作には、作成、削除、リスト、およびそれらに関するその他の情報のリストが含まれています。
-
二面性ビューの作成の例は、「二面性ビューの作成」を参照してください。
-
SQLコマンド
DROP VIEWを使用して、任意のビューの削除と同様に既存の二面性ビューを削除できます。二面性ビューは独立していますが、通常は共有データがあるドキュメントが含まれています。たとえば、二面性ビュー
driver_dvに影響を与えずに二面性ビューteam_dvを削除できます。ただし、二面性ビューは基礎となる表によって異なります。注意:
使用できないビューがレンダリングされるため、二面性ビューの基礎となる表は削除しないでください。
-
静的データ・ディクショナリ・ビューを使用して、既存の二面性ビューに関する情報を取得できます。「二面性ビューに関する情報の取得」を参照してください。
もちろん、JSONリレーショナル二面性ビューの基になる表をレプリケートできます。または(さらに)、Oracle GoldenGate論理レプリケーションを使用して、他のOracleデータベースおよびOracle以外のデータベース(ドキュメント・データベースやNoSQLキー/値データベースなど)に、二面性ビューによってサポートされているドキュメントをレプリケートできます。
参照:
-
二面性ビューのOracle GoldenGate論理レプリケーションの詳細は、Oracle JSONリレーション二面性およびGoldenGateデータ・ストリームを使用したビジネス・オブジェクトのレプリケートおよび特殊データ型の処理- JSON
-
二面性ビューの論理レプリケーションを有効化および無効化するためのSQL構文は、『Oracle AI Database SQL言語リファレンス』の「ALTER JSON RELATIONAL DUALITY VIEW」および「CREATE JSON RELATIONAL DUALITY VIEW」
ノート:
特に明示的に示されていないかぎり、次のようになります。
-
ここに示す例は、決して相互に依存するものではありません。特に、それらの間には暗黙的な順序付けはありません。
-
ここでの二面性ビューを使用する例では、「二面性ビューの作成」で定義したビューを使用します。これらのビューは、
UNNESTを使用して定義されています(例3-1、例3-3および例3-5)。 -
ここでの表を使用する例では、「カーレースの例、表」で定義した表を使用します。
_________________________________________________________
関連項目:
-
『Oracle AI Database SQL言語リファレンス』の「DROP VIEW」
-
製品ページSimple Oracle Document Access (SODA)およびガイドOracle AI Database Simple Oracle Document Access (SODA)の概要。
-
製品ページOracle Database API for MongoDBおよびガイドMongoDBのためのOracle AI Database API。
-
製品ページOracle REST Data Services (ORDS)および『Oracle REST Data Services開発者ガイド』