数据库 - 关系模式函数依赖
2015-05-07 09:09
267 查看
关系数据库逻辑设计
针对具体问题,如何构造一个适合于它的数据模式
数据库逻辑设计的工具──关系数据库的规范化理论
关系模式由五部分组成,即它是一个五元组:
现实世界属性间相互联系的抽象
数据内在的性质
语义的体现
2. 数据依赖的类型
函数依赖(Functional Dependency,简记为FD)
多值依赖(Multivalued Dependency,简记为MVD)
其他
关系模式Student(U, F)中存在的问题
1. 数据冗余太大
2. 更新异常(Update Anomalies)
3. 插入异常(Insertion Anomalies)
4. 删除异常(Deletion Anomalies)
结论:
Student关系模式不是一个好的模式。
“好”的模式:
不会发生插入异常、删除异常、更新异常,
数据冗余应尽可能少
原因:由存在于模式中的某些数据依赖引起的(这也是对关系
模式进行分解的根本理由)
解决方法:通过分解关系模式来消除其中不合适的数据依赖
平凡函数依赖与非平凡函数依赖
完全函数依赖与部分函数依赖
传递函数依赖
所有关系实例均要满足
语义范畴的概念
例如:姓名→年龄这个函数依赖只有在该部门没有
同名人的条件下成立
针对具体问题,如何构造一个适合于它的数据模式
数据库逻辑设计的工具──关系数据库的规范化理论
关系模式由五部分组成,即它是一个五元组:
R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F: 属性间数据的依赖关系集合
数据依赖
一个关系内部属性与属性之间的约束关系现实世界属性间相互联系的抽象
数据内在的性质
语义的体现
2. 数据依赖的类型
函数依赖(Functional Dependency,简记为FD)
多值依赖(Multivalued Dependency,简记为MVD)
其他
关系模式R(U, D, DOM, F) 简化为一个三元组: R(U, F) 当且仅当U上的一个关系r满足F时,r称为关系模式 R(U, F)的一个关系
数据依赖对关系模式的影响
[例1]建立一个描述学校教务的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade) 单一的关系模式 : Student <U、F> U ={ Sno, Sdept, Mname, Cname, Grade }
属性组U上的一组函数依赖F: F ={ Sno → Sdept, Sdept → Mname, (Sno, Cname) → Grade }
关系模式Student(U, F)中存在的问题
1. 数据冗余太大
2. 更新异常(Update Anomalies)
3. 插入异常(Insertion Anomalies)
4. 删除异常(Deletion Anomalies)
结论:
Student关系模式不是一个好的模式。
“好”的模式:
不会发生插入异常、删除异常、更新异常,
数据冗余应尽可能少
原因:由存在于模式中的某些数据依赖引起的(这也是对关系
模式进行分解的根本理由)
解决方法:通过分解关系模式来消除其中不合适的数据依赖
分解关系模式
把这个单一模式分成3个关系模式: S(Sno,Sdept,Sno → Sdept); SC(Sno,Cno,Grade,(Sno,Cno) → Grade); DEPT(Sdept,Mname,Sdept→ Mname)
规范化
规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。最终使各关系模式达到某种程度的分离,即“一事一地”的模式设计原则
函数依赖
函数依赖(Functional Dependency,FD)平凡函数依赖与非平凡函数依赖
完全函数依赖与部分函数依赖
传递函数依赖
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。 若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。
设有关系模式R(U),X和Y是属性集U的子集,函数依赖(functional dependency,简记为FD)是形为X→Y的一个命题,若对于R(U)的任意一个可能的关系r ,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵 t[Y]=s[Y],那么称FD X→Y在关系模式R(U)中成立。
所有关系实例均要满足
语义范畴的概念
例如:姓名→年龄这个函数依赖只有在该部门没有
同名人的条件下成立
平凡函数依赖与非平凡函数依赖
在关系模式R(U)中,对于U的子集X和Y, 如果X→Y,但Y X,则称X→Y是非平凡的函数依赖 若X→Y,但Y X, 则称X→Y是平凡的函数依赖 例:在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) → Grade 平凡函数依赖: (Sno, Cno) → Sno (Sno, Cno) → Cno
若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。 若X→Y,Y→X,则记作X←→Y。 若Y不函数依赖于X,则记作X→Y。
完全函数依赖与部分函数依赖
在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’ Y, 则称Y对X完全函数依赖,记作 X F Y。 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X P Y。
[例1] 中(Sno,Cno)→Grade是完全函数依赖, (Sno,Cno)→Sdept是部分函数依赖 因为Sno →Sdept成立,且Sno是(Sno,Cno)的真子集
传递函数依赖
在R(U)中,如果X→Y,(Y X) ,Y→X Y→Z,Z ∈Y, 则称Z对X传递函数依赖。 记为:X → Z 注: 如果Y→X, 即X←→Y,则Z直接依赖于X。 例: 在关系Std(Sno, Sdept, Mname)中,有: Sno → Sdept,Sdept → Mname Mname传递函数依赖于Sno
相关文章推荐
- 数据库--ER模型、函数依赖、无损分解、关系代数
- 关系数据库设计理论(2) 函数依赖
- 数据库--ER模型、函数依赖、无损分解、关系代数
- 关系数据库规范化理论 函数依赖与范式理论
- 关系数据库规范化理论 函数依赖与范式理论
- 关系数据库设计理论(二)函数依赖的规则
- 函数依赖与关系模式分解的一些技巧整理
- 关系模式,函数依赖,范式
- 关系数据库理论:范式判断、函数依赖、无损分解、正则覆盖
- 关系模式的分解与函数依赖模式的判断
- 函数依赖与关系模式分解的一些技巧整理
- 数据库系统原理(4)--数据依赖与关系模式规范化
- 数据库---SQL双重否定、函数依赖、关系代数的基本运算
- 【转】数据依赖与关系模式规范化
- 转:关系数据库中关系模式的规范过程
- 数据库笔记--关系模式
- angularjs指令link函数参数scope,指令controller依赖注入的$scope,与指令外部controller的$scope的关系
- 数据库系统原理——ER图转换成关系模式集的算法
- 【数据库知识补充】模式与对象的关系
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系