tableの正規化
tableの正規化
tableの全てのレコードが関数従属性を満たすように整理すること
正規化は、データの整合性とパフォーマンスのトレードオフになる
パフォーマンスの問題によりやむなく非正規化を選択することもある
ただし、最終手段
基本的には、3.5正規形までやれば良い
そうすれば、たいてい5まで自動的に終わる
6はやりすぎなのでそこまでする必要はない
冗長性を排除する
「1つの更新をしたい時に、複数レコードを更新しないといけない」のような状態を排除する
データの一貫性を保つ
更新時の不都合を防ぐ
人間の操作ミスを防ぐ
tableの表す意味が明確になり、人間が理解しやすくなる
5 (+1)種類ある
第1正規形
関数従属性に関する正規化
第2正規形
第3正規形
ボイス-コッド正規形 (3.5)
非キーがないtableで、複合主キーがあるtableのみが対象
第4正規形
中間tableがあるときだけ意識すれば良い
第5正規形
第6正規形
正規化の欠点
table数が増えるため、SQLでの結合を多用することになりパフォーマンスが悪化する
JOINが必要なため、SQLもごちゃごちゃする
/mrsekut-book-4798124702/263 (5-2 非正規化とパフォーマンス)
パフォーマンスに問題があるために、非正規化を行う例
参考
/mrsekut-book-4798124702/152 (3-3 正規かとは何か?)~
http://nippondanji.blogspot.com/2013/11/blog-post.html?utm_source=pocket_mylist#:~:text=あるのである。-,どこまで正規化すべきか,-IT業界では