昨天我正在阅读Normalization并发现了 如果它在1NF中并且不包含部分和功能依赖关系,则关系在2NF中。 如果关系是2NF并且不包含任何传递依赖关系,则关系为第三范式。 现在我的问题是什么是差异功能和传递依赖
答案 0 :(得分:5)
传递依赖表示当A依赖于B而B取决于C时A对C的依赖性。
功能依赖是同一关系数据库表的两个属性之间的关联。其中一个属性称为行列式,另一个属性称为确定的。对于决定因素的每个值,只有一个且只有一个确定的值。
如果A是决定因素而B是确定的那么我们说A在功能上确定B并且在图形上将其表示为A - > B.符号AàB·也可以表示为B在功能上由A确定。
答案 1 :(得分:2)
功能依赖
功能依赖性可以定义为关系中属性之间存在的关系。函数依赖关系用于在Boyce Codd Normal Form(缩写为BCNF)中创建关系。如果C和D是关系R的属性,并且属性C在功能上确定属性D,则两个属性之间的功能依赖性可以表示为C-> D.即C-> D意味着当关系R中的两个元组同意X的所有属性时,它们也必须同意Y的所有属性。
即C-> D表示R中的两个元组同意
示例:人员架构
下方person(national_id,name,address);
这里national_id在功能上决定了person_name。功能依赖是national_id - >名;
传递依赖
传递依赖是一种功能依赖,其中非主要属性由另一个非主要属性决定。假设C和D是非素数属性,A是关系R的主要属性。
如果A功能确定C和C在功能上确定D
A-&以及c
C-> d
然后两个属性之间的传递函数依赖关系可以表示为
A-> d
示例:在PostCode和City为非主要属性的学生模式下方。
学生(#Id,姓名,年龄,邮政编码,城市)
这里,Id在功能上确定PostCode,PostCode在功能上确定City属性。所以传递函数依赖是
ID->城市
答案 2 :(得分:1)
你可以参考wiki:
在关系数据库理论中,函数依赖是一种约束 在数据库的关系中的两组属性之间。
在数据库管理系统中,传递依赖是一种功能 由于传递性而持有的依赖性。传递性的 依赖性只能在具有三个或更多的关系中发生 属性。
答案 3 :(得分:0)
关系模式 R 中的函数依赖 X-> Y 是一个传递函数 依赖性如果 R 中存在一组属性 Z ,则两者都不是 候选键也不是 R 的任何键的子集,并且 X-> Z 和 Z-> Y 都保持。
摘自:数据库系统基础第6版 - Elmasri等;