国开《数据库基础与应用》第三章 3-1-4:完全和部分函数依赖
3-1-4:完全和部分函数依赖
定义:设一个关系为R(U),X和Y为属性集U上的子集,若存在X→Y,同时X的一个真子集X′也能够函数决定Y,即存在X′→Y,则称X→Y的函数依赖为部分函数依赖,或者说,X部分函数决定Y,Y部分函数依赖于X,可记作为XY,X→Y的部分函数依赖也称为局部函数依赖;否则若在X中不存在一个真子集X′,使得X′也能够函数决定Y,则称X→Y为完全函数依赖,即X完全函数决定Y,而Y完全函数依赖于X,可记作为XY。
例如:职工号同其他每个属性之间的函数依赖都是完全函数依赖。“(职工号,性别)→年龄”的函数依赖为部分函数依赖,因为在其中存在着“职工号→年龄”的函数依赖。
又例如:设一个教师任课关系为(教工号,姓名,职称,课程号,课程名,课时数,课时费),假定每个教师可以讲授多门课程,每门课程可以由不同教师来讲授。(教工号,课程号)的组合为此关系的候选码,并可选定为此关系的主码。
对此关系进行函数依赖分析:该关系中存在“教工号→姓名”和“教工号→职称”这两个完全函数依赖。该关系中又存在着“课程号→课程名”和“课程号→课时数”这两个完全函数依赖。一个教师所讲某门课程的课时费通常是由教师的职称和课程号共同决定的,即存在“(职称,课程号)→课时费”这个完全函数依赖。
该关系的侯选码为(教工号,课程号),“(教工号,课程号)→姓名”,“(教工号,课程号)→职称”,“(教工号,课程号)→课程名”,“(教工号,课程号)→课时数”等都是部分函数依赖。(教工号,课程号)→课时费是一种传递函数依赖。