データベーススペシャリスト_正規化

- 正規化

データベースの表をムダや矛盾が生じないように分割、整理すること。

学生時代から何度もやってきたはずだが、ちゃんと覚えてはいない。

仕事でも触る機会は今までほぼなかった。NO SQLとかは触ったけど関係データベースじゃいのであんまり関係なかった。

SEとかだと顧客システムによってはデータ移行とかして再設計とかする機会あるんかなあ。

 

- 第1正規化

同一行内での繰り返しをなくす。

 

- 第2正規化

部分関数従属性をなくす。

部分関数従属とは、ある非キー属性が候補キーのー部に関数従属していることである。

 

- 第3正規化

推移関数従属性をなくす。

推移関数従属とは、テーブルの非キー属性Aが特定の非キー属性Bに関数従属していることである。

 

- 主キー

表の中で一つだけ設定する。

一意制約(重複が認められない)かつ非ヌル制約(NULLが認められない)を満たし、候補キーの中から最もふさわしいものが選ばれます。Idとか。

 

- 候補キー

表の中に複数存在する場合がある。

主キーの候補となるキーが候補キーである。

候補キーの条件は、タプル(行)を一意に識別できること、極小であること(スーパーキーの中で極小のもの)であり、NULLを許可する属性を持つ(もしくは含む)ものも許可する。

 

- スーパーキー

表の中に複数存在し、タプル(行)を一つに特定できる。

候補キーに様々な組み合わせで他の属性を付け足したものである。

(表の全ての属性もスーパーキー)

 

- 外部キー

他のエンティティの主キーを参照する属性である。

 

- 非キー属性

候補キーに該当しないものである。

 

 

- 参考URL

https://products.sint.co.jp/topsic/blog/database-normalization

https://www.seplus.jp/dokushuzemi/fe/fenavi/mastering_tech/normalization/

https://poppingcarp.com/various_key/