正規化

弾にはデータベースの勉強のことも書くとしますかね。



どうやら私は正規化が苦手らしい。

第2正規形をよく間違える。



ぃゃ、第3正規形まで変換しろと言われたらきっちりと出来ますよ。

ただ、第2正規形までしろと言われれば出来ません。







第2正規化の定義は、

第1正規形で、かつ、すべての非キー属性が、すべての候補キーに対して完全従属する

です。



何がダメかというと、非キー属性の推移的関数従属性です。

これが残されたままだと第1正規形と勘違いしてしまいます。



表を変換したら第3正規形。

で、第2正規形ってどんなんだっけ? と。

うひゃひゃ。







ボイスコッド正規形というものを学びました。

名前は知っていましたがどういったものかは知りませんでした。



{ A1, A2, A3 } → A4

且つ、 A4 → A1 の関係があるとき、



{ A1, A2, A3 } → A1

で、推移的関数従属性があるから、



{ A1, A2, A3 }, { A1, A4 }

と変換できるんだってサ。



知るかよ、こんなもん。

そもそも

且つ、 A4 → A1 の関係があるとき

ってどんなときだよ。

こんなの使わねーよ。







で、続いては第4正規形。

第4正規形では候補キーではない属性への多値従属性をもった属性があってはならない。



要するに

A1, B1, C1

A1, B2, C2

A1, B1, C2

A1, B2, C1

このように多値従属しているなら、



A1, B1

A1, B2



A1, C1

A1, C2



と分離することが出来ますよ、と。

なんじゃいこりゃ。







第5正規形はもうめんd



専門学校のデータベースの先生が、

第4正規化をする必要があるときはデータベースの設計を見直した方が良いと言ってたような樹がしますが、

その通りだと思った。







っていうかボイスコッド正規形の時点で関係が崩壊する可能性があるなら、

3で充分じゃねーか。



と思う実務経験の無い素人。







明日はSQLか……。

ぃゃ、関数従属性とかいまいち理解出来ていないから知識の補強をすべきか……。







勉強にこれ使ってるんですけど、

今回のはあんまり良くないかも……。

全体的に説明がよく分からん。



多値従属性の説明とかマジで意味分からん。

図が無ければ投げてたね。

ただ単に私の頭が素敵なだけなのでしょうか?



一部ソフ開の参考書を調べたりもしたし……。