什么是差异b / w数据库中的功能和传递依赖

问题描述 投票:2回答:4

昨天我正在阅读Normalization,发现A关系在2NF,如果它在1NF并且不包含部分和功能依赖。如果关系是2NF并且不包含任何传递依赖关系,则关系为第三范式。现在我的问题是什么是差异功能和传递依赖

sql database
4个回答
5
投票

当A依赖于B而B取决于C时,传递依赖表达A对C的依赖性。

功能依赖性是同一关系数据库表的两个属性之间的关联。其中一个属性称为行列式,另一个属性称为确定的。对于行列式的每个值,存在与所确定的一个且仅一个值相关联的值。

如果A是行列式并且B是确定的那么我们说A在功能上确定B并且在图形上将其表示为A - > B.符号AàB·也可以表示为B在功能上由A确定。


2
投票

功能依赖

功能依赖性可以定义为关系中属性之间存在的关系。函数依赖关系用于在Boyce Codd Normal Form(缩写为BCNF)中创建关系。如果C和D是关系R的属性,并且属性C在功能上确定属性D,则两个属性之间的功能依赖性可以表示为C-> D.即C-> D意味着当关系R中的两个元组同意X的所有属性时,它们也必须同意Y的所有属性。

即C-> D表示R中的两个元组同意

示例:人员架构下方

人(national_id,姓名,地址);

这里national_id在功能上决定了person_name。因此功能依赖是national_id - > name;

传递依赖

传递依赖是一种功能依赖,其中非主要属性由另一个非主要属性确定。假设C和D是非素数属性,A是关系R的主要属性。

如果A功能确定C和C在功能上确定D.

A->Ç

C-> d

然后,两个属性之间的传递函数依赖关系可以表示为

A-> d

示例:PostCode和City为非主要属性的学生模式下方。

学生(#Id,姓名,年龄,邮政编码,城市)

这里,Id在功能上确定PostCode,PostCode在功能上确定City属性。因此传递函数依赖性

ID->市


1
投票

你可以参考维基:

Functional dependency

在关系数据库理论中,函数依赖性是来自数据库的关系中的两组属性之间的约束。

Transitive dependency

在数据库管理系统中,传递依赖是一种功能依赖,它依赖于传递性。传递依赖只能在具有三个或更多属性的关系中发生。


0
投票

如果在R中存在一组属性Z既不是候选键也不是R的任何键的子集,并且X-> Z和Z-都是关系模式R中的函数依赖性X-> Y是传递依赖性。 > Y持有。

摘自:数据库系统基础第6版 - Elmasri等;

© www.soinside.com 2019 - 2024. All rights reserved.