假设我们有以下功能依赖:
A->B, B->C, C->B, and A->C
功能依赖A->C
是明确的,即你不必通过B从A到达C.
A和C之间是否存在传递依赖?如果我想用它来构建我的关系并使关系满足第三范式,我是否必须将它分解为两个关系?:
A* B
B* C
(其中*表示主键,每行是关系的标题)
或者保留它:
A* B C
仍然满足3NF?
明确地我的问题是功能依赖:A->B, B->C, C->B, and A->C
A->C
是一个传递依赖,为什么/为什么不呢?
答案 0 :(得分:0)
A-> C不是传递依赖。 A-> B-> C是传递依赖性。
术语“及物性”仅仅意味着依赖性不止一部分。注意,关系可以满足3NF,同时仍具有传递依赖性。但是,在这种情况下,为了满足3NF,你需要将A,B,C分解成至少两个与A,B和C都是候选键的关系。
答案 1 :(得分:0)
如果这是一个完整的依赖列表,那么有一个transitive dependency A - > B - > C,因为:
(如果这不是一个完整的依赖列表,那么我们不知道是否可能存在B - > A,因此我们不知道该传递依赖是否成立。)< / em>的
还存在传递依赖性A - >; C - &gt;乙
A-> C是传递依赖,为什么/为什么不?
传递依赖在3个属性之间,所以没有。
要规范化与3NF的关系,您需要将其拆分为2个关系......
...或...
...其中*表示密钥(主要或备用)。