インプロセス・データベースは,インストール型アプリケーションや小規模 Web サイトでよく利用されている。設計が適当ならば,ユーザにとって,インストールが容易でメンテナンスも不要というメリットがあるからだ。しかし残念なことに SQL CE の現行バージョンには,そのどちらにも適用できない欠点がある。
お粗末なエンジニアリングのせいで,SQL CE はホスト環境では使用できない。Microsoft が警戒心から,ライセンス制限とハードコードされたブロックを組み合わせて,ASP.NET では SQL CE データベースの読込さえできなくしてしまっているためだ。このため小規模な社内 Web サイトでの利用ができないだけでなく,Web サイトで作成した SQL CE ファイルをダウンロードするような興味深い運用も実現不可能になっている。
単に DLL を添付すればよい他の組込データベースとは違って,SQL CE はインストールに管理者(administrator)権限を必要とする。ホームユーザには大して問題ではないが,ClickOnce での配布を計画している大企業にとって,全ユーザに管理者アクセスを許可するというのはかなり難しい話だ。
SQL CE 4.0 では,この2つの欠点がともに克服されているようだ。ホスト環境でも問題なく動作するように修正され,インストールも新バージョンでは不要になった。データサイズ超過を心配するユーザに対しては,標準的な SQL サーバデータベースに変換するマイグレーションツールも用意されている。
新バージョンでも CE は “安全” なファイル形式だ。ストアドプロシージャのような組込コードは含まれない。すべてのアクセスは SQL か,またはエンティティフレームワークなどの ORM を通じて行う必要がある。基本的なトランザクションサポートを含む完全な ACID 準拠の機能は持っているが,セーブポイントやネストしたトランザクションなどの先進的なテクニックはサポートされない。
SQL Server CE 4.0 のベータ版は次週リリース予定だ。より詳しい情報 は Scotto Guthrie 氏のブログで見ることができる。