SQL Serverとは
「SQL Server」とは、マイクロソフト社が開発したデータベース・アプリケーションです。
競合製品には、有償であれば「Oracle」、フリーで使える無償製品であれば「MySQL」、「PostgreSQL」などが有名です。
「SQL Server」は既に30年近くの歴史をもった製品で、最初は1993年に、Ashton-Tate社とSybase社との共同開発で作られた「SQL Server 4.2」から始まり、そこから何十・何百ものアップデートを繰り返し、2020年11月現在では「SQL Server 2019」が最新バージョンがリリースされています。
Windows Serverとの相性がいい
「SQL Server」の強みは、Windowsを開発しているマイクロソフト社が開発していることで、Windowsとの相性がよく、Windows ServerなどのOSで、よく使用されているデータベースです。
例えば、データベースのセキュリティ・アップデートや、サービスパックなどの更新があるとき、他のデータベース・アプリケーションでは、管理者が手動でパッチなどをダウンロードし、適用する必要するものがあります。「SQL Server」であれば、WIndows Updateと一緒に「SQL Server」の更新もインストールされます。
管理ツールが使いやすい
SQL Serverのメリットの一つに、管理ツールの「SQL Server Management Studio」の使いやすさが挙げられます。
「SQL Server Management Studio」を使えば、ほとんどのデータベース操作が、マウスなどの簡単な操作だけで行え、難しいコマンドの入力を必要としません。
Oracleや他のデータベースでも管理ツールは提供されていますが、使いづらかったり、一部の機能はコマンドで入力が必要なケースがあるなど、データベースにあまり詳しくない人にとってはバードルが高いでしょう。
「SQL Server Management Studio」で難点なのが、ソフト自体の容量が700MB以上にもなり、HDDにそれなりに余裕があるPCが必要となります。
クラウド開発でも活躍
SQL Serverは、同じくマイクロソフトが提供するクラウドサービスである、Azureでも利用でも「SQL データベース」という形で利用できます。
クラウド環境であれば、Azureポータル上の画面で、数ステップの簡単な入力を行えば、すぐにデータベースを構築することができます。
もちろん「SQL Server Management Studio」でAzure上のデータベースにも接続することができ、オンプレミスのSQL Serverとほぼ同じように管理ができます。
豊富なエディション
SQL Serverには、大きく分けて有償版と無償版のエディションがあり、無償版はCPU・メモリ・HDDの使用量に制限がありますが、試用期間などもはないため、小規模なシステムであれば無償版のSQL Serverでシステムを運用することもできます。
SQL Serverのエディションには、次のようなラインナップがあります。
Enterprise Edition
SQL Serverの全ての機能が利用できる、最上位エディション。ライセンスの購入は「コアベースモデル」となっており、CPUのコア数に応じて費用を支払います。
2020年11月時点での価格は、2コアあたり「13, 748ドル」となっており、最上位エディションということもあって、費用も高額です。
Standard Edition
中規模・小規模システム向けのエディション。
基本的な機能はEnterprise同じですが、性能面や可用性の面でいくつかの制限があります。
例えば、データベースをスケールする際に、Enterpriseエディションであれば、CPUのコア数に制限はありませんが、Standardエディションでは「4 ソケットまたは 24 コアのいずれか小さいほうに制限」されます。
可用性の面では、Standard Editionエディションは、2ノードの単一データベースのフェールオーバーに対応しています。ただしデータのレプリケーション先となるセカンダリ・データベースの読み取りは不可なり、プライマリ・データベースにのみデータの読み書きが可能です。
一方、Always Onが使用可能な Enterprise Edition は、複数ノードのフェールオーバーに対応しています。
ライセンスには、「コアベースモデル」と「サーバー/CALモデル」と呼ばれる2つのライセンス形態が存在し、運用する環境に合わせてどちらかのライセンスを購入します。
SQL Serverのライセンスの詳細は、次の記事で詳しく解説しているため、こちらもご覧ください。
【関連記事】
▶SQL Serverのライセンス概要を確認しよう!各エディションの違いとは?
Developer Edition
Developer Editionは、Enterprise Editionと同等の機能を開発用途で利用できるエディションです。
エディションの名前の通り、Developer Editionは開発及びテストでの利用のみできるエディションで、本番サーバー稼働用に使用した場合、ライセンス違反になるため、個人・商用に関わらず、本番用途では使用しないように注意してください。
Express Edition
Express Editionは、小規模システム向けのSQL Serverで、商用でも利用可能なデータベースとして提供されています。
Developer Editionとは違い、本場環境向けのサーバーでもExpress Editionは利用可能です。
ただし、Express Editionには次の制限があり、制限を超える利用には、Standard Editionなどのライセンスの購入が必要になります。
- CPUの制限は、1ソケットまたは4コアのどちらかが上限。
- メモリの使用制限は1GBまでが上限。
- HDDはデータベース1つあたり10GBまで。(同じインスタンス内であってもデータベースが違えば、それぞれ10GBの領域が使用可能)
SQL Server 2014, 2016の新機能
最後に、SQL Server 2014, 2016それぞれで追加された新機能を紹介します。
すべてを紹介はできないため、特徴的な新機能をいくつか紹介します。
SQL Server 2014の新機能
・インメモリ OLTP 機能
テーブルのデータや、ストアドプロシージャをメモリ上に格納してメモリ内で処理するのがインメモリ OLTP 機能です。ディスクI/Oがなくなることで、高速な処理が期待できます。
・クラウド対応(Azure対応)
Azureへのバックアップ機能など、このバージョンからクラウド化が始まりました。
SQL Server 2019の新機能
・動的データ マスク
氏名、電話番号、住所など、個人情報のマスキングをデータベースの機能を使って行えます。
これまでは、手動でSQLを作ってデータをマスキングしていたものが、DBの機能でできるようになりました。
・JSONサポート
JSON サポートは、JSON のインポート、エクスポート、解析および格納をサポートします。
・Always Encryptedで列データを暗号化
テーブルの列データを暗号化する機能で、セキュリティ規定が厳しい環境ではとても便利そうです。
まとめ
SQL Serverの概要や、SQL Server 2014, 2016, 2019の新機能について解説してきました。
SQL Serverは非常に多機能なデータベースであり、今後も進化していくことが予想されます。
Express Editionエディションであれば無償で利用できるため、この機会にSQL Serverを触ってみてください。
SQL ServerのAlways On機能は、複数のSQL Serverを、可用性グループで仮想的に1台のSQL Serverのみに見せ、グループの中の1台が少なくとも起動していれば、接続先のアプリケーション等からは正常に稼働しているかのように見せる技術です。
内部的には、可用性グループ内のプライマリ・データベースに対して書き込みを行い、それ以外のセカンダリ・データベースには、レプリケーションで常にデータの同期をとっており、プライマリデータベースに障害が発生した時、セカンダリ・データベースのいずれかが、プライマリ・データベースになって稼働し続けるようになっています。
書き込みはプライマリ・データベースのみですが、参照はセカンダリ・データベースも使用されるため、Always Onは、データベース参照処理への負荷分散としても効果があります。