データベース製品と言えば、代表的なものであればOracle DB、Microsoft SQL Server、IBM DB2の3つになります。
現在はオープンソースであるPostgresやMy SQLも非常に認知度が高いです。
そのほかにも、NoSQLという従来のデータベースと異なる志向で扱う必要のあるデータベース製品も存在します。
データベースの知識はデータベースエンジニアや開発業務に携わるのには必須です。
現場や予算によって、導入するデータベース製品は違ってくるので複数のデータベースが扱えるのはエンジニアとして強みになっていきます。
そこで今回はMicrosoft SQL Serverの学習に適している書籍を紹介していきたいと思います。
バージョンはSQL Server 2016になります。
内容を読みましたがかなり初心者向けの書籍になっているので、1年目の新米エンジニアやSQL Serverやデータベースへ挑戦する人にはおススメで、ある程度実務を経験している人であれば、SQLに弱い人には良いかもしれません。
書籍は”SQL Server 2016の教科書 開発編”というタイトルになります。
早速、レビューを書いていきたいと思います。
開発向けには必要十分
インストールの基礎から記載
まず始めに、検証環境が用意できないと自由に勉強が出来ません。
Microsoft製品でも、検証用のライセンス付き製品は複数ありますが、しっかりとそれぞれで使える機能や制約が書いております。
自分の業務ややりたい事に合わせて検証環境を作っていく事が出来ます。
また、インストール画面を一つ一つ解説しているので、机上の学習では一番分かりやすいです。
インストールで間違えると、後々問題が出てきて入れ直しをすると時間ばかりかかります。
私も本書を参考にインストール作業をしてみましたが、30分程度で完了できました。
また、丁寧にSQL Server用のユーザ作成の手順まで記載があります。
なので、Windowsの初心者でも作業が出来ると思います。
書籍ではWindows10 PC上で作業をしています。
パソコンさえあれば検証環境が構築できるので、事前にサーバを用意する事なくインストールをする事が出来ることが分かります。
管理機能については基本的な解説
SQL Serverを扱った事のある人であれば、SQL Server上のデータベースを操作するためにManagement Studioが必要なのが分かりますが、初見だと気づかないかもしれません。
Oracle DBだと基本的にNetCAやDBCAが一緒に入っています。
しかし、SQL Server上ではSql Server Management Studio(SSMS)を別途インストールする必要があります。
インストールするとSQL Server構成マネージャなどの、管理ツールも一緒にインストールされるため入れておきましょう。
もちろん、こららのインストール物に対する解説や見方も載っています。
DBA業務をする場合は、こういったサーバ管理については必要な知識です。
インストール後の基本的なサーバサイドの構成と、データベースの構成について記載されているので、ファイルの配置や管理には必要な知識です。
SQL Serverの実務経験が豊富な人にとっては、不要な知識が多いと思いますが、初心者には為になる知識です。
書籍では、実際にManagement Studioで検証作業を進めていきます。
SQLについては物凄く豊富
データベースの作成やデータの操作についてももちろん手順が記載されているため、書籍通りに手順を実施していけば、検証を進めていけます。
しかし、読んでいて思ったのはSQLのパターンと解説が非常に豊富です。
SQLのリファレンス本のようです。
初心者であれば、SQLという言葉やそれ自体に対して、ピンとこない人もいるかもしれませんが、この本のSQLの記述を網羅したら使いこなせるようになると思います。
基本的なSELECT、INSERT、UPDATEもきちんと記載がありますが、特に集計関数や結合の種類、SQL Serverのシーケンス機能についても記載があるので、開発業務には役立つ基礎知識ばかりです。
具体的な売り上げ集計やクロス集計についても書いてあるので、SQLで実現できる集計方法についても学んでいけるかなと思います。
書籍自体はSQL Serverのタイトルではありますが、他のデータベースでも活きる知識です。
SQLの領域の知識はOracle DBでも使えますし他のデータベースを扱う上でも必要です。
SQLの基礎固めだけでも価値のある一冊かなと思います。
他にもSQLでは副問い合わせなど、様々なテクニックがありますが、まずはSQLの関数でどういった事が出来るかをしっかり学ぶことが大切です。
開発業務で最低限気にすべき項目が記載
開発業務では、単純に設計通りの動きをするプログラムだけではなく、エラーの処理やデータベースでエラーが発生しないような仕組みを作っていく必要があります。
プログラムの記述は間違っていなくてもデータベースでエラーになる事もあります。
この部分に関しては、各データベース製品によって共通している事や、個別の部分があるので、SQL Serverで開発するのであれば、SQL Serverの知識が必要です。
データベースごとに異なる仕様がある場合は、それぞれの確認が必要です。
まだ経験が浅かったり、初心者だとこういった仕様が理解できない事もあると思いますが、基本的なエラーハンドリングやエラーが発生するケースについても記載があるので、検証ですべて上手くイメージだけではなく、基本的なトラブルシューティングの知識も身につくかなと思います。
個人的に思った点
Oracle DBと比較
本書では、適宜Oracleとの機能比較のコメントがあります。
機能の優劣ではなく、違いや似通った機能について書いてあります。
Oracleを扱っている人間にとっては非常に分かりやすいです。
もちろん、Oracle未経験者であっても、Oracleではこういった呼び方、機能なのだと予備知識程度ですが、覚えても悪くはないと思います。
私の場合だと、検証する際にOracleと比較して検証が出来るので非常に助かる知識です。
例えば、Oracleの表領域がSQL Serverでいうデータベースである、という記述も分かりやすくて良いと思います。
開発言語は置き換えられたら良いかも
少しネガティブな点ですが、アプリケーションについてはVisual Basic(以降VB)を使用しています。
基本的に、本業の開発で使わない事はないですが、機会は他の言語と比べても少ないです。
SQL Serverへの接続プログラムなど、簡単な例が載っていますが、実業務を想定すならC#などの言語を使えれば良いかなと思いました。
ただし、初心者の人であればVBで動きを見てみるのはアリだと思います。
理由は、そもそもプログラムがどういった動きをするのか理解する事は大切だからです。
アプリケーションの記述だけ見ても、動きに関しては想像でしかないので、やってみるというのは大事です。
書籍はこちら
2020年10月31日追記
SQL Server 2017からは従来のSQL Serverからかなり機能が拡張されており、Linuxへのインストールも可能ですが機能に制約があり、アプリケーションによってはサポートされずSQL Server 2016を採用するケースが多いです。
AzureのSQL Server に関してもバックグラウンドの技術は本参考書の技術を用いているので、クラウド環境に移行する場合も仕様の理解に繋がる内容かと思っております。
最後に
書籍レビューをしてきましたが、SQLの記述に関しては本当に豊富です。
開発編と記載がある通り、開発の人にとってはSQLのバリエーションが増えるのではないでしょうか。
一部、Oralceとは違う関数などがあり、SQL Serverとの違いが結構分かりました。
また、本書籍はSQL Server 2016向けになっています。
最新は2017年10月リリースのSQL Server 2017です。
本書籍もそうですが、2014や2012の過去バージョンにも対応しているので、最新バージョンを扱う上でも活きる知識かなと思います。
DBA側の書籍も出てくれたら嬉しいですね!