Database design 数据库-功能依赖关系

Database design 数据库-功能依赖关系,database-design,functional-dependencies,Database Design,Functional Dependencies,给定一个关系模式R(a,B,C,D,E,G) 对于一组功能依赖项: F = {A->BC,C->BG,CD->E,G->D,E->B,CE->A,BH->E} 有人能给我解释一下如何找到C和E之间的关系吗?在C和A之间?给定一个具有一组函数依赖关系的关系模式,短语“查找两个属性之间的关系”并不清楚。C和E之间的关系是什么?我们应该知道C是否决定E?或者如果E决定C?或者它们是否属于同一候选密钥?或者别的什么 例如,假设您想知道C是否确定E或viceve

给定一个关系模式R(a,B,C,D,E,G)

对于一组功能依赖项:

F = {A->BC,C->BG,CD->E,G->D,E->B,CE->A,BH->E}

有人能给我解释一下如何找到C和E之间的关系吗?在C和A之间?

给定一个具有一组函数依赖关系的关系模式,短语“查找两个属性之间的关系”并不清楚。C和E之间的关系是什么?我们应该知道C是否决定E?或者如果E决定C?或者它们是否属于同一候选密钥?或者别的什么

例如,假设您想知道C是否确定E或viceversa,您可以计算其中一个的闭包,并确定另一个是否属于此闭包

例如,如果E属于C的闭包(写C+),那么我们知道C->E成立(也就是说,函数依赖项C->E可以从给定函数依赖项的集合F派生)。反之,如果C属于E的闭包,那么我们知道E->C成立

一组属性的闭包可以通过使用可用依赖项的简单算法来计算:我们从属性集开始,对于每个依赖项,左部分包含在闭包中,右部分不包含,我们将右部分添加到闭包中。例如:

C+ = C  (we start with the attribute itself)
C+ = CBG (using C->BG, we add BG to the closure)
C+ = CBGD (using G -> D)
C+ = CBGDE (using CD -> E)
C+ = CBGDEA (using CE -> A)
没有其他依赖项可以使用,因此我们停在这里并注意到,由于E属于C的闭包(实际上C是一个候选键),C->E保持不变,而在计算E+时,我们发现闭包是be,因此E不确定C。

Hi。“两者之间的关系”没有任何意义。请编辑您的文章,正确使用技术术语。(也许你想知道FD A->A是否有效等?)。另外,请谷歌'stackexchange家庭作业'&编辑一些你做的工作。