Microsoft SQL Server Expressとはどんなデータベース?
はじめに
データベースは、いまやWebサイト、ECサイトといったWebシステムや、業務システム、アプリ、ゲームと様々なシステムで欠かせない仕組みです。データベースを使っていないシステムを探す方が難しいのではないでしょうか。また、データベースにはいくつか種類がありそれぞれ特徴が異なるので、初めてデータベースを使ったシステムを構築する際はどのデータベースを使って良いか迷うことでしょう。今回はそんなデータベースのうちの一つでMicrosoftが提供しているMicrosoft SQL Serverの概要を紹介した上で、無償で利用できる「Express」エディションについて詳しく紹介していきます。これからデータベース運用に関わるエンジニアの方、自分で構築しているシステムに導入するデータベースに迷っている方、Microsoft SQL Serverの仕組みについて知りたいと思っていた方、試しにデータベースを利用したいと思っていた方はぜひご覧ください。
データベース全般について
Microsoft SQL Server Expressを使ってこれからデータベースの学習を始めようとしてこの記事にたどり着いた方もいることでしょう。そんな方に向けて、簡単にデータベースがどういったものであるか紹介します。データベースとは、様々な情報が集められた箱のようなものです。実態がないのでイメージしづらいですが、データベースの概念は何もコンピュータ上だけのものではなく、紙のアドレス帳や名簿等もデータベースの一つと考えてもらって差し支えありません。例えば、Excelに表を作成してそこで社員番号、名前、住所、電話番号等を管理する場合も、それはデータベースになります。
しかし、今回紹介するデータベースは主に「データベース管理システム(DBMS)」のことであり、このシステムを利用することで、データを整理し、参照したい時に適切なデータに素早く簡単にアクセスできるようになります。身近な例で言うと、ショッピングサイトや宿泊サイト、動画や音楽の配信サービスでデータベースが使われています。これらのサイトでカテゴリや発売時期、価格、日付等で条件を絞り込んで、必要な情報のみ表示させたことがあることでしょう。この操作では、絞り込まれた条件に一致した情報のみをデータベース内から抽出し、プログラムでそのデータを受け取り、サイト上で表示させるという挙動が内部で行われています。
データベースの様々なモデル
以上のように普段利用しているサービスでも大いに役立っているデータベースですが、データの管理方法は一つのみではなく、様々なモデルが存在しています。有名なものでは「階層型データベース」「ネットワーク型データベース」「リレーショナルデータベース(以下、RDBとします)」「NoSQL」の4つが挙げられ、2022年時点では特にRDB、NoSQLの2つが様々なシステムで採用されています。なお、RDBは、まさにExcelで表現が可能な列と行で構成される表に該当します。RDBの場合、表は「テーブル」列は「カラム(または属性)」、行は「レコード(またはタプル)」と呼びます。
今回取り上げるMicrosoft SQL ServerはRDBの一つであり、RDBを管理するシステムであるRDBMS(RDB Management System)の一つにもなります。その他の有名なRDBMSとしては、Oracle Database、PostgreSQL、MySQLがあります。Microsoft SQL ServerとOracle Databaseは基本的に有償のサービスですが、PostgreSQL、MySQLは無償で利用できるため、低コストですぐに開発を進めたいベンチャー企業やスタートアップ企業のシステムで広く使われる傾向にあります。なお、基本的に有償であるMicrosoft SQL Serverですが、今回紹介する「Express」というエディションに関しては無償での利用が可能です。
また近年は、柔軟性、スケーラビリティに優れ、高機能であるNo SQLに分類されるデータベースも徐々に利用されるようになっています。No SQLに該当するデータベースとしては、MongoDB、BigTable、Neo4j等があります。
SQLについて
ここまでで「SQL」という名称が多く出てくることに気づいた方もいることでしょう。この「SQL」とは「Structured Query Language」の略であり、RDBの操作を行う専用の言語のことを指します。RDBは基本的にSQL文をコマンドとして入力し、実行することでデータの追加や削除、更新等が可能となります。中にはデータベースをGUI(Graphical User Interface)で視覚的にマウス操作できるソフトもありますが、それらのソフトでも結果的には画面操作を通してSQL文が実行されています。また、「No SQL」は字面の通りSQLを使わないということではなく、「Not Only SQL」を意味しており、SQLだけではなくその他の手法も使用して管理することを意味します。2022年時点では、前述した階層型データベース、ネットワーク型データベースでもなくRDBMSにも該当しないデータベースシステムを全てNo SQLに分類しているため、その他のデータベースという程度で頭に入れておいても問題ありません。
SQL Serverの概要
SQL Serverは、Microsoftの提供するデータベースシステムのサービス名で、SQL Server 2005から継続して最新版がリリースされ続けています。この記事は2022年11月下旬に執筆していますが、現時点での最新版は「SQL Server 2022」となっています。なお、SQL Serverのバージョンごとにインストールが可能なWindows Serverのバージョンはあらかじめ決まっているため、Windows Serverのバージョンに応じたSQL Serverを選択して使用する必要があります。
また、SQL Server 2022はオンプレミスサーバーだけではなくクラウドサービスの「Microsoft Azure」との親和性も高くなっており、クラウド環境に移行しなくても「Azure」へのアクセスを可能にする等、オンプレミスとAzureの同期を可能としています。そのため、今後クラウドへのサービス移行が発生したとしても比較的容易に行えるように進化したと言えます。その他、システム要件は一つ前のバージョンである「2019」と変わらないものの、全体的にパフォーマンス面で改善が加えられている状況です。
前述したように、基本的にデータベースの操作はSQL文で行う必要がありますが、GUIで操作可能なWindowsと同様、SQL ServerもGUI上でのマウス操作が可能な点はメリットの一つと言えます。さらにSQL Serverでは、SQLを独自に拡張して高機能となった言語「Transact-SQL」が利用できるという点もメリットです。SQL自体はプログラミング言語とは言えませんが、Transact-SQLに関しては、変数の利用や条件分岐、繰り返しといったプログラミング言語さながらの記述も可能となっています。
そしてもう一つのメリットは、複数エディションが提供されているという点です。 SQL Serverには、Enterprise、Standard、Web、Developer、Expressという5つのエディションがあり、これはSQL Server 2022にも継承されています。このうち今回取り上げるExpressとDeveloperという2つのエディションは無償となっています。なお、記事の執筆時点ではMicrosoft Evaluation Centerのサイト内に、180日間無料で試すことが可能な評価版が提供されていました。またExpress、Developerに限っては日本語のサイトがないものの、英語のサイトからインストールは可能なのでご安心ください。
各エディションの違いについて
Enterpriseは、大規模なデータベースシステムを構築するのに適したエディションです。物理的なCPUだけではなく、仮想的なCPUの割り当ても可能です。Standardは、Enterpriseより小規模なデータベースシステムの構築に適したエディションです。こちらも仮想的なCPUの割り当てが可能ですが、メモリ容量に上限が設けられています。最小限の ITリソースでデータベースが効果的に管理できるというエディションとも言えます。
続いてWebですが、こちらはWebサイトと連携した大小様々なシステムでの利用のみ可能な限定的なエディションとなっています。また、データ転送や分析といった機能もない分、コストを削減した利用が可能です。Developerはシステムを運用する上では利用できないエディションとなりますが、機能自体はEnterpriseと同等です。ライセンスも開発やテストでの利用に対して付与されます。そのため、開発・テスト時や学習をする際に利用することとなる無償のエディションとなります。そしてExpressですが、こちらは今回のメインとなるため次の項目で詳しく紹介します.
Microsoft SQL Server Expressとは?
Expressは無償で利用できるライセンスが不要なエディションです。様々な制限がありますがDeveloperとは異なってシステムを運用する際の利用も可能なので、小規模システムを運用する際はSQL Serverの勉強を開始する際に試しに利用するのには適したエディションと言えます。
有償サービスと違う点
有償サービスと比べ制限が多いのがExpressなので、具体的にどのような制限があるのかを紹介します。
1つ目はデータベースの容量に関する制限で、1データベースあたり10GBまで利用可能となっています。有償プランにも一応上限はありますが、524PB(ペタバイト)という非常に大容量な状態なのであまり上限を意識することはありません。なお、Expressの場合の上限もあくまで1データベースにおける上限なので、複数データベースに分散して利用する場合は10GB以上利用できることとなります。またスペックに関して、物理メモリ(RAM)容量1GBまで、CPUは1CPUにつき4コアまでという制限もあります。処理スピードも有償版に比べると遅いと言う評価もありますが、小規模システムでの利用であればデータベースの容量含めたスペックは十分である可能性が高いです。
2つ目は「メンテナンスプラン」が利用できないという制限です。メンテナンスプランは、データベースの定期的なバックアップや日時を指定してのSQL実行が可能なサービスです。Expressでこれらが行えないわけではないですが、管理者自身がSQL文で作成し、バッチファイルの作成やWindowsのスケジューラ機能への設定をする必要が出てきます。
3つ目は、データベースメールの機能が利用できないという制限です。データベースメールは、データベースのデータ状況が特定の条件となった際にメールで通知する機能なので、システム稼働後に管理する際は便利な機能です。その他の細かい違いはエディションごとに異なる内容となるため省略します。
有償版への移行は可能?
Expressを利用している中で物足りなく感じること、不便に感じる点が出てくることもあることでしょう。そういった場合に、Expressから有償版へ移行することが可能です。移行ができると言っても、アンインストールやデータ移行作業等、それなりの作業時間が必要になるのではと懸念されるかもしれませんが、SQL Serverの「インストールセンター」というツールを利用することで簡単に実施できます。インストールセンターを起動したら、メンテナンス>エディションのアップグレードをクリックします。「プロダクトキーを入力する」という欄が表示されるので、そちらに有償版を購入した際に入手したプロダクトキーを入れ、画面に沿って「次へ」で進んでいくだけで完了となります。
SQL Server Expressのインストール方法
最後に、Expressの基本的なインストールの流れについて紹介しておきます。なお、今回はSQL Server 2019 Expressを例として紹介する旨、あらかじめご了承ください。
はじめにMicrosoftのサイトからSQL Serverをダウンロードします。「SQL Server ダウンロード」等で検索して出てきたページからアクセスしてみてください。上部に有償版、下部に無償版のDeveloper、Expressが表示されているので、Express側の「今すぐダウンロードする」をクリックするとすぐにダウンロードが開始されます。ダウンロードが完了したらファイルを実行し、「メディアのダウンロード」をクリックしてください。なお、途中で「次のプログラムにこのコンピュータへの変更を許可しますか」と表示された場合は「はい」をクリックしてください。
次に「Express Advanced」をチェックし、その他は任意で変更して「ダウンロード」をクリックし、「ダウンロードに成功しました」と表示されるまで待ちましょう。メッセージが表示されたら下部の「フォルダを開く」をクリックします。「SQLEXPRADV_x64_JPN」をダブルクリックしてファイルの設置先を任意で指定し、「OK」をクリックします。
しばらくすると「SQL Server インストールセンター」が表示されるので、一番上の「SQL Serverの新規スタンドアロン インストールを実行するか、既存のインストールに機能を追加」を選択してください。ライセンス条項が表示されるので同意にチェックを入れて「次へ」をクリックします。さらに「Microsoft Update を使用して更新プログラムを確認する」にチェックを入れて「次へ」をクリックします。
「インストール ルール」の画面でもそのまま「次へ」をクリックし、「機能の選択」画面に進みます。こちらでは「インスタンス機能」内の「データベース エンジン サービス」と「検索のためのフルテキスト抽出とセマンティック抽出」にチェックを入れて「次へ」をクリックします。「インスタンスの構成」画面では「既定のインスタンス」を選択して「次へ」で進んでください。「サーバーの構成」画面はそのまま「次へ」で進みます。
「データベース エンジンの構成」という画面が表示されるので、「サーバー構成」のタブにある「混合モード(SQL Server 認証と Windows 認証)」にチェックを入れ、任意のパスワードを2度入力し、「次へ」をクリックしてください。このパスワードは後に必要となるので覚えておきましょう。そのままインストールが完了するまで待ち、「完了」画面が表示されたら正常にインストールが完了していることを確認して「閉じる」をクリックして完了となります。インストール作業が完了したら、Windowsのスタートボタン等から「Microsoft SQL Server 2019」を起動し、データベースの作成を試してみましょう。
なお、Expressをアンインストールしたくなった場合は、Windowsのコントロールパネル内「プログラム>プログラムと機能」にてSQL Server Expressを選択して「アンインストール(もしくは、アンインストール/変更)」をクリックし、画面に沿って進めるだけなので、特に難しいことはありません。
まとめ
Microsoft SQL ServerはMicrosoftの提供するサービスなので、WindowsOSのシステムで利用することがほとんどとなります。また、近年多くの企業で導入が進んでいるクラウドサービスでの利用も可能なデータベースです。そのため、オンプレミス 、クラウドにかかわらずWindowsOSに触れる機会の多いエンジニアは、ぜひ有償版と大差のない無償版の「Express」をインストールし、Microsoft SQL Serverの使い方をマスターしておくことをおすすめします。