第II部 JSONデータの格納および管理
JSON列(ネイティブ・バイナリまたはテキスト)を使用してデータベース表を作成、パーティション化およびレプリケートできます。JSONスキーマを使用して、データが特定の形状および型を持つようにできます。テキストの場合、is json
チェック制約を使用して、整形式のJSONであることを確認できます(バイナリJSONは常に整形式です)。
- JSONデータの格納および管理の概要
JSONデータは、表の1つ以上の列に、単独でまたはリレーショナル列とともに格納できます。JSON
データ型をお薦めしますが、JSONをテキストで格納することもできます。テキストJSONデータを格納する場合は、SQL/JSON条件is json
を使用して、データが整形式であることを確認します。 - JSON列を含む表
JSONデータは、データベース表の列に格納できます。ユースケースが主にドキュメント中心である場合、ドキュメントAPIで最も簡単に使用できるように、文書をJSONコレクション表に格納できます。ただし、JSONデータは同じ方法でアクセス、問合せおよび更新できます。 - SQL/JSON条件IS JSONおよびIS NOT JSON
SQL/JSON条件is json
およびis not json
は補足的な条件です。これらは、引数が構文的に正しい(つまり、整形式の)JSONデータかどうかをテストします。オプションのキーワードVALIDATE
によって、データが特定のJSONスキーマに関しても有効かどうかをテストします。 - JSONコレクション
JSONコレクションは、一連のJSON文書を格納または提供するデータベース・オブジェクトです。クライアント・アプリケーションは通常、ドキュメントAPIによって提供される操作を使用して、コレクションとその文書を操作します。SQLを使用して操作することもできます。 - JSONスキーマ
JSON文書の構造と型情報を検証するために、JSONスキーマを作成できます。データは、スキーマ妥当なデータのみがJSON列に挿入されるように、その場で検証することも、チェック制約を使用して検証することもできます。 - JSONデータの文字セットおよび文字エンコーディング
テキストのJSONデータでは常にUnicode文字セットが使用されます。この点で、JSONデータの方がXMLデータより簡単に使用できます。これは、JSONデータ交換フォーマットの重要な部分です(RFC 8259)。Oracle Databaseで処理されるJSONデータでは、必要な文字セットの変換が自動的に行われます。 - JSONデータにLOB記憶域を使用する際の考慮事項
クライアントを使用してJSONデータをLOBインスタンスとして取得する場合の考慮事項など、JSONデータのLOB記憶域に関する考慮事項について説明します。 - JSONデータのパーティション化
パーティション化は、表内のデータの特定のサブセットのみを使用することでパフォーマンスを向上させることができます。JSONデータをパーティション化するには、JSON式列をパーティション化キーとして使用し、SQL/JSONファンクションjson_value
を使用して表内のJSONデータからスカラー列データを抽出します。 - JSONデータのレプリケーション
Oracle GoldenGate、Oracle XStreams、Oracle Data GuardまたはOracle Active Data Guardを使用すると、JSONデータを含む列がある表をレプリケートできます。Oracle GoldenGateを使用して、JSONリレーショナル二面性ビューをレプリケートすることもできます。