Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL表明R不是Boyce-Codd范式_Sql_Database Normalization_Functional Dependencies - Fatal编程技术网

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”。