Let's start from here

データベースとSQL

データベースの概要とSQLについて説明します。

データベース

データベースとは、特定の目的を持った、たくさんのデータの集まりのことです。インターネットで利用できる日本全国の住所と郵便番号の対応表などもデータベースです。基本的にはコンピュータで情報管理するものをデータベースと呼ぶことが多いですが紙の電話帳もデータベースといえます。但し、この電話帳も元のデータが存在してそのデータはコンピュータで管理されています。

データベースマネジメントシステム

一般的にコンピュータで管理されているデータベースシステムのことを(DBMS:Database Management System)と呼びます。これはただ、データを蓄積するだけでなくそのデータを使って検索や更新・管理が出来るようになっています。
DBMSを使用する最大のメリットは、やはり「大量のデータを自動的に整理してくれる」という点です。多くても数百件程度の個人の住所録ならば手動で管理することも可能ですが、法人で扱う数万件のデータを手で整理するには膨大な人手や時間が必要になります。
データベースにはさまざまな種類がありますが、今回は「リレーショナルデータベース」を

DBMSの種類

【階層型データベース】
最も古くからあるデータベースの1つで、データを階層構造(木構造)で表現します。古くはデータベースの主流でしたが、次に挙げるリレーショナルデータベースの普及に伴い、現在では使用されるケースが少なくなっています。

【リレーショナルデータベース(Relational Database:RDB)】
「関係データベース」とも呼ばれ、現在最も広く利用されているデータベースです。長い歴史を持ち、誕生は1969年までさかのぼります。Excelシートのように列と行からなる2次元表の形式でデータを管理するため、理解しやすいという特徴があります(表1-1)。また、SQL(Structured Query Language:構造化問い合わせ言語)という専用の言語を用いてデータを操作します。

【キー・バリュー型データストア(Key-Value Store:KVS)】
検索に使うキー(Key)と値(Value)の組み合わせだけの単純な形でデータを保存するデータベースです。プログラミング言語の知識がある方であれば「連想配列」や「ハッシュ」を想像してもらうと近いでしょう。Googleなど、非常に膨大な量のデータを超高速に検索するWebサービスで使われ、近年注目を集めています。

————
以降の説明は、専用言語のSQLを使ってリレーショナルデータベースという種類のDBMSである「RDBMS」を操作する方法です。これ以降は、このRDBMSに絞って話を進めていきます。
———–

RDBMSの製品

主なDBMSとしては、以下があります(その他もあります)。
Oracle Database(オラクル)
SQLServer(マイクロソフト)
DB2(IBM)
Microsoft Access(マイクロソフトのオフィスパッケージ)
MySQL(オープンソース)
MariaDB(オープンソース)
PostgreSQL(オープンソース)

Webサイトとの連携で使用するDBMSでは、「MySQL」がよく使用されます。

SQLとは

SQLとはデータベースを操作するための言語のことであり、DBMS上でデータの追加や削除、並べ替えなどを行うようコンピュータに命令するための手段です。基本的に1行ずつ入力して確定し、直ちに実行されます。複数のSQLを組み合わせて大きな一つの塊のSQLとして実行することもできます。

なおSQLはどのデータベースであっても基本的には共通の命令を使用していますが、DBMSの製品によりその製品専用のSQLなども存在しています。有償のDBMCでは専用の機能で他のDBMSと差別化している部分があります。DBMS変更の際は注意が必要です。

また、今回のデータベースの操作は「リレーショナルデータベース」を前提としてSQLで操作する方法について説明します。