所以想象我有这样的关系:
r(A,B,C,D,E)
其中A是主键,C是唯一的。我对功能依赖关系的工作方式有疑问,我知道由于A是其他属性依赖的主键,但我不知道该如何处理唯一属性。它的工作方式与主键相同吗? C是否依赖于A(A-> C)?
我也看到了另一种情况,其中我有一个与上面类似的关系,但是有一个唯一的签名,上面有两个属性,就像这样:
唯一(C,D)
而且我也不知道具有两个属性的唯一性的含义,而不是每个属性的唯一性声明及其对功能依赖关系的影响。
感谢您的时间和事先的答复。
在设计阶段,列A和C将被标识为候选键。 (请注意,可以有两个以上。)然后将一个选择为主键,而另一个则定义为唯一约束。
很多繁琐的细节可能会出现NULL(PK不能为空),作为外键的性能/适用性(影响容量规划的因素,以及对可能的业务规则的影响。
如果C是唯一的,则可以使用它来识别每条记录,即,可以像使用主键一样使用它-除非要有效地做到这一点,否则必须在C上有一个索引。无论如何,是的,任何字段都是唯一字段的功能。
您的C是否依赖于A的问题必须用是的答案,但这是因为任何字段都依赖于A,因为A是主键。
“具有两个属性的唯一性”(字段)表示保证每个记录都具有两个字段的唯一组合,但并非每个记录都具有两个字段之一的唯一值。一个记录可能具有值(1, 2)
,另一个值(1, 3)
。对是唯一的,值不是。在这种情况下,记录的每个字段都是该对的函数,但不是构成该对的一个字段的函数(除非这也是唯一的,但您将要处理冗余信息)。