Microsoft SQL Server Compact ( SQL CE ) は、Microsoftがモバイル デバイスやデスクトップで動作するアプリケーション向けに提供していた、現在はサポートが終了したリレーショナル データベースです。デスクトップ プラットフォームの登場以前は、SQL Server for Windows CEおよびSQL Server Mobile Editionとして知られていました。
32 ビットと 64 ビットの両方のネイティブ サポートが含まれています。[ 1 ] SQL CE は、時折接続されるアプリケーションと組み込みデータベースを持つアプリケーションを対象としています。[ 2 ]ダウンロードと再配布は無料です。[ 2 ] SQL CE 用のODBCドライバは存在せず、計画もありません。ネイティブ アプリケーションは、OLE DBを介して SQL CE を使用できます。
最新かつ最後のリリースは SQL Server Compact 4.0 です。[ 1 ] 2013 年 2 月に SQL Server Compact Edition は非推奨となり、新しいバージョンやアップデートは予定されていませんが、Microsoft は 2021 年 7 月まで製品のサポートを継続しました。[ 3 ]
SQL Server Compact は、他のMicrosoft SQL Serverエディションと共通のAPIを共有しています。[ 4 ]また、 ADO.NET API を使用したデータ アクセス用のADO.NETプロバイダー、組み込みの同期機能[ 2 ] 、 LINQおよびEntity Frameworkのサポートも含まれています。今後のリリースでは、同期機能がMicrosoft Synchronization Servicesと統合される予定です。[ 5 ] Microsoft SQL Serverの他のエディションとは異なり、SQL CE はそれをホストするアプリケーションと同じプロセス内で実行されます。 [ 5 ]ディスク使用量は 2 MB未満、メモリ使用量は約 5 MB です。 [ 2 ] SQL CE は、すべてのアプリケーションが同じメモリ プールを共有するアーキテクチャ向けに最適化されています。 [ 6 ] Windows 8 のWindows ストア アプリは、SQL Server Compact エディション、またはその他の SQL Server エディションを使用できません。 [ 7 ]
SQL CE データベースはACID準拠をサポートできますが、デフォルトでは永続性の要件を満たしていません。これは、AutoFlush がメモリ内の変更 (登録されたアンビエント トランザクションと、CommitMode.Immediate 値で Commit() 呼び出しをオーバーライドしない明示的な SQL CE トランザクションを含む) をバッファリングするためです。そのため、コミットされたトランザクションの変更が失われる可能性があります。永続性の要件を満たすには、トランザクションの commit 呼び出しで immediate フラグを指定する必要があります。[ 13 ] Microsoft SQL Serverと同様に、SQL CE はトランザクション、参照整合性制約、ロック、およびデータベース ストアへの複数の接続をサポートしています。[ 4 ]ただし、並列トランザクション (異なるテーブル上) はサポートされていますが、ネストされたトランザクションはサポートされていません。 [ 14 ]現在のリリースでは、ストアド プロシージャ[ 4 ]やネイティブXMLデータ型もサポートされていません。[ 5 ]クエリにはT-SQL [ 2 ]のサブセットを使用し、XML のサポートがないため、XQueryもサポートされていません。[ 5 ]クエリは最適化クエリ プロセッサによって処理されます。[ 15 ] SQL CE データベースはインデックス作成もサポートしており、リモート データ レプリケーション (リモート データベースでのデータのローカル キャッシュ) およびマージ レプリケーション (マスター データベースとの双方向同期) もサポートしています。[ 16 ]
SQL CE データベースは、 Microsoft Visual Studioや一部の旧バージョンのSQL Server Management Studioからも作成および管理できます。[ 15 ]
SQL CE データベースは単一の.sdfファイルに格納され、[ 17 ]そのサイズは最大 4 GBになります。 [ 4 ] .sdfファイルは、データ セキュリティのために128 ビット暗号化で暗号化できます。[ 17 ] SQL CE ランタイムは、.sdfファイルへの同時マルチ ユーザー アクセスを仲介します。.sdfファイルは、デプロイ先システムにコピーするか、ClickOnceを介してデプロイできます。SQL CE ランタイムは DataDirectory をサポートしています。[ 6 ] SQL CE データベースを使用するアプリケーションは、 ADO.NET接続文字列で.sdfファイルへの完全なパスを指定する必要はなく、代わりに、 |DataDirectory|\<database_name>.sdfと指定して、アプリケーションのアセンブリ マニフェストで定義されているデータ ディレクトリ ( .sdfデータベース ファイルが存在する場所) を定義できます。
SQL Server Management Studio 2005 は、CE 3.0 および 3.1 データベース ファイル (最新のサービス パック適用済み) の読み取りと変更が可能ですが、バージョン 3.5 ファイルを読み取るには SQL Server Management Studio 2008 (以降) が必要です。Microsoft Visual Studio Express 2008 SP1 は、CE 3.5 SP1 データベース ファイルの作成、変更、およびクエリを実行できます。SQL Server Management Studio は CE 4.0 ファイルを読み取ることができません。Visual Studio 2010 SP1 は CE 4.0 データベース ファイルを扱うことができます。
.sdf(「SQLデータベースファイル」)という命名規則は任意であり、任意の拡張子を使用できます。
データベースファイルにパスワードを設定するのは任意です。データベースは圧縮および修復が可能で、圧縮・修復後のデータベースを新しいデータベースファイルに格納することもできます。
2013年2月、マイクロソフトはSQL Server Compact Editionが非推奨になったと発表した。[ 18 ]
新しいバージョンやアップデートは予定されていませんが、Microsoft は標準ライフサイクル サポート ポリシーを通じて SQL Compact のサポートを継続します。SQL Server Compact 4.0 の延長サポートは 2021 年 7 月 13 日に終了しました。[ 19 ]