《[信息与通信]数据库技术基础及应用ch5.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]数据库技术基础及应用ch5.ppt(47页珍藏版)》请在三一文库上搜索。
1、第五章 关系模式设计,设计一个用于教务管理系统的数据库,用户有下面几点需求: 要能够查询到每个学生的基本情况; 要能够查询到每个学生选课情况、每门课的成绩及任课教师; 要能够查询到各学院的情况; 能够添加新同学的信息; 能够添加新课程的信息; 能够删除学生和课程的信息; 能够更改学生、学院、课程的信息;,初步设计:,学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师),主码,计算机这门课为新开课,还没有学生选,是否可插入操作?,如果张刚转到化学学院 ,与张刚有关的所有记录的学院、院长这两列的值都要更新,如果记录很多容易漏更新,产生数据不一致。,如果一个院(系)的学生全部毕业会
2、产生什么情况?,总结问题所在: 插入异常、删除异常、 更新异常、冗余过大!,怎样修改?,改进方案,原关系:学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师),改进方案: 学生(学号,姓名,性别,学院) 学院(学院,院长) 选课(学号,课程号,成绩,任课教师) 课程(课程号,课程名称),“分解”是解决冗余的主要方法,也是规范化的一条基本原则:“关系模式有冗余问题,就分解它”。而分解需要依靠对属性间数据依赖的研究。,关系模式设计,函数依赖 (5.2) 关系模式的分解 (5.3) 关系模式的范式 (5.4),关系模式设计,函数依赖 (5.2) 关系模式的分解 (5.3) 关系模式
3、的范式 (5.4), 函数依赖定义(5.2.1),【定义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.函数依赖表达的是关系的属性与属性之间的关系。如果
4、属性A与属性B之间是一对一的关系,则互相函数依赖。如果属性A与属性B之间是一对多的关系,则一端函数依赖于多端。如果属性A与属性B之间是多对多的关系,则不存在函数依赖。, 函数依赖定义(5.2.1), 函数依赖定义(5.2.1),【例】 分析关系“学籍(学号, 姓名, 性别, 学院, 院长,课程号,课程名称,成绩,任课教师)”的函数依赖。,分析1:不允许同名,学号 姓名,学号 性别,学号 学院,学号 院长 姓名 学号,姓名 性别,姓名 学院,姓名 院长 课程号 课程名称 (学号,课程号) 成绩 ,(学号,课程号) 任课教师,学号 成绩 课程号 成绩,【例】 分析关系“学籍(学号, 姓名, 性别,
5、 学院, 院长,课程号,课程名称,成绩,任课教师)”的函数依赖。,分析2:允许同名,学号 性别, 学号 学院, 学号 姓名, 学号 院长 课程号 课程名称 (学号,课程号) 成绩, (学号,课程号) 任课教师, 函数依赖的逻辑蕴涵定义(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.
6、2.2),设有关系模式R(X,Y,Z)与它的函数依赖集F=XY,YZ,则F的闭包为:,F+=,X, XY, XZ, XYZ, Y, YZ, 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.
7、3),为了从已知的函数依赖推导出其他函数依赖,Armstrong提出了一套推理规则,我们常称为Armstrong公理( Armstrong saxions)。其推理规则可归结为如下三条: 设有关系模式R(U),属性集U=A1A2An,F是R上的函数依赖集, X,Y,Z,W均是U的子集,r是R的一个实例。 A1:自反律(reflexivity) 如果,则成立。这是一个平凡函数依赖。, 函数依赖的推理规则定义(5.2.3),为了从已知的函数依赖推导出其他函数依赖,Armstrong提出了一套推理规则,我们常称为Armstrong公理( Armstrong saxions)。其推理规则可归结为如下三
8、条: 设有关系模式R(U),属性集U=A1A2An,F是R上的函数依赖集, X,Y,Z,W均是U的子集,r是R的一个实例。 A2:扩展律(augumentation) 如果成立,且,则成立。式中,和是和的简写,以后将沿用此表示法。, 函数依赖的推理规则定义(5.2.3),为了从已知的函数依赖推导出其他函数依赖,Armstrong提出了一套推理规则,我们常称为Armstrong公理( Armstrong saxions)。其推理规则可归结为如下三条: 设有关系模式R(U),属性集U=A1A2An,F是R上的函数依赖集, X,Y,Z,W均是U的子集,r是R的一个实例。 A3:传递律(transit
9、ivity) 如果,成立,则成立。, 函数依赖的推理规则定义(5.2.3),下列四条一般的推理规则是正确的: A4:合并规则(Union rule) 由XY,XZ,推得XYZ A5:伪传递规则(Pseudotransitivity rule)如果和成立,则成立 A6:分解规则(Decomposition rule) 如果且为的子集,则成立 A7:伪增广规则(Pseudo-Augmentation rule) 如果且W,则W 成立, 函数依赖的推理规则定义(5.2.3),【例】 在前述5.2.2节计算F+一例中,设有关系模式R(X,Y,Z)与它的函数依赖集F=XY,YZ。这里运用推理规则验证该F
10、+的第一列函数依赖的正确性。 X: 显然X,根据A1自反律,平凡函数依赖X成立 XX: 同理, XX,根据 A1自反律,平凡函数依赖XX成 立; XY: 已知在F中; XZ: 对已知的XY,YZ,根据 A3传递律,XZ成立;, 函数依赖的推理规则定义(5.2.3),【例】 在前述5.2.2节计算F+一例中,设有关系模式R(X,Y,Z)与它的函数依赖集F=XY,YZ。这里运用推理规则验证该F+的第一列函数依赖的正确性。 XXY: 对已知的XY,根据 A2增广律,两边用X扩充, XXY成立; XXZ: 对已证的XZ,根据 A2增广律,两边用X扩充, XXZ成立; XYZ: 对已知的XY和已证的XZ
11、,根据4合并律, XYZ成立; XXYZ:对已证的XXY,XZ,根据A4合并律,XXYZ 成立;, 把计算F+简化为计算X+ (5.2.4),根据合并规则和分解规则,很容易得到这样一个重要事实: XA1 A2.Ak成立的充分必要条件是XAi成立(i=l,2,.,k)。 【定义5.3】设关系模式(U) ,U=A1A2An是所有属性的集合,F是R上的函数依赖集,X是U的子集(XU)。则属性集关于函数依赖集的闭包定义为且可由Armstrong公理导出, 把计算F+简化为计算X+ (5.2.4),【例】 在关系模式R(A,B,C)与函数依赖集F=AB,BC中,有: 当X=A时,有A+=ABC; 当X=
12、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。,【算法5.1】 计算属性集关于的闭包。 输入:属性集为的子集,函数依赖集。 输出:。 步骤: (1) 置初始值 A=,A*=X; (2) 如果AA*,置A=A*,否则转(4); (3) 依次检查F中的每一个函数依赖YZ,若YA*,置A*=A*Z。全部搜索完,转(2)
13、; (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) 因AA*,置A=ABCD;, 把计算F+简化为计算X+ (5.2.4),步骤: (1) 置初始值 A=,A*=X; (2) 如果AA*,置A=A*,否则转(4); (3) 依次检查F中的每一个函数依赖YZ,若YA*,置A
14、*=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); (4) 输出A*,即(AB)+=ABCDE。, 把计算F+简化为计算X+ (5.2.4),步骤: (2) 如果AA*,置A=A*,否则转(4); (3) 依次检查F中的每一个函数
15、依赖YZ,若YA*,置A*=A*Z。全部搜索完,转(2); (4) 输出A*,即为X+。,1NF,1NF,2NF,2NF,定义7.11:一个属于1NF的关系模式R,如果每个非主属性都完全函数依赖于关系的候选键,则关系模式R属于2NF,记为R2NF。,2NF,候选键: 函数依赖: empID empName empID sex empID district empID street empID branchID empID branchName empID branchTelNo,2NF,解决方法:分解 将部分依赖于候选键的非主属性组A,连同其完全依赖的属性组B从原关系模式中移出来,并且使B同时
16、保留于原关系模式中,组成另外一个关系。 如此不断分解,直到不存在非主属性对候选键的部分依赖为止。,2NF,3NF,3NF,定义7.12:一个属于1NF的关系模式R,如果不存在任何非主属性对候选键的传递函数依赖,则关系模式R属于3NF,记为R3NF。,3NF,若R3NF,则必有R2NF,反过来说,如果一个关系模式R不属于2NF,则R必不属于3NF。 若R2NF,则至少存在一个非主属性对候选键的部分依赖,假设该部分依赖为A C,其中A是R的候选键,C为R的非主属性,而C完全依赖于A的某真子集B,即B C,由于BA,由自反律可得:A B,并且B A,否则A不是候选键,因此,由A B,B A,B C,
17、可知A C是个传递依赖,C通过B传递函数依赖于A,因此R3NF。,3NF,例:,3NF,例:假设北京市的街道没有重名 empID street, street district empID branchID, branchID branchName empID branchID, branchID branchTelNo,3NF,BCNF,BCNF,BCNF (Boyce Codd Normal Form)是由Boyce和Codd提出的,它比3NF又进一步,通常认为BCNF是修正的第三范式,有时也称为3NF。 定义7.13:一个属于1NF的关系模式R,若每一个决定因素都是超键,则关系模式R属于
18、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, orderDate):订单号、客户编号、负责该订单的销售员的编号、订单提交的日期 如果每个订单只对应一个客户,但可以由多个销售员共
19、同负责,一个客户在一天内最多提交一个订单,则存在的函数依赖包括: 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) zipcode zipcode (province, city) R1 province, city, zipcode)和 R2(zipcode, street),BCNF,在函数依赖的范围里,如果将一个数据库模式的每一个关系模式R(U,F)依据规范化理论,分解为一个关系模式的集合R1, R2, , Rk代替,其中R1、R2、Rk每个都属于BCNF。 那么在函数依赖的范围里它已实现了彻底的分解, 已清除了由于函数依赖而引起的更新异常问题。,
链接地址:https://www.31doc.com/p-2000866.html