关系代数 - 函数依赖
Relational algebra - Functional Dependencies
我只是想确定...如果我有两个依赖项,例如
- a -> c
- b -> c
会不会和这个一样
- a b -> c
如果我对你的问题理解正确,你是在问两组函数依赖性 {a → c, b → c}
和 {ab → c}
是否等价。这个问题的答案是没有.
从a → c
或b → c
你可以证明ab → c
(通过应用函数依赖的定义:x → y
当且仅当,当两个元组具有相同的 x
值时,它们也具有相同的 y
值)。您还可以使用 Armstrong’s Axioms 推导 ab → c
(例如,从 a → c
开始,首先使用 b
应用增广公理,获得 ab → bc
,然后将分解应用到获得ab → c
).
但反之亦然:您不能从 ab → c
证明 a → c
,也不能证明 b → c
,并且您不能从 [=14] 推导出两个依赖项中的任何一个=] 通过阿姆斯特朗公理。例如,考虑依赖关系 StudentNumber, CourseName → Grade
(断言一对 StudentNumber
和 CourseName
只能有 Grade
)。从这种依赖关系中,您不能断言对于 StudentNumber
只有 Grade
,或者对于 CourseName
只有 Grade
.
我只是想确定...如果我有两个依赖项,例如
- a -> c
- b -> c
会不会和这个一样
- a b -> c
如果我对你的问题理解正确,你是在问两组函数依赖性 {a → c, b → c}
和 {ab → c}
是否等价。这个问题的答案是没有.
从a → c
或b → c
你可以证明ab → c
(通过应用函数依赖的定义:x → y
当且仅当,当两个元组具有相同的 x
值时,它们也具有相同的 y
值)。您还可以使用 Armstrong’s Axioms 推导 ab → c
(例如,从 a → c
开始,首先使用 b
应用增广公理,获得 ab → bc
,然后将分解应用到获得ab → c
).
但反之亦然:您不能从 ab → c
证明 a → c
,也不能证明 b → c
,并且您不能从 [=14] 推导出两个依赖项中的任何一个=] 通过阿姆斯特朗公理。例如,考虑依赖关系 StudentNumber, CourseName → Grade
(断言一对 StudentNumber
和 CourseName
只能有 Grade
)。从这种依赖关系中,您不能断言对于 StudentNumber
只有 Grade
,或者对于 CourseName
只有 Grade
.