今回のテーマは「データベース」

最近のWebアプリケーションは大抵データベースを利用している。ライトなサービスであればMySQLやPostgreSQL、エンタープライズ向けであれば各種商用RDBMSが利用されることが多い。

それもあってか、オープンソース・ソフトウェア(OSS)として配布されるソフトウェアの中にはデータベースを前提としたものが多くなっている。インストールの敷居は若干高くなってしまっている感はあるが、それでもデータベースを使うとアプリケーションとしての可能性が飛躍的に向上する。

今回はそうしたデータベースに注目して、各種Webアプリケーション、オープンソース・ソフトウェアを紹介しよう。一言でデータベースと言っても、さまざまな種類が存在することがわかっていただけるはずだ。

今回紹介するOSS・Webアプリ
FreeSQL.org』 MySQLのフリーホスティング
Amazon SimpleDB』 データベースをWebサービス化
CouchDb』 RESTfulなデータベース
Taffy DB』 JSONでできたデータベース



フリーで使うMySQL/PostgreSQL

名称 FreeSQL.org
URL http://www.freesql.org/

データベースというと、内部にあるのが当たり前に感じていないだろうか。だが、無料や低料金のホスティングサービスではデータベースサービスを提供していない場合もある。それほど重要でないデータであれば、一層のこと外部に保存してしまうのはどうだろう。

『FreeSQL.org』ではMySQLを無料で作成できるサービスを提供している(PostgreSQLについては現在停止中)。ユーザ名とパスワード、データベース名、メールアドレスだけで作成できる。データベースのインタフェースのみで、FTPなどのサービスは提供されない。

「FreeSQL.org」のトップページ。ここからデータベース作成が申し込める

phpMyAdminも提供されているが、試してみた限りでは接続できなかった。だが、ローカルから接続先としてwww.freesql.org:3306を指定して、あとは自分で決めたユーザIDとパスワードを利用すれば接続できる。

ローカルのphpMyAdminから接続したところ。動作は重たい

実際の速度については予想されたとおり、重たい。実用的か否かと言えば、実用的ではないだろう。だが、アプリケーションを試したり、テストで使ってみたりする分には面白い。なにより、データベースをサービスとして提供することがユニークだ。

速度は遅いが、普通のデータベースと同様の操作が可能




Amazonが提供するデータベースサービス

名称 Amazon SimpleDB
URL http://www.amazon.com/b?ie=UTF8&node=342335011

『Amazon SimpleDBはAmazon』が提供するWebサービスで、RESTやSOAPを使ってアクセスする。管理画面やデータの操作画面などはなく、Web APIのみが提供される。一般的なデータベースとは異なり、スキーマなどは定義する必要がない。ただ単純にデータを定義して入れるだけだ。入れたデータはSQLのような問い合わせ形式で取り出すことができる。

「Amazon SimpleDB」のトップページ。現在はベータサービス中で、申し込みから利用開始までは若干のタイムラグがある

Amazon SimpleDBは各言語向けにライブラリが提供され始めている。Perl、Ruby、Python、Java、PHPなど大抵のプログラム言語であれば提供されているようだ。これらを使えば、ごく簡単にAmazon SimpleDBを操作できる。

Ruby用SimpleDBライブラリ。データの登録、検索が簡単にできる

データベースというとスキーマの定義が必要という固定概念があったが、Amazon SimpleDBはごく単純にデータを格納し、それを検索して返却する。日々刻々と移り変わるWebの世界にずばりマッチしている。

Ruby向けAmazon SimpleDBライブラリを利用しているところ

なお、Amazon SimpleDBは有料のWeb APIなので、利用すれば課金されるのでご注意いただきたい。




Web2.0時代のデータベース

名称 CouchDb
URL http://couchdb.org/CouchDB/CouchDBWeb.nsf/Home?OpenForm

データベース時代は昔からある技術ではあるが、まだまだ進化の余地が残っている。特に最近のWeb技術はブラウザ上、クライアント上でデータを操作するようになっている。その際、これまでの方法ではデータベースへの接続が難しかった。

『CouchDb』では、RESTfulでデータを提供できるようになっている。RESTfulというのはGET(検索)/POST(登録)/PUT(更新)/DELETE(削除)でデータの操作を行う技術だ。データをJSONで取り出し、そのデータを更新して保存といったことをJavaScriptだけでできてしまう。

「CouchDB」の管理用ツール。起動、停止を行う

さらにオフラインでの利用が想定されており、オンラインになった時に自動で同期することも可能とのこと。まさに新しいWebの時代にあったデータベースといえそうだ。

データベースの管理インタフェース。こちらもまた、RESTfulで行う




JSONでできたデータベース

名称 Taffy DB
URL http://taffydb.com/index.cfm

Web2.0という単語が使われるようになってから、さまざまな技術が登場した。特に目立つのはJavaScriptの利用範囲の拡大だ。それまで画面の若干の操作くらいだったのが、Ajaxをはじめ、各種フレームワークの登場によってWeb上で動作するアプリケーション言語の筆頭になっている。

Web上でデータを操作するときに、都度データベースに問い合わせていたら時間がかかってしまう。そこで『Taffy DB』はJSONのデータを問い合わせ言語的に検索し、データを絞り込めるようになっている。

データ操作を行うデモプログラム。JavaScriptのみでデータの検索、追加などができる

データはJSON形式で定義し、そのデータをイコール、ノットイコール、以上/以下、ライク検索などで検索するとインデックス値が返ってくる。また、JSONデータを追加したり、更新、削除したりすることも可能だ。あとはそのデータを定期的にサーバと同期させてあげれば、Webアプリケーション上でデータ操作が可能になる。

ソースコード。イコールや以上など、さまざまな条件でデータを検索できる

いかがでしたか?

一言でデータベースといっても、さまざまな提供形態、機能が存在する。また、ライブラリも各種存在しており、RDBMSにこだわることはなくなっている。JSON形式のように目的によって使いわけてみると面白い。

また、Amazon SimpleDBのように自分たちでデータベースを抱える必要もなくなってきている。データやサーバの管理を考えると、Web APIを利用したほうが便利な場合もあるだろう。こうした新しい技術にも注目してほしい。

著者プロフィール
MOONGIFT 中津川 篤司(なかつがわ あつし)
1978年生まれ。オープンソース紹介サイト「MOONGIFT」管理人。プログラマ、SE、ITマネージャを経て、オープンソースのビジネス活用を推進する。現在は独立し、Webサービスのコンサルティング、プロデュースを行う。