データベースの正規形について
解決したいこと
データベースの学習をしているのですが、正規形についての問題の解法が知りたいです。
設問
シンプルなドメインを持つ属性A~Hからなる
リレーションスキーマR(A,B,C,D,E,F,G,H)において、以下の従属性が成立する。
Rにおいて成立する従属性は以下のものと、それらから導出可能なもの、自明なものだけである。
A→BC
BC→E
C→D
EH→G
G→H
(1)
Rの候補キーを答えよ。複数ある場合、すべて答えること。
(2)
以下のリレーションスキーマR1~R4の正規形の名称を第1正規形~ボイス・コッド正規形の中から選んで答えよ。
第1正規形または第2正規形のものは、第3正規形以上に正規化すること。
R1(A,B,C,E)
R2(B,C,D)
R3(D,E,F)
R4(E,G,H)
自分の回答
(1)
{A,H},{A,G}
(2)
R1は第2正規形。更に正規化するとR11(A,B,C),R12(B,C,E)
R2はボイス・コッド正規形
R3はボイス・コッド正規形
R4は第3正規形
疑問点
(1)
属性Fはいかなる従属性もないため導出可能・自明な属性と考えたのですが合っているのでしょうか。
(2)
正規形についての理解が合っているのか自信がありません。
R1はA→BC,BC→Eという推移的関数従属性があるため、第2正規形と考えました。
R2はC→Dという関数従属性があるが、Bはどのような扱いかわかりません。
R3は関数従属性がないので、どのように扱うのかわかりません。
R4はEH→G,G→Hという関数従属性があり、EHからGが一意に定まるがGからHも一意に定まるのでボイス・コッド正規形ではなく第3正規形だと考えました。