GraphQLに対するOracle Databaseのサポート
リレーショナル・データベース・テクノロジの進歩により、GraphQLのメリットがさらに増大しました。Oracle AI Databaseでは、カスタム・リゾルバを使用せずにデータベースを直接問い合せる手段を提供することで、GraphQLの統合がサポートされるようになりました。
Oracle DatabaseでのGraphQL問合せのサポートを通じて、リレーショナル・データベースによって提供されるパフォーマンス、スケーラビリティまたは最適化を犠牲にすることなく、複雑なデータ・オブジェクトを簡単に作成、イントロスペクトおよび問合せできます。リレーショナル構造からの自動的なスキーマ推論により、問合せプロセスが合理化され、GraphQLは確立されたリレーショナル・ストレージ・モデルへのシームレスなアドオンになります。
表1-1 GraphQL問合せとOracleでサポートされているGraphQL表関数の比較
| 標準のGraphQL問合せ | Oracle AI DatabaseでサポートされているGraphQL表関数 | |
|---|---|---|
| 問合せの例 |
|
|
| 出力 | このGraphQL問合せでは、すべてのレースのデータを含む1つのJSONドキュメントが生成されます。 | Oracle AI DatabaseでサポートされているGraphQL問合せの表関数は、レースごとに1行を作成して返します。 |
- 結合列を指定するカスタム・ディレクティブ
- 述語を指定する引数
- 述語を指定する例による問合せ(QBE)演算子
- 返される行数を明示的に指定するためのlimit引数
- GraphQL変数としてのSQLバインドの使用
- 表関数内でのGraphQLのコメントの指定
- 表関数でのSQL演算子の使用
GraphQL問合せはSQL問合せ内に埋め込まれているため、診断性、パフォーマンス測定およびパフォーマンス最適化に使用される既存のSQLツール(AWR、SQLモニター、SQLトレース、SQLヒントなど)も、Oracle DatabaseでサポートされているGraphQL問合せで使用できます。
これを補完するために、Oracle AI Database 26aiでは、JSONリレーショナル二面性を提供しています。これは、柔軟で開発者が使いやすいJSONドキュメントとしてアクセスしながら、正規化されたリレーショナル表にデータを格納できるパラダイムです。Oracle DatabaseでのGraphQL問合せのサポートでは、二面性ビューを作成できます。このビューは、直感的なGraphQLのような構文を使用して定義され、構造化されたリレーショナル・モデルと最新のアプリケーションのニーズを橋渡しします。二面性ビューを使用すると、リレーショナル・ストレージのパフォーマンスとスケーラビリティのメリットを維持しながら、ビューを簡単に作成でき、複雑なデータ・オブジェクトを問い合せることができます。これらのアプローチでは、リレーショナル・モデルからの自動的なスキーマ推論およびデータベースとのシームレスなGraphQL統合を可能にすることで、問合せおよびデータ操作がまとめて合理化されます。
このマニュアルでは、GraphQLとOracle AI Databaseの統合に関連する最も基本的な情報のみを扱います。JSONリレーショナル二面性ビューの概念をよく理解していて、GraphQL標準に関する簡単な知識を持っていることを前提としています。全体像を把握するために、GraphQLの公式ドキュメントおよび仕様を参照することをお薦めします。JSONリレーショナル二面性ビューの概念を理解するには、『JSONリレーショナル二面性開発者ガイド』を参照してください。Oracle AI DatabaseへのGraphQL統合を示すために、一般的なカー・レースの例が使用されています。