关系数据库的规范化理论

关系数据库的规范化理论

ID:45898537

大小:562.00 KB

页数:25页

时间:2019-11-19

关系数据库的规范化理论_第1页
关系数据库的规范化理论_第2页
关系数据库的规范化理论_第3页
关系数据库的规范化理论_第4页
关系数据库的规范化理论_第5页
资源描述:

《关系数据库的规范化理论》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章关系数据库的设计理论7.1模式规范化问题的提出7.2函数依赖7.3范式和规范化7.4关系模式的分解7.1模式规范化问题的提出关系数据库逻辑设计针对具体问题,如何构造一个适合于它的数据模式数据库逻辑设计的工具──关系数据库的规范化理论【例】描述学生的数据:学号(Sno)、姓名(Sname)、年龄(Sage)、院系(Sdept)、系主任姓名(Dname)、课程名(Cname)、成绩(Grade)学生数据库的语义:1)一个系有若干学生,一个学生只属于一个系2)一个系只有一名主任3)一个学生可选修多门课程,每门课程可有若干学生4)每个学生所学的每门课程都有一

2、个成绩关系模式Student(Sno,Sname,Sage,Sdept,Dname,Cname,Grade)存在如下问题1)数据冗余一个系有若干学生,每个学生的信息中都会有所在系和系主任的名字,系主任被反复存储2)不一致性由于系主任存储冗余,当某个系更新系主任时,可能只修改了一部分,而另一部分没有修改,造成存储数据的不一致3)插入异常如果某个系还没有招收学生,那么就无法填写系主任4)删除异常要删除一个学生的所有成绩,则把该学生的姓名、年龄等基本信息也都删除结论:Student关系模式不是一个好的模式“好”的模式不会发生插入异常、删除异常、更新异常,数据冗余

3、应尽可能少原因:由存在于模式中的某些数据依赖引起的数据依赖是现实世界事物之间相互关联性的一种表达解决方法:通过分解关系模式消除其中不合适的数据依赖模式问题的解决办法若将关系分解为以下3个关系:S{Sno,Sname,Sage}、D{Dept,Dname}、SC{Sno,Cname,Grade}则可以解决所有的异常数据冗余:一个系的系主任只在D中出现,S中只有每个学生的基本信息和所在的系,避免了系主任的冗余数据不一致:由于不存在数据冗余,也就不存在部分修改,即不一致插入异常:由于系主任插入在D表中,只要有系名即可,避免了没有学生就不能写系主任删除异常:删除成

4、绩只会删除SC表的数据,而S表中的信息被保留7.2函数依赖7.2.1函数依赖的定义7.2.2平凡函数依赖与非平凡函数依赖7.2.3完全函数依赖与部分函数依赖7.2.4传递函数依赖7.2.1函数依赖的定义【定义】设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→YX称为这个函数依赖的决定属性集Y=f(X)【例】在学生关系中,学号是唯一的,也就是说,不存在学号相同,而姓名不同的学生元祖,因此有学号→姓名说

5、明:1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件2)函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立3)数据库设计者可以对现实世界作强制的规定例如规定不允许同名人出现,函数依赖“姓名→年龄”成立所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组Student(Sno,Sname,Sage,Sdept,Dname,Cname,Grade)中的函数依赖若Student中允许重名,则:Sno→Sname、Sno

6、→Sage、Sno→Sdept、Sdept→Dname、(Sno,Cname)→Grade若Student中不允许重名,则增加:Sname→Sno,Sname→Sage、Sname→Sdept、(Sname,Cname)→Grade注:若X→Y,并且Y→X,则记为X←→Y如Sno←→Sname若Y不函数依赖于X,则记为:XY例如SageSdept7.2.2平凡函数依赖与非平凡函数依赖【定义】关系模式R(U)中,对于U的子集X和Y如果X→Y,但YX,则称X→Y是非平凡的函数依赖若X→Y,但YX,则称X→Y是平凡的函数依赖例:在关系SC(Sno,Cno,G

7、rade)中,非平凡函数依赖:(Sno,Cno)→Grade平凡函数依赖:(Sno,Cno)→Sno、(Sno,Cno)→Cno任一关系模式,平凡函数依赖都必然成立,它不反映新的语义,因此若不特别声明,我们总是讨论非平凡函数依赖4.2.3完全函数依赖与部分函数依赖【定义】关系模式R(U)中,对于U的子集X和Y如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y完全函数依赖于X,记作XY若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作XY【例】在关系SC(Sno,Cname,Grade)中,由于:Sno→Grade,Cname→Gra

8、de,因此:(Sno,Cname)GradefPf7.2.4传递函

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。