プロが教える店舗&オフィスのセキュリティ対策術

基本情報処理試験の勉強してます。

とはいえ日常的にDBをいじってるので、
一番ストリクトにDBを切ったものが第3正規形ということはわかります。

ですが、第1正規形と第2正規形の違いがいまいちぴんときません。
どこがポイントでしょうか?

よろしくお願いします。

A 回答 (2件)

私には、ここが解りやすかったです。



http://rfs.jp/sb/sql/s01/05-13.html

私としては、第2と第3の方が区別が付きにくい気がします。部分と推移の意味がつかみにくい。
SQL文操作に慣れてくると、分離した状態から考え始めるので、第3正規形となったtableの全てをjoin して第1正規化前へ戻すSQL文構築から逆算するとすこし理解が進むかも?

まず、第3正規化で分離した table は、
join `th3rd` on `main`.nonprimary = `th3rd`.primary
となって本星の`main`テーブルと非プライマリーキーのフィールドで結びつきます
次に、第2正規化で分離した table は、
join `th2nd` on `main`.primaryX = `th2nd`.primary
となって `main`テーブルとプライマリーキーのうちの1フィールドで結びつきます
つまり、複合プライマリーキーがあるテーブルでないと、第2正規形が理解しにくいのだと思います。

最後に、第1正規化で分離したtable は、こちらのtableの方が全体を連結して、これまでの`main` テーブル側が、FOREIGN KEY の関係になります。
`the1st` join `main` on `the1st`.mainid = `main`.id join `the1stCategory` on `the1st`.Categoryid = `the1stCategory`.id
    • good
    • 0

例えば参考URLの事例で、図1には、数量*単価=金額という関係が有ります。


これを図2、図3のようにバラして、一つの表の中に、関数で表現されるような関係を無くしたものが、第2正規形です。

参考URL:http://design.first-database.com/2nf.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す