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