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の実行を試してみるには、「データベースエンジニア教本」がお勧めです。