本書について SQLって何だろう? どのように学ぶ?
本書は、SQLが「どのようなものなのか」「どんなことができるのか」「なぜ、このようになっているのか」を案内する本です。SQLの入門書であるとともに、データベース設計の入門書として書かれているのが特徴です。SQLで扱うデータはどうしてこのような形になっているのか、どういう形になっているべきなのか、の解説にとくに力を注いでいます。
巷にあふれる膨大な事柄を、情報として役立て、活用していくにはどのようにしたらよいでしょうか。一つの解がデータベース(Database, DB)です。とくに、ビジネスとデータベースは互いに密接な関係で成り立っています。そして、ビジネスの規模やデータベースの用途に合わせてさまざまなデータベース管理システム(Database Management System, DBMS)が開発されています。
「データベース」には、管理方法や得意分野によって、さまざまな種類があります。その一つであるリレーショナルデータベース(Relational Database, RDB)は、データを2次元の表の形で管理するデータベースで、個人のPC(Personal Computer)で使えるものから、大規模なものまで幅広い分野で利用されています。
そして、RDBを操作するための言語が本書のテーマである「SQL」です。RDBを活用していく上で、欠かせない言語です。
RDBを管理するためのデータベースシステムにもまたさまざまな種類がありますが、SQLは共通して使える言語です。ただ、DBMSによって若干の違いがあります。本書は「標準SQL」と呼ばれる、国際規格をベースに解説していますa。
本書は「SQLの入門書」にしてはデータベースの設計に多くの紙面を割いています。もちろん、SELECT文(必要なデータを取り出すための文)についても力を注いで解説しています。SQLでデータをどんな風に取り出せるか知っていること、そしてデータベース設計を知っていること、これが両輪です。
データベースを設計するにはいろいろなことを考える必要があります。そもそも何をデータとして管理したいのか、どういう形で管理するのか、登録したデータを書き換えることがあるのか、蓄積していくだけなのか、それにはどんなシステムがふさわしいのか ── そういったことを考えて、「ではRDBで」と決めたら、RDBで管理できる形に落とし込んでいく、本書で扱っている「データベース設計」は、この「RDBで管理できる形」のあたりです。すなわち、SQLはどんな形のデータを管理し操作するための言語なのか、という内容です。
解説にあたっては、SQLやデータベースの専門的な解説を読むためのヒント、きっかけとなるような説明を心がけました。
SQLやデータベースについて詳しく知りたいと思うとき、書籍、Webや雑誌の記事などを参照することが多いでしょう。このとき、しばしば起こるのが「解説で使われている用語をまだ知らない」「前提となる知識が多過ぎる」という問題です。SQLの解説を見たら、データの構造やデータベースの設計については知っている(あるいは誰かが面倒見てくれている)とみなされていた。データベースの設計について調べたら、SQLは当然知っているものとして話が進められていた。どちらも心当たりのある話ではないでしょうか。
そこで、本書では、SQLとデータベース設計、およびそれらを支える理論について、すべて知らないところからスタートできるように解説を行いました。このため、SQLの基礎、データベース設計、改めてSQL詳細、という少々変わった構成になっています。
データベース設計の解説は、外国語の学習書で喩えるなら、その言語が使われている文化や社会的な背景の解説にあたるかもしれません。したがって、「SELECT文の書き方をさくっと知りたいのだ」という方には少々煩わしい場合もあるでしょう。その場合は、第2章のあと、データベース設計の章(第3章〜第5章)はいったん飛ばして第6章に進んでいただくのがお勧めです。
一方で、すでにSQLを使ったことがあるけれど、どうも便利だという実感が持てない、なんだか複雑だ、思ったように操作できない、そのように感じている方は、RDB用のデータベース設計を知ってみてください。なぜこうなっているのかがわかれば、スマートに、効率良くデータベースを利用できるようになるはずです。いま使っているシステムの改善に役立つかもしれません。
なお、本書は、必ずしも手を動かしながら読む必要はありません。実行結果も掲載していますので、「こんなことができるのだな」と思い描きながら読み進めることができます。自分の手で試してみたい方は本書で使用しているデータをダウンロードできるのでぜひお試しください。たとえ書いてあることをそのまま実行するだけでも、言語は実際に試すのが一番です。
本書が、RDBのより効果的な活用につながることを、あるいは、学習の助けになることを願っています。
特別収録「標準SQL&DB設計Quickリファレンス」(配布版)
特別収録「標準SQL&DB設計Quickリファレンス」(配布版)は、以下よりダウンロード可能です。