数据依赖对关系模型
数据依赖对关系模型
关系模式(U,D,DOM,F)
- 简化为一个三元组
-
- R(U,F)
- 当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系
学校数据库的语义
- 一个系有若干个学生,一个学生只有一个系
- 一个系只有一名主任
- 一个学生可以选修多门课程,每门课程有若干学生选修
- 每个学生所学的每门课程都有一个成绩
属性U上的一组函数依赖F:
- F = {Sno -> sdept,sdept ->Mname,(Sno,Cno)->grade}
假设存在这样一个关系
- Student(Sno , Sdept , Mname , Cno ,Grade)
- 系名、系主任重复出现 (数据冗余)
- 张明退休,李四接替 (更新异常)
- 一个新系刚成立,尚无学生 (插入异常)
- 一个系的学生全部毕业 (删除异常)
原因:
- 由于存在关系模式中的某些数据依赖引起的
解决方法
- 通过分解模型来消除其中的不适
定义6.1
-
设R(U)是一个属性集U上的关系模式
-
函数依赖是指R的所有关系实例均瑶满足的约束条件
-
函数依赖的语义范畴的概念
-
数据库设计者可以对现实世界做出强制规定。
例:Student(Sno,Sname,Ssex,Sage,Sdept)
- 假设不允许重名,则有:
- Sno->Ssex,Sno->sage,sno->sdept,Sno<–>sname,sanme->ssex,sname->sage,snaem->sage
函数依赖可以在不同角度分:
- 在关系模式中R(U)中,对于U的子集X和Y
-
- 如果X-》Y,但Y不属于X,则称X-》y是非平凡的依赖
-
- 如果X-》Y,但Y属于X,则称X-》y是非平凡的依赖
在关系中sc(sno,cno,grade)
- 非平凡的函数依赖(sno,cno)=>grade