5.3 关系数据库设计理论
5.3.1 问题的提出
究竟一个关系数据库包含哪些属性是合理的,如何评价一个关系模式设计的优劣?
5.3.2 函数依赖
函数依理论利用一个关系中属性之间的依赖关系评价和优化关系模式,以保证存储到数据库中的关系具有较好特性;
1、 函数依赖:
(1) 设R(U)为一关系模式,X和Y为属性全集U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数决定Y”或“Y函数依赖于X”,并记作X
Y,其中X称为决定因素,因为根据函数依赖定义,给定一个X,就能惟一决定一个Y。
(2) 这里讨论的函数关系与数学上的不同,是不能计算的,是一个关系中属性之间存在的依赖关系;它是一种语义范畴的概念,只能根据两个属性之间的语义来确定一个函数依赖是否存在。
2、 完全与部分函数依赖:
(1) 在关系模式R(U)中,如果XàY成立,并且对X的任何真子集X’不能函数决定Y,则称Y对X是完全函数依赖,被记作X---f---àY。
(2) 若XàY,但Y不完全函数依赖于X,则称Y对X是部分函数依赖,记作X--pàY;
3、 传递函数依赖:
在关系R(U)模式中,如果X决定Y,(Y不属于X),Y不决定X,Y决定Z,则称Z对X传递函数依赖。
4、 平凡与非平凡函数依赖:
(1) 若X决定Y,但Y属于X,则称XàY是平凡函数依赖,否则称非平凡函数依赖;
(2) 即平凡函数依赖,仅当其右边的属性集是左边属性集的子集时成立;
(3) 非平凡函数依赖,仅当其右边的属性集至少有一个属性不属于左边有集合时成立;
(4) 完全非平凡函数依赖:仅当其右边的属性集中属性都不在左边的集合时成立;
5、 码:
(1) 在关系模式R(U)中,K为R的属性或属性组,若K函数决定A1.A2….An,则K为关系模式R的候选码,包含在候选码中的属性称为主属性,否则为非主属性;
(2) 若一个关系的候选码不止一个,则选定其中一个作为关系R的主码;
(3) 关系的码属性除了必须完全函数决定关系的所有其他属性外,还必须满足最小化规则,即在关系模式R(U)中,不存在一个K的真子集能够函数决定R的其他属性。
6、 函数依赖的推理规则:
(1) 自反律:若Y(包含于)X(包含于)U,则XàY成立;
(2) 增广律:若XàY,且Z(包含于)U,则XZàYZ成立;
(3) 传递律:若XàY,YàZ,则XàZ成立;
(4) 合并规则:若XàY,XàZ成立,则XàYZ;
(5) 分解规则:若XàY和Z(包含于)Y成立,则XàZ也成立;
(6) 伪传递规则:若XàY,YWàZ,则XWàZ成立;
7、 属性集闭包:
(1) 设F是属性集U上的函数依赖集,X为U的一个子集,那么对于F,属性集X关于F的闭包(用X+表示)为:X+={A|XàA}
(2) 由属性集团包的定义可知,若想判断函数依赖XàY是否成立,只要计算X关于函数依赖集F的闭包,若Y是X闭包中的一个元素则XàY成立;
8、 确定关系的码:
(1) 利用迭代算法计算X+,步骤如下:
(A) 选X作为闭包X+的初值X(0);
(B) 由X(i)计算X(i+1)时,它是由X(0)并上属性集合A所组成,其中A满足下列条件:Y(包含于)X(i),且F中存在函数依赖YàZ,而A(包含于)Z。因为U是有穷的,所以会得到X(i)=X(i+1),此时X(i)为所求的X+。
5.3.3 规范化设计方法
1、 第一范式:
(1) 定义:设关系模式R(F,U),如果R的每一个属性都是不可分的数据项,则此关系模式为第一范式;
(2) 一个给定关系和第一范式(1NF)的区别:
(A) 一个关系中的数据按照行和列的形式组织,每个元组具有相同数目的属性个数,且每一个元组的属性值具有统一的数据类型和长度;元组或属性的排列与顺序无关,每个元组必须通过一个属性或属性组惟一识别;
(B) 第一范式实际上对关系增加了一个约束,即关系中元组的每个属性都只取一个值,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。
2、 第二范式:
(1) 定义:若关系模式R(F,U)是1NF,且每个非主属性完全函数依赖于码,则称R为第二范式,即在2NF中不存在非主属性对码的部分依赖;
(2) 仅满足第一范式关系会存在种种问题,要消除必须用更高级的范式标准来设计,称为标准化;
(3) 具体做法是将大的关系分解成多个小的关系,使分解后的关系满足更高级范式的要求。
(4) 第二范式实际上对关系增加了一个约束,就是关系中的每一个属性必须完全依赖于主码,即在第一范式的基础上,消除非主属性对主码的部分函数依赖可达到2NF;
3、 第三范式:
(1) 定义:若关系R(U,F)为第一范式,且不存在非主属性对主码的传递函数依赖,则称R为第三范式;
(2) 第三范式是在第二范式的基础上对关系又增加了一个约束,就是关系中的每一个非主属性必须只依赖于主码。即2NF的基础上,消除非主属性对主码的传递函数依赖可达到3NF。
4、 改进的第三范式:
(1) 定义:如果关系模式R是1NF,且每个属性既不相存在部分函数依赖也不存在传递函数依赖于候选码,则称R是改进的第三范式(BCNF)。
5、 多值依赖与4NF:
(1) 多值依赖:表示关系中属性(如A、B、C)之间的依赖,对于A的每个值,都存在一个B或C的值的集合,而且B和C的值相互独立,记为:AààB、AààC
(2) 第四范式:如果关系模式R属于1NF,对于R的每个非平凡的多值依赖XàY(Y不属于X),X含有候选码,则R是第四范式。即是从BCNF范式中消除主码内的独立依赖集(非平凡多值依赖)可达4NF;
6、 连接依赖与5NF
(1) 连锁依赖:设关系模式R,R的属性子集为R1、R2、R3、R4、R5、R6、R7….,当且仅当R的每个合法值等于R1、R2、R3、R4、R5、R6、R7…的投影连接时,称R满足连接依赖;
(2) 第五范式:设R是一个满足5NF的关系模式,当且仅当R的每一个非平凡连接依赖都被R的候选码所蕴含,即从4NF中消除非候选码所蕴含的连接依赖为5NF;
7、 总结:
(1) 范式表达了关系模式满足的条件,也是衡量关系模式设计优劣的标准;
(2) 利用范式进行规范化设计的目的是消除数据冗余,避免出现异常,使结构更合理;
(3) 规范化设计的基本过程是对关系进行的分解,消除属性间不合理的数据依赖,用一组等价的子关系代替原有的关系;
(4) 数据库规范化的程序越高,其关系表就越多,从而增加了表之间连接运算的代价,影响了数据库的执行速度和性能。所以通常关系模式规范化工作仅做到3NF,这样既使关系中不合理的属性基本消除,规范化程度也不太高,保证数据库有较好的性能。
2017年计算机四级考试数据库复习笔记:关系数据库设计理论.doc