SQL Server Compact 4.0 の新機能

ここでは、SQL Server Compact 4.0 および以前のリリース (SQL Server Compact 3.5、SQL Server Compact 3.5 Service Pack 1 (SP1)、SQL Server Compact 3.5 Service Pack 2 (SP2) など) での新機能について説明します。

SQL Server Compact 4.0 の新機能

MicrosoftSQL Server Compact 4.0 には、新機能がいくつか追加されています。たとえば、ASP.NET Web アプリケーションや Web サイトのデータベースとして SQL Server Compact 4.0 を利用できるようになりました。SQL Server Compact 4.0 の主な機能は以下のとおりです。

  1. WebMatrix と Visual Studio 2010 Service Pack 1 を使用した SQL Server Compact 4.0 アプリケーションの開発

    • Premium、Ultimate、および Professional の各エディションの Visual Studio 2010 SP1 を使用すると、SQL Server Compact 4.0 向けの ASP.NET Web アプリケーションと Windows デスクトップ アプリケーションを開発できます。サーバー エクスプローラー、クエリ デザイナー、Transact-SQL エディターなどのデザイナーを使用して、データベースを参照できます。ASP.NET Web アプリケーション プロジェクト システムのデザイナーを使用すると、Web ページ上のコントロールを SQL Server Compact のデータにバインドできます。

      ASP.NET Web アプリケーション開発用の SQL Server Compact 4.0 は、Microsoft Visual Web Developer 2010 SP1 Express でもサポートされています。また、Visual Studio 2010 SP1 では、SQL Server Compact 3.5 と SQL Server Compact 4.0 を同時に使用したアプリケーション開発もサポートされています。

    • WebMatrix を使用すると、SQL Server Compact 4.0 によって ASP.NET Web アプリケーションを開発できるだけでなく、Transact-SQL クエリを SQL Server Compact に対して実行するなど、SQL Server Compact データベースの管理も行うことができます。

    • WebMatrix を使用すると、SQL Server Compact 4.0 のデータとスキーマをスクリプトにして上位バージョンの SQL Server に移行したり、Web サイトを 1 回のクリックで他のバージョンの SQL Server に移行したりすることが可能です。

  2. API の強化

    • ADO.NET Entity Framework 4.0 (.NET Framework 4) との統合

      SQL Server Compact 4.0 は、ADO.NET Entity Framework の Code First プログラミング モデルをサポートしています。また、SQL Server Compact 4.0 を ADO.NET Entity Framework 4 (.NET Framework 4 と同時にリリースされた ADO.NET Entity Framework のバージョン) と共に使用する場合は、サーバーによって生成された identity や rowguid などのキーを含む列もサポートされます。

      注意

      SQL Server Compact 4.0 リリースは、.NET Framework 4 と同時にリリースされた ADO.NET Entity Framework 4 にのみ対応しています。SQL Server Compact 4.0 を (.NET Framework 3.5 SP1 と同時にリリースされた) ADO.NET Entity Framework 3.5 SP1 と共に使用すると、エラーが発生します。

    • DbConnection.GetSchema の新しい API

      SQL Server Compact 4.0 には、SQL Server Compact データベース ファイルからスキーマを取得するために使用できる新しい API、System.Data.SqlServerCe.SqlCeConnection.GetSchema() が用意されています。この API は System.Data.Common.DbConnection.GetSchema にも対応しています。

    • SqlCeConnectionStringBuilder の新しい API

      新しい API、System.Data.SqlServerCe.SqlCeConnectionStringBuilder() では、開発者がプログラムを使用して SQL Server Compact 4.0 用の正しい接続文字列を作成したり、既存の接続文字列の解析と再構築を行ったりすることが可能です。この API は System.Data.Common.DbConnectionStringBuilder にも対応しています。

  3. 新しい Transact-SQL 構文

    SQL Server Compact 4.0 は、OFFSET および FETCH で Order BY 句を使用するための新しい Transact-SQL 構文によってさらに拡張された Transact-SQL クエリをサポートしています。OFFSET-FETCH を使用すると、ユーザーはページング クエリを作成して、データベース ファイルに対して実行できます。詳細については、「ORDER BY 句 (SQL Server Compact)」を参照してください。

  4. ASP.NET Web アプリケーションと Web サイトの機能強化

    • ASP.NET のサポート

      SQL Server Compact 4.0 では、特別な設定を一切行わなくても ASP.NET を使用できます。フラグ SQLServerCompactEditionUnderWebHosting は SQL Server Compact 4.0 では不要となったため、削除されています。

    • 仮想メモリの削減

      SQL Server Compact 4.0 では、SQL Server Compact の接続 1 回あたりの仮想メモリの使用量が削減されています。この違いが特に顕著に表れる例として、SQL Server Compact 3.5 SP2 では、アプリケーションが 40 ~ 50 個の同時接続を開こうとすると、仮想メモリが不足していることを示す例外が発生します。これに対して SQL Server Compact 4.0 では、アプリケーションはデータベース ファイルとの接続を最大 256 個まで容易に開くことができ、仮想メモリが不足する心配はありません。

    • 中程度の信頼

      中程度の信頼 (部分的な信頼) 環境で実行することは ASP.NET アプリケーションの重要な要件ですが、SQL Server Compact 4.0 はこの要件をサポートしています。

  5. 信頼性とセキュリティの向上、および容易な配置

    • 信頼性の向上

      SQL Server Compact 4.0 は、ASP.NET Web アプリケーションで動作することがテストによって実証されており、小規模な Web サイトの負荷を難なく処理できます。多数の同時接続が開かれ、データベースに対して複数の要求が発行されるシナリオにおいても、SQL Server Compact 4.0 は優れたパフォーマンスを発揮します。

    • 暗号化アルゴリズムの更新

      SQL Server Compact 4.0 は、暗号化された SQL Server Compact データベース ファイルのセキュリティ強化を可能にする SHA 2 暗号化アルゴリズムをサポートしています。

      ヒント

      以前のバージョンの SQL Server Compact でサポートされていたアルゴリズムは、データベース ファイルを開いて SQL Server Compact 4.0 にアップグレードする目的でのみ SQL Server Compact 4.0 でサポートされています。そのため、SQL Server Compact 3.5 のデータベース ファイルを SQL Server Compact 4.0 で開く場合は、System.Data.SqlServerCe.SqlCeEngine.Upgrade() API を使用して、その SQL Server Compact 3.5 データベース ファイルを SQL Server Compact 4.0 にアップグレードすることが必要となります。

    • セットアップの強化

      SQL Server Compact 4.0 のセットアップとインストールが強化され、SQL Server Compact の x86 コンポーネントと x64 コンポーネントを 64 ビット コンピューターに適切にインストールできるようになりました。これにより、SQL Server Compact 4.0 は、WOW64 モードと 64 ビット ネイティブ アプリケーションの両方を 64 ビット コンピューターで問題なくサポートできます。

      • SQL Server Compact 4.0 では、x86 EXE は 32 ビット コンピューターに、x64 MSI は 64 ビット コンピューターにのみインストールされます。x64 MSI は、32 ビットと 64 ビットの両方の SQL Server Compact コンポーネントを 64 ビット コンピューターにインストールします。インストール動作がこのように変更されたことで、x86 MSI を 64 ビット コンピューターにインストールする必要がなくなります。

      • SQL Server Compact 4.0 のプライベート配置の場合、プライベート配置用のすべてのバイナリ (32 ビットと 64 ビットの両方) は、%Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private フォルダーと %Program Files (x86)%\Microsoft SQL Server Compact Edition\v4.0\Private フォルダーにあります。

SQL Server Compact 3.5 Service Pack 2 の新機能

SQL Server Compact 3.5 Service Pack 2 (SP2) は、SQL Server 2008 R2 および Visual Studio 2010 に付属しています。SQL Server Compact 3.5 SP2 リリース以降の SQL Server Compactには、以下の新機能が装備されています。

  • Visual Studio 2010 での Transact-SQL エディターのサポート。Transact-SQL エディターを使用して、SQL Server Compact データベースに対してフリーテキストの Transact-SQL クエリを実行できるようになりました。また、Transact-SQL エディターには、SQL Server Compact データベース用の詳細な推定クエリ プラン表示および実際のクエリ プラン表示と、それを保存する機能が用意されています。Transact-SQL エディターによるこの機能は、以前は SQL Server Management Studio でしか使用できませんでした。詳細については、「Visual Studio Transact-SQL エディター」を参照してください。

  • SQL Server Compact データベース上での変更の追跡のサポート。System.Data.SqlServerCe 名前空間に新しいクラスおよびメンバーが追加され、データベース テーブルの行レベルでの変更の追跡がサポートされるようになりました。追跡がテーブル上で有効になっている場合、そのテーブル上で実行された挿入、削除、および更新についての情報が追跡インフラストラクチャによって維持されます。この情報は、追跡対象のテーブルに追加される列内と追跡インフラストラクチャによって維持されているシステム テーブルの両方に保存されます。これらの新しいクラスを使用すると、テーブル上での変更追跡を構成、有効化、および無効化できます。また、テーブルに対して維持されている追跡データにもアクセスできます。変更の追跡機能は、さまざまなシナリオで活用できます。たとえば、Occasionally Connected Systems (OCS) のクライアントからサーバーへの同期またはクライアントからクライアントへの同期をカスタム実装することも、変更の追跡を使用してカスタム リスナー アプリケーションを実装することもできます。詳細については、「変更の追跡を使用するアプリケーションの構築 (SQL Server Compact)」を参照してください。

  • 新しいアセンブリのバージョン管理サポートとディレクトリ構造。これにより、プライベート配置を使用する SQL Server Compact アプリケーションが、修正プログラム、セキュリティ修正プログラム、および重要な更新プログラムを受信できるようになりました。詳細については、「プライベート配置と中心配置 (SQL Server Compact)」を参照してください。

  • 64 ビットの ClickOnce 配置の追加サポート。詳細については、「デスクトップ アプリケーションの配置」を参照してください。

  • SQL Server Compact は、Windows 7 および Windows Server 2008 R2 をサポートしています。サポートされているすべての Windows のバージョンの一覧については、「必要なハードウェアとソフトウェア」を参照してください。

SQL Server Compact 3.5 Service Pack 1 の新機能

SQL Server Compact 3.5 Service Pack 1 (SP1) は、SQL Server 2008 と Visual Studio 2008 SP1 に付属しています。SQL Server Compact 3.5 SP1 リリース以降の SQL Server Compact には、以下の新機能が用意されています。

  • ADO.NETEntity Framework がサポートされています。Entity Framework を使用すると、ドメイン固有のオブジェクトやプロパティの形式のデータ (顧客や顧客の住所など) を操作することができます。そのデータが格納されている、基になるデータベースのテーブルや列のことを気にする必要はありません。

  • ADO.NETEntity Framework のサポートにより、開発環境で LINQ の式と標準クエリ演算子を直接使用して、Entity Framework オブジェクト コンテキストに対して柔軟で厳密に型指定されたクエリを作成できます。

  • 大文字と小文字を区別する照合順序が、データベース レベルでサポートされるようになりました。詳細については、「照合順序の使用 (SQL Server Compact)」を参照してください。

  • SQL Server 2008 の SQL Server Management Studio (SSMS) を使用して、スマート デバイスやデスクトップ コンピュータに格納されている SQL Server Compact データベースを管理できます。

  • SQL Server 2008 の新しいデータ型のレプリケートがサポートされます (date、time、datetime2、datetimeoffset、geography、geometry など)。SQL Server 2008 の新しいデータ型は、nchar、nvarchar、image などにマップされます。SQL Server 2008 のデータ型の詳細については、SQL Server 2008 オンライン ブックの「データ型」を参照してください。

  • SQL Server Compact は 64 ビット環境でのネイティブ実行に対応しています。この影響を受ける MSI ファイルは、SQL Server Compact 64 ビット ランタイム (SSCERuntime-ENU.msi) と SQL Server Compact 64 ビット サーバー ツール (SSCEServerTools-ENU.msi) です。32 ビット MSI のサポートに変更はありません。アプリケーションで ClickOnce 配置を使用している場合は、32 ビットと 64 ビットの両方のダウンロード URL を指定する必要があります。詳細については、「64 ビット データベース アプリケーションの管理」を参照してください。

  • SQL Server Compact では、Sync Services for ADO.NET を使用した SQL Server 2000、SQL Server 2005、および SQL Server 2008 とのデータのレプリケーションがサポートされます。Sync Services for ADO.NET は、デスクトップとモバイル デバイスの両方で使用できます。

  • SQL Server Compact では、マージ レプリケーションとリモート データ アクセス (RDA) を使用した SQL Server 2005 および SQL Server 2008 とのデータのレプリケーションがサポートされます。

  • マージ レプリケーションのために SQL Server Compact と SQL Server の間のバージョンの互換性が強化されています。

  • SQL Server Compact 3.5 SP1 を使用してマージ レプリケーションと RDA を構成するためのサーバー ツールは、Microsoft ダウンロード センターからダウンロードできます。IIS サーバーの役割を持つコンピュータ上に、SQL Server Compact 3.5 SP1 サーバー ツールと以前のバージョンのサーバー ツールをサイド バイ サイド インストールすることはできません。SQL Server Compact 3.5 SP1 サーバー ツールを使用すると、SQL Server Compact 3.5 と SQL Server 2005 または SQL Server 2008 との間でデータをレプリケートできます。また、SQL Server Compact 3.5 SP1 サーバー ツールでは、SQL Server 2005 Compact Edition または SQL Server 2005 Mobile Edition と SQL Server 2005 または SQL Server 2008 との間のデータ レプリケーションもサポートされます。

  • SQL Server Compact では、Windows Server 2008 がサポートされています。サポートされているすべての Windows のバージョンの一覧については、「必要なハードウェアとソフトウェア」を参照してください。

SQL Server Compact 3.5 の新機能

SQL Server Compact 3.5 は、Visual Studio 2008 と共にリリースされました。SQL Server Compact 3.5 リリース以降の SQL Server Compact には、以下の新機能が用意されています。

  • timestamp (rowversion) データ型が実装されました。rowversion データ型は、自動的に生成された、データベース内で一意であることを保証されている 2 進数の値を表すデータ型です。通常、このデータ型はテーブル行のバージョンを指定するしくみとして使用されます。

  • SQL Server Compact は、デスクトップ コンピュータ上のローカル トランザクション スコープをサポートします。

  • Visual Studio 2008 の強化された SQL Server Compact テーブル デザイナーには、テーブル間に主キーと外部キーのリレーションシップを作成するためのユーザー インターフェイスが用意されています。

  • SQL Server Compact では、次の Transact-SQL ステートメントが新たにサポートされます。

    • FROM 句内で入れ子になったクエリ

    • CROSS APPLY および OUTER APPLY

    • CAST

    • TOP

    • SET IDENTITY INSERT

  • SQL Server Compact は、中国語 GB 18030 文字など、あらゆるロケールの Unicode 文字をサポートしています。

  • SQL Server Compact は、Visual C# 2008 Express Edition および Visual Basic 2008 Express Edition を使用したデスクトップ アプリケーションの開発をサポートしています。

  • デスクトップ コンピュータで、SQL Server Compact 3.5 と以前のバージョン (3.1) とのサイド バイ サイド インストールがサポートされます。以前のバージョンとの相互のやり取りの詳細については、「以前のバージョンからのアップグレード (SQL Server Compact)」を参照してください。

  • 古い暗号化アルゴリズムを使用する古いオペレーティング システムと、セキュリティ面で優れた新しい暗号化をサポートするために、SQL Server Compact では下位互換性のある暗号化モードをサポートしています。下位互換性のある暗号化モードの一覧については、「以前のバージョンからのアップグレード (SQL Server Compact)」を参照してください。

  • SQL Server Compact では、LINQ to SQL がサポートされます。LINQ to SQL は、LINQ プロジェクトのコンポーネントです。クエリ機能を維持しながら、リレーショナル データをオブジェクトとして管理するための、実行時インフラストラクチャを提供します。これにより、言語統合クエリが SQL Server Compact での実行用に Transact-SQL に変換され、アプリケーション開発者による定義に従って、表形式の結果がオブジェクトに変換されます。LINQ to SQL では、SQL Server Compact に対するデザイナ サポートは提供されません。SQL Server Compact の場合は、SqlMetal.exe ユーティリティを使用する必要があります。SqlMetal コマンド ライン ツールは、.NET Framework の LINQ to SQL コンポーネントのコードおよびマッピングを生成します。既定では、SQLMetal ファイルは %ProgramFiles%\Microsoft SDKs\Windows\vn.nn\bin に格納されます。詳細については、「LINQ to SQL でのコード生成」を参照してください。SqlMetal は、次のような目的で使用できます。

    • データベースから、ソース コードやマッピング属性またはマッピング ファイルを生成する。

    • データベースから、カスタマイズ用の中間データベース マークアップ言語 (.dbml) ファイルを生成する。

    • .dbml ファイルから、コードおよびマッピング属性またはマッピング ファイルを生成する。

その他の新機能

SQL Server Compact 4.0 には、SSCEVSTools-ENU.msi、SSCEWebTools-ENU.msi、SSCERuntime_x86-ENU.exe、および SSCERuntime_x64-ENU.exe の各コンポーネントが用意されています。

  • Microsoft Visual Studio 2010 SP1 Tools for SQL Server Compact 4.0 (SSCEVSTools-ENU.msi): このファイルは、Visual Studio 2010 SP1 でデザイナーをサポートするために必要となる SQL Server Compact デザイン時コンポーネントをインストールします。デザイン時コンポーネントとは、SQL Server Compact のアプリケーションを作成する際に使用する、ユーザー インターフェイス、ダイアログ ボックス、およびデザイン時環境です。SQL Server Compact のデザイン時コンポーネントは、ディレクトリ %ProgramFiles%\Microsoft Visual Studio 10\Common7\IDE\ にインストールされます。サンプルは %ProgramFiles%\Microsoft SQL Server Compact Edition\v4.0\Samples にインストールされます。これらのコンポーネントは Visual Studio に関連付けられており、個別に使用することはできません。SQL Server Compact サンプルと SQL Server Compact のネイティブ開発用ヘッダー ファイルも、この .msi ファイルによってインストールされます。

  • SQL Server Compact 4.0 Runtime (SSCERuntime_x86-ENU.exe および SSCERuntime_x64-ENU.exe): このファイルを実行すると、デスクトップ コンピューター用の SQL Server Compact の実行時コンポーネントがメインのフォルダー %ProgramFiles%\Microsoft SQL Server Compact Edition\v4.0 にインストールされます。デスクトップ コンピューター用 SQL Server Compact 実行時コンポーネントは、Visual Studio でアプリケーションを開発するためと、SQL Server Compact ベースのアプリケーションをデスクトップ上で実行するために必要です。SSCERuntime-ENU.msi は、Web からもダウンロードできます。

  • SQL Server Compact 4.0 Web Tools (SSCEWebTools-ENU.msi): このファイルは、データベース スクリプト コンポーネントをグローバル アセンブリ キャッシュにインストールします。これにより、WebMatrix で上位の SQL Server SKU にデータベースを移行できるようになります。この MSI は WebMatrix に対してのみ使用できます。