この記事を読むのに必要な時間:およそ 1 分
PCにおけるデータベース
世の中には,データベースと呼ばれるものがたくさんあります。情報を持ち,簡単に検索できるなら広義ではデータベースと呼んで良いと思います。しかし,実際にインターネットやパソコン上で使われているデータベースのほとんどは,リレーショナルデータベース(RDB)です。
例えばExcel上に表があれば,簡便なデータベースとしてVLOOKUP関数などを使い,データを呼び出すことができます。しかし,例えば表1のような表は,Excel上ではデータベースとして扱うことはできますが,一般的なRDBとしては,そのままでは扱うことはできません。なぜでしょうか。
表1 Excelで作った売り上げの表

データベースの正規化
Excelの表をデータベースで扱えるようにするためには,まずこの表データを縦と横だけから成り立つレコードの集まり(テーブル)として整形しなくてはなりません。テーブルは図1のような形をしています。と比較してご覧いただくとおわかりいただけるように,連結されたセルのような構造はなく,縦と横が一直線の構造です。このような操作を正規化と言います(注1)。
図1 データベースで扱うテーブルの概要

表1の場合,レコード化するために伝票番号と日付けを入れると,
- 伝票番号 日付け 店舗番号 商品番号 品名 容量 単価 本数 金額
といった横方向に長いレコードができます。これで一応,テーブルとして登録はできるようになりましたが,同じ店舗名や,商品名などが出てきていて,きれいな形にはなっていません。
そこでさらに正規化を進めて,複数のテーブルに分割します。図2を見てください。各テーブルの役割りがはっきりして,見やすくなりました。
図2データベース登録用のテーブルとその関係

今回は先にExcelの表があり,それをRDBとして利用できるように正規化を行いましたが,データベースを1から作る場合には,先にテーブルのコラム要素や,テーブル同士の要素を関連付け(リレーショナル)できるような構造を考える必要があります。いわゆるデータベースの設計です。
また実際に使うデータベースの場合,入力の際のミスを防ぐために,レコードとして登録する際には,数値のところには数値であることが確認され,範囲外のデータは入れられないようにするなど,対策しなければなりません。
データベースへの登録とSQL
実際にこのようなテーブルをデータベースに登録するには,データベース用のSQLという言語が扱えるデータベースサーバの登録とSQLコマンドでの操作を行わなければなりません。よく使われているSQLが扱えるデータベースは,MySQLやPostgreSQLと呼ばれるものがあります。手っ取り早くデータベースとは何かから,テーブルへ登録とSQLの実行を試してみるには,「データベースエンジニア教本」がお勧めです。