SQL Server第3章 关系数据库的规范化设计

上传人:woxinch****an2018 文档编号:54176070 上传时间:2018-09-08 格式:PPT 页数:46 大小:415KB
返回 下载 相关 举报
SQL Server第3章 关系数据库的规范化设计_第1页
第1页 / 共46页
SQL Server第3章 关系数据库的规范化设计_第2页
第2页 / 共46页
SQL Server第3章 关系数据库的规范化设计_第3页
第3页 / 共46页
SQL Server第3章 关系数据库的规范化设计_第4页
第4页 / 共46页
SQL Server第3章 关系数据库的规范化设计_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《SQL Server第3章 关系数据库的规范化设计》由会员分享,可在线阅读,更多相关《SQL Server第3章 关系数据库的规范化设计(46页珍藏版)》请在金锄头文库上搜索。

1、2018/9/8,1,第5章 关系模式的规范化设计,主要内容 问题提出 函数依赖 关系模式的分解 关系模式的范式,2018/9/8,2,本章重要概念,(1) 关系模式的冗余和异常问题。(2) FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡 的FD;属性集的闭包;推理规则的正确性和完备性;FD集的等价;最小依 赖集。(3) 无损分解的定义、性质、测试;保持依赖集的分解。(4) 关系模式的范式:1NF,2NF,3NF,BCNF。分解成2NF、3NF模 式集的算法。,2018/9/8,3,前 言,关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好 的关系模式集合,即应该构造几

2、个关系模式,每个关系由哪些属性组成。 规范化设计理论主要包括三个方面的内容:数据依赖、范式和模式设计方法。其中数据依赖起着核心的作用。数据依赖研究数据之间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。规范化设计理论对关系数据库结构的设计起着重要的作用。,2018/9/8,4,例4.1 设有一个关系模式R(TNAME,ADDRESS,CNO,CNAME),其属性分别表示教师姓名、教师地址、任教课程的编号和课程名。,关系模式R的实例,在数据库设计中,如果一个关系模式设计得不好,就会出现像文件系统一样的数据冗余、异常、不一致等问题。,关系模式的冗余和异常问题(1),2018/9/8,

3、5,关系模式的冗余和异常问题(2),该模式出现的问题有:(1) 数据冗余: 如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。(2) 操作异常: 由于数据的冗余,在对数据操作时会引起各种异常: 修改异常。例如教师t1教三门课程,在关系中就会有三个元组。如果他的地址变了,这三个元组中的地址都要改变。若有一个元组中的地址未更改,就会造成这个教师的地址不惟一,产生不一致现象。 插入异常。如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性CNO和CNAME上就没有值(空值)。在数据库技术中空值的语义是非常复杂的,对带空值元组的检索和操作也十分麻烦。删除异常

4、。如果在图4.1中要取消教师t3的教学任务,那么就要把这个教师的元组删去,同时也把t3的地址信息从表中删去了。这是一种不合适的现象。,2018/9/8,6,关系模式的冗余和异常问题(3),可以说,关系模式R不是一个好的模式。一个“好”的模式应当不会发生插入异常、删除异常、更新异常,数据冗余应尽量少。规范化原则:“关系模式有操作异常或冗余问题,就分解它。”,是否算最佳分解? 那末,什么样的关系模式是最优的?标准是什么?如何实现?,2018/9/8,7,本章的符号约定,英文字母表首部的大写字母“A,B,C,D,”表示单个属性。 英文字母表尾部的大写字母“,U,V,W,X,Y,Z”表示属性集。 大写

5、字母R表示关系模式,小写字母r表示其关系。 属性集A1,A2, ,An简记为A1A2 An 。 属性集X和Y的并集XY简记为XY。 XA简写为XA或AX。,一般地,我们设计关系数据库模式时,要注意三方面的问题: 必须从语义上摸清这些数据联系(实体联系和属性联系)。 尽可能的将互相依赖密切的属性构成单独模式。 切忌把依赖关系不密切、特别是具有“排它”性的属性硬凑到一起。,2018/9/8,8,5.2 函数依赖,主要内容 函数依赖的定义 FD的逻辑蕴含 FD的推理规则 FD和关键码的联系 属性集的闭包 FD集的最小依赖集,2018/9/8,9,函数依赖的定义(1),函数依赖是属性间基本的一种依赖,

6、它是关键码概念的推广。 定义5.1 设有关系模式R(U),X和Y是属性集U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖(Functional Dependency,简记为FD)于X,记作XY。 FD是对关系模式R的一切可能的关系r定义的。对于r的任意两个元组,如果X值相同,则要求Y值也相同,即对一个X值有唯一个Y值与之对应。该定义类似于数学中的单值函数定义。,在图中,左边图有:AB右边图没有:A B,函数依赖只能根据语义来确定。如姓名年龄只有在该部门没有同名人的条件下是函数依赖。,2018/9/8,1

7、0,函数依赖的定义(2),例5.2 有一个关于学生选课、教师任课的关系模式:R(SNO,SNAME,CNO,GRADE,CNAME,TNAME,TAGE)属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列FD形式:SNOSNAME CNOCNAME每个学生每学一门课程,有一个成绩,那么可写出下列FD:(SNO,CNO)GRADE还可以写出其他一些FD:CNOCNAME,TNAME,TAGE) TNAMETAGE,注意:函数依赖不是指关系R的某个或某些关系满足的约束条件, 而是指R

8、的一切关系均要满足的约束条件。,2018/9/8,11,对于函数依赖的定义注意以下三点: 函数依赖是一个基于关系模式(不是一个关系模式的特定实例)的函数概念,即如果一个关系模式R中存在函数依赖XY,则要求该模式的所有具体关系都满足XY。 函数依赖不取决于属性构成关系的方式(即关系结构),而是关系所表达的信息本身的语义特性,我们只能根据这种语义信息确定函数依赖,没有其他途径。 函数依赖是数据库设计者对于关系模式的一种断言或决策,即在设计关系型数据库时不仅要设计关系结构,而且要定义数据依赖的条件,限制进入关系的所有元组都必须符合所定义的条件,否则拒绝接受输入。,函数依赖的定义(3),2018/9/

9、8,12,FD的逻辑蕴涵,定义5.2 设F是在关系模式R上成立的函数依赖的集合,XY是一个函数依赖。如果对于R的每个满足F的关系r也满足XY,那么称F逻辑蕴涵XY,记为F XY。定义5.3 设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭包(closure),记为F+。即 F+= XY |记为 FXY。 说明:即使一个小的函数依赖集F,其闭包F+也是很大的,一般情况下总有 。,研究逻辑蕴涵的目的是利用推理的方法,从一组已知的函数依赖推导出另一 组函数依赖,从而找出所有函数依赖F+。,2018/9/8,13,FD的推理规则(1),从已知的一些FD,可以推导出另外一些F

10、D,这就需要一系列的推理规则。 设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的函数依赖集。FD的推理规则有以下三条:A1(自反性,Reflexivity):若YXU,则XY在R上成立。A2(增广性,Augmentation):若XY在R上成立,且ZU,则XZYZ在R上成立。A3(传递性,Transitivity):若XY和YZ在R上成立,则XZ在R上成立。,目的:是由F再通过这些FD推理规则找到F+,2018/9/8,14,FD的推理规则(2),结论 FD推理规则A1、A2和A3是正确的。也就是,如果XY是从F用推理规则导出,那么XY在F+中。 FD的其他五条推理规则: (1) A

11、4(合并性,Union): XY,XZ XYZ。 (2) A5(分解性,Decomposition): XY,ZY XZ 。 (3) A6(伪传递性): XY,WYZ WXZ。 (4) A7(复合性,Composition): XY,WZ XWYZ。 (5) A8 (通用一致性): XY,WZ X(WY)YZ。,例5.3 设有关系模式R,A、B、C、D、E、F是它的属性集的子集,R满足下列函数依赖:F=ABC,CDEF,证明:函数依赖ADF成立。 证明: ABC (已知) AC (分解性) ADCD (增广性) CDEF (已知) ADEF (传递性) ADF (分解性),2018/9/8,1

12、5,FD和关键码的联系,定义5.4 设关系模式R的属性集是U,X是U的一个子集。如果XU在R上成立,那么称X是R的一个超键。如果XU在R上成立,但对于X的任一真子集W,都有WU不成立,那么称X是R上的一个候选键。 例5.4 在学生选课、教师任课的关系模式中: R(SNO,SNAME,CNO, CNAME,GRADE, TNAME,TAGE) 如果规定:每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程只有一个任课教师。 根据这些规则,可以知道(SNO,CNO)能函数决定R的全部属性,并且是一个候选键。虽然(SNO,SNAME,CNO,TNAME)也能函数决

13、定R的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。,2018/9/8,16,属性集的闭包,定义5.5 设有关系模式R(U),U=A1,A2,An,X是U的子集,F是U上的一个函数依赖集,则称所有用Armstrong公理从F推出的函数依赖XAi(i=1,2,n)中Ai的集合为X的属性集闭包,记为 ,即=Ai| Ai U,且XAi可用Armstrong公理从F推出 例5.5 设关系模式R(ABC)的函数依赖集为F=AB,BC,分别求A、B、C的闭包。 解:若X=A AB,BC (已知) AC (传递性) AA (自反性) =A,B,C (据定义) 若X=B BB

14、 (自反性) BC (已知) =B,C (据定义) 若X=C, CC (自反性) =C (据定义),2018/9/8,17,FD集的最小依赖集(1),如果关系模式R(U)上的两个函数依赖集F和G,有F+=G+,则称F和G是等价的函数依赖集。 函数依赖集F中的FD很多,应该从F中去掉平凡的FD、无关的FD,以求得F的最小依赖集Fmin。形式定义如下: 定义5.6 设F是属性集U上的FD集,如果满足: F中每一个函数依赖的右部都是单个属性; 对F中任一个函数依赖XA,F-XA都不与F等价; 对于F中的任一个函数依赖XA和X的任一子集Z,F-XAZA都不与F等价。 则称F是一个最小函数依赖集,记为F

15、min。 上述三个条件的作用分别是:条件保证了每个函数依赖的右部都不会有多个属性;条件保证了F中没有多余的函数依赖;条件保证了函数依赖的左部没有重复属性。,2018/9/8,18,例:设R(A,B,C,D),F=AB,BC,CD,CB,G=AC,BD,BC,CB。用函数依赖图表示F、G及F+、G+,这两个函数依赖图完全相同,所以,F与G等价。,FD集的最小依赖集(2),F和F+,G和G+,2018/9/8,19,算法4.2 计算函数依赖集F的最小依赖集G的步骤:第一步:根据分解性推理规则,得到一个与F等价的FD集G,G中每个FD的右边均为单属性。第二步:在G的每个FD中消去左边冗余的属性。第三步:在G中消除冗余的FD。,FD集的最小依赖集(3),2018/9/8,20,例5.6 设F是关系模式R(ABC)的FD集,F=ABC,BC,AB,ABC,试求Fmin。 解: 先把F中的FD写成右边是单属性形式: F=AB,AC,BC,AB,ABC 显然多多了一个AB,可删去。得F=AB,AC,BC,ABC 在F中,由AB和BC可以推出AC,所以AC是冗余的,可删去。得F=AB,BC,ABC F中ABC可从BC推出,因此ABC也可删去。最后得F=AB,BC,即为所求的Fmin。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号