9 JSONリレーショナル二面性ビューに使用されるGraphQLの言語
GraphQLは、様々なデータベースと互換性のあるオープンソースの汎用問合せ言語かつデータ操作言語です。
Oracle AI Database 26ai以降、OracleにはGraphQL問合せのサポートが導入されています。OracleのカスタムGraphQL構文の詳細は、Oracle Database Support for GraphQL開発者ガイドのOracleでのカスタムGraphQL構文の章を参照してください。Oracle AI DatabaseのGraphQLスキーマ規則には、使用される特定の命名規則が概説されており、これらの規則を理解しておく必要があります。
Oracle AI Databaseでは、JSONリレーショナル二面性ビューを作成するための、次のようなGraphQL構文および操作のサブセットがサポートされています:
- カスタムGraphQLスカラー: Oracle AI Databaseでは、カスタム・スカラー型を使用したGraphQL型システムの拡張がサポートされています。これにより、ネイティブOracleデータ型とGraphQL間の直接マッピングが可能になり、GraphQL問合せでデータベース固有のデータをより正確に表現および操作できるようになります。
- GraphQLの暗黙的フィールド別名化のサポート: データベースでは、GraphQL問合せのフィールドの暗黙的な別名化がサポートされています。つまり、名前の競合(異なる表のフィールドが名前を共有している場合など)を防ぐ必要がある場合、Oracleでは、出力の一貫性と明確性を確保するために一意の別名が自動的に割り当てられます。
- リレーショナル・スキーマからのGraphQLスキーマの生成: Oracleは、既存のリレーショナル・スキーマからGraphQLスキーマを自動的に生成できます。このプロセスでは、Oracle AI Databaseの表、関係および列がGraphQL型およびフィールドに変換され、手動スキーマ定義の作業を最小限に抑えながら、GraphQLを介して基礎となるデータにアクセスできるようになります。
- JSONリレーショナル二面性ビューのカスタムGraphQLディレクティブ: GraphQLのディレクティブは、
@記号の接頭辞が付いた特別な注釈であり、GraphQLスキーマまたは問合せ内のフィールド、フラグメントまたは操作にアタッチできます。ディレクティブは、GraphQLプロセッサに、実行の変更、フィルタリングの制御、結果の形式の変更、結合や計算フィールドなどの高度な動作の定義を指示します。Oracle AI Databaseでは、ディレクティブは、問合せとJSONリレーショナル二面性ビューの作成の両方をカスタマイズするための強力な手段を提供します。Oracle Database Support for GraphQL開発者ガイドのOracleでのカスタムGraphQLディレクティブでは、OracleがサポートしているすべてのGraphQLディレクティブの例が示されていますが、二面性ビューの作成用にOracleがサポートするGraphQLディレクティブに関するトピックには、二面性ビューの作成に特化した詳細な例が提供されています。 - JSONリレーショナル二面性ビューのQBE: GraphQLのQuery-By-Example (QBE)を使用すると、開発者は問合せでサンプル・フィールド値を直接指定して結果をフィルタできます。QBEでは、標準化された一連の演算子(
_eq、_lt、_like、_and、_orなど)をcheck句内で使用して、二面性ビューのデータをフィルタするための述語を定義します。OracleのGraphQL QBEでは、OracleでサポートされているすべてのQBE演算子の例が示されていますが、二面性ビュー作成のためのQBEのトピックには、二面性ビュー固有の例があります。 - JSONリレーショナル二面性ビューのGraphQL引数: Oracle AI Databaseでは、二面性ビューのGraphQL問合せで標準引数を使用できます。引数を使用して、返される結果セットをフィルタ、ソートまたはその他の方法で絞り込むことができ、Oracleの二面性ビューの上部にあるGraphQLの柔軟な問合せ機能を利用して、よりターゲットを絞ったデータ・アクセスが可能になります。