マイクロソフト社のデータベース製品、SQLサーバーについてまとめています。
SQLサーバーの特徴
SQLサーバーは、もともと金融系に強いSybase社とマイクロソフト社が開発したデータベースです。Sybaseは金融系のシステムのデータベースとしてよく使われていました。
【関連記事】
▶SQL Serverの概要と特徴を解説!2014, 2016の機能比較も紹介
同じマイクロソフトが開発・販売しているWindows Serverと相性がよく、Windowsパソコンとの連携も容易。他のDBMSと違って、管理ツールや開発ツールがほとんどGUIベースなので、管理者や開発者はコマンドを覚えなくて済み、教育コストが抑えられるというメリットがあります。
SQLサーバーで使えるSQLは、T-SQL(Transact-SQL)と呼ばれ、ストアドプロシジャを使わずに手続き型の処理の記述が可能です。以下のようにBEGIN~ENDブロックを使って、バッチ処理的な記述ができます。
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1 BEGIN PRINT 'It is the weekend.' PRINT 'Get some rest!' END ELSE BEGIN PRINT 'It is a weekday.' PRINT 'Get to work!' END 参考)Transact-SQL - Wikipedia
SQLサーバーは、標準にSQL規格に加えて、局所変数(ローカル変数)や文字列操作、日付計算が拡張されています。基本SQLコマンドのUPDATEやDELETEにも独自拡張がされていて、FROM節を指定可能になっています。以下のように、結合を使って他のテーブルを参照しながらの更新や削除が可能です。
DELETE FROM users as u JOIN user_flags as f ON u.id=f.id WHERE f.name = 'Idle'
SQLサーバーの最新版、SQL Server2019では、データの仮想化により事実上、容量無制限のデータをAzureクラスタ環境で扱うことが可能になりました。データの仮想化により、Oracleなどの他社データベースとも連携することが可能になっています。
クラスタ化による恩恵で、高可用性を保って運用することができ、停止が許されないミッションクリティカルなシステムをオンプレミスよりコストを下げて運用することできます。
また、美しいグラフ描画や統計的なデータ操作が可能なR言語や、行列操作が容易なpandasやnumpy、TensorFlowやChainerなど深層学習ライブラリが利用できるPythonが組み込まれ、機械学習の機能が充実してきています。最新版の2019でjava言語にも対応するようになりました。
【関連記事】
▶SQL serverはマイクロソフト社のRDBMS 最新バージョンは2019
SQLサーバーの使い方
SQLサーバーには、4種類のライセンスが用意されています。
- Enterprise:大企業や高度な要求を処理するシステム向け 全ての機能が利用可能な最上位版
- Standard:中小企業・大規模部門向け データ分析機能などが利用出来ない
- Developer:開発用途で利用可能 Enterpriseと同性能だが実運用不可
- Express:個人や小規模商用向け 基本機能のみの提供
【関連記事】
▶SQL Serverのライセンス概要を確認しよう!各エディションの違いとは?
このうち、実運用に使えるのはEnterprise、Standard、Express。なお、DeveloperとExpressライセンスは無償で利用が可能です。ライセンスは、稼働するサーバのハードウェアスペックで決まります。クラウド環境にも対応しています。
小規模ならExpress、中規模ならStandard、大規模システムならEnterpriseと規模に応じたライセンスが用意されているんですね。開発環境やメンテナンス環境では無償のDeveloperライセンスを使えば、別途高額なライセンス費用がかからない点もメリットです。ただし、DeveloperライセンスはEnterpriseライセンスと同等のフル機能が使えますが、待機系のバックアップシステムとして本番環境に使うとライセンス違反になるため注意が必要です。
Developerライセンスは、あくまで開発用やテスト用としての利用が想定された特殊なライセンスになります。
SQLサーバー Expressエディションは無料で商用利用が可能
SQLサーバーのライセンス、Expressエディションは商用目的でも無料で使用できます。無償での配布も可能です。動作するサーバのハードウェアスペックのみが制限されています。
ハードウェア面での制限は以下の通りです。
- 1物理CPUまたは、4コアの小さい方
- メモリは2GBまで
【関連記事】
▶SQL Server Expressは無料で使えるけど、大きなデメリットはないの?
SQLサーバーExpressエディションは、SQLサーバーの基本機能を一通り使えるようになっています。高可用性やデータ分析、バックアップ・リストアなどの自動運用系機能などが制限されていますが、学習用やプロトタイピングにはとても使い勝手が良いんですね。
Expressエディションとは別に、フル機能の評価版ソフトウェアが180日間の期間制限つきで無料で使えます。実運用や商用利用をともなわない評価をする場合には、フル機能の評価版を利用するのがよいでしょう。
参考)Microsoft Evaluation Center で SQL Server 2019 を試す
SQLサーバーの管理ツールSMSS
SQLサーバーには、GUIベースでデータベースの管理が可能なSQL Server Management Studio(SMSS)が用意されていて、無料でダウンロード&利用できます。以下の機能が利用でき、データベース管理者が管理用コマンドを覚える必要がありません。
- テーブル管理(作成、変更、削除)
- データの参照、挿入、更新、削除
- データベースのバックアップと復元
- データベースユーザの管理、テーブルへの権限設定
【関連記事】
▶SQL Server Management Studio(SMSS)の機能 日本語化やデバッグ機能
SMSSを使って、SQLサーバーやAzure SQL Database、Azure Synapse Analyticsのコンポーネントへのアクセス、構成、管理、運営、開発が可能。
オプション設定で、メニューの日本語化が可能です。また、T-SQLのデバッグ機能を備えており、SQLやストアドプロシジャのデバッグが可能。ブレークポイントの設定や、値のウォッチ、ステップインやステップオーバーといった機能が使えるため、システム開発にも役立つ強力なツールになります。
まとめ
- SQLサーバーはWindowsサーバと親和性の高いデータベースサーバ
- 開発用のDeveloperと小規模向けのExpressライセンスが無償で利用できる
- データベースの管理やSQL、ストアドプロシジャのデバッグに使えるツールSMSSが無料