ヘッダーをスキップ

Oracle Database 概要
10gリリース2(10.2)

B19215-02
目次
目次
索引
索引

戻る 次へ

25 アプリケーション開発言語の概要

この章では、Oracleアプリケーション開発システムの概要について説明します。

この章の内容は、次のとおりです。

Oracleアプリケーション開発言語の概要

Oracle Databaseの開発者は、アプリケーション開発に使用する言語をC、C++、Java、COBOL、PL/SQLおよびVisual Basicの中から選択できます。どの言語でも、データベースの機能全体が使用可能です。言語固有の標準がすべてサポートされます。開発者は、最も慣れている言語、または特定のタスクに最も適した言語を選択できます。たとえば、アプリケーションでは、サーバー側でJavaを使用して動的Webページを作成し、PL/SQLを使用してデータベースにストアド・プロシージャを実装し、C++を使用して中間層に計算集中型のロジックを実装できます。

OracleにはPro*シリーズのプリコンパイラも用意されており、SQLとPL/SQLをC、C++、COBOLまたはFORTRANアプリケーション・プログラムに埋め込むことができます。

関連項目

  • プログラミング環境を選択する方法の詳細は、『Oracle Databaseアプリケーション開発者ガイド - 基礎編』を参照してください。

  • 『Oracle Databaseグローバリゼーション・サポート・ガイド』

  • 第26章「システム固有のデータ型」

 

C/C++プログラミング言語の概要

この項の内容は、次のとおりです。

Oracle Call Interface(OCI)の概要

Oracle Call Interface(OCI)はApplication Program Interface(API)です。このAPIにより、第三世代言語によるシステム固有のプロシージャまたはファンクション・コールを使用してOracleデータベース・サーバーにアクセスし、SQL文の実行フェーズ全体を制御するアプリケーションを作成できます。OCIは、CおよびC++のデータ型、コール規則、構文およびセマンティクスをサポートしています。OCIからOracleの表データに直接アクセスしたり、Oracle Streamsとの間でデータをエンキューおよびデキューできます。

OCIの機能は、次のとおりです。

OCIを使用すると、Cなどのホスト・プログラミング言語を使用して、Oracleデータベース内のデータとスキーマを操作できます。また、実行時にアプリケーション内でリンクできる動的ランタイム・ライブラリ(OCIライブラリ)の形式で、標準的なデータベース・アクセスおよび検索関数のライブラリが用意されています。このため、3GLプログラムにSQLやPL/SQLを埋め込む必要がありません。

OCIの重要な要素は、オブジェクト・キャッシュと呼ばれる作業領域をアプリケーション・プログラムから使用できるようにするコールの集合です。オブジェクト・キャッシュは、クライアント側にあるメモリー・ブロックで、プログラムがオブジェクト全体を格納し、サーバーとの間を往復せずにオブジェクト間をナビゲートできるようにします。

オブジェクト・キャッシュは、そのオブジェクト・キャッシュを使用するアプリケーション・プログラムが完全に制御および管理します。Oracleデータベース・サーバーは、オブジェクト・キャッシュにアクセスできません。オブジェクト・キャッシュを使用するアプリケーション・プログラムは、サーバーとのデータの一貫性を維持しながら、同時発生のアクセスによる衝突から作業領域を保護する必要があります。

OCIには、次の機能を持つ関数が用意されています。

OCIの同時実行性が向上し、個々のオブジェクトにロックをかけることができるようになりました。また、複合オブジェクト検索をサポートすることにより、パフォーマンスが向上しています。

OCIを使用する開発者は、Object Type Translator(OTT)を使用して、Oracleオブジェクト型に対応するCデータ型を生成できます。

関連項目

『Oracle Call Interfaceプログラマーズ・ガイド』 

Oracle C++ Call Interface(OCCI)の概要

Oracle C++ Call Interface(OCCI)は、オブジェクト指向機能、システム固有クラスおよびC++プログラミング言語のメソッドを使用してOracleデータベースにアクセスできるC++ APIです。OCCIインタフェースは、JDBCインタフェースに基づいて設計されているため、JDBCインタフェースと同様に使用しやすいインタフェースです。OCCIは、OCIの上に作成され、オブジェクト指向パラダイムを使用してOCIの機能とパフォーマンスを拡張します。

OCIでは、Oracle機能セット全体がサポートされ、リレーショナル・データとオブジェクト・データの両方に効率的にアクセスできます。ただし、複合的なオブジェクト・データ型を処理する場合は使用しづらい可能性があります。本来、オブジェクト型はCではサポートされていないため、Cでオブジェクト型をシミュレートするのは容易ではありません。OCCIは、OCIの機能への単純なオブジェクト指向のインタフェースを提供します。このインタフェースは、OCIに対して一連のラッパーを定義することで実現します。開発者は、OCIの基礎となる機能を使用しながら、プログラムがはるかに容易なオブジェクト指向のインタフェースを介してサーバーのオブジェクトを操作できます。

OCCIの結合リレーショナルおよびオブジェクト・インタフェース

結合リレーショナルAPIおよびオブジェクト・クラスによって、SQLはデータベースにアクセスできます。これらのインタフェースを介して、SQLはサーバー上でオブジェクトまたはリレーショナル・データの作成、操作およびフェッチを実行します。アプリケーションは、サーバー上のすべてのデータ型にアクセスできます。次のようなデータ型があります。

OCCIのナビゲーショナル・アクセス用インタフェース

ナビゲーショナル・アクセス用インタフェースは、C++のインタフェースです。これによって、C++オブジェクト形式のオブジェクト・リレーショナル・データに、SQLを使用せずにシームレスにアクセスし、変更できます。C++オブジェクトは、透過的にアクセスされ、必要に応じてデータベースに格納されます。

OCCIのナビゲーショナル・アクセス用インタフェースを使用すると、オブジェクトを取得し、そのオブジェクトから他のオブジェクトへの参照内をナビゲートできます。サーバー・オブジェクトは、C++クラスのインタフェースとしてアプリケーション・キャッシュでマテリアライズされます。アプリケーションはOCCIのオブジェクト・ナビゲーショナル・コールを使用して、サーバーのオブジェクトに対して次の機能を実行できます。

Oracle Type Translatorの概要

Object Type Translator(OTT)は、オブジェクト型に対応するC言語の構造体の宣言を自動生成するプログラムです。OTTは、Oracleのオブジェクト型に対応するC++クラス定義を生成し、OCCIアプリケーションでネイティブなC++オブジェクト・インタフェースに対して使用できるようにします。OTTは、Pro*CプリコンパイラとOCIサーバー・アクセス・パッケージを使用します。

関連項目

  • 『Oracle Call Interfaceプログラマーズ・ガイド』

  • 『Oracle C++ Call Interfaceプログラマーズ・ガイド』

  • 『Pro*C/C++ Precompilerプログラマーズ・ガイド』

 

Pro*C/C++プリコンパイラの概要

Oracleプリコンパイラは、高水準のソース・プログラムにSQL文を埋め込むことができるプログラミング・ツールです。このプリコンパイラは入力としてホスト・プログラムを受け入れ、埋込みSQL文を標準のOracleランタイム・ライブラリ・コールに変換し、通常の方法でコンパイル、リンクおよび実行できるソース・プログラムを生成します。OracleプリコンパイラはC/C++、COBOLおよびFORTRANに使用できます(ただし、使用できないシステムもあります)。

Oracle Pro*C/C++プリコンパイラを使用すると、CまたはC++のソース・ファイルにSQL文を埋め込むことができます。Pro*C/C++は入力としてソース・ファイルを読み取り、CまたはC++のソース・ファイルを出力します。このソース・ファイルでは、埋込みSQL文がOracleランタイム・ライブラリ・コールで置換されてから、CまたはC++コンパイラによりコンパイルされます。

多くのアプリケーション開発ツールとは異なり、Pro*C/C++を使用すると高度にカスタマイズしたアプリケーションを作成できます。たとえば、最新のウィンドウおよびマウス・テクノロジを取り込むユーザー・インタフェースを作成できます。また、バックグラウンドで実行されてユーザーの介入を必要としないアプリケーションも作成できます。

さらに、Pro*C/C++ではアプリケーションの詳細なチューニングが可能です。リソース使用、SQL文の実行および各種のランタイム・インジケータを緊密に監視できます。この情報を使用してプログラムのパラメータを変更し、パフォーマンスを最大化します。

プリコンパイルすることでアプリケーション開発プロセスにステップが1つ加わりますが、所要時間は短縮されます。埋込みSQL文は、手動ではなくプリコンパイラにより、Oracleランタイム・ライブラリ(SQLLIB)のコールに変換されます。また、Pro*C/C++プリコンパイラはホスト変数を分析し、構造と列のマッピングを定義し、SQLCHECK=FULLが指定されている場合には埋込みSQL文のセマンティック分析を実行します。

Oracle Pro*C/C++プリコンパイラを使用すると、プログラマはCおよびC++プログラムでオブジェクト・データ型を使用することもできます。Pro*Cを使用する開発者は、Object Type Translator(OTT)を使用して、Oracleのオブジェクト型とコレクションをCのデータ型にマップし、Pro*Cアプリケーションで使用できます。

Pro*Cは、オブジェクト型とコレクションのコンパイル時型チェック機能と、データベース型からCデータ型への自動型変換を提供しています。Pro*Cは、オブジェクトを作成したり破棄したりするためのEXEC SQL構文と、サーバーにあるオブジェクトにアクセスするための2つの方法を提供しています。

型記述の動的作成とアクセス

Oracleでは、C APIを提供しているため、型記述の動的な作成とアクセスが可能です。さらに、一時型記述、つまりDBMSに永続的に格納されない型記述も作成できます。

C APIによって、OCIAnyDataOCIAnyDataSetの作成とアクセスが可能になります。

Oracleでは、これらのデータ型に対応するSQLデータ型(OracleのOpen Type System)も用意されています。

このようなデータについて、データベース表の列とSQLの問合せを作成できます。

C APIは次の項を使用します。

Microsoftプログラミング言語の概要

Oracleには、Visual BasicやActive Server Pageなど、COMベースのプログラミング言語からの様々なデータ・アクセス方式が用意されています。たとえば、Oracle Objects for OLE(OO4O)やOracle Provider for OLE DBがあります。後者は、Microsoft社のActiveX Data Objects(ADO)で使用できます。Microsoft Officeなど、COMオートメーション・サーバーに対するサーバー側プログラミングは、COMオートメーション機能を介して使用可能です。さらに従来型のODBCアクセスは、OracleのODBCドライバを介して使用可能です。C/C++アプリケーションでは、Oracle Call Interface(OCI)も使用できます。これらのデータ・アクセス・ドライバは、Oracleで優れたパフォーマンスを発揮するように設計されており、サード・パーティのドライバでは使用できないデータベースの拡張機能を提供します。

また、OracleはOracle Data Provider for .NETを介して最適の.NETデータ・アクセス・サポートを提供し、.NETからOracle拡張機能にアクセスできるようにします。さらに、OLE DB .NETとODBC .NETもサポートしています。

この項の内容は、次のとおりです。

Open Database Connectivity

Open Database Connectivity(ODBC)は、データベースに接続し、データベースに対してSQL文を準備して実行するためのデータベース・アクセス・プロトコルです。アプリケーションをODBCドライバと組み合せることで、Excelのようなスプレッドシートに格納されているデータなど、あらゆるデータ・ソースにアクセスできます。ODBCは普及している標準APIであるため、ODBC標準に準拠するアプリケーションを記述できます。ODBCドライバは、ODBC標準とアプリケーションがアクセスする特定のデータベースの間のマッピングをすべて実行します。ODBC準拠のプログラムは、どのデータ・ソースへのアクセスにもデータ・ソース固有のドライバをそのまま使用でき、追加の開発作業を必要としません。

OracleにはODBCインタフェースが用意されているため、ODBC準拠であれば、どのようなアプリケーションからもOracleのODBCドライバを使用してOracleデータベースにアクセスできます。たとえば、Visual Basicで記述されたアプリケーションでは、ODBCを使用してOracleデータベースにアクセスできます。

Oracle Objects for OLEの概要

Oracle Objects for OLE(OO4O)を使用すると、Microsoft社のCOMオートメーションおよびActiveXテクノロジをサポートしているプログラミング言語またはスクリプト言語を使用して、Oracleデータベースに格納されているデータに容易にアクセスできます。これには、Visual Basic、Visual C++、Visual Basic For Applications(VBA)、IIS Active Server Pages(VBScriptおよびJavaScript)などが含まれます。

OO4Oは次のソフトウェア・レイヤーで構成されています。

OO4Oオートメーション・サーバー

OO4Oオートメーション・サーバーは、Oracleデータベースに接続してSQL文とPL/SQLブロックを実行し、結果にアクセスするためのCOMオートメーション・オブジェクトの集合です。

OO4Oは、Visual BasicやExcelなどで開発された典型的な2層クライアント/サーバー・アプリケーション、Microsoft Internet Information Server(IIS)やMicrosoft Transaction ServerにおけるWebサーバー・アプリケーションのように複数層アプリケーション・サーバー環境に配置されたアプリケーション・サーバーなど、様々な環境でOracleデータベースにアクセスするための主機能を備えています。

Oracle Data Control

Oracle Data Control(ODC)は、Oracleデータベースとビジュアル・コントロールとのデータ交換を簡素化するために設計されたActiveX Controlです。ビジュアル・コントロールには、Visual Basicやカスタム・コントロールをサポートする他の開発ツールの編集、テキスト、リストおよびグリッド・コントロールなどがあります。

ODCは、Oracleデータベースからの情報の流れを処理するエージェントとして機能し、それにバインドされているグリッド・コントロールなどの視覚的データ認識コントロールとしても機能します。データ・コントロールでは、データの表示や編集などの各種ユーザー・インタフェース(UI)タスクが管理されます。また、データベース問合せも実行され、結果が管理されます。

Oracle Objects for OLEのC++クラス・ライブラリ

Oracle Objects for OLEのC++クラス・ライブラリは、Oracle Object Serverへのプログラム的なアクセスを提供するC++クラスのコレクションです。このクラス・ライブラリはOLEオートメーションを使用して実装されますが、使用するのにOLE開発キットもOLE開発に関する知識も必要ありません。このライブラリにより、C++開発者はOO4OインタフェースにアクセスするCOMクライアント・コードを記述せずに済みます。

Oracle Data Provider for .NET

Oracle Data Provider for .NET(ODP.NET)は、Oracleデータベース用のデータ・プロバイダの実装です。ODP.NETはOracleシステム固有のAPIを使用して、あらゆる.NETアプリケーションからOracleのデータおよび機能への高速かつ信頼性の高いアクセスを提供します。また、Microsoft .NET Frameworkクラス・ライブラリで使用可能なクラスとインタフェースを使用し、継承します。

Oracle Provider for OLE DBを使用するプログラマのために、ADO(ActiveX Data Objects)は簡易プログラミング・モデルとしてのオートメーション・レイヤーを提供します。

ADO.NETは同様のプログラミング・モデルを提供しますが、オートメーション・レイヤーがないためパフォーマンスに優れています。さらに重要なのは、ADO.NETモデルでは、ODP.NETなどのシステム固有のプロバイダがOracle固有の機能とデータ型を公開できることです。

関連項目

『Oracle Data Provider for .NET開発者ガイド』 

レガシー言語の概要

この項の内容は、次のとおりです。

Pro*Cobolプリコンパイラの概要

Pro*COBOLプリコンパイラは、ホストCOBOLプログラムにSQL文を埋め込むためのプログラミング・ツールです。Pro*COBOLは入力としてソース・ファイルを読み取り、COBOLソース・ファイルを出力します。このソース・ファイルでは、埋込みSQL文がOracleランタイム・ライブラリ・コールで置換されてから、COBOLコンパイラによりコンパイルされます。

Pro*C/C++プリコンパイラと同様に、Pro*COBOLを使用すると高度にカスタマイズされたアプリケーションを作成できます。たとえば、最新のウィンドウおよびマウス・テクノロジを取り込むユーザー・インタフェースを作成できます。また、バックグラウンドで実行されてユーザーの介入を必要としないアプリケーションも作成できます。

さらに、Pro*COBOLではアプリケーションの詳細なチューニングが可能です。リソース使用、SQL文の実行および各種のランタイム・インジケータを緊密に監視できます。この情報を使用してプログラムのパラメータを調整し、パフォーマンスを最大化します。

関連項目

『Pro*COBOL Precompilerプログラマーズ・ガイド』 

Pro*FORTRANプリコンパイラの概要

Oracle Pro*FORTRANプリコンパイラを使用すると、ホストFORTRANプログラムにSQLを埋め込むことができます。

Pro*FORTRANは、Windowsではサポートされません。

関連項目

『Pro*FORTRAN Supplement to the Oracle Precompilers Guide』 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引