• ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • 日経BP
  • PR

  • PR

  • PR

  • PR

  • PR

新入社員必読、データベースの基本を理解しよう

テーブル設計の正規化ってなに?

山田 祥寛 2013/04/25 ITpro
<< 前回へ<<

 今回はデータベースの正規化について説明します。突然ですが、以下に示す表1のようなテーブルがあったとしたらどうでしょう。

表1●非正規化状態のテーブル(注文書テーブル)
[画像のクリックで拡大表示]

 表計算ソフトで管理しているデータならばこれでも問題ありませんが、RDBに登録するデータとしては、あまり良い例とはいえません。というのも、上のテーブルにはいくつかの問題点があるからです。

  • 顧客名や商品名など重複した情報が多いため、データ量が不必要に大きくなりがち
  • 同様の理由で、商品名や顧客名に変更があった場合に、関係するすべてのレコードを修正しなければならない

 このような不具合を解消するために、データを一定の規則に従って分割し、データの重複を取り除くということが行われます。このような手続きのことを正規化と言います。正規化は、RDBにおいてデータが増大した場合にも、データの整合性を保つために重要な考え方です。

 以下では、上記の注文書テーブルを正規化してみることにしましょう。

第1正規化

 まず正規化の第1 段階では、「データ内の繰り返し部分をなくすこと」です。

 データ内の繰り返し部分とは、この場合、商品名、単価、購入数です。このようにテーブル内に繰り返し項目を持っているのは好ましいことではありません。たとえば、注文書テーブルのケースならば、1人の顧客が1度に購入する商品の種類が必ずしも決まっているわけではありません。ある顧客は1種類しか買わないかもしれませんが、ある顧客は10種類の商品を1度に購入していくかもしれません。

 テーブル上に繰り返し項目がある場合、想定される繰り返し上限をあらかじめ設定しておく必要があります。しかし、これはあまりに無駄なことですし、そもそもテーブル上の制約から1度に注文できる商品の種類が制限されてしまうというのは、本末転倒な話でしょう。このような繰り返し項目は別のテーブルとして分割してしまいます。第1正規化の結果、できたテーブルは表2の通りです。

 なお、表内で色の付いている項目は主キーを表すものとします。

表2●第1正規化後のテーブル
[画像のクリックで拡大表示]

ここから先はITpro会員(無料)の登録が必要です。

次ページ 第2正規化
  • 1
  • 2

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る