资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,第1章 关系数据库原理关系的完整性规则、关系的规范化,单击此处编辑母版标题样式,第3讲,SQL Server 2005,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,单击此处编辑母版标题样式,*,第,1,章 关系数据库原理,关系的完整性和关系的规范化,第3讲,第1章 关系数据库原理关系的完整性和关系的规范化第3,1,习题解答,习题解答,关系数据库原理关系的完整性和关系的规范化-课件,关系模式,公司(,公司代码,,公司名,地址),部门(,部门代码,,部门名),员工(,员工代码,,姓名,性别,年龄,职务),商品(,商品代码,,商品名,单价,数量),厂家(,厂家代码,,厂家名,地址),拥有(公司代码,,部门代码,),属于(部门代码,,员工代码,),销售(,员工代码,商品代码,,销售量),供货(,商品代码,,厂家代码),关系模式公司(公司代码,公司名,地址),复习,什么是关键字/码/键?,什么是主关键字/主码/主键?,ER图转化为关系模式的原则是什么?,答:是能用来惟一标识元组的属性或属性组合。,答:被指定为关键字的候选关键字,称为。,答:(1),每个实体转换为一个关系。,(2)每个联系也转换成一个关系。,(3)有相同码的关系可以合并。,复习什么是关键字/码/键?答:是能用来惟一标识元组的属性或属,复习,关系应具备什么性质?,答:(1)关系中每一个属性值都是,不可分解,的。,(2)关系中不允许出现相同的行。,(3)关系中不允许出现相同的列。,(4)关系中没有行序、没有列序。,复习关系应具备什么性质?答:(1)关系中每一个属性值都是不可,第,1,章 关系数据库原理,关系的完整性规则、规范化,教学内容,关系的完整性规则,实体完整性、参照完整性、域完整性,函数依赖,完全函数依赖、部分函数依赖、传递函数依赖,关系的规范化,第一范式、第二范式、第三范式,第1章 关系数据库原理 关系的完整性规则、规范化,第,1,章 关系数据库原理,关系的完整性规则、规范化,学习目标,认知目标:,理解关系的完整性规则,了解函数依赖、关系规范化的含义,理解三种范式的定义,能力目标:,能判别关系的范式类别(重点、难点),能进行范式的分解(重点、难点),第1章 关系数据库原理 关系的完整性规则、规范化,关系的基本运算,选择、投影,连接,交叉连接,内连接,条件,自然,外连接,左连接和右连接,完全外连接,关系的基本运算选择、投影,一、关系的完整性规则,定义,是对关系的某种约束条件。,目的,用于保证关系数据库中数据的正确性和可靠性。,类型,实体完整性规则,参照完整性规则(引用完整性规则),域完整性规则(用户自定义完整性规则),是关系模型必须满足的完整性约束条件。,是关系模型必须满足的完整性约束条件。,一、关系的完整性规则定义是关系模型必须满足的完整性约束条件。,一、关系的完整性规则,1.,实体完整性规则,规则要求:,在任何关系的任何一个元组中,主键的值,不能为空值、也不能取重复的值,。,目的:用于保证数据库表中的每一个元组都是惟一的。,请思考:,下面的关系是否违反实体完整性规则?,学号,姓名,性别,年龄,系编号,03001,马力刚,男,21,01,03102,王萍华,女,20,02,03223,王平,男,21,03,张华,男,22,04,03001,李萍,女,19,05,一、关系的完整性规则1.实体完整性规则规则要求:学号姓名,一、关系的完整性规则,2.,域完整性规则(用户定义完整性规则),规则要求,由用户根据实际情况,定义表中属性的取值范围,例如:性别只能是男和女、年龄不能为负值、成绩在0,100之间等。,目的,用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内。,一、关系的完整性规则 2.域完整性规则(用户定义完整性规,一、关系的完整性规则,3.,参照完整性规则(引用完整性规则),规则要求:,“,不引用不存在的实体,”,。即:不允许在一个关系中引用另一个关系中不存在的元组。,目的,用于确保相关联的表间的数据保持一致。,一、关系的完整性规则 3.参照完整性规则(引用完整,一、关系的完整性规则,3.,参照完整性规则(引用完整性规则),请思考:,下面两个关系是否违反参照完整性规则?,系表(主表)学生表(从表),说明,从表的,“,系编号(外键),”,的取值只能为两种情况:,若取非空值,则它必须是主表中,存在的值,。,取空值(null)。表明尚未给学生分配专业。Null不等于0或空字符串。,学号,姓名,性别,年龄,系编号,03001,马力刚,男,21,01,03102,王萍华,女,20,03223,王平,男,21,05,系编号,系名,系主任,办公室,电话,01,计算机,龚小勇,205,6003,02,通信,谭中华,207,6025,03,电子,袁勇,210,6018,一、关系的完整性规则 3.参照完整性规则(引用完整,二、函数依赖,1.,概念、类型,函数依赖,是指关系中各属性或属性组之间的相互依赖关系。它是关系规范化的理论基础。,函数依赖的定义,给定一个关系模式R,X和Y都是R的属性或属性组,对于X的每个确定值在任何时刻Y只有一个确定的值与之对应,则称,“,X函数决定Y,”,,或称为,“,Y函数依赖于X,”,,X称为决定因素,记为:XY。,函数依赖的类型,完全函数依赖,部分函数依赖,传递函数依赖,二、函数依赖1.概念、类型函数依赖,二、函数依赖,2.,完全函数依赖,定义,如果属性Y函数依赖于,复合属性X,,且不与X的任何子集函数相依赖,则称,“,Y完全函数依赖于X,”,。,示例,有如下的关系模式:,生产(工厂编号,产品编号,计划数量),“,工厂编号+产品编号,”,“,计划数量,”,,是完全函数依赖。,二、函数依赖2.完全函数依赖定义,二、函数依赖,3.,部分函数依赖(局部依赖),定义,对于一个函数依赖:XY,如果存在ZX(Z属于X),且有ZY成立,则称,“,Y部分函数依赖于X,”,。,示例,有如下的关系模式,SCD(学号,姓名,课程号,成绩,系名,系主任),主码为复合码:学号+课程号,“,姓名、系名、系主任,”,与主码是部分函数依赖,二、函数依赖3.部分函数依赖(局部依赖)定义,二、函数依赖,4.,传递函数依赖,定义,在关系模式中,如果XY(不能YX),YZ,若存在XZ,则称,“,Z传递依赖于X,”,。,示例,有如下的关系模式,SD(,学号,,姓名,系名,系主任),“,学号系名,系名系主任,”,,则系主任传递依赖于学号。,二、函数依赖4.传递函数依赖定义,三、关系的规范化,引,在关系数据库的设计过程中,对于同一个问题,选用不同的关系模式,其性能的优劣是大不相同的,为了区分关系模式的优劣,人们常常把关系模式分为各种不同等级的范式。,三、关系的规范化引,三、关系的规范化,1.,概念和范式的类型,类型,第一范式(1NF),第二范式(2NF),第三范式(3NF),关系规范化的概念,将低级范式转换为若干个高级范式过程。,低,高,三、关系的规范化1.概念和范式的类型类型低,三、关系的规范化,2.,第一范式,(1NF),定义,如果关系模式R的所有属性的值域中第一个值都是,不可再分解值,,则称R是属于1NF模式。,第一范式是对关系的最低要求。,示例:判断哪一张表是1NF?,三、关系的规范化2.第一范式(1NF)定义,三、关系的规范化,2.,第一范式,(1NF),第一范式可能存在的问题:,数据冗余:如各位老师的信息重复。,插入异常:如果要插入刘老师的个人信息,但刘老师未开课,会造成缺关键字,“,学号,”,、,“,课程号,”,。,删除异常:当要删除 课程号=,“,C3,”,的元组,会丢失李老师的信息。,修改量大。,83,77,57,85,78,90,成绩,2-14,34,王,C1,04,1-01,45,周,C2,01,1-01,45,周,C2,03,3-15,27,李,C3,03,2-14,34,王,C1,02,2-14,34,王,C1,01,办公室,教师年龄,教师,课程号,学号,三、关系的规范化2.第一范式(1NF)第一范式可能存在的,三、关系的规范化,3.,第二范式,(2NF),定义,如果关系模式R为第一范式,且R中,每个,非主属性,完全函数依赖,于R的主码(复合码),则称R为2NF模式。,示例,下列关系模式是1NF,是否是2NF?为什么?,SCD(,学号,,姓名,,课程号,,成绩,系名,系主任),主码为复合码:学号+课程号,解决方法:消除部分函数依赖。,不是。因为:,“,姓名、系名、系主任,”,与主码是部分函数依赖(即:只依赖于学号),三、关系的规范化3.第二范式(2NF)定义不是。因为:“,三、关系的规范化,3.,第二范式,(2NF),分解为2NF的方法:,把关系模式中对主码完全函数依赖的非主属性与决定它们的主码放在一个关系模式中。,把对主码部分函数依赖的非主属性和决定它们的主属性放在一个关系模式中。,检查分解后的新模式,如果仍不是2NF,则继续按照前面的方法进行分解,直到达到要求。,关系模式SCD的分解结果如下:,SC(,学号,,,课程号,,成绩),SD(,学号,,姓名,系名,系主任),三、关系的规范化3.第二范式(2NF)分解为2NF的方法,三、关系的规范化,4.,第三范式,(3NF),定义,如果关系模式R为第二范式,且R中每个非主属性都,不,传递函数依赖于,R的某个候选码,则称R为3NF模式。,示例,下列关系模式是2NF,是否为3NF?为什么?,SD(,学号,,姓名,系名,系主任),解决方法:消除传递函数依赖。,不是。因为:学号系名,系名系主任,存在传递依赖关系。,三、关系的规范化4.第三范式(3NF)定义不是。因为:学,三、关系的规范化,4.,第三范式,(3NF),分解为3NF的方法:,把直接对主码函数依赖的非主属性与决定它们的主码放在一个关系模式中。,把造成传递函数依赖的决定因素连同被它们决定的属性放在一个关系模式中。,检查分解后的新模式,如果不是3NF,则继续按照前面的方法进行分解,直到达到要求。,关系模式SD的分解结果如下:,SD(,学号,,姓名,系名),SD(,系名,,系主任),三、关系的规范化4.第三范式(3NF)分解为3NF的方法,三、关系的规范化,5.,各范式间的关系,各范式之间的关系,三、关系的规范化5.各范式间的关系各范式之间的关系,四、综合应用,实例:,假设某商业集团数据库中有1个关系模式R(商店编号,商品编号,数量,部门编号,负责人)。如果规定:,(1)每个商店的每种商品只在一个部门销售。,(2)每个商店的每个部门只有一个负责人。,(3)每个商店的每种商品只有一个库存数量。,写出关系模式R的基本函数依赖集,找出关系模式R的候选码。,关系模式R最高已经达到第几范式?为什么?,如果R不属于3NF,请将R分解成3NF。,四、综合应用实例:假设某商业集团数据库中有1个关系模式R(商,四、综合应用,分析与解答:,基本的函数依赖有:,(商店编号+商品编号)部门编号,(商店编号+部门编号)负责人,(商店编号+商品编号)数量,由题意,上面的函数依赖可知,“,商店编号,”,是主属性,商品编号也是主属性,由这两个属性,可以确定关系元组的所有属性,所以R的候选码是:,商店编号+商品编号,。,四、综合应用分析与解答:,四、综合应用,分析与解答:,R(商店编号,商品编号,数量,部门编号,负责人)最高已达到2NF。因为负责人是码的传递依赖。,要达到3NF,必须消除非主属性对码的传递依赖。对R分解后的两个模式如下:,R1(,商店编号,商品编号,,数量,部门编号),R2(,部门编号,,负责人),四、综合应用分析与解答:,本课小结,关系的完整性规则,实体完整性/参照完整性/域完整性,
展开阅读全文