TOP書籍連動画像とデータベースとの結びつき
OracleとPHPでウェブサイトを構築する
OracleとPHPでウェブサイトを構築する

第3回:PHP&Oracleの利点と欠点

著者:Robert Mark   2006/2/22
前のページ  1  2  3
画像とデータベースとの結びつき

   リスト2では、LOB節からどこにデータが保存されているのかがわかります。一方STORAGE節のパラメータは、データがディスク上で使用する物理的な容量を制御します。画像をデータベースのテーブル内に保存することで、データは完全な状態でメンテナンスされ、画像のメタデータを直接結びつけることができます。
リスト2
--画像用のテーブル

CREATE TABLE DB_IMAGE_LIBRARY(
  IMG_ID   NUMBER,
  CAT_ID   VARCHAR2(2 BYTE),
  FILE_NAME   VARCHAR2(50 BYTE),
  SIZE      NUMBER,
  MIME_TYPE   VARCHAR2(50 BYTE),
  IMG_BIN BLOB,
  WIDTH   NUMBER,
  HEIGHT   NUMBER,
  SHORT_DESC   VARCHAR2(255 BYTE),
  DATE_ADDED   DATE DEFAULT SYSDATE,
  DATE_MODIFIED   DATE DEFAULT SYSDATE,
  C_OPERATOR_ID   VARCHAR2(10 BYTE),
STORAGE (initial 50K next 50K pctincrease 0)
TABLESPACE DB_TABLE_DATA
LOB (IMG_BIN) STORE AS (TABLESPACE IMAGE_DATA
   STORAGE(initial 100K next 100K pctincrease 0));


--画像データを取得するためのパッケージ

CREATE OR REPLACE PACKAGE PKG_IMAGE_MGMT AS
    TYPE my_ref_cursor IS REF CURSOR;

   PROCEDURE SP_GET_IMAGE   (img_id IN NUMBER,
      my_cursor OUT my_ref_cursor);
END;
/

CREATE OR REPLACE PACKAGE BODY PKG_IMAGE_MGMT AS
   TYPE my_ref_cursor IS REF CURSOR;
   CREATE OR REPLACE PROCEDURE SP_GET_IMAGE(
         img_id IN NUMBER,
         my_cursor OUT my_ref_cursor) AS
   BEGIN
   OPEN my_cursor FOR
      SELECT   
         IMG_BIN,
         MIME_TYPE,
         FILE_NAME,
         WIDTH,
         HEIGHT,
         SHORT_DESC
      FROM      web.DB_IMAGE_LIBRARY
      WHERE      IMG_ID = img_id;
   END SP_GET_IMAGE;
END;
/

   ここでもOracleのVPDを使用することで、PHPプログラマは画像データの取得がログイン中のユーザに許可されているかどうかを心配する必要がなくなります。VPDのコンテキストがすべてのデータへのアクセスが許可されていれば、すべてのデータを取得することができ、制限されているのであれば、同じクエリでも一部のデータは含まれなくなります。


PHP&Oracleの利点と欠点

   開発にPHPを使用する主な強みとして、フォーラムで問題とその解決策を共有しているPHP開発者の巨大なネットワークがサポートとなるということがあげられます。この問題とその解決策は一般に公開されているので、誰もが見ることができます。PHPとOracleの組み合わせに対する問題と解決策については、MySQLを使用している場合に比べると見つけづらいでしょう。

   そのため、PHPでのOracleの使用を促進したいOracleはOracleTechnology Network(OTN)内でPHP開発者に対してサポートを行っています。OTN内のPHP Developer CenterではOracleとPHPでのプログラミングに関連した記事やフォーラム、ニュースなどを公開しています。

   PHPとOracleの主な市場はエンタープライズ市場です。Oracleはエンタープライズでの組みあわされ、安定した実用性のあるWebアプリケーションの開発環境を構築することができるようになるでしょう。データベースとして確固たる地位を築いており、すでに存在しているデータベースのコードをWebから使用することが必要とされています。

   もしOracleを内部オペレーションのためのデータベースとして使用している組織であれば、Webからのデータ操作を提供しようと計画していることでしょう。そのような時に、すでに存在するOracleのデータにアクセスしてアプリケーションを簡単に開発する手法が求められているのです。

   プログラム初心者でも理解がしやすく、Javaなどのような複雑な言語に見られるオブジェクト指向の機能も提供するというPHPはこの要求にぴったりです。PHPとOracleを使用したアプリケーションの開発をエンタープライズ規模で行うとPHPについての専門的な知識を吸収することができるでしょう。

   新しいPDO関数を使用したデータベース抽象化レイヤーを導入することでデータベースアクセスはより標準化されるでしょう。これらの機能はOracleのセキュリティ機能と組みあわされ、安定した実用性のあるWebアプリケーションの開発環境を構築することができるようになるでしょう。

前のページ  1  2  3


Ilia Alshanetsky
著者プロフィール
Robert Mark
ケベックのモントリオールにあるMcGill大学に勤めており、シニアWebプログラマ/データベースプログラマ。主にOracleとPHPを使って、Webサイトを構築している。


INDEX
第3回:PHP&Oracleの利点と欠点
  複数のデータベース名の管理
  OracleとPHPを別のサーバに配置する
画像とデータベースとの結びつき