!!!完全正規型 [Database][正規化] !!正規化のルール 「業務別データベース設計のためのデータモデリング入門」によれば、以下の3つのルールを満たせば、「第5正規型」となる。 ::入れ子構造の解消 エンティティ内の繰り返し項目や、内部構造を解消する。 非正規型 → 第1正規型 ::冗長な関数従属性の排除 エンティティの識別子全体から、それぞれの属性項目に対するもの以外の関数従属性を排除する。 第1正規型 → BC正規型 __d1,d2__,d3,d4 というエンティティがある場合、成立すべき関数従属性は、以下の2つのみ {d1,d2}→d3 {d1,d2}→d4 以下のような従属性が成立してはいけない d1→d2 d2→d1 d3→d1 d3→d2 d4→d1 d4→d2 {d1,d3}→d2 : ::有効な識別子の網羅 有効な識別子が網羅され、それぞれの識別子毎にエンティティが最低1個用意されなければならない BC正規型 → 第4正規型 → 第5正規型 独立すべきエンティティが属性項目を含まないために、「埋没」してしまうことがありうる。 *BC正規型 → 第4正規型 本来は E2、E3の組み合わせであるべきエンティティが、E1と分析されることはよくある。 E1{__d1,d2,d3__} ↓ E2{__d1,d2__} E3{__d2,d3__} *第4正規型 → 第5正規型 属性を持たないため、d1,d2の関係が埋没している E1{__d1,d2,d3__,d4,d5} ↓ E2{__d1,d2__} E3{__d1,d2,d3__,d4,d5} !!第4正規型 ::第4正規型 関係Rは第1正規型 関係Rには自明な多値従属しか存在しない ::多値従属 下図の部品名は、候補キーである、{部品番号,製造番号}に従属しているので第3正規型は満たしている。 だが、実際には、部品名が、{部品番号}にも従属している場合、{部品番号,製造番号}および{部品番号}に従属していると言う意味で、多値従属といい、X→→Yと書き表す。 {{ref_image normalform01.jpg}} ::自明な多値従属 属性Xに多値従属する属性Yが空集合 ---- {{amazon 4534032501}} {{amazon 4890194835}} {{amazon 4767307554}} {{ref normalform01.jpg}} {{ref normalform01.jpg}} {{attach}} ---- {{include_html banner_html, "!Database"}}