数据库设计是数据库应用领域的主要研究课题。其任务是在给定的应用环境下创建数据库模式,满足用户需求,建立数据库及其应用系统,有效存储和管理数据,满足公司或部门各种用户业务的需求。
数据库设计需要理论指导,数据库标准化理论是数据库设计的理论指南。
本章主要讨论关系数据库的标准化理论,讨论如何判断关系模式是否良好,如何将不良关系模式分解为良好的关系模式,为一个好的关系模式,并确保关系模式仍然能够表达原始的意义。
9.1关系模式设计问题
9.2函数依赖
9.3范式
9.4关系模式的分解准则
9.1关系模式设计问题
通过例子解释问题
有学生选课和选课的关系模式。
S—SC—C(Sno,Sname,Ssex,Sdept,Cname,Cno,Grade)
本表可发现以下问题:
1.1数据冗余问题
学生的基本信息重复,学生修了多少课,他的基本信息重复了多少次。
1.2数据更新问题
1.3数据插入问题
若新成立某个系,并确定该系学生宿舍楼,即已有sdept信息无法插入S—SC—C表中,因为这个系还没有招生,它Sno和Cno列的值均为空,而Sno和Cno是这个表的主键,不能为空。
1.4数据删除问题
如果学生只选择一门课,然后放弃了,那么学生选修这门课的记录应该被删除。然而,由于学生只选择了一门课程,学生的其他基本信息也被删除。
2.1基本概念
Y=f(X)
例如:省=f(城市) 只要给出具体的城市价值,就会有唯一的省价值与之相对应,比如湖南衡阳市,这里的城市就是自变量X,省是因为变量或函数Y。一一般决定X函数Y,或者Y函数依赖于X表示:X→Y
根据上述讨论,如果有关系模式,可以写出更直观的函数依赖定义R(A1,A2,…,An),X和Y为{A1,A2,…,An}的子集,r如果是R的任何特定关系,则关系R中的任何X值只对应一个Y值,即X函数决定Y或Y函数依赖于X。
显然,,他说语义的概念,。
2.一些术语和符号
设置相关模式R(A1,A2,…,An),X和Y均为{A1,A2,…,An}子集有以下结论:
(1)如果X→Y,但Y不包括和X,则称X→Y这是一种非凡的函数依赖。如果没有特别解释,我们将讨论非凡的函数依赖。如果Y包含在内X,则称X→Y是普通函数依赖。
(2)如果X→Y,X被称为决定因素。
(3)如果X→Y,并且Y→X,则记作X?Y。
(4)如果是X→Y,而的任何真子集X‘都有X’不依赖于Y,Y的完全函数取决于X,记作X—f→Y;如果X‘→YY部分函数依赖于成立X,记作X—p→Y。
(5)如果X→Y(非普通函数依赖,Y不函数依赖X)、Y→Z,称Z传输函数依赖于X。
(6)设 K如果满足关系模式R的属性或属性组:
K—f→A1,K—f→A2,…,K—f→An
它被称为关系模式R的候选键(或候选码)。
2.3函数依赖的推理原则
其他新的函数依赖可以从已知的函数依赖中推导出来,这需要一系列的推理原则。函数依赖的推理原则最早出现在1974年W.W.Armlabel因此,这些规则在论文中被称为Armstonrg公理。
1.Armstong公理
(1)自反律
若Y包含在X中U,则X→Y建立在R上。即一组属性函数决定其所有子集。
(2)增广律
若X→Y在R上成立,Z包含在R上U,则XZ→YZ建立在R上页。
(3)传递律
若X→Y和Y→Z在R上建立,然后X→Z建立在R上页。
2.Armstong公理推论
(1)合并规则
若X→Y和X→ZR上成立, 则X→YZ也建立在R上。
(2)分解规则
若X→Y和Z包含在Y在内R上成立,则X→Z也建立在R上。
(3)伪传递规则
若X→Y和YW→Z在R上建立,然后XW→Z在R上也成立。
(4)复合规则
若X→Y和W→Z在R上建立,然后XW→YZ也建立在R上。
2.44闭包及候选键解决方法
1.函数依赖集的闭包
在关系模式R(U,F)中,UR属性全集,F是R上的一组函数依赖。X、Y是U的子集,关系模式R的任何关系r,如果r满足F,则r满足X→Y,所以叫F逻辑内涵X→Y,或函数依赖X→YF可以导出。
所有依赖F逻辑函数的全集都称为F的闭包,记录为F加。
例题:已知关系模式R(A,B,C,D,E,G)及其函数依赖集F:
F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG}
判断BD→AC是否属于F加。
解:由D→EG,可推出:D→E,BD→BE…………(1)
又由BE→C,C→A,可推出:BE→A,BE→AC (2)
(1)、(2)可以推出BD→AC,因此BD→AC被F包含,即BD→AC属于F加。
对关系模式R(U,F),应用ArmlabelF加计算公理系统系统的过程。
step1:初始,F加=F
step2:依赖F加中的每个函数f,将自反性和增加性应用于f上,将结果添加到f加中;依赖f加中的一对函数f1和f2,如果f1和f传递律可以结合,结果可以添加到F加中。
step3:重复step直到F加不再增加。
2.属性集闭包
3.求解候选键的方法
对于给定的关系模式R(A1,A2,…,An)和函数依赖集F,R的属性分为以下四类:
(1)L类:仅出现在函数依赖左部的属性。
(2)R类:仅出现在函数依赖右侧的属性中。
(3)N类:属性不出现在函数依赖的左右两侧。
(4)LR类别属性出现在函数依赖的左右两侧。
R中的属性X,结论如下:
(1)若X是L类属性,X必须包含在关系模式R的任何候选键中:如果X加包含R的所有属性,则X是关系模式R的唯一候选键。
(2)若X是R类属性,X不包括在关系模式R的任何候选键中。
(3)若X是N类属性,X必须包含在关系模式R的任何候选键中。
(4)若X是LR类属性,X可能包含在关系模式R的候选键中。