SQL表明R不是Boyce-Codd范式
SQL表明R不是Boyce-Codd范式,sql,database-normalization,functional-dependencies,Sql,Database Normalization,Functional Dependencies,R=(J,K,L,M,N)具有一组函数依赖关系{J->KL,LM->N,K->M,N->J} 我理解BCNF的定义。我相信不存在琐碎的函数依赖关系,也可能不存在超级键。我不确定第二部分。如何从字母中确定超级键?希望您能就此提供一些意见 如果所有函数依赖项的左侧属性的闭包包含所有关系属性(J,K,L,M,N),则该关系将采用Boyce Codd范式(BCNF)。换句话说,每个函数依赖项的左侧属性都包含一个键 让我们分析一下您的功能依赖关系: J->KL。然后是K->M,然后是LM->N和N->J。
R=(J,K,L,M,N)
具有一组函数依赖关系{J->KL,LM->N,K->M,N->J}
我理解BCNF的定义。我相信不存在琐碎的函数依赖关系,也可能不存在超级键。我不确定第二部分。如何从字母中确定超级键?希望您能就此提供一些意见 如果所有函数依赖项的左侧属性的闭包包含所有关系属性
(J,K,L,M,N)
,则该关系将采用Boyce Codd范式(BCNF)。换句话说,每个函数依赖项的左侧属性都包含一个键
让我们分析一下您的功能依赖关系:
J->KL
。然后是K->M
,然后是LM->N
和N->J
。所以,J->
KL符合BCNF
LM->N
。然后是N->J
,然后是J->KL
和
就这些,我们有所有的属性K->M
。这个功能
依赖性显然违反了BCNF,因为我们无法获得
依赖项集中的更多属性N->J
。然后是J->KL
和K->M
。它满足BCNF因此,第三个依赖项违反了BCNF,并且
K
属性不是键本身。更具体地说,属性的左侧必须是“superkey”。