データベーススペシャリスト – 正規化
第一、第二、第三とボイスコッド正規形、ボイスコッドって、、人ですか?

調べても出てこなかったけど、代わりにコンピュータ・サイエンスの学位は意味ないみたいな残念な記事を発見しました。涙
正規化とは
データをデータベースに効率的に格納できるように、ルールに従って分解したり複製したりすることと思ってます。
正規化(せいきか、英語: normalization)とは、データ等々を一定のルール(規則)に基づいて変形し、利用しやすくすること。
別の言い方をするならば、正規形でないものを正規形(比較・演算などの操作のために望ましい性質を持った一定の形)に変形することをいう。
多くの場合、規格化と訳しても同義である。
たぶん、だいたい合ってますよね。笑

第一正規形
イメージとしてはExcelのテーブルでセル結合してるところを、結合解除して空白になったところにデータをコピーする感じです。
データに繰り返し部分がある場合、それを取り除いたものというのが正しい定義のようです。
第二正規形
第一正規形からさらに部分関数従属しているデータを、別のテーブルに分けます。
- 1 りんご A 青森県
- 2 みかん B 愛媛県
- 3 メロン A 青森県
みたいなデータがあったとき、2つの表に分解します。
<果物表>
- 1 りんご
- 2 みかん
- 3 メロン
<都道府県表>
- A 青森県
- B 愛媛県
<コード対応表>
- 1 A
- 2 B
- 3 C
コード表の1とか2とかAとかBのキーで、果物表と都道府県表を紐づけることができます。
第三正規形
第二正規形で主キー以外で関数従属しているもの(推移的関数従属)を、さらに分解してテーブル分けします。
でもまぁ第二までできたらデータベースは作れなくはないので、第三はそこまで深く考える必要はないのかなと思ったりもします。

表を紐づける機会の方が多いです
正直、テーブルのデータを分解して別のテーブルにした経験って僕はないです(できますけどね)。
なぜかっていうと、そこまで作られたテーブルを扱うか、自分で作るときは頭の中で分けれちゃうからです。
だから正規化って試験の問題としては出てくるけど、そこまで重要じゃないと思ってます。
考え方として全くない人には必要とは思うけど、何回かやってるうちにいらねってなると思います。笑
ディスカッション
コメント一覧
まだ、コメントがありません