Microsoft SQL Server
Microsoft SQL Server (マイクロソフト エスキューエル サーバ)とは、マイクロソフトが開発している、リレーショナルデータベース管理システム (RDBMS)である。略称は「SQL Server」または「MS SQL」などと呼ばれている。主要な問い合わせ言語 (クエリ言語)は、T-SQLとANSI SQLである。
企業サーバ向けの高機能なシステムから、組み込み系の小規模なシステムまで幅広く対応する。またMicrosoft Windowsと親和性が高く、ADOやADO.NETを経由して最適なバックエンドデータベースを構築できるようになっている。
目次
歴史
遍歴
バージョン | 年 | リリース名 | コードネーム |
---|---|---|---|
1.0 (OS/2) |
1989 | SQL Server 1.0 (16bit) |
- |
1.1 (OS/2) |
1991 | SQL Server 1.1 (16bit) |
- |
4.21 (WinNT) |
1993 | SQL Server 4.21 | SQLNT |
6.0 | 1995 | SQL Server 6.0 | SQL95 |
6.5 | 1996 | SQL Server 6.5 | Hydra |
7.0 | 1998 | SQL Server 7.0 | Sphinx |
- | 1999 | SQL Server 7.0 OLAP Tools |
Plato |
8.0 | 2000 | SQL Server 2000 | Shiloh |
8.0 | 2003 | SQL Server 2000 64-bit Edition |
Liberty |
9.0 | 2005 | SQL Server 2005 | Yukon |
10.0 | 2008 | SQL Server 2008 | Katmai |
10.25 | 2010 | SQL Azure | Matrix (aka CloudDB) |
10.5 | 2010 | SQL Server 2008 R2 | Kilimanjaro (aka KJ) |
11.0 | 2012 | SQL Server 2012 | Denali |
特徴
- Transact-SQLというSQL Server向けに拡張されたSQLを使用している。
- OLAP・多次元解析などのビジネスインテリジェンス (BI) やデータマイニングのための機能を備えている。
- データベースの自動圧縮機能を備えている。ただし圧縮処理の最中はパフォーマンスが著しく低下し、また圧縮中にハード障害が起きるとデータベースファイルが破壊される可能性が高いため、デフォルトでは自動圧縮はOFFとなっている。
- データベースのミラーリング・フェイルオーバー機能が備わっており、フォールトトレランスを実現できる。
- ストアドプロシージャに.NET Frameworkも利用できる。Transact SQLでは記述が困難な高度な処理を簡易に記述でき、処理によっては高速化も図れる他、CLRによって保護されているためバグがあってもSQL Serverごとクラッシュする事はない。なお、Transact SQLで容易に可能な集合操作等は、むやみにCLRを使用すると低速となる。
- GUIツール類が充実しており、DBMSに不慣れなユーザーでも扱いやすい。
エディション
SQL Serverは、その規模に応じた複数の種類から構成されており、規模に合わせて機能や性能が異なっている。
- Enterprise Edition
- 大企業や高度な要求を処理するシステム向けのエディション。SQL Serverの全機能を備える。 (x86, x64, IA-64)
- Developer Edition
- 企業でのデータベースシステム開発用途に利用するエディション。そのため実稼働環境では使用できない。Enterprise Editionと同等の機能が備わっている。 (x86, x64, IA-64)
- Standard Edition
- 中規模企業から大規模な部門のシステム向けのエディション。Enterpriseからデータ分析機能などが削減されている。Standard Editionから64ビットOSに対応している。 (x86, x64, IA-64)
- Workgroup Edition
- 小規模なシステム向けのエディション。Express Editionと違い、データベースのサイズなどの制限が取り除かれている。SQL Server 2008 R2を最期に廃止され、2012では後継となるエディションは提供されていない。 (x86)
- Web Edition
- Webサービス向けに合わせたライセンスモデルの製品。SQL Server 2008 R2を最期に廃止され、2012では後継となるエディションは提供されていない。 (x86, x64)
- Compact Edition
- 他のエディションとは全く異なりクライアントサーバモデルではなく、ハードウェア上に組み込むタイプの製品。タブレットPCやスマートデバイスなどのモバイル向けで、位置づけ的にはMobile EditionとMSJetデータベースエンジンの後継にあたる。 (ARM, MIPS, SH4, x86)
- Express Edition
- 無償で利用できるエディション。主に個人や小規模商用アプリケーションに使用されている。SQL Serverのエディションの中でも基本的な機能のみ備える。 (x86, x64)
- Express Edition with Advanced Services
- Express Editionの機能に加えて、フルテキストクエリの実行・ローカルDBのReporting Servicesの実行機能、および管理ツールが同梱されている。無償のエディション。
- Embedded Edition
- Windows Server上で動作する追加コンポーネント用のソフトウェア組み込み用データベース。「Internal Database」とも呼ばれる。WSUSやWindows SharePoint Servicesのバックエンドデータベースとして自動インストールされる。外部ネットワークからDBに接続することは出来ず、内部アプリケーションからはパイプでのみ接続できる。なお、SharePoint Servicesで使用する場合は、データベースサイズの制限が解除される。ただし他のアプリケーションからは使用できない。
バージョン
各々のバージョンで最新のエンジンに改良されたり新しいSQL構文がサポートされていったり、アルゴリズムなどが変化したりしている。ある範囲での後方互換性も保たれており、「互換性レベル」を指定してその時点と同じ挙動をさせることが可能である。一方で新しいバージョンにおいて、互換性レベルのサポートが外れてしまったアプリケーションは利用できなくなる[1]ので注意が必要である。
60 | 65 | 70 | 80 | 90 | 100 | 110 | 120 | |
---|---|---|---|---|---|---|---|---|
6.0 | ○ | |||||||
6.5 | ○ | ○ | ||||||
7.0 | ○ | ○ | ○ | |||||
2000 | ○ | ○ | ○ | ○ | ||||
2005 | ○ | ○ | ○ | ○ | ○ | |||
2008 | × | × | × | ○ | ○ | ○ | ||
2008 R2 | × | × | × | ○ | ○ | ○ | ||
2012 | × | × | × | × | ○ | ○ | ○ | |
2014 | × | × | × | × | × | ○ | ○ | ○ |
ライセンス
ここではSQL Server 2005および2008に関するライセンス[2]を記述する。
- プロセッサライセンス
- 搭載している物理プロセッサの数によるライセンス。複数コアでもプロセッサが1個なら1ライセンスと数える。CALが不要となるため不特定多数のクライアントが利用する用途に向いている。近年の物理プロセッサ数に対するコア数の増加を理由に、SQL SERVER 2008 R2 にて25%程度の値上げが行われた。また、SQL Server 2012からは、物理プロセッサ数によるライセンスが廃止されコア数による課金へ移行することが予告されており、6コア以上のプロセッサを使用する場合には実質値上げとなる。具体的な例として8コアのプロセッサを前提とした場合、SQL SERVER 2008と比較してSQL SERVER 2012では、2.5倍の値上ということになる。
- サーバー/CALライセンス
- アクセスするユーザー数またはデバイス数に応じたライセンス。アクセス数が小規模な用途に向いている。
以下にライセンスの主なポイントを記述する。なお、ライセンスの詳細条件はエディションによって変わることがあるため、マイクロソフトの公式サーバーサイト[3]やライセンス取り扱い業者なども参考にされたい。
- サーバー/CALライセンスに必要なCALは、実際にSQL Serverにアクセスするデバイス(例:パソコン)やユーザー(例:従業員)の数に応じて用意する。そのため、CAL数は、SQL Serverへの同時接続数(セッション数)やSQL Serverで作ったアカウント数といった技術的な数とは異なる。例えば技術的にはIISからSQL Serverへの接続が1セッション1アカウントだとしても、IISの認証を通してSQL Serverの機能を利用するデバイスまたはユーザーが複数いれば、その分だけCALが必要となる。
- サーバー/CALライセンスの場合、CAL1つで複数のSQL Serverにアクセスできる。例えば、CALを持つユーザーAは、そのCALだけでSQL Server1にもSQL Server2にもアクセスすることが出来る。
- SQL Serverのフェールオーバー機能のうち、アクティブ・スタンバイ構成(稼動・待機系構成)を利用する場合、稼動系(アクティブ)のライセンスがあれば、待機系(スタンバイ)のライセンスは不要である(負荷分散も兼ねるアクティブ・アクティブ構成では、両系列分のライセンスが必要である)。
この場合、待機系のSQL Serverは、待機中に何らかのサービスをクライアントに提供することはできない。さらにプロセッサライセンスの場合、待機系のプロセッサ数は稼動系のプロセッサ数を超えてはならない。
待機系が稼動系に切り替わったときは、30日間は追加ライセンス不要で、待機系を稼動系として動作させることが出来る。これらの条件はミラーリングでも同様である。
管理ツール
テンプレート:Main SQL Serverには現在2種類の管理ツールが存在する。
- SQL Server Management Studio
- SQL Server 2005から同梱されている管理ツール。なおExpress用に機能を省略した「Basic」(Express) が無償ダウンロードできる。
- SQL Server Enterprise Manager
- SQL Server 2000以前から同梱されている管理ツール。商用のエディションにのみ同梱され、無償のMSDE用には配布されていない。
無償版エディションについて
無償版は、個人用途や多くの小規模商用アプリケーションで利用されているため、以下に詳細を記述する。
MSDE
Microsoft SQL Server Desktop Engine(マイクロソフト エスキューエル サーバ デスクトップ エンジン、初期バージョンではMicrosoft Data Engine)は、利用できるメモリサイズやデータベースサイズなどに制限があるものの無償で利用でき、学習用あるいは小規模なWebアプリケーションやデスクトップアプリケーションなどで利用できるものである。グラフィカルな管理ツールが提供されていないため、主にコマンドベースのユーティリティ (osql.exe)を利用して管理する。なお、Windows Vistaからは動作保証外となった。 MSDEの後継製品はSQL Server Express Editionである。
MSDEのバージョン
詳しいバージョンの調べ方は、マイクロソフトサポートオンライン[4]を参照。
- 1999年 - MSDE 1.0。Office 2000 などに含まれる。SQL Server 7.0 ベース。
- 2000年 - MSDE 2000。Office XP などに含まれる。SQL Server 2000 をベース。
- 2003年 - MSDE 2000 Release A(SP3a)。 Office 2003 などに含まれる。
- 2005年 - MSDE 2000 SP4。
SQL Server Express Edition
テンプレート:Main SQL Server Express Edition は MSDE の後継製品で、引き続き無償で公開されている製品。 MSDE で利用できなかった管理ツール (SQL Server Management Studio Express) も公開され、管理が容易になった。また、データベースの最大サイズが拡張された。ただし、物理CPUの認識が1つに制約されたりメモリの使用量が 1GB まで縮小されるなどの制約もある。また MSDE 2000 に存在したジョブスケジュールなどの機能が省かれた。
高度な機能は利用できないが、その代わり Workgroup Edition 以上のエディションと同等のプロトコルや Transact-SQL が利用でき、無償の開発プラットフォームを提供する事によりユーザーの囲い込みを図る、マイクロソフトの戦略的パッケージと言える。同じコンセプトの戦略をとるものに IBM DB2-C がある。
歴史
バージョン | リリース | 製品名 | コードネーム |
---|---|---|---|
1.0 (OS/2) | 1990年 | SQL Server 1.0 | - |
4.21 (WinNT) | 1994年 | SQL Server 4.21 | - |
6.0 | 1996年 | SQL Server 6.0 | SQL95 |
6.5 | 1997年 | SQL Server 6.5 | Hydra |
6.5 | 1998年 | SQL Server 6.5 Enterprise Edition |
- |
7.0 | 1999年 | SQL Server 7.0 | Sphinx |
- | 1999年 | SQL Server 7.0 OLTP Services |
Plato |
8.0 | 2000年 | SQL Server 2000 | Shiloh |
8.0 | 2003年 | SQL Server 2000 64-Bit Edition |
Liberty |
9.0 | 2005年 | SQL Server 2005 | Yukon |
10.0 | 2008年 | SQL Server 2008 | Katmai |
10.5 | 2010年 | SQL Server 2008 R2 | Kilimanjaro |
元は、UNIX などの上で稼動していた Sybase の製品で、Ingres のプロジェクトからスピンオフした開発者達が開発したといわれる。 この製品の名称は、Sybase SQL Server だった。 その後 OS/2 向けのデータベース管理システム (DBMS) を手に入れることを望んだ Microsoft が、Sybase と提携して、移植版を開発・発売することになった。Microsoft は後にプラットフォームを Windows NT に移した。したがって、SQL Server の名称は Microsoft SQL Server と Sybase SQL Server を指す。
その後、両社は提携を解消して、それぞれ独自にバージョンアップを行うようになり、機能に大きな差が生じているので、これらは厳密に区別する必要がある。ただ、しばらくして、混同を避けるために、Sybase SQL Server は Adaptive Server Enterprise (ASE) に名前を変えたため、今では、単に SQL Server といったときは、Microsoft SQL Server を指す。
両製品には、インタフェースレベルである程度の互換性が残っており、同じドライバをいずれへの接続にも使えることがある。
脚注
- ↑ 性能面やセキュリティ面から、バージョンアップに伴って廃止される機能がある。SQL Server 2008 で廃止されたデータベース エンジンの機能 SQL Server 2014 で廃止されたデータベース エンジンの機能
- ↑ SQL Server ライセンス早わかりガイド
- ↑ マイクロソフト サーバー : ホーム
- ↑ SQL Server のバージョンとエディションを識別する方法(マイクロソフトサポートオンライン、文書番号321185)