3-6 第3正規化 〜推移的関数従属
推移的関数従属
テーブル内部に存在する段階的な従属関係のことを、推移的関数従属という
例
https://scrapbox.io/files/687066c29553c1dba3101602.png
第2正規化まで完了したテーブル
赤下線は主キー
A商事には開発・人事・営業以外の部署があるかもしれない
あったとしても、社員が1人もいない部署を社員テーブルには登録できない
社員IDが主キーの一部のため、NULLにできない
部署名は部署コードに従属している
{社員コード, 社員ID} → {部署コード} → {部署名}の2段階の従属関係がある
第3正規化を行う
第2正規化同様に、部署コードと部署名を独立したテーブルに分割する
例
https://scrapbox.io/files/687073c0b8fdf704d3c6edf7.png
第2正規化まで完了したテーブルを元にしている
また第3正規化も無損失分解
SQL文で内部結合すれば元に戻せる