次のデータモデルで、左のモデル中の表「科−講−教」を右のように、
表「科−教」と表「科−講」に情報無損失分解した。次のうち、分解前の
「科−講−教」に認識された関数の制約として最も適切なものはどれか。
ここで、「科−講−教」はBCNF (Boyce-Codd normal form) である。
また、モデル表記にはUMLを用いる。
@ 3項関連 A 関数従属 B 結合従属
C 参照制約 D 多値従属
@3項関連は、3つのエンティティの多重度が互いに多対多の関係に
あることで、中心にひし形を描き、3つエンティティと実線で結ぶ。
A関数従属は、ある属性の値が決まると、他の属性の値も一意に
決まる関係のことである。
B結合従属は、1つの表を分解して得られる複数の表が、結合に
よって元の表に戻ることができる関係のことである。
C参照制約は、DBMSにおいて、データの追加や更新及び削除の際に、
関連するデータ間で不一致を発生させないようにするものである。
D正しい。
問題の場合、講師は科目が決まれば教科書に関わらず、決定される。
このような場合、「科目→→講師」と表し、講師は科目に対して
多値従属であるという。
また、教科書は科目が決まれば講師に関わらず、決定される。
従って、「科目→→教科書」と表し、 教科書は科目に対して
多値従属である。 問題の左の図の場合は、
対称性のある多値従属性(自明でない多値従属性)が
成り立っており、
「科目 →→ 講師|教科書」という式で表現ができる。
対称性のある多値従属性を分解すると、第4正規形となる。
言い換えると、自明でない多値従属性を分解すると、第4正規形となる。
EXCEL VBAのご相談なら ファーストマクロ へ