所谓函数依赖是指关系中一个或一组属性的值可以决定其它属性的值。函数依赖正象一个函数 y = f(x) 一样,x的值给定后,y的值也就唯一地确定了。
2.1函数依赖的种类
2.1.1完全函数依赖和部分函数依赖
完全函数依赖:在一个关系中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖。
比如:有一个表,有如下属性:学生ID,学生姓名,所修课程ID,课程名称,成绩
完全依赖:(学生ID,所修课程ID)→成绩
成绩既不能单独依赖于学生ID,也不能单独依赖于所修课程ID,因此成绩完全函数依赖于关键字。
(学生ID,所修课程ID)→学生姓名
部分依赖:学生ID→学生姓名
学生姓名可以依赖于关键字的一个主属性--学生ID,因此学生姓名部分函数依赖于(学生ID,所修课程ID)。
2.1.2 平凡函数依赖和非平凡函数依赖
平凡函数依赖:当关系中属性集合Y是属性集合X的子集时,存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。
例如:在在关系学生课程表SC(学生号Sno,课程号 Cno,成绩 Grade)中,
(Sno, Cno) → Sno ,(Sno, Cno) → Cno
非平凡函数依赖:当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。
例如:(Sno, Cno) → Grade
2.1.3 传递函数依赖
传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
例:关系S1(学号,系名,系主任)
学号 → 系名,系名 → 系主任,并且 系名 -\→ 学号,所以 学号 → 系主任 为传递函数依赖
阅读(2090) | 评论(0) | 转发(0) |