Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Database Boyce Codd范式中的关系在素数属性之间是否存在函数依赖关系?_Database_Database Normalization - Fatal编程技术网

Database Boyce Codd范式中的关系在素数属性之间是否存在函数依赖关系?

Database Boyce Codd范式中的关系在素数属性之间是否存在函数依赖关系?,database,database-normalization,Database,Database Normalization,我的问题很简单。从我所看到的,从1NF,2NF,3NF到Boyce Codd形式的规范化似乎主要处理非素数属性的问题。如果我没有弄错的话,下表是Boyce Codd格式: R(A,B,C), F = {AB->C, A->B} 对于A,B是复合主键,这对我来说很奇怪 我在这里遗漏了什么吗?如果A->B,那么{AB}不可能是主键,因为它不是最小值。因此,假设A是唯一的键,那么R至少在依赖项AB->C,A->B的BCNF中。如果A确定B(A->B),那么说AB确定C(AB->C)意味着

我的问题很简单。从我所看到的,从1NF,2NF,3NF到Boyce Codd形式的规范化似乎主要处理非素数属性的问题。如果我没有弄错的话,下表是Boyce Codd格式:

R(A,B,C), F = {AB->C, A->B}
对于A,B是复合主键,这对我来说很奇怪


我在这里遗漏了什么吗?

如果A->B,那么{AB}不可能是主键,因为它不是最小值。因此,假设A是唯一的键,那么R至少在依赖项AB->C,A->B的BCNF中。

如果A确定B(A->B),那么说AB确定C(AB->C)意味着A确定C(A->C)

说A->B意味着没有两条记录B列的值不同,但A列的值相同

说AB->C意味着没有两个记录的C列具有不同的值,但A列和B列具有相同的值。虽然,因为A->B,我们已经知道如果A列具有相同的值,那么B列也具有相同的值。因此,我们可以说,看到A->B然后AB->C意味着A->C

因此,R中的FD为:

  • A->B
  • A->C
  • 对于BCNF中的关系,必须满足以下条件:

  • 它一定已经在3NF中了
  • 在行列式不是超级键的情况下,不应该存在非平凡的函数依赖关系
  • 正如你所说,你已经在3NF中有了一个关系,我们满足第一个条件。 正如在所有R的FD中,行列式是一个超键(a是一个超键),我们满足第二个条件


    因此,R在BCNF中。

    您的表甚至不在
    3NF
    中,因为
    C
    通过
    B
    传递依赖于
    A
    ,您的“我有这些FD”没有意义。“这些都是持有的FD”?——不可能。“这些都是持有的非平凡FD”?——不可能。“这是一些持有的FD”?——这个问题无法回答。了解什么是封面&应用特定定义/规则/算法的确切条件是什么。为了确定CKs和NFs,我们必须获得构成封面的FD。有时是最小/不可约覆盖。必须给出所有属性的集合。现在你只是要求我们用定制的教程重写你的教科书。请看,点击谷歌的“stackexchange家庭作业”和鼠标文本上方的投票箭头。按照你的课本展示你的工作步骤,并给出理由&问一个具体的、经过研究的、不重复的问题,你是第一个被卡住的地方。引用你所依赖的定义、定理和算法。所有步骤都是常见问题解答。PS“对我来说很奇怪”无法传达任何信息。PS PK是无关的,重要的。复合CKs是相关的,因为有一个关于它们的BCNF定理。你的第一句话是错误的。这3个FD说了3件不同的事情。然而,它们的某些组合意味着某些其他组合。你的前两颗子弹打错了。部分和可传递的FD有效,而不是有问题的FD——您没有为FD和NFs使用正确的术语定义。你不能清楚地为索赔辩护或给出理由,因此即使纠正了错误的索赔,这也没有多大帮助。PA这样的回答给出了人们在解决问题时所想的东西的片段,但并没有给提问者任何他们可以用来解决其他问题的东西。把他们送到他们应该遵循的算法上去。我的第一句话怎么错了?因为A唯一地标识B,任何AB对唯一地标识C,那么任何A唯一地标识C。无论如何,我将使答案更一般,以帮助其他有这些问题的人。