Excelの表からデータベースへの登録へのいざない

PCにおけるデータベース

世の中には、データベースと呼ばれるものがたくさんあります。情報を持ち、簡単に検索できるなら広義ではデータベースと呼んで良いと思います。しかし、実際にインターネットやパソコン上で使われているデータベースのほとんどは、リレーショナルデータベース(RDB)です。

例えばExcel上に表があれば、簡便なデータベースとしてVLOOKUP関数などを使い、データを呼び出すことができます。しかし、例えば表1のような表は、Excel上ではデータベースとして扱うことはできますが、一般的なRDBとしては、そのままでは扱うことはできません。なぜでしょうか。

表1 Excelで作った売り上げの表
表1 Excelで作った売り上げの表

データベースの正規化

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

図1 データベースで扱うテーブルの概要
図1 データベースで扱うテーブルの概要

表1の場合、レコード化するために伝票番号と日付けを入れると、

  • 伝票番号 日付け 店舗番号 商品番号 品名 容量 単価 本数 金額

といった横方向に長いレコードができます。これで一応、テーブルとして登録はできるようになりましたが、同じ店舗名や、商品名などが出てきていて、きれいな形にはなっていません。

そこでさらに正規化を進めて、複数のテーブルに分割します。図2を見てください。各テーブルの役割りがはっきりして、見やすくなりました。

図2データベース登録用のテーブルとその関係
図2 データベース登録用のテーブルとその関係

今回は先にExcelの表があり、それをRDBとして利用できるように正規化を行いましたが、データベースを1から作る場合には、先にテーブルのコラム要素や、テーブル同士の要素を関連付け(リレーショナル)できるような構造を考える必要があります。いわゆるデータベースの設計です。

また実際に使うデータベースの場合、入力の際のミスを防ぐために、レコードとして登録する際には、数値のところには数値であることが確認され、範囲外のデータは入れられないようにするなど、対策しなければなりません。

データベースへの登録とSQL

実際にこのようなテーブルをデータベースに登録するには、データベース用のSQLという言語が扱えるデータベースサーバの登録とSQLコマンドでの操作を行わなければなりません。よく使われているSQLが扱えるデータベースは、MySQLやPostgreSQLと呼ばれるものがあります。手っ取り早くデータベースとは何かから、テーブルへ登録とSQLの実行を試してみるには、データベースエンジニア教本がお勧めです。