データベース開発者の概念
Oracle Database開発者は、データベース・アプリケーションを作成およびメンテナンスします。この項では、データベース開発者の作業内容と使用可能な開発ツールの概要について説明します。
-
データベース開発者の業務 Oracle開発者は、Oracleテクノロジ・スタックを使用するアプリケーションのデータベース・コンポーネントを作成またはメンテナンスする責任があります。
-
データベース開発者向けのツール Oracleでは、データベース・アプリケーションを開発するためのいくつかのツールを提供しています。この項では、一般的に使用されるいくつかの開発ツールについて説明します。
-
データベース開発者のためのトピックこの項では、他の箇所で説明されていないデータベース開発者に不可欠な話題について説明します。
データベース開発者の業務
Oracle開発者は、Oracleテクノロジ・スタックを使用するアプリケーションのデータベース・コンポーネントの作成、またはメンテナンスの責任があります。
Oracle開発者は、新しいアプリケーションを開発するか、既存アプリケーションをOracle Database環境で動作するように変換します。このため、開発者はデータベース管理者と緊密に連携し、知識や情報を共有する必要があります。
Oracleデータベース開発者は、次のタスクを担当します。
-
アプリケーションに必要なデータ・モデルの実装
-
スキーマ・オブジェクトの作成
-
データ整合性のルールの実装
-
新しい開発プロジェクトのプログラミング環境の選択
-
サーバー側のPL/SQLまたはJavaサブプログラム、およびSQL文を使用するクライアント側の手続き型コードの記述
-
選択した開発ツールを使用したアプリケーション・インタフェースの作成
-
グローバル・アプリケーション開発用のグローバリゼーション・サポート環境の構築
-
本番環境での開発、テスト、教育およびデプロイメント用の異なるデータベースへのアプリケーションのインスタンス化
関連情報:
-
Oracle Database開発の概要およびGUIベースのチュートリアルは、 『Oracle AI Database Oracle AI Database開発スタート・ガイド』を参照してください
-
データベース設計、開発者向けSQL、開発者向けPL/SQLなどのトピックの詳細については、『Oracle AI Database開発ガイド』を参照してください。
データベース開発者向けのツール
Oracleでは、データベース・アプリケーションを開発するためのいくつかのツールを提供しています。この項では、一般的に使用されるいくつかの開発ツールについて説明します。
-
SQL Developerは、データベース開発者がSQL*Plusを使用して基本的なタスクを編集および開発するのに便利な方法です。
-
Oracle APEX AIアプリケーション・ジェネレータOracle APEX AIアプリケーション・ジェネレータは、Oracle Database用のWebアプリケーション開発ツールです。Oracle APEX AIアプリケーション・ジェネレータでは、ユーザー・インタフェースのテーマ、ナビゲーション・コントロール、フォーム・ハンドラ、柔軟なレポートなどの組込み機能を使用することにより、アプリケーション開発を加速できます。
-
Oracle JDeveloperは、最新の業界標準Java、XML、Webサービス、およびSQLを使用するサービス指向アプリケーションを構築するための統合開発環境(IDE)です。
-
Oracle Developer Tools for Visual Studio
Oracle Developer Tools for Visual Studio .NETは、Visual Studio .NET環境と統合された一連のアプリケーション・ツールです。
SQL Developer
SQL Developerは、データベース開発者がSQL*Plusを使用して基本的なタスクを編集および開発するのに便利な方法です。SQL Developerは、Javaで記述されたSQL*Plusのグラフィカル版で、SQLおよびPL/SQLの開発を支援します。標準的なデータベース認証を使用してOracleデータベース・スキーマに接続できます。SQL Developerでは、次のことを実行できます。
-
スキーマ・オブジェクトの参照、作成、編集、削除
-
SQL文の実行
-
PL/SQLプログラム・ユニットの編集およびデバッグ
-
データの操作およびエクスポート
-
レポートの作成および表示
SQL Developerは、デフォルトのOracle Databaseインストールに含まれており、無償でダウンロードできます。
関連項目: SQL Developerの使用方法を学習するには、『Oracle AI Database Oracle AI Database開発スタート・ガイド』および『Oracle SQL Developerユーザーズ・ガイド』を参照してください
Oracle APEX AIアプリケーション・ジェネレータ
Oracle APEX AI Application Generatorは、Oracle Database用のWebアプリケーション開発ツールです。Oracle APEX AIアプリケーション・ジェネレータでは、ユーザー・インタフェースのテーマ、ナビゲーション・コントロール、フォーム・ハンドラ、柔軟なレポートなどの組込み機能を使用することにより、アプリケーション開発を加速できます。
Oracle APEXは、データベースとともにインストールされ、表のデータおよびPL/SQLコードで構成されます。アプリケーションを実行すると、ブラウザにより、Oracle APEX PL/SQLコールに変換されるURLリクエストが送信されます。データベースでPL/SQLが処理された後、その結果がHTMLとしてブラウザに送り返されます。このサイクルはページをリクエストまたは送信するたびに発生します。
Oracle APEXは、埋込みPL/SQLゲートウェイで使用できます。このゲートウェイは、データベース内のOracle XML DB HTTPサーバーで実行され、動的アプリケーションの作成に必要なインフラストラクチャを提供します。図23-1に示すように、埋込みタイプPL/SQLゲートウェイは中間層をなくすことで、シンプルなアプリケーション・アーキテクチャを実現しています。
図1: 埋込みPL/SQLゲートウェイを使用したAPEX

Oracle JDeveloper
Oracle JDeveloperは、最新の業界標準Java、XML、Webサービス、およびSQLを使用するサービス指向アプリケーションを構築するための統合開発環境(IDE)です。Oracle JDeveloperは、アプリケーションをモデル化、コーディング、デバッグ、テスト、プロファイリング、チューニングおよびデプロイするための機能を統合して、ソフトウェア開発全域を支援します。
Oracle JDeveloperでは、各種アプリケーション開発ツールのウィンドウを使用します。たとえば、Javaアプリケーションを作成する場合、Javaビジュアル・エディタやコンポーネント・パレットなどのツールを使用できます。これらのツールに加えて、Oracle JDeveloperでは、プロジェクト・コンテンツを整理および表示するための様々なナビゲーション機能を提供しています。
関連情報:
-
JDeveloperの使用方法について学習するには、『Oracle AI Database Java開発スタート・ガイド』を参照してください。
-
JDeveloperはURL http://www.oracle.com/technetwork/developer-tools/jdev/downloads/からダウンロードできます。
Oracle Developer Tools for Visual Studio
Oracle Developer Tools for Visual Studio .NETは、Visual Studio .NET環境と統合された一連のアプリケーション・ツールです。Oracle Developer Tools for Visual Studio .NETのツールを使用すると、Oracleの機能にGUIでアクセスでき、様々なアプリケーション開発タスクを実行することができ、開発の生産性と操作性が向上します。
Oracle Developer Toolsは、Visual Basic、C#、およびその他の.NET言語を使用した.NETストアド・プロシージャのプログラマーおよび実装をサポートしています。これらのプロシージャは、.NET言語で記述され、SQLまたはPL/SQL文を含みます。
データベース開発者のためのトピック
この項では、他の箇所で説明されていないデータベース開発者に不可欠な話題について説明します。
-
アプリケーション設計およびチューニングの原則Oracle開発者は、セキュリティおよびパフォーマンス目標を達成できるよう、データベース・アプリケーションを設計、作成、およびチューニングする必要があります。
-
正しい問合せの原則実際のアプリケーション問合せは非常に複雑で、多くの結合がある可能性があり、これらは、本番システムで長時間実行されているSQLで気付かれないエラーが発生した場合でも、誤った結果の戻りを明示的に指定して、すべての隅に正しくないことが多々あります。この項では、これらの一般的なSQLエラーの最も重要なものについて体系的に分析し、回避する方法について説明します。
-
クライアント側のデータベース・プログラミングプリコンパイラまたはJavaトランスレータを使用してソース・コードにSQL文を入れるかAPIを使用することで、アプリケーションがデータベースとやりとりできます。
-
グローバリゼーション・サポートOracle Databaseグローバリゼーション・サポートを使用すると、ネイティブ言語でデータを格納、処理および取得することができます。
-
非構造化データ非構造化データは、小さな論理構造に細分化されたデータです。
アプリケーション設計およびチューニングの原則
Oracle開発者は、セキュリティおよびパフォーマンス目標を達成できるよう、データベース・アプリケーションを設計、作成、およびチューニングする必要があります。
アプリケーション設計およびチューニングに関する次の原則が、ガイドラインとして役立ちます。
-
Oracle Databaseの機能の学習
開発者は、データベース・アーキテクチャおよび機能を利用する必要があるOracleデータベースに対して、最小限の時間でアプリケーションを開発する必要があります。たとえば、Oracle Databaseのデータ並行性制御およびマルチバージョン読取りの一貫性について理解していないと、アプリケーションでデータの整合性を損なったり、アプリケーションの実行が遅くなったり、スケーラビリティが低下するおそれがあります。トランザクション・ガードおよびアプリケーション・コンティニュイティの機能を理解すると、不要な例外処理コードを記述しなくて済みます。
-
バインド変数の使用(使用しない妥当な理由がある場合を除く)
問合せでバインド変数を使用すると、データベースは一度コンパイルした後、問合せ計画を共有プールに格納できます。同じ文を再度実行する場合、データベースはソフト解析を実行し、計画を再利用できます。これに対し、ハード解析は、時間がかかる上で、多くのリソースを費やします。バインド変数を使用してソフト解析を可能にすることにより、効率は大幅に向上し、また、データベースはそのように設計されています。
-
クライアントではなく、データベース・サーバーでの整合性制約の実装
主キーと外部キーを使用すると、複数のアプリケーションでデータを再利用できます。クライアント側で規則をコーディングすると、データベースに対する実行中、他のクライアントはこれらの規則にアクセスできません。
-
代表的なデータおよびセッション・アクティビティが利用可能なテスト環境の構築
稼働中の本番環境をシミュレートするテスト環境の構築には、複数の利点があります。たとえば、アプリケーションのベンチマークを実施し、拡張性およびパフォーマンスが十分かどうかを確認します。また、テスト環境を使用して、データベースの変更によるパフォーマンスへの影響を測定したり、アップグレードおよびパッチが正常に動作するかどうかを確認できます。
-
高いパフォーマンス目標に沿ったデータ・モデルの設計
通常、汎用データ・モデルを使用すると、パフォーマンスは低下します。データ・モデルは、最も一般的な問合せに最大限効率よく応答できるように綿密に設計します。たとえば、データ・モデルでは、最高のパフォーマンスを示す索引のタイプを使用する必要があります。論理および物理構造の変更は困難または不可能な場合があるため、デプロイ後のチューニングはお薦めしません。
-
明確なパフォーマンス目標の定義およびメトリックの履歴レコードの保管
開発での重要な要素は、アプリケーションのパフォーマンスおよび拡張性の正確な判断です。たとえば、予想されるユーザー負荷、1秒当たりのトランザクション、許容レスポンス時間などを含むメトリックを使用します。このため、パフォーマンス・メトリックの履歴レコードを保管しておくことをお薦めします。この方法で、事前および事後にパフォーマンスを監視できます。
-
アプリケーション・コードのインスツルメント処理
開発の際、アプリケーションにデバッグ・コードを追加することをお薦めします。トレース・ファイルが生成可能である場合、パフォーマンス上の問題をデバッグおよび診断するときに便利です。
関連情報:
-
データベース・アプリケーションを設計する際の考慮事項は、『Oracle AI Database Oracle AI Database開発スタート・ガイド』を参照してください
-
パフォーマンス用アプリケーションの設計方法を学習するには、Oracle AI Database SQLチューニング・ガイドを参照
正しい問合せの原則
実際のアプリケーション問合せは非常に複雑で、多くの結合がある可能性があり、これらは、本番システムで実行されているSQLで長期間実行されて気付かれないエラーが発生した場合でも、誤った結果の戻りを明示的に指定して、隅々まで正しくないことが多々あります。この項では、これらの一般的なSQLエラーの最も重要なものについて体系的に分析し、回避する方法について説明します。
クエリーは非常に複雑に見えます。WITH句、SELECTリストおよびWHERE句で、多数の表を参照し、他のビュー上に構築されたビューを含めて、副問合せを使用できます。その複雑さの下では、良い問合せは依然として1つの明確な質問に答えます。この質問は、通常、特定のタイプのビジネス・エンティティに関するデータの必要性を反映しています。問合せによって返される各行は、そのエンティティの1つのインスタンスを表す必要があります。GROUP BY問合せの場合、各行は、同じエンティティのインスタンスに対する集計を表す必要があります。
ほとんどのシステムでは、問合せに十分な重要な各ビジネス・エンティティ・タイプには、そのエンティティを表す行を持つ対応する表があります。その意味では、よく記述された問合せの多くは、どれほど複雑に見えても、最終的に単一の表の行に関する質問です。通常、周囲の複雑さは存在します。これは、正規化されたデータベースが、親表や祖父母表などの関連表にエンティティの属性を格納するためです。
たとえば、正規化された設計では、通常、顧客の名前がCUSTOMERS表に1回格納されます。ORDERS表にはCUSTOMER_IDのみが格納されるため、CUSTOMERSに結合できます。ORDER_ITEMS表にはORDER_IDが格納されているため、ORDERSに結合でき、CUSTOMER_IDは繰り返されません。ORDER_ITEMSのサブセットを各アイテムの顧客名とともにリストする場合は、最初にORDERS (親)に、次にCUSTOMERS (祖父母)に、一意の結合のシーケンスが必要です。適切に正規化されたOLTPシステムでは、結果セットが1対1で1つのプライマリ表の行のサブセットにマップされていても、問合せで単一のエンティティ・タイプに関する詳細情報を取得するためにこのような結合が多数必要になる場合があります。
このプライマリ表を、行幅表(RWT)と呼びます。正しい問合せでは、他の結合は、通常、親表や祖父母表などから一意に一致した参照データを追加して、各RWT行を「拡大」する必要があります。これらの結合は、RWT行の数を乗算しないでください。RWTから論理的に開始するすべての結合に対するこの構造を持つ問合せは、行拡張のみの問合せ(RWOQ)です。ノート:フィルタリングでは、RWT行を破棄できます。内部結合およびWHERE述語では、RWTから行を削除できます。「Row-widened」は、問合せがすべてのRWT行を保持することを意味しません。これは、フィルタ処理後、集計の前に、各問合せ結果行が残りのRWT行に厳密に1対1対応することを意味します。
問合せが戻すエンティティまたは集計を表す単一表からの一意結合のチェーンを介して問合せ内の他のすべての表にアクセス可能な場合、その開始表はRWTで、問合せはRWOQです。一意キーを使用して1対1を事前集計結果行にマップする表が保証されない場合、問合せはRWOQではありません。実際には、ほとんどの非RWOQは、問合せによって結果行が明確に定義されたビジネス上の重要なエンティティにマップされないため、アプリケーションで正しく解釈できない結果を生成します。たとえば、このような行から値を合計すると、同じエンティティに対して同じ値が複数回追加され、合計は無意味になります。
Oracle Databaseリリース26ai以降、JOIN TO ONE機能は、正しいRWOQの記述に非常に役立ちます。すべての結合にJOIN TO ONEを使用すると、データベースは解析時に問合せがRWOQであることをチェックし、FROM句の左端の表をRWTとして処理します。これは、オブジェクトがRWOQ以外の動作を非表示にする可能性のあるビューではなく実表であると想定しています。データベースが解析時にJOIN TO ONE結合の一意性を証明できない場合、ランタイム・チェックを実行して、推定されるRWTからの各結合が実行時に検出されたデータに対して一意であることを検証します。実際の結果で一意でない結合が検出されると、ランタイム・エラーが発生します。ほとんどのRWOQは、JOIN TO ONE形式に変換できます。JOIN TO ONE形式に変換できない問合せでは、通常、変換時に不規則な結合が表示されます。変換された問合せが実行時エラーなしで実行されると、問合せに必要な1行ごとのエンティティ・プロパティがあることが確認されます。
RWOQの詳細、SQLでの微妙な正確性の問題の防止に役立つ理由、およびJOIN TO ONEによる問題の強制方法については、『Oracle AI Database開発ガイド』を参照してください。
クライアント側のデータベース・プログラミング
プリコンパイラまたはJavaトランスレータを使用してソース・コードにSQL文を入れるかAPIを使用することで、アプリケーションがデータベースとやりとりできます。
手続き型データベース・アプリケーションでSQLを使用するには、2つの基本テクニックがあり、1つはPL/SQLおよびJavaを使用したサーバー側のプログラミングで、もう1つはJava Database Connectivity (JDBC)やOracle Call Interface (OCI)などプリコンパイラおよびAPIを使用したクライアント側のプログラミングです。
-
埋込みSQL以前は、クライアント/サーバー・プログラムがデータベースとの対話に埋込みSQLを使用していました。
-
クライアント側のAPI現在、多くの開発者はAPIを使用してデータベース・アプリケーションにSQLを埋め込みます。
関連情報:
プログラミング環境の選択方法を学習するには、『Oracle AI Database開発ガイド』を参照
確認するには、「サーバー側プログラミング: PL/SQLとJava」を参照してください
埋込みSQL
以前は、クライアント/サーバー・プログラムとデータベースの対話には埋込みSQLが使用されていました。
- Oracleプリコンパイラ一般的に、クライアント/サーバー・プログラムは、Oracleプリコンパイラを使用して記述されます(プリコンパイラの場合は、高レベルのプログラムにSQL文を埋め込むためのプログラミング・ツールです。
Oracleプリコンパイラ
一般に、クライアント/サーバー・プログラムは、Oracleプリコンパイラを使用して記述されます。プリコンパイラは、高レベルのプログラムにSQL文を埋め込むためのプログラミング・ツールです。
たとえば、Oracle Pro*C/C++プリコンパイラを使用すると、CまたはC++のソース・ファイルにSQL文を埋め込むことができます。Oracleプリコンパイラは、COBOLおよびFORTRANにも使用できます。
プリコンパイラには、次のような複数の利点があります。
-
同等のOCIアプリケーションに比べて一般的にコードの記述量が少ないことによる生産性の向上
-
高度にカスタマイズされたアプリケーションを作成できる
-
リソース使用、SQL文実行および各種のランタイム・インジケータの緊密な監視
-
プリコンパイラにより各埋込みSQL文がOracle Databaseランタイム・ライブラリのコールへと自動変換されることにより時間の節約
-
Object Type Translatorによる、Pro*C/C++アプリケーションで使用可能なCデータ型へのOracle Databaseのオブジェクト型およびコレクションのマップ
-
オブジェクト型およびコレクションのコンパイル時型チェック、およびデータベース型からCデータ型への自動型変換を提供します。
SQL文を含むクライアント・アプリケーションがホスト・プログラムになります。このプログラムは、ホスト言語で記述されます。ホスト・プログラムでは、完全なSQL文と完全なC文を混合して使用でき、Cの変数または構造をSQL文に使用することもできます。SQL文を埋め込む場合は、文をEXEC SQLキーワードで開始して、セミコロンで終了する必要があります。EXEC SQL文は、Pro*C/C++によりランタイム・ライブラリSQLLIBへのコールに変換されます。
多くの埋込みSQL文は、新しい句の追加またはプログラム変数の使用によってのみ、対話型の文と異なります。次の例では、対話型と埋込み型のROLLBACK文を比較しています。
ROLLBACK; -- interactive
EXEC SQL ROLLBACK; -- embedded
これらの文は同じ働きをしますが、前者は対話型SQL環境(SQL Developerなど)で、また後者はPro*C/C++プログラムで使用します。
プリコンパイラはホスト・プログラムを入力として受け取り、埋込みSQL文を標準のデータベース・実行時ライブラリ・コールに変換し、ソース・プログラムを生成します。このプログラムは、通常の方法でコンパイル、リンクおよび実行できます。図23-2に、プリコンパイラを使用したプログラム開発の典型的なステップを示します。
図2: プリコンパイラを使用したプログラム開発

関連項目: Pro*C/C++プリコンパイラの詳細は、『Pro*C/C++開発者ガイド』を参照してください
クライアント側のAPI
現在は、多くの開発者がAPIを使用してデータベース・アプリケーションにSQLを埋め込みます。
たとえば、Oracle Databaseと通信するプログラムの有効化によく使用されるOpen Database Connectivity(ODBC)およびJDBCという2つのAPIがあります。その他、クライアント側のプログラミングによく使用されるOracle Call Interface(OCI)およびOracle C++ Call Interface(OCCI)という2つのAPIもあります。
-
OCIおよびOCCIプリコンパイラのかわりに、OracleではOCIおよびOCCI APIを提供します。
-
ODBCおよびJDBC ODBCは、アプリケーションをデータベースに接続して実行するための標準APIで、SQL文を準備して実行します。
OCIおよびOCCI
プリコンパイラのかわりとして、OracleではOCI APIおよびOCCI APIを提供しています。
OCIでは、Cなどのホスト・プログラミング言語を使用して、データベース内のデータおよびスキーマを操作できます。OCCIは、C++言語との使用に適したオブジェクト指向インタフェースです。どちらのAPIを使用する場合も、開発者はシステム固有のサブプログラムを起動して、Oracle Databaseにアクセスし、SQLの実行を制御できます。
場合によっては、レベルの高いインタフェースよりも、OCIの方が高いパフォーマンスを示すことや、機能が豊富なことがあります。OCIおよびOCCIでは、次のような多くの機能を提供しています。
-
Oracle Database全体で使用可能なすべてのSQL DDL、DML、問合せおよびトランザクション制御機能のサポート
-
ディスク領域が問題になる場合のアプリケーションをデプロイする方法であるインスタント・クライアント
-
Cアプリケーションからのスレッド管理、接続プール、グローバリゼーション・ファンクションおよびデータのダイレクト・パス・ロード
OCIおよびOCCIには、動的ランタイム・ライブラリ(OCILIB)という形式で、標準データベース・アクセスおよび検索関数のライブラリが用意されています。このライブラリは、実行時にアプリケーション内でリンクを設定できます。このように、非データベース・アプリケーションと同様の方法でOCIまたはOCCIプログラムをコンパイルおよびリンクすると、別の処理やプリコンパイル作業が不要になります。図23-3に、開発プロセスを示します。
図3: OCIまたはOCCIを使用した開発プロセス

ODBCおよびJDBC
ODBCは、アプリケーションをデータベースに接続し、SQL文を準備して実行するための標準APIです。
ODBCは、プログラミング言語、データベース、およびオペレーティング・システムに依存しません。ODBCの目的は、任意のアプリケーションが任意のデータベースのデータにアクセスできるようにすることです。
データベース・ドライバは、アプリケーションとデータベースの間にあるソフトウェアです。このドライバは、アプリケーションによるAPIコールをデータベースが処理可能なコマンドへと変換します。ODBCドライバを使用することで、スプレッドシートに格納されているデータなど、あらゆるデータ・ソースにアプリケーションからアクセスできます。ODBCドライバは、ODBC標準とデータベースの間のマッピングをすべて実行します。
Oracleが提供するOracle ODBCドライバを使用すると、ODBCに準拠したアプリケーションはOracle Databaseにアクセスできます。たとえば、Visual Basicで記述されたアプリケーションでは、ODBCを使用してOracle Database表の問合せや更新を実行できます。
JDBCは、JavaアプリケーションがOracle Databaseと対話するための下位レベルのJavaインタフェースです。ODBCと同様、JDBCもベンダーに依存しないAPIです。Sun社により定義されるJDBC標準は、java.sqlインタフェースを介して実装されます。
JDBC標準では、個々のプロバイダが独自のJDBCドライバを使用して標準を実装および拡張できます。Oracleでは、クライアント側のプログラミング用に次のJDBCドライバを提供しています。
-
JDBC Thinドライバ
このPure Javaドライバは、Oracleクライアントがインストールされていないクライアント側にインストールします。これはプラットフォームに依存せず、アプレットおよびアプリケーションの両方で使用できます。
-
JDBC OCIドライバ
このドライバは、Oracleクライアントがインストールされているクライアント側にインストールします。これはアプリケーションでのみ使用できます。JDBC OCIドライバは、CおよびJavaの両方で記述されており、JDBCコールをOCIコールに変換します。
次のスニペットは、JDBC OCIドライバを使用してStatementオブジェクトを作成し、dual表に問合せを実行するJavaプログラムのスニペットです。
// Create a statement
Statement stmt = conn.createStatement();
// Query dual table
ResultSet rset = stmt.executeQuery("SELECT 'Hello World' FROM DUAL");
関連項目: JDBCについてさらに学習するには、Oracle AI Database開発ガイドおよびOracle AI Database Java開発スタート・ガイドを参照してください。
グローバリゼーション・サポート
Oracle Databaseのグローバリゼーション・サポートにより、各国語でデータを格納、処理、取得できます。
グローバリゼーション・サポートを使用すると、世界中から同時にアクセスして実行できる多言語アプリケーションやソフトウェアの開発が可能になります。
グローバル・データベース・アプリケーションを記述する開発者は、次のことを実行する必要があります。
-
Oracle Databaseグローバリゼーション・サポートのアーキテクチャ(各文字セット、地域、言語、言語ソート定義の特性など)の理解
-
中間層プログラミング環境のグローバリゼーション機能(データベースのロケール・モデルとの対話および同期方法など)の理解
-
異なるオペレーティング・システム上で実行中の複数のクライアントに、異なる文字セットおよびロケール要件を同時にサポートできるコードの設計と記述
たとえば、アプリケーションはネイティブ・ユーザーが使用する言語およびロケールのプリファレンスに基づいてユーザー・インタフェースの内容をレンダリングしたり、データを処理する必要がある場合があります。たとえば、アプリケーションは、ユーザーに設定の変更を求めることなく、マルチバイトの漢字データを処理し、該当する地域の形式でメッセージや日付を表示して、7ビットASCIIデータを処理する必要があります。
-
グローバリゼーション・サポート環境グローバリゼーション・サポート環境には、クライアント・アプリケーションとデータベースが含まれます。言語に依存する処理は、クライアントとサーバーの上でパラメータおよび環境変数を設定することによって制御します(クライアントとサーバーは別々の場所に存在する場合もあります)。
-
Oracle Globalization Development Kit Oracle Globalization Development Kit (GDK)には、包括的なプログラミングAPIが含まれています。関連項目:グローバリゼーションの詳細は『Oracle AI Databaseグローバリゼーション・サポート・ガイド』を参照してください。
グローバリゼーション・サポート環境
グローバリゼーション・サポート環境には、クライアント・アプリケーションとデータベースが含まれます。言語に依存する処理は、クライアントとサーバーの上でパラメータおよび環境変数を設定することによって制御します(クライアントとサーバーは別々の場所に存在する場合もあります)。ノート:以前のリリースでは、Oracleではグローバリゼーション・サポート機能は各国語サポート(NLS)機能と呼ばれていました。実際、NLSはグローバリゼーション・サポートの一種で、NLSを使用して、各国語を選択し、特定の文字セットでデータを格納できます。
Oracle Databaseでは、次の機能に対するグローバリゼーション・サポートを提供しています。
-
ネイティブ言語および地域
-
日付、時間、数字、および通貨のローカル形式
-
暦法(グレゴリオ暦、和暦、元号暦、タイ仏教暦など)
-
Unicodeなどの複数の文字セット
-
キャラクタ・セマンティクス
-
文字セットグローバリゼーション・サポートの主要なコンポーネントであり、コンピュータ画面に文字を表示するときに使用されるエンコーディング・スキームである文字セットです。
-
ロケール固有の設定 ロケールとは、システムまたはプログラムが実行されている言語的および文化的な環境です。NLSパラメータは、クライアントとデータベースの両方におけるロケール固有の動作を指定します。
文字セット
グローバリゼーション・サポートの主要なコンポーネントである文字セットは、コンピュータ画面に文字を表示するときに使用されるエンコーディング・スキームです。
アプリケーション開発においては、次の違いが重要です。
-
データベース文字セットによって、データベースで表現される言語を判別します。この文字セットは、データベースの作成時に指定します。
ノート:データベースを作成した後で文字セットを変更すると、通常、時間およびリソースの面で非常に大きなコストがかかります。この操作では、データベース全体のエクスポートおよび再インポートによる、すべての文字データの変換が必要になる場合があります。
-
クライアント文字セットは、クライアント・アプリケーションによって入力または表示されるデータに使用される文字セットです。クライアントとデータベースの文字セットは異なる場合もあります。
特定の文字グループ(アルファベット文字、表意文字、記号、句読点、制御文字等)を文字セットとしてエンコードできます。エンコードされた文字セットでは、セット内の各文字について、コード・ポイントまたはエンコード値と呼ばれる一意の数値コードが割り当てられます。グローバル環境では、異なる文字セット間でデータの変換が必要になる可能性があるため、このコード・ポイントは重要となります。
コンピュータ業界では、様々にエンコードされた文字セットが使用されている。これらのセットでは、使用可能な文字数、使用可能な文字および各文字に割り当てられているコード・ポイントなどが異なります。Oracle Databaseでは、各国の仕様、国際仕様およびベンダー固有のエンコードされた文字セット規格のほとんどすべてがサポートされています。
Oracle Databaseでは、次のクラスのエンコードされた文字セットをサポートしています。
-
シングルバイト文字セット
各文字が占めるバイト数は、1バイトです。7ビット文字セットの例には、US7ASCIIなどがあります。8ビット文字セットの例には、WE8DECなどがあります。
-
マルチ・バイト文字セット
1文字が2バイト以上を占めます。一般的に、マルチバイト文字セットは、アジア言語に使用されます。
-
Unicode
ユニバーサル・エンコードされた文字セットでは、1つの文字セットで任意の言語の情報を格納できます。Unicodeでは、プラットフォーム、プログラムまたは言語に関係なく、すべての文字に一意のコード値が与えられます。
関連項目:文字セットの移行について学習するには、『Oracle AI Databaseグローバリゼーション・サポート・ガイド』を参照してください
ロケール固有の設定
ロケールとは、システムまたはプログラムが実行されている言語的および文化的環境のことです。NLSパラメータは、クライアントとデータベースの両方におけるロケール固有の動作を指定します。
データベース・セッションでは、クライアントにかわって文を実行するとき、NLSの設定が使用されます。たとえば、データベースでは、クライアントの地域の書式で3桁区切りを使用します。一般的に、クライアント・ホストのNLS_LANG環境変数によって、サーバー・セッションとクライアント・アプリケーションの両方のロケールが指定されています。プロセスは次のとおりです:
-
クライアント・アプリケーションは起動すると、環境設定に従ってクライアントのNLS環境を初期化します。
Oracle Developerアプリケーションの表示形式の設定など、ローカルで実行されるすべてのNLS操作にこれらの設定が使用されます。
-
クライアントは、データベースに接続すると、
NLS_LANGで定義された情報をデータベースに伝達します。 -
データベース・セッションは、クライアントから伝達された設定に基づいてNLS環境を初期化します。
クライアントにより設定が指定されていなかった場合、セッションは初期化パラメータ・ファイルの設定を使用します。データベースが初期化パラメータの設定を使用するのは、クライアントがNLS設定をまったく指定しなかった場合のみです。クライアントが一部のNLS設定を指定した場合、残りのNLS設定はデフォルトの設定になります。
クライアント・アプリケーションにかわって開始された各セッションは、他のセッションと同じまたは異なるロケールで実行されます。たとえば、一方のセッションではドイツ語ロケールが使用され、別のセッションではフランス語ロケールが使用される場合があります。また、各セッションで同じまたは異なる言語要件が指定されます。
次の表に、異なるNLS_LANG設定を使用する2つのクライアントを示します。ユーザーは、各ホスト上でSQL*Plusを起動して同じデータベースにhrとしてログオンし、同時に同じ問合せを実行します。各セッションの結果は、浮動小数点数に関するロケール固有のNLS設定のために異なります。
表1ロケール固有のNLS設定
| t | クライアント・ホスト 1 | クライアント・ホスト 2 |
|---|---|---|
| t0 | |
|
| t1 | |
|
関連項目: NLS設定について学習するには、『Oracle AI Databaseグローバリゼーション・サポート・ガイド』を参照してください。
Oracle Globalization Development Kit
Oracle Globalization Development Kit (GDK)には、包括的なプログラミングAPIが含まれています。
APIはJavaとPL/SQLのどちらでも使用でき、サンプル・コード、グローバル・アプリケーションの作成中に発生する設計、開発およびデプロイメント上の様々な問題に対処するドキュメントが含まれています。GDKは、開発プロセスを簡略化し、グローバル環境サポートに使用されるインターネット・アプリケーションの開発コストを削減します。
GDKは主に、GDK for JavaとGDK for PL/SQLの2つの部分で構成されています。GDK for Javaは、Javaアプリケーションにグローバリゼーション・サポートを提供します。GDK for PL/SQLは、PL/SQLプログラミング環境にグローバリゼーション・サポートを提供します。これらの2つの要素で提供される機能は同じではありません。
関連項目: 『Oracle AI Databaseグローバリゼーション・サポート・ガイド』
非構造化データ
非構造化データは、小さな論理構造に細分化されていないデータです。
従来のリレーショナル・モデルは、単純な表に格納できる単純な構造化データを処理します。Oracle Databaseでは、標準構成要素に分解できない非構造化データもサポートしています。非構造化データには、テキスト、グラフィック・イメージ、ビデオ・クリップ、サウンド・ウェーブなどが含まれます。
Oracle Databaseには、非構造化コンテンツを処理するためのデータ型が組み込まれています。これらのデータ型は、データベースではシステム固有の型として表示され、SQLを使用して問い合せることができます。
-
Oracle DatabaseにおけるXMLの概要Oracle XML DBは、高パフォーマンスのXML操作、格納および取得に関連する一連の Oracle Databaseテクノロジです。Oracle XML DBは、SQLデータ・モデルとXMLデータ・モデルの相互運用が可能な方法でサポートするシステム固有のXMLを提供します。
-
Oracle DatabaseにおけるJSONの概要 Oracle Databaseでは、問合せおよび索引付けなど、JavaScript Object Notation (JSON)データのネイティブ・サポートが提供されます。
-
LOBの概要ラージ・オブジェクト(LOB)データ型を使用すると、非構造化データの大きなブロックは、バイナリまたは文字形式で格納し、操作することができます。
-
Oracle Textの概要Oracle Text (Text)は、Oracle Databaseに統合された全テキスト検索テクノロジです。Oracle Textは、ファイル・システム、データベースまたはWeb上に格納されているすべてのドキュメントまたはテキスト形式のコンテンツに索引を付けます。これらのドキュメントは、テキスト形式のコンテンツ、メタデータまたは属性に基づいて検索できます。
-
Oracle Spatial andグラフの概要 Oracle Spatial and Graph (Spatial andグラフ)には、「空間データ」および「空間分析」と、物理グラフ・アプリケーションおよび「論理グラフ」、「ネットワーク」および「ソーシャル・グラフ」および「セマンティック・グラフ」アプリケーション用の高度な機能が含まれています。
-
SQLプロパティ・グラフの概要 Oracle Databaseのプロパティ・グラフ機能は、Oracle Databaseの強力なグラフ・サポートを提供します。
Oracle DatabaseにおけるXMLの概要
Oracle XML DBは、高パフォーマンスのXML操作、格納および取得に関連する一連のOracle Databaseテクノロジである。Oracle XML DBは、SQLデータ・モデルとXMLデータ・モデルの相互運用が可能な方法でサポートするシステム固有のXMLを提供します。
Oracle XML DBは、アプリケーションで処理されたデータの一部または全部をXMLで表現されているJavaまたはPL/SQLアプリケーションに適しています。たとえば、多数のXML文書を収集、生成、検証および検索する必要があるアプリケーションなどに適しています。
Oracle XML DBでは、次のような多くの機能を提供しています。
-
XML文書をデータベース内で表すことができ、SQLによるアクセスを可能にするデータベース固有の
XMLTypeデータ型 -
XMLスキーマ、XPath、XQuery、XSLT、DOMなどのXML標準のサポート
-
高度に構造化されたデータから完全な非構造化データまで、すべての形式のXMLデータをサポートする
XMLIndex
次の例では、XMLType型のorders表を作成します。
CREATE TABLE orders OF XMLType;
CREATE DIRECTORY xmldir AS path_to_folder_containing_XML_file;
INSERT INTO orders
VALUES (XMLType(BFILENAME('XMLDIR','purOrder.xml'),NLS_CHARSET_ID('AL32UTF8')));
また、前述の例で、ホスト・コンピュータ上の物理ディレクトリに対するデータベース内の論理名となるSQLディレクトリ・オブジェクトも作成します。このディレクトリにXMLファイルが格納されます。次に、purOrder.xmlファイルからorders表にXMLコンテンツを挿入します。
Oracle XML Developer's Kit (XDK)には、XML文書(ファイル・システム上にありますかデータベース内に存在するかは不問)を読取り、操作、変換および表示するための基本的なビルディング・ブロックが含まれています。APIおよびツールは、Java、CおよびC++で使用できます。本番のOracle XDKには、商用再配布ライセンスが付属します。
例23-1 XMLType
CREATE TABLE orders OF XMLType;
CREATE DIRECTORY xmldir AS path_to_folder_containing_XML_file;
INSERT INTO orders
VALUES (XMLType(BFILENAME('XMLDIR','purOrder.xml'),NLS_CHARSET_ID('AL32UTF8')));
Oracle DatabaseにおけるJSONの概要
Oracle Databaseは、問合せや索引付けなど、JavaScript Object Notation (JSON)データに対するネイティブ・サポートを提供します。
この項では、次のトピックについて説明します:
-
JSONとは JavaScript Object Notation (JSON)は、オブジェクト、配列およびスカラー・データを表すことができる、言語に依存しない、テキストベースのデータ書式です。JSONデータは様々なプログラミング言語で解析および生成できます。
-
JSONおよびXML一般に、JSONとXMLは両方両方ともデータ交換言語として使用されます。リレーショナル・データとは異なり、JSONデータとXMLデータは両方とも、データを定義するスキーマなしで、データベース内で格納、索引付けおよび問合せを行うことができます。
-
JSONのネイティブ・データベース・サポートJSONは、リレーショナル・データベースの機能が不足しているnoSQLデータベースに広く格納されます。一方、Oracle Databaseは、トランザクション、索引付け、宣言的問合せおよびビューなどの機能を使用して、JSONをネイティブにサポートしています。
JSONとは
JavaScript Object Notation (JSON)は、オブジェクト、配列およびスカラー・データを表すことができる、言語に依存しない、テキストベースのデータ書式です。JSONデータは様々なプログラミング言語で解析および生成できます。
一般に、JSONはデータ交換言語として機能します。多くの場合、構造化されたデータをシリアライズし、通常はサーバーとWebアプリケーション間でネットワークを介して交換するために使用されます。JSONは、HTML組込みJavaScriptで記述されたアプリケーションを実行するWebブラウザで主要なデータ形式です。
JavaScriptオブジェクトは、プロパティ名と関連付けられたJSON値の0個以上のペアの連想配列。JSONオブジェクトは、JavaScriptオブジェクト・リテラルで、カンマ区切りの名前と値のペア、コロンで区切られた各ペアの名前と値を含み、中カッコので囲まれたプロパティ・リストとして記述されます。オブジェクト・プロパティはキーと呼ばれる場合があります。オブジェクト・プロパティの名前/値のペアは、オブジェクト・メンバーと呼ばれることがあります。
例23-2 JSONオブジェクト
この例は、発注書を表すJSONオブジェクトを示しており、最上位のプロパティ名はPONumber、Reference、Requestor、User、Costcenter、ShippingInstruction、Special Instructions、AllowPartialShipmentおよびLineItemsです。
{ "PONumber" : 1600,
"Reference" : "ABULL-20140421",
"Requestor" : "Alexis Bull",
"User" : "ABULL",
"CostCenter" : "A50",
"ShippingInstructions" : { "name" : "Alexis Bull",
"Address": { "street" : "200 Sporting Green",
"city" : "South San Francisco",
"state" : "CA",
"zipCode" : 99236,
"country" : "United States of America" },
"Phone" : [ { "type" : "Office", "number" : "909-555-7307" },
{ "type" : "Mobile", "number" : "415-555-1234" } ] },
"Special Instructions" : null,
"AllowPartialShipment" : false,
"LineItems" : [ { "ItemNumber" : 1,
"Part" : { "Description" : "One Magic Christmas",
"UnitPrice" : 19.95,
"UPCCode" : 13131092899 },
"Quantity" : 9.0 },
{ "ItemNumber" : 2,
"Part" : { "Description" : "Lethal Weapon",
"UnitPrice" : 19.95,
"UPCCode" : 85391628927 },
"Quantity" : 5.0 } ] }
前述の例では、ほとんどのプロパティに文字列値があります。PONumber、zipCode、ItemNumberおよびQuantityには数値があります。Shipping InstructionsおよびAddressには値としてオブジェクトがあります。LineItemsには値として配列があります。
ノート: JSONのより包括的な概要は、『Oracle XML DB開発者ガイド』を参照してください
JSONとXML
一般に、JSONとXMLは両方ともデータ交換言語として使用されます。リレーショナル・データとは異なり、JSONデータとXMLデータは両方とも、データを定義するスキーマなしで、データベース内で格納、索引付けおよび問合せを行うことができます。
通常、JSONデータのほうがXMLデータより、JSONデータの生成、解析および処理が簡単です。ユーザーにとっても、理解および使用することが簡単です。次の表では、JSONとXMLの相違点についてさらに説明します。
表2 JSONとXMLの相違点
| 機能 | JSON | XML |
|---|---|---|
| 単純な構造化データで役立つ | はい | はい。ただし、半構造化されたデータと複雑な構造化データもサポートします |
| 複合コンテンツで役立つ | いいえ | はい |
| 属性、ネームスペース、継承および置換が不足している | はい | いいえ |
| 順序付けに重点を置く | いいえ | はい |
| 主にデータではなくドキュメントを目的とする | いいえ | はい |
| 日付データ型を含む | いいえ | はい |
注意: XMLおよびJSONのより包括的な比較の詳細は、Oracle AI Database JSON開発者ガイドを参照
JSONに対するネイティブ・データベース・サポート
JSONは、リレーショナル・データベース機能が不足している非SQLデータベースにも広範囲に格納されます。一方、Oracle Databaseは、トランザクション、索引付け、宣言的問合せおよびビューなどの機能を使用して、JSONをネイティブにサポートしています。
OCI、.NETおよびJDBCの使用など、他のデータベース・データへのアクセスと同じ方法で、データベースに格納されたJSONデータにアクセスできます。JSONデータの保存には、問合せおよびDML処理用に最適化された独自のバイナリ形式であるJSONデータ型を使用することをお薦めします。JSONデータ型は、SQLデータ型が許可されているほとんどの場合に、PL/SQLプログラム・ユニットの列型またはパラメータ型を含めて使用できます。
Oracle SQLを使用して、JSONデータで次のような操作を実行できます。
-
非JSONリレーショナル・データとのJSONデータの結合
-
SQL関数
json_objectおよびjson_arrayを使用したリレーショナル・データからのJSONドキュメントの生成。 -
SQL関数
json_tableを使用したJSONデータのリレーショナル・フォーマットへの投影 -
列にJSONデータのみを格納するための、
is_jsonによるチェック制約の作成。データベースは、このチェック制約を使用して、列がJSON固有の操作(簡略構文など)のためのJSONであることを確認します。 -
PL/SQLオブジェクトとしてのJSONドキュメントの操作。
-
Oracle JSONパス式を引数として受け入れ、ターゲットのJSONデータと照合するための、SQL関数
json_queryおよびjson_valueの使用 -
JSONデータの索引付け。
-
外部表に格納されたJSONデータの問合せ。
-
Oracle GoldenGateを使用した、JSONデータが含まれる列を持つ表のレプリケート。
テキストのJSONデータでは常にUnicode文字セット(UTF8またはUTF16)が使用されます。Oracle Databaseでは、JSONデータの解析および問合せ時にUTF8を内部で使用します。このような処理に入力されるデータまたはこのような処理から出力されるデータをUTF8とは異なる文字セットにする必要がある場合は、適切な文字セット変換が自動的に実行されます。ノート: Oracle DatabaseでのJSONサポートのより包括的な概要については、Oracle AI Database JSON開発者ガイドを参照してください
LOBの概要
ラージ・オブジェクト(LOB)データ型を使用すると、非構造化データの大きなブロックが、バイナリまたは文字形式で格納され、操作できるようになります。
ラージ・オブジェクト(LOB)データ型では、データに対する効率的、ランダム、かつピース単位のアクセスができます。
-
内部LOB内部LOBは、データを外部ファイルではなく、データベース自体に格納します。
-
外部LOB
BFILE(バイナリ・ファイル・ラージ・オブジェクトまたはLOB)は、外部ラージ・オブジェクトです。 -
SecureFiles SecureFiles LOB記憶域は、2つの記憶域タイプの1つです。もう1つは、BasicFiles LOB記憶域です。
内部LOB
内部LOBは、データを外部ファイルではなく、データベース自体に格納します。
内部LOBは、次のとおりです。
-
テキスト・ファイルまたはXMLファイルなどの大量のテキストをデータベース文字セットで格納する
CLOB(文字LOB) -
Unicodeデータを格納する
NCLOB(各国語文字セットLOB) -
大量のバイナリ情報をビット・ストリームとして格納し、文字セットの変換を行わない
BLOB(バイナリLOB)
データベースは、他のデータ型とは異なる方法でLOBを格納します。LOB列を暗黙的に作成すると、LOBセグメントおよびLOB索引が作成されます。LOBセグメントとLOB索引は常に一緒に格納され、これらを含む表領域は、表を含む表領域と異なる場合があります。
ノート:データベースは、少量のLOBデータを個別のLOBセグメントにではなく、表自体に格納できる場合もあります。
LOBセグメントは、データをチャンクと呼ばれる単位で格納します。チャンクは、論理的に連続するデータ・ブロックのセットであり、LOBに割り当てられる最小単位のデータです。表の行には、LOB索引を指すLOBロケータと呼ばれるポインタが格納されます。表に問合せが実行されると、データベースはLOB索引を使用して、LOBチャンクの場所をすばやく特定します。
データベースは、他のデータと異なる方法でLOBセグメントの読取り一貫性を管理します。UNDOデータを使用して変更を記録するかわりに、データベースはビフォア・イメージをセグメント自体に格納します。トランザクションによってLOBに変更が加えられると、データベースは新しいチャンクを割り当て、古いデータを元の場所に残します。トランザクションがロールバックされると、データベースも古いチャンクを指す索引まで変更をロールバックします。
外部LOB
BFILE (バイナリ・ファイル・ラージ・オブジェクトまたはLOB)は、外部ラージ・オブジェクトです。
BFILEは、データベースによりオペレーティング・システム内のファイルへのポインタが格納されるため、外部LOBになります。外部データは、読取り専用です。
BFILEは、ディレクトリ・オブジェクトを使用してデータを検索します。使用領域量は、ディレクトリ・オブジェクト名の長さ、およびファイル名の長さによって決まります。
バイナリ・ファイルがデータベースの外部にあるため、BFILEでは内部LOBと同じ読取り一貫性メカニズムを使用しません。ファイル内のデータが変更されると、同じバイナリ・ファイルからの読取りが繰り返されると、異なる結果が生成される可能性があります。
SecureFiles
SecureFiles LOB記憶域は、2つの記憶域タイプの1つです。もう1つは、BasicFiles LOB記憶域です。
SECUREFILE LOBパラメータでは、圧縮と複製解除(拡張圧縮オプションの一部)、および暗号化(拡張セキュリティ・オプションの一部)を含む特定の拡張機能を使用できます。Oracle Database 12c以降では、SecureFilesはLOBのデフォルトの記憶域メカニズムです。
関連情報:
-
LOBデータ型についてさらに学習するには、Oracle AI Database SecureFilesおよびラージ・オブジェクト開発者ガイドを参照してください。
Oracle Textの概要
Oracle Text (Text)は、Oracle Databaseに統合された全テキスト検索テクノロジです。Oracle Textは、ファイル・システム、データベースまたはWeb上に格納されているすべてのドキュメントまたはテキスト形式のコンテンツに索引を付けます。これらのドキュメントは、テキスト形式のコンテンツ、メタデータまたは属性に基づいて検索できます。
Oracle Textには、次の利点があります。
-
Oracle Textを使用すると、テキスト検索と通常のデータベース検索を1つのSQL文にまとめることができます。Oracle Textの索引はデータベースにあり、Oracle Textの問合せはOracle Databaseプロセス内で実行されます。オプティマイザは、どのような問合せについても最善の実行計画を選択でき、テキストと構造化基準を使用する非定型問合せに最高のパフォーマンスを提供できます。
-
Oracle Textは、XMLデータにも使用できます。特に、
XMLIndexとOracle Textの索引機能を組み合せることで、XML索引と全テキスト索引の両方の利点を活用できます。 -
Oracle TextのSQL APIにより、単純で直感的な方法でOracle Text索引を作成、メンテナンスしてテキスト検索を実行できます。
ユースケースとして、電子機器を販売するオークション・サイトのカタログ索引を作成する必要があるとします。新しい在庫が毎日追加されます。品物の説明、入札日、価格をともに格納する必要があります。アプリケーションは、複合問合せに対して適切な時間で応答する必要があります。最初に、catalog表を作成し、データを入力します。次に、Oracle Textを使用してCTXCAT索引を作成し、この索引は、SELECT ... WHERE CATSEARCH文のCATSEARCH演算子を使用した問合せが可能です。図23-4に、catalog表、そのCTXCAT索引、およびCATSEARCH演算子を使用して索引を問い合せているカタログ・アプリケーションとの関係を示します。
図4: カタログ問合せアプリケーション

関連情報:
-
XMLデータをターゲットとした全文検索の実行方法を学習するには、『Oracle XML DB開発者ガイド』
Oracle Spatial and Graphの概要
Oracle Spatial and Graph (Spatial and Graph)には、空間データおよび空間分析と、物理グラフ・アプリケーション、論理グラフ・アプリケーション、ネットワーク・グラフ・アプリケーション、ソーシャル・グラフ・アプリケーションおよびセマンティック・グラフ・アプリケーション用の高度な機能が含まれています。
空間機能は、Oracleデータベースでの空間特性コレクションの格納、取得、更新、および問合せを容易にするスキーマおよびファンクションを提供します。空間データの一例は、ロード・マップです。空間データは、オブジェクトの地球上の位置(緯度や経度など)をマップ上に示します。地図のレンダリングでは、この空間データにより、オブジェクトの位置を2次元の紙面に投影します。地理情報システム(GIS)では、このような地表面と相関する空間データを格納、取出しおよびレンダリングができます。Oracleデータベースにこの空間データが格納されており、Spatial and Graphを使用すれば、このデータの操作および取得とこのデータの他のデータへの関連付けができます。
関連項目: 『Oracle Spatial開発者ガイド』
SQLプロパティ・グラフの概要
Oracle Databaseのプロパティ・グラフ機能は、Oracle Databaseの強力なグラフ・サポートを提供します。
プロパティ・グラフ機能を使用すると、製品推奨、不正検出、リスク分析、ターゲット・マーケティングなどのアプリケーションについて、顧客データ、ソーシャル・ネットワーク、財務トランザクションなどのデータ・セット内の複雑な関係を調べ、検出できます。この高パフォーマンスグラフ機能は、60近くの事前構築済アルゴリズムを備えた、高度なグラフ問合せ言語サポート、開発者API、および分析機能を提供します。
PGQL (Property Graph Query Language)サポートなどのプロパティ・グラフ機能は、Oracle Database 12.2以降で使用できます。Oracle Databaseリリース26ai以降では、SQL:2023標準で定義されているSQLを使用してプロパティ・グラフを作成および問い合せることができることもできます。
Oracle Graph Server and Clientは、Oracle Databaseのプロパティ・グラフ機能と連携するソフトウェア・パッケージです。グラフ分析アルゴリズムを実行するためのグラフ・ツール、クライアント・ライブラリおよびOracle Graph Serverが含まれています。
関連項目