35
Oracle ホワイト・ペーパー 2009 9 Oracle Database 11g Release 2 を使用したア プリケーション開発

Oracle Database 11g Release 2を使用したアプリケーション開発

  • Upload
    leduong

  • View
    244

  • Download
    16

Embed Size (px)

Citation preview

Page 1: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー

2009 年 9 月

Oracle Database 11g Release 2 を使用したアプリケーション開発

Page 2: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発

免責事項

本書は、オラクルの一般的な製品の方向性を示すことが目的です。情報を提供することだけが目的であり、

契約とは一切関係がありません。商品、コード、または機能を提供するものではなく、購入の判断にご利

用いただくためのものではありません。オラクルの製品に関して記載されている機能の開発、リリース、

および時期については、弊社の裁量により決定されます。

Page 3: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発

はじめに .............................................................................................................................. 1

エディションベースの再定義 ............................................................................................. 2

Oracle SQL Developer ........................................................................................................ 3

Oracle SQL Developer Data Modeler ................................................................................. 7

Oracle Application Express ................................................................................................. 9

各種言語で使用できる機能 ............................................................................................... 13

.NET .................................................................................................................................. 16

PHP ................................................................................................................................... 21

PL/SQL ............................................................................................................................. 23

Java .................................................................................................................................. 25

Oracle Call Interface(OCI) ........................................................................................... 28

結論 ................................................................................................................................... 31

Page 4: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

1

はじめに

昨今の IT 組織は、さまざまなアプリケーション開発言語とツールの中から最適なものを選択する必

要があります。場合によっては、1 つの組織で複数のアプリケーション開発製品が使用されることも

あります。合併や買収によって成長した企業は、合併前の各組織で使用されていた、競合するさま

ざまなアプリケーション開発テクノロジーを管理し統合するという難題に直面しています。ビジネ

ス革新はテクノロジーによって実現され、アプリケーションを迅速に開発できる企業が競争優位性

を獲得するのです。

Oracle Database 11g は統合化された単一プラットフォームを通じて、今日のアプリケーション開発

で広く利用されているテクノロジーに、セキュリティと高いパフォーマンスおよびスケーラビリ

ティを提供します。またすべての主要なアプリケーション環境に重要な新機能を付加することで、

開発生産性を向上し、製品化までの期間を短縮します。

アプリケーション開発者は、Oracle データベースを中心としたアプリケーションの開発言語を、C、

C++、Java、COBOL、PL/SQL、Visual Basic、C#、PHP、Ruby、Python、Perl といったさまざま

な言語から選択できます。開発者はユーザーがもっとも得意とする言語あるいは特殊なタスクに最

適な言語といった基準で、開発言語を選択できます。たとえば、中間層では Java を使用して動的な

Web ページを作成し、データベースでは PL/SQL や Java でストアド・プロシージャを実装できま

す。また、中間層で C++や Java を使用して、計算集約型のロジックを実装することもできます。

Oracle Database 11g を使用すれば、業界を代表するデータベースの強力な機能とパフォーマンス

を、広く利用されているさまざまなアプリケーション開発テクノロジーに活用できます。

Page 5: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

2

図 1. Oracle Database 11g による一般的なアプリケーション開発テクノロジーのサポート

このホワイト・ペーパーでは、Oracle Database 11g Release 2 のアプリケーション開発機能につい

て説明します。

エディションベースの再定義

データベース・コンポーネントをアップグレードする際、しばしば大規模なミッション・クリティ

カル・アプリケーションが数十時間にもわたって使用できなくなります。このアプリケーション停

止時間によってユーザーへサービスを提供できないだけでなく、組織によっては毎年数百万ドルの

損失につながる場合もあります。Oracle Database 11g Release 2 には、アプリケーションの使用を中断

しない、オンライン・アプリケーション・アップグレードを可能にする画期的な新機能が導入され

ています。

エディションベースの再定義を使用すると、アプリケーション開発者やDBAはほとんど、またはまっ

たく停止することなくアプリケーションのアップグレードを実行できます。エディションと呼ばれ

る新しいデータベース構成要素は、実行中の本番アプリケーションに影響を与えずに新規コードの

インストールやデータ変更を実施できるプライバシ・メカニズムを提供しています。必要な変更を

非公開ですべて実施した後で、ユーザーにこの変更を公開できます。エディションベースの再定義

をサポートするため、エディショニング・ビューと呼ばれる新しいビューとクロスエディション・

トリガーと呼ばれる新しいトリガーが導入されました。

すべてのデータベースに、尐なくとも 1 つのエディションが含まれます。DBA は既存エディション

の子エディションとして新しいエディションを作成します。親エディションが引き続き使用されて

Page 6: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

3

いる間に、子エディションで変更を実施します。必要に応じて、旧エディションからは見えない新

しい列や表にのみデータを書き込むことによって、データ変更が安全に実行されます。エディショ

ニング・ビューでは、変更された表がエディションごとに異なって表示されるため、各エディショ

ンの列だけを確認できます。クロスエディション・トリガーによって、旧エディションによるデー

タ変更が新エディションの列に反映されます。変更の反映が完了したら、一部のユーザーによって

新エディションの使用が開始され、その他のユーザーは引き続き旧エディションを使用します。こ

こでもクロスエディション・トリガーによって、新エディションによるデータ変更が旧エディショ

ンの列に反映されます。

完全な高可用性データベース・ソリューションであれば、ハードウェアとソフトウェアの計画変更

だけでなく、計画外変更にも対応する必要があります。エディションベースの再定義によって、Oracle

Real Application Clusters(Oracle RAC)、Oracle Database フラッシュバック・テクノロジー、Oracle Data

Guard などのその他の Oracle Database 高可用性テクノロジーが補完されます。これらのテクノロジー

を組み合わせて使用すると、オンラインのデータベース・ソフトウェア更新やオンラインのデータ

ベース保守、またオンラインのアプリケーション・アップグレードを通じて、ハードウェア障害を

防止し、最大可用性を提供できます。

Oracle Database 11g の高可用性機能について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/deploy/availability/index.html

Oracle SQL Developer

Oracle SQL Developer は、生産性の向上とデータベース開発作業の簡素化を実現する、グラフィカル

なインタフェースを備えた無償のツールです。Oracle データベース開発者向けに設計されたこのツー

ルを使用すると、開発サイクルを簡素化できます。また、SQL や PL/SQL のコードを開発したりデ

バッグしたりするために、サード・パーティ製ツールを購入する必要が軽減されます。Oracle SQL

Developer を使用すると、データベース・オブジェクトの参照、作成、変更、SQL 文の実行、PL/SQL

の編集とデバッグ、広範な事前定義のレポートの実行、ユーザー固有のレポートの作成などが可能

になります。また、Oracle SQL Developer を使用して、Oracle In-Memory Database Cache と Oracle

TimesTen In-Memory Database 内のオブジェクトを管理することもできます。

Oracle SQL Developer について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/products/database/sql_developer/index.html

Page 7: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

4

図 2. Oracle SQL Developer

オブジェクトの作成と編集

標準の Oracle データベース認証を使用して、あらゆる Oracle データベースのターゲット・スキーマ

に接続できます。接続が完了したら、データベース・オブジェクトを作成、編集、更新できます。

新しいオブジェクトが作成されるか既存のオブジェクトが編集されると、これらの変更に対する

DDLを確認できます。スキーマ内の 1つ以上のオブジェクトに対して完全なDDLを作成する場合は、

DDL のエクスポート・オプションを利用します。

Page 8: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

5

SQL Worksheet

SQL Worksheet は、SQL、PL/SQL、SQL*Plus コマンドの作成をサポートします。これらのコマンド

を個別に実行することも、連続して実行することもできます。SQL History オプションを使用すると、

以前に実行したコマンドを簡単にリコールできます。またEXPLAIN PLANオプションを使用すると、

選択した文に対する実行計画が表示されます。

PL/SQL の編集とデバッグ

堅牢な編集環境を使用して、PL/SQL を作成および編集し、コード・フォーマット機能を利用し、ブッ

クマークを追加し、コード・インサイトを利用できます。PL/SQL をデバッグする場合は、ブレーク・

ポイント、スマート・データ、デバッガ・スタック、およびウォッチのすべてを使用できます。ユー

ザーは、デバッグ中にこれらの機能を使用して、ブレーク・ポイントを設定し、コードを実行して

テストし、代替データを提供できます。スニペットを使用すると、エディタで PL/SQL を作成したり、

SQL Worksheet を使用したりすることが容易になります。スニペットとは、SQL ファンクション、オ

プティマイザ・ヒント、またはさまざまな PL/SQL プログラミング手法のようなコード片のことであ

り、ユーザーはこれらを PL/SQL エディタや SQL Worksheet にドラッグできます。

階層プロファイラ

Oracle Database 11g に接続しているユーザーは、PL/SQL の階層プロファイラを使用すると、競合が

発生している個所や遅延を特定できるため、コードを確認してチューニングできます。

レポート

SQL Developer は、データベースおよびそのオブジェクトに関する多くの定義済みレポートを提供し

ています。どのレポートも SQL Worksheet に渡すことで、さらに編集を加えることができます。SQL

Developer では、ユーザー定義レポートを作成して保存および共有できるため、繰り返し使用できま

す。レポートのスタイルには、グラフ・レポートとマスター・ディテール・レポートがあります。

また Oracle SQL Developer では、データ・ディクショナリ・レポート、ASH レポート、AWR レポー

トが事前定義されています。

移行(Oracle Database への移行)

SQL Developer に含まれている直感的なツールを使用すると、簡単なポイント・アンド・クリック方

式でサード・パーティ・データベースから Oracle Database へ、スキーマ・オブジェクト、トリガー、

ストアド・プロシージャなどを移行できます。現在の SQL Developer は、Microsoft SQL Server、Microsoft

Access、MySQL、Sybase Adaptive Server から Oracle への移行をサポートしています。

Oracle SQL Developer に含まれる移行機能は次のとおりです。

Oracle SQL Developer と完全に統合されているため、ユーザーはサード・パーティ・データベー

スを参照し、選択したオブジェクトを Oracle に移行して使用するという作業を、この 1 つのツー

ルだけで実行できます。

Quick Migration Wizard により、最小限の権限で移行を実行できます。DBA 権限は必要ありませ

ん。

Page 9: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

6

手順を追った移行により、移行プロセスの各段階をコントロールできます。

細かい単位での移行が可能なので、移行対象として特定のオブジェクトを選択できます。

複雑なオブジェクト移行がサポートされているため、ストアド・プロシージャ、トリガー、ビュー

を移行できます。

Translation Scratch Editor により、1 つの文による移行が可能になります。

Translation Difference Viewer により、文とブロックを対応させ、並べて比較できます。

Oracle Application Express(Oracle APEX)のサポート

Oracle SQL Developer を使用すると、Oracle Application Express 3.0.1 以上のオブジェクトを管理でき

ます。この機能は SQL Developer 1.2 で導入されており、次の機能を提供します。

データベース・スキーマ(アプリケーション・レベルまたはページ・レベル)に関連付けられた

すべての Oracle APEX アプリケーションへの接続とその表示

作業領域、アプリケーション、ページ、スキーマに関する各種レポートの実行

コンテキスト・メニューを使用した、Oracle APEX アプリケーションのエクスポートとインポー

SQL チューニング

SQL Developer には、次の SQL チューニング機能が含まれています。

実行計画の表示

自動トレースを使用したトレース情報の表示

階層プロファイラ

リアルタイム監視

SQL トレース・ファイルの解析

バージョン管理

SQL Developer は、CVS および Subversion によるバージョン管理システムとの緊密な統合機能を提供

します。これらのバージョン管理システムでは、リポジトリへのアクセスが必要になります。使用

できるリポジトリごとに接続を作成する必要があります。ソース・コードはリポジトリ内に格納さ

れ、保持されます。SQL Developer を使用すると、ユーザーはバージョン管理システムに配置したファ

イルをローカル・ファイル・システムにチェックアウトできます。ファイルは再びチェックインさ

れるまで、ローカルでのみ作業可能であり、破棄することもできます。SQL Developer はチェックイ

ン時の比較およびマージ機能を提供しています。

SQL Developer のファイル・ナビゲータを使用すると、バージョン管理されているかどうかに関係な

く、柔軟にファイルを表示して開くことができます。

Page 10: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

7

スキーマのコピーと比較

複数のスキーマを使用すると、多くの場合、スキーマ間でオブジェクトとそのデータをコピーする

必要が発生します。SQL Developer はスキーマ間でオブジェクトをコピーおよびエクスポートできる

ユーティリティを提供しています。スキーマ間の差異を特定する Schema Diff ユーティリティは、複

数の環境(開発とテストなど)にまたがるデータベース・オブジェクトを管理する際に有効です。

Oracle SQL Developer Data Modeler

Oracle SQL Developer Data Modeler はグラフィカル・データ・モデリング・ツールであり、データ・

アーキテクト、データベース管理者、アプリケーション開発者、およびユーザー間のコミュニケー

ションを促進かつ強化するとともに、データ・モデリングの開発プロセス自体を簡素化します。SQL

Developer Data Modeler を使用すると、論理モデル、リレーショナル・モデル、物理モデル、多次元

モデル、データ型モデルを作成、参照、編集できます。また DDL スクリプトが生成されるため、生

産性が向上するとともに標準の使用が促進されます。Oracle SQL Developer Data Modeler は、独立し

たスタンドアロン製品です。

このツールの導入は、開発生産性を向上するとともに、データベース開発者コミュニティとユーザー

との尽力によって基準と品質の向上を推進することへのオラクルの取組みを示すものです。SQL

Developer Data Modeler は、ビジネス・アーキテクトから DBA まで、またデータベース開発者からア

プリケーション開発者まで、すべてのデータベース・データ・モデラー向けに設計されています。

SQL Developer Data Modeler は、データ・モデリング開発タスクを簡素化するとともに、開発者とビ

ジネス・ユーザー間の強力なコミュニケーション・ツールとしての役割を果たします。

Oracle SQL Developer Data Modeler は、次のようなデータ関連モデリングを行う際のモデルから実装

までの完全なソリューションを提供します。

新規の業務系データベースまたはビジネス・インテリジェンス関連のデータベース

既存のデータベース実装のキャプチャ、グラフィカル表現と関連メタデータの文書化

新規データ要件の追加と実装

Oracle SQL Developer Data Modeler は、データ・アーキテクトからデータベース管理者や開発者まで、

データとそのデータ特性を示す一貫した分かりやすい明確な描写を求めるすべてのユーザーを対象

としています。

Oracle SQL Developer Data Modeler について、詳しくは次の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/products/database/datamodeler/index.html

Page 11: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

8

図 3. Oracle SQL Developer Data Modeler

SQL Developer Data Modeler レイヤー

SQL Developer Data Modeler のモデルは、論理モデル、リレーショナル・モデル、物理モデルという

厳密に同期された 3 つのレイヤーで構成されています。論理レイヤーからリレーショナル・レイヤー

へ、さらに物理レイヤーへと移動する際、1 対多の実装が実施されます。つまり、階層内の次の下位

レベルに対して複数のインスタンスを作成できます。上位レイヤーでのプロパティ・セットは下位

レベルに反映され、維持されます。これは、アプリケーションで複数の物理配置や顧客向け実装を

サポートする場合に有効です。

インポート

SQL Developer Data Modeler を使用すると、各種ソースのメタデータを含む、さまざまな形式のモデ

ルをインポートできます。このため、組織は現在のプラットフォームにある既存の業務系データベー

スを利用して、別のツールで構築されたモデルをインポートできます。

SQL Developer Data Modeler は次のデータをインポートします。

標準 DDL スクリプトに含まれる詳細データ

データベースのデータ・ディクショナリに含まれるスキーマと物理的な詳細データ

Oracle Designer リポジトリに含まれるエンティティとスキーマ・モデルのメタデータ

キューブ・ビューまたは XMLA ファイルを使用した多次元モデル

ネーミング規則向けの名前の標準化および短縮形ファイルとダイアグラム・レイアウトを備えた

CA ERwin Data Modeler モデル

Page 12: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

9

形式、サブビュー、表示

ユーザーは、単一または一連のオブジェクトの色、フォント、大きさをコントロールできます。サ

ブビューは、ダイアグラム上の、多くの場合関連付けられたオブジェクトのグループです。サブ

ビューで変更が実施されると、メイン・モデルへ反映されます。リレーショナル・モデルのサブビュー

は、複数のスキーマが一度にインポートされる際に、データベース・スキーマごとに自動的に作成

されます。サブビューを使用すると、より大きなモデルの保守が簡単になります。

レポート・リポジトリ

SQL Developer Data Modeler ではレポート・リポジトリがサポートされているため、ユーザーは SQL

問合せを保存および実行して、設計の詳細情報を収集できます。一連の事前定義レポートが、Oracle

SQL Developer の拡張機能として提供されています。ユーザーは各自の設計をリポジトリにエクス

ポートし、SQL Developer を使用して設計に対するレポートを実行したり、独自の SQL 問合せレポー

トを作成したりできます。

Oracle Application Express

Oracle Application Express(Oracle APEX、旧称 Oracle HTML DB)は、Oracle Database 向けの迅速な

Web アプリケーション開発ツールです。Web ブラウザと多尐のプログラミング経験さえあれば、高

速かつセキュアなプロフェッショナル・アプリケーションを開発し、配置できます。Oracle Application

Express のアプリケーションの開発、配置、実行において、クライアント・ソフトウェアは必要あり

ません。Web 向けに構築された Oracle Application Express は、ワークグループ・データベースの特質

(生産性、使いやすさ、柔軟性)と、エンタープライズ・データベースの特質(セキュリティ、整

合性、スケーラビリティ、可用性)を兹ね備えています。Oracle Application Express は暫定的な部門

アプリケーションを素早く構築するために最適なツールです。

Oracle Application Express は次の 3 つの主要ツールを提供します。

Application Builder - データベース・ドリブンな動的 Web アプリケーションの開発

SQL Workshop - データベース・オブジェクトの表示、非定型 SQL 問合せの実行、グラフィカル

なクエリー・ビルダー

ユーティリティ - フラット・ファイルおよびスプレッドシートを使用したデータのロードとアン

ロード

Oracle Application Express を利用すると、データベース・データに関するレポートを作成するアプリ

ケーションを簡単に構築できます。レポートは、他のレポートに対するリンクが張られたハイパー

テキストとして生成できます。これにより、Web サイトをナビゲートするようにデータベース内の

データを探索できます。レポート内の各列を、他のレポート、グラフ、データ入力フォームに簡単

にリンクさせることができます。豊富な機能を持つグラフ・エンジンによって、SQL 問合せがグラ

フィカルに表現されます。また、Oracle Application Express は優れたデータベース・データの編集機

能を備えており、多数の宣言的なフォーム・コントロール(ラジオ・ボタン、チェック・ボックス、

選択リスト、シャトル、テキスト・エディタ、日付ピッカーなど)を提供しています。

多くの組織で、ワークグループ・データベースが急増しています。これらのデータベースはそもそ

Page 13: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

10

も、ユーザーがコントロールできる当座のソリューションが必要とされたことで作成されました。

それぞれの部門が戦術上の課題を解決するために、一元化されていないデータベースを絶えず構築

しています。非効率なその場限りのデータベースが何百も配置されているため、コストが跳ね上が

ります。また、これらのデータベースにはビジネス上クリティカルなデータが含まれることがよく

あります。多くの場合、セキュリティ、共有、データ精度、高可用性に問題があります。残念なこ

とに、これらのデータベースのユーザーが IT 組織の足を引っ張る結果になります。

Oracle Application Express の統合モデルは分散された開発環境に一元化管理機能を提供します。顧客

は Oracle Application Express を使用して、ワークグループ・データとアプリケーション開発サービス

を Oracle Database 11g に統合できます。開発者はアプリケーション開発に対するコントロールを完全

に維持できる一方で、IT 組織は本格的なデータ管理機能を提供できます。エンドユーザーのデータ・

アクセスは、最新の Web ベース・アプリケーションを介して劇的に改善されます。Oracle Database 11g

は、Oracle Application Express アプリケーションに安全性、信頼性、スケーラビリティをもたらしま

す。Oracle Application Express は、ブラウザベースの設計時インタフェースや宣言型のプログラミン

グ・フレームワーク、そして簡単なウィザードを備えているため、Microsoft Access などのマルチユー

ザー向けワークグループ・データベース・アプリケーションの置換えに最適なツールです。

Web 開発経験をほとんど、またはまったく持たないアプリケーション開発者でも SQL を知っていれ

ば、Oracle Application Express を利用して簡単にデータベース・アプリケーションを作成できます。

スクリプト言語や複雑な配置フレームワークを習得する必要はありません。いくつかの問合せを書

いて、提供されたユーザー・インタフェース・テーマおよびフォーム・コントロールから適切なも

のを選択するだけで、専門性の高いセキュアでスケーラブルなアプリケーションを開発できます。

Oracle Application Express について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/products/database/application_express/index.html

図 4. Oracle Application Express

インタラクティブ・レポート

インタラクティブ・レポートを使用すると、レポートをカスタマイズすることができます。対象と

なる列を選択し、フィルタやハイライト、ソートを適用することで、レポート・データのレイアウ

トを変更できます。また、ブレーク、集計、各種グラフ、および独自の計算を定義することもでき

ます。複数の種類のレポートを作成し、名前をつけて保存して、カンマ区切りのファイル(CSV)

Page 14: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

11

形式、Microsoft Excel(XLS)形式、Adobe Portable Document Format(PDF)形式、Microsoft Word リッ

チ・テキスト形式(RTF)などのさまざまなファイル形式にダウンロードできます。

図 5. Oracle Application Express のインタラクティブ・レポート

Flash グラフ

Adobe の Flash Player ブラウザ・プラグインを使用してグラフを表示するようなアプリケーションを

構築することができます。サポートされている Flash グラフは、18 種類あります。作成段階で、選

択したタイプのグラフをプレビュー表示し、生成するグラフの大半の属性を設定できます。新しい

Flash グラフを作成するだけでなく、既存の SVG グラフを Flash グラフに変換することもできます。

Flash グラフを使用すると、ユーザー・インタフェースをより自由にコントロールできる上に、非同

期更新などの機能を追加することもできます。

Page 15: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

12

PDF 印刷

レポート領域を PDF にエクスポートし、レポートを印刷することができます。また Oracle Business

Intelligence(BI)Publisher と統合されているため、"高度に書式化された"レポートを生成することも

できます。Oracle BI Publisher は Microsoft Word のプラグインを提供しており、このプラグインを使

用して複数の表(マスターとディテールなど)やグラフ、また Oracle Application Express から渡され

たその他のパラメータを組み込んだ複雑なレポート・テンプレートを開発できます。

Oracle Forms の変換

Oracle Application Express 3.2 では、Oracle Forms ソースを Oracle Application Express プロジェクトに

ロードして、最初の APEX アプリケーションを生成できます。この機能によって、大半のユーザー・

インタフェース・コンポーネントが自動的に変換されますが、トリガー、プログラム・ユニット、

または PL/SQL ライブラリ内に実装されたビジネス・ロジックは変換されません。Oracle Forms の定

義を Oracle Application Express プロジェクトにロードすると、変換プロジェクトを分析および追跡で

きます。初期設計が生成されると、Oracle Application Express 特有の迅速なアプリケーション開発機

能を使用して、生成されたアプリケーションを強化および拡張できます。生成が完了したら、Oracle

Forms 内のビジネス・ロジックを再実装し、Oracle Application Express ビルダーに組み込まれたウィ

ザードを使用して、インタラクティブ・レポートや Flash グラフなどの Web 2.0 機能を利用した新し

い画面を追加できます。

Microsoft Access の移行

Microsoft Access の移行プロセスに従うと、Microsoft Access アプリケーションを基にした Oracle

Application Express アプリケーションを生成できます。移行プロセスには、次の手順が含まれます。

エクスポート・ツールを使用して、Microsoft Access からメタデータをエクスポートします。

Oracle SQL Developer Migration(Oracle SQL Developer 1.2以上に同梱)を使用して、Microsoft Access

データベースを Oracle データベースに移行します。

Oracle Application Express の作業領域を作成し、移行プロジェクトを作成します。

取得したオブジェクトを検証し、更新します。

Oracle Application Express アプリケーションを生成します。

セキュリティの強化

Web アプリケーションを開発する際のセキュリティ上のベスト・プラクティスは、フットプリント

を最小限にし、セッション・ステートの整合性を保護し、ブラウザとサーバー間で転送されるデー

タが損なわれないようにすることです。これらのベスト・プラクティスを実現するため、Oracle

Application Express Release 3.2 のセキュリティ対策は改善され、より宣言的で強力な環境が提供され

ています。

おもな拡張機能は次のとおりです。

セッション・ステートの宣言的な暗号化

Page 16: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

13

最大アイドル時間および最大セッション継続期間に対するセッション・タイムアウトの宣言的な

指定

セッション・ステートへ保存せずにパスワードを入力できる新しいパスワード項目タイプの作成

フットプリントの最小化を目的としたその他の機能には、Oracle Application Express データベース・

アカウントによって要求される権限の軽減、データベース監視機能のデフォルトでの無効化、管理

および開発スイート・アプリケーション向けの HTTPS の要求機能があります。また、アカウント・

パスワードの作成または更新時に、指定した期間使用されていないパスワードのみに限定したり、

新規インストールでサービス管理者のアカウント・パスワードが強力なパスワード・ポリシーに準

拠するよう義務付けたりすることができます。

Oracle Application Express のドキュメントも改善され、セキュアな Web アプリケーションを構築する

ためのリソースが追加されました。これらの新機能は、既存の Oracle Application Express のセキュリ

ティ機能(柔軟な認証、認可スキーム、URL 改ざんからの保護など)を補うものです。

各種言語で使用できる機能

次のアプリケーション開発機能は、複数のプログラミング言語で使用できます。一部の機能はデー

タベース・サーバー内に実装されています。クライアント側機能は Oracle のネイティブ C プログラ

ミング・インタフェースである Oracle Call Interface(OCI)によって提供されます。また、.NET、PHP、

Java(JDBC-OCI 経由)、各種プリコンパイラ(Pro*C、Pro*Cobol、SQLJ)、Oracle C++ Call Inerface

(OCCI)などの、OCI 上に構築されたプログラミング言語インタフェースからもこれらの機能を使

用できます。

クライアント問合せ結果キャッシュ

この機能は、問合せ結果をクライアント・メモリ(OCI ドライバ内)にキャッシングし、問合せが

継続的に実行されているかのように、データベース変更に合わせて結果セットのデータを維持しま

す。ローカルのクライアント・メモリから結果を取得する場合、データベース・コールの実行や問

合せの再処理、またはディスクからの結果取得よりもはるかに高速に実行できるため、頻繁に実行

される問合せの結果がキャッシュされていると、パフォーマンスは大幅に向上します。クライアン

ト問合せ結果キャッシュ(CQRC)により、問合せの処理に消費されるはずであったサーバーCPU

も削減されます。結果として、サーバーのスケーラビリティも向上します。標準ベンチマークの社

内テストでは、応答時間が最大で 22%向上し、サーバーCPU 消費が 1/6 に削減されました。

Oracle Database 11g Release 2 の表属性を使用すると、アプリケーションから完全に透過的に結果セッ

トをキャッシングできます。表属性を指定するには、次の文を実行します。ALTER TABLE sales

RESULT_CACHE (MODE FORCE);

キャッシュすべき表として注釈が付けられている場合、この表に対するすべての問合せはクライア

ントまたはサーバー・キャッシュ内にキャッシングするための候補になります。これにより、アプ

リケーションを変更して問合せレベルのヒントを付加する必要がなくなります。

また、/* + result_cache */ヒントを使用して問合せに注釈を付けることでも、クライアント

問合せ結果キャッシュを有効化できます。

select /*+ result_cache */ * from employees

Page 17: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

14

サーバー問合せ結果キャッシュ

問合せ結果をデータベース側(共有プール内)にキャッシングすることもできます。CQRC(前項の

機能を参照)と同様に、/* + result_cache */ヒントを使用して問合せに注釈を付けると、結

果セットがキャッシングされます。

データベース側では言語や API に関係なく、すべてのデータベース・ユーザーがサーバー問合せ結

果キャッシュを使用できますが、CQRC とは違いデータベース・ラウンドトリップが必要になりま

す。

また初期化パラメータ RESULT_CACHE_MODEを使用すると、サーバー問合せ結果キャッシュをすべ

ての問合せ(可能な場合)に使用するのか、またはヒント付き問合せに対してのみ使用するのかを

コントロールできます。

データベース常駐接続プーリング

データベース常駐接続プーリング(DRCP)は、データベース・リソースの使用を最小限に抑えて、

多数の接続を実現したい環境でのスケーラビリティ要件に対応した機能です。図 6 に示したとおり、

アプリケーションがデータベース接続を要求し、比較的短期間それを使用した後に解放する、とい

うような一般的なシナリオ向けに、DRCP はデータベース・サーバー内に接続プールを提供します。

図 6. DRCP アーキテクチャ

DRCP は PHP などの、中間層プロセス間で接続を共有するための中間層接続プールを持たない、プ

ロセスベースのシステムでもっとも重要な役割を果たします。また、複数の中間層ホストで 1 つの

データベース・サーバー・プロセス・プールが共有される場合にも非常に有効です。これにより、

Page 18: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

15

多数のクライアント接続をサポートするために必要な主要データベース・リソースが大幅に削減さ

れるため、データベース層のメモリ・フットプリントが削減され、中間層とデータベース層の両方

のスケーラビリティが向上します。またすぐに使用できるサーバーのプールがあることで、クライ

アント接続を作成し、解消するためのコストを削減できるというメリットもあります。

DRCP を使用すると、1 つのデータベース・インスタンスで最大数万の同時接続を可能にするスケー

ラビリティが得られます。社内の DRCP テストでは、汎用ホスト・サーバー上の単一データベース・

インスタンスに対して 2 万の同時ユーザーが実現されました。

現在、DRCP は OCI ドライバを介して C および C++から、OCI8 アダプタを介して PHP から、また

cx_Oracle アダプタを介して Python から使用できます。

詳しくは、PHP に関する次のホワイト・ペーパーを参照してください。

http://www.oracle.com/technetwork/topics/php/whatsnew/php-scalability-ha-twp-128842.pdf

IPv6 サポート

クライアント・アプリケーションまたは中間層アプリケーションは IPv6 を使用して、デュアル・ス

タックまたは IPv6 のみのホスト上で実行されている単一インスタンス・データベースに接続できま

す。

アプリケーション向けの高速な接続時フェイルオーバー

新しい Oracle Net Services パラメータを使用すると、接続確立時に高速なフェイルオーバーを実現で

きます。システム・レベルの TCP タイムアウトを待たなくても、ネットワーク待機時間に基づいて

秒単位で接続レベルのタイムアウトを設定できます。また、接続確立時に透過的なリトライを実施

するリトライ回数を設定できます。詳しくは、Net Services のドキュメントを参照してください。

セキュアな LOB と LOB データのプリフェッチ

LOB データのストレージ要件を軽減し、アクセス・パフォーマンスを向上するため、いくつかの機

能強化が実施されました。

Oracle SecureFiles(STORE as SECUREFILE オプションを指定された LOB)に対しては、CREATE

TABLE 文および ALTER TABLE 文で SQL パラメータ DEDUPLICATE を指定できます。これにより、

LOB 列で 2 行以上にわたって同一の値を取る LOB データは同じデータ・ブロックを共有するようア

プリケーションで指定できるため、ディスク領域が節約されます。同様に、COMPRESS パラメータ

を指定すると LOB 圧縮が有効化されます。ENCRYPT パラメータを指定すると LOB 暗号化が有効に

なり、任意で暗号化アルゴリズムを選ぶこともできます。それぞれの LOB 列には、他の LOB 列や

非 LOB 列での暗号化とは関係なく、固有の暗号化を指定できます。

小さい LOB の問合せパフォーマンスを向上するには、LOB データとそのデータ長をプリフェッチし

てキャッシュし、ロケータをフェッチする方法があります。

REF カーソルのプリフェッチ

Oracle Database 11g Release 2 では、REF カーソルのプリフェッチがサポートされています。このプリ

フェッチにより、REF カーソルに加えて同じラウンドトリップで最初の行が取得されるため、ビジ

Page 19: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

16

ネス・ロジックにストアド・プロシージャを使用している場合のパフォーマンスが向上します。

.NET

オラクルでは.NET 開発を簡素化するために、Oracle Developer Tools for Visual Studio、Oracle Data

Provider for .NET、Oracle Database Extensions for .NET、および Oracle Providers for ASP.NET という 4

つのコンポーネントが提供されています。これらのコンポーネントは無償であり、初心者のデータ

ベース・プログラマーでも上級プログラマーでも簡単に使用することが可能です。これらの製品で

は、ADO.NET などの既存の Microsoft 標準や Visual Studio などのツールが完全にサポートされてい

るだけでなく、Oracle Real Application Clusters や Oracle Advanced Security などの Oracle Database の強

力なエンタープライズ・テクノロジーが利用できます。

Oracle Developer Tools for Visual Studio(ODT)は、Microsoft Visual Studio 向けに緊密に統合された"

アドイン"です。Oracle Developer Tools for Visual Studio は無償であり、Visual Studio 2008、Visual Studio

2005、Visual Studio .NET 2003 で利用できます。(2010 年 8 月現在、Visual Studio 2010 にも対応して

おります。)

Oracle Developer Tools for Visual Studio を使用すると、Oracle 向けの.NET コードの開発が容易かつ迅

速になり、開発者は開発ライフ・サイクル全体を通して Visual Studio から作業を実施できます。ま

た、統合ビジュアル・デザイナを使用して簡単に Oracle スキーマ・オブジェクトを参照および編集

できる上に、単純なドラッグ・アンド・ドロップ操作で.NET コードを自動的に生成できます。この

コード生成機能があるため、ほとんどコーディングしなくても、ASP.NET Web アプリケーション、

クライアント/サーバー・アプリケーション、Microsoft Office アプリケーションを簡単に開発できま

す。開発者は、表データの簡単な変更、Oracle SQL 文の実行、PL/SQL コードの編集およびデバッ

グ、.NET ストアド・プロシージャの開発および配置を簡単に実行できます。また、組込みの状況依

存オンライン・ヘルプ(Oracle SQL や PL/SQL のユーザー・ガイドを含む)が提供されているため、

Oracle のドキュメントをいつでも簡単に参照できます。

Oracle Developer Tools for Visual Studio について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/tech/dotnet/tools

Oracle Data Provider for .NET(ODP.NET)は、.NET 環境から Oracle データベースへのデータ・アク

セスを最適化します。ODP.NET を使用すると、Oracle Real Application Clusters、パフォーマンス最適

化、Oracle XML DB、高度なセキュリティ機能など、先進の Oracle Database 機能を利用できます。ま

た、プログラマーは自分の開発する.NET アプリケーションで、高いパフォーマンスと柔軟性、およ

び機能選択性を実現できます。これにより、開発者は Oracle が提供する強力なデータ管理機能を損

なうことなく、.NET を利用できます。ODP.NET は、32 ビットの Windows や Windows x64 向けの.NET

Framework を含む.NET Framework 1.0 以上をネイティブ・サポートしています。

Oracle Data Provider for .NET について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/tech/windows/odpnet/index.html

Oracle Database Extensions for .NET は Windows 上で動作する Oracle Database 11g の機能であり、C#や

VB.NET などの.NET 管理言語を使用したストアド・プロシージャやファンクションの開発、配置、

実行を容易にします。.NET ストアド・プロシージャやストアド・ファンクションは、Microsoft Visual

Studio を使用して開発され、緊密に統合された.NET Deployment Wizard を使用して配置されます。こ

Page 20: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

17

のウィザードは Oracle Developer Tools for Visual Studio が提供する機能です。配置された.NET ストア

ド・プロシージャは、.NET アプリケーション・コード内や SQL または PL/SQL から、また別の.NET、

PL/SQL、Java のストアド・プロシージャから、もしくはトリガーやストアド・プロシージャやスト

アド・ファンクションの呼出しが可能な場所ならどこからでも呼び出すことができます。

Oracle Database Extensions for .NET について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/tech/dotnet/ode

Oracle Providers for ASP.NET は一連の ASP.NET プロバイダであり、Oracle Database をデータソース

として使用しながら、ASP.NET プロバイダ・モデルへの準拠を実現します。これらのプロバイダは、

Oracle Database 11g の開発者向け新機能です。開発者は、ショッピング・カートやユーザー情報など

のアプリケーション・ステートを Oracle の永続データソースに保存できます。ASP.NET 開発者

は、.NET Frameworkに含まれる ASP.NETサービスおよびコントロールを介して Web アプリケーショ

ンを構築できるため、生産性が向上します。構成ファイルで Oracle Providers for ASP.NET をデフォ

ルト・プロバイダとして構成するだけで、ASP.NET アプリケーションから各種のアプリケーション・

ステート・タイプを Oracle データベースに保存できます。オラクルが提供するプロバイダは、次の

とおりです。

メンバーシップ・プロバイダ

ロール・プロバイダ

サイト・マップ・プロバイダ

セッション・ステート・プロバイダ

プロファイル・プロバイダ

Web イベント・プロバイダ

Web パーツ・パーソナライズ・プロバイダ

キャッシュ依存性プロバイダ

Oracle Providers for ASP.NET について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/tech/dotnet/index-087367.html

Visual Studio 2008 のサポート

オラクルは、Visual Studio の最新バージョンがリリースされるとすぐにサポートを開始してきまし

た。この長い歴史を受け継いで、Oracle Developer Tools for Visual Studio は Visual Studio 2008 を完全

にサポートしています。以前のリリースで Oracle 開発者が活用してきたすべての生産性向上ツール

は、Visual Studio 2008 でも使用できます。(2010 年 8 月現在、Visual Studio 2010 にも対応しており

ます。)

Page 21: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

18

図 7. Oracle Developer Tools for Visual Studio

Visual Studio アプリケーションのパフォーマンス・チューニング・ツール

Oracle Database 11gのOracle Developer Tools for Visual Studio向け新機能の重点領域の 1つにあげられ

るのが、アプリケーションのパフォーマンス・チューニングです。Visual Studio に組み込まれた新し

い Oracle Performance Analyzer によって、指定された期間中のアプリケーションによる Oracle データ

ベースの使用状況が調査され、SQL の変更や表への索引の追加など、アプリケーション・パフォー

マンスを向上するための推奨事項が提供されます。場合によっては、ボタンをクリックするだけで

推奨事項を自動的に実装できます。Oracle Performance Analyzer は、Automatic Workload Repository

(AWR)のスナップショットと Automatic Database Diagnostic Monitor(ADDM)のタスクを使用して

実装されています。

開発者は SQL Tuning Advisor を使用して簡単に任意の SQL 文をチューニングできます。このツール

にはVisual StudioのOracle Query Windowの"Tune SQL"メニューから簡単にアクセスでき、Oracle SQL

文のパフォーマンス向上方法を説明した推奨事項がすぐに表示されます。

Visual Studio のアプリケーション・ライフ・サイクル管理とソース管理の統合

この機能も 11g の新機能ですが、.NET 開発者は Visual Studio 以外の別のツールを使用することなく、

データベース・アプリケーションの開発ライフ・サイクルにおけるほとんどすべてのタスクを完了

できるようになりました。たとえば、グラフィカル・デザイナを使用すると、ユーザーやロールを

作成し、権限を付与し、Oracle またはサード・パーティのデータベースから表や表データをインポー

トし、図形を使用して SQL 文を設計し、アプリケーションが使用するすべての Oracle スキーマ・オ

Page 22: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

19

ブジェクトの SQL スクリプトを生成し、組込みの SQL*Plus エンジンで SQL スクリプトを編集およ

び実行し、アプリケーションおよび SQL スクリプトをソース管理システムにチェックインすること

ができます。Microsoft Visual SourceSafe、Microsoft Team Foundation Server、Subversion を含むほとん

どのソース管理システムがサポートされています。

パフォーマンスの強化

ODP.NET 11g では、データ・アクセスのパフォーマンスを劇的に向上するパフォーマンス強化の新

機能が導入されています。開発者は.NET コードを変更することなく、これらの新機能を使用できま

す。含まれる機能は次のとおりです。

新しい ODP.NET のセルフチューニング機能により、問合せがより高速に実行されます。このパ

フォーマンス向上は、実行時にステートメント・キャッシュ・サイズを動的に最適化することで

実現されます。ODP.NET は文の使用状況とロード条件を監視し、ステートメント・キャッシュ・

サイズを絶え間なく調整します。その結果、1 日や 1 カ月のうちにロードや問合せ頻度が変わっ

ても、ODP.NET はステートメント・キャッシュ・サイズを常に調整できます。

OracleDataReader を使用したデータ取得やデータセットへの移入において、繰り返し実行される

問合せだけでなく、すべての ODP.NET データ取得の実行時パフォーマンスが向上します。この

機能を使用するために ODP.NET コードを変更する必要はありません。データ取得パフォーマン

スを向上するため、内部で ODP.NET の最適化が追加されました。

ODP.NET によって、実行された文のデータを格納するフェッチ配列バッファの再利用が最適化

されています。この機能を使用すると一般的な実行中アプリケーションに必要なフェッチ配列

バッファが尐なくなるため、クライアント・メモリの使用量が削減されます。

アプリケーション・パフォーマンスの監視を支援するため、ODP.NET 11g から接続プーリングの

パフォーマンス・カウンタが公開されています。これらのカウンタは、Windows パフォーマンス・

モニターから参照できます。

Oracle Database 11g を使用することにより、LOB 検索のパフォーマンスが向上します(「各種言

語で使用できる機能」の項を参照)。

クライアント結果キャッシュ(「各種言語で使用できる機能」の項を参照)を使用すると、頻繁

に実行される問合せを実行する ODP.NET アプリケーションのパフォーマンスが大幅に向上しま

す。

Oracle Streams Advanced Queuing

Visual Studio で新しい Oracle Streams Advanced Queuing 管理ツールを使用すると、Oracle データベー

スに統合された強力なメッセージ・キューイング機能を利用して管理タスクを処理するアプリケー

ションの開発が簡単になります。使いやすいインタフェースにより、キューとキュー表の作成およ

び変更が大幅に簡素化されます。

ODP.NET 11g には管理ツールに加えて、メッセージング開発者向けの Advanced Queuing(AQ)プロ

グラム・インタフェースが導入されています。メッセージのエンキューとデキュー、キュー・メッ

セージのリスニング、メッセージ通知など、AQ のすべての処理機能に ODP.NET からアクセスでき

ます。

Page 23: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

20

次の表に、AQ 向けのおもな ODP.NET API を記載します。

表 1. ODP.NET の AQ 機能と実装サンプル

AQ 機能 ODP.NET の実装

メッセージの作成 OracleAQMessage オブジェクトを作成する。

単一メッセージのエンキュー OracleAQMessage メッセージ、OracleAQQueue キュー、OracleAQQueue エン

キュー・オプションを指定し、最後に OracleAQQueue.Enqueue をコールする。

複数メッセージのエンキュー OracleAQQueue.EnqueueArray に OracleAQMessage メッセージ配列を指定する。

単一メッセージのデキュー OracleAQQueue デキュー・オプションを指定してから、OracleAQQueue.Dequeue

をコールする。

複数メッセージのデキュー OracleAQQueue.DequeueArray をコールする。

キュー・メッセージの

リスニング

OracleAQQueue.Listen をコールする。複数のキューをリスニングする場合は、

静的な OracleAQQueue.Listen メソッドを使用する。

メッセージの通知 OracleAQQueue.MessageAvailable イ ベ ン ト と

OracleAQQueue.NotificationConsumers プロパティを使用する。

昇格可能なトランザクション

分散トランザクションにはアプリケーション、トランザクション・コーディネータ、および複数の

リソース・マネージャ間でのオーケストレーションが必要であり、このタスクは高いオーバーヘッ

ドをもたらします。ローカル・トランザクションの場合、必要になるのは 1 つのアプリケーション

と 1 つのリソース・マネージャまたはデータベースのみです。実行時のトランザクションがローカ

ル型になるか分散型になるかは、設計時には明らかでない場合があります。実行時の状況に応じて、

トランザクションがローカル型になる場合もあれば、複数のデータベースを必要とする場合もあり

ます。

ODP.NET 11g の昇格可能なトランザクションを使用すると、すべてのトランザクションをローカル

として開始できます。複数のリソース・マネージャが使用されると、トランザクションはトランザ

クション・コーディネータから管理できるように分散トランザクションに昇格します。昇格可能ト

ランザクションを使用すると、実行時のシステム・リソースがさらに最適化されます。

XCopy 配置

新しい配置機能である Oracle XCopy を使用すると、ODP.NET 11g クライアントのディスク・サイズ

が標準の ODP.NET クライアントよりも小さくなり、構成も簡単になります。インストール・スクリ

プトはカスタマイズ可能なテキスト・ファイルで構成されているため、管理者は必要に応じて簡単

にソフトウェアを追加または削除できます。また、サード・パーティの配置ソフトウェアや社内の

独自インストール・スクリプトにこのスクリプトを組み込むこともできます。

ユーザー定義型

Oracle ユーザー定義型(UDT)はオブジェクトおよび抽象データ型として知られており、Oracle デー

タベースで複雑なデータ構造を表すために使用されます。これらのデータ構造は、1 つのデータ構造

内に複数のプロパティとメソッドを持つエンティティ表現です。

Page 24: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

21

Oracle には、REF やコレクションなど多数のオブジェクト型が組み込まれています。REF は行オブ

ジェクトに対する論理ポインタであり、オブジェクト間のナビゲーションを容易にします。参照先

のオブジェクトを移動するというオーバーヘッドを生じることなく、REF を移動したり、参照先オ

ブジェクトを変更したりすることができます。コレクションには、VARRAY、順序付けされた要素

コレクション、ネストした表が含まれ、要素をいくつでも含むことができます。

ODP.NET 11g では、汎用の.NET プロバイダ型クラスが提供されているため、UDT と組込み型の両

方がサポートされています。あらゆる Oracle オブジェクト型を表すために使用できるという点にお

いて、このクラスは汎用です。これらの設定は比較的容易であり、強い型指定はされていません。

ODP.NET では 3 つの汎用 UDT クラスが提供されており、それぞれオブジェクト(OracleObject)、

REF(OracleRef)、コレクション(OracleArray)に相当します。ODP.NET では汎用 UDT クラスは

プロバイダ固有型として扱われます。その他のプロバイダ固有型と同様に、プロバイダ固有型のア

クセッサ(GetOracleObject)を使用して、OracleDataReader オブジェクトから UDT をフェッチす

る必要があります。

Oracle Developer Tools for Visual Studio には、データベースで UDT を作成および管理するための新し

いツールが導入されています。またカスタム・クラス・ウィザードが提供されており、既存の Oracle

データベースの UDT から、C#、Visual Basic、または C++を使用した.NET カスタム・クラスを自動

生成できます。

Oracle Developer Tools for Visual Studio と ODP.NET の UDT 機能を使用すると、Oracle の.NET アプリ

ケーションで複雑な型を作成し、管理し、開発する際の生産性が向上します。

バルク・コピー

ODP.NET が提供する新しいバルク・コピー機能を使用すると、データソースから Oracle データベー

ス表へ、効率的に大量データをロードできます。

HA イベント通知とコールバック

ODP.NET に Oracle High Availability イベントを登録できます。こうすることで ODP.NET は、データ

ベース、サービス、ホスト、またはインスタンスの停止または起動といった通知を受け取ることが

できます。ODP.NET のコールバックを登録しておくと、いずれかのイベントが発生した場合にアプ

リケーションへの通知が実行され、続いてイベント・ハンドラが実行されます。これは ODP.NET 11g

の新機能です。Oracle サーバーの起動または停止イベントの発生時に実行されるアプリケーション・

ロジックを、開発者が独自に作成することもできます。ODP.NET 11g 以前のリリースでは、ODP.NET

から Real Application Clusters に Oracle High Availability イベントを登録するようアプリケーションで

指定することができました。この場合、データベース、サービス、サービス・メンバー、またはホ

ストのいずれかが停止した場合、ODP.NET がこれらの通知を内部処理して、接続プールをクリーン

アップしていました。ODP.NET 11g では、これらの通知が ODP.NET アプリケーションに公開されて

いるため、カスタムの HA イベント処理を実装できます。

PHP

PHP は人気の高いスクリプト言語であり、Web アプリケーションの開発に広く利用されています。

PHP を使用すると、Web アプリケーションの開発が容易かつ迅速に実施できます。PHP で構築され

Page 25: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

22

た Web サイトは、インターネット全体の 30%近くを占めています(出典:http://trends.builtwith.com/

?tech=d38c6ed2-5a84-40a2-8825-3792111e04fc)。PHP は成熟したテクノロジーであり、新興企業や大

学に限らず企業システムに浸透しています。また大規模なユーザー・コミュニティが形成されてい

ます。実際、Oracle などのスケーラビリティと信頼性に優れた大規模リレーショナル・データベース

を必要とするミッション・クリティカル・アプリケーションでは、PHP の使用が増加しています。

オラクルはオープンソース・コミュニティと協業し、安定性とパフォーマンスに優れた PHP データ

ベース・ドライバである OCI8 拡張を維持しています。PHP 開発者は Oracle Database 11g を使用する

ことで、DRCP、表注釈付きのクライアント問合せ結果キャッシュ、REF カーソルのプリフェッチ、

RAC FAN イベントによる高速接続フェイルオーバーなどの重要な機能を利用できます。

Oracle と PHP について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/tech/php/index.html

データベース常駐接続プーリング

データベース常駐接続プーリング(「各種言語で使用できる機能」の項を参照)を使用すると、PHP

アプリケーションで簡単に何万もの Oracle Database 接続を実現し、データベース・サーバーのメモ

リ使用量を大幅に削減できます。

Real Application Clusters

Oracle Real Application Clusters はスケーラビリティと可用性の観点から、PHP アプリケーションに大

きなメリットをもたらします。Oracle RAC は Oracle Database の共有ディスク実装であり、複数のイ

ンスタンスから同時に 1 つのデータベースにアクセスできます。サーバー・クラスタ上で実際のア

プリケーション・ワークロードを実行し、拡張できるという Oracle RAC の独自機能は、エンタープ

ライズ・グリッドに不可欠な基盤です。

FAN と Oracle RAC による高可用性

Oracle RAC や Data Guard フィジカル・スタンバイなどの高可用性構成で実行されているクライアン

トは、高速アプリケーション通知(FAN)イベントを利用できるため、アプリケーションでデータ

ベース・ノード障害に素早く対応できます。PHP でサポートされる FAN は DRCP と一緒に使用され

る場合と、そうでない場合があります。これら 2 つの機能は互いに独立しています。

FAN を使用しない場合、データベース・インスタンスまたはマシン・ノードの障害が不意に発生す

ると、PHP アプリケーションは TCP タイムアウトになるまで、データベース応答を待機した状態の

ままになります。このためエラーは遅延し、最大で数分間におよぶ場合もあります。この頃までに

はアプリケーションが、PHP の最大許容実行時間を超過している可能性があります。

FAN イベントを利用すると、確立済みのデータベース接続に影響を与える障害が素早く PHP アプリ

ケーションに通知されます。障害の発生したデータベース・インスタンスへの接続は、長くなる可

能性のある TCP タイムアウトを待つことなく事前に終了されます。これにより、PHP スクリプトは

ノード障害やネットワーク障害から素早く復旧できます。アプリケーションはユーザーが問題に気

付く前に再接続を実行し、処理を継続します。

Page 26: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

23

結果キャッシュ

Oracle Database 11g は結果キャッシュ機能を提供しています。結果キャッシュを利用すると、読取り

専用データまたは読取りが大部分を占めるデータにアクセスする問合せ(「各種言語で使用できる

機能」の項を参照)と関数呼出し(「PL/SQL」の項を参照)の繰り返し実行が大幅に高速化され

ます。

行のプリフェッチ

問合せ行のバッファリングをチューニングすると、ネットワーク・ラウンドトリップが削減され、

適切な数の結果をアプリケーションから利用できるため、PHP アプリケーションのパフォーマンス

が大幅に改善される場合があります。既存の問合せ行のプリフェッチを補完するため、Oracle

Database 11g では PL/SQL の REF カーソルを使用したプリフェッチが導入されました。これにより、

データベース内にビジネス・ロジックを格納した PHP アプリケーションのパフォーマンスが向上し

ます。

PL/SQL

PL/SQL は、SQL コマンドのシームレスな処理を実現するために設計された命令型の 3GL です。そ

のために PL/SQL には特別な構文が用意されており、SQL とまったく同じデータ型もサポートされ

ています。PL/SQL はさまざまな環境で使用できますが、このホワイト・ペーパーでは、PL/SQL を

Oracle Database 内に格納してコンパイルし、Oracle 実行可能ファイル内で実行する場合についてのみ

説明します。この場合、Oracle Database の移植性は自動的に継承されます。

Oracle の多くのユーザーが採用しているベスト・プラクティスは、クライアント・コードから Oracle

Database へのアクセスを、PL/SQL サブプログラムを呼び出すことによってのみ許可する方法です。

この方法は、一般的なモジュラー型プログラミングのベスト・プラクティス(クリーンで機能的な

API と実装の隠ぺい)を反映しているというだけではありません。この方法によって、クライアント

と Oracle Database 間のラウンドトリップも大幅に減尐します。

PL/SQL について、詳しくは以下の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/tech/pl_sql/index.html

Page 27: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

24

真のネイティブ・コンパイル

Oracle Database 11g より前のリリースでは、PL/SQL プロシージャをネイティブ・コードにコンパイ

ルし、共有ライブラリに登録することで、PL/SQL プロシージャの高速化が実現されていました。こ

れらのプロシージャは C のコードに変換されてから、C コンパイラによってコンパイルされ、Oracle

プロセスにリンクされるという仕組みになっていました。Oracle Database 11g では、C コンパイラを

使用せずに、PL/SQL のソースを直接ネイティブ・コードに変換できます。さらに、Oracle がリンク

とロードを実行するため、ファイル・システム・ディレクトリも不要です。これにより、各開発者

が、ネイティブ実行するプログラム・ユニットをコンパイルできるようになりました。これまでの

ように、DBA による設定作業が完了するまで待つ必要はなくなりました。Oracle Database 11g では、

Oracle Database 10g のときの半分の時間で、PL/SQL コードをネイティブ・コンパイルできます。ま

た、実行時のパフォーマンスも大幅に向上しています。

ファンクション結果キャッシュ

PL/SQL ファンクションは、そのファンクションによって発行された 1 つまたは複数のパラメータ化

された問合せを入力とし計算を実行し、その結果を返すために使用されることがあります。こうし

た問合せの中には、ファンクションの呼出し頻度よりもはるかに尐ない頻度でしか変更されない

データ(たとえば、ショッピング・アプリケーションの商品カタログなど)にアクセスするものも

あります。PL/SQL ファンクションのソース・テキストに構文を追加して、ファンクションの実行結

果をキャッシュし、キャッシュ内データの正確性を保証するために、リストに含まれるいずれかの

表で DML が実行されたらキャッシュを消去するように指定できます。このキャッシュは、SQL 問合

せ結果キャッシュと同様、共有プールに保存されます。DBA はいずれの結果キャッシュに対しても、

同じ API を使用して管理および監視します。キャッシュの検索キーは、ファンクションが呼び出さ

れたときの実際の引数を組み合わせたものになります。ファンクションの結果がキャッシュされて

おり、そのファンクションの呼び出しがキャッシュにヒットした場合、ファンクション本体は実行

されずに、キャッシュ内の結果が即座に返されます。

シーケンス

シーケンス・ジェネレータは、アプリケーションに連番を割り当てます。マルチユーザー環境でディ

スク I/O やトランザクションのロックといったオーバーヘッドを発生させることなく、従業員 ID な

どの一意な連番を生成する場合に特に有効です。

以前の Oracle Database リリースでは、PL/SQL のプログラムがシーケンスから値を取得する必要があ

る場合、SQL が使用されていました。これは、PL/SQL のプログラマーにとって極めて使い勝手の悪

い方法でした。Oracle Database 11g では、PL/SQL の式内で CURRVAL や NEXTVAL といった疑似列

を使用できるようになりました。

PL/Scope

PL/Scope を使用すると、Cscope(http://cscope.sourceforge.net を参照)で C のソース・コードを表示

する場合と同じように、PL/SQL のソース・コードを表示できます。PL/SQL ソース・コード内のあ

らゆるタイプの定義、宣言、割当て、参照を検索し、表示できます。PL/Scope を使用するために必

要なメタデータは、PL/SQL コンパイラによって任意で抽出され、データベース・カタログに格納さ

Page 28: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

25

れます。PL/SQL 言語ではスコープやオーバーロードなどの解釈が他の言語と微妙に異なりますが、

このメタデータはそうした違いを考慮します。付属のレポート・ジェネレータでレポートを生成す

ることもできます(ハイパーリンクが埋め込まれた HTML レポートは非常に便利です)。開発者、

特に他のプログラマーが書いたコードを保守する必要のある開発者は、PL/Scope を使用することで

生産性を向上できます。

階層プロファイラ

PL/SQL の階層型プロファイラは、サブプログラムの呼出しによって整理された、PL/SQL プログラ

ムの動的な実行プロファイルのレポートを生成します。このプロファイラは、SQL と PL/SQL の実

行時間を別々に示します。動的実行プロファイルにおけるサブプログラムごとのサマリーには、そ

のサブプログラムが呼び出された回数、そのサブプログラムの実行時間、サブツリー(下位のサブ

プログラム)の実行時間、詳細な親子情報などが含まれます。生成されるレポートは HTML 形式な

ので任意のブラウザで表示できます。ブラウザのナビゲーション機能は、よく考えられたリンクと

の組合せによって、大規模アプリケーションのパフォーマンス解析に大きな威力を発揮すると同時

に、アプリケーション・パフォーマンスの向上と開発コストの削減に寄与します。

Oracle TimesTen への PL/SQL の移行

Oracle In-Memory Database Cache は、パフォーマンス・クリティカルな Oracle データベース表のサブ

セットをアプリケーション層にキャッシュする機能を通じて、アプリケーション応答時間を向上し

ます。PL/SQL コードの SQL 処理に改善が求められる場合、パフォーマンス・クリティカルなコー

ドをアプリケーション層に移動し、TimesTen In-Memory Database を使用してアプリケーション・ア

ドレス空間で実行できます。この場合、応答時間が短縮され、スループットが向上します。

TimesTen と In-Memory Database Cache について詳しくは、次の Web サイトを参照してください。

http://www.oracle.com/technology/global/jp/products/timesten/index.html

Java

Oracle Database には Java VM が組み込まれているため、データベース内で直接 Java を実行できます。

この機能は、移植性と再利用を求めるユーザーの声に応えたものです。Java は、中間層(J2EE、POJO、

JDBC)とデータベース(Java ストアド・プロシージャ)間で相互に移行できます。また、Java クラ

ス・ライブラリに登録されている膨大な数の Java クラスを再利用できるため、アプリケーション開

発者の Java に関するスキルを活かすことができる点も、Java がもたらす重要な利点の 1 つです。デー

タベースでの Java は幅広いアプリケーション実装で使用されています。詳しくは、関連する次のホ

ワイト・ペーパーを参照してください。http://www.oracle.com/lang/jp/technologies/java/index.html

JDBC は、SQL 文を Java コードに埋め込むための業界標準のアプリケーション・プログラミング・

インタフェース(API)です。オラクルなどのデータベース各社は、標準の java.sql パッケージのイ

ンタフェースを実装することで、それぞれ独自に JDBC を実装しています。

Oracle Database における Java、JDBC、および Database Web Services について、詳しくは以下の Web

サイトを参照してください。http://www.oracle.com/technology/global/jp/tech/java/java_db/index.html

Page 29: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

26

Oracle JVM のパフォーマンスおよび JIT コンパイラ

Oracle JVM は、ジャストインタイム・コンパイラ(JIT)を実現します。JIT コンパイラは、データ

ベース内に存在する Java クラスから動的かつ透過的にネイティブ・バイナリを生成します。生成さ

れたバイナリ・コードは保存されるため、再コンパイルは不要です。JIT コンパイラはデフォルトで

(インストールしただけで)有効になっており、C コンパイラや詳細な設定は必要ありません。業

界標準ベンチマークを使用した社内テストでは、JIT なしで同じテストを実行した場合と比較して 10

倍の高速化が実現されました。顧客サイトでの Oracle Database 11g を使用した Java のフィールド・

テストでは、純粋な計算部分で 15 倍、SQL 部分で 11 倍のパフォーマンス向上が確認されました。

Universal Java Connection Pool

Universal Java Connection Pool(UCP)は、あらゆる接続タイプ(JDBC、JCA、LDAP)を使用したあ

らゆるデータベース(Oracle および Oracle 以外)とあらゆるアプリケーション・サーバー(Oracle

および Oracle 以外)をサポートする単一または汎用の接続プールです。スタンドアロン配置(BPEL、

TopLink、Tomcat)に加えて、RAC および非 RAC の Oracle Database とのシームレスな統合をサポー

トしています。

UCP for JDBC は独立した jar ファイルとして、Oracle Database 11g Release 11.1.0.7 以上に同梱されて

います。UCP について詳しくは、次の Web サイト上の『Oracle Universal Connection Pool for JDBC 開

発者ガイド』を参照してください。

http://download.oracle.com/docs/cd/E16338_01/nav/portal_5.htm

Java 標準による生産性と移植性

Java を使用するおもな理由として、生産性や、プラットフォームとベンダーの枠を超えたアプリケー

ションの移植性が挙げられます。本リリースでは、JDBC は、Java SE 6、JDBC 4.0、および JMX を

サポートしています。また、RDBMS に組み込まれている Java ランタイムでは、Java SE 5、RowSet

(JSR-114)、JMX がサポートされています。

JDBC 4.0

Oracle Database 11g の JDBC には、2 つの系統があります。すなわち、Java 5(JDK 1.5)向けの ojdbc5.jar

と Java 6(JDK 1.6)向けの ojdbc6.jar です。ojdbc6.jar では、JDBC 4.0 仕様に対応しています。具体

的には、接続および文の拡張、ラッパー・インタフェース、新しい標準データ型、SQL 2003 各国語

キャラクタ・セット型、LOB の拡張、例外階層、RowSet(JSR-114)の拡張などです。

Page 30: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

27

JDBC の機能拡張

Oracle Database JDBC ドライバには、次の機能拡張が実施されています。

タイムゾーン・ファイル・バージョンとタイムスタンプ・ファイル・バージョンの容易なアップ

グレード

JDBC LOB のプリフェッチと SecureFiles LOB のゼロコピー

Universal Connection Pool

Java FAN API

oracle.jdbc.editionName プロパティを使用した、データベース・エディション(JDBC-OCI)のサ

ポート

IPv6 に準拠した Oracle JVM

IPv6 は、java.net.preferIPv4Stack および java.net.preferIPv6Addresses というシステム・プロパティを介

してサポートされます。

サーバー側 JDBC に組み込まれた RowSet(JSR-114)

サーバー側 JDBC ドライバで、RowSet 仕様がサポートされました。これにより、JDBCRowSet、

CachedRowSet、WebRowSet、JoinRowSet、FilteredRowSet を使用している Java/JDBC コードをデータ

ベース内で直接実行できます。

Java から使用できる Oracle 機能

このリリースでは、SYS.ANYDATA、SYS.ANYTYPE、SecureFiles、問合せ変更通知の各機能が公開

されています。

最初のラウンドトリップによるプリフェッチ

非定型の SQL 問合せでは、新しいプリフェッチ・メカニズムと解析、実行、フェッチを組み合わせ

ることで、データベースとの最初のやり取りで結果セットをまとめて取得します。この機能を使用

した結果、信頼できる社内テストで、ネットワーク・ラウンドトリップが 50%、応答時間が 50%、

サーバーとクライアントの CPU の消費量が 30%削減されました。この削減割合を 1 日(または一定

期間内)に 100 万回の非定型問合せを発行する典型的な Web 小売りアプリケーションに適用してみ

ると、同じ期間内に 100 万回のラウンドトリップが削減されることになります。

ネイティブの AQ プロトコル

JDBC 経由の JMS/AQ 呼出しに従来の PL/SQL ベースのインタフェースに替わる新しいネイティブ

AQ プロトコルが導入され、最大 300%のパフォーマンス向上が実現されました。また、PL/SQL ベー

スのインタフェースからネイティブ AQ プロトコルに切り替えることで、サーバーの CPU 消費も削

減されました。

Page 31: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

28

データベース変更通知および問合せ変更通知

JDBC Thin と JDBC OCI でデータベース通知と問合せ通知がサポートされているため、JDBC スレッ

ドから問合せ結果セットの変更通知をサブスクライブできます。

中間層はこの機能を使用して、データ・キャッシュを無効化し、更新できます。この API について、

詳しくは Oracle Database 11g のドキュメントを参照してください。

サーバーおよびクライアントの結果キャッシュ

SQL 結果セットをサーバー側の SGA にキャッシュしておき、関連するオブジェクトが変更されたと

きはいつでも自動的に無効化できるようになりました。JDBC OCI ドライバは、サーバー結果キャッ

シュをクライアント側で実現したものであり、サーバー・キャッシュに対する変更と同期されてい

ます。詳しくは、「各種言語で使用できる機能」の項を参照してください。

セキュリティ

JDBC OCI に次いで JDBC Thin でも、Oracle Advanced Security オプションがサポートされました。オ

プションの内容は、強力な認証機能(Kerberos、RADIUS、SSL)や、新しい暗号方式とデータ整合

性アルゴリズムのサポートなどです。

Oracle JVM の使いやすさ

データベースでの Java の普及を阻害している要因の 1 つに、使い勝手の悪さがあります。このリリー

スでは、ユーザー・エクスペリエンスの簡素化と向上を実現するための機能が数多く導入されまし

た。具体的には、JDK に似たインタフェース、出力のリダイレクト、プロパティ・インタフェース、

データベース常駐型 JAR、2 層にわたって存続する Java セッション・ステートなどです。

管理性

管理性は、Oracle Database の周辺(JDBC、Java EE コンポーネントなど)または Oracle Database の内

部(データベース内の Java など)で実行される Java アプリケーションの本番環境において重要な要

件です。このリリースでは、JDBC ロギングを実現する MBean、プログラムによる起動と停止、Oracle

JVM の JMX、Oracle JVM ユーティリティの改良といった管理性機能が導入されました。

Oracle Call Interface(OCI)

Oracle Call Interface はアプリケーション設計に高パフォーマンスで強力なアクセスときめ細かいコ

ントロールを提供します。また OCI は、.NET、PHP、JDBC Type 2 ドライバの構築基盤でもありま

す(複数言語から使用できる OCI 機能については、「各種言語で使用できる機能」の項を参照)。

Oracle Database 11g では、次の追加機能が OCI に導入されています。

Page 32: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

29

Oracle TimesTen In-Memory Database Cache 11g

Oracle In-Memory Database Cache(Oracle IMDB Cache)11g は OCI をサポートしています。このリリー

スは Oracle Client 11.1.0.7 を使用して構築されており、最新の OCI8 スタイルの API をサポートしま

す。TimesTen OCI の構文と使用法は Oracle Database と同じです。アプリケーションは、OCI を使用

して直接リンク(プロセス内)接続モードとクライアント/サーバー接続モードを介して Oracle IMDB

Cache データベースに接続できますが、直接リンク接続を使用した場合に最適な応答時間が実現され

ます。Oracle IMDB Cache では、Oracle Pro*C/C++プリコンパイラもサポートされています。

詳しくは、『Oracle TimesTen In-Memory Database C 開発者およびリファレンス・ガイド』を参照して

ください。

http://www.oracle.com/technology/global/jp/documentation/products/timesten/index.html

データベース常駐接続プール

OCI セッション・プールは、Oracle Database 11g のデータベース常駐接続プール(DRCP)機能と統

合されています。DRCP を使用すると、中間層プロセスとホスト間でデータベース接続を共有できる

ため、データベースで卓越したスケーラビリティと最適なメモリ使用が実現されます。Oracle Database

11g Release 2 の OCI は、OCI セッション・プールを使用して構築されていないカスタムの接続プー

ル向けに、DRCP から接続を取得するためのプログラム・インタフェースを提供しています。

クライアント結果キャッシュ

OCI は、「各種言語で使用できる機能」の項で既述したクライアント結果キャッシュを基本的にサ

ポートしています。

SecureFile LOB

小さい LOB のパフォーマンスを向上するため、OCI はロケータをフェッチする際の LOB データと

LOB 長のプリフェッチをサポートしています。これによりデータベースへのラウンドトリップが削

減されるため、パフォーマンスが向上します。

REF カーソルのプリフェッチ

Oracle Database 11g Release 2 の OCI では、REF カーソルの行のプリフェッチもサポートされていま

す。OCI は REF カーソルに対する最初のフェッチと後続のフェッチで、指定された行数をプリフェッ

チします。これにより、ビジネス・ロジックにストアド・プロシージャを使用している場合のパフォー

マンスが向上します。

エディションベースの再定義

Oracle Database 11g Release 2 の OCI では、OCI セッション・プール・レベルの属性に加えてエディショ

ン名を接続属性として指定できるため、エディションベースの再定義機能をプログラムから使用で

きます。

Page 33: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

30

64 ビットの Integer ホスト・データ型

リリース 11.2 の OCIから、OCI アプリケーションで 64 ビットのネイティブ・ホスト変数と SQLT_INT

または SQLT_UIN を外部データ型として使用して、NUMBER 列に整数値をバインドおよび定義する

機能がサポートされています。

ROWID の暗黙的フェッチ

ROWID はデータベース内の行をグローバルで一意に識別する識別子です。単一行にアクセスする場

合、ROWID を使用するともっとも高速にアクセスできます。SELECT … FOR UPDATE 文での

ROWID の暗黙的プリフェッチとは、ROWID が SELECT 文の列に含まれない場合も、クライアント

側に ROWID が取得されることを意味します。ROWID にアクセスする場合、OCIDefineByPos()の

position パラメータはゼロ(0)に設定します。

複数バッファのバインドと定義

1 つのバインドまたは定義コールを使用して、連続していない複数のバッファを指定できます。この

場合、連続していないアドレスに格納またはフェッチされたデータを連続バッファにコピーする必

要はないため、パフォーマンスが向上します。またこの機能は、メモリ管理上の懸念から配列バイ

ンドに大きい連続バッファを割り当てられないアプリケーションに有効です。この機能を使用する

と、アプリケーションは小さい非連続バッファに配列を分割できます。

記述子の配列割当て

配列をバインドおよび定義すると、アプリケーションからデータベースへの 1 回のラウンドトリッ

プで複数行を挿入またはフェッチすることができます。記述子(LOB やタイムゾーンなど)の配列

をバインドおよび定義しやすくするため、OCI には OCIArrayDescriptorAlloc()コールが導入されまし

た。これを使用すると、1 回のコールで記述子の配列を割り当てることができます。

診断性

致命的エラーが発生した場合、Oracle Net Services および OCI の診断データはユーザーの手を介さず

に取得されます。これは、障害診断の第一歩に役立ちます。

ランタイム接続ロードバランシング

アプリケーションが何らかのタスクを完了するようセッションに指示した場合、OCI はデータベー

ス・インスタンスが提供する現在のサービス・レベルに基づいて、セッション・プール内のセッショ

ンをインテリジェントに割り当てる機能を提供します。この割当ては Oracle RAC のロードバランシ

ング・アドバイザに基づいて実行され、言い換えると所定のタスクを処理するために最適なインス

タンスが選択されます。

Page 34: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle ホワイト・ペーパー - Oracle Database 11g Release 2 を使用したアプリケーション開発 Oracle ホワイト・ペーパー - Oracle SOA Suite 11g の新機能

31

クライアントとサーバーでバージョンの異なるタイムゾーン・ファイル

Oracle Database 11g Release 2 から、クライアントで OCI、PRO*C、JDBC、SQL*Plus を使用する場合、

クライアントとサーバーで異なるバージョンのタイムゾーン・ファイルを使用できるようになりま

した。この処理モードは、11.2 以前のリリースではサポートされていません。このような混合モー

ドでは、クライアントとサーバーはいずれも 11.2 以上である必要があります。

結論

アプリケーション開発部門では、さまざまなプログラミング言語とテクノロジーの中から最適なも

のを選択する必要があります。Oracle Database 11g は、Java、PHP、.NET といった広く普及している

開発テクノロジーをサポートする、高い生産性を備えた強力なアプリケーション開発ツールを提供

しています。Oracle のプログラミング言語インタフェースを介することで、開発者は Oracle Database

の魅力的な機能(Real Application Clusters や XML DB など)を使用できます。

またエディションベースの再定義によって、アプリケーション・アップグレードの期間、コスト、

およびリスクが削減されます。Oracle Application Express は、部門向けアプリケーションの迅速な開

発に理想的な、オラクル独自のWebアプリケーション開発ツールです。Oracle SQL DeveloperはOracle

Database のグラフィカルな作業環境を実現し、データベース開発者の生産性を向上します。Oracle

SQL Developer Migration は、他社製データベースから Oracle への移行を容易にします。Oracle SQL

Developer Data Modeler は、論理的または概念的モデリング(ビジネス・インテリジェンス向け多次

元モデリングを含む)、リレーショナル・データベース・モデリング、および最終的な詳細の物理

実装をサポートします。データベース内 PL/SQL とデータベース内 Java によって、データベースの

サーバー側のコードを開発するための設計オプションが増え、アプリケーションのパフォーマンス、

セキュリティ、管理性、スケーラビリティが向上されるようになりました。

これらのツールを組み合わせて使用することで、開発作業を簡素化し、コストを削減し、アプリケー

ション開発の開始から製品化までの期間を短縮できます。

Page 35: Oracle Database 11g Release 2を使用したアプリケーション開発

Oracle Database 11g Release 2 を使用した

アプリケーション開発

2009 年 9 月

著者:David Gambino

共著者:Sue Harper、Christopher

Jones、Alex Keh、Bryn Llewellyn、Kuassi

Mensah、David Peake、Christian Shay

Oracle Corporation

World Headquarters

500 Oracle Parkway

Redwood Shores, CA 94065

U.S.A.

海外からのお問い合わせ窓口:

電話:+1.650.506.7000

ファクシミリ:+1.650.506.7200

www.oracle.com

Copyright © 2009, Oracle and/or its affiliates.All rights reserved.本文書は情報提供のみを目的として提供さ

れており、ここに記載される内容は予告なく変更されることがあります。本文書は一切間違いがないことを

保証するものではなく、さらに、口述による明示または法律による黙示を問わず、特定の目的に対する商品

性もしくは適合性についての黙示的な保証を含み、いかなる他の保証や条件も提供するものではありませ

ん。オラクル社は本文書に関するいかなる法的責任も明確に否認し、本文書によって直接的または間接的に

確立される契約義務はないものとします。本文書はオラクル社の書面による許可を前もって得ることなく、

いかなる目的のためにも、電子または印刷を含むいかなる形式や手段によっても再作成または送信すること

はできません。

Oracle は米国 Oracle Corporation およびその子会社、関連会社の登録商標です。その他の名称はそれぞれ

の会社の商標です。

0109