SQLとは?


データベースを操作する

SQL はコンピュータ言語のひとつですが、いわゆるプログラミング言語ではありません。
SQL の目的はソフトウェアの開発ではなく、データベースソフトウェアの制御です
仕組みは、BASIC 言語などでみられるインタプリンタ型に近いものです

IBM が世界初のリレーショナル・データベース SystemR を 開発したとき
これを操作するために実装されていた言語 SEQUEL が起源となっています
その後 SQL に改名され ANSI で規格化、さらに ISO によって標準化されていきます
現在は、1999 年にオブジェクト指向などを想定した SQL99 が最新の報告です

プログラミング言語とは異なり、SQL にはコンパイラなどは存在しません
SQL は、コードを記述してそれを実行するのではなく、対話的に文をやりとりします
データベースにひとつの文を送り、これに基づいてデータが処理されるということになります

SQL を用いれば、対象のデータベースがどの製品であれ
プログラムやコマンドラインなどから問い合わせることができるようになります
(もちろん、SQL が実装されたデータベースであればの話である)

データベースに SQL 文を送る方法はいくつかに分かれます
SQL コマンドプログラムにユーザーが直接文を入力して操作する対話型や
プログラミング言語に SQL 文を埋め込んで実行する方法などがあります
コマンドラインなどからユーザーが文を打ち込む SQL は前者
Java 言語などで SQL 文を発行して動的に操作する方法は後者となります


SQLの実装

世界的に使われているデータベースの中で、特に支持されているのは Oracle です
Oracle 社が開発したこのデータベースはビジネスの世界で広く利用されています

Microsoft の Microsoft SQL Server も
広く使われている信頼性の高いデータベースです
Microsoft が作っているだけに、Windows サーバーと相性が合うでしょう
筆者は、お金がかかるのは小さな靴を履くくらい嫌いなのでこんなものは使いません

個人利用や中小企業にお勧めなのは MySQL などの実装です
機能で貧弱な部分もあり、商業的に利用されることは少ないのですが
オープンソースで開発されているため、技術のある組織には適しているでしょう
MySQL は有名な実装の中でも特に高速に動作することで優れています

もうひとつ、有名なのが PostgreSQL です
MySQL が高速性を追求していることに対し、PostgreSQL は機能を追及しています
MySQL に並ぶ優秀なオープンソースのデータベースです
この講座で紹介する SQL が最もサポートされているのも PostgreSQL でしょう

これらのデータベースを用い SQL サーバーを起動すれば
端末から SQL を用いてデータベースにアクセスし、制御することができるようになります
SQL を使うことで、組織的に膨大な情報をスマートに管理することができるのです

この場は SQL の解説を行うところであり、実装については触れません
それぞれのソフトウェアでどのように SQL を扱うのかといった問題や
各データベース固有の実装などについては、そのソフトウェアのヘルプを参照してください

また、本講座はデータベースの概念を解説するものでもありません
データベースについては、情報処理技術の専門書などを参照してください


関係モデル

SQL99 が定めるリレーショナル・データベースのモデル(以下、関係モデル)は
何らかの実体を表すための2次元のテーブル(表)を記録しています

この、関係モデルが表す実体をエンティティと呼びます
表は横の次元であると、縦の次元であるに分かれます
列はエンティティの属性を、行はひとつのエンティティを表すことになります

エンティティの属性とは、例えば製品をエンティティとするデータベースの場合
製品名、単価、原価、商品管理コードなど、エンティティに備わっている情報となります
そして、これらの属性の具体的な値をアトミックと呼びます

SQL では、アトミックのデータ型は個別にではなく列ごとに決定されます
データ型とは、数値、文字列、日付などの情報の種類を指します
数値を保存するための列に文字列を保存することはできません

関係モデルでは、行と列を指定することで目的のアトミックを取得することができます
アトミックは必ずひとつの値で、複数の値になることはありません



戻る次のページへ