1、王珊的书上说:如果x->y, y->z, 且y不函数决定x,y不包含于x,则说z传递函数依赖于x.
我的问题是:如果有一个关系模式R(A, B, C, D)有如下函数依赖:
(A, B)->C, C->B,(还有其他的依赖,我没写) 那么按上述定义可以说B传递函数依赖于(A,B),但很显然B是(A,B)的子集,是一个平凡函数依赖,那还能说B是传递函数依赖于(A,B)吗?
我觉得不应该是传递函数依赖,我查别的资料,又有一说:在上述描述的前提下,还有条件z不包含于x或y, 只有这样才可以称为是传递函数依赖。难道是王珊的书上写错了?
2、另一个问题是,3NF到BCNF是消除了主属性对码的部分函数依赖和传递函数依赖,请麻烦给我举个主属性传递函数依赖码的例子,谢谢!
我的问题是:如果有一个关系模式R(A, B, C, D)有如下函数依赖:
(A, B)->C, C->B,(还有其他的依赖,我没写) 那么按上述定义可以说B传递函数依赖于(A,B),但很显然B是(A,B)的子集,是一个平凡函数依赖,那还能说B是传递函数依赖于(A,B)吗?
我觉得不应该是传递函数依赖,我查别的资料,又有一说:在上述描述的前提下,还有条件z不包含于x或y, 只有这样才可以称为是传递函数依赖。难道是王珊的书上写错了?
2、另一个问题是,3NF到BCNF是消除了主属性对码的部分函数依赖和传递函数依赖,请麻烦给我举个主属性传递函数依赖码的例子,谢谢!
最后还可以用(A,B)->B,所以它仍然是一个传递依赖!
我们讨论的所有依赖如果没有特别的声明都是平凡依赖!
包括传递和部分依赖!
举一个王珊书上的例子吧!
存在关系模式STJ(S,T,J)
S代表学生,T代表教师,J代表课程。
有如下条件:每一教师只教一门课。每门课又若干教师,某一学生选定某门课,就对应一个固定教师。
那么便有如下函数依赖!
(S,J)->T
(S,T)->J
T->J
在这里(S,J)(S,T)都是候选码,
但是T->J,也就是说主属性之间存在函数依赖,
那么现在这个关系是3NF,而不是BCNF!
第2个问题:主属性部分函数依赖码,正如 guyanxifei 所举例子一样,但我想看一个主属性传递函数依赖码的例子呀!
F={(CITY,ST)→ZIP,ZIP→CITY}
即城市,街道决定邮政编码,邮政编码决定城市.容易看出,(CITY,ST)和(ST,ZIP)是两个候选码.CITY,ST,ZIP都是主属性. 利用 Armstrong公理系统的推理规则,对于关系模式CSZ的已知条件,证明(ST,ZIP)→(CITY,ST,ZIP).证明:根据题意不难看出只要证明(ST,ZIP)是一个候选码即可,证明步骤如下:
因为ZIP→CITY (F中已给出)
所以(ST,ZIP)→(CITY,ST)
(利用增广率,即在函数依赖的两端加ST)
(ST,ZIP)→(CITY,ST,ZIP)
(用增广率,加ZIP)
这就是主属性之间的传递依赖!
我的问题是:如果有一个关系模式R(A, B, C, D)有如下函数依赖:
(A, B)->C, C->B,(还有其他的依赖,我没写) 那么按上述定义可以说B传递函数依赖于(A,B),但很显然B是(A,B)的子集,是一个平凡函数依赖,那还能说B是传递函数依赖于(A,B)吗?
我觉得不应该是传递函数依赖,我查别的资料,又有一说:在上述描述的前提下,还有条件z不包含于x或y, 只有这样才可以称为是传递函数依赖。难道是王珊的书上写错了? z不可以为主属性,我也看了一本王珊的书,里面是这样说的.
我是说要按王珊书上对传递函数依赖的定义所描述的那样,举出一个主属性传递函数依赖于码的例子。比如:(A, B)->C, C->D, 按定义D是传递函数依赖(A,B)。假设(A,B)是一个码,D是一个主属性,这样不就是主属性传递函数依赖码了吗?我想问的这样的例子。谢谢!