専用Exadataインフラストラクチャ上のAutonomous DatabaseでのJSONドキュメントの使用

Autonomous Database on Dedicated Exadata Infrastructureは、トランザクション、索引付け、宣言的問合せおよびビューを含むリレーショナル・データベースの機能を使用してJavaScriptオブジェクト表記法(JSON)データをネイティブにサポートしています。Autonomous Databaseでは、JSONドキュメントはリレーショナル・データと共存できます。

リレーショナル・データとは異なり、JSONデータは、データを定義するスキーマがなくても、データベースへの格納、索引付けおよび問合せを行うことができます。一般に、Autonomous DatabaseでJSONデータを作業するときには、次のタスクを実行します:
  1. is json format osonチェック制約を使用したJSON列の作成
  2. 列へのJSONデータの挿入、および
  3. JSONデータの問合せ
コード例の詳細な手順は、Oracle Database 19c JSON開発者ガイドAutonomous DatabaseでのJSONドキュメントの操作またはOracle Database 23ai JSON開発者ガイドを参照してください。

ノート:

SODAを使用してOracle Database 19cのコレクションにアクセスする場合、Oracleでは、データベースをリリース21以上にアップグレードするときにJSONデータ型の使用にスムーズに移行するために、Oracle Database 21c以降のインスタント・クライアントを使用することをお薦めします。

SQLおよびPL/SQL API

Autonomous Databaseを使用してJSONデータを格納する場合、Autonomous Databaseで使用可能なすべての機能を利用できます。JSONデータと非JSONデータを組み合せることができます。データベースに格納されたJSONデータには、Oracle Call Interface (OCI)、Microsoft .NET Framework、Java Database Connectivity (JDBC)を使用するなど、他のデータベース・データにアクセスするときと同じ方法でアクセスできます。SQLおよびPL/SQL APIを使用したJSONドキュメントの作業の詳細は、Oracle Database 19cまたはOracle Database 23aiJSONを参照してください。

MongoDBのためのOracle APIのサポート

Oracle Database API for MongoDBは、MongoDBワイヤ・プロトコルは、Oracle Databaseによって実行されるSQLステートメントに変換します。MongoDBスキル・セットを持つ開発者は、MongoDBプロトコルを理解するドライバおよびツールを使用するOracle Database用のJSONドキュメント・ストア・アプリケーションを記述できます。このAPIの詳細は、『Oracle Database API for MongoDB』MongoDBのためのOracle Database APIの概要を参照してください。

Autonomous DatabaseでMongoDB APIを有効化および使用する手順は、Oracle Autonomous DatabaseでのMongoDB APIの使用を参照してください。

Simple Oracle Document Access (SODA)

Oracleは、データベースに格納されたJSONデータにアクセスするためのSimple Oracle Document Access (SODA) APIのファミリも提供しています。SODAは、リレーショナル・データベースの機能や言語(SQLやPL/SQLなど)に関する知識なしでスキーマレス・アプリケーションを開発できるように設計されています。これにより、ドキュメントがデータベースにどのように格納されているかを知らなくても、ドキュメントのコレクションを作成してOracle Databaseに格納し、それを取得し、問い合せることができます。SODAの詳細は、ドキュメント・ストアとしてのOracleおよびSODAの概要を参照してください。

複数のSODA実装があります:
  • SODA for REST: 表現状態転送(REST)リクエストは、HTTPコールを実行できる任意の言語を使用して、収集およびドキュメント操作を実行します。
  • SODA for Java: Javaクラスおよびインタフェースは、データベース、コレクションおよびドキュメントを表します。
  • SODA for PL/SQL: PL/SQLオブジェクト型は、コレクションおよびドキュメントを表します。
  • SODA for C: Oracle Call Interface (OCI)のハンドルは、コレクションおよびドキュメントを表します。
  • SODA for Node.js: NoSQLスタイルSODA APIを使用して、SODAドキュメントを挿入、問合せおよび取得します。SodaDatabase、SodaCollection、SodaDocument、SodaDocumentCursor、SodaOperationなどのオブジェクトはそれぞれ、データベース、コレクション、ドキュメント、ドキュメント・カーソルおよび読取り/書込み操作を表します。
  • SODA for Python: NoSQLスタイルのcx_Oracleメソッドを使用して、SODAドキュメントを挿入、問合せおよび取得します。SodaDatabase、SodaCollection、SodaDocument、SodaDocumentCursor、SodaOperationなどのオブジェクトはそれぞれ、データベース、コレクション、ドキュメント、ドキュメント・カーソルおよび読取り/書込み操作を表します。
SODAドライバは、Autonomous Database「詳細」ページからダウンロードできます。
  • Autonomous Database「詳細」ページに移動します。専用Autonomous Databaseの詳細の表示を参照してください。
  • 「ツール」タブを開きます。
  • 「SODAドライバ」タイルを見つけて、「SODAドライバのダウンロードをクリックします。
  • 表示されたドライバ・リストから、選択したSODAドライバをダウンロードします。

SODAコレクション・メタデータ

SODAコレクションは、Autonomous Databaseの表またはビューに基づく一連のドキュメントです。デフォルトでは、SODAドキュメント・コレクションを作成するとOracle Database内に次のものが作成されます:
  • 永続的なデフォルト・コレクション・・メタデータ
  • SODAクライアントの接続先のデータベース・スキーマにコレクションを格納するための
コレクション・メタデータをカスタマイズして、デフォルトで提供される様々な動作を取得できます。Autonomous Databaseでカスタマイズできるメタデータは、ドキュメント・キー生成方法およびコンテンツ・メディア・タイプのみです。具体的には、JSONコンテンツの格納に使用する列(コンテンツ列)のSQLデータ型は変更できません。デフォルトおよびカスタマイズしたコレクション・メタデータの使用方法は、Autonomous DatabaseのSODAコレクション・メタデータを参照してください。

SODAおよびJSONの使用に関する制限事項

Autonomous DatabaseはSODAおよびJSONをサポートしていますが、次の制限があります:
  • SQL/JSONファンクションjson_existsを使用するSQLおよびPL/SQLコードでは、自動索引付けはサポートされていません。詳細は、Oracle Database 19cSQL/JSON条件JSON_EXISTSまたはOracle Database 23aiを参照してください。
  • SODAの例による問合せ(QBE)では、自動索引付けはサポートされていません。