关系数据库理论教学的反思

时间:2022-10-09 07:35:21

关系数据库理论教学的反思

本文作者:刘丽娟 单位:大连交通大学软件学院

当前设计数据库系统主要采用的是以逻辑数据库设计核物理数据库设计为核心的规范设计方法,通常将数据库设计分为六个阶段,即(1)需求分析阶段;(2)概念设计阶段;(3)逻辑设计阶段;(4)物理设计阶段;(5)数据库实施阶段;(6)数据库运行、维护阶段。逻辑结构设计阶段需要对数据模型进行优化,优化方法通常以关系数据库规范化理论为指导[1]。因此规范化理论的重要性不言而喻。

1.关系数据库规范化理论的研究

规范化理论研究的是关系模式中各属性之间的数据依赖关系以及对关系模式性能的影响,规范化理论是判断关系模式优劣的理论标准。

2.学习要点

2.1确定函数依赖

关系数据库的规范化理论主要包括三个方面的内容:函数依赖、范式、模式设计。其中,函数依赖起着核心的作用,是模式分解和模式设计的基础;范式是模式分解的标准。关于函数依赖,首先要正确理解函数依赖、完全函数依赖、部分函数依赖以及传递函数依赖的定义。下面给出函数依赖的定义。定义1函数依赖设R(U)是一个关系模式,U是R的属性集合(如U={A1,…,An})。X、Y是U的子集。如果R(U)的所有关系r都存在着:对于X的每个值,都有Y的唯一值与之相对应,则称X函数决定Y,或Y函数依赖X。记作XY。其中X叫作决定属性集,Y叫作被决定属性集。从软件系统的需求过程中,我们得出了现实生活中的语义关系,根据属性间的语义关系,我们很容易确定函数依赖。

2.2候选键

根据现实中的语义给出的函数依赖关系来求解候选键主要有2种方法,一种是图示法,另一种是算法。图示法要求学生具有很强的理论基础,因此对于初学者来说不是很容易掌握,这里作者介绍求解算法,根据这些算法能很容易地求出候选键。(1)首先将属性分为4类,即L类属性、R类属性、N类属性以及LR类属性。(2)根据求解候选键的算法得出结论。下面给出4类属性[2]的定义。①L类属性:只出现在函数依赖左部的属性②R类属性:只出现在函数依赖右部的属性③N类属性:在函数依赖左右两边都没出现的属性④LR类属性:在函数依赖左右两边都出现的属性算法1对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性或N类属性,则X必为R的候选键的成员,若X+包含了R的全部属性,则X必为R的唯一候选键;若X+不能包含R的全部属性,则LR类属性也会成为候选键的成员;R类属性不在任何候选键中。下面举例说明求解候选键的算法过程。例2设有关系模式R(A、B、C、D、E、P),其函数依赖集F={AD,ED,DB,BCD,DCA},求R的所有候选键。解:(1)L类属性:C、E;N类属性:P。(2)则C、E、P必为候选键的成员,又因为(CEP)+=ABCDEP,所以CEP是R的唯一候选键。

2.3范式

范式是符合某一种级别的关系模式的集合。根据关系数据库中的关系满足的不同要求,范式分为几个等级,按照等级升序排序依次是1NF、2NF、3NF、BCNF、4NF、5NF,在低一级别的范式中满足进一步的要求就成为高一级别的范式。为了使关系模式设计达到最优化,通过将低一级别的范式分解,从而转换为若干个高级的范式,这个过程称作规范化。下面给出范式的定义。定义21NF如果一个关系模式R(U,F)的所有属性都是不可分的基本数据项,则R∈1NF。定义32NF如果R∈1NF,且所有非主属性都完全函数依赖于候选键,则R∈2NF。定义43NF如果R∈2NF,且所有非主属性都不传递依赖于候选键,则R∈3NF。定义5BCNF如果R∈1NF,若XY且Y不真包含于X时X必包含键,则R∈BCNF。

从以上定义我们可以看出,(1)2NF消除了部分函数依赖,(2)3NF消除了传递依赖,(3)BCNF要求每一个决定属性集都包含候选键。下面我们举例说明范式的规范化过程。例3关系模式SLC(SNO,SDEPT,SLOC,CNAME,SCORE)∈1NF,函数依赖包括:(SNO,CNAME)SCORE,(SNO,CNAME)SDEPT,(SNO,CNAME)SLOC,SNOSDEPT,SNOSLOC,SDEPTSLOC。解:根据上述候选键求解算法得出,候选键是(SNO,CNAME)。

(1)从上述函数依赖关系我们可以看出,SDEPT和SLOC都部分函数依赖于候选键,所以应该消除这些部分依赖关系,因此分解时应将SDEPT和SLOC同SNO放在同一个关系模式中,即SL(SNO,SDEPT,SLOC),毫无疑问,SCORE与候选键被分到同一个关系模式,即SC(SNO,CNAME,SCORE)。这样SL∈2NF,且SC∈2NF。

(2)从上述函数依赖关系我们可以看出,SLOC传递依赖于SNO,所以应该消除这个传递依赖,因此分解时应将SNO和SLOC分到不同的关系模式中,即SD(SNO,SDEPT)和DL(SDEPT,SLOC)。这样SD∈3NF,且DL∈3NF。

(3)关系模式SD和DL中,每个决定因素都包含候选键,所以SD∈BCNF,且DL∈BCNF。

目前我们设计及使用的数据库在函数依赖范畴领域BCNF已经是最高级别了,如果考虑到其他依赖,比如多值依赖,还会要求4NF、5NF等等,关于多值依赖,作者这里不做介绍。BCNF消除了插入异常、更新异常、删除异常,并且减少了数据冗余,但是在实际应用中并不是所有的范式都能达到BCNF,我们通常为了满足一定的语义联系,在设计模式中基本采用3NF。

3.结语

知识是靠不断学习积累的,这里只是结合本科教学中关系数据库规范化理论进行系统总结,所以不可能单凭几个教学经验总结就能解决所有学生的学习问题。因此,我们教师应该在教学中不断地探索、不断地总结,结合每个学生的学习特点,具体问题具体分析,在一些总的原则下因人而异,因为教师的真正本领,不在于他是否会讲述知识,而在于是否能唤起学生的求知欲望,让他们兴趣盎然地参与到教学过程中来。

上一篇:重商主义对经济的消极作用及应对策略 下一篇:浅析数据库设计实践