数据库原理10-第4章.ppt

上传人:tian****1990 文档编号:11536412 上传时间:2020-04-27 格式:PPT 页数:32 大小:332KB
返回 下载 相关 举报
数据库原理10-第4章.ppt_第1页
第1页 / 共32页
数据库原理10-第4章.ppt_第2页
第2页 / 共32页
数据库原理10-第4章.ppt_第3页
第3页 / 共32页
点击查看更多>>
资源描述
管理学院信息管理系肖洁,数据库原理及应用,第4章关系数据库规范化理论,本章要点,函数依赖范式及其类型关系模式分解关系模式规范化步骤,一、问题的提出,不合理的关系模式到底存在什么问题,下面举一个实例讨论一下。首先给出一个关系模式:学生S(学号,姓名,性别,年龄系名,系主任姓名,课程名,成绩)具体问题描述如下:(1)一个系有若干名学生,但一名学生只属于一个系;(2)一个系只有一名系主任(正职);(3)一名学生可以选修多门课程,每门课程有若干学生选修(4)每名学生学习一门课程有一个成绩。,学生关系,在对数据库操作的时候,会出现以下问题:(1)冗余太大(2)更新异常(3)插入异常(4)删除异常由于该关系模式存在如上毛病,因此它是一个不好的关系模式。一个好的关系模式应该不会产生插入异常和删除异常、冗余度应尽可能的小。,该关系模式之所以会产生上述问题,是因为这个关系模式中的函数依赖存在某些不好的性质。如果把它改造一下,分成三个关系模式:S1(学号,姓名,年龄,性别,系名)学号为主键;S2(系名,系主任姓名)系名为主键;S3(学号,课程名,成绩)(学号,课程名)为主键。这样就不会产生上述问题。如何改造一个不好的关系模式,使之成为一个好的,合理的关系模式,就是下面要讨论的问题关系规范化。,数据依赖:通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。1、函数依赖假设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作:XY。,二、函数依赖,几点说明:(1)注意函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。(2)若XY,则称X为这个函数依赖的决定因素(Determinant)。(3)若XY,并且YX,则记为XY。(4)若Y不函数依赖于X,则记为XY。,2、平凡函数依赖与非平凡函数依赖在关系模式R(U)中,对于U的子集X和Y,如果XY,但Y不包含于X,则称XY是非平凡函数依赖。若Y包含于X,则称XY为平凡函数依赖。若不特别说明,讨论的都是非平凡的函数依赖。,3、完全函数依赖与部分函数依赖(1)如果XY,并且对于X的任何一个真子集X,都有fXY,则称Y完全函数依赖于X,记作XY。(2)如果XY,但Y不完全函数依赖于X,则称Y部分函数p依赖于X,记作XY。,4、传递函数依赖在关系模式R(U)中,如果XY,YZ,且Y不包含于X,Z不包含于Y,YX,则称Z传递函数依赖于X。例如:在上面提出的学生关系:学生(学号,姓名,系名,系主任姓名,课程名,成绩)中存在以下函数依赖:学号姓名学号系名系名系主任姓名(学号,课程名)成绩传递学号系主任姓名,规范化:通过分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一过程称为规范化(Normalization)。,三、范式与规范化,1、第一范式如果关系模式R的所有属性都是不可分的基本数据项,则这个关系属于第一范式(1NF)。注:不满足第一范式的数据库模式,不能称为关系数据库。,三、范式与规范化,2、第二范式如果关系模式R属于第一范式,且每个非主属性都完全函数依赖于主关键字,则这个关系属于第二范式(2NF)。注:第二范式不允许部分函数依赖。,例:关系模式学生(学号,姓名,系名,系主任姓名,课程名,成绩)存在以下部分函数依赖:p(学号,课程名)姓名,系名,系主任姓名2NF模式分解:(1)把R的属性分开,以构成两个新的关系模式;(2)通过对R的元组进行投影而产生两个新的关系。模式分解后,学生关系分解成S1和S2:S1(学号,姓名,系名,系主任姓名)2NF学号姓名,系名,系主任姓名系名系主任姓名S2(学号,课程名,成绩)2NF(学号,课程名)成绩,3、第三范式若关系模式R属于第一范式,且每个非主属性都不传递依赖于主关键字,则R属于第三范式(3NF)。注:属于第三范式的关系模式,必然属于第二范式,因为可以证明部分函数依赖中含有传递依赖。举例:S1(学号,姓名,系名,系主任姓名)3NF模式分解后,学生关系分解成S11和S12:S11(学号,姓名,系名)3NF学号(姓名,系名)S12(系名,系主任姓名)3NF系名系主任姓名,4、BC范式若关系模式R属于第一范式,且每个属性都不传递依赖于主关键字,则R属于BC范式(BCNF)。注:任何满足BC范式的关系模式都必然满足第三范式。BCNF条件每个非平凡依赖的左边必须包含主关键字。等价于每个决定因素必须包含主关键字。,举例:S11(学号,姓名,系名)BCNF学号(姓名,系名)S12(系名,系主任姓名)BCNF系名系主任姓名S2(学号,课程名,成绩)BCNF(学号,课程名)成绩,1、无损连接如果对新的关系进行自然连接得到的元组的集合与原关系完全一致,则称为无损连接。它反映了模式分解的数据等价原则。2、保持依赖如果分解后总的函数依赖集与原函数依赖集保持一致,则称为保持依赖。它反映了模式分解的依赖等价原则。依赖等价原则保证了分解后的模式与原有的模式在数据语义上的一致性。,四、关系分解原则,关系模式规范化的步骤可以分为如下几步:(1)对1NF关系进行投影,消除原关系中非主属性对主关键字的部分函数依赖,将其转换为若干个2NF关系。(2)对2NF关系进行投影,消除原关系中非主属性对主关键字的传递函数依赖,将其转换为若干个3NF关系。(3)对3NF关系进行投影,消除原关系中主属性对主关键字的部分函数依赖和传递函数依赖,即为使决定因素都包含候选关键字,将其转换为若干个BCNF关系。,五、关系模式规范化步骤,练习题,一、设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。(1)试根据上述规定,写出关系模式R的基本函数依赖和主关键字。(2)说明R不是2NF模式的理由,并把R分解成2NF模式集。(3)进而把R分解成3NF模式集,并说明理由。,参考答案:(1)R的基本FD有3个:(职工编号,日期)日营业额职工编号部门名部门名部门经理关键码为(职工编号,日期)。(2)根据(1),R中存在下列两个FD:(职工编号,日期)(部门名,部门经理)职工编号(部门名,部门经理)其中前一个FD是一个部分依赖,因此R不是2NF模式。R应分解成两个模式:R1(职工编号,部门名,部门经理)2NFR2(职工编号,日期,日营业额)2NF,练习题,(3)R2已经是3NF模式。在R1中,由于存在两个FD:职工编号部门名部门名部门经理即存在一个传递依赖,因此R1不是3NF模式。对R1应分解成两个模式:R11(职工编号,部门名)3NFR12(部门名,部门经理)3NF因此,R分解成3NF模式集时,R11,R12,R2。,练习题,练习题,二、设有一个记录各个球队队员每场比赛进球数的关系模式R(队员编号,比赛场次,进球数,球队名,队长号)如果规定每个队员只能属于一个球队,每个球队只有一个队长,要求:(1)试根据上述规定,写出关系模式R的基本函数依赖和主关键字。(2)说明R不是2NF模式的理由,并把R分解成2NF模式集。(3)进而把R分解成3NF模式集,并说明理由。,练习题,三、设有关系模式R(职工名,项目名,工资,部门号,部门经理)如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。要求:(1)试根据上述规定,写出关系模式R的基本函数依赖和主关键字。(2)说明R不是2NF模式的理由,并把R分解成2NF模式集。(3)进而把R分解成3NF模式集,并说明理由。,练习题,四、已知某书店销售订单的屏幕输出格式如下图所示。,书店的业务描述:(1)每一个订单有唯一的订单编号;(2)一个订单可以订购多种图书,且每一种图书可以在多个订单中出现;(3)一个订单对应一个客户,且一个客户可以有多个订单;(4)每一个客户有唯一的客户编号;(5)每一种图书有唯一的图书编号。,根据上述业务描述和订单格式得到关系模式R:R(订单编号,日期,客户编号,客户名称,客户电话,地址,图书编号,书名,定价,数量)试回答下列问题:(1)写出R的基本函数依赖集和关键码。(2)说明R不是2NF模式的理由,并把R分解成2NF模式集。(3)进而把R分解成3NF模式集,并说明理由。,练习题,练习题,五、假设某公司销售业务中使用的订单格式如下:订单号:1145订货日期:09/15/2008客户名称:ABC客户电话:84141763总金额:12000.00公司的业务规定:(1)订单号是唯一的,每张订单对应一个订单号;(2)一张订单可以订购多种产品,每一种产品可以在多个订单中出现;(3)一张订单有一个客户,且一个客户可以有多张订单;(4)每一个产品编号对应一种产品的品名和价格;(5)每一个客户有一个确定的名称和电话号码。,根据上述表格和业务规则设计关系模式:R(订单号,订货日期,客户名称,客户电话,产品编号,品名,价格,数量)试回答下列问题:(1)写出R的基本函数依赖集和关键码。(2)说明R不是2NF模式的理由,并把R分解成2NF模式集。(3)进而把R分解成3NF模式集,并说明理由。,练习题,练习题,六、某小区的物业管理系统关系数据库有如下几个关系模式:描述楼房的属性有:楼号,开发单位,施工单位,完工时间;描述每一套住房的属性有:楼号,房号,户型,建筑面积,户主姓名,身份证号,工作单位,联系电话,家庭人口数,入住时间;描述物业管理缴费记录的属性有:房号,费用种类,缴费时间,金额。有如下的语义:每栋楼房只由一个开发商投资开发,一个施工单位承建,一个开发商可以投资开发多栋楼房,一个施工单位也可承建多栋楼房。由于房屋交易,每套住房会变更住户,在小区内户主可能有同名的现象。房号在小区内是唯一的,各种物业管理费是按住房定期收取的。,练习题,问题:1.请给出关系模式,写出每个关系模式的极小函数依赖集。2.指出各关系模式的主关键字。3.判断每个关系模式达到的范式。如果未达到3NF,请将其分解到3NF。,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!