みなさん、こんにちは!
富士通ラーニングメディアの今井です。
今回は、私の担当しているデータベース製品であるSQL Server についてお話ししたいと思います。
SQL Serverについては、名前だけは聞いたことがある方も多いのではないでしょうか。Windows OSでおなじみのMicrosoft社が提供しているデータベース管理製品の1つです。
有償のデータベース製品としては、Oracleデータベースと熾烈なシェア争いをしている製品でもあります。
SQL Serverとはどういった製品なのかをご紹介するとともに、最新版はすごい!と、いま注目されているSQL Server 2014の特徴などもご紹介していきます。
SQL Server は1990年にリリースされたMicrosoft社製のリレーショナルデータベース製品です。
個人事業者などの小規模環境から、金融系などの大規模環境まで幅広く採用されており、現在は、SQL Server 2014が最新版となっています。
SQL Serverの特徴は、機能面や性能面はもちろんですが、使いやすく導入しやすいのが特徴です。
例えば、SQL Serverには、GUIの管理ツール群がありますが、Windowsのエクスプローラーのように、簡単に使えるのが特徴です。このツールにより、細かなコマンドなどを知らない方でもデータベースの構築から管理が簡単にできるようになっています。
初期のSQL Serverは、機能や性能面から中小規模環境での採用が多かったため、「小規模向け」という印象が先行した時期もありました。ですが、SQL Server 2005のころから機能や性能面において他社製品と引けを取らないものに進化し、大規模オンラインショッピング系サイトや金融系システムなど高い性能と信頼性を必要とする環境においても採用が進んでいます。
上記にもあるように、SQL Serverの導入事例には様々なものがあります。ですが、SQL Serverに限らず、最近のデータベース製品は性能面や機能面においての差が小さくなっています。そのため、最終的にお客様が実現したいことを考えた場合、特定の製品に依存しなくてもよいケースがほとんどです。
では、なぜ多くのお客様がSQL Serverを選択したのでしょうか。様々な事例を読んでいくと、以下の3点を挙げているお客様が多くいらっしゃいます。
最近は、お客様もインターネットを通じて様々な情報を入手しており、自分たちが採用している製品が「実は割高では?」「もっと簡単にできるのでは?」と思うことが増えてきているようです。
SQL Serverは有償製品ですが、エディションごとに提供されている機能は、追加費用なしで利用できます。他社の製品の場合、様々な機能が有償のオプションとなるため、同等の機能や構成にした場合、割高になってしまうことがあるようです。
どんなに安くても必要なパフォーマンスが発揮できなければ意味がありません。SQL Serverでは、後程ご紹介する「インメモリ機能」をはじめ性能を高めるための工夫や配慮が多くなされています。また、ハードウェアメーカーと共同で超高速処理を実現するサーバー製品である「SQL Server SSD Appliance」を展開するなど、性能面においても十二分な対応が図られています。
データベース製品には、オープンソースをはじめとした無償製品もありますが、問題があった時に相談に乗ってくれる技術者がいるかというとそうとは限りません。また、OS部分とデータベース部分でサポート対応が分かれてしまうなど、場合によっては"たらい回し"に合うことも考えられます。
SQL Serverを採用することで、ベースのOSであるWindowsからSQL ServerまでトータルでMicrosoftのサポートを受けることができます。また、Windows Updateを通じて、修正プログラムなども無償提供されます。これは、一見すると「当たり前では?」と思うかもしれませんが、他社製品の場合、サポート費用を支払わないと修正プログラムが提供されないといった場合もあるようです。
詳細については、以下のURLをご覧いただければと思います。
現在、最新版のSQL Server 2014では、様々な機能強化が図られています。その中でも、特徴的な2点をご紹介します。
SQL Server 2014といえば「インメモリ機能への対応」とあげる方が多いと思います。それだけインパクトの大きい機能でもあります。 これは一言でいうと「メモリ上にデータを常駐させ高速化しよう!」というテクノロジーです。
通常のデータベースの処理では、必要に応じてハードディスクからデータを取り出し、メモリ(バッファプール上)に展開してから処理を行っていました。ただ、命令が増えると、ハードディスクへのアクセスが殺到して、データの取り出しに時間がかかってしまいます。この場合は、ハードディスクの性能向上策などを講じる必要がありました。
インメモリ機能では、SQL Serverが確保しているメモリ上にテーブルを常駐させます。これを「メモリ最適化テーブル」と呼びます。メモリ最適化テーブルは、ハードディスクからのデータの取り出しが不要なため、取り出すための待ち時間が発生しません。また、更新している最中でもデータの参照が可能なため、同時アクセスに強いのも特徴です。
また、インメモリ機能と合わせて、「ネイティブコンパイルストアドプロシージャー」も実装されました。これは、メモリ最適化テーブルでの利用を想定したストアドプロシージャーです。
通常のSQL文によるクエリは、実行時にコンパイルしマシン語に変換したのちに実行されます。ネイティブコンパイルストアドプロシージャーでは、マシン語に変換した状態のストアドプロシージャーをメモリに読み込ませておくため、従来のクエリよりも素早く実行できるのが特徴です。
なお、メモリ最適化テーブルは、ネイティブコンパイルストアドプロシージャーを使わなくても、従来のクエリをそのまま使い利用することも可能です。そのため、アプリケーション側の変更を行わなくても、高速化できるのも特徴です。
Microsoft社が提供するクラウドサービスである、Microsoft Azure上との連携がさらに密になりました。
これにより、障害や災害などを想定したデータベースの多重化がより手軽にできるようになりました。
たとえば、SQL Server 2012には、Always ONとよばれるサーバーの多重化機能があります。これまでは、物理環境のSQL Serverのみで構成していましたが、SQL Server 2014では、Azure上のSQL Serverも含めて多重化することができます。そのため、物理環境のSQL Serverの問題が生じたとしても、Azure上のSQL Serverでサービスを継続できるわけです。
また、SQL Serverのデータベースを構成するファイル群やバックアップをAzureのクラウドストレージ上に配置することもできるようになりました。これにより、SQL Serverの再インストールが必要な場合でも、クラウドストレージ上のファイル群を用いるだけで、簡単にデータベースを復旧することができます。
このような形で、Azureと連携することで、物理環境のSQL Serverに万が一障害が起こった場合でも、Azure上のデータを用いて、 素早くサービスを再開することが可能です。
SQL Serverを学習するには、まずは環境を用意することが大事です。無償版のSQL Serverもありますが、機能が限定されているので製品学習には限界があります。そのため、有償にはなりますが「SQL Server 2014 Developer」を購入してみてはいかがでしょうか。
Developerは、SQL Server 2014の最上位エディション「Enterprise」と同等の機能を持ちながらも用途を「開発」や「検証」に限定し5000円~7000円と安価に提供されているエディションです。そのため、資格対策をはじめとした自己学習や本格的な検証作業を必要とする際にお勧めです。
また、学習に際しては、書籍等を参考することが多いですが、現段階でSQL Server 2014の書籍があまり多くありません。そのため、まずはSQL Server 2012の書籍で学習してみるのも1つの手です。
実は基本的な部分は、SQL Server 2012もSQL Server 2014も大きな違いはありません。そのため、初期段階の学習においては、SQL Server 2012の書籍でも十分に活用できると思います。
「ひと目でわかる SQL Server 2012 (TechNet ITプロシリーズ)」
出版社:日経BP社
著者:沖要知
ISBN-10:4822294765
ISBN-13:978-4822294762
「TECHNICAL MASTER よくわかるSQL Server 2012 データベース構築・管理入門編」
出版社:秀和システム
著者:長岡秀明
ISBN-10:4798034754
ISBN-13:978-4798034751
ここからは少し一般的な話ですが、これからデータベースを学習する方には参考になるかと思います。
データベースをこれから学びたいといった場合、データベースを操作するための「SQL文」の文法を学習するというのも視野に入れると思います。
ただ、いきなりSQLの文法から始めてしまうと、データベースを使っているのかロジックを作っているのかよくわからなくなってしまいます。そしてあまり身につかないという状況に陥りがちです。
個人的にお勧めなのは、まず「データベースというものを明確にイメージできるようになる」ことを目標にしてはどうでしょうか。SQLの文法を勉強するのはそれからでも遅くありません。
そのためには、まずは何でもいいのでデータベース製品を触ってみるという事が非常に重要です。それからSQLの文法を勉強するほうが、実際のデータベースやテーブルをイメージしつつ学習できるため定着度が高く、「データベースを操作している!」という実感もわきやすいと思います。結果モチベーション維持にもつながります。
そこでお勧めしたいのは、やはりSQL Serverです。SQL Serverで利用するManagement Studioという管理ツールは、自己学習にもピッタリです。なぜかというと、
など、学習にも効果を発揮する機能が多く搭載されています。
無償版SQL Server 「SQL Server 2014 Express」ダウンロードサイト
(インストール方法も上記Webサイト上に記載されています)
ご参考ください!
最後に、私たち講師がご提供しているコースたちをご紹介します。
実機を使って演習をしたい! 講師によるアドバイスも受けたい!という方には講習会をおすすめします。
受講者の皆さまとお会いできる日を楽しみにしております。
Microsoftサーバープラットフォーム(WindowsやSQL Server、Hyper-V、Lync等)の研修を担当しています。現在は、Windows Phoneの日本発売を心待ちにしつつも、開発系にも手を伸ばそうとしています。
家族そろってディズニーが大好き。東京ディズニーリゾートの年間パスポートを最大限に活用し、週末は妻と二人の娘とともにディズニーランドかディズニーシーにその日の気分で出没しています。
(2014/11/13)