新刊ピックアップ

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

この記事を読むのに必要な時間:およそ 1 分

PCにおけるデータベース

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

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

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

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

データベースの正規化

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

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

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

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

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

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

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

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

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

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

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

注1)
データベースで効率よくデータを扱えるようにするために,いろいろな正規化があります。正規形には第1正規形から第5正規形,ボイス・コッド正規形などがあります。興味を持たれたら是非,調べてみてください。

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

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