1 2日でOracle Database開発の概要

Oracle Database開発者は、Oracleテクノロジ・スタックを使用するアプリケーションのデータベース・コンポーネントの作成またはメンテナンスを担当します。Oracle Database開発者は、アプリケーションを開発するか、または既存のアプリケーションを転用し、Oracle Database環境で実行します。

内容は次のとおりです。

関連項目:

Oracle Database開発者の職務の詳細は、『Oracle Database概要』を参照してください。

1.1 このマニュアルについて

このガイドはアプリケーション開発者を対象とするOracle Databaseのドキュメント・セットの一部です。

このドキュメントでは、次を実行します。

  • Oracle Databaseでの開発の基本概念について説明します。

  • チュートリアルと例を使用して、SQLおよびPL/SQLの基本機能の使用方法を示します。

  • 説明事項の詳細についての参照情報を提供します。

  • 単純なOracle Databaseアプリケーションの開発およびデプロイ方法を示します。

「2日でOracle Database開発の概要」(この章)では、このガイドが対象とする読者に対し、ガイドの構成を説明します。また重要なOracle Databaseの概念について紹介し、チュートリアルと例で使用するサンプル・スキーマについて説明します。

Oracle Databaseへの接続および検索では、Oracle Databaseへの接続方法、スキーマ・オブジェクトおよびOracle Databaseの表のプロパティとデータの表示方法および問合せを使用してOracle Databaseの表からデータを取得する方法について説明します。

DML文とトランザクションでは、データ操作言語(DML)文とトランザクションについて紹介します。DML文は、Oracle Databaseの表データを追加、変更および削除します。トランザクションは、1つ以上のSQL文が並んだものであり、Oracle Databaseは、それを1つの単位として扱うので、すべての文が実行されるか何も実行されないことになります。

スキーマ・オブジェクトの作成と管理では、データ定義言語(DDL)について紹介します。DDLはスキーマ・オブジェクトを作成、変更、削除します。

ストアド・サブプログラムとパッケージの開発では、多くの異なるデータベース・アプリケーションでビルディング・ブロックとして使用できるストアド・サブプログラムとパッケージについて紹介します。

トリガーの使用では、指定されたイベントに対応して自動的に実行するストアドPL/SQLユニットであるトリガーについて紹介します。

グローバル環境での作業では、グローバリゼーション・サポート(National Language Support (NLS)パラメータとSQLとPL/SQLのUnicode関連機能)について紹介します。

有効なアプリケーションの作成では、スケーラブルなアプリケーションの作成方法および推奨されるプログラミングおよびセキュリティ上の措置の利用方法について説明します。

「単純なOracle Databaseアプリケーションの開発」では、単純なOracle Databaseアプリケーションの開発方法を示します。

「Oracle Databaseアプリケーションのデプロイ」では、例として「単純なOracle Databaseアプリケーションの開発」で開発したアプリケーションを使用して、Oracle Databaseアプリケーションのデプロイ方法(他のユーザーが実行できる1つ以上の環境へのインストール方法)について説明します。

1.2 Oracle Databaseについて

Oracle Databaseは、関連情報をスキーマと呼ばれる論理構造にグループ化します。論理構造には、スキーマ・オブジェクトが含まれます。

ユーザー名とパスワードを使用してデータベースに接続する際に、ユーザーはスキーマを指定して、自分がその所有者であることを示します。Oracle Database では、ユーザー名とユーザーが接続するスキーマ名は同じです。

内容は次のとおりです。

1.2.1 スキーマ・オブジェクトについて

Oracle Databaseのすべてのオブジェクトは、1つのスキーマのみに属し、そのスキーマを使用した一意の名前が付けられています。

スキーマは、次のようなオブジェクトを持つことができます。

  • 表は、Oracle Databaseのデータ記憶領域の基本単位です。表は、ユーザーがアクセス可能なすべてのデータを保持します。各表には、それぞれのデータのレコードを表すが含まれています。行は、レコードのフィールドを表すで構成されています。

  • 索引

    索引はオプションのオブジェクトであり、これを使用すると、表からデータを取得するパフォーマンスが改善されます。索引は、表の1つ以上の列に作成され、データベース内で自動的にメンテナンスされます。

  • ビュー

    複数の表の情報を組み合せて一元的に表示するビューを作成できます。ビューは、表と他のビューの両方の情報に依存する可能性があります。

  • 順序

    表のすべてのレコードが一意である必要がある場合、順序を使用することによって、各レコードのIDを表す数値列に対する一意の整数番号のシリアル・リストを生成できます。

  • シノニム

    シノニムは、スキーマ・オブジェクトの別名です。これは、オブジェクトの所有者をわからなくしたり、SQL文を単純化するなど、セキュリティや利便性の向上に使用されます。

  • ストアド・サブプログラム

    ストアド・サブプログラム(または、スキーマ・レベル・サブプログラム)は、データベースに格納されたプロシージャやファンクションです。これらは、データベースにアクセスするクライアント・アプリケーションから起動されます。

    トリガーは、特定の表またはビューで指定したイベントが発生した際にデータベースによって自動的に実行されるストアド・サブプログラムです。トリガーは、特定のデータへのアクセスを制限し、ロギングを実行できます。

  • パッケージ

    パッケージは、ユニットとして継続的に使用するためにデータベースに格納された明示カーソルおよび変数とともに、それらを使用する関連サブプログラムをグループ化したものです。ストアド・サブプログラムと同じように、パッケージ・サブプログラムは、データベースにアクセスするクライアント・アプリケーションから起動されます。

通常、アプリケーションが使用するオブジェクトは、どれも同じスキーマに属しています。

1.2.2 Oracle Databaseへのアクセスについて

Oracle Databaseには、SQL*PlusやSQL Developerなどのクライアント・プログラムを介してのみアクセスできます。

Oracle Database に対するクライアント・プログラム・インタフェースは、構造化問合せ言語(SQL)です。Oracleには、Procedural Language/SQL(PL/SQL)というSQLに対する拡張機能が用意されています。

内容は次のとおりです。

1.2.2.1 SQL*Plusについて

SQL*Plusは、対話型のバッチ問合せツールです。Oracle Databaseをインストールすると、一緒にインストールされます。このツールには、データベースへの接続時にクライアントとして機能する、コマンドライン・ユーザー・インタフェースがあります。

SQL*Plusは独自のコマンドと環境を持っています。SQL*Plusの環境では、SQL*Plusコマンド、SQL文、PL/SQL文およびオペレーティング・システムのコマンドを入力して実行し、次のような作業を行えます。

  • 問合せ結果の整形、計算実行、格納および印刷

  • 表およびオブジェクト定義の検証

  • バッチ・スクリプトの開発および実行

  • データベース管理の実行

SQL*Plusを使用して、対話的なレポート生成、バッチ処理としてのレポート生成、およびテキスト・ファイル、スクリーンまたはインターネットでの閲覧用のHTMLファイルへの結果の出力が可能です。HTML出力機能を使用するとレポートを動的に生成できます。

SQL DeveloperでSQL*Plusを使用できます。詳細は、『Oracle SQL Developerユーザーズ・ガイド』を参照してください。

1.2.2.2 SQL Developerについて

SQL Developer (sequel developerと発音)は、Oracle Databaseのグラフィカル・ユーザー・インタフェースで、Oracle Databaseをインストールするとデフォルトでインストールされ、Oracle Technology Networkから無料でダウンロードできます。

SQL DeveloperはSQLおよびPL/SQLの最新の統合開発環境(IDE)として機能し、データベース・オブジェクトを管理するためのグラフィカル・インタフェースを提供します。レポートの作成、データ・モデルの設計、サードパーティ・データベースのOracleへの移行(REST対応の表およびビュー)、およびOracle REST Data Servicesのデプロイと管理を行うこともできます。SQLワークシートから、SQL文、PL/SQL文およびSQL*Plusコマンドとスクリプトを入力して実行できます。

注意:

SQL Developerでは複数の方法でタスクを実行できますが、このマニュアルではすべての方法について説明しません。

関連項目:

1.2.2.3 構造化問合せ言語(SQL)について

構造化問合せ言語(SQL)(sequelと発音する)は、セット・ベースの高度なコンピュータ言語であり、Oracle Databaseのデータにアクセスする際に、すべてのプログラムおよびユーザーによって使用されます。

SQLは宣言型、または非手続き型の言語です。つまり、SQLは方法ではなく、何をするかについて記述します。結果を取得する方法ではなく、必要な結果セットを指定します(たとえば現在の従業員の名前)。

関連項目:

1.2.2.4 Procedural Language/SQL(PL/SQL)について

Procedural Language/SQL (PL/SQL)は、Oracle Databaseが独自にSQLに行った拡張です。条件付き制御やループのような手続き型の要素を追加することで、宣言型プログラム制御と命令型プログラム制御のギャップが埋められています。

PL/SQLでは、定数と変数、プロシージャとファンクション、型とその型の変数、およびトリガーを宣言できます。例外も処理できます(ランタイム・エラー)。また、Oracleのデータベース・プログラム・インタフェースを使用するアプリケーションで再利用することを目的としてデータベースに格納できるプロシージャ、ファンクション、パッケージ、タイプおよびトリガーなどのPL/SQLユニットを作成できます。

PL/SQLソース・プログラムの基本単位は、関連する宣言と文をグループ化するブロックです。ブロックには、オプションの宣言部、必須の実行可能部、オプションの例外処理部があります。

関連項目:

1.2.2.5 他のクライアント・プログラム、言語および開発ツールについて

他のいくつかのクライアント・プログラム、言語および開発ツールを利用できます。

注意:

前述のリストの一部の製品はOracle Databaseに付属していないため、別個にダウンロードする必要があります。

内容は次のとおりです。

関連項目:

1.2.2.5.1 Oracle Application Express

Oracle Application Expressは、プログラミングの経験が浅い開発者でも、短期間で確実かつスケーラブルなWebアプリケーションを開発および配置できるツールです。埋め込まれているApplication Builderによって、表やストアド・プロシージャなどのスキーマ・オブジェクトを使用する完全なアプリケーションまたはHTMLインタフェースが、タブ、ボタン、ハイパーテキスト・リンクを介してリンクされたページの集まりに組み立てられます。

関連項目:

Oracle Application Expressの詳細は、『Oracle Database Application Express 2日で開発者ガイド』を参照してください。

1.2.2.5.2 Oracle Java Database Connectivity(JDBC)

Oracle Java Database Connectivity (JDBC)は、JavaでSQL文をOracle Databaseのようなオブジェクト・リレーショナル・データベースに送ることができるようにするAPIです。Oracle DatabaseのJDBCは、JDBC 3.0およびJDBC RowSet(JSR-114)規格、XAおよび非XA接続に対応した先進の接続キャッシュ、SQLおよびPL/SQLデータ型のJavaへの公開、SQLデータへの迅速なアクセスを完全にサポートします。

1.2.2.5.3 Hypertext Preprocessor (PHP)

Hypertext Preprocessor (PHP)は、Webアプリケーションを迅速に開発するための、強力なインタプリタ型のサーバー側スクリプト言語です。PHPはオープン・ソース言語であり、BSD型ライセンスで配布されています。PHPはデータベースのアクセス要求を直接HTMLページに組み込めるよう設計されています。

関連項目:

PHPの詳細は、『Oracle Database 2日でPHP開発者ガイド』を参照してください。

1.2.2.5.4 Oracle Call Interface(OCI)

Oracle Call Interface (OCI)はC言語のアプリケーションからOracle Databaseに直接アクセスするための、独自のC言語のAPIです。

OCIソフトウェア開発キットは、Oracle Instant Clientの一部としてインストールでき、標準のOracleクライアントをインストールしたりORACLE_HOMEを持つことなくアプリケーションを実行できます。アプリケーションは変更せずに使用でき、ディスク領域の使用を大幅に抑えることができます。

関連項目:

1.2.2.5.5 Oracle C++ Call Interface(OCCI)

Oracle C++ Call Interface (OCCI)は、C++アプリケーションからOracle Databaseに直接アクセスするための、独自のC++言語のAPIです。OCIと同様、OCCIはリレーショナルおよびオブジェクト指向型のプログラミング・パラダイムをサポートしています。

OCCIソフトウェア開発キットは、Oracle Instant Clientの一部としてインストールでき、標準のOracleクライアントをインストールしたりORACLE_HOMEを持つことなくアプリケーションを実行できます。アプリケーションは変更せずに使用でき、ディスク領域の使用を大幅に抑えることができます。

関連項目:

1.2.2.5.6 Open Database Connectivity

Open Database Connectivity (ODBC)は、データベースにアクセスするためのAPIのセットで、データベースに接続してデータベース上でSQL文を実行します。ODBCドライバを使用するアプリケーションは、スプレッドシートやカンマ区切りファイルなど、不均一なデータ・ソースにアクセスできます。

Oracle ODBC DriverはODBC 3.51仕様に準拠します。すべてのコアAPIやLevel 1およびLevel 2のファンクションのサブセットをサポートしています。Microsoft社はWindowsプラットフォーム用のドライバ・マネージャ・コンポーネントを提供しています。

OCI、OCCIおよびJDBCと同様に、ODBCはOracle Instant Client Installationの一部です。

関連項目:

1.2.2.5.7 Pro*C/C++プリコンパイラ

Pro*C/C++プリコンパイラにより、C言語またはC++言語のソース・ファイルにSQL文を組み込むことができます。プリコンパイラでは、ソース・プログラムを入力として受け入れ、埋込みSQL文を標準のOracleランタイム・ライブラリ・コールに変換し、コンパイル、リンクおよび実行ができるように変更したソース・プログラムを生成します。

関連項目:

1.2.2.5.8 Pro*COBOLプリコンパイラ

Pro*COBOLプリコンパイラにより、COBOL言語のソース・ファイルにSQL文を組み込むことができます。プリコンパイラでは、ソース・プログラムを入力として受け入れ、埋込みSQL文を標準のOracleランタイム・ライブラリ・コールに変換し、コンパイル、リンクおよび実行ができるように変更したソース・プログラムを生成します。

関連項目:

1.2.2.5.9 Microsoft .NET Framework

Microsoft .NET Frameworkは、アプリケーションとXML Webサービスを作成、デプロイおよび実行するための多言語環境です。

Microsoft .NET Frameworkのメイン・コンポーネントは次のとおりです。

  • 共通言語ランタイム(CLR)

    共通言語ランタイム(CLR)とは中間言語の開発環境と実行環境で、実行されているアプリケーションの管理を補助します。

  • Frameworkクラス・ライブラリ(FCL)

    Frameworkクラス・ライブラリ(FCL)は、パッケージ済機能の一貫したオブジェクト指向のライブラリを提供します。

Oracle Data Provider for .NET(ODP.NET)

Oracle Data Provider for .NET (ODP.NET)は、.NETクライアント・アプリケーションからOracle Databaseへの迅速で有効なADO.NETデータ・アクセスを提供します。ODP.NETにより、開発者はセキュア・ファイル、XML DB、アドバンスト・キューイングを含むOracle Databaseの高度なOracle Database機能を利用できます。

Visual Studio対応Oracle Developer Tools(ODT)

Visual Studio対応Oracle Developer Tools(ODT)は、Visual Studio環境と統合されるアプリケーション・ツールのセットです。これらのツールは、Oracleの機能にアクセスするためのグラフィカル・ユーザー・インタフェースを提供し、広範なアプリケーション開発作業を可能にし、開発上の生産性および使い易さを向上させます。Oracle Developer Toolsは、Visual Basic、C#および他の.NET言語を使用した.NETストアド・プロシージャのプログラミングと実装をサポートしています。

.NETストアド・プロシージャ

Oracle Database Extensions for .NETは、WindowsでのOracle Databaseのデータベース・オプションです。このオプションによって、Microsoft Windows用のOracle Databaseを使用する.NETストアド・プロシージャまたはファンクションを、Visual Basic .NETまたはVisual C#を使用して作成および実行できるようになります。

.NETアセンブリに.NETプロシージャおよびファンクションを作成した後は、Oracle Developer Tools for Visual StudioのコンポーネントであるOracle Deployment Wizard for .NETを使用してそれらをOracle Databaseにデプロイできます。

Oracle Providers for ASP.NET

Oracle Providers for ASP.NETは、ASP.NET開発者に対して、Oracle Database内のWebアプリケーションに共通の状態を簡単に格納できる方法を提供します。これらのプロバイダは、既存のMicrosoft ASP.NETプロバイダにモデル化され、類似するスキーマおよびプログラミング・インタフェースを共有して.NET開発者に使い慣れたインタフェースを提供します。Oracleでは、メンバーシップ、プロファイル、ロールなどのプロバイダがサポートされます。

1.2.2.5.10 Oracle Provider for OLE DB(OraOLEDB)

Oracle Provider for OLE DB (OraOLEDB)は、Component Object Model (COM)インタフェースのセットを使用して異なるタイプのデータにアクセスしたり操作を行うオープンな標準データ・アクセス方式です。このインタフェースは様々なデータベース開発元から提供されています。

関連項目:

OraOLEDBの詳細は、『Oracle Provider for OLE DB開発者ガイド for Microsoft Windows』を参照してください。

1.3 サンプル・スキーマHRについて

HRサンプル・スキーマは、Oracle Databaseとともにインストールできます。このスキーマには従業員に関する情報、つまり、部門、事業所、職歴に関する情報および他の関連情報が含まれています。すべてのスキーマと同様、HRにも表、ビュー、索引、プロシージャ、ファンクション、その他の属性があります。このマニュアルの例とチュートリアルでは、スキーマを使用します。

関連項目: