米Microsoftは6月,SQL Serverファミリに新たな一員を追加した。「SQL Server 2005 Everywhere Edition」である。SQL Server 2005 Expressと同じく,SQL Server Everywhereもデータベースの最大サイズが4Gバイトである無償製品だ。小規模データベース・アプリケーション向けに設計されている。両無償製品とも,ADO.NETプログラミング・モデルを使ってデータベースにアクセス可能であり,「SQL Server Management Studio(SSMS)」で管理可能である。両製品は非常によく似ているので,どちらの製品を選ぶか迷う人もいることだろう。そこで,これら2つの製品の相違点を解説しよう。

 SQL Server ExpressとSQL Server Everywhereの最大の違いは,SQL Server Expressがシステム・サービスとして動作するマルチユーザー・データベース・サーバーだということだ。つまり,特定のアプリケーションに縛られないのだ。SQL Server Expressは,アプリケーションの外側で動作し,複数のローカルまたはリモートのアプリケーションに,データベース・サービスを提供する。これとは対照的に,SQL Server Everywhereはプロセス内で作動するデータベースで,自らが埋め込まれているアプリケーションに,リレーショナル・データベース機能を提供する。言い換えると,SQL Server Everywhereはアプリケーション内で使用するもので,そのアプリケーションにのみデータベース機能を提供するのだ。

 他の相違点は,それぞれの製品の由来である。SQL Server Expressは,SQL Server 2005 Enterprise/Workgroup/Standard Editionsと同じコア・データベース・エンジンを使用している。一方のSQL Server Everywhereは,SQL Server 2005 Mobile Editionをベースにしている。SQL Server EverywhereはSQL Server Expressとは異なるコア・データベース・エンジンを使用しており,プログラムのサイズも小さい。SQL Server Everywhereは,モバイル機器で動作することを想定して設計されている。とはいえ,モバイル機器だけでなくデスクトップ・パソコン用のアプリケーションに組み込むことも可能である。

 SQL Server Everywhereには,SQL Server Expressが持つ強力なデータベース機能の多くが搭載されていない。例えば,SQL Server Everywhereは参照整合性機能(カスケード削除/アップデートを使用する)や,ロールバック・トランザクションを実行する機能は搭載しているが,ストアド・プロシージャやXMLデータ・タイプ,CLR統合といったさらに高度なデータベース機能は搭載していない。分散モバイル・アプリケーションの構築にはSQL Server Everywhereも,SQL Server Expressと同じく,マージ・レプリケーションを使用することによって,他のSQL Serverファミリのデータベースとデータをやり取りできる。

 それでは,SQL Server EverywhereとSQL Server Expressは,それぞれどういう用途に適しているのだろうか。モバイル機器用アプリケーションや,基本的なデータベース機能のみが必要なシングル・ユーザー用アプリケーションにデータベース機能が必要なら,明らかにSQL Server Everywhereが最適だろう。マルチ・ユーザー・アプリケーションや,ストアド・プロシージャやXMLのサポートといった高度なデータベース機能が要求されるアプリケーションといっしょに使うのなら,SQL Server Expressを選んだほうがいいだろう。