データベースの正規形(序章)
- ehime-db
- 2018年6月20日
- 読了時間: 2分
以前に触れたことのある正規形について。
Excelでは、自由線形にて表を作成できるため、自由度の高い設計をする一方、それをデータベースとして当てはめていくと無理が生じます。
実際の業務で目に触れているデータは、非正規形といわれる状態で管理されています。
ここで「正規形」というテクニックを用いて、「小分け」していく作業を行います。
よく見慣れた表ですが、実はデータベースとしては機能しません。

正規化とは、データを一元管理するための理論です。
「1データ1箇所の原則」を実現するために、1970年にE.F.Codd氏がリレーショナルモデルの理論として提案しました。
正規化の理論は、データの冗長性を排除し、更新時の整合性を維持しやすくすることを目指しています。
属性間の関連性を分析し「属性の最適なグループ化を図ることを目的」としています。
正規形には、
・第一正規形
・第二正規形
・第三正規形
という大きな分け方があり、更に
・ボイスコッド正規形
・第四正規形
・第五正規形
と続きます。
一般には
第一正規化~第3正規化まで行えば十分といわれています。
では簡単に説明をしましょう。
【第1正規化】
非正規形から第1正規化への正規化では、「導出属性の削除」と「繰り返し項目の分離」を行います。
導出属性って???
→同じテーブルの中で、「その値が他のカラム(列)から導くことができる」値のことを指します。
非正規形のテーブルを第一正規化する際、導出属性は削除します。
言葉で書かれるとなんのことやらわかりませんが、要するに
『「他の列」から導き出される列は後からでも導き出せるんだから削除しちゃいましょうね!』
ということです。

「合計金額」:これは「単価」x「数量」で割り出せちゃいますね。
なので合計金額がなくても、データベース上の保存は困らないわけです。(不要なデータを省くことでデータ量を少なく抑えることができますね。

さらに

一行にデータを収めていくことで、データベースの基礎部分ができていきます。
まだまだいうと、
「注文番号」から、「誰が買ったのか」・「その人はどこに住んでいるのか」・「注文番号に紐付いている商品名は何か」と
小分けしていくことが可能ですね
・注文番号ー名前
・注文番号ー住所
・注文番号ー商品名
さらに、商品名から単価はわかるので、
・商品名ー単価
とグルーピングができます。
注文番号を見ると、売上金額がわかるはずで
・注文番号ー単価x数量
も紐づいていきますね。
そうやって仲間毎にグルーピングしていくことが「正規形」であり、仲間毎をあつめていくと表が完成していくイメージです。
Comments