データベースの正規化に関してもう一度勉強しなおしたのでそのまとめとして.
正規化とは
データ設計手法の1つで関連するデータ項目毎にテーブルとして独立させつ作業の事.
正規化を行う目的
データの一貫性を保つこと.
なるべく修正する箇所は1箇所に留めたい!
非正規形
1つの列に複数のデータが登録されてしまっている状態.
第1正規形
各フィールドに1つしかデータがない状態になったテーブルの事をいう.
生徒 | 高校 | 予備校 | 科目 | 担当講師 |
---|---|---|---|---|
佐藤栄作 | 長岡高校 | 川東校 | 国語 | 木村 |
佐藤栄作 | 長岡高校 | 川東校 | 英語 | 大橋 |
佐藤栄作 | 長岡高校 | 川東校 | 日本史 | 伊集院 |
鈴木一郎 | 長岡高校 | 川東校 | 英語 | ボブ |
鈴木一郎 | 長岡高校 | 川東校 | 数学 | 渡辺 |
高橋トミ子 | 王手高校 | 川北校 | 英語 | 大橋 |
高橋トミ子 | 王手高校 | 川北校 | 国語 | 木村 |
田中達也 | 広陵高校 | 川西校 | 英語 | ボブ |
田中達也 | 広陵高校 | 川西校 | 数学 | 渡辺 |
田中達也 | 広陵高校 | 川西校 | 理科 | 林 |
第2正規形
ある項目が分かれば自動的に他の項目もわかるのであれば,同一のテーブルで管理しないほうが良い.
ユニークキーによって分割されている表の事を第2正規形と呼ぶ.
イタリック体がユニークキー
生徒 | 高校 | 予備校 |
---|---|---|
佐藤栄作 | 長岡高校 | 川東校 |
鈴木一郎 | 長岡高校 | 川東校 |
高橋トミ子 | 王手高校 | 川北校 |
田中達也 | 広陵高校 | 川西校 |
生徒 | 科目 | 担当講師 |
---|---|---|
佐藤栄作 | 国語 | 木村 |
佐藤栄作 | 英語 | 大橋 |
佐藤栄作 | 日本史 | 伊集院 |
鈴木一郎 | 英語 | ボブ |
鈴木一郎 | 数学 | 渡辺 |
高橋トミ子 | 英語 | 大橋 |
高橋トミ子 | 国語 | 木村 |
田中達也 | 英語 | ボブ |
田中達也 | 数学 | 渡辺 |
田中達也 | 理科 | 林 |
第3正規形
1つのデータから推移的に別のデータがわかる場合,それを別の表に分割する作業を第3正規化という.
推移的にわかるデータが存在しない表を第3正規形という.
生徒 | 高校 |
---|---|
佐藤栄作 | 長岡高校 |
鈴木一郎 | 長岡高校 |
高橋トミ子 | 王手高校 |
田中達也 | 広陵高校 |
高校 | 予備校 |
---|---|
長岡高校 | 川東校 |
王手高校 | 川北校 |
広陵高校 | 川西校 |