Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

使わなきゃ損! SQL Serverの新たな開発ツール「SQL Server Data Tools」

進化したSQL Server 2012の新機能紹介(3)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 本稿では、SQL Server 2012で提供が始まったSQL Server Data ToolsとSQL Server Data Tools Project、SQL Server Express LocalDBについて紹介します。

目次

新しい開発ツールの概要

 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)。

図1:SQL Server Data Toolsの機能一覧
特徴 説明
サポートするバージョン 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と表記します。

注1:SQL Serverデータベースプロジェクトスナップショット

 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で動作確認をします。そして、データベースプロジェクトから本番へ変更を反映させます。

図1 SQL Server Data Toolsの利用シナリオ
図1 SQL Server Data Toolsの利用シナリオ

 データベースプロジェクトはプロジェクトファイルなので、プログラムコードと合わせてソースコード管理に追加することができます。これにより、データベーススキーマとプログラムコードをひとくくりにしてソース管理をすることができます。

 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と表記します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 大和屋 貴仁(ヤマトヤ タカヒト )

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2012年2月時点での登録メンバは37名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:進化したSQL Server 2012の新機能紹介

おすすめ記事

All contents copyright © 2006-2016 Shoeisha Co., Ltd. All rights reserved. ver.1.5