29
Postgres Plus ® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け 2009 6 http://www.enterprisedb.com

Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Postgres Plus® Advanced Serverでの

Oracle互換性の提供

EnterpriseDB ホワイトペーパー

DBA およびアプリケーション開発者向け

2009 年 6 月

http://www.enterprisedb.com

Page 2: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 2

要旨

Oracle®を使用する企業は一般に、少なくとも次の 3 つの理由から代替

データベースに興味を持ちます。

• 価格の上昇および厳しい経済環境に直面する中で、総所有コスト

(TCO)を削減。 • 企業内およびより大きな市場で機動的に対処するためのライセンス

の柔軟性。 • 卓越した技術サポートおよび多彩な顧客経験価値 (Customer

Experience) を提供するベンダー。 データベースの変更にともなうパフォーマンスの低下に関連するコスト、

アプリケーションの再コーディング、および担当者の再トレーニングなど

のコストに対する不安は、想定される節約額を上回るもので、ベンダーの

固定化を正当化していました。 EnterpriseDBのオープンソースに基づくPostgres Plus Advanced Serverは、PL/SQL、Oracleの構文、Oracleカタログビュー、OCIサポート、

Oracle組み込みパッケージ、Oracleライクなツール、レプリケーション、

データ型など、重要なOracle機能に対する互換性を維持しながらOracleに匹敵するパフォーマンスを備える拡張PostgreSQLです。 Oracleの補足または代替としてのPostgres Plus Advanced Serverを評価

することは、代替データベースでのTCOの削減、ライセンスの柔軟性、

そして真のOracle互換性を求めるOracle導入企業にとって時間を費やす価

値のあることです。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 3: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 3

Oracle 互換性の必要性

Oracle®を使用する企業は一般に、少なくとも次の 3 つの理由から代替

データベースに興味を持ちます。第 1 に、こうした企業は予算的な制約

に直面しており、データベースの総所有コスト(TCO)を削減する必要

があります。第 2 に、エンタープライズ内およびより大きな市場で機動

的に対処するためのライセンスの柔軟性が求められています。 後に、卓

越した技術サポートおよび多彩な顧客経験価値を提供するベンダーが積極

的に求められています。さらに、企業は既存のインフラストラクチャーと

スキルを補足するソリューションを探しています。 伝統的なデータベースベンダーは、こうした 3 つの利点すべての組み合

わせを提供することはできません。Microsoft SQL® Server™および IBM DB2 は、柔軟性と多彩な顧客経験価値を可能にする場合もありますが、

TCO を大幅に削減することはできません。それに対してオープンソース

データベースでは、TCO の利点と柔軟性を提供できます。 ただし、こうしたオープンソースデータベースでは、今日のミッションク

リティカルなアプリケーションで要求されるエンタープライズ用途に耐え

うる機能を欠いているか、こうした組織で要求されるエンタープライズ向

けのサポートが提供されていません。

後に、上記のようなデータベースでは、既存のアプリケーションとス

タッフをサポートするためのデータベースの互換性と相互運用性が提供さ

れていません。データベースの変更にともなって発生するアプリケーショ

ンの再コーディング、および担当者の再トレーニングを含むコストへの懸

念は、想定される節約額を上回るものです。したがってこうした企業では、

身動きが取れず Oracle に固定されていました。 EnterpriseDBでは、このような企業のニーズを満たすために、Postgres Plus™ Advanced Serverを作成する目的で世界 先端のオープンソース

データベースであるPostgreSQLを大幅に拡張しました。Postgres Plus Advanced Serverは、大量処理を行うミッションクリティカルなアプリ

ケーションに適したエンタープライズ向けのリレーショナルデータベース

管理システム(RDBMS)です。 EnterpriseDBによるPostgreSQLの拡張は主に、パフォーマンスおよび

Oracle互換性の 2 つのカテゴリに該当します。 Postgres Plus Advanced Serverの も卓越した機能は、Oracleデータ

ベース向けに記述されたアプリケーションをそのコードを変更しないで実

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 4: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 4

行できることです。Oracleに対するEnterpriseDB の互換性により、すで

にOracleへの投資を行っている企業にとって、オープンソースデータベー

スの利点を享受することが容易になります。 Postgres Plus Advanced Server上で既存のOracleアプリケーションを実

行できることによって、一般的にOracleから他のデータベースにアプリ

ケーションを移行するために必要になるコストと時間を要するリスクの高

い再コーディングが排除されます。さらに、企業のOracle DBAおよび

データベース開発者のスキルセットはPostgres Plus Advanced Server 環境で完全に再使用可能であり、コストのかかる再トレーニングまたは再雇

用の必要がなくなります。 英国のオックスフォード近くに位置するEnterprise Performance Centerでは、EnterpriseDBのデータベースパフォーマンス専門家が、ネイティブ

PostgreSQLよりも 大で 50%高速に実行できるようにPostgres Plus Advanced Serverのパフォーマンスをチューニングしました。その結果と

して、非常に高い費用効果を持つ極めて拡張性の高いデータベースソ

リューションが実現しました。実際、既存のOracleアプリケーションを

Postgres Plus Advanced Serverに移行した後、Oracleに対して同じアプ

リケーションを実行した場合、同等かそれ以上のパフォーマンスが得られ

ていることが多くの顧客から報告されています。 EnterpriseDBでは、企業のITインフラストラクチャーでOracleデータベー

スを代替または補足できるエンタープライズ用のデータベースを作成する

ために、9 つの重要な領域でPostgreSQLを拡張しました。

• Oracle SQL互換性:Postgres Plus Advanced Serverは、Oracle固有のSQL構文を実行します。

• PL/SQL互換性:Postgres Plus Advanced Serverは、トリガー、ス

トアドプロシージャー、パッケージ、およびファンクションについ

てOracle固有の言語であるPL/SQLを実行します。 • データディレクトリビュー:Postgres Plus Advanced Serverには、

も一般的なOracleカタログビューが含まれています。 • プログラミングの柔軟性とドライバ:Postgres Plus Advanced

Serverは、Oracle Call Interface(OCI)™との互換性および相互運

用性を含めて、Oracle用データベースアプリケーションを作成する

ために使用される も一般的なプログラミング言語をサポートして

います。 • 移行ツール:Postgres Plus Advanced Server では、Oracle のス

キーマ、データ、パッケージ、トリガー、ストアドプロシージャー、

および関数を Postgres Plus Advanced Server データベースに簡単

なワンステップで移動するための自動ツールセットが用意されてい

ます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 5: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 5

• レプリケーション:Postgres Plus Replication Serverは、Oracleの数分の一のコストで他のアプリケーションの基盤と同じように、ほ

とんどリアルタイムにOracleデータベースをレプリケーションでき

るので、データベースのパフォーマンスを向上させ、OLTPシステ

ムからのレポートの負荷を軽減します。 • エンタープライズ用途に耐えうる信頼性および拡張性:Postgres

Plus Advanced Serverは、大量処理を行うミッションクリティカル

な多くのアプリケーションでOracleを適切に代替することができま

す。 • セキュリティ:Postgres Plus Advanced Server では、機密情報の

隠蔽のために、伝統的なロールベースの認証および許可に加えて、

ソースコードの難読化が行われています。 • Oracleライクなツール:Postgres Plus Advanced Serverには、プ

ロフェッショナルなOracle DBAおよび開発者によく知られている

堅牢な統合化ツールセットが含まれます。 これらの 9 つの各領域について、以降で詳細に説明します。このホワイ

トペーパーは技術資料ではありませんが、データベース管理者(DBA)

および開発者にPostgres Plus Advanced ServerのOracleに対する互換性

について詳細に理解していただくことを想定したものです。

Postgres Plus Advanced Serverの導入

Postgres Plus Advanced Serverは、オープンソースのPostgreSQLデータ

ベースをベースに構築され、多くのOracleアプリケーションに対して互換

性を持つ安定した安全で拡張性の高いエンタープライズ向けリレーショナ

ルデータベース管理システム(RDBMS)です。Postgres Plus Advanced Serverは、オープンソース環境および展開に対応する価格設定がなされて

いますが、大量処理を行うミッションクリティカルなエンタープライズ用

途に適した信頼性の高いRDBMSです。 EnterpriseDB製品ファミリは、エンタープライズ向けソフトウェアソ

リューションのあらゆる要素を含む包括的なリレーショナルデータベース

管理システムスイートから構成されます。EnterpriseDB製品ファミリは、

次の製品から構成されます。

• Postgres Plus Advanced Server:十分にテストされ、業界内で

認められたPostgreSQLデータベースをベースにPostgres Plus Advanced Serverは、確固としたOracleに対する互換性、安定性、

および拡張性を提供します。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 6: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 6

• DBA Management Server:Postgresデータベースの監視および管

理のための統合されたWebベースインターフェイス。 • DBA Monitoring Console:リソースの使用状況をリアルタイムで

監視するための Web ベースのインターフェイス。 • Postgres Studio:開発者およびDBAがPostgres Plus Advanced

Serverデータベースを管理できるユーティリィティ。 • Migration Studio:Oracleのスキーマ、データ、パッケージ、ファ

ンクション、およびプロシージャーをPostgres Plus Advanced Serverに移動する自動化ツール。

• Postgres Plus Replication Server:広範なビジネス面の課題に対

応するために、企業全体でOracleおよびPostgres Plus Advanced Serverデータベースをほぼリアルタイムにレプリケーションできま

す。 • EnterpriseDBコネクタ: も一般的なすべてのプログラミング言

語およびプラットフォームでPostgres Plus Advanced Serverを使

用することを可能にします。

SQL 互換性

Postgres Plus Advanced ServerのOracleデータベース互換性の基本構成

部分は、OracleのSQL言語で記述されたデータベースクエリーを認識し、

適切に実行する機能です。さらにPostgres Plus Advanced Serverは、

Oracleと同じデータ型、ファンクション、および変数をサポートし、

OracleとPostgreSQL間の列エイリアスの処理、パブリック・シノニム、

シーケンス、およびDUALテーブルの非互換性について修正します。

Oracle 互換データ型

国際標準化機構( International Standards Organization)は標準のSQLデータタイプセットを定義していますが、Oracleでは開発者向けに柔軟性

と機能性を高める目的でこのセットを拡張しています。Oracleに対する互

換性を提供するために、すべてのOracleデータ型がPostgreSQLのネイ

ティブのデータ型に割り当てられています。 Oracle では長年にわたってバイナリデータ型の後方互換性を維持する必

要があったために、Postgres Plus Advanced Server の大半のデータ型

マッピングではオプションと柔軟性が追加されています。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 7: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 7

データ型 Oracle 互換 追加機能

CHAR 注 1 を参照 VARCHAR 注 2 を参照 VARCHAR2 注 2 を参照 NUMBER 注 3 を参照 BLOB CLOB DATE

注 1: Oracleでは、CHARデータ型の上限は 2000 バイトまたは文字ですが、Postgres Plus Advanced ServerのCHARの 大サイズは 1GBです(保存できる実際の文字数は

データベース文字セットのエンコード方式にのみ基づきます)。 注 2: Oracleでは、VARCHARデータ型およびVARCHAR2 データ型の上限は 4000 バイ

トまたは文字ですが、Postgres Plus Advanced Serverのこれらのデータ型では 大サイ

ズは 1GBです(保存できる実際の文字数はデータベース文字セットのエンコード方式に

のみ基づきます)。 注 3: OracleではNUMBERデータ型の精度は 38 桁に制限されていますが、Postgres Plus Advanced ServerのNUMBER実装では 大で 1000 桁の精度を提供しています。

Oracle 互換のファンクションおよび変数

Postgres Plus Advanced Serverは、Oracle開発者およびDBAにより広く

使用されている次のSQLから呼び出し可能なファンクションおよび変数

をサポートしています。

Oracle 互換のファンクション/変数の名前

ADD_MONTHS CEIL CHR CONCAT DECODE FLOOR GREATEST INITCAP INSTR LAST_DAY LEAST LENGTH LTRIM LOWER LPAD MONTHS_BETWEEN NEW_TIME NEXT_DAY NVL NVL2 REPLACE ROUND RPAD RTRIM SUBSTR SYSDATE SYSTIMESTAMP TO_CHAR TO_DATE TO_NUMBER TRUNC UPPER USER

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 8: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 8

Oracle 互換列エイリアス

列エイリアスは、Oracleの開発者およびレポート記述者の双方で一般的に

使用されているSQL機能です。PostgreSQLでは選択リストでの列エイリ

アスの割り当て時に長らくキーワード「AS」が要求されており、それに

対してOracleでは不要であったために、PostgreSQLではOracle向けに記

述された多くのSQL文に対して非互換性を生じています。Postgres Plus Advanced Serverでは、「AS」キーワードの要件が削除されたために、

Oracle SQLクエリーをエラーなく実行できます。

Oracle 互換パブリックシノニム

Postgres Plus Advanced Server ではパブリックシノニムのほか、テーブ

ル、ビュー、シーケンスなどのオブジェクトのデータベース全体の代替名

がサポートされます。 Oracle 互換シーケンス

PostgreSQLではシーケンスが実装されていますが、操作を実行するため

に フ ァ ン ク シ ョ ン CURRVAL ( seq_name ) お よ び NEXTVAL(seq_name) を使用します。これは、Oracleのseq_name.CURRVAL構文およびseq_name.NEXTVAL構文に対して互換性がありません。この非

互換性を解消するために、EnterpriseDBではPostgreSQLの現在の構文の

利点を維持しながら、Oracle互換のシーケンス操作構文をサポートするよ

うにPostgreSQLを拡張しました。 Oracle でシーケンスを定義するために使用されている CREATE SEQUENCE構文は、ORDER句を除いてPostgres Plus Advanced Serverでも機能します。次に例を示します。

CREATE SEQUENCE empno_seq START WITH 1 INCREMENT by 1; Postgres Plus Advanced Serverで追加される利点の一例として、自動番

号付けのためのテーブル定義のDEFAULT句内でOracle互換のシーケンス

操作構文を使用できることがあります。この機能を利用することにより、

自動番号付けを行うためにBEFORE UPDATEトリガーを手動で作成する

必要はなくなりました(Oracleではこれが要求されます)。次に例を示し

ます。

CREATE TABLE emp (

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 9: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 9

empno NUMBER (10) NOT NULL DEFAULT empno_seq.NEXTVAL, ename VARCHAR2(32) NOT NULL, … PRIMARY KEY (empno));

Oracle 互換階層問い合わせ

Postgres Plus Advanced Serverでは、Oracleと同様に階層問い合わせが

サポートされます。階層クエリーでは、単一テーブル内で親/子関係を問

い合わせできます。Postgresでは、階層問い合わせで も一般的に使用さ

れる演算子がサポートされます。 Oracle 互換オプティマイザヒント

オプティマイザヒントは、特定の SQL ステートメントに埋め込むことが

できるディレクティブです。こうしたディレクティブは、データを取得す

るために指定のタイプのクエリープランを使用するように(または使用し

ないように)クエリーオプティマイザに強制します。Postgres Plus Advanced Server では、 も一般的に使用される 15 以上のディレクティ

ブがサポートされます。 Oracle 互換データベースリンク

データベースリンクは、リモートデータベースへの接続情報を含む名前付

きデータベースオブジェクトです。これにより、テーブル名の後に単純に

「@dblink」構文を追加することにより、SQL 文でリモートデータベース

内のテーブルにアクセスできます。Postgres Plus Advanced Server では、

Oracle データベースおよび他のリモート Postgres Plus Advanced Serverデータベースへのデータベースリンクがともにサポートされます。

DUAL テーブル

Oracleでは、SELECT文中に常にFROM句が必要とされたために、

DUMMYという名前の 1 列を含み、値xの 1 行が入力されたDUALという名

前のテーブルが作成されました。Postgres Plus Advanced Serverでは、

OracleとのSQL文の互換性のためにこのテーブルが含まれています。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 10: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 10

ROWNUM

ROWNUMは疑似列であり、多くのアプリケーションで呼び出されます。

ROWNUMでは、結果セット内のレコードに番号が付けられています。 選択文のwhere条件に一致する 初のレコードはROWNUM=1 であり、同じ

条件を満たす以降の各レコードについてROWNUMが加算されます。 Postgres Plus Advanced ServerではROWNUMがサポートされます。

PL/SQL 互換性

Postgres Plus Advanced Serverには、OracleのPL/SQLプロシージャー型

言語に厳密に一致するEnterpriseDB SPLと呼ばれるプロシージャー型言

語が含まれています。PL/SQLと同様に、SPLはカスタムのプロシー

ジャー、ファンクション、およびトリガーを記述するための極めて生産的

なブロック構造型プロシージャープログラミング言語です。Postgres Plus Advanced Serverではまた、EnterpriseDBのSPLおよびOracleのPL/SQLの間の緊密な類似性により、プロシージャー、ファンクション、

および変数のOracleスタイルパッケージをサポートできます。

ブロック構造

PL/SQL の場合と同様に、SPL プロシージャー、ファンクション、および

トリガーは同じブロック構造を持ちます。ブロックは、オプションの宣言

セクション、必須の実行ファイルセクション、およびオプションの例外セ

クションの 大 3 つのセクションから構成されます。ブロックには 小

で、キーワード BEGIN と END に囲まれた 1 つ以上のプロシージャース

テートメントから構成される実行ファイルセクションが存在します。 Oracle 組み込みパッケージ

Postgres Plus Advanced Server では、Oracle データベースに組み込まれ

た も良く使用されるパッケージがサポートされています。パッケージは、

再使用可能なコードを構築し、オブジェクト指向の設計手法を採用するた

めの構造です。パッケージは、データベース内の共通のパッケージ名によ

り識別される関連するデータベースオブジェクトのコレクションです。こ

れらのデータベースオブジェクトには、プロシージャー、ファンクション、

および変数が含まれます。Oracle には、既存のアプリケーションにより

頻繁に呼び出され、プログラミングの簡素化のために開発者により使用さ

れる組み込みのパッケージが含まれます。次のリストに、Postgres Plus

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 11: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 11

Advanced Server によりサポートされる組み込みパッケージで、SPL プ

ログラム機能がどのように拡張されるかを示します。

• DBMS_ALERT:プログラムは、いくつかの事前定義されたイベン

トの発生時にシグナル元プログラムから警告を受け取るための登録

を行うことができます。 • DBMS_JOB:プログラムは、一定の間隔で定期的に実行するよう

にスケジュールできます。 • DBMS_LOB:プログラム内でラージオブジェクト(BLOB および

CLOB)を操作できます。 • DBMS_OUTPUT:セッションのローカルメッセージバッファに対

してメッセージを記述できます。 • DBMS_PIPE:異なるセッション内で実行するプログラム間でメッ

セージを交換できます。 • DBMS_SQL:プログラムにより動的 SQL を実行できます。 • DBMS_UTILITY:プログラムで、各種の有用なユーティリィティ

を実行できます。 • UTL_FILE:プログラムでオペレーティングシステムファイルを操

作できます。 • UTL_MAIL:プログラムで電子メールを送信できます。 • UTL_SMTP : プ ロ グ ラ ム で Simple Mail Transfer Protocol

(SMTP)コマンドを直接発行することにより、電子メールを送信

できます。

ユーザー定義パッケージ

またPostgres Plus Advanced Serverでは、組み込みパッケージに加えて、

Oracleスタイルのカスタムパッケージがサポートされます。Oracleの場合

と同様に、Postgres Plus Advanced Serverパッケージは次の 2 つのメイ

ンコンポーネントから構成されます。

• パッケージ仕様:これは、パッケージの外部で他のプログラムお

よびアプリケーションにより参照できるパブリックのプロシー

ジャー、ファンクション、および変数を含むパブリックインター

フェイスです。 • パッケージ本体:これには、パッケージ外の他のプログラムおよ

びアプリケーションによりアクセスできないプライベートの変数、

プロシージャー、およびファンクションの宣言内およびロジック内、

そしてパッケージ仕様内で宣言されるプロシージャーおよびファン

クションの実装ロジックが含まれます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 12: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 12

プロシージャー

EnterpriseDB SPLのプロシージャーは、Oracle PL/SQLの場合と同様に機

能します。プロシージャーは、個別のプログラム文として起動または呼び

出されるプログラムです。プロシージャーは、呼び出し時にオプションで

入力パラメータの形式で呼び出し元から値を受け取り、オプションで出力

パラメータの形式で呼び出し元に値を返すことができます。プロシー

ジャー定義を含むスクリプトを実行することにより、プロシージャーが

データベースに保存されます。その後、別のプログラムからこのプロシー

ジャーを起動できます。

ファンクション EnterpriseDB SPLのファンクションは、Oracle PL/SQLの場合と同様に機

能します。ファンクションは、式として起動されるプログラムです。ファ

ンクションは、評価時にファンクションが埋め込まれている式内に代入さ

れる値を返します。多くのファンクションはオプションで、入力パラメー

タの形式で呼び出し元プログラムから値を取得します。値を返すファンク

ションに加えて、オプションで出力パラメータの形式により呼び出し元に

追加値を返すファンクションもあります。 ただし、ファンクション内で

の出力パラメータの使用は、推奨されるプログラミング習慣ではありませ

ん。ファンクションは、ステートメントで式を配置できるどの場所でも使

用できます。

トリガー EnterpriseDB SPLのトリガーは、Oracle PL/SQLの場合と同様に機能しま

す。トリガーは、テーブルに関連付けられ、データベース内に保存される

名前付きのコードブロックです。テーブル上で特定のイベントが発生する

と、コードブロックが実行されます。コードブロックが実行されると、ト

リガーが「起動」します。 Oracleの場合と同様に、Postgres Plus Advanced Serverは行レベルおよ

び文レベルのトリガーをともにサポートします。行レベルのトリガーは、

トリガーイベントにより影響を受ける各行ごとに 1 回起動します。対照

的に文レベルのトリガーでは、トリガーイベントにより影響を受ける行数

にかかわらず、トリガー文ごとに 1 回起動します。 Oracleの場合と同様にトリガーコードブロックは、文レベルのトリガーの

場合にはトリガー文の前後で、行レベルのトリガーの場合には影響を受け

る各行の前後で、Postgres Plus Advanced Serverにより実行されます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 13: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 13

無名ブロック Oracleの場合と同様に、Postgres Plus Advanced Serverではコードブ

ロックを容易に実行できます。このタイプのコードブロックは、無名ブ

ロックと呼ばれます。無名ブロックは名前を持たず、データベースに保存

されません。ブロックが実行されてアプリケーションバッファから消去さ

れると、ブロックコードはアプリケーションに再入力されない限り再実行

することはできません。無名ブロックは、テストプログラムなど短時間の

1 回限りのプログラムで使用するのに便利です。

コレクション Oracle コレクションは、同じデータタイプの順序付きデータセットです。

コレクションの も一般的な例としては、配列が挙げられます。Postgres Plus Advanced Server では、次のコレクション型がサポートされます。

• ネストテーブル:正の整数により順序付けられたデータ要素のリ

スト。 • 連想配列:負の整数および負以外の整数、または文字キーによっ

ても順序付けられるデータ要素のコレクション。 ネストテーブルおよび連想配列はともに、プログラム内でローカルに定義

して使用できます。さらに、各プログラムで定義を再作成しなくても複数

のプログラムで使用できるグローバルなネストテーブル定義を作成するた

めに、CREATE TYPE 文を使用できます。 コレクションの操作は、コレクションメソッドと呼ばれる特別なファンク

ションによって容易に行うことができます。次に、サポートされるコレク

ションメソッドを示します。

• COUNT:コレクション内の空ではない要素の数を返します。 • FIRST:コレクション内の先頭要素のインデックスを返します。 • LAST:コレクション内の末尾要素のインデックスを返します。

バルクバインドおよびバルクコレクション バルクバインドおよびバルクコレクションは、SQL 文の効率性を向上さ

せるためにコレクションを使用する Oracle での一般的な手法です。同じ

手法は、Postgres Plus Advanced Server でも適用できます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 14: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 14

各行について異なる値セットを持つ行セットを変更するために SQL 文が

必要な場合に、バルク結合を使用します。この手法は、FORALL 文によ

り適用します。FORALL 文では、コレクション内のデータベースサー

バーに値セットを渡します。これにより、異なる値で同じ SQL 文を反復

して起動する必要がなくなります。 次に、従業員リストの給与を変更するために UPDATE SQL 文とともに

FORALL 文を使用する例を示します。

DECLARE TYPE empno_tbl IS TABLE OF emp.empno%TYPE; TYPE sal_tbl IS TABLE OF emp.ename%TYPE; t_empno EMPNO_TBL; t_sal SAL_TBL; BEGIN ... FORALL i IN t_empno.FIRST..t_empno.LAST UPDATE emp SET sal = t_sal(i) WHERE empno = t_empno(i);

SELECT 文、FETCH 文などの SQL 文で複数の行が返される場合、また

は RETURNING 句を挿入、更新、または削除で使用する場合に、バルク

コレクションを使用します。次の例で示すように、BULK COLLECT 句で

はコレクション内で結果セットを返すためにバルクコレクションを採用し

ています。

DECLARE TYPE empno_tbl IS TABLE OF emp.empno%TYPE; TYPE ename_tbl IS TABLE OF emp.ename%TYPE; TYPE sal_tbl IS TABLE OF emp.sal%TYPE; t_empno EMPNO_TBL; t_ename ENAME_TBL; t_sal SAL_TBL; BEGIN ... UPDATE clerkemp SET sal = sal * 1.5 RETURNING empno, ename, sal BULK COLLECT INTO t_empno, t_ename, t_sal;

オブジェクトタイプ Oracle と同様に、CREATE TYPE 文を使用してオブジェクトタイプ仕様

とその属性を作成できます。オブジェクトタイプの属性は、組み込みデー

タタイプまたはネストテーブルを含むユーザー定義タイプの場合がありま

す。オブジェクトタイプは、プロシージャーおよびファンクションのパラ

メータ、ファンクションの戻りタイプとして使用できます。オブジェクト

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 15: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 15

タイプを導入することで、アプリケーションの設計および実装でより強力

な機能と大きな柔軟性がアプリケーション開発者に与えられます。

トランザクション制御 EnterpriseDB SPL プログラムでは、プログラムがエラーなく終了した場

合(プログラムで例外がスローされなかった場合)のデフォルトのトラン

ザクション動作では、トランザクション中に行われたデータベース更新が

自動コミットされました。それに対して、プログラムで何らかのエラーが

発生した場合は、トランザクション内で行われた以前のデータベース更新

がすべて無条件にロールバックされました。プログラマは、この動作を制

御することができませんでした。 Oracle の PL/SQL トランザクションモデルに対する互換性に加えて、プ

ログラマがより細粒性の高いトランザクション制御を行うことを可能にす

る次の 2 つの新しい機能が Postgres Plus Advanced Server に導入されて

います。

• トランザクションエラー復旧支援拡張 (TERSE: Transaction Error Recovery Support Extensions):

エラーによりデータベースの更新を即時に中断するかどうかを制御

します。 • COMMIT WORK および ROLLBACK WORK:SPL のプロシー

ジャーまたはファンクションのロジック内でどの場所からでもデー

タベースの更新のコミットまたはロールバックを明示的に強制でき

る SPL プログラム文。 TERSE は、単一の設定パラメータによって制御します。「オフ」に設定

した場合、中断したトランザクション中に加えられたすべてのデータベー

スの変更が自動的にロールバックされます。 「オン」に設定した場合、違反した SQL 文によって加えられたデータ

ベースの変更のみがロールバックされます(これは、文レベルのロール

バックと呼ばれています)。トランザクション中に加えられた他のデータ

ベースの更新はすべて保留状態になり、SPL プログラムコード内で明示

的にコミットまたはロールバックできるようになります(ゼロによる除算

など非 SQL 文により例外がスローされた場合、トランザクション内の

データベースの更新は依然として保留状態で維持されることに注意してく

ださい)。 COMMIT WORK 文および ROLLBACK WORK 文により、プログラマは、

トランザクション内で保留中のデータベースの変更をコミットするかまた

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 16: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 16

はロールバックするかを SPL プログラムのプロシージャーロジック内で

完全に制御できます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 17: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 17

データディクショナリビュー

Postgres Plus Advanced Serverでは、Oracleのデータディクショナリに

対して も一般的に使用されているビューに似たデータディクショナリに

対するビューが提供されています。このビューにより、Oracleに精通した

データベース管理者および開発者が新しいデータディクショナリ形式につ

いて再度学習しなくても、ディクショナリ情報を迅速に検索できます。 Oracle 互換の DBA カタログビュー、ALL カタログビュー、および USERカタログビューが提供されていることで、開発者および DBA はさらなる

トレーニングを受けなくても使い慣れたインターフェイスを通じてデータ

ベースメタデータに迅速かつ簡単にアクセスできます。次の表に、サポー

トされている 46 のビューのいくつかを例として示します。

ビューの名称 ALL_OBJECTS DBA_ROLE_PRIVS ALL_SOURCE USER_OBJECTS ALL_SYNONYMS USER_SOURCE ALL_TABLES USER_SYNONYMS ALL_TAB_COLUMNS USER_TABLES ALL_USERS USER_TAB_COLUMNS ALL_VIEWS USER_VIEWS ALL_VIEW_COLUMNS USER_VIEW_COLUMNS DBA_ROLES

プログラミングの柔軟性とドライバ

Postgres Plus Advanced Serverでは、Oracleデータベースアプリケー

ションを開発するために使用される も一般的なプログラミング言語がサ

ポートされます。Postgres Plus Advanced Serverではまた、以下の一般

的なデータベースコネクタに加えて、Oracle Call Interface(OCI)による

相互運用性と互換性が提供されています。また、OCIに基づくアプリケー

ションを変更なく実行することを可能にするOpen Client Library(OCL)が含まれます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 18: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 18

プログラミング言語 サポートドライバ

C C++

JDBC ODBC Perl PHP Ruby .NET

Oracle からの移行

ある技術から別の技術にソフトウェアシステムを移行するために必要な時

間、コスト、および作業は、主要な抑止要因になることが多く、たとえそ

うすることで明確な利点がある場合でも作業の実施を妨げることになりま

す。 EnterpriseDB では、次の方法により Oracle から Postgres Plus Advanced Server への移行パスのリスクが 小化されました。

• 柔軟で使いやすい移行ツール:Postgres Plus Advanced Server には、グラフィカル移行ツールおよびコマンドライン移行ツールが含

まれています。グラフィカルツールである Migration Studio では、

わずか数回のマウスクリックで、単一のテーブルまたは PL/SQL プ

ログラムからスキーマ全体に至るまでのデータベースオブジェクト

を移行できます。コマンドラインツールである Migration Toolkit では、より複雑なデータベースオブジェクトの組み合わせを移行でき

ます。次に、移行可能なデータベースオブジェクトのリストを示し

ます。

• スキーマ • パッケージ • データ • ストアドプロシージャー

• 制約 • トリガー • シークエンス • ファンクション • シノニム • インデックス • ユーザー • ロール • データベースリンク

• ビュー • レンジ・パーティション

化テーブル • リスト・パーティション

化テーブル

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 19: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 19

• オブジェクトの依存関係の解決:困難な問題の 1 つに、複雑な参

照関係を持つテーブルなど、相互に依存関係を持つオブジェクトの

移行があります。Postgres Plus Advanced Server の移行ツールで

は、依存オブジェクトを適切に移行するために依存関係解決パスを

実行します。 • 包括的なログ:移行されたデータベースオブジェクト、テーブル

にロードされた行数、および移動されたデータ量を示す包括的な履

歴ログが生成されます。 • 包括的な特徴および機能の互換性:本ドキュメント全体で示して

いるように、Postgres Plus Advanced Server では Oracle の も一

般的な機能と同等な機能を備えています。こうした機能は、Oracleの SQL および PL/SQL と同じ構文構造によりサポートされている

ものです。 データおよびビジネスロジックを移動すると、Postgres Plus Advanced Serverで現在利用されているOracleアプリケーションを実行する準備が整

います。 終的に、オブジェクトの移行、コードの書き換え、および機能

の再テストにかかる時間が 小限で済みます。 これは、EnterpriseDB Postgres Plus Advanced Server とネイティブな

PostgreSQL の大きな差別化ポイントとなリます。 Oracleベースの技術の標準化を求めるお客様のために、Postgres Plus Advanced Serverではまた、Microsoft SQL Server、MySQL™、および

Sybase™のデータおよびスキーマの閲覧およびワンクリックでの移行を

可能にしています。

データベースレプリケーション

Postgres Plus Replication Serverは、さまざまなビジネス面の課題に対応

するために、エンタープライズ全体でOracleおよびPostgres Plus Advanced Serverデータベース内のデータをほぼリアルタイムにレプリ

ケーションします。データは、遠隔地、複雑な企業データインフラストラ

クチャ、およびLinux、Solaris、Windows、HP-UXを含む異種オペレー

ティングプラットフォーム間でレプリケーションできます。 Postgres Plus Replication Serverにより、エンタープライズでは次のこと

が実現します。

• Oracle の数分の一のコストで、Oracle 環境にてレポートおよびそ

の他のアプリケーションを実行。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 20: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 20

• 重要なデータベースサービスの可用性およびシームレスな障害回復

性を保証。 • Oracle および Postgres Plus Advanced Server データベースのパ

フォーマンスの高速化。 • トランザクションの完全性を保証しながら、異種データソース間で

のデータ移動。 • 事実上、データベースのダウンタイムまたはデータに対するリスク

なしで、Postgres Plus Advanced Serverの更新バージョンまたは

アップグレードバージョンへの移行。

エンタープライズ向けの信頼性および拡張性

大量処理を行うミッションクリティカルなアプリケーションでOracleデー

タベースは日常的に使用されています。Postgres Plus Advanced ServerはオープンソースのPostgreSQLデータベースの信頼性を継承しており、

PostgreSQLのパフォーマンスを大幅に強化しているために、オラクルや

ミッションクリティカルなアプリケーションであってもPostgres Plus Advanced Serverに安全に移動できます。EnterpriseDBでは、信頼性と拡

張性を強化するためにPostgreSQLに次の機能が追加されています。 ポイントインタイムリカバリ(PITR)

Postgres Plus Advanced Serverでは、データベースのデータファイルに

加えられた各変更を含むOracle REDOログに似たWrite Aheadログ

(WAL: Write Ahead Log)を継続的に維持しています。Postgres Plus Advanced Serverはクラッシュ時に、ロールフォワードリカバリーにより

変更を再生できます。 したがってPostgresでは、次のタイプのPITRを実行できます。

• バックアップのポイントインタイムへのリカバリ:Postgres Plus Advanced Serverでは、バックアップログ内の 後のコミットトラ

ンザクションに至るまで、すべてのWALの変更を復元できます。 • 任意のポイントインタイムへのリカバリ:トランザクションIDま

たはタイムスタンプによる定義に従って、Postgres Plus Advanced Serverでは 後のバックアップから任意のポイントインタイムまで

のWAL変更を復元できます。 • ログの配布および障害回復:リモートシステムにWALファイルを

移動することにより、Postgres Plus Advanced Serverはハード

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 21: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 21

ウェアクラッシュ時または災害発生時にバックアップを復元、実行

できます。 パフォーマンス

エンタープライズアプリケーションに適したデータベースは、非常に高い

拡張性が求められています。簡単に言えば、大量のトランザクション環境

および大量のデータを処理する場合の双方で、非常に高速であることが必

要です。EnterpriseDBでは、大量処理を行うエンタープライズ環境に対応

するためにPostgreSQLを大幅に強化しました。 次に、パフォーマンスの強化点をいくつか示します。

• オンライントランザクション処理(OLTP):Postgres Plus

Advanced Serverでは、行レベルのロックおよびテーブルパーティ

ションのサポートに加えて、大量処理を行うOLTP環境での拡張性

に対するいくつかの内部 適化が含まれます。 • 動的チューニング:Postgres Plus Advanced Serverでは、実行中

のハードウェアを分析することにより、独自の構成設定を決定でき、

初期時のチューニングおよび進行中のチューニングの双方の必要性

が軽減します。 • バルクロード:メインフレームまたはその他のデータベースから

Postgres Plus Advanced Serverに大量のデータを移動する場合、

数百行、数千行、または数百万行を挿入するためにかかる時間が極

めて重要です。Postgres Plus Advanced Serverのバルクロードは、

PostgreSQLよりも 大 12%高速です。また、さらに重要なのは、

完了後にエラーを修正できるように、ロードの中断を回避するエ

ラー処理を提供していることです。 • 非同期プリフェッチ:RAID(Redundant Array of Inexpensive

Disk)を採用する Linux システムでは、非同期プリフェッチで通常

のインデックススキャンおよびビットマップインデックススキャン

に対して複数の並列 I/O 要求をスケジュールします。これは、少数

のクエリーに対する処理のために RAID アレイ内で複数のドライブ

を使用できるデータウエアハウスクエリー、および抽出、変換、お

よびロード(ETL)のクエリーで特に有効です。 • Infinite Cache:Postgres Plus Advanced Server の共有バッファ

キャッシュとディスクバッファキャッシュの間で拡張可能なメモリ

内キャッシュを提供するキャッシュサーバーとして、ネットワーク

接続された汎用製品ハードウェアを使用することを可能にします。

したがって、複数のキャッシュサーバーにわたるメモリにデータ

ベース全体が読み取られる場合もあります。Infinite Cache では、

ディスクキャッシュのみの場合と比較して 大で 3 桁のパフォー

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 22: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 22

マンス向上が可能です。Infinite Cache は、Linux システムのみで使

用可能です。 後に、Infinite Cache はクライアントアプリケー

ションに対して完全に透過的であり、特別なキャッシュコーディン

グを必要としません。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 23: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 23

セキュリティ

Postgres Plus Advanced Server は、エンタープライズ向けの RDBMS で

想定されるすべてのセキュリティ機能を提供しています。

• ロールに基づく認証:ログインのロール(ユーザー名)に基づく

認証。 • データベースの許可:データベースで許可されるアクセスは、ロ

グインのロール、ロールのメンバーシップ、送信元のクライアント

IP アドレス、パスワードのみのログイン接続、SSL 暗号化のみの

ログイン接続など広範な属性により制御できます。 • 特権に基づく許可:標準の SQL GRANT 文および REVOKE 文によ

りロールに付与された特権に基づいてデータベースオブジェクトに

アクセスします。 • ロールのメンバーシップにより割り当て可能な特権:ユーザーは、

メンバーであるロール(グループ)に基づいて特権を継承できます。 • Oracle スタイルの定義者の権限および実行者の権限:プログラム

の作成者またはプログラムの実行者の特権に基づいてプログラムリ

ソースに対するアクセス権を設定できます。 Lightweight Directory Access Protocol(LDAP)

さらに Postgres Plus Advanced Server では、OpenLDAP、MS Active Directory、eDirectory などの標準 LDAP 実装に基づく認証がサポートされ

ます。 Pluggable Authentication Module(PAM)

標準の PAM 対応サーバーに対する認証がサポートされます。PAM によ

り、システム管理者は PAM 対応アプリケーションで認証コードを再コン

パイルしなくても、基になるサーバー認証メカニズムを変更できます。 ソースコードの難読化(EDB*Wrap)

プログラムソースコードには、許可されていないユーザーに表示すべきで

ない機密情報または取り扱いに注意を要する情報が含まれることがありま

す。EDB*Wrap は、Oracle の wrap ユーティリィティに似たコマンドライ

ンユーティリティプログラムです。EDB*Wrap は、EnterpriseDB SPL プ

ログラムのソースコードを「暗号化」して、人が読み取れないようにしま

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 24: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 24

す。難読化されたソースコードファイルは依然として実行可能ですが、シ

ステムカタログ内での読み取りは不可能なままです。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 25: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 25

Oracle ライクなツール

Postgres Plus Advanced Serverには、開発者およびデータベース管理者

がPostgres Plus Advanced Serverデータベースおよびアプリケーション

の作成、展開、監視、およびチューニングを行うことを可能にする堅牢な

統合ツールセットが含まれます。こうしたツールは、OracleのDBAおよ

び開発者にとってすぐに馴染める外観、操作性、および機能を持ち、追加

トレーニングを受けなくても、容易にツールを使用できます。Postgres Plus Advanced Serverデータベース環境のプロフェッショナルな管理を容

易にする包括的なツールセットが提供されています。 Postgres Studio

Postgres Studio は、DBA およびアプリケーション開発者がメインワーク

ベンチとして使用できるエンタープライズ向けのクロスプラットフォーム

ツールです。Postgres Studio は、次の機能を提供しています。

• データベースの作成と保守:DBA は、データベースに加えて、ス

キーマ、テーブル、インデックス、制約、ビュー、テーブルスペー

ス、シーケンスなどのデータベースオブジェクトを作成できます。 テーブルに対する新しい列、インデックス、または制約の追加、ト

リガーの有効または無効、テーブルのバックアップおよび復元、イ

ンデックスの再構築、未使用のテーブル領域の返還要求、統計情報

の取得など、さまざまな保守機能を実行できます。 • ユーザーおよびロールの保守:DBA は、ユーザーを作成し、その

ユーザーの属するロールを定義できます。ユーザーおよびロールに

対して、オブジェクトの特権を割り当てたり、取り消したりできま

す。 • データブラウザおよびエディタ:テーブルデータは、グラフィカ

ルユーザーインターフェイスを通じて、または SQL コマンドを入

力することにより、参照および編集できます。 • SQL エディタ:アプリケーション開発者は、SQL 文、SPL プロ

シージャー、ファンクション、トリガー、およびパッケージを作成、

編集、および実行できます。 • PL/SQL Debugger : EnterpriseDB の Procedural Language

Debuggerは、OracleおよびPostgres Plus Advanced Serverデータ

ベース向けに記述されたアプリケーションでストアドプロシー

ジャー、ファンクション、およびトリガーの開発および分析を容易

にします。Procedural Language Debuggerは、アプリケーション

から呼び出されたストアドプロシージャーおよびファンクションを

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 26: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 26

ユーザーが監視およびステップ実行することを可能にするユニーク

な機能を持ちます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 27: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 27

Migration Studio Migration Studio は、Oracle からの移行用のグラフィカルツールです。

Oracle データベースに保存されたすべてのテーブル、ビュー、パッケー

ジ、制約、トリガー、プロシージャー、ファンクション、ビュー、シーケ

ンス、インデックス、およびデータを 1 回のクリックで Postgres Plus Advanced Server に移動できます。 また、ユーザーが Oracle データベースを参照しながら Postgres Plusデータベースを閲覧できる Oracle Database Browser を備えています。

EDB*Plus

EDB*Plus は、Oracle SQL*Plus と同一の外観を備えるコマンドライン

ユーティリィティです。EDB*Plus は、SQL クエリーおよび更新を実行し、

経験豊富な Oracle DBA および開発者にそのまま馴染み深い EnterpriseDB SPL プログラムを作成および実行するための環境を提供しています。

EDB*Loader

EDB*Loader は、Postgres Plus Advanced Server データベース用の高パ

フォーマンスバルクデータローダーです。EDB*Loader はコマンドライン

から実行し、Oracle SQL*Loader と互換性のあるディレクティブを使用し

ます。 埋め込み SQL プリコンパイラ (ECPG: 埋め込み SQL Pre-Compiler)

埋め込み SQL では、アプリケーションプログラム内部から SQL 文を実行

することにより、C や C++などの高水準言語のコンピューティング機能

と SQL のデータベース操作機能を組み合わせることができます。

Postgres Plus Advanced Server では、埋め込み SQL プログラムは 2 つの

手順でコンパイルされます。 第 1 の手順は、プログラムに埋め込まれている SQL 文をデータベースド

ライバライブラリへの適切な呼び出しに変換するために、Postgres Plus Advanced Server 用の埋め込み SQL プリコンパイラである ECPG を使用

することです。ECPG の出力は C または C++コードであり、すべてのア

プリケーション部分は未変更のままです。その後、この C または C++コードをコンパイルし、標準の C または C++コンパイラで使用できます。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 28: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 28

EnterpriseDB Network

EnterpriseDB Networkにより、お客様は製品アップデートで入手可能な

新のコンポーネントがEnterpriseDB製品スイートに含まれているかどうか

心配する必要がなくなります。EnterpriseDB Networkの加入者は、製品の

リリース、更新、およびパッチの通知および配布をリアルタイムで自動的

に受け取ります。これにより、DBAが更新を検索する時間および手間が

節約されるだけでなく、潜在的な問題を発生前に排除できます。すべての

配布ソフトウェアは、数回のクリックでインストールでき、さらに時間と

手間を節約できます。 DBA Management Server

EnterpriseDB DBA Management Serverは、DBAおよび開発者が統合され

たWebインターフェイスから複数のPostgres Plus Advanced Serverデー

タベースおよびPostgreSQLデータベースを分析、管理、およびチューニ

ングすることを可能にする強力なデータベースの監視機能、プロファイリ

ング機能、レポート機能、およびクエリー機能を提供しています。この

ツールには、全体的なデータベースのパフォーマンスの監視機能、データ

ベースクエリーの速度および効率の監視機能、およびEnterpriseDB Networkとの統合機能が含まれます。

DBA Monitoring Console

DBA Monitoring Console は、システム CPU の使用状況、メモリの使用状

況、キャッシュ、およびデータベースサーバーのディスク I/O に関するリ

アルタイムダッシュボードを提供します。DBA Monitoring Console も、

Postgres Plus Advanced Server データベースを監視およびチューニング

するために役立ちます。 Dynamic Runtime Instrumentation Tools Architecture(DRITA)

DRITA は、特定のデータベースセッションを起動するイベント、または

システムが全体として実行を開始するまで待機するイベントを決定するた

めに使用できる一連のカタログビューおよびファンクションから構成され

ます。Oracle Statspack and Automatic Workload Repository(AWR)レ

ポートとほとんど同じ方法で一連の詳細かつ包括的なレポートを生成でき

ます。 DRITA は、DBA および開発者がパフォーマンスを損なうボトル

ネックを検出し、パフォーマンスを向上させるコードの改良、そうした

コードのチューニングの確認を行うことを可能にします。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com

Page 29: Postgres Plus Advanced Server Oracle互換性の提供...Postgres Plus® Advanced Serverでの Oracle互換性の提供 EnterpriseDB ホワイトペーパー DBA およびアプリケーション開発者向け

Oracle 互換性の提供 29

まとめ

Oracle の代替を検討している企業は、移行先として考慮しているデータ

ベースシステムについて実際に憂慮しており、パフォーマンスの低下に関

連するコスト、アプリケーションの再コーディング、および担当者の再ト

レーニングを含むデータベースの変更コストに対する不安は、想定される

節約額を上回るものです。 EnterpriseDBでは、Oracleデータベース向けに記述された大半のアプリ

ケーションを変更しないで実行することを可能にするために、Postgres Plus Advanced Serverに多くのOracle互換機能を含めました。これにより、

アプリケーションの再コーディングを行わなくても済み、Oracleにほぼ匹

敵するパフォーマンスが得られます。 Postgres Plus Advanced Serverの高度なOracleサポートには、Oracle SQLおよびPL/SQL言語、 も一般的なOracleデータディクショナリ

ビューの実行、さらにOracle Call Interface(OCI)、自動データおよびビ

ジネスロジック移動ツール、Oracleデータベースレプリケーションサー

バー、エンタープライズ向けの信頼性と拡張性、そしてOracle専門家がす

ぐに馴染める外観、操作性、機能を備える堅牢な統合ツールセットを含む

広範なプログラミング言語ドライバおよびコネクタスイートの実行などが

含まれます。 ライセンスコストおよびベンダーロックを軽減することを求める Oracle DB 導入企業にとって、既存のシステムに対する補足または代替として

Postgres Plus Advanced Server を調査することは有意義です。

© EnterpriseDB Corporation, 2009 All rights reserved. EnterpriseDB、DynaTune、および Postgres Plus は、EnterpriseDB Corp.の商標です。その他の名前は、該当する所有者の商標です。

http://www.enterprisedb.com