TOP設計・移行・活用> Webアプリケーション開発におけるデータベースの位置づけ
SledgeによるWebアプリケーションフレームワーク入門
SledgeによるWebアプリケーションフレームワーク入門

第5回:データベース
著者:ライブドア  谷口 公一   2005/7/13
1   2  3  4  次のページ
Webアプリケーション開発におけるデータベースの位置づけ

   昨今のWebアプリケーションにおいて、データベースはごく一般的に用いられ、Webアプリケーションの心臓部を担っている存在であると言っても過言ではありません。

   今回はWebアプリケーションフレームワークを用いた開発における、データベースの使用方法のトレンドや、Sledgeによる実装方法をご紹介致します。


データベースを取りまく「標準化」志向

   データベース(RDBMS)の操作、つまりデータを必要に応じて取り出す際、データベースのベンダーや製品間の差異を吸収すべく、SQL(Structured Query Language)という言語がANSIによって標準規格化され、一般的に利用されています。

   多かれ少なかれ、依然としてベンダーや製品による差異、また独自に拡張されたSQLが実装されていたりするものも存在しますが、ごく一般的なSQLを利用している限り、利用する側にとっては、対象のデータベースが何という製品かをとりわけ気にすることなく利用できるというメリットがあります。

   オペレーションする側からのメリットという点だけではなく、Webアプリケーションからデータベースを操作する場合にも、このSQLという言語の存在は多くのメリットをもたらしてくれます。例えば現在稼動中のシステムに対し、コスト面や信頼性等の様々な思惑により「データベース製品を入れ替える」という決定が下されるケースがしばしばあります。

   SQLを使ってデータベースを操作するアプリケーションが稼動している場合、システム開発者はこの決定に青ざめることなく、データベースの製品に応じたドライバやライブラリ、モジュールの入れ替え、そして若干のコード修正だけで、新しい製品下で稼動するシステムに作り直すことが可能です。つまり「データベース移行」という重大決定に対しても、SQLという言語が標準化されていることによって、SQLを用いている限り移行コストは極少に抑えることが可能です。

   アプリケーションからデータベースへ接続し、SQLを操作するためのデータベースインターフェースも標準化の傾向があります。開発言語別に、ベンダー提供の「そのデータベース専用のモジュールやライブラリ」というのも存在しますが、これらも「データベース移行」に対しての柔軟性を欠くため、データベースにおける"クロスプラットフォーム"で扱えるデータベースインターフェースが多くの開発言語向けに存在します(表1)。

Perl
DBIモジュール(http://dbi.perl.org/
Java
JDBC(http://java.sun.com/products/jdbc/
PHP
PEARのDBライブラリ(http://pear.php.net/package/DB/

表1:各言語の一般的なDBインターフェース

   これらを使用することにより、どのデータベース製品を操作する場合にも共通のプログラムインターフェース(API)が提供されます。インターフェースとは別に、データベース製品ごとのドライバを指定することによって、同じAPIによって各データベースの操作が行なえるので「データベース移行」が発生した際は「ドライバの指定を変更するだけ」で対応可能というケースがほとんどです。

データベースインターフェースを利用した処理
図1:データベースインターフェースを利用した処理

   高頻度にデータベースへの読み書きが行なわれるアプリケーションの場合、ベンダー提供の、そのデータベース専用のモジュールやライブラリを使用したほうが、パフォーマンス的には若干の優位性があります。

   しかし今まで述べたような「移行のリスク」だけではなく、開発者がその専用ライブラリ用のAPIを覚えなくてはいけないというデメリットもあるため、やはりクロスプラットフォームに対応したインターフェースを利用するほうが、圧倒的にメリットが多いのではないでしょうか。

   このようにデータベースを使用するアプリケーションにおいて、データベースの周囲を取り巻く「標準化」志向が、開発者やサービス提供者へ多大なメリットを与えていっていると言っても過言ではありません。

1   2  3  4  次のページ


株式会社ライブドア 谷口 公一
著者プロフィール
株式会社ライブドア  谷口 公一
テクニカルディレクター。専門知識が全く無い中、オープンソースソフトウェアやコミュニティからシステム開発の知識やノウハウを習得し、オープンソースコミュニティにおいて活発に活動を行っている同社に憧れて入社。現在はポータルサイト「livedoor」におけるサービス開発を行う一方、本業の傍ら、お世話になっているオープンソースコミュニティへのコントリビューションも行なっている。


INDEX
第5回:データベース
Webアプリケーション開発におけるデータベースの位置づけ
  SQLは今や昔?
  Sledge+O/Rマッパーでデータベースを利用したWebアプリケーション開発
  データの保存について