SQLって何でしょう?

SQLって何のことなのでしょうか? 漠然とデータベースの何かだということは分かるのですが,いまいち何のことか分かりません。教えてください。


SQLというのは,データベースに問い合わせ(クエリーといいます)を発行するための言語のようなもので,Structured Query Languageの略です。SQLの歴史は古く,元祖はIBMが,’74年に開発しました。SQLが生まれた背景には,リレーショナルデータベースの存在があります。
 リレーショナルデータベースとは,あるデータベースと別のデータベースを関連付けて一つの大きなデータベースとして操作できるような仕掛けのことです。言葉で説明するのは少し難しいのですが,例えば部品の在庫を管理するデータベースAがあるとします。そして,製品に使用されている部品を管理しているデータベースBがあるとします。リレーショナルデータベースでは,例えば部品番号や部品名で二つのデータベースAとBを関連付け,ある製品に使われる部品の在庫数といったことを調べることができます。
 なんだ当たり前じゃないか,と思うかもしれませんが,複数のデータベースを自由に組み合わせて一つのデータベースのように扱えるリレーショナルデータベースは使いようによっては強力なツールになります。しかし,複数のデータベースを関連付けるなど,複雑な操作が必要で,それを効率よく行うために開発されたのがSQLという言語だったのです。
 言語というと難しそうですが,’74年に作られただけに基本的なSQLを使ったクエリーは,そう難しいものではありません。例えば,今,部品のデータベースが使用可能な状態になっているとして,次のようなSQLを発行すると部品番号10のパーツの情報だけを取り出すことができます。

SELECT * FROM TABLE_A WHERE PARTS_NO=10

 SQLも,データベースの種類によって,さまざまな方言があります。上記のような単純なSELECT文なら,ほとんどのデータベースで共通に利用できますが,例えばORACLEならORACLE独自の,PostgresSQLならPostgresSQL独自のSQL文法が追加されており,それを利用すると,さらに高度なデータベース参照ができるようになります。
 商用のリレーショナルデータベースは強力な機能を誇りますが,相当に高価で,アマチュアが手を出すには勇気がいります。SQLを手軽に体験したいのなら,先に例をあげたPostgresSQLに代表されるフリーのデータベースを使ってみるといいでしょう。
 PostgresSQLはもともと研究機関の教材用に開発されたリレーショナルデータベースエンジンですが,現在はフリーの開発プロジェクト(http://www.postgresql.org)の手に移り,メンテナンスが続けられています。
 PostgresSQLは,ほとんどのLinuxディストリビューションに標準で収録されていますし,日本でのフリーサポート活動も活発です。詳しくはユーザーのメーリングリストのホームページ(http://www.SRA.co.jp/people/t-ishii/PostgreSQL/)などを参照してください。
(米田 聡)