6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解 6.5 小结
关系数据库逻辑设计 针对具体问题,如何构造一个适合于它的数据模式
数据库逻辑设计的工具──关系数据库的规范化理论
关系模式由五部分组成,是一个五元组:
R(U, D, DOM, F)
关系名R是符号化的元组语义
U为一组属性
D为属性组U中的属性所来自的域
DOM为属性到域的映射
F为属性组U上的一组数据依赖
由于D、DOM与模式设计关系不大,因此在本章中把关系模式看作一个三元组:R
当且仅当U上的一个关系r满足F时,r称为关系模式R的一个关系
作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)
一对一联系
设X,Y为关系中的属性或属性组,它们的所有可能取值组成两个集合。如果对于X中的任一具体值Y中至多有一个值与之对应,称X,Y这两个属性之间是一对一联系。 例:在读者关系中,借书证号是唯一的,如果读者没有重名的,姓名与借书证号两个属性之间是1:1联系。姓名可以确定借书证号,借书证号也可以确定姓名。
一对多联系
如果属性值集合X中的任一个具体值,至多与Y中的一个值相对应,而Y中的任一个具体值却可以和X中的多个值相对应,则称两个属性间从X到Y为m:1的联系或从Y到X是1:m的联系。 注意:这里指的是属性值个数的多少,而不是具有相同属性值的有多少个元组,二者正好相反。
例:在图书关系中,一本书有若干副本,它们有相同的书名、作者、分类号等,但每本书有唯一的总编号。书名与总编号之间是1:m,即同一个书名,有多个总编号与之对应。
多对多联系
在X,Y两个属性值集中,如果任一个值都可以至多和另一个属性值集中多个值对应,反之亦然,则称属性X和Y是m:n关系。 例:在借阅关系中,一个读者可以借多本书,即同一个借书证号有若干个图书总编号与之对应。由总编号标识的一本书在不同日期可以被不同的读者借阅。
数据依赖
是一个关系内部属性与属性之间的一种约束关系
通过属性间值的相等与否体现出来的数据间相互联系
是现实世界属性间相互联系的抽象
是数据内在的性质
是语义的体现
数据依赖的主要类型
函数依赖(Functional Dependency,简记为FD) 多值依赖(Multi-Valued Dependency,简记为MVD)
关系模式Student中存在的问题:
(1)数据冗余 浪费大量的存储空间 每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。
(2)更新异常(Update Anomalies) 数据冗余 ,更新数据时,维护数据完整性代价大。 某系更换系主任后,必须修改与该系学生有关的每一个元组。
(3)插入异常(Insertion Anomalies) 如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库。
(4)删除异常(Deletion Anomalies) 如果某个系的学生全部毕业了, 则在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。
规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
若X→Y,则X称为这个函数依赖的决定因素(Determinant)。 若X→Y,Y→X,则记作X←→Y。 若Y不函数依赖于X,则记作X↛Y。
在R(U)中,如果X→Y,并且对于X的任何一个真子集X’, 都有 X’ ↛ Y, 则称Y对X完全函数依赖,记作X → Y。 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X → Y
设K为R中的属性或属性组合。若K → U,则K称为R的一个候选码(Candidate Key)。 如果U部分函数依赖于K,即K → U,则K称为超码 (Surpkey)。候选码是最小的超码,即K的任意一个真子集都不是候选码。 若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。
主属性与非主属性 包含在任何一个候选码中的属性 ,称为主属性 (Prime attribute) 不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute) 全码:整个属性组是码,称为全码(All-key)
范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足 不同程度要求的为不同范式。 范式的种类: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF)