SQL Serverといったとき、おそらく多くの人が思い浮かべるのはリレーショナル データベースというキーワードではないでしょうか?それは間違いではありませんが、実はSQL Serverというプロダクトを正しく表現したものではないのです。なぜなら、SQL Serverは非常に多面的な顔を持ったプロダクトであり、リレーショナル データベースはSQL Serverが持つ複数の顔のたった一つにすぎないからなのです。
ではなぜ、SQL Serverがそんな複数の側面を持つに至ったかを説明する為にも、ここでSQL Serverの歴史を簡単に振り返っておきましょう。
SQL Serverの歴史
マイクロソフトのSQL Serverの歴史は、マイクロソフト自身がエンタープライズ領域のデータベースの必要性を感じAshton-Tate社とSybase社との共同開発に参画したところから始まっています。我々はこの時期を第一世代と位置付けていますが、中身はほとんどSybase社のコードでした。
そんな経緯を経て誕生したSQL Serverは、SQL Server 7.0というバージョンで大きな変貌を遂げます。SQL Server 7.0を開発しリリースする為に、マイクロソフトは当時の著名な研究者やアーキテクトを招き、彼らを中心にマイクロソフトの理想とするデータベース像を一から定義し、それに基づいてコードの95%以上を書き換えました。そしてこれが今日のSQL Serverの根本になっているのです。
リレーショナル データベースは乱暴な言い方をしてしまえば、データを入れる為の器に過ぎないと言えるでしょう。もちろん、その器は中に入っているデータを高速に出し入れできて、かつ堅牢であるべしというような要件を兼ね備える必要はありますが。でも、「使う人にとって究極的に大事なことってそこじゃないよね?」と彼らは考えたわけです。
例えるなら、ある器の中に美味しそうな具が沢山入ったシチューがあったとします。言うまでもなくシチューをデータに見立てての話ですが、そのシチューが入っている器こそがデータベースというミドルウェアです。その器はどこかに穴があいていたり欠けていたりと危ない部分があっては困りますし、食事を取るのに持ちやすい形である必要はありますが、しょせんは器です。「いやいや、器の見た目だって料理を引き立てる重要な要素でしょ。」という意見もあるかもしれません。もちろん、その通りです。しかし、どんなに立派な器だって中に入ったシチューという料理自身が最も重要であることには変わりがありませんし、その料理を食べにくくしてしまうような器では本末転倒だと言うことです。更に、その器の中に入っているシチューを美味しく頂くためには、スプーンやフォーク、場合によってはナイフや箸といったような食器も必要になってきます。これらがあって初めて、器の中に入っているシチューを快適に美味しく頂くことができるというわけです。
今から20年以上前にSQL Serverをリアーキテクトした開発者達は、データベースの中に収まっているデータこそがユーザーにとって最も重要なものであり、ストレージコストばかりかかる宝の持ち腐れデータとして終わらせるのではなく、ユーザーにとって価値ある情報(インテリジェンス)に変えて提供するという部分まで考える必要があると考えたのです。ですから、SQL Server 7.0には当時から既に多次元データベース(OLAP)やETLと言われるビジネス インテリジェンス領域の機能も製品の中に包含されていました。つまり、これが上述のスプーンやフォークといった食器にあたります。その後、ビジネス アナリティクス分野も含めて数え上げるときりがないほどの追加や拡張は行われているものの、データが全ての中心にあり、これを最大限利活用する為のデータ プラットフォーム、という製品コンセプトは、この20数年の間何一つ変わることなく今に至っています。
さてここまでマイクロソフトのデータプラットフォーム戦略の中核となるSQL Serverについて話をしてきましたが、SQL Server自身およびそれを取り巻く周囲の関係要素は今日非常に多岐に渡ります。SQL Server自身が持つ、あるいはOffice製品やクラウドサービスと連携したビジネス インテリジェンス/アナリティクス要素。IoTに端を発したビッグデータ分析基盤要素などなど。また近年では、SQL Serverはオンプレミスの製品としてだけでなく、マイクロソフトが提供するパブリッククラウドのAzure上にPaaSのサービスとして展開されたAzure SQL DatabaseやAzure SQL Data Warehouseという形でも存在し、これらのコードは基本部分が統一されているのでアプリケーションのポータビリティも高く、Azure ML(機械学習)のような先進的なAzureのサービス群と組み合わせることであらゆるニーズに適応可能なデータ プラットフォームになってきています。