ヘッダーをスキップ

Oracle Database 概要
11gリリース1(11.1)

E05765-03
目次
目次
索引
索引

戻る 次へ

1 Oracle Databaseの概要

この章では、Oracleデータベース・サーバーの概要について説明します。この章の内容は、次のとおりです。

Oracle Database アーキテクチャ

データベースとは、1単位として扱われるデータの集合です。データベースの目的は、関連する情報の格納や取出しです。データベース・サーバーは、情報管理の鍵となります。一般にサーバーでは、多数のユーザーが同時に同じデータへアクセスできるように、マルチユーザー環境において大量のデータが確実に管理されます。権限のないアクセスに対して保護機能を備えながら、障害のリカバリについても効率のよい解決方法を提供します。

Oracle Databaseは、エンタープライズ・グリッド・コンピューティング用に設計された最初のデータベースで、最も柔軟性があり、コスト効率の高い方法で情報とアプリケーションを管理できます。エンタープライズ・グリッド・コンピューティングでは、業界標準のモジュール化した記憶域とサーバーのラージ・プールが作成されます。このアーキテクチャによって、各新規システムをコンポーネントのプールから迅速にプロビジョニングできます。容量は、必要に応じてリソース・プールから容易に追加または再割当てできるため、ワークロードのピークに備えて余分なハードウェアを追加する必要はありません。

データベースには、物理構造および論理構造があります。物理構造と論理構造は分離されているので、論理記憶構造へのアクセスに影響を与えずに、データの物理記憶域を管理できます。

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

グリッド・アーキテクチャの概要

グリッド・コンピューティングは、よりリジリエンスがあり低コストの企業情報システムを生成する情報技術(IT)アーキテクチャです。グリッド・コンピューティングを使用すると、ビジネスのニーズの変化に合せて、独立したモジュール・ハードウェアおよびソフトウェア・コンポーネントのグループを必要に応じて接続および再結合できます。

グリッド形式のコンピューティングは、企業のITに共通する次の問題を解決します。

その他のコンピューティング・モデルと比較して、グリッド形式で設計および実装されたITシステムは、サービス品質の向上、コストの削減および柔軟性の向上を実現します。優れたサービス品質は、シングル・ポイント障害がないこと、堅牢なセキュリティ・インフラストラクチャおよびポリシードリブンの集中管理により達成されます。低コストは、リソース使用率の向上と、管理および保守コストの大幅な削減によるものです。ソフトウェアおよびハードウェアのスタックを特定のタスク専用にするのではなく、すべてのリソースをプールしておき必要に応じて割り当てることで、容量を活用して冗長な機能が発生しないようにします。グリッド・コンピューティングにより、小規模な個別のハードウェア・コンポーネントも活用できるため柔軟性が増し、各コンポーネントのコストが削減され、企業は変化するニーズに合せたリソースの割当てが可能になります。

アプリケーション・アーキテクチャの概要

データベースの最も一般的なアーキテクチャは、クライアント/サーバーと複数層の2種類です。コンピューティング環境でインターネット・コンピューティングが普及するにつれて、多数のデータベース管理システムが複数層環境に移行しつつあります。

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

クライアント/サーバー・アーキテクチャ

Oracleデータベース・システムでは、クライアント/サーバー・アーキテクチャを使用することにより、分散処理を容易に活用できます。このアーキテクチャでは、データベース・システムは2つの部分に分割されます。フロントエンドのクライアントとバックエンドのサーバーです。

クライアント

クライアントは、データベース・サーバー上で実行される操作について要求を出すデータベース・アプリケーションです。サーバーが管理するデータの要求、処理および提示を行います。クライアント・ワークステーションは、このようなジョブにあわせて最適化できます。たとえば、クライアントで必要なディスク容量の縮小や、グラフィック機能を活用できます。通常、クライアントは、データベース・サーバーとは異なるコンピュータ上で実行されます。多数のクライアントを1つのサーバーに対して同時に実行できます。

サーバー

サーバーは、Oracle Databaseソフトウェアを実行し、同時実行の共有データ・アクセスに必要な機能を処理します。サーバーは、クライアント・アプリケーションから発行された要求を受け取って処理します。サーバーを管理するコンピュータは、このような処理内容に応じて最適化できます。たとえば、サーバー・コンピュータは大容量のディスクや高速プロセッサを搭載できます。

複数層アーキテクチャ: アプリケーション・サーバー

従来の複数層アーキテクチャの構成要素は、次のとおりです。

このアーキテクチャでは、アプリケーション・サーバーを使用して次のことを実行できます。

プロキシ認証が使用されている場合、クライアントの識別は、接続のすべての層で保持されます。

複数層アーキテクチャ: サービス指向アーキテクチャ

サービス指向アーキテクチャ(SOA)は、アプリケーション機能がサービスにカプセル化されている複数層アーキテクチャです。通常、SOAサービスはWebサービスとして実装されます。WebサービスにはHTTPプロトコルを使用してアクセスでき、WSDLやSOAPなどXMLベースの一連のオープン標準に基づいています。

Oracle Database 11gから、Oracle Databaseは、従来の複数層またはSOA環境においてWebサービス・プロバイダとして機能できるようになりました。

関連項目

 

物理データベース構造の概要

次の項では、データファイル、制御ファイル、REDOログ・ファイル、アーカイブREDOログ・ファイル、パラメータ・ファイル、アラートおよびトレース・ログ・ファイルおよびバックアップ・ファイルなど、Oracleデータベースの物理構造について説明します。

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

データファイル

すべてのOracleデータベースには、すべてのデータベース・データを含む1つ以上の物理データファイルがあります。表や索引などの論理データベース構造のデータは、データベースに割り当てられたデータファイルに物理的に格納されます。

データファイルの特性は次のとおりです。

通常のデータベース操作中、データファイル内のデータが必要に応じて読み取られ、Oracle Databaseのメモリー・キャッシュに格納されます。たとえば、あるユーザーがデータベースの表に入っている一部のデータにアクセスする場合、要求された情報がデータベースのメモリー・キャッシュに存在しなければ、その情報は適切なデータファイルから読み取られて、メモリーに格納されます。

修正されたデータや新規のデータは、必ずしも即時にデータファイルに書き込まれるわけではありません。ディスクへのアクセス回数を減らし、パフォーマンスを向上させるために、データはメモリー内に蓄積されてから、適切なデータファイルに一度に書き込まれます。これらの操作は、バックグラウンド・プロセスであるデータベース・ライター・プロセスによって決定されます。

一時表領域に格納されるデータファイルを一時ファイルと呼びます。一時ファイルは、「一時データファイル」で説明している制限事項の対象になります。

関連項目

Oracle Databaseのメモリーおよびプロセス構造の詳細は、「Oracle Databaseインスタンスの概要」を参照してください。 

制御ファイル

すべてのOracleデータベースには、制御ファイルがあります。この制御ファイルには、次のような情報を含む、データベースの物理構造を指定するエントリが含まれています。

Oracle Databaseでは、制御ファイルを多重化できます。つまり、制御ファイルに関連する障害から保護するために、同じ制御ファイルの多数のコピーが同時に維持されます。

Oracleデータベースのインスタンスが起動するたびに、データベース操作のためにオープンする必要のあるデータファイル、一時ファイルおよびREDOログ・ファイルが、制御ファイルによって識別されます。データベースの物理的な構造が変更されると(データファイルやREDOログ・ファイルの新規作成など)、制御ファイルは、その変更を反映するようにOracle Databaseによって自動的に修正されます。制御ファイルは、データベースのリカバリにも使用されます。

関連項目

第3章「表領域、データファイルおよび制御ファイル」 

オンラインREDOログ・ファイル

すべてのOracle Databaseには、2つ以上のオンラインREDOログ・ファイルの集合があります。これらのオンラインREDOログ・ファイルとREDOログ・ファイルのアーカイブ・コピーは、データベースのREDOログと呼ばれます。REDOログは、データに加えられた変更をすべて記録するREDOエントリ(REDOレコードとも呼ばれます)で構成されます。万一障害が発生して、修正済のデータがデータファイルに書き込まれなかった場合でも、その変更はREDOログから取得できるため、実行した作業が失われることはありません。

REDOログ自体にかかわる障害から保護するため、Oracle Databaseでは2つ以上のREDOログのコピーを異なるディスク上に維持できるように、多重REDOログを作成できます。

関連項目

「データベースのバックアップおよびリカバリ機能の概要」 

アーカイブREDOログ・ファイル

アーカイブREDOログ・ファイルは、データベースにより生成されるオンラインREDOログ・ファイルのオフライン・コピーです。データベースがARCHIVELOGモードの場合は、Oracle DatabaseによりREDOログ・ファイルが自動的にアーカイブされます。オンラインREDOログの自動アーカイブを有効にすることをお薦めします。

パラメータ・ファイル

パラメータ・ファイルには、特定のインスタンスおよびデータベースの構成パラメータのリストが格納されます。パラーメータ・ファイル(pfile)およびサーバー・パラメータ・ファイル(spfile)のどちらを使用しても、初期化パラメータをサーバー側ディスク・ファイルに永続的に格納して管理できます。サーバー・パラメータ・ファイルには次のような利点があります。

初期化パラメータを動的に維持する手段として、サーバー・パラメータ・ファイルを作成することをお薦めします。

関連項目

 

アラート・ファイルとトレース・ログ・ファイル

それぞれのサーバーとバックグラウンド・プロセスは、対応付けられたトレース・ファイルに書き込むことができます。プロセスによって内部エラーが検出されると、エラーについての情報がそのプロセスのトレース・ファイルに書き込まれます。トレース・ファイルに書き込まれる情報には、データベース管理者向けのものとOracleサポート・サービス向けのものがあります。また、トレース・ファイル情報は、アプリケーションとインスタンスのチューニングにも使用されます。アラート・ファイルは、アラート・ログとも呼ばれる特殊なトレース・ファイルです。データベースのアラート・ログは、メッセージとエラーの履歴ログです。

次の機能は、トレース・ファイルとアラート・ファイルの情報の収集と解釈の自動化とサポートを提供します。

バックアップ・ファイル

ファイルをリストアするには、バックアップ・ファイルで置き換えます。通常、ファイルをリストアするのは、メディア障害やユーザー・エラーによりオリジナルのファイルが破損したり削除された場合です。

ユーザー管理バックアップおよびリカバリでは、バックアップの試行リカバリを実行する前に、実際にバックアップ・ファイルをリストアする必要があります。

サーバー管理バックアップおよびリカバリでは、リカバリが必要な時点で適切なバックアップ・ファイルを適用するなどのリカバリ処理のみでなく、バックアップのスケジューリングなどのバックアップ処理も管理されます。

関連項目

 

論理データベース構造の概要

この項では、データ・ブロック、エクステント、セグメントおよび表領域などの論理記憶構造について説明します。これらの論理記憶構造によって、Oracle Databaseのディスク領域の使用をきめ細かく制御できます。

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

Oracle Databaseデータ・ブロック

最少レベルとして、Oracleデータベースのデータはデータ・ブロックに格納されます。1つのデータ・ブロックは、ディスク上の特定のバイト数の物理データベース領域に対応します。標準のブロック・サイズは、DB_BLOCK_SIZE初期化パラメータで指定します。また、他のブロック・サイズを4つまで指定できます。データベースは、Oracle Databaseデータ・ブロック内の空きデータベース領域を使用して領域を割り当てます。

エクステント

次の論理データベース領域のレベルは、エクステントと呼ばれます。1回の割当てで取得される特定数の連続したデータ・ブロックで、特定のタイプの情報を格納するために使用されます。

セグメント

エクステントの上位に位置する論理データベース記憶域のレベルは、セグメントです。セグメントは、表、索引、ロールバック・セグメント、またはセッション、トランザクションおよびSQLパーサーでの一時使用のために割り当てられるエクステントの集合です。物理データベース構造に関して、すべてのエクステントは同じ表領域に存在するセグメントに属しますが、異なるデータファイルにある場合があります。

セグメントのエクステントがいっぱいになると、Oracle Databaseは、そのセグメントに別のエクステントを動的に割り当てます。エクステントは必要に応じて割り当てられるため、1つのセグメントの各エクステントはディスク上で連続している場合と連続していない場合があります。

表領域

データベースは、関連するデータ・ブロック、エクステントおよびセグメントがグループ化された表領域と呼ばれる論理記憶単位に分けられます。たとえば、通常、表領域はすべてのアプリケーション・オブジェクトをグループ化し、管理操作を容易にします。

各データベースは、論理的に2つ以上の表領域に分けられます。各表領域に対して1つ以上のデータファイルが明示的に作成され、すべての論理構造のデータが表領域に物理的に格納されます。表領域内のデータファイルのサイズを組み合せると、表領域全体の記憶容量になります。

Oracleデータベースには、SYSTEMおよびSYSAUXという表領域が含まれています。この2つの表領域は、データベースの作成時にOracle Databaseにより自動的に作成されます。システム・デフォルトでは、従来型のOracle表領域である小型ファイル表領域が作成されます。SYSTEMおよびSYSAUX表領域は、小型ファイル表領域として作成されます。

また、Oracle Databaseでは、多数の小型ファイルではなく単一の大型ファイルで構成されている大型ファイル表領域も作成できます。大型ファイル表領域により、Oracle Databaseでは、64ビット・システムの機能を利用して超大規模ファイルを作成および管理できます。この結果、Oracle Databaseは800万TBまでサイズを拡張できるようになりました。Oracle Managed Filesでは、大型ファイル表領域によりデータファイルがユーザーに対して完全に透過的になります。つまり、基礎となるデータファイルではなく表領域に対する操作を実行できます。

関連項目

 

オンライン表領域とオフライン表領域

表領域は、オンラインまたはオフラインに設定できます。ユーザーが表領域内の情報にアクセスできるように、通常、表領域はオンラインになっています。ただし、管理を単純化するために、場合によっては、1つの表領域をオフラインにしてデータベースの一部を使用できないようにすると同時に、データベースの残りの部分には通常どおりアクセスできるようにすることもできます。

読取り専用表領域

表領域を読取り専用、つまり表領域のデータを変更できないように設定できます。読取り専用表領域の主な目的は、データベースの静的な部分を大量にバックアップしたりリカバリする必要をなくすことです。読取り専用表領域のファイルはOracle Databaseによって更新されることがないため、CD-ROMやWORMドライブのような読取り専用メディアに常駐させることができます。

スキーマと一般的なスキーマ・オブジェクトの概要

スキーマとは、データベース・オブジェクトの集合です。スキーマはデータベース・ユーザーによって所有され、そのユーザーと同じ名前を持ちます。スキーマ・オブジェクトは、データベースのデータを直接参照する論理構造です。表領域とスキーマとの間に関連付けはありません。同じスキーマのオブジェクトを異なる表領域に含めることができます。また、ある表領域に異なるスキーマのオブジェクトを含めることができます。スキーマ・オブジェクトには、ビューおよび索引などの構造が含まれます。ここでは、最も一般的なスキーマ・オブジェクトの定義について説明します。

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

は、Oracleデータベースにおけるデータ記憶域の基本単位です。データベースの表には、ユーザーがアクセスできるすべてのデータが保持されています。それぞれの表にはがあります。たとえば、従業員情報の表には、employee_numberという列があり、その列の各行には従業員番号が格納されます。

索引

索引とは、表に対応付けられているオプションの構造です。索引を作成し、データ検索のパフォーマンスを向上できます。このマニュアルでも、索引を使用すると特定の情報をすばやく見つけることができます。それと同じように、Oracleデータベースの索引を使用すると表データにアクセスできます。

1つの要求を処理するとき、Oracle Databaseは、要求された行を効率よく見つけるために使用可能な索引をいくつか(またはすべて)使用します。索引が有効なのは、アプリケーションが表内のある範囲の行(給与が1000ドルを超えるすべての従業員など)または特定の行(最も給与の高い従業員など)を頻繁に問い合せる場合です。

索引は、表の1つ以上の列に対して作成されます。作成された索引は、Oracle Databaseによって自動的に使用され、メンテナンスされます。表データに対する変更(新しい行の追加、行の更新または削除など)は、関連するすべての索引にも自動的に取り込まれます。

ビュー

ビューとは、1つ以上の表または他のビューに含まれているデータの表現がカスタマイズされたものです。ビューは、ストアド・クエリーとみなすこともできます。ビューに実際のデータは含まれていません。データはビューの基礎となる表からデータを導出します。これらの表を、ビューの実表と言います。

いくつかの制限付きでビューを表と同様に問合せ、更新、挿入および削除できます。ビューが更新可能な場合、ビューに対して実行する操作は、すべてビューの実表にも影響します。

ビューでは、事前に定義された表の行および列の集合のみにアクセスを制限することで、表のセキュリティを提供できます。また、データの複雑さを隠し、複雑な問合せを格納します。

クラスタ

クラスタとは、物理的にまとめて格納される1つ以上の表のグループです。それらの表は共通の列を共有しており、しばしば一緒に使用されるため、まとめて格納されます。関連する行が物理的にまとめて格納されているため、ディスク・アクセス時間が短縮されます。

索引と同じように、クラスタがアプリケーションの設計に影響することはありません。表がクラスタの一部になっているかどうかは、ユーザーおよびアプリケーションに対して透過的です。SQL文は、クラスタ化されていない表のデータと同じように、クラスタ化表に格納されているデータにアクセスします。

シノニム

シノニムとは、表、ビュー、マテリアライズド・ビュー、順序、演算子、プロシージャ、ファンクション、パッケージ、Javaクラスのスキーマ・オブジェクト、ユーザー定義オブジェクト型または他のシノニムの別名です。シノニムは単なる別名であるため、データ・ディクショナリ内の定義以外に記憶域は必要ありません。

関連項目

これらのスキーマ・オブジェクトと他のスキーマ・オブジェクトの詳細は、第5章「スキーマ・オブジェクト」を参照してください。 

Oracle Databaseデータ・ディクショナリの概要

各Oracleデータベースには、データベースの参照として使用される、表およびビューの集合であるデータ・ディクショナリがあります。たとえば、データ・ディクショナリには、データベースの論理構造と物理構造の両方に関する情報が格納されます。また、データ・ディクショナリには、Oracleデータベースの有効なユーザー、データベース内の表に定義された整合性制約に関する情報、スキーマ・オブジェクトに割り当てられている領域の量およびその使用率などの多くの情報も格納されます。

データ・ディクショナリは、データベースの作成時に作成されます。常にデータベースの正確な状態が反映されるように、データ・ディクショナリは、データベース構造の変更など、特定の処理が行われるたびに、Oracle Databaseにより自動的に更新されます。データベース・ユーザーはデータ・ディクショナリを変更できません。各種のデータベース・プロセスでは、データ・ディクショナリを基盤として、進行する作業の記録、検証および指示が実行されます。たとえば、データベースの操作中、Oracle Databaseは、スキーマ・オブジェクトが存在しているかどうか、およびユーザーが適切なアクセス権を持っているかどうかを検証するためにデータ・ディクショナリを読み取ります。

関連項目

詳細は、第7章「データ・ディクショナリ」を参照してください。 

Oracle Databaseインスタンスの概要

Oracleデータベース・サーバーは、Oracle Databaseと1つ以上のOracleデータベース・インスタンスで構成されます。データベースを起動するたびに、システム・グローバル領域(SGA)と呼ばれる共有メモリー領域が割り当てられ、Oracle Databaseバックグラウンド・プロセスが起動されます。バックグラウンド・プロセスとSGAを組み合せて、Oracleデータベース・インスタンスと呼びます。

Oracle Real Application Clusters

ハードウェア・アーキテクチャ(共有ディスク・システムなど)によっては、複数のコンピュータで、データ、ソフトウェアまたは周辺装置へのアクセスを共有できます。Oracle Real Application Clusters(Oracle RAC)は、相互接続を使用して相互に通信する複数のクラスタ化コンピュータ上で実行される2つ以上のOracleデータベース・インスタンスで構成されます。Oracle RACは、Oracle Clusterwareを使用して、共有ディスクに常駐する共有データベースにアクセスします。このように相互接続された複数のコンピュータの処理能力を組み合せることで、Oracle RACはシステムの冗長性、ほぼ線形のスケーラビリティおよび高可用性を提供します。また、Oracle RACはOLTPとデータ・ウェアハウス・システムの両方にとって大きな利点があり、すべてのシステムとアプリケーションはクラスタ環境を効率的に活用できます。

Oracle RAC環境では、アプリケーションをそのまま拡張して増大するデータ処理需要に対処でき、アプリケーション・コードを変更する必要がありません。ノードやストレージなどのリソースを追加すると、これらのリソースの処理能力はOracle RACにより個々のコンポーネントの制限を超えて拡張されます。

関連項目

『Oracle Real Application Clusters管理およびデプロイメント・ガイド』 

ユーザーがOracleデータベース・サーバーに接続すると、Oracleデータベース・インスタンスへと接続されます。データベース・インスタンスは、SGAのみでなくその他のメモリー領域も割り当て、Oracle Databaseバックグラウンド・プロセスの他のプロセスも起動して、それらのユーザーに対応します。次の各項では、Oracle Databaseの様々なメモリー領域およびプロセスについて説明します。

Oracle Database バックグラウンド・プロセス

Oracleデータベースは、メモリー構造とプロセスを使用してデータベースの管理やアクセスを行います。すべてのメモリー構造は、データベース・システムを構成するコンピュータのメイン・メモリー内に存在します。プロセスは一連の処理を実行できるオペレーティング・システムのメカニズムです。オペレーティング・システムによっては、「ジョブ」または「タスク」という用語を使用します。Oracleデータベース・サーバーは、サーバー・プロセスおよびバックグラウンド・プロセスを含むOracleプロセス、およびユーザー・プロセスの3つのタイプのプロセスを使用します。ほとんどのシステムでは、Oracleプロセスとユーザー・プロセスはそれぞれ別々のコンピュータで実行されます。

インスタンスのメモリー構造

Oracle Databaseでは、様々な目的でメモリー構造が作成および使用されます。たとえば、実行中のプログラム・コード、ユーザー間で共有されるデータおよび接続している各ユーザーのプライベート・データ領域を格納するときに、メモリーが使用されます。Oracle Databaseには、基本的な2つのメモリー構造が関連付けられています。

データベース・アクセスの概要

この項では、Oracle Net Servicesおよびデータベースの起動方法について説明します。この項の内容は、次のとおりです。

ネットワーク接続

Oracle Net Servicesは、Oracle Databaseとネットワークの通信プロトコルとの間のインタフェースであり、分散処理と分散データベースの実現を支援します。通信プロトコルにより、ネットワーク上でのデータの送受信方法が定義されます。Oracle Net Servicesは、TCP/IP、HTTP、FTPおよびWebDAVなど、主要なネットワーク・プロトコルによる通信をすべてサポートしています。

Oracle Net Servicesを使用すると、アプリケーション開発者がデータベース・アプリケーションでネットワーク通信のサポートにかかわる必要はありません。新しいプロトコルを使用する場合も、データベース管理者がわずかな変更を行うだけです。アプリケーションは修正しなくても機能し続けます。

Oracle NetはOracle Net Servicesのコンポーネントであり、クライアント・アプリケーションからOracle Databaseサーバーへのネットワーク・セッションを確立して維持します。ネットワーク・セッションの確立後は、Oracle Netはクライアント・アプリケーションとデータベース・サーバーのためのデータ伝達手段として機能し、これらの間でメッセージを交換します。Oracle Netは、ネットワーク内の各コンピュータに配置されているのでこれらのジョブを実行できます。

関連項目

  • ネットワーク接続の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  • データベースでのWebDAVの使用方法は、『Oracle XML DB開発者ガイド』を参照してください。

 

データベースの起動

Oracleデータベースを起動して、システム全体で使用可能にするには、次の3つの操作を行います。

  1. インスタンスを起動します。

  2. データベースをマウントします。

  3. データベースをオープンします。

データベース管理者は、Oracle Enterprise Manager、SQL*PlusのSTARTUP文、srvctlコマンドライン・ツールまたはExpress EditionのSTARTコマンドを使用してこれらの手順を実行できます。Oracle Databaseは、インスタンスを起動するときに、サーバー・パラメータ・ファイル(spfile)または初期化パラメータ・ファイル(pfile)を読み取って、初期化パラメータの値を判別します。次に、SGAを割り当ててバックグラウンド・プロセスを作成します。

関連項目

第12章「データベースとインスタンスの起動と停止」 

Oracle Databaseの動作

次の例は、Oracle Databaseが実行する操作の最も基本的なレベルです。ここでは、ユーザー・プロセスとそれに対応するサーバー・プロセスが、ネットワークで接続された別々のコンピュータに存在するOracle Database構成について説明します。

  1. インスタンスは、Oracle Databaseが稼働しているコンピュータ(通常はホストまたはデータベース・サーバーと呼ばれる)で起動されています。

  2. アプリケーションを実行しているコンピュータ(ローカル・コンピュータまたはクライアント・ワークステーション)は、ユーザー・プロセスでアプリケーションを実行します。クライアント・アプリケーションは、適切なOracle Net Servicesドライバを使用して、サーバーへの接続を確立しようとします。

  3. サーバーは、適切なOracle Net Servicesドライバを実行しています。サーバーはアプリケーションからの接続要求を検出すると、ユーザー・プロセスのために専用サーバー・プロセスを作成します。

  4. ユーザーはSQL文を実行して、トランザクションをコミットします。たとえば、ユーザーは表の行に入っている名前を変更します。

  5. サーバー・プロセスはSQL文を受け取り、同一のSQL文を含む共有SQL領域がないかどうか共有プール(SGAコンポーネント)をチェックします。共有SQL領域が見つかった場合、サーバー・プロセスはユーザーが要求したデータへのアクセス権を持っているかどうかチェックし、既存の共有SQL領域を使用してSQL文を処理します。共有SQL領域が見つからなかった場合は、新しい共有SQL領域をそのSQL文に割り当て、解析と処理を実行します。

  6. サーバー・プロセスは、実際のデータファイル(表)から必要なデータ値を取得するか、またはシステム・グローバル領域内に格納されている必要なデータ値を取得します。

  7. サーバー・プロセスは、システム・グローバル領域内のデータを修正します。データベース・ライター・プロセス(DBWn)は、書込みが効率よく行われるタイミングを判断して、修正したブロックをディスクに書き込みます。トランザクションがコミットされると、ログ・ライター・プロセス(LGWR)がそのトランザクションをREDOログ・ファイルに即時に記録します。

  8. トランザクションが成功すると、サーバー・プロセスは、ネットワークを介してアプリケーションにメッセージを送信します。成功しなかった場合は、適切なエラー・メッセージを送信します。

  9. この手順全体を通じて、他のバックグラウンド・プロセスも実行されていて、介入が必要かどうかを監視しています。さらに、データベース・サーバーは、他のユーザーのトランザクションを管理し、同一のデータを要求する異なるトランザクション間の競合を防止します。

    関連項目

    バックグラウンド・プロセスの詳細は、第9章「プロセス・アーキテクチャ」を参照してください。 

Oracle Databaseユーティリティの概要

Oracle Databaseには、データ転送、データ維持およびデータベース管理用の複数のユーティリティが用意されています。それぞれのユーティリティについては、第11章「Oracle Databaseユーティリティ」で簡単に、また、『Oracle Databaseユーティリティ』で詳細に説明しています。

Oracle Databaseの機能

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

Oracle Real Application Testingの概要

ハードウェアやソフトウェアのアップグレードおよびアプリケーション・パッチなどのシステム変更は、規格への準拠やセキュリティのため、また競合性を保つために企業にとって不可欠です。Oracle Real Application Testingは、実環境のアプリケーションにおけるシステム変更の効果を、実際の環境にデプロイする前にテスト環境で完全に評価するのに役立ちます。Oracle Real Application Testingは次の2つの機能で構成されています。

データベースの再実行

データベースの再実行では、原則的に本番ワークロード環境をテスト・システムで再作成することにより、システム変更を実際にテストします。これは、本番システムのワークロードを取得し、その後、完全に同じタイミング、同時実行性および元のワークロードのトランザクションの特性でテスト・システムを再実行することで実現します。再実行により、好ましくない結果、新たな競合ポイントおよびパフォーマンスの低下などの変更の影響を完全に評価できます。新たなエラーやパフォーマンスの相違などの潜在的な問題を識別するために、詳細な分析およびレポートが提供されます。

データベースの再実行により、企業は変更を迅速にテストし、作業の全体的な成功に自信を持ち、非常に低いリスクで新しいテクノロジを採用することが可能です。

データベースの再実行を使用し、次のタイプのシステム変更の影響を評価できます。

SQL Performance Analyzer

SQL実行計画に影響を与える変更は、システム・パフォーマンスおよび可用性に重大な影響を与える場合があります。その結果、DBAは変更によりパフォーマンスが低下したSQL文の特定と修正に、非常に時間をかけることになります。

SQL Performance Analyzerは、各SQL文のパフォーマンスの相違を識別することにより、完全なSQLワークロードに対する変更による全体への影響を評価する手順を自動化します。この機能では、ワークロード・パフォーマンスに対する変更による最終的な影響を表したレポートが提供されます。パフォーマンスが低下したSQL文に対しては、適切な実行計画の詳細およびチューニングの推奨事項が提供されます。これにより、DBAはエンド・ユーザーに影響を与える前に悪い結果を解決し、時間とコストを大幅に削減して、本番環境に対するシステム変更が最終的に改善されることを確認できます。

SQL Performance Analyzerを使用し、すべてのタイプのシステム変更によるSQLパフォーマンスへの影響を分析できます。一般的なシステム変更には次のものがあります。

同時実行性機能の概要

すべての情報管理システムには、次の重要な要件があります。

Oracle Databaseには、これらの要件を満たす複数のソフトウェア・メカニズムが組み込まれています。この項の内容は、次のとおりです。

同時実行性

マルチユーザー・データベース管理システムの最大の機能は、同時実行性、つまり多数のユーザーによる同一データへの同時アクセスです。十分な同時実行性制御機能がなければ、データが不当に更新または変更され、データ整合性が損われる可能性があります。

データの同時実行性を管理する1つの方法は、各ユーザーに順番待ちをさせることです。データベース管理システムの目標は、その待ち時間を、各ユーザーにとって存在しないか、または無視できる程度まで短縮することです。データ操作言語の操作(挿入、更新、削除)をできるだけ干渉がない状態で処理し、同時実行のトランザクション間の破壊的な相互作用を防止する必要があります。破壊的な相互作用とは、不正確なデータの更新または基礎となるデータ構造の不正な変更を引き起こす相互作用です。パフォーマンスとデータ整合性は、どちらも無視できません。

Oracle Databaseでは、様々なタイプのロックとマルチバージョン一貫性モデルを使用することで、これらの問題を解決します。これらの機能は、トランザクションの概念に基づいています。

トランザクションは、読取り一貫性を実現するためのOracle Databaseの重要な機能です。コミット済の(またはコミットされていない)SQL文から構成されているトランザクションは、次のように機能します。

同時実行性と一貫性に関するこれらの機能がトランザクションで十分に活用されるようにするのは、アプリケーション設計者の責任です。

関連項目

第4章「トランザクションの管理」 

読取り一貫性

Oracle Databaseが提供する読取り一貫性は、次の目的を達成します。

Oracle Databaseに実装されている読取り一貫性は、各ユーザーが自分専用のデータベースのコピーを操作しているような状況を実現します。これは、マルチバージョンの一貫性モデルとも呼ばれます。

関連項目

第13章「データの同時実行性と整合性」 

読取り一貫性、UNDOレコードおよびトランザクション

マルチバージョン一貫性モデルを管理するために、Oracle Databaseはシステム・グローバル領域内の現在の情報とUNDOレコードにある情報を使用して、問合せのために表データの読取り一貫性を備えたビューを作成します。更新が発生すると、データの元の値が、データベースのUNDOレコードに記録されます。この更新がコミットされていないトランザクションの一部であるかぎり、変更されたデータに後から問い合せたユーザーは、データの元の値を参照することになります。トランザクションがコミットされた時点で初めて、トランザクションの変更が確定します。トランザクションがコミットされた後に開始された問合せのみ、そのコミットされたトランザクションによって加えられた変更を参照することになります。

読取り専用トランザクション

デフォルトでは、Oracle Databaseにより文レベルの読取り一貫性が保証されます。1つの問合せによって戻された一連のデータは、ある特定の時点での一貫性を保っています。ただし、場合によっては、トランザクション・レベルの読取り一貫性が必要になることもあります。これは、1つのトランザクション内で複数の問合せを実行するときに、そのトランザクション内の問合せが、途中でコミットされた他のトランザクションの結果を参照しないように、1つのトランザクション内のすべての問合せに同一時点を基準とした読取り一貫性を持たせる機能です。複数の表に対して多数の問合せを実行し、更新を行わない場合は、読取り専用トランザクションとして定義するコマンドを使用してトランザクションを開始できます。

関連項目

トランザクション・レベルの読取り一貫性の詳細は、『Oracle Database概要』を参照してください。 

キャッシングのメカニズム

Oracle Databaseでは、データベース・パフォーマンスを最適化するために、ユーザー・データ、ログ・データ、ディクショナリ・データおよびその他のタイプのデータがメモリー内にキャッシュされます。

Oracle Databaseでは問合せ結果もキャッシュされるため、問合せが繰り返されると、問合せを再度処理して記憶域からデータを読み取るのではなく、データベースによりキャッシュから結果が戻されます。キャッシュされた結果は、共有プールの専用領域に格納されます。問合せ結果のキャッシュからの問合せの取得は、問合せの再実行より高速です。問合せ結果のキャッシュにより、データベースのメモリーに結果を明示的にキャッシュできます。頻繁に実行される問合せの場合は特に、問合せ結果のキャッシュを使用することでパフォーマンスが向上します。

ロックのメカニズム

Oracle Databaseは、ロックを使用してデータへの同時アクセスを制御します。情報の更新時には、更新が発行またはコミットされるまで、その情報にはデータ・サーバーによりロックされます。発行またはコミットされるまで、ロックされている情報は誰も変更できません。これにより、システムのデータ整合性が保証されます。

Oracle Databaseには、拡大されない一意の行レベル・ロック機能が用意されています。他のデータ・サーバーでは行グループ全体や表全体を扱うためにロックが拡大されますが、Oracle Databaseでは更新中の情報行のみが常にロックされます。データベースには、実際の行自体を使用してロック情報が組み込まれるので、ロックできる行数に制限がなく、ユーザーは不必要な遅延なしで同時に作業できます。

自動ロック

Oracle Databaseのロックは自動的に実行されるため、ユーザーの操作は必要ありません。要求される処理によっては、必要に応じて暗黙的ロックがSQL文に対して発生します。

Oracle Databaseロック・マネージャは、ロックを設定する操作のタイプに応じて、異なるタイプの行ロックを保持します。一般に、ロックには排他ロック共有ロックの2種類があります。排他ロックは、1つのリソース(行や表など)に対して1つのみ設定できます。一方、共有ロックは、1つのリソースに対して数多く設定できます。排他ロックと共有ロックでは、ロックされたリソースに対する問合せはいつでも許可されますが、そのリソースに対する他のアクティビティ(更新や削除など)は禁止されます。

手動ロック

状況によっては、ユーザーは、デフォルト・ロックをオーバーライドできます。Oracle Databaseでは、自動ロック機能を行レベル(後続の文で更新する行を最初に問い合せておく)と表レベルの両方で手動変更できます。

管理性機能の概要

Oracleデータベース・システムの運用管理者はデータベース管理者(DBA)と呼ばれ、Oracleデータベースの作成、円滑な運用の保証および使用の監視を担当します。Oracle Databaseには、多数のアラートとアドバイザに加えて、次の項で説明する機能が用意されています。

自己管理データベース

Oracle Databaseは高度な自己管理機能を備えており、日常的なDBAタスクが自動化され、領域、メモリーおよびリソース管理が簡素化されます。Oracle Databaseの自己管理データベース機能には、自動UNDO管理、自動サーバー・メモリー管理、Oracle Managed Files、空き領域管理およびRecovery Manager(RMAN)が含まれます。

自動メンテナンス・タスク

Oracle Databaseでは、統計収集や領域リカバリなど、定期的なメンテナンス・タスクは自動的にスケジューリングされます。これらのタスクは、メンテナンス・ウィンドウと呼ばれるOracle Schedulerの一連のウィンドウから実行されます。これらのメンテナンス・ウィンドウの開始時間と期間を制御し、消費するCPUおよびI/Oリソースの量を制限できます。

Oracle Enterprise Manager

Oracle Enterprise Managerは、データベース環境を集中管理するためのシステム管理ツールです。Oracle Enterprise Managerは、グラフィカル・コンソール、Oracle Management Server、Oracle Intelligent Agent、共通サービスおよび管理ツールを組み合せることで、Oracle製品を管理するための包括的なシステム管理プラットフォームを提供します。

クライアント・インタフェースであるOracle Enterprise Managerコンソールから、次のタスクを実行できます。

SQL DeveloperおよびSQL*Plus

Oracle SQL Developerは、次のタスクの実行に便利な方法を提供するグラフィカル開発ツールです。

SQL Developerにより、標準のOracleデータベース認証を使用してターゲットであるOracleデータベース・スキーマに接続できます。接続が完了すると、データベース内のオブジェクトに対する操作を実行できます。選択したMySQL、Microsoft SQL Server、Microsoft Accessなどのサード・パーティ製(Oracle製品ではない)データベースのスキーマに接続し、それらのデータベース内のメタデータやデータを表示し、それらのデータベースをOracleに移行できます。

SQL*Plusは、非定型データベース文を入力して実行するための基本的なコマンドライン・ツールです。SQL*Plusを使用すると、SQL文とPL/SQLブロックを実行したり、他の多数のタスクを実行できます。

関連項目

これらのツールの詳細は、『Oracle Database SQL Developerユーザーズ・ガイド』および『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。 

自動メモリー管理

Oracle Database 11gリリース1から、Oracleデータベースでシステム・グローバル領域(SGA)メモリーおよびインスタンス・プログラム・グローバル領域(PGA)メモリーを完全に自動的に管理できるようになりました。インスタンスで使用可能な合計メモリー・サイズのみを指定すれば、処理要求を満たすために、Oracle DatabaseによりSGAとインスタンスPGA間で動的にメモリーが交換されます。この機能は、自動メモリー管理と呼ばれます。このメモリー管理モードでは、データベースにより個々のSGAコンポーネントおよびPGAのサイズも動的にチューニングされます。

関連項目

詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。 

自動ストレージ管理

自動ストレージ管理により、すべてのタイプのデータベース・ファイルの管理が自動化され、簡素化されます。データベース・ファイルは使用可能なすべてのディスク間で自動的に分散され、記憶域構成に変更があるたびにデータベース記憶域のバランスが自動的に調整されます。また、自動ストレージ管理により、データベース・ファイルのミラー化による冗長性が実現されます。

Oracle Databaseにはネットワーク・ファイル・システム(NFS)のサポートが標準で組み込まれており、NFSのOSサポートに依存しません。これにより、NFSを使用してアクセスされるネットワーク接続ストレージの管理性および診断性が向上します。

Automatic Database Diagnostic Monitor

Automatic Database Diagnostic Monitor(ADDM)を使用して、特定のインスタンスで取得した1対の自動ワークロード・リポジトリ(AWR)スナップショットによって定義された任意の時間帯のパフォーマンス解析を実行できます。分析はトップ・ダウンで行われるため、最初に兆候を識別し、次にパフォーマンス上の問題の根本的原因を突き止めます。ADDMは、システムで問題のない領域も示します。たとえば、システム・パフォーマンスに大きな影響を与えない待機イベント・クラスは、初期段階で識別され、チューニングの対象から除かれます。これにより、システム・パフォーマンス全体にほとんど、またはまったく影響を与えない項目にかける時間と労力を削減できます。

問題の診断に加えて、ADDMは可能な解決策を提案します。該当する場合、ADDMは複数の解決策を提案し、DBAはその中から選択できます。推奨事項の生成中、ADDMはハードウェアの変更、データベース構成の変更、スキーマ・オブジェクトの変更、アプリケーションの変更および他のアドバイザへの参照など様々な変更を考慮します。

関連項目

Automatic Database Diagnostic Monitorの詳細は『Oracle Database 2日でデータベース管理者』を、自動ワークロード・リポジトリの詳細は『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。 

SQLチューニング・アドバイザ

Oracle Databaseでは、SQLチューニング・アドバイザと呼ばれるサーバー・ユーティリティを提供します。SQLチューニング・アドバイザは、1つ以上のSQL文を入力情報として取得し、自動SQLチューニング・アドバイザを起動してその文のSQLチューニングを実行します。SQLチューニング・アドバイザの出力は、アドバイスまたは推奨事項の形式で、各推奨事項の原理およびその予想されるメリットも提供します。推奨事項は、オブジェクトの統計の収集、新しい索引の作成、SQL文の再構築、SQLプロファイルの作成に関連しています。ユーザーは、SQL文のチューニングを完了するために推奨事項を受け入れるかどうかを選択できます。

関連項目

詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。 

SQLアクセス・アドバイザ

SQLアクセス・アドバイザは、スキーマ変更の推奨事項を作成します。このアドバイザは、SQL問合せを最適化するための索引やマテリアライズド・ビューなどのアクセス構造の作成を提案できます。また、問合せのパフォーマンスを改善するためのパーティション表、索引またはマテリアライズド・ビューも提案できます。

SQLアクセス・アドバイザは、SQLワークロードを入力として使用します。ワークロードは、現在および最新のSQLアクティビティ、SQLリポジトリまたは開発環境によるユーザー定義のワークロードなどを含む様々なソースから選択できます。その後、アドバイザは、ワークロード全体のパフォーマンス向上のための変更を推奨します。

関連項目

詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください。 

ストリーム・チューニング・アドバイザ

Streamsトポロジは、Streams環境におけるデータベース、データベースに構成されたStreamsコンポーネントおよびそれらのコンポーネント間のメッセージ・フローを表現したものです。ストリーム・パフォーマンス・アドバイザは、スループットおよび待機時間の測定も含むStreamsトポロジのパフォーマンス測定を報告します。ストリーム・パフォーマンス・アドバイザは、Streamsトポロジのボトルネックも識別し、修正します。また、ストリーム・パフォーマンス・アドバイザは、StreamsトポロジのStreamsコンポーネントを調査し、パフォーマンス改善の方法を推奨します。

関連項目

詳細は、『Oracle Streams概要および管理』を参照してください。 

スケジューラ

Oracle Databaseには、管理タスクを簡素化し、複雑なスケジューリング・ニーズに対処する豊富な機能セットを提供するために、DBMS_SCHEDULERパッケージにファンクションとプロシージャのコレクションが用意されています。これらのファンクションは総称してスケジューラと呼ばれ、どのPL/SQLプログラムからでもコールできます。

スケジューラを使用すると、データベース管理者とアプリケーション開発者はデータベース環境で各種タスクが発生する時期と場所を制御できます。たとえば、データベース管理者は、バックアップや夜間のデータ・ウェアハウスのロードおよび抽出など、データベース・メンテナンス・ジョブをスケジュールして監視できます。

データベース・リソース・マネージャ

従来、Oracleデータベースなど、システム上で実行される各種アプリケーション間のリソース管理は、オペレーティング・システムによって調整されていました。データベース・リソース・マネージャは、データベース内の実行スケジュールを制御することで、各種セッション間のリソースの分配を制御します。実行させるセッションとその実行時間を制御することで、データベース・リソース・マネージャでは、リソース分配とプラン・ディレクティブとを確実に一致させることができます(したがって、ビジネス目標とも一致します)。

関連項目

データベース・リソース・マネージャの詳細は、第14章「管理性」を参照してください。 

診断性機能の概要

Oracle Database 11gから、Oracle Databaseには、問題を防止、検出、診断および解決するための高度な障害診断性インフラストラクチャが含まれています。ターゲットとなる問題は、データベース・コードの不具合、メタデータの破損、顧客データの破損などが原因の重大なエラーです。インフラストラクチャの目標と、その目標を達成するためのOracleテクノロジの詳細は、「障害診断性インフラストラクチャ」を参照してください。

データベースのバックアップおよびリカバリ機能の概要

どのようなデータベース・システムでも、システムやハードウェアの障害が発生する可能性があります。バックアップおよびリカバリ方針の目的は、障害によるデータ消失からデータベースを保護し、データ消失が発生した場合、データベースを再構築することです。

RMANによるバックアップおよびリカバリとユーザー管理バックアップおよびリカバリ

データベースのバックアップは、すべてのバックアップおよびリカバリ方針の基礎となるものです。バックアップとは、データのコピーです。このコピーには、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルなど、データベースの重要な部分を含めることができます。メディア・リカバリでは、リストアされたバックアップ・データファイルや個々のデータ・ブロックに、REDOログまたは増分バックアップが適用されます。失われた変更を再適用することで、リカバリはバックアップをある時点にロールフォワードします。

バックアップおよびリカバリ方針の実装には、次のソリューションを適用できます。

前述のソリューションはいずれもOracleでサポートされており、完全にドキュメントに記載されていますが、RMANはデータベースのバックアップおよびリカバリの推奨ソリューションです。RMANは、複数のバックアップおよびリカバリの方法や機能へのアクセスなど、ユーザー管理バックアップおよびリカバリにはないものを提供しています。次に、最も顕著な機能を示します。

RMANまたはユーザー管理メソッドのいずれを使用した場合も、物理バックアップは、データ・ポンプ・エクスポート・ユーティリティで作成したスキーマ・オブジェクトの論理バックアップで補足できます。リストアおよびリカバリの後に、データ・ポンプ・インポートを使用してデータを再作成できます。

関連項目

バックアップ方法の詳細は、「Recovery Managerによるバックアップとユーザー管理バックアップ」を、データ・ポンプの詳細は、『Oracle Databaseユーティリティ』を参照してください。 

Oracle Flashbackテクノロジ

Oracleのほとんどのフラッシュバック機能は論理レベルで稼働するため、データベース・オブジェクトの表示と操作が可能です。Oracleの論理レベルのフラッシュバック機能はRMANに依存しません。そのため、RMANがバックアップ方法の一部であるかどうかにかかわらず使用可能です。フラッシュバック・ドロップ以外の論理フラッシュバック機能は、各データベースの更新および更新により上書きされた値の結果レコードである、UNDOデータに依存します。Oracle Databaseには、次の論理フラッシュバック機能が用意されています。

データ・リカバリ・アドバイザ

Oracle Databaseには、データ・リカバリ・アドバイザ・ツールが用意されています。このツールを使用すると、永続的なデータ障害が自動的に診断され、適切な修復オプションが提示されて、ユーザーのリクエストで修復が実行されます。データ・リカバリ・アドバイザは、Oracleのバックアップおよびリカバリ・ソリューションの単一のエントリ・ポイントを提供します。データ・リカバリ・アドバイザは、Enterprise Manager Database Control、Grid ControlコンソールまたはRMANコマンドライン・クライアントを介して使用できます。

関連項目

 

高可用性機能の概要

ほとんど常時に近い可用性を提供するように構成されたコンピューティング環境は、高可用性システムと呼ばれます。通常、この種のシステムには、障害が発生してもシステムを使用できるように冗長ハードウェアおよびソフトウェアがあります。適切に設計された高可用性システムでは、単一の障害箇所が回避されます。

Oracle Databaseには、計画されていた停止または計画外の停止の際に高可用性を提供する多数の製品と機能が用意されています。次の項で説明するこれらの機能を様々な組合せで使用して、特定の高可用性ニーズを満たすことができます。

Oracle Real Application Clusters

Oracle Real Application Clusters(Oracle RAC)では、Oracle Databaseがパッケージ・アプリケーションまたはカスタム・アプリケーションを複数のクラスタ・サーバーにわたって変わりなく実行できます。この機能により、最高レベルの可用性と非常に柔軟なスケーラビリティが実現されます。クラスタ・サーバーの1つが停止しても、Oracle Databaseは稼働中のサーバー上で稼働し続けます。処理能力を上げる必要がある場合には、データへのアクセスを妨げることなく、別のサーバーを追加できます。

Oracle Data Guard

Oracle Data Guardは、本番Oracleデータベースが障害、災害、エラーおよびデータ破損に対処できるように、1つ以上のスタンバイ・データベースを作成、保守、管理および監視する包括的なサービスのセットを提供します。Data Guardでは、これらのスタンバイ・データベースは、トランザクション一貫性のある本番データベースのコピーとして維持されます。計画停止または計画外停止で本番データベースが使用できなくなった場合、Data Guardにより任意のスタンバイ・データベースが本番用に切り替えられるため、停止時間が大幅に短縮されます。

Oracle Streams

Oracle Streamsを使用すると、データベース内またはデータベース間で、データ・ストリーム内のデータ、トランザクションおよびイベントを伝播させ、管理できます。Streamsには一連の要素が用意されており、データ・ストリームに入れる情報、ノード間でのストリームのルーティング方法、各ノードに入った時のストリーム内でのイベントの処理およびストリームの終了方法を制御できます。

Oracle Flashbackテクノロジ

フラッシュバック・テクノロジは、データの表示を切り替えて異なる時点でのデータの状態を参照できるように、一連の機能を提供します。フラッシュバック機能を使用すると、スキーマ・オブジェクトおよび履歴データの過去のバージョンを問い合せできます。また、変更分析やセルフ・サービス修復を実行して、データベースのオンライン中に論理破損からリカバリできます。フラッシュバック・テクノロジはOracle Databaseに固有のもので、行、トランザクション、表、表領域、データベースを含むすべてのレベルでのリカバリをサポートします。

オンライン表再定義

Oracle Enterprise Managerには、スクリプトが自動的に生成されて表のオンライン再編成が実行される「オブジェクトの再編成」ウィザードが用意されています。ユーザーに表への完全なアクセスを許可しながら、すべての再定義プロセスが実行されます。

自動ストレージ管理

自動ストレージ管理(ASM)は、ファイルシステムとボリューム・マネージャを直接Oracleカーネル内で垂直に統合します。ASMは使用可能なすべての記憶域にファイルを分散します。データ破損からデータを保護するために、ASMではSAME(Stripe And Mirror Everything)の概念が拡張され、ディスク・レベル全体ではなくデータベース・ファイル・レベルでのミラー化を可能にする柔軟性が拡張されています。ASMを使用するDBAは、ディスク・グループと呼ばれる規模の大きなオブジェクトを作成および管理します。ディスク・グループは、1つの論理単位として管理される一連のディスクを表します。基礎となるデータベース・ファイルのファイルの命名と配置を自動化することにより、DBAの時間を節約でき、標準のベスト・プラクティスに確実に準拠できます。

Recovery Manager

データベースのバックアップおよびリカバリを管理するOracle Databaseのユーティリティです。RMANは、要求されたバックアップ、リストアまたはリカバリ操作の最も効率的な実行方法を判断し、処理のためにこれらの操作をOracle Databaseサーバーに発行します。Recovery Managerとサーバーは、データベース構造に対する変更を自動的に識別し、必要な操作を動的に調整して変更に対処します。

フラッシュ・リカバリ領域

フラッシュ・リカバリ領域は、Oracle Database内のすべてのリカバリ関連ファイルおよびアクティビティに対する統合された記憶域の場所です。この機能を有効化すると、すべてのRMANバックアップ、アーカイブ・ログ、制御ファイルの自動バックアップおよびデータファイルのコピーが、指定されたファイルシステムまたは自動ストレージ管理のディスク・グループに自動的に書き込まれます。このディスク領域の管理は、RMANおよびデータベース・サーバーが行います。フラッシュ・リカバリ領域を使用することにより、テープへの書込みのボトルネックがなくなります。さらに、データベースのメディア・リカバリが必要な場合に、データファイルのバックアップをすぐに使用できます。

関連項目

第17章「高可用性」 

ビジネス・インテリジェンス機能の概要

この項では、次のビジネス・インテリジェンス機能について説明します。

データ・ウェアハウス

データ・ウェアハウスは、トランザクション処理ではなく問合せおよび分析用に設計されたリレーショナル・データベースです。通常は、トランザクション・データから導出された履歴データが格納されますが、他のソースからのデータも格納できます。データ・ウェアハウスにより、分析のワークロードがトランザクションのワークロードから分離され、組織は複数のソースからのデータを連結できます。

データ・ウェアハウス環境には、リレーショナル・データベースの他に、ETLソリューション、オンライン分析処理(OLAP)エンジン、クライアント分析ツール、データを収集してビジネス・ユーザーに配信するプロセスを管理する他のアプリケーションがあります。

抽出、変換、ロード(ETL)

データ・ウェアハウスをビジネス分析に役立てるには、データ・ウェアハウスに定期的にデータをロードする必要があります。データをロードするには、1つ以上の業務系システムからデータを抽出し、ウェアハウスにコピーする必要があります。ソース・システムからデータを抽出してデータ・ウェアハウスに取り込む処理は、一般にETLと呼ばれ、抽出、変換、ロードを表します。

データ・ウェアハウスでのビットマップ索引

索引を使用する目的は、特定のキー値が含まれる行へのポインタを提供することです。通常の索引では、そのキー値を持つ行に対応する各キーのROWIDのリストが格納されます。Oracle Databaseでは、各ROWIDとともに各キー値が繰り返し格納されます。従来のBツリー索引を使用して大きな表に完全な索引を作成すると、領域という面で膨大なコストがかかります。索引は表データの何倍にも膨れ上がることがあるからです。

ビットマップ索引では、ROWIDのリストのかわりに各キー値のビットマップがデータベースに格納されます。それに対して、ビットマップ索引は通常、表中で索引を付けるデータのサイズより小さくてすみます。データ・ウェアハウス環境では、通常、大量のデータと非定型問合せを扱うものの、同時データ操作言語(DML)トランザクションのレベルは高くありません。この種のアプリケーションに対するビットマップ索引の利点は次のとおりです。

さらに、通常、ディメンション表やファクト表の結合を含む一般的なデータ・ウェアハウスの問合せにおいて、ビットマップ結合索引は通常のビットマップ索引と同じ領域使用で、問合せのパフォーマンスを向上します。

マテリアライズド・ビュー

マテリアライズド・ビューは、問合せ結果を別々のスキーマ・オブジェクトに格納して、表データへのアクセスを提供します。通常のビューは記憶域を占めず、データも含まれていませんが、マテリアライズド・ビューには、1つ以上の実表やビューに対する問合せで得られた行が含まれます。問合せが実表ではなくマテリアライズド・ビューにアクセスして実行されるため、問合せ応答時間は向上します。マテリアライズド・ビューの格納場所は、実表と同じデータベースでも、異なるデータベースでもかまいません。

マテリアライズド・ビューをその実表と同じデータベースに格納すると、クエリー・リライトを通じて問合せのパフォーマンスをさらに改善できます。クエリー・リライトは、実表ではなくマテリアライズド・ビューを使用するようにSQL問合せを自動的にリライトするメカニズムです。クエリー・リライトにより、開発者はマテリアライズド・ビューを活用するためにアプリケーションのコードを書き換える必要はありません。クエリー・リライトは、データ・ウェアハウス環境で特に役立ちます。

表の圧縮

Oracleでは、すべてのタイプのデータ、バックアップおよびネットワーク通信量を、アプリケーションに対して透過的な方法で圧縮する、包括的なデータ圧縮機能が提供されています。これらの機能には、OLTPワークロードをターゲットとした圧縮も含まれています。この圧縮の使用は、記憶域の使用量の削減および問合せのパフォーマンスを向上すると同時に、書込みのパフォーマンスのオーバーヘッドを最低限にできます。表の圧縮は、すべてのリレーショナル・データの圧縮に使用できます。構造化されていないコンテンツの圧縮には、SecureFiles圧縮を使用します。重複除外により、SecureFilesデータの冗長コピーを自動的に除外できます。RMANバックアップの高速化のために、新しい、より高速な圧縮アルゴリズムが含まれるようになりました。これにより、ディスクの領域要件を減らすために、データ・ポンプ・エクスポートも圧縮できるようになりました。また、Data GuardでのREDOデータの圧縮により、ネットワーク通信量の削減および迅速なギャップ解決が可能になります。

関連項目

「表の圧縮」 

パラレル実行

Oracle DatabaseでSQL文をパラレル実行すると、同時に多数のプロセスが連携して1つのSQL文を実行します。文の実行に必要なタスクを多数のプロセスで分割して実行すると、Oracle Databaseでは、1つのプロセスで実行する場合と比較して、より高速に実行できます。これをパラレル実行またはパラレル処理と呼びます。パラレル実行では、大規模データベースでの、データ処理集中型の操作における応答時間が大幅に短縮されます。

分析SQL

Oracle Databaseには、データベースで分析操作を実行するための多数のSQL操作があります。これには、ランキング、移動平均、累計、対比レポート、期間対比などがあります。

OLAP機能

Oracleオンライン分析処理(OLAP)は、複数のディメンション間でのデータ分析において、システム固有の多次元記憶域を提供し、思考スピードと同じ速さの応答時間を実現します。データベースは、時系列計算、予測、加算および非加算演算子による高度な集計および割当演算子などの豊富な機能で分析をサポートします。この機能により、Oracleデータベースはビジネス・インテリジェンスのすべての領域と高度な分析アプリケーションをサポートする、完全な分析プラットフォームとなります。Oracle OLAPはデータベースに完全に統合されているため、標準的なSQLの管理、問合せおよびレポート・ツールを使用できます。

データ・マイニング

Oracle Data Miningでは、データがデータベースを出ることはありません。データ、データ準備、モデル構築およびモデルのスコアリングの結果は、すべてデータベースに残ります。これにより、Oracle Databaseはアプリケーション開発者に、データ・マイニングをデータベース・アプリケーションとシームレスに統合するためのインフラストラクチャを提供します。通常、データ・マイニングは、コール・センター、ATM、E-Businessリレーショナル管理(ERM)およびビジネス・プランニングなどで使用されます。Oracle Data Miningでは、PL/SQL API、Java API、モデルのスコアリングを行うSQL関数、およびOracle Data Minerと呼ばれるグラフィカル・ユーザー・インタフェースをサポートします。

関連項目

Oracle Data Miningの詳細は、第16章「ビジネス・インテリジェンス」を参照してください。 

大規模データベース(VLDB)

パーティション化は、大規模データベース(VLDB)の管理のための重要な機能です。パーティション化が扱う基本的な課題は、データの増加です。また、パーティション化によりデータベースは大きいデータセットへのスケーラビリティを持つと同時に、管理リソースやハードウェア・リソースを過度に増やすことなく、一貫性のあるパフォーマンスを維持します。パーティション化により、表、索引または索引構成表をパーティションと呼ばれる小さな単位に分割できます。SQL DML文を使用したパーティション表にアクセスする場合、アプリケーションの変更は不要です。

パーティション化により可用性、管理性およびパフォーマンスが改善するため、様々なアプリケーションにとって大きな利点となります。

情報ライフサイクル管理(ILM)

情報ライフサイクル管理(ILM)とは、その有効なライフサイクルを通じてデータを管理するための一連のプロセスおよびポリシーです。ILMソリューションを実装することの利点の1つは、適切な記憶域の階層を活用すると同時に、業務や規制への準拠に必要なデータを維持して、コストを削減することです。パーティション化は、ILMソリューションをデータベース内に実装するための機能です。

関連項目

VLDBの詳細は、第18章「大規模データベース(VLDB)」を参照してください。 

コンテンツ管理機能の概要

Oracle Databaseには、XML、テキスト、オーディオ、ビデオ、イメージ、医用画像および空間など、豊富な各種コンテンツをすべて処理するためのデータ型が組み込まれています。これらのデータ型は、データベースではシステム固有の型として表示されます。これらは、いずれもSQLを使用して問い合せることができます。これらのデータ型のいずれかまたはすべてに属するデータを、1つのSQL文に含めることができます。

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

Oracle DatabaseのXML

Oracle XML DBは、高パフォーマンスのXMLの格納と取得に関連する一連のOracle Databaseテクノロジです。SQLデータ・モデルとXMLデータ・モデルの相互運用が可能な方法でサポートするシステム固有のXMLを提供します。Oracle XML DBの機能は、次のとおりです。

Oracle XML DBは、Oracle XML Developer's Kit(XDK)とともに使用し、Oracle Application ServerまたはOracle Databaseのいずれかの中間層で実行するアプリケーションを構築できます。

LOB

LOBデータ型BLOBCLOBNCLOBおよびBFILEを使用すると、非構造化データ(テキスト、グラフィック・イメージ、ビデオ・クリップおよびサウンド・ウェーブなど)の大きなブロックを、バイナリ形式または文字形式で格納し、操作できます。このデータ型を使用すると、個々のデータに対する効率的なランダム・アクセスが可能です。

関連項目

SecureFiles LOBの詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 

SecureFiles

SecureFilesはOracle Database 11gの新機能であり、イメージ、オーディオ、ビデオ、PDFおよびスプレッドシートなどのファイルのコンテンツの格納に最適なソリューションを提供します。従来は、リレーショナル・データはデータベースに格納され、半構造化のものを含む構造化されていないコンテンツはファイルとしてファイル・システムに格納されていました。SecureFilesは、ファイルの記憶域の選択における主要なパラダイム・シフトです。SecureFilesは、Oracle Databaseの利点を保持しながら、従来のファイル・システムと比べ、ファイル・データの配布を高速化するように設計されています。SecureFilesは非構造化コンテンツの格納に最適なデータベース・システムおよびファイル・システムのアーキテクチャ属性を提供します。

テクノロジの主要な利点

SecureFilesには、通常はハイエンドなファイル・システムに見られる次のような拡張機能が含まれています。

前述のファイル・システムの拡張機能に加え、SecureFilesではOracle Databaseの次のような拡張機能を利用できます。

高パフォーマンス

SecureFilesは、徹底的な高パフォーマンスとスケーラビリティを目指し設計されています。SecureFilesは、基本的な読取りおよび書込み操作では、ファイル・システムと同様のパフォーマンスを実現します。SecureFilesで最適化されたアルゴリズムは、LOBの10倍のパフォーマンスを提供します。SecureFilesはファイル・システムの機能を超えるスケーラビリティを実現します。組織では、大規模なSMPシステムを使用したスケールアップ、または1つのシステム・イメージを維持しながらOracle Real Application Clustersで何百ものコンピュータを使用したスケールアウトのいずれも可能です。CPUとディスクのスケーリングは、独立して透過的に実行できます。Oracle Database 11gを使用して、組織はペタバイト、エクサバイト級のすべてのタイプのコンテンツを格納できます。

Oracle Text

Oracle Textは、文書またはテキスト形式のコンテンツに索引を付けることで、情報の高速で正確な検索を実現します。Oracle Textを使用すると、テキスト検索と通常のデータベース検索を1つのSQL文にまとめることができます。テキスト形式のコンテンツ、メタデータまたは属性に基づいて文書を検索できるため、Oracle Databaseがすべてのデータ管理の単一の統合ポイントとなります。

Oracle TextのSQL APIは単純で直感的であり、アプリケーション開発者とDBAはテキスト索引を作成、メンテナンスしてテキスト検索を実行できます。

Oracle Ultra Search

Oracle Ultra Searchを使用すると、Webサイト、データベース表、ファイル、宛先リスト、Oracle Application Server Portalsおよびユーザー定義データ・ソースに索引を付けて検索できます。この検索機能では、Oracle Ultra Searchを使用して各種の検索アプリケーションをビルドできます。

Oracle Multimedia

Oracle Multimediaはイメージ、オーディオおよびビデオの開発を簡略化する多数のサービスを提供します。従来の他のリレーショナル・データと同様に、Oracle Multimediaのオブジェクトは、表の列としてアクセスされます。マルチメディア・コンテンツは、データベース内で内部的に保存および管理することも、データベース内のコンテンツへの参照を保存することで外部的に保存および管理することもできます。JavaおよびPL/SQL APIを使用すると、メタデータの抽出、イメージ形式の変換、サムネイル・イメージの生成が可能で、アプリケーションの開発とメンテナンスのコストが大幅に削減されます。Oracle JDeveloper、Application ExpressおよびOracle Application Server Portalなどのアプリケーション開発ツールと統合することにより、アプリケーション開発者は、メディアを駆使したアプリケーションを簡単に作成およびメンテナンスできます。また、Oracle Multimediaには、シングル・フレームおよびマルチフレームのイメージ、波形、3Dボリュームのスライス、ビデオ・セグメント、構造化レポートなどのDigital Imaging and Communications in Medicine(DICOM)のコンテンツと同様のサポートが用意されています。

関連項目

Oracle Multimediaの詳細は、第19章「コンテンツ管理」を参照してください。 

Oracle Spatial

Oracle Databaseには組込みの空間機能があり、位置コンテンツ(資産、ビル、道路、地区、営業地域など)を格納し、索引を付けて管理し、データベースの機能を使用して位置関係を問い合せることができます。Oracle Spatialオプションによって、線形参照のサポートや座標系などの拡張空間機能が追加されます。

関連項目

Oracle Spatialの詳細は、第19章「コンテンツ管理」を参照してください。 

セキュリティ機能の概要

Oracle Databaseには、データベースへのアクセス方法と使用方法を制御するセキュリティ機能が用意されています。次のような理由から、セキュリティ・メカニズムが必要です。

スキーマは、各データベース・ユーザーに、そのユーザーと同じ名前によって対応付けられます。デフォルトでは、各データベース・ユーザーは、対応するスキーマ内のすべてのオブジェクトを作成およびアクセスする権利を持っています。

データベース・セキュリティはシステム・セキュリティデータ・セキュリティの2つのカテゴリに分類できます。

システム・セキュリティによって、システム・レベルにおけるデータベースのアクセスと使用を制御できます。システム・セキュリティ・メカニズムでは、ユーザーがデータベースへの接続を認可されているかどうか、データベース監査がアクティブになっているかどうかと、ユーザーが実行できるシステム操作がチェックされます。たとえば、次のものが含まれます。

データ・セキュリティによって、スキーマ・オブジェクト・レベルにおけるデータベースのアクセスと使用を制御できます。たとえば、データ・セキュリティにより、次の事項が決定します。

セキュリティのメカニズム

Oracle Databaseでは、任意アクセス制御が可能です。任意アクセス制御とは、権限に基づいて情報へのアクセスを制限する方法です。ユーザーがスキーマ・オブジェクトにアクセスするには、そのユーザーは適切な権限を割り当てられている必要があります。適切な権限が付与されているユーザーは、他のユーザーに自分で任意に権限を付与できます。

Oracle Databaseは、次のようにいくつかの異なる機能を使用してデータベース・セキュリティを管理します。

データ整合性とトリガーの概要

データは、データベース管理者やアプリケーション開発者によって決められたとおり、特定のビジネス・ルールを遵守する必要があります。たとえば、ビジネス・ルールによって、INVENTORY表のsale_discount列には9よりも大きな数値を入れないように指定されている場合を考えます。INSERT文やUPDATE文がこの整合性規則に違反しようとすると、Oracle Databaseはその無効な文を取り消し、アプリケーションにエラーを戻します。Oracle Databaseは、データ整合性規則を管理するために、整合性制約とデータベース・トリガーを提供します。


注意

データベース・トリガーによって整合性規則を定義または規定できますが、データベース・トリガーが整合性制約と同じ機能を持つわけではありません。特に、データベース・トリガーは、すでに表にロードされているデータをチェックしません。したがって、整合性制約によって整合性規則を規定できない場合にのみ、データベース・トリガーを使用することをお薦めします。  


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

整合性制約

整合性制約は、表の列に対してビジネス・ルールを定義する宣言の方法です。整合性制約は表のデータに関する文であり、常に次の規則に従って機能します。

整合性制約は表の定義の一部としてデータ・ディクショナリに格納されるため、すべてのデータベース・アプリケーションは同じ一連の規則を遵守する必要があります。規則が変更されても、整合性制約はデータベース・レベルで一度変更すればよいため、アプリケーションごとに何度も変更する必要はありません。キーとは、特定タイプの整合性制約の定義に含まれる列または列の集合です。キーによって、リレーショナル・データベースの異なる表と列の間の関連が示されます。キーの中にある個々の値を、キー値と呼びます。

Oracle Databaseがサポートする整合性制約は次のとおりです。

トリガー

トリガーとは、PL/SQL、JavaまたはC言語で記述され、表またはビューが変更された場合や、なんらかのユーザー・アクションまたはデータベース・システム・アクションが発生した場合に暗黙的に実行(起動)されるプロシージャです。

トリガーはOracle Databaseの標準機能を補い、高度にカスタマイズされたデータベース管理システムを提供します。たとえば、トリガーによって、表に対するDML操作を通常の業務時間内のみに制限できます。

関連項目

トリガーの詳細は、第22章「トリガー」を参照してください。 

情報統合機能の概要

分散環境とは、相互にシームレスに通信する様々なシステムで構成されるネットワークです。分散環境では、各システムをノードと呼びます。ユーザーが直接接続するシステムをローカル・システムと呼びます。このユーザーがアクセスする他のシステムをリモート・システムと呼びます。分散環境では、アプリケーションからローカル・システムやリモート・システムのデータにアクセスして相互に交換できます。すべてのデータに同時にアクセスして変更できます。

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

分散SQL

同一機種分散データベース・システムとは、1つ以上のコンピュータに常駐する複数のOracleデータベースで構成されるネットワークです。分散SQLを使用すると、アプリケーションとユーザーは、1つのデータベースにアクセスまたは変更する場合と同じくらい容易に、複数のデータベースにあるデータを同時にアクセスまたは変更できます。

Oracle分散データベース・システムは、1つのOracleデータベースであるかのように見せることができます。企業は、この分散SQL機能を使用して、すべてのOracleデータベースを1つであるかのように見せることで、分散システムの複雑さを軽減できます。

Oracle Databaseは、データベース・リンクを使用して、あるデータベース上のユーザーがリモート・データベース内のオブジェクトにアクセスできるようにします。ローカル・ユーザーは、リモート・データベースのユーザーでなくても、リモート・データベースへのリンクにアクセスできます。

位置の透過性

アプリケーションとユーザーがデータの物理的な位置を意識しないですむ(透過的である)とき、位置の透過性が実現されます。たとえば、複数のデータベースの表データを結合するビューによって、位置の透過性が実現されます。つまり、この場合、ビューのユーザーはデータの物理的な位置を知る必要がありません。

SQLとトランザクションの透過性

Oracle Databaseは、問合せ、更新およびトランザクションの透過性を提供します。たとえば、SELECTINSERTUPDATEおよびDELETEなどの標準SQL文は、非分散データベース環境の場合と同様にデータを操作します。また、アプリケーションでは標準SQL文COMMITSAVEPOINTおよびROLLBACKを使用してトランザクションを制御します。Oracle Databaseでは、分散トランザクションのデータ整合性が2フェーズ・コミット・メカニズムを使用して保証されるため、分散システム内のすべてのノードにトランザクションをコミットするように指示できます。この要求を満たせない場合は、すべてのノードでトランザクションがロールバックされます。

関連項目

2フェーズ・コミット・メカニズムの詳細は、『Oracle Database管理者ガイド』を参照してください。 

分散問合せの最適化

分散問合せの最適化では、コスト・ベースの最適化を使用して、リモート表から必要なデータのみを抽出するSQL式を検索または生成し、そのデータをリモート・サイト(または場合によってはローカル・サイト)で処理し、結果を最終処理のためにローカル・サイトに送信します。この操作により、すべての表データをローカル・サイトに転送して処理する場合に比べて、同じ所要時間に必要なデータ転送量が減少します。

Oracle Streams

Oracle Streamsを使用すると、データベース内またはデータベース間で、データ・ストリーム内のデータ、トランザクションおよびイベントを伝播させ、管理できます。ストリームにより、パブリッシュされた情報がサブスクライブした宛先に送付されます。

Oracle Streamsでは、ストリームに挿入する情報、ノード間でのストリームのフローまたはルーティング方法、各ノードで発生するストリーム内のイベント、およびストリームの終了方法を制御できます。ストリームで動作する要素の構成を指定することで、メッセージ・キューイングやデータ・レプリケーションなど、特定の要件に対処できます。

取得

Oracle Streamsは、イベントを暗黙的および明示的に取得してステージング領域に置きます。DML操作やDDL操作などのデータベース・イベントは、REDOログ・ファイルのマイニングによって暗黙的に取得されます。洗練されたサブスクリプション規則により、どのイベントを取得するかを決定できます。

ステージング

ステージング領域は、取得したイベントを格納し管理するキューです。データベース表に対する変更は論理変更レコード(LCR)としてフォーマットされ、サブスクライバが使用するまでステージング領域に格納されます。ステージングは、LCRの安全な保管場所を提供し、LCRデータの監査および追跡をサポートします。

使用

ステージング領域に置かれたメッセージは適用エンジンで使用され、そこで変更がデータベースに適用されるか、アプリケーションで使用されます。柔軟な適用エンジンにより、標準またはカスタムの適用ファンクションを使用できます。明示的デキューがサポートされるため、アプリケーション開発者はOracle Streamsを使用してメッセージを確実に交換できます。また、データへの変更の適用も通知できます。

メッセージ・キューイング

Oracle Streams Advanced Queuingは、Oracle Streamsの柔軟なインフラストラクチャの上にビルドされています。このコンポーネントは、イベント処理用の統一フレームワークを提供します。アプリケーションやワークフローで生成されたイベント、またはREDOログやデータベース・トリガーから暗黙的に取得されたイベントを、1つのキューで取得できます。これらのイベントは、様々な方法で使用できます。ユーザー定義ファンクションまたはデータベース表の操作で自動的に適用するか、明示的にデキューするか、使用側アプリケーションに通知を送信できます。これらのイベントは、どの段階でも変換できます。使用側アプリケーションが異なるデータベースにある場合、イベントは適切なデータベースに自動的に伝播します。このようなイベントに対する操作を自動的に監査でき、ユーザー指定の期間のみ履歴を保持できます。

データ・レプリケーション

レプリケーションとは、データベース・オブジェクトを複数のデータベース内で維持することです。Oracle Streamsには強力なレプリケーション機能が用意されており、この機能を使用して分散オブジェクトの複数コピーの同期を維持できます。

どの情報が関連しているかは自動的に判別され、その情報を必要としているユーザーと共有されます。このアクティブな情報共有には、DMLによるデータ変更を含むデータベースでのイベントの取得と管理、および他のデータベースやアプリケーションへのイベントの伝播が含まれます。データ変更には、レプリカ・データベースに直接適用する方法と、ユーザー定義プロシージャをコールして宛先データベースで代替処理を実行する方法があります。たとえば、データ・ウェアハウスのロードに使用したステージング表を移入できます。

Oracle Streamsはオープンな情報共有ソリューションであり、OracleとOracle以外のシステム間での異機種間レプリケーションをサポートしています。Transparent Gatewayを使用すると、Oracleデータベースで実行されたDML変更をOracle以外のプラットフォームに適用できます。

Oracle Streamsは、マテリアライズド・ビューと完全に相互運用可能です。マテリアライズド・ビューは、更新可能または読取り専用の、データの特定時点のコピーを維持できます。マテリアライズド・ビューには、値ベースの選択基準と一致するマスター表全体のコピー、またはその各行の定義済サブセットが含まれます。多重化マテリアライズド・ビューも使用でき、この場合は1つのマテリアライズド・ビューが別のマテリアライズド・ビューのサブセットとなります。マテリアライズド・ビューは、トランザクション一貫性を持つバッチ更新を介して、対応するマスター表から定期的に更新またはリフレッシュされます。

Oracle Database GatewayとGeneric Connectivity

Oracle Database GatewayとGeneric Connectivityにより、Oracle分散データベース機能がOracle以外のシステムへと拡張されます。Generic Connectivityは汎用ソリューションですが、Oracle Database Gatewayは調整されたソリューションであり、特定のOracle以外のシステム向けに特別にコーディングされています。Oracle Databaseは、Oracle以外のデータ・ソース、Oracle以外のメッセージ・キューイング・システムおよび非SQLアプリケーションで動作でき、他のベンダーの製品およびテクノロジとの相互運用性が保証されます。

Oracle Database GatewayとGeneric Connectivityは、分散SQLを使用する場合は同期アクセスに、Oracle Streamsを使用する場合は非同期アクセスに使用できます。Oracle Streams環境にTransparent Gatewayを導入することで、OracleデータベースからOracle以外のデータベースへのデータ・レプリケーションが可能になります。

Oracle Database GatewayとGeneric Connectivityは、サード・パーティのSQL言語、データ・ディクショナリおよびデータ型をOracle Databaseフォーマットに変換し、Oracle以外のデータ・ストアをリモートOracleデータベースのように取り扱えるようにします。これらの機能により、企業は各種システムをシームレスに統合し、全社的に連結されたビューを提供できます。

関連項目

第23章「情報の統合」 

Oracle Databaseアプリケーション開発

SQLとPL/SQLは、Oracle Databaseアプリケーション開発スタックの中核となります。

SQLとPL/SQLは、単純で広く知られた統一データ・モデルを提供します。SQLとPL/SQLは多数のアプリケーションでスタンドアロンとして使用されますが、Java(JDBC)、Oracle Call Interface(OCI)、Oracle C++ Call Interface(OCCI)またはXSU(XML SQL Utility)からも直接コールできます。ストアド・パッケージ、プロシージャおよびトリガーは、いずれもPL/SQLまたはJavaで記述できます。

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

Oracle SQLの概要

Structured query language(SQL)は、データベースを定義して操作するためのプログラミング言語です。SQLデータベースはリレーショナル・データベースです。これは、データが一連の単純なリレーションに基づいて格納されるということです。

SQL文

Oracleデータベース内の情報の操作はすべて、SQL文を使用して実行されます。SQL文は、SQLテキストの文字列です。次のように、文は、完全なSQL文と等価である必要があります。

SELECT last_name, department_id FROM employees; 


注意

SQL文の終了の表現は、プログラミング環境により異なります。このマニュアル・セットでは、デフォルトのSQL*Plus文字列であるセミコロン(;)を使用します。 


正常に実行できるのは完全なSQL文のみです。次のような不完全文を実行しようとすると、テキストの不足を示すエラーが発生します。

SELECT last_name 

SQL文は非常に簡単な文ですが、強力なコンピュータ・プログラム、または命令と考えることができます。SQL文は、次のカテゴリに分類されます。

データ定義言語(DDL)文は、スキーマ・オブジェクトを作成、変更、維持および削除します。DDL文には、データベースやデータベース内の特定のオブジェクトにアクセスする権限を、あるユーザーから他のユーザーに付与するための文も含まれます。

データ操作言語(DML)文は、データを操作します。表の行の問合せ、挿入、更新および削除はすべてDML操作です。最も使用頻度の高いSQL文は、SELECT文です。この文によって、データベースからデータを取り出します。表やビューのロックやSQL文の実行計画の検討もDML操作です。

トランザクション制御文は、DML文によって行われる変更を管理します。これによって、ユーザーはいくつかの変更をグループ化して論理トランザクションを作成できます。この文に含まれるのは、COMMITROLLBACKおよびSAVEPOINTなどです。

セッション制御文を使用すると、ユーザーは自分のカレント・セッションのプロパティを制御できます。つまり、ロールを使用可能や使用禁止にしたり、言語設定を変更できます。セッション制御文には、ALTER SESSIONおよびSET ROLEの2つがあります。

システム制御文は、Oracleデータベース・インスタンスのプロパティを変更します。ALTER SYSTEMは唯一のシステム制御文です。この文は、共有サーバーの最小数などの設定値の変更のために使用します。また、セッションの停止やその他のシステム全体のタスクも実行できます。

埋込みSQL文は、DDL文、DML文およびトランザクション制御文を、Oracleプリコンパイラとともに使用されるプログラムなどの手続き型言語プログラムに取り込んだものです。この文に含まれるのは、OPENCLOSEFETCHおよびEXECUTEなどです。

関連項目

SQLの詳細は、第24章「SQL」を参照してください。 

PL/SQLの概要

PL/SQLは、SQLに対するOracleの手続き型言語拡張機能です。PL/SQLでは、SQLが持つ平易さと柔軟性に、IF ... THENWHILELOOPなどのルーチンを含む、構造化プログラミング言語の手続き型機能が結合されています。

データベース・アプリケーションを設計するときには、PL/SQLを使用することによる次のような利点を検討してください。

次の項では、データベース内に定義し、一括して格納できるPL/SQLプログラム・ユニットについて説明します。

プロシージャファンクションは、一連のSQL文およびPL/SQL文です。これらの文は、特定の問題を解決したり一連の関連タスクを実行することを目的として、1つの単位としてグループ化されています。プロシージャとファンクションは、作成後にコンパイル済の形式でデータベース内に格納され、ユーザーまたはデータベース・アプリケーションによって実行されます。プロシージャとファンクションは同じです。ただし、ファンクションはユーザーに必ず1つの値を戻します。これに対して、プロシージャは値を戻しません。

パッケージによって、関連したプロシージャ、ファンクション、変数およびその他の構成メンバーをカプセル化し、データベースの単位としてまとめて格納できます。パッケージによって、機能性が拡大されます。たとえば、グローバル・パッケージ変数を宣言して、パッケージ内のプロシージャで使用できます。パッケージのすべてのオブジェクトを一度に解析およびコンパイルし、メモリーにロードできるため、パフォーマンスも改善できます。

関連項目

PL/SQLの詳細は、第24章「SQL」を参照してください。 

Javaの概要

Javaは、アプリケーション・レベルのプログラムに効果を発揮するオブジェクト指向のプログラミング言語です。Oracle DatabaseにはあらゆるタイプのJDBCドライバが用意されており、Javaアプリケーションからのデータベース・アクセスを拡張します。Javaストアド・プロシージャはアクセス制御の面で移植可能でセキュアであり、Java以外の従来型アプリケーションでもJavaを透過的に起動できます。また、Javaコードのシステム固有のコンパイルは非常に簡単で、パフォーマンスが大幅に改善します。

関連項目

Javaの詳細は、「Javaの概要」を参照してください。 

アプリケーション・プログラミング言語(API)の概要

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

関連項目

次のマニュアルは、様々なOracle APIについて説明します。

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

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

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

  • 『Oracle Database PL/SQL言語リファレンス』

  • 『Oracle Database Data Cartridge Java API Reference』

また、詳細は、第25章「サポートされているアプリケーション開発言語」を参照してください。 

アプリケーション開発環境の概要

Oracleでは、異なるアプリケーション開発者のニーズに対応するために、様々なアプリケーション開発環境を提供しています。

データ型の概要

SQL文中の列値と定数は、それぞれ特定の記憶域形式、制約および値の有効範囲に対応付けられたデータ型を持っています。表の作成時には、その各列のデータ型を指定する必要があります。

Oracle Databaseでは、次の複数のカテゴリで多くのデータ型を使用できます。

さらに、組込みデータ型または以前に作成したオブジェクト型、オブジェクト参照およびコレクション型から、ユーザー定義のオブジェクト型を作成できます。ユーザー定義型のメタデータは、SQL、PL/SQL、Javaおよび他の公開インタフェースで使用可能なスキーマに格納されます。

ユーザー定義オブジェクト型は、基礎となる永続データ(属性)と関連する動作(メソッド)を指定するという点で、ネイティブのSQLデータ型と異なります。オブジェクト型は、実社会のエンティティを抽象化したもので、抽象データ型(ADT)とも呼ばれます。

関連項目

  • Oracleの組込みデータ型および提供されるデータ型の完全なリストは、『Oracle Database SQL言語リファレンス』を参照してください。

  • 第26章「Oracleデータ型」

  • 『Oracle Databaseオブジェクト・リレーショナル開発者ガイド』

 

グローバリゼーションの概要

Oracleデータベースは世界中どこにでもデプロイでき、Oracleデータベースの単一インスタンスに世界中のユーザーがアクセスできます。各ユーザーには、それぞれの所在地に固有の言語と形式で情報が表示されます。

Globalization Development Kit(GDK)により開発プロセスが簡素化され、多言語市場に向けたインターネット・アプリケーションの開発コストが削減されます。GDKを使用すると、1つのプログラムで世界各地のあらゆる言語によるテキストを処理できます。

関連項目

グローバリゼーションの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 


戻る 次へ
Oracle
Copyright © 1993, 2008 Oracle Corporation.

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