《数据库》课件第1章-范式与非范式化.ppt

上传人(卖家):momomo 文档编号:5900360 上传时间:2023-05-14 格式:PPT 页数:25 大小:457KB
下载 相关 举报
《数据库》课件第1章-范式与非范式化.ppt_第1页
第1页 / 共25页
《数据库》课件第1章-范式与非范式化.ppt_第2页
第2页 / 共25页
《数据库》课件第1章-范式与非范式化.ppt_第3页
第3页 / 共25页
《数据库》课件第1章-范式与非范式化.ppt_第4页
第4页 / 共25页
《数据库》课件第1章-范式与非范式化.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、E-R图转换规则图转换规则第一章第一章数据库基础数据库基础-4范式与非范式化范式与非范式化数据冗余数据冗余函数依赖函数依赖第一,二,三范式第一,二,三范式BC范式范式非范式化非范式化1.冗余是数据的重复出现。冗余是数据的重复出现。2.数据的冗余会导致一些问题:数据的冗余会导致一些问题:更新异常:当插入、删除、修改数据时会导致数据的不更新异常:当插入、删除、修改数据时会导致数据的不一致性。一致性。不必要的占用多余的空间不必要的占用多余的空间。例:描述学校的数据库:例:描述学校的数据库:学生的学号(学生的学号(StuID)、所在系()、所在系(DepName)系主任姓名(系主任姓名(DHName)

2、、课程名()、课程名(CourseName)成绩(成绩(Grade)关系模式关系模式:Student(StuID,DepName,DHName,CourseName,Grade)数据冗余太大数据冗余太大,浪费大量的存储空间。每一个系主任的姓名重复出现浪费大量的存储空间。每一个系主任的姓名重复出现 更新异常(更新异常(Update Anomalies),某系更换系主任后,系统必须),某系更换系主任后,系统必须修改与该系学生有关的每一个元组修改与该系学生有关的每一个元组3.插入异常(插入异常(Insertion Anomalies),该插的数据插不进去该插的数据插不进去,如果如果一个系刚成立,尚无

3、学生,我们就无法把这个系及其系主任的信息存入一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。数据库。删除异常(删除异常(Deletion Anomalies),不该删除的数据不得不删不该删除的数据不得不删,如如果某个系的学生全部毕业了,果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。个系及其系主任的信息也丢掉了。结论:该关系模式不是一个好的关系模式。结论:该关系模式不是一个好的关系模式。好的关系模式:好的关系模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余

4、应尽可能少。数据冗余应尽可能少。原因:由存在于模式中的某些原因:由存在于模式中的某些数据依赖数据依赖引起的引起的解决方法:通过分解关系模式来解决方法:通过分解关系模式来消除其中消除其中不合适的不合适的数据依赖数据依赖。范式化是一种科学方法,通过使用某些规则把复杂的表格结范式化是一种科学方法,通过使用某些规则把复杂的表格结构分解为简单的表格结构。构分解为简单的表格结构。可以降低表中的冗余和消除不一致和磁盘空间利用的问题。可以降低表中的冗余和消除不一致和磁盘空间利用的问题。范式用来保证各种类型的不规范和不一致性不会引入到数据范式用来保证各种类型的不规范和不一致性不会引入到数据库库 First No

5、rmal Form(第一范式第一范式)Second Normal Form(第二范式第二范式)Third Normal Form(第三范式第三范式)Boyce Codd Normal Form(BC范式范式)如果表中的每个单元格都是单值的,即表不包含表,则称该表满如果表中的每个单元格都是单值的,即表不包含表,则称该表满足第一范式。足第一范式。学号姓名成绩数据库操作系统数据结构001张宏857890002刘清768089003李超907585 定义定义1:属性:属性Y函数依赖于函数依赖于X,当且仅当对每一个,当且仅当对每一个X,恰有一个,恰有一个Y的值的值与之对应。属性与之对应。属性X被称为决定

6、因子。被称为决定因子。x,y满足函数关系满足函数关系y=f(x),记作:记作:x y。含义是。含义是x函数确定函数确定y,或或y函数依赖于函数依赖于x。f判断下列判断下列Ecode Ename 是否成立?是否成立?fEcode EnameE1 MacE1 JaneE2SandraE3HenryEcode EnameE1 MacE2 macE3Sandra不成立不成立成立成立有关系模式有关系模式SC(StuID,CourseID,CourseName,Grade)判断判断主键,写出所有函数依赖关系。主键,写出所有函数依赖关系。fp判断下列函数依赖是部分依赖还是完全依赖?判断下列函数依赖是部分依赖

7、还是完全依赖?(StuID,CourseID)Grade(StuID,CourseID)CourseName定义定义2:在关系模式中,如果:在关系模式中,如果X Y,并且对于,并且对于X的任何一个真的任何一个真子集子集X,都有,都有X Y,则称则称Y完全函数依赖于完全函数依赖于X,记作:,记作:X Y。定义定义3:若:若X Y,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y部分函数依部分函数依赖于赖于X,记作,记作X P Y。注注:X通常为关系的码,有时也可为非主属性,通常为关系的码,有时也可为非主属性,X 通常为关系的码的通常为关系的码的一个部分一个部分,Y通常为非主属性。通常为非

8、主属性。定义定义2:在关系模式中,如果:在关系模式中,如果X Y,并且对于,并且对于X的任何一个真的任何一个真子集子集X,都有,都有X Y,则称则称Y完全函数依赖于完全函数依赖于X,记作:,记作:X Y。定义定义3:若:若X Y,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y部分函数依部分函数依赖于赖于X,记作,记作X P Y。定义定义2:在关系模式中,如果:在关系模式中,如果X Y,并且对于,并且对于X的任何一个真的任何一个真子集子集X,都有,都有X Y,则称则称Y完全函数依赖于完全函数依赖于X,记作:,记作:X Y。定义定义3:若:若X Y,但,但Y不完全函数依赖于不完全函数依赖

9、于X,则称,则称Y部分函数依部分函数依赖于赖于X,记作,记作X P Y。每一个非主属性都完全依赖于码,而不是部分依赖于码。每一个非主属性都完全依赖于码,而不是部分依赖于码。示例:示例:关系模式关系模式SLC(StuID,DepName,Sloc,CourseID,Grade)Sloc为学生住处,假设每个系的学生住在同一个地方。写出所有可能的为学生住处,假设每个系的学生住在同一个地方。写出所有可能的函数依赖关系。判断其是否满足第二范式。函数依赖关系。判断其是否满足第二范式。解决方案:解决方案:(StuID,CourseID)Grade StuID DepName(StuID,CourseID)D

10、epName StuID Sloc (StuID,CourseID)Sloc DepName Slocfpp(1)插入异常插入异常假设假设StuID12001,DepNameIS,SlocN的学生还未选的学生还未选课,因课程号是主属性,因此该学生的信息无法插入课,因课程号是主属性,因此该学生的信息无法插入SLC。(2)删除异常删除异常 假定某个学生本来只选修了假定某个学生本来只选修了3号课程这一门课。现在因身体不适,号课程这一门课。现在因身体不适,他连他连3号课程也不选修了。因课程号是主属性,此操作将导致该学号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。生信息的

11、整个元组都要删除。(3)数据冗余度大数据冗余度大 如果一个学生选修了如果一个学生选修了10门课程,那么他的门课程,那么他的DepName和和Sloc值值就要重复存储了就要重复存储了10次。次。(4)修改复杂修改复杂 例如学生转系,在修改此学生元组的例如学生转系,在修改此学生元组的DepName值的同时,还可值的同时,还可能需要修改住处(能需要修改住处(Sloc)。如果这个学生选修了)。如果这个学生选修了K门课,则必须无门课,则必须无遗漏地修改遗漏地修改K个元组中全部个元组中全部DepName、Sloc信息。信息。结论:不满足第二范式的关系模式不是好的关系模式。结论:不满足第二范式的关系模式不是

12、好的关系模式。原因:原因:DepName、Sloc部分函数依赖于码。部分函数依赖于码。解决方法:解决方法:SLC分解为两个关系模式,以消除这些部分函数依赖分解为两个关系模式,以消除这些部分函数依赖 SC(StuID,CourseID,Grade)SL(StuID,DepName,Sloc)有关系模式有关系模式:Employee(Ecode,ProjCode,DepName,DeptHead,Hours),其中一个员工可以做多个项目,一个项目也可以由多个员工来做。其中一个员工可以做多个项目,一个项目也可以由多个员工来做。判断其是否满足第二范式?判断其是否满足第二范式?每一非主属性都不传递依赖于关

13、系的候选键,则关系模式为每一非主属性都不传递依赖于关系的候选键,则关系模式为第三范式。第三范式。示例:示例:2NF关系模式关系模式SL(StuID,DepName,Sloc)是否满足第三范式?是否满足第三范式?解决方案:解决方案:StuID DepNameDepName SlocStuID SlocSloc传递函数依赖于传递函数依赖于StuID,即,即SL中存在非主属性对码的中存在非主属性对码的传递函数依赖。不满足第三范式。传递函数依赖。不满足第三范式。该关系模式中,当系的住址更换了,假设这个系有该关系模式中,当系的住址更换了,假设这个系有n个人,个人,则需要更换则需要更换n次。次。结论:不满

14、足第三范式的关系模式也不能称为好的关系模式。结论:不满足第三范式的关系模式也不能称为好的关系模式。解决方法:解决方法:以消除传递函数依赖:以消除传递函数依赖:SD(StuID,DepName)DL(DepName,Sloc)SD的码为的码为StuID,DL的码为的码为DepName。Empolyee1(Ecode,ProjCode,Hours)Employee2(Ecode,DepName,DeptHead)是否满足第三范式?是否满足第三范式?在满足第三范式的前提下,如果同时满足以下三个条件,则该在满足第三范式的前提下,如果同时满足以下三个条件,则该范式不是一个范式不是一个BC范式。范式。1.

15、有多个后选键有多个后选键2.这里的多个后选键是复合键这里的多个后选键是复合键3.多个后选键之间有重叠多个后选键之间有重叠 示例:示例:Project(Ecode,Name,ProjCode,Hours)解决方案:解决方案:变成变成BCNF:1.选出一组候选键。把具有完全依赖关系的非主属性加入该表中。选出一组候选键。把具有完全依赖关系的非主属性加入该表中。2.将剩余的主属性与其依赖的主属性组合为另一个表。将剩余的主属性与其依赖的主属性组合为另一个表。在一个表格中有意义地引入冗余以改进性能被称为非范式化。在一个表格中有意义地引入冗余以改进性能被称为非范式化。Orders(OrderID,Produ

16、ctId,Qty)Products(ProductId,Desc,Cost)需要计算每个订单的总价,用到连接运算,而连接运算在有需要计算每个订单的总价,用到连接运算,而连接运算在有成千上万的行时,服务器会花很长时间进行处理。因此,成千上万的行时,服务器会花很长时间进行处理。因此,非范式化:非范式化:Orders(OrderID,ProductId,Qty,Cost,OrderCost)设有一教学管理数据库,其属性为:学号设有一教学管理数据库,其属性为:学号(StuID),课程号,课程号(CourseID),成绩,成绩(Grade),任课教师,任课教师(TeaID),教师所在的,教师所在的系系(

17、DepName)。这些数据有下列语义:。这些数据有下列语义:学号和课程号分别与其代表的学生和课程一一对应;学号和课程号分别与其代表的学生和课程一一对应;一个学生所修的每门课程都有一个成绩;一个学生所修的每门课程都有一个成绩;每门课程只有一位任课教师,但每位教师可以有多门课程;每门课程只有一位任课教师,但每位教师可以有多门课程;每个教师只属于一个系。每个教师只属于一个系。(1)试根据上述语义确定函数依赖集。试根据上述语义确定函数依赖集。(2)确定为第几范式。确定为第几范式。1.商场需要记录的信息包括商场编号(商场编号不重复)、商场名称、地商场需要记录的信息包括商场编号(商场编号不重复)、商场名称

18、、地址和联系电话。址和联系电话。2.每个商场包含不同的部门,部门需要记录的信息包括部门编号(不同商每个商场包含不同的部门,部门需要记录的信息包括部门编号(不同商场的部门编号不同)、部门名称、位置分布和联系电话。场的部门编号不同)、部门名称、位置分布和联系电话。3.每个部门雇用了多名员工处理日常事务,每名员工只能属于一个部门(每个部门雇用了多名员工处理日常事务,每名员工只能属于一个部门(新进员工在培训期不隶属于任何部门)。员工需要记录的信息包括员工编号新进员工在培训期不隶属于任何部门)。员工需要记录的信息包括员工编号、姓名、岗位、电话号码和工资。、姓名、岗位、电话号码和工资。4.每个部门的员工中

19、有一个是经理,每个经理只能管理一个部门。系统要每个部门的员工中有一个是经理,每个经理只能管理一个部门。系统要记录每个经理的任职时间。记录每个经理的任职时间。商场(商场(商场编号商场编号,商场名称,地址,联系电话),商场名称,地址,联系电话)部门(部门(部门编号部门编号,部门名称,位置分布,联系电话,部门名称,位置分布,联系电话,商场编号商场编号)员工(员工(员工编号员工编号,姓名,岗位,电话号码,工资,姓名,岗位,电话号码,工资,部门编号部门编号)经理(经理(员工编号员工编号,任职时间,任职时间,部门编号部门编号)5.为了使商场有紧急事务时能联系到轮休的员工,要求每位员为了使商场有紧急事务时能

20、联系到轮休的员工,要求每位员工必须且只能登记一位紧急联系人的姓名和联系电话(假设不工必须且只能登记一位紧急联系人的姓名和联系电话(假设不同员工可以登记相同的紧急联系人)。同员工可以登记相同的紧急联系人)。商场(商场(商场编号商场编号,商场名称,地址,联系电话),商场名称,地址,联系电话)部门(部门(部门编号部门编号,部门名称,位置分布,联系电话,部门名称,位置分布,联系电话,商场编号商场编号)员工(员工(员工编号员工编号,姓名,岗位,电话号码,工资,姓名,岗位,电话号码,工资,部门编号部门编号,联系人编号联系人编号)经理(经理(员工编号员工编号,任职时间,任职时间,部门编号部门编号)紧急联系人(紧急联系人(联系人编号联系人编号,姓名,电话号码),姓名,电话号码)第一,二,三范式第一,二,三范式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《数据库》课件第1章-范式与非范式化.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|