新しい開発ツールの概要
SQL Serverを使用するシステムの開発者が、効率よく開発できるようにするために、新しいツールとプロジェクトがリリースされました。新たに提供されたツールは、SQL Server Data ToolsとSQL Server Express LocalDBです。SQL Server Data Toolsと合わせて、データベースプロジェクトが提供されています。
対象読者
- SQL Serverを使用するアプリケーション設計、開発者
- SQL Serverデータベース管理者
- SQL Server 2012の新機能に興味のある方
必要な環境
Visual Studio 2010 SP1
SQL Server Data Toolsを単独で使用する場合は不要です。しかし、Visual Studio 2010がインストールされている環境では、単独使用はできず、Visual Studio上で使用することになります。
.NET Framework 4.0
.NET Framework 4.0がインストールされていない場合は、SQL Server Data Toolsインストール時に、自動的にインストールされます。
用語集
今回取り上げるツールの概要と、表記について説明します。
SQL Server Data Tools(略称:SSDT)
SQL Server Data Toolsは、SQL Serverを使用するアプリケーション開発者のための開発支援ツールです。開発者がSQL Server Management Studioで実施していたテーブルの作成や変更などのデータベース関連タスクを、Visual Studioで完結することを目的としています。Visual Studio 2010では、SQL Server Data ToolsをインストールすることでVisual Studioに統合されます。Visual Studio 11の次期バージョンでは最初から組み込まれる予定です。
SQL Server Data Toolsを使用することで、SQL Server 2005、2008、2008 R2、2012とSQL Azureに対して作業をすることができます。SQL Server Management Studioでは、SQL Azure向けの操作画面が提供されておらず、T-SQLを発行して操作する必要があります。SQL Server Data Toolsでは、SQL Azureもデザイナーなどの操作画面を使用することができます。
今回は具体的な操作方法は説明しませんが、SQL Server Data Toolsのスキーマ比較機能を使用すると、本番データベース、SQL Serverデータベースプロジェクト、SQL Serverデータベースプロジェクトスナップショット(注1)それぞれの差分比較をすることができます(表1)。
特徴 | 説明 |
サポートするバージョン | SQL Server 2005、SQL Server 2008、SQL Server 2008 R2、SQL Server 2012、SQL Azure |
デザイナー機能 | 画面操作によるテーブル、インデックス、トリガーなどのデータベースオブジェクトの作成・変更 |
データ抽出機能 | データを複製するためのSQL文作成機能 |
スキーマ比較 | データベース、SQL Serverデータベースプロジェクト、SQL Serverデータベースプロジェクトスナップショットそれぞれの差分比較 |
差分を埋めるためのSQL生成 | 差分をなくすためのSQL文生成機能 |
SQL Serverデータベースプロジェクト作成機能 | SQL Serverデータベースプロジェクトの作成、スナップショットの作成 |
dacpac、bacpac作成機能 | スキーマのバックアップ機能、スキーマとデータのバックアップ機能 |
MSDNライブラリでは、「SQL Server データ ツール」と表記されています。インストール後のソフト名は、「SQL Server Data Tools」になっています。本稿では、SQL Server Data Toolsと表記します。
SQL Serverデータベースプロジェクトスナップショットは、特定時点のSQL Serverデータベースプロジェクトをバックアップしたファイルです。SQL Serverデータベースプロジェクトスナップショットを取得すると、dacpac形式のファイルでバックアップされます。dacpacファイルは、データベースの構造(スキーマ)をXML形式で表現したファイル群をzip圧縮したファイルです。今後のSQL Serverのバックアップ方式の主流となっていくファイルです。
SQL Server データベース プロジェクト
SQL Server Data Toolsをインストールした際に組み込まれるプロジェクトテンプレートです。
本番データベースへのアクセスが制限されていたり、禁止されていたりする開発者の場合、SQL Serverデータベースプロジェクトを使用することで、開発作業が容易になります。開発者は、SQL Serverデータベースプロジェクト内のオブジェクトを追加、修正、削除をすることでスキーマの変更を実装することができます。スキーマ比較を使用することで、SQL Serverデータベースプロジェクトと本番データベースの差分有無を確認することができます。SQL Serverデータベースプロジェクトは、LocalDBにアタッチされ、LocalDB経由で操作、アプリケーションを実行することができます。
図1は、SQL Serverデータベースプロジェクトを使用したアプリケーション開発時の概念図です。データベース管理者が本番DBからSQL Serverデータベースプロジェクトを生成します。開発者は、SQL Serverデータベースプロジェクトに変更を加え、LocalDBで動作確認をします。そして、データベースプロジェクトから本番へ変更を反映させます。
データベースプロジェクトはプロジェクトファイルなので、プログラムコードと合わせてソースコード管理に追加することができます。これにより、データベーススキーマとプログラムコードをひとくくりにしてソース管理をすることができます。
MSDNライブラリでは、「データベース プロジェクト」や「SSDT-DP(SQL Server Database Tools - Database Project)」と表記されています。本稿では、SQL Serverデータベースプロジェクトと表記します。
SQL Server 2012 Express LocalDB
SQL Server 2012 Expressエディションには2種類の製品が用意されました。従来通りのSQL Server 2012 ExpressとSQL Server 2012 Express LocalDBです。2種類の製品が用意された背景には、SQL Server Expressのニーズが2つあったからです。
1つ目は、SQL Serverの無料エディションであること。SQL Server ExpressはほかのエディションのSQL Serverとインストール、管理、プログラミングで100%の互換性があります。SQL Server Expressは、学習、トレーニング、(DB容量10GB未満の)小さな製品データベースに使用することができます。SQL Server Expressからほかのエディションへのアップグレードは、ライセンスキーを登録するだけで実行でき、インストールは必要ありません。
2つ目は、SQL Server Expressは、SQL Serverを対象にしたアプリケーション開発に使用できるSQL Serverエディションです。ほかのSQL Serverと100%の互換性を保ちながら、とても小さく、シンプルで、設定や管理が必要なく、管理者ユーザでもなく実行できることが期待されています。
SQL Server Expressは、両方の役割を担当できるように調整してきました。しかし、SQL Serverと互換性を保ちながら、小さくシンプルを実現することは困難でした。そこで、アプローチを変え、開発者向けのSQL Express版、つまりAPIレベルでSQL Serverと互換性を持ち、シンプルなSQL Server 2012 Express LocalDBが提供されることになりました。
MSDNライブラリ上では、「SQL Server 2012 Express LocalDB」や「ローカル データベース」と表記されています。本稿では、LocalDBと表記します。