「完全正規型」の版間の差分
ナビゲーションに移動
検索に移動
| 1行目: | 1行目: | ||
| − | ==完全正規型== | + | ==[[完全正規型]]== |
[[Database]] | [[正規化]] | | [[Database]] | [[正規化]] | | ||
| − | === | + | ===[[正規化]]のルール=== |
| − | + | 「[[業務]]別データベース設計のためのデータモデリング入門」によれば、以下の3つのルールを満たせば、「第5正規型」となる。 | |
=====入れ子構造の解消===== | =====入れ子構造の解消===== | ||
エンティティ内の繰り返し項目や、内部構造を解消する。 | エンティティ内の繰り返し項目や、内部構造を解消する。 | ||
| 53行目: | 53行目: | ||
===第4正規型=== | ===第4正規型=== | ||
=====第4正規型===== | =====第4正規型===== | ||
| − | + | 関係[[R]]は第1正規型 | |
| − | + | 関係[[R]]には自明な多値従属しか存在しない | |
=====多値従属===== | =====多値従属===== | ||
| 73行目: | 73行目: | ||
{{attach}} | {{attach}} | ||
---- | ---- | ||
| − | {{include_html banner_html, "!Database"}} | + | {{include_html [[banner_html]], "!Database"}} |
2020年2月16日 (日) 04:20時点における最新版
目次
完全正規型
正規化のルール
「業務別データベース設計のためのデータモデリング入門」によれば、以下の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と書き表す。
自明な多値従属
属性Xに多値従属する属性Yが空集合
テンプレート:Ref normalform01.jpg テンプレート:Ref normalform01.jpg テンプレート:Attach
{{include_html banner_html, "!Database"}}
© 2006 矢木浩人
