日期:2014-05-18  浏览次数:20386 次

一个函数依赖问题
我查BCNF的时候 一般都会看到这样的例子:
STJ(S,T,J)中S是学生,T表示教师,J表示课程,每一教师只教一门课,每门课有多个教师教,一个学生选定某门课,就对应一个固定的教师。(S,J)→T,(S,T)→J,T→J

说这个例子是3NF不是BCNF。在这个例子里(S,J)和(S,T)都是候选码,如果选(S,T)为主码,那S和T就是主属性,J就是非主属性了,但是J对(S,T)是存在部分依赖的啊,应该连2NF都不是啊。哪位能解释一下呢。。。我对这个概念还不是很清楚

------解决方案--------------------
楼主,不好意思,刚才没有看清楚。
首先,包含在任一候选关键字中的属性称主属性,这个是主属性的定义。
在此函数依赖中,。(S,J)和(S,T)均为候选码,即S,J,T均为主属性。
2NF中提及,非主属性对码的部分依赖,是不存在的,所以符合2NF。
------解决方案--------------------
2NF说的是非主属性。
BCNF中要表达的意思是每一个决定因素都是码,但T→J 
中T不是码,所以不符合BCNF
------解决方案--------------------
方式一:STJ(S,T,J)是一個表,(S,T,J)是主鍵

方式二:ST(S,T)是一個表,(S,T)是主鍵;TJ(T,J)是另外一個表,(T)是主鍵