[信息与通信]数据库技术基础及应用ch5.ppt

上传人:sccc 文档编号:5615170 上传时间:2023-08-02 格式:PPT 页数:47 大小:804KB
返回 下载 相关 举报
[信息与通信]数据库技术基础及应用ch5.ppt_第1页
第1页 / 共47页
[信息与通信]数据库技术基础及应用ch5.ppt_第2页
第2页 / 共47页
[信息与通信]数据库技术基础及应用ch5.ppt_第3页
第3页 / 共47页
[信息与通信]数据库技术基础及应用ch5.ppt_第4页
第4页 / 共47页
[信息与通信]数据库技术基础及应用ch5.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《[信息与通信]数据库技术基础及应用ch5.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]数据库技术基础及应用ch5.ppt(47页珍藏版)》请在三一办公上搜索。

1、第五章 关系模式设计,设计一个用于教务管理系统的数据库,用户有下面几点需求:要能够查询到每个学生的基本情况;要能够查询到每个学生选课情况、每门课的成绩及任课教师;要能够查询到各学院的情况;能够添加新同学的信息;能够添加新课程的信息;能够删除学生和课程的信息;能够更改学生、学院、课程的信息;,初步设计:,学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师),主码,计算机这门课为新开课,还没有学生选,是否可插入操作?,如果张刚转到化学学院,与张刚有关的所有记录的学院、院长这两列的值都要更新,如果记录很多容易漏更新,产生数据不一致。,如果一个院(系)的学生全部毕业会产生什么情况?,

2、总结问题所在:插入异常、删除异常、更新异常、冗余过大!,怎样修改?,改进方案,原关系:学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师),改进方案:学生(学号,姓名,性别,学院)学院(学院,院长)选课(学号,课程号,成绩,任课教师)课程(课程号,课程名称),“分解”是解决冗余的主要方法,也是规范化的一条基本原则:“关系模式有冗余问题,就分解它”。而分解需要依靠对属性间数据依赖的研究。,关系模式设计,函数依赖(5.2)关系模式的分解(5.3)关系模式的范式(5.4),关系模式设计,函数依赖(5.2)关系模式的分解(5.3)关系模式的范式(5.4),函数依赖定义(5.2.1),

3、【定义5.1】设关系模式(U),U=A1,A2,An是所有属性的集合,X和Y为其属性的子集。如果t1,t2是关系R中的任意两个元组,只要t1X=t2X,则t1Y=t2Y。这时我们称Y函数依赖于X,或X函数决定Y,并记为:,“”为模式R的一个函数依赖,1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立3.函数依赖表达的是关系的属性与属性之间的关系。如果属性A与属性B之间是一对一的关系,则互相函数依赖。如果属性A与属性B

4、之间是一对多的关系,则一端函数依赖于多端。如果属性A与属性B之间是多对多的关系,则不存在函数依赖。,函数依赖定义(5.2.1),函数依赖定义(5.2.1),【例】分析关系“学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师)”的函数依赖。,分析1:不允许同名,学号 姓名,学号 性别,学号 学院,学号 院长 姓名 学号,姓名 性别,姓名 学院,姓名 院长 课程号 课程名称(学号,课程号)成绩,(学号,课程号)任课教师,学号 成绩 课程号 成绩,【例】分析关系“学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师)”的函数依赖。,分析2:允许同名,学号 性别,学号

5、 学院,学号 姓名,学号 院长 课程号 课程名称(学号,课程号)成绩,(学号,课程号)任课教师,函数依赖的逻辑蕴涵定义(5.2.2),【定义5.2】设F是R(U)的函数依赖集合,XY是R的一个函数依赖。如果一个关系模式满足F,则必然满足XY,就称F逻辑蕴涵XY(或称XY为F的逻辑蕴涵),并表示为:F|=XY,函数依赖的逻辑蕴涵定义(5.2.2),函数依赖集合所逻辑蕴涵的函数依赖的全体称为F的闭包(closure),记为F,即:FXYF|=XY,函数依赖的逻辑蕴涵定义(5.2.2),设有关系模式R(X,Y,Z)与它的函数依赖集F=XY,YZ,则F的闭包为:,F+=,X,XY,XZ,XYZ,Y,Y

6、Z,Z,XX,XYX,XZX,XYZX,XY,XYY,XZY,XYZY,YY,YZY XZ,XYZ,XZZ,XYZZ,YZ,YZZ,ZZ,XXY,XYXY,XZXY,XYZXY,XXZ,XYXZ,XZXZ,XYZXZ,XYZ,XYYZ,XZYZ,XYZYZ,YYZ,YZYZ,XXYZ,XYXYZ,XZXYZ,XYZXYZ,函数依赖的逻辑蕴涵定义(5.2.2),函数依赖的推理规则定义(5.2.3),为了从已知的函数依赖推导出其他函数依赖,Armstrong提出了一套推理规则,我们常称为Armstrong公理(Armstrong saxions)。其推理规则可归结为如下三条:设有关系模式R(U),

7、属性集U=A1A2An,F是R上的函数依赖集,X,Y,Z,W均是U的子集,r是R的一个实例。A1:自反律(reflexivity)如果,则成立。这是一个平凡函数依赖。,函数依赖的推理规则定义(5.2.3),为了从已知的函数依赖推导出其他函数依赖,Armstrong提出了一套推理规则,我们常称为Armstrong公理(Armstrong saxions)。其推理规则可归结为如下三条:设有关系模式R(U),属性集U=A1A2An,F是R上的函数依赖集,X,Y,Z,W均是U的子集,r是R的一个实例。A2:扩展律(augumentation)如果成立,且,则成立。式中,和是和的简写,以后将沿用此表示法

8、。,函数依赖的推理规则定义(5.2.3),为了从已知的函数依赖推导出其他函数依赖,Armstrong提出了一套推理规则,我们常称为Armstrong公理(Armstrong saxions)。其推理规则可归结为如下三条:设有关系模式R(U),属性集U=A1A2An,F是R上的函数依赖集,X,Y,Z,W均是U的子集,r是R的一个实例。A3:传递律(transitivity)如果,成立,则成立。,函数依赖的推理规则定义(5.2.3),下列四条一般的推理规则是正确的:A4:合并规则(Union rule)由XY,XZ,推得XYZA5:伪传递规则(Pseudotransitivity rule)如果和

9、成立,则成立A6:分解规则(Decomposition rule)如果且为的子集,则成立A7:伪增广规则(Pseudo-Augmentation rule)如果且W,则W 成立,函数依赖的推理规则定义(5.2.3),【例】在前述5.2.2节计算F+一例中,设有关系模式R(X,Y,Z)与它的函数依赖集F=XY,YZ。这里运用推理规则验证该F+的第一列函数依赖的正确性。X:显然X,根据A1自反律,平凡函数依赖X成立XX:同理,XX,根据 A1自反律,平凡函数依赖XX成立;XY:已知在F中;XZ:对已知的XY,YZ,根据 A3传递律,XZ成立;,函数依赖的推理规则定义(5.2.3),【例】在前述5.

10、2.2节计算F+一例中,设有关系模式R(X,Y,Z)与它的函数依赖集F=XY,YZ。这里运用推理规则验证该F+的第一列函数依赖的正确性。XXY:对已知的XY,根据 A2增广律,两边用X扩充,XXY成立;XXZ:对已证的XZ,根据 A2增广律,两边用X扩充,XXZ成立;XYZ:对已知的XY和已证的XZ,根据4合并律,XYZ成立;XXYZ:对已证的XXY,XZ,根据A4合并律,XXYZ成立;,把计算F+简化为计算X+(5.2.4),根据合并规则和分解规则,很容易得到这样一个重要事实:XA1 A2.Ak成立的充分必要条件是XAi成立(i=l,2,.,k)。【定义5.3】设关系模式(U),U=A1A2

11、An是所有属性的集合,F是R上的函数依赖集,X是U的子集(XU)。则属性集关于函数依赖集的闭包定义为且可由Armstrong公理导出,把计算F+简化为计算X+(5.2.4),【例】在关系模式R(A,B,C)与函数依赖集F=AB,BC中,有:当X=A时,有A+=ABC;当X=B时,有B+=BC;当X=C时,有C+=C;,把所有从F推出而且左部都为X的函数依赖挑出来,用挑出的这部分函数依赖的右部所组成的集合就是X+,把计算F+简化为计算X+(5.2.4),【定理2.1】设有关系模式R(U),U是属性集,F是R上的函数依赖集,X,Y是U的子集。当且仅当YX+时,能从Armstrong公理导出XY。,

12、【算法5.1】计算属性集关于的闭包。输入:属性集为的子集,函数依赖集。输出:。步骤:(1)置初始值 A=,A*=X;(2)如果AA*,置A=A*,否则转(4);(3)依次检查F中的每一个函数依赖YZ,若YA*,置A*=A*Z。全部搜索完,转(2);(4)输出A*,即为X+。,把计算F+简化为计算X+(5.2.4),【例】已知关系模式R(A,B,C,D,E),F=ABC,BD,CE,ECB,ACB是函数依赖集,求(AB)+。依算法2.1解:(1)置初始值 A=,A*=AB;(2)因AA*,置A=AB;(3)第一次扫描F,找到ABC和BD,其左部AB,故置A*=ABCD。搜索完,转(2);(2)因

13、AA*,置A=ABCD;,把计算F+简化为计算X+(5.2.4),步骤:(1)置初始值 A=,A*=X;(2)如果AA*,置A=A*,否则转(4);(3)依次检查F中的每一个函数依赖YZ,若YA*,置A*=A*Z。全部搜索完,转(2);,【例】已知关系模式R(A,B,C,D,E),F=ABC,BD,CE,ECB,ACB是函数依赖集,求(AB)+。(接上页)(3)第二次扫描F,找到CE和ACB,其左部ABCD,故置A*=ABCDE。搜索完,转(2);(2)因AA*,置A=ABCDE;(3)第三次扫描F,找到ECB,其左部ABCDE,故置A*=ABCDE。搜索完,转(2);(2)因A=A*,转(4

14、);(4)输出A*,即(AB)+=ABCDE。,把计算F+简化为计算X+(5.2.4),步骤:(2)如果AA*,置A=A*,否则转(4);(3)依次检查F中的每一个函数依赖YZ,若YA*,置A*=A*Z。全部搜索完,转(2);(4)输出A*,即为X+。,1NF,1NF,2NF,2NF,定义7.11:一个属于1NF的关系模式R,如果每个非主属性都完全函数依赖于关系的候选键,则关系模式R属于2NF,记为R2NF。,2NF,候选键:函数依赖:empID empNameempID sexempID districtempID streetempID branchID empID branchNamee

15、mpID branchTelNo,2NF,解决方法:分解 将部分依赖于候选键的非主属性组A,连同其完全依赖的属性组B从原关系模式中移出来,并且使B同时保留于原关系模式中,组成另外一个关系。如此不断分解,直到不存在非主属性对候选键的部分依赖为止。,2NF,3NF,3NF,定义7.12:一个属于1NF的关系模式R,如果不存在任何非主属性对候选键的传递函数依赖,则关系模式R属于3NF,记为R3NF。,3NF,若R3NF,则必有R2NF,反过来说,如果一个关系模式R不属于2NF,则R必不属于3NF。若R2NF,则至少存在一个非主属性对候选键的部分依赖,假设该部分依赖为A C,其中A是R的候选键,C为R

16、的非主属性,而C完全依赖于A的某真子集B,即B C,由于BA,由自反律可得:A B,并且B A,否则A不是候选键,因此,由A B,B A,B C,可知A C是个传递依赖,C通过B传递函数依赖于A,因此R3NF。,3NF,例:,3NF,例:假设北京市的街道没有重名empID street,street district empID branchID,branchID branchNameempID branchID,branchID branchTelNo,3NF,BCNF,BCNF,BCNF(Boyce Codd Normal Form)是由Boyce和Codd提出的,它比3NF又进一步,通常

17、认为BCNF是修正的第三范式,有时也称为3NF。定义7.13:一个属于1NF的关系模式R,若每一个决定因素都是超键,则关系模式R属于BCNF,记为RBCNF。即,R中每一个决定因素都包含键,则RBCNF。,BCNF,若RBCNF,则R3NF证明:假设RBCNF,但R不属于3NF。若R不属于3NF,则存在非主属性Z对键X的传递依赖,即:X-Y,Y不决定X,Y-Z。由于Y不决定X,故Y不可能是码,而若RBCNF,Y-Z,Y必须包含键,即Y肯定决定X,结果互相矛盾,假设不成立。若R3NF,则R不一定属于BCNF,BCNF,Order(orderNo,customerNo,empID,orderDat

18、e):订单号、客户编号、负责该订单的销售员的编号、订单提交的日期如果每个订单只对应一个客户,但可以由多个销售员共同负责,一个客户在一天内最多提交一个订单,则存在的函数依赖包括:orderNo(customerNo,orderDate)(customerNo,orderDate)orderNo,BCNF,关系模式Order的候选键有哪些?(orderNo,empID)(customerNo,orderDate,empID),解决方法:Order(orderNo,customerNo,orderDate)TakeChargeOf(empID,orderNo),BCNF,分解关系模式R(province,city,street,zipcode)的各属性分别代表省、市、街道和邮政编码,则该关系模式上存在的函数依赖包括:(province,city,street)zipcodezipcode(province,city)R1 province,city,zipcode)和R2(zipcode,street),BCNF,在函数依赖的范围里,如果将一个数据库模式的每一个关系模式R(U,F)依据规范化理论,分解为一个关系模式的集合R1,R2,Rk代替,其中R1、R2、Rk每个都属于BCNF。那么在函数依赖的范围里它已实现了彻底的分解,已清除了由于函数依赖而引起的更新异常问题。,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号