MySQLはリレーショナルデータベースを管理するデータベース管理システム(DBMS)であるということは以前の記事で取り上げました。リレーショナルデータベースは、SQLを使用することで、データベースに対して命令を出して、必要なデータを格納したり、格納したデータを取り出したりすることができます。本記事ではこの辺りのことを、簡単に復習し、SQLの本質に触れていくことにしましょう。
RDBMSのシステム構成
リレーショナルデータベース管理システム(RDBMS)を利用する際のシステム構成は、クライアント/サーバー型と呼ばれる形態が一般的です。
サーバーとは、他のプログラムからの要求を受け取り、それに応じて処理を行うタイプのプログラム(ソフトウェア)、あるいはそのプログラムがインストールされたコンピュータのことです。サーバーはそのコンピュータ上で常に動作しており、要求が届くのを待ちます。RDBMSもサーバーの一種で、ハードディスクなどに保存されているデータベースからデータを取り出して返したり、指示された内容でデータを書き換えたりします。
一方、サーバーに要求を出すプログラム(ソフトウェア)、あるいはそのプログラムがインストールされたコンピュータをクライアントと呼びます。RDBMSが管理しているデータベースにアクセスして、そのデータを読み書きするプログラムは、RDBMSのクライアントです。RDBMSのクライアントは、サーバーであるRDBMSにどんなデータを送って欲しいのか、どこのデータをどのように書き換えてほしいのかをSQLで書いた文(SQL文)を送信します。RDBMSはその文の内容に従って、要求されたデータを返信したり、データベースに保存されているデータを書き換えたりします。
このように、リレーショナルデータベースの読み書きは、SQL文を使って行います。つまり、MySQLを扱うためにはSQLを学習する必要があるわけです。
テーブルの構造
リレーショナルデータベースは列と行からなる2次元表の形式でデータを管理します。Excelの表と同じ構造であり、イメージしやすいと思います。
このデータを管理している2次元表のことを、リレーショナルデータベースでは「テーブル」、あるいはそのまま「表」と呼びます。
テーブルは、RDBMSが管理するデータベースの中に保存され、1つのデータベースの中には、複数のテーブルを保存できます。
SQL文の内容に従ってクライアントに返信されるデータも、必ずテーブルと同じように2次元表の形になります。これもリレーショナルデータベースの特徴の1つで、結果が2次元表にならないSQL分は実行できません。
テーブルの列(縦)はカラムとも呼び、テーブルに保管するデータ項目を表します。一方、テーブルの行(横)はレコードとも呼び、1件のデータに相当します。リレーショナルデータベースは、必ず行単位でデータを読み書きします。
さて、ここまでがSQLについての概要であり、次の記事からSQLについて学んでいくわけですが、正直、SQLはあまりおもしろいものとは言えず、普通に学習を進めていくと途中であきてしまうかもしれません。そこで本サイトでは、少し工夫しています。
MySQLにはSQLの教科書にあるようなテーブルとは違い、とてもおもしろいサンプルデータベースが同梱されています。そのサンプルデータベースを使って、まずはSQLについて楽しく触れていきましょう。
