【数据库】范式例题

范式例题

设关系模式 R ( S N O , T N O , C N O ) R(SNO,TNO,CNO) R(SNO,TNO,CNO)
函数依赖 F = { ( S N O , C N O ) → T N O , ( S N O , T N O ) → C N O , T N O → C N O } F=\{(SNO,CNO)\to TNO,(SNO,TNO) \to CNO,TNO \to CNO \} F={ (SNO,CNO)TNO,(SNO,TNO)CNO,TNOCNO}满足第几范式,试说明理由。

解答

第一步:确定候选码

  • ( S N O , C N O ) → T N O (SNO,CNO)\to TNO (SNO,CNO)TNO(已知)
  • ( S N O , C N O ) → ( S N O , C N O ) (SNO,CNO)\to (SNO,CNO) (SNO,CNO)(SNO,CNO)(自反律)

可得

  • ( S N O , C N O ) → ( S N O , C N O , T N O ) (SNO,CNO)\to (SNO,CNO,TNO) (SNO,CNO)(SNO,CNO,TNO)(合并律)

又因

  • S N O → ( S N O , C N O , T N O ) , C N O → ( S N O , C N O , T N O ) SNO\to (SNO,CNO,TNO),CNO\to (SNO,CNO,TNO) SNO(SNO,CNO,TNO)CNO(SNO,CNO,TNO)
  • 这两个函数依赖不存在

所以

  • ( S N O , C N O ) → ( S N O , C N O , T N O ) (SNO,CNO)\to (SNO,CNO,TNO) (SNO,CNO)(SNO,CNO,TNO)是完全函数依赖。

因此

  • ( S N O , C N O ) (SNO,CNO) (SNO,CNO)是候选码。

同理可得

  • ( S N O , T N O ) (SNO,TNO) (SNO,TNO)也是候选码。

第二步:确定范式

因为
此关系模式的三个属性都是主属性,无非主属性,所以无非主属性对码的部分及传递函数依赖,属于 3 N F 3NF 3NF
又由
B C N F BCNF BCNF的概念,关系的三个函数依赖中 T N O → C N O TNO\to CNO TNOCNO,而 T N O TNO TNO这个决定因素没有包含码。因此,不属于 B C N F BCNF BCNF

你可能感兴趣的:(数据库)