第2章关系数据库基本原理_第1页
第2章关系数据库基本原理_第2页
第2章关系数据库基本原理_第3页
第2章关系数据库基本原理_第4页
第2章关系数据库基本原理_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章 关系数据库基本原理关系数据库基本原理2.1 关系模型的基本概念2.1.1 关系模型的发展2.1.2 关系模型的数据结构2.1.3 关系模型的基本术语2.1.4 关系的性质与关系模型的优点2.2 关系模型的完整性约束2.3 关系代数的基本原理2.3.1 关系的数学定义2.3.2 关系运算2.4 关系数据库的规范化理论2.4.1 关系模式的数据冗余和操作异常问题2.4.2 函数依赖的基本概念2.4.3 关系模式的范式2.4.4 关系模式的分解2.5 数据库的设计方法2.5.1 数据库设计过程2.5.2 E-R模型到关系模型的转化2.5.3 数据库设计实例2.1 2.1 关系模型的基本概

2、念关系模型的基本概念1970年6月,美国IBM公司San Jose实验室的研究员E. F. Codd发表了大型共享数据库数据的关系模型(A Relational Model of Data for Large Shared Data Banks)一文,首次提出了关系模型的概念,从而开创了关系数据库方法和关系数据库理论,为关系数据库技术奠定了理论基础。由于E. F. Codd的杰出贡献,他于1981年获得了ACM图灵奖。20世纪70年代是关系数据库理论研究和原型系统开发的时代,其中以IBM San Jose实验室开发的System R和美国加利福尼亚大学伯克立分校(University of C

3、alifornia,Berkeley)研制的Ingres为典型代表。经过大量的高层次研究和开发,关系数据库系统的研究取得了一系列研究成果。20世纪70年代后期,关系数据库系统从实验室走向了社会。因此,在计算机领域中把20世纪70年代称为关系数据库时代,在20世纪80年代几乎所有新开发的数据库系统均是关系型的。这些数据库系统的运行,使数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等各个方面,成为信息系统和计算机应用系统的重要基础。2.1.1 关系模型的发展关系模型的发展2.1 2.1 关系模型的基本概念关系模型的基本概念关系模型的数据结构是满足一定条件的一组二维表格,该组表格可能只有一个

4、表格,更多的时候是有关联的多个表格组成的表格集合,表2-1表2-3是某公司人事数据库的简化版本,从中可以对关系模型的概念与方法获得一个感性的了解。2.1.2 关系模型的数据结构关系模型的数据结构表2-1 某公司部门设置表部门代码部门名称D0001总经理办 D0002市场部D0003销售部D0004仓储部表2-2 某公司员工表员工代码姓名部门代码性别住址E0001钱达理D0001男东风路78号E0002东方牧D0001男五一东路25号E0003郭文斌D0002男公司集体宿舍E0004肖海燕D0003女公司集体宿舍E0005张明华D0004男韶山北路55号表2-3 表的连接示例部门代码部门名称员工

5、代码姓名性别住址D001总经理办E001钱达理男东风路78号D001总经理办E002东方牧男五一东路25号D002市场部E003郭文斌男公司集体宿舍D003销售部E004肖海燕女公司集体宿舍D004仓储部E005张明华男韶山北路55号2.1 2.1 关系模型的基本概念关系模型的基本概念为描述方便,常使用下面的方法描述关系模式的数据结构:部门(部门代码,部门名称)员工(员工代码,姓名,部门代码,性别,住址)2.1.2 关系模型的数据结构关系模型的数据结构2.1 2.1 关系模型的基本概念关系模型的基本概念关系模型的基本数据结构是关系,即平时所说的二维表格,在E-R模型中对应于实体集,而在数据库中

6、关系又对应于表或数据表,因此二维表格、实体集、关系、表指的是同一概念,只是使用的场合不同而已。针对不同的场合有关术语的对应关系如图2-1所示。2.1.3 关系模型的基本术语关系模型的基本术语图2-1 关系模型有关术语的对应关系2.1 2.1 关系模型的基本概念关系模型的基本概念1关系通常将一个没有重复行、重复列,并且每个行列的交叉点只有一个基本数据的二维表格看成一个关系。二维表格包括表头和表中的内容,相应地,关系包括关系模式和记录的值,表包括表结构(记录类型)和表的记录,而满足一定条件的规范化关系的集合,就构成了关系模型。2元组二维表格的每一行在关系中称为元组(Tuple),相当于表的一个记录

7、(Record)。一行描述了现实世界中的一个实体。如在表2-2中,每行描述了一个员工的基本信息。在关系数据库中,行是不能重复的,即不允许两行的全部元素完全对应相同。2.1.3 关系模型的基本术语关系模型的基本术语2.1 2.1 关系模型的基本概念关系模型的基本概念3属性二维表格的每一列在关系中称为属性(Attribute),相当于记录中的一个字段(Field)或数据项。每个属性有一个属性名,一个属性在其每个元组上的值称为属性值,因此,一个属性包括多个属性值,只有在指定元组的情况下,属性值才是确定的。同时,每个属性有一定的取值范围,称为该属性的值域。同样,在关系数据库中,列是不能重复的,即关系的

8、属性不允许重复。属性必须是原子的,即属性是一个基本的数据项,不能是几个数据的组合项。有了属性概念后,可以这样定义关系模式和关系模型:关系模式是属性名及属性值域的集合,关系模型是一组相互关联的关系模式的集合。2.1.3 关系模型的基本术语关系模型的基本术语2.1 2.1 关系模型的基本概念关系模型的基本概念4关键字关系中能唯一区分、确定不同元组的单个属性或属性组合,称为该关系的一个关键字。关键字又称为键或码(Key)。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取“空值”。所谓空值就是“不知道”或“不确定”的值,因为空值无法唯一地区分、确

9、定元组。关系中能够作为关键字的属性或属性组合可能不是唯一的。凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字(Candidate Key)。例如,表2-2所示关系中的“员工代码”和“姓名”属性都是候选关键字(假定没有重名的职工)。在候选关键字中选定一个作为关键字,称为该关系的主关键字或主键(Primary Key)。关系中主关键字是唯一的。2.1.3 关系模型的基本术语关系模型的基本术语2.1 2.1 关系模型的基本概念关系模型的基本概念5外部关键字如果关系中某个属性或属性组合并非本关系的关键字,但却是另一个关系的关键字,则称这样的属性或属性组合为本关系的外部关键字或外键(

10、Foreign Key)。在关系数据库中,用外部关键字表示两个表之间的联系。如表2-2所示关系中的“部门代码”属性就是一个外部关键字,该属性是表2-1所示关系的关键字,该外部关键字描述了员工和部门两个实体之间的联系。2.1.3 关系模型的基本术语关系模型的基本术语2.1.4 关系的性质与关系模型的优点关系的性质与关系模型的优点关系是一种规范化了的二维表格。1关系的性质在关系模型中,对关系作了种种规范性限制,关系具有以下性质。(1)关系必须规范化,属性不可再分割。(2)在同一关系中不允许出现相同的属性名。(3)关系中不允许有完全相同的元组。(4)在同一关系中元组的次序无关紧要。(5)在同一关系中

11、属性的次序无关紧要。单位教师职称分布教授人数副教授人数讲师人数助教人数计算机系4111513自动化系5142011电子工程系39169表2-4 不能直接作为关系的表格示例2.1 2.1 关系模型的基本概念关系模型的基本概念2.1 2.1 关系模型的基本概念关系模型的基本概念2关系模型的优点与其他模型相比,关系模型具有以下优点。(1)数据结构单一。(2)关系规范化,并建立在严格的理论基础上。(3)概念简单,操作方便。2.1.4 关系的性质与关系模型的优点关系的性质与关系模型的优点2.2 2.2 关系模型的完整性约束关系模型的完整性约束在关系模型中,数据完整性包括实体完整性(Entity Inte

12、grity)、参照完整性(Referential Integrity)及用户自定义完整性(User-defined Integrity)3种。2.3 2.3 关系代数的基本原理关系代数的基本原理1域域(Domain)是一组具有相同数据类型的值的集合,又称为值域(用D表示)。在关系中,用域来表示属性的取值范围。例如,0,1、教授、副教授,讲师,助教、n|n0,100的整数等都是域。分别用D1、D2和D3表示教师关系中编号、姓名和性别3个属性的取值范围,则可能的结果是:D1=T1,T2,T3D2=张伶俐,罗佳旺,黎达仁D3=男,女注意,域中的元素无排列次序,如D3=男,女=女,男。2.3.1 关系

13、的数学定义关系的数学定义2.3 2.3 关系代数的基本原理关系代数的基本原理2元组利用集合论的观点,关系是元组的集合,每个元组包含的属性数目相同,其中属性的个数称为元组的维数。通常,元组用圆括号括起来的属性值表示,属性值间用逗号隔开。例如(3,5,6)和(E0001,钱达理,男,东风路78号)是3元组和4元组的例子。注意不要把元组和集合混为一谈,集合中的元素没有顺序,而元组是有顺序的。例如,1,2,3和2,1,3是同一个集合,但(1,2,3)和(2,1,3)则是两个元组。2.3.1 关系的数学定义关系的数学定义2.3 2.3 关系代数的基本原理关系代数的基本原理3关系给定一组域D1、D2、Dn

14、,设R=(d1,d2,dn)|diDi,i=1,2,n,即R是由n元组组成的集合,其中每个元组的第i个元素取自集合Di,称R为定义在D1、D2、Dn上的一个n元关系,可用R(D1,D2,Dn)表示。其中R称为关系的名字,(d1,d2,dn)称为R的一个元组。根据上面D1、D2和D3的取值,可以构成教师关系R=(T1,张伶俐,女),(T2,罗佳旺,男),(T3,黎达仁,男),相应的二维表格表示形式如表2-5所示。将关系与二维表进行比较可以看出两者存在简单的对应关系,关系模式对应一个二维表的表头,而关系的一个元组就是二维表的一行。在很多时候,甚至不加区别地使用这两个概念。2.3.1 关系的数学定义

15、关系的数学定义编号编号姓名姓名性别性别T1张伶俐张伶俐女女T2罗佳旺罗佳旺男男T3黎达仁黎达仁男男表2-5 教师关系R2.3 2.3 关系代数的基本原理关系代数的基本原理4关系模式设A1、A2、An是关系R的属性,通常用R(A1,A2,An)来表示这个关系的一个框架,也称为R的关系模式。属性的名字唯一,属性的取值范围Di(i=1,2,n)称为值域。2.3.1 关系的数学定义关系的数学定义2.3 2.3 关系代数的基本原理关系代数的基本原理1并设R、S同为n元关系,则R、S的并也是一个n元关系,记作RS。RS包含了所有分属于R、S或同属于R、S的元组。因为集合中不允许有重复元素,因此,同时属于R

16、、S的元组在RS中只出现一次。2交设R、S同为n元关系,则R、S的交也是一个n元关系,记作RS。RS包含了所有同属于R、S的元组。3差设R、S同为n元关系,则R、S的差也是一个n元关系,记作R-S。R-S包含了所有属于R但不属于S的元组。【例2-1】 设R=(湖南,长沙),(河北,石家庄),(陕西,西安),S=(湖北,武汉),(广东,广州),(广东,深圳),(陕西,西安),求RS、RS、R-S。显然,R、S是表示城市和所在省的关系。RS=(湖南,长沙),(河北,石家庄),(陕西,西安),(湖北,武汉),(广东,广州),(广东,深圳)RS=(陕西,西安)R-S=(湖南,长沙),(河北,石家庄)2

17、.3.2 关系运算关系运算2.3 2.3 关系代数的基本原理关系代数的基本原理4集合的笛卡尔乘积设D1、D2、Dn为任意集合,D1、D2、Dn的笛卡尔乘积记作:D1D2Dn,并且定义D=D1D2Dn=(d1,d2,dn)| diDi,i=1,2,n,其中(d1,d2,dn)是一个元组,它的每个元素di取自对应的集合Di。例如,设D1=1,2,D2=a,b,则D1D2=(1,a),(1,b),(2,a),(2,b)。应当注意,集合的笛卡尔乘积是所有满足diDi的元组(d1,d2,dn)组合构成的集合,设D1有m1个元素,D2有m2个元素,Dn有mn个元素,则D= D1D2Dn,它包含m1m2mn

18、个元素。所以,D1、D2、Dn的笛卡尔乘积D是定义在D1、D2、Dn上的一个特殊关系,而一般定义在D1、D2、Dn上的关系R都是D的一个子集。例如,教师关系中姓名和性别两个域的笛卡尔乘积为:R=D1D2=李一,王二,陈三男,女=(李一,男),(李一,女),(王二,男),(王二,女),(陈三,男),(陈三,女)在数学上,关系是笛卡尔乘积的任意子集,但在实际应用中,关系是笛卡尔乘积中所取的有意义的子集。显然,(李一,男),(李一,女)是不符合实际意义的关系。2.3.2 关系运算关系运算2.3 2.3 关系代数的基本原理关系代数的基本原理5连接设R是一个包含m个元组的j元关系,S是一个包含n个元组的

19、k元关系,则R,S的连接是一个包含mn个元组的j+k元关系,记作R S。并定义:R S=(r1,r2,rj,s1,s2,sk)|(r1,r2,rj)R且s1,s2,skS即R S的每个元组的前j个分量是R中的一个元组,而后k个分量是S中的一个元组。无条件的连接把R中的每个元组都和S中的n个元组进行连接,这样生成n个新的元组,m个元组总共生成nm个新的元组。但一般进行的是有条件的连接,即对无条件连接的结果再施加投影和选择运算。6投影设R=R(A1,A2,An)是一个n元关系,i1,i2,im是1,2,n的一个子集,并且i1i2im,定义:即(R)是R中只保留属性的新的关系,称(R)是R在属性上的

20、一个投影,通常记作。这是关于投影的一个形式描述,通俗地讲,关系R的一个投影就是对R的所有元组去掉某些分量并去掉完全的相同元组(去掉某些分量后,两个原来不完全相同的元组就可能相同)后的结果。 2.3.2 关系运算关系运算2.3 2.3 关系代数的基本原理关系代数的基本原理7选择设R=(a1,a2,an)是一个n元关系,F是关于(a1,a2,an)的一个条件,R中所有满足F条件的元组组成的子关系称为R的一个选择,记作F(R),并定义:F(R)=(a1,a2,an)|(a1,a2,an)R且(a1,a2,an)满足条件F 简言之,对R关系按一定规则筛选一个子集的过程就是对R施加了一次选择运算。【例2

21、-2】 设R1=R1(姓名,性别)=(钱达理,男),(东方牧,男),R2=R2(部门名称,住址)=(总经理办,东风路78号),(销售部,五一东路25号),求(1)R=R1R2。(2)R在(姓名,所在单位,住址)上的投影。(3)根据表2-2,求R关系的一个选择。根据定义,结果分别如下:(1)R=(钱达理,男,总经理办,东风路78号),(钱达理,男,销售部,五一东路25号),(东方牧,男,总经理办,东风路78号),(东方牧,男,销售部,五一东路25号),R是一个包含4个元组的4元关系。(2)根据投影的定义,只需对上面得到的R关系的每个元组删掉性别属性即可,所以(R)=(钱达理,总经理办,东风路78

22、号),(钱达理,销售部,五一东路25号),(东方牧,总经理办,东风路78号),(东方牧,销售部,五一东路25号)(3)根据表2-2,钱达理是总经理办的,住在东风路78号,东方牧也是总经理办的,住在五一东路25号,R关系中只有一个元组反映的情况正确,其余元组数据错误,应删掉,根据该条件(即符合表2-2的描述)得到的一个选择是:R(S)=(钱达理,总经理办,东风路78号)2.3.2 关系运算关系运算2.3 2.3 关系代数的基本原理关系代数的基本原理8除法给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须取自相同的集合。R与S的除法运算的结果是

23、一个只含属性组X的新的关系。定义:RS=t|tX(R)且tY(S)R按照定义,RS是R在X属性组上的投影X(R)的一个子关系,并且其中的任意元组t与Y(S)的乘积是R的一个子集。元组与关系的乘积运算是关系笛卡尔乘积运算的特殊形式,实际上是只含有一个元组的关系与另一个关系的的乘法运算,按照笛卡尔乘积运算定义,tY(S)是在关系Y(S)的前面增加属性组X,该属性组的每个元素值都为t。2.3.2 关系运算关系运算2.3 2.3 关系代数的基本原理关系代数的基本原理8除法2.3.2 关系运算关系运算【例2-3】 设关系R和S分别如表2-6和表2-7所示,表中的第一行是关系名, R、S中的属性组(B,C

24、)取自相同的集合,求RS。ABCa1b1c2a2b2c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1表2-6 关系RBCDb1c2d1b2c1d1b2c3d2表2-7 关系S2.3 2.3 关系代数的基本原理关系代数的基本原理8除法2.3.2 关系运算关系运算这里,A(R)=(a1),(a2),(a3),(a4),(B,C)(S)=(b1,c2),(b2,c1,(b2,c3)。对A(R)中的每个元素与(B,C)(S)进行乘法运算,得:a1(B,C)(S)=(a1,b1,c2),(a1,b2,c1,(a1,b2,c3)a2(B,C)(S)=(a2,b1,c2),(a2,b2,c1

25、,(a2,b2,c3)a3(B,C)(S)=(a3,b1,c2),(a3,b2,c1,(a3,b2,c3)a4(B,C)(S)=(a4,b1,c2),(a4,b2,c1,(a4,b2,c3)考察上述4个表达式,容易看出,只有a1(B,C)(S)R,因此,RS=(a1)。上面介绍了8种关系代数运算,其中连接、投影、选择、除法是关系数据库中专门建立的运算规则,故称为专门的关系运算,而并、交、差、笛卡尔乘积则是沿用了传统的集合论运算规则,也称为关系的传统运算。此外,在上述8种关系代数运算中,交、连接和除法3种运算可以通过其余5种关系运算的有机组合来实现,例如AB=A-(A-B)或B-(B-A),所以

26、这3种关系运算之外的并、差、笛卡尔乘积、投影和选择5种关系运算也称为基本关系运算。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.1 关系模式的数据冗余和操作异常问题关系模式的数据冗余和操作异常问题数据冗余是指同一个数据在系统中多次重复出现。在数据管理中,数据冗余一直是影响系统性能的大问题。在文件系统中,由于文件之间没有联系,引起一个数据在多个文件中出现。数据库系统克服了文件系统的这种缺陷,但是如果关系模式设计得不好,仍然会象文件系统一样出现数据的冗余、异常和不一致等问题。设有商品供应关系模式:商品供应(供应商名称,供应商地址,联系人,商品名称,订货数量,单价),该模式的一

27、个关系实例如表2-8所示。表2-8 商品供应关系供应商名称供应商地址联系人商品名称订货数量单价华科电子有限公司韶山路22号施宾彬笔记本计算机109800.00华科电子有限公司韶山路22号施宾彬激光打印机52800.00湘江计算机外设公司芙蓉南路127号方胜力笔记本计算机510200.00韦力电子实业公司五一路99号周昌喷墨打印机5780.00韦力电子实业公司五一路99号周昌交换机2350.002.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.1 关系模式的数据冗余和操作异常问题关系模式的数据冗余和操作异常问题1数据冗余在商品供应关系中,供应商名称、供应商地址、联系人对每种商品

28、名称都要重复输入一次。如果一个供应商供应多种商品,即使它的名称、地址、联系人不改变,也要输入多次,既造成数据冗余,又会引起输入上的麻烦。如“华科电子有限公司”和“韦力电子实业公司”及其地址、联系人都在表中出现了两次,这不仅浪费了存储空间,更有可能导致数据更新后产生数据不一致。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.1 关系模式的数据冗余和操作异常问题关系模式的数据冗余和操作异常问题2操作异常由于存在数据冗余,就可能导致数据操作异常,这主要表现在以下几个方面。1)更新异常2)插入异常3)删除异常2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.2 函

29、数依赖的基本概念函数依赖的基本概念定义1 设有关系模式R(A1,A2,An)或简记为R(U),X、Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1、t2,由t1X=t2X导致t1Y=t2Y,则称X函数决定Y,或Y函数依赖于X,记为XY。XY为模式R的一个函数依赖。这里t1X表示元组t1在属性集X上的值,其余符号表示的含义类似。这个定义可以这样理解:有一个设计好的二维表格,X、Y是表的某些列(可以是一列,也可以是多列),若在表中的t1行和t2行上的X值相等,那么必有t1行和t2行上的Y值也相等,这就是说Y函数依赖于X。根据定义,对于任意X、Y,当XY时,都有XY,这样的函数依赖称为

30、平凡依赖,否则,称为非平凡函数依赖。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.2 函数依赖的基本概念函数依赖的基本概念定义2 R、X、Y如定义1所设,如果XY成立,但对X的任意真子集X1,都有X1Y不成立,称Y完全函数依赖于X,否则,称Y部分函数依赖于X。所谓完全依赖是说明在依赖关系的决定项(即依赖关系的左项)中没有多余属性,有多余属性就是部分依赖。在定义3中,如果YX也成立,则称Z直接函数依赖于X,而不是传递函数依赖。例如,在学生关系模式中,当学生没有重名时,有“学号姓名”,“姓名学号”,“姓名班号”,这是“班号”对“学号”是直接函数依赖,而不是传递函数依赖。2.4

31、 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.3 关系模式的范式关系模式的范式通常将关系模式规范化过程为不同程度的规范化要求设立的不同标准称为模式的范式(Normal Form,NF)。1主属性与非主属性前面讨论过候选关键字与关键字,下面将在函数依赖理论的基础上,比较严格地论述这些概念。1)候选关键属性和关键属性。定义4 设关系模式R(A1,A2,An),Ai(i1,2,n)是R的属性,X是R的一个属性组,如果 X(A1,A2,An)。 对于X的任意真子集X1,X1(A1,A2,An)不成立。则称属性组X是关系模式R的一个候选关键属性。上述条件表示X能唯一决定一个元组,而条件表

32、示X中没有多余属性,判断一个属性集是否组成一个候选关键属性时,上述两个条件是缺一不可的。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.3 关系模式的范式关系模式的范式如果关系模式R只有一个候选关键属性,称这唯一的候选关键属性为关键属性,否则,应从多个候选关键属性中指定一个作为关键属性。习惯上把候选关键属性称为候选关键字,关键属性称为关键字。从定义知道,对于关系模式R,R的任何两个元组在候选关键属性上的属性值应不完全相同。2)主属性和非主属性。一个关系模式R可能有多个候选关键属性,而一个候选关键属性又可能包含多个属性,这样,R的所有属性Ai(i1,2,n)按是否属于一个候选

33、关键属性被划分为两类:主属性和非主属性。定义5 设Ai是关系模式R的一个属性,若Ai属于R的某个候选关键属性,称Ai是R的主属性,否则,称Ai为非主属性。应该注意的是,一般说来,单个主属性并不一定能作为候选关键属性。 2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.3 关系模式的范式关系模式的范式2第1范式定义6 当关系模式R的所有属性都不能分解为更基本的数据元素时,即R的所有属性均满足原子特征时,称R满足第1范式(1NF)。满足第1范式是关系模式规范化的最低要求,否则,将有许多基本操作在这样的关系模式中实现不了,如上述的员工关系模式就实现不了按基本工资的20%给每位员工增

34、加工资的操作要求。当然,属性是否可以一步分解,是相对于应用要求来说的,同样是上述员工关系模式,如果关于这个模式的任何操作都不涉及基本工资和岗位工资,那么对工资也就没有进一步分解的要求,则这个关系模式也就符合1NF。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.3 关系模式的范式关系模式的范式3第2范式定义7 如果关系模式R满足1NF,并且R的所有非主属性都完全函数依赖于R的每一个候选关键属性,称R满足第2范式(2NF)。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.3 关系模式的范式关系模式的范式4第3范式定义8 如果关系模式R满足1NF,并且R的所

35、有非主属性都不传递函数依赖于R的每一个候选关键字,称R满足第3范式(3NF)。不满足3NF的关系模式中必定存在非主属性对候选关键字的传递函数依赖。再来考查公司关系模式R。在R中,公司注册号注册城市,注册城市所在省,所以,公司注册号所在省,即R的非主属性“所在省”传递函数依赖于其候选关键属性“公司注册号”,因而R不满足3NF。关于3NF,有一个重要结论,这里对这个结论只叙述而不进行形式证明。定理1 若关系模式R符合3NF条件,则R一定符合2NF条件。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.3 关系模式的范式关系模式的范式5Boyce-Codd范式在3NF中,并未排除主

36、属性对侯选关键字的传递函数依赖,因此有必要对3NF进一步规范化,为此,Boyce和Codd共同提出了一个更高一级的范式,这就是Boyce-Codd范式(BCNF)。定义9 如果关系模式R满足1NF,且R的所有属性都不传递函数依赖于R的每一个候选关键字,称R满足BCNF。定理2 若关系模式R符合BCNF条件,则R一定符合3NF条件,但反过来却不一定成立。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.4 关系模式的分解关系模式的分解1关系模式分解的一般问题所谓关系模式的分解,就是对原有关系模式在不同的属性上进行投影,从而将原有关系模式分解为含有较少属性的多个关系模式。在阐述分

37、解方法以前,有必要就分解的一般问题先进行讨论。先看一个实例,见表2-9。员工号姓名部门月份月度奖00901张小强办公室2010-0538000902陈斌一车间2010-0545000903李哲销售科2010-0588000904赵大明设计科2010-0585000905冯珊办公室2010-0535000906张青松销售科2010-0592000901张小强办公室2010-0635000902陈斌一车间2010-06480表2-9 员工奖金分配表2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.4 关系模式的分解关系模式的分解表2-9所示关系的关键属性是属性组(员工号,月份),

38、它也是唯一的候选关键属性(这里假定姓名有重名情况),从前面的知识可以知道,这个关系不满足2NF,因为该关系的非主属性“姓名”和“部门”都只部分函数依赖于侯选关键字(员工号,月份)。解决这个问题的基本方法是将其分解为两个关系,见表2-10和表2-11。员工号姓名部门员工号姓名部门00901张小强办公室00904赵大明设计科00902陈斌一车间00905冯珊办公室00903李哲销售科00906张青松销售科员工号月份月度奖员工号月份月度奖009012010-05380009012010-06350009022010-05450009022010-06480009032010-058800090320

39、10-06850009042010-05850009042010-06860009052010-05350009052010-06360009062010-05920009062010-06900表2-11 员工奖金分配表表2-10 员工基本情况表2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.4 关系模式的分解关系模式的分解上述分解过程是对原有关系R(员工号,姓名,部门,月份,月度奖)在(员工号,姓名,部门)和(员工号,月份,月度奖)上分别投影,并删除完全相同行后的结果。经过这种分解后,两个关系表都符合BCNF标准,从而符合3NF标准。并且,从这两个表完全可以经过连接恢复

40、到原来的表,这样的分解称为无损分解。与之相反,如果对表2-9进行另一种分解(见表2-10和表2-12),这种分解就不是无损的。部门月份月度奖部门月份月度奖办公室2010-05380办公室2010-06350一车间2010-05450一车间2010-06480销售科2010-05880销售科2010-06850设计科2010-05850设计科2010-06860办公室2010-05350办公室2010-06360销售科2010-05920销售科2010-06900表2-12 员工奖金分配表2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.4 关系模式的分解关系模式的分解无损的含

41、义有两个方面,其一是信息没有丢失,即从分解后的关系通过连接运算可以恢复原有关系;其二是依赖关系没有改变。前者称为连接不失真,后者称为依赖不失真。Heath定理 设关系模式R(A,B,C),A、B、C是R的属性集。如果AB,并且AC,则R和投影(A,B),(A,C)的连接等价。由Heath定理可知,只要将关系R的某个候选关键字分解到每个子关系中,就会同时保持连接不失真和依赖不失真。23NF分解理论上已证明,任何关系都可以无损地分解为多个3NF关系。下面采用一种非形式化的叙述方法来讨论这个问题。在讨论中,假定R是一个关系模式,R1、R2、Rn是对R进行分解而得到的n个关系模式。(1)如果R不满足1

42、NF条件,先对其分解,使其满足1NF。对R进行1NF分解的方法不是采用投影,而是直接将其复合属性进行分解,用分解后的基本属性集取代原来的属性,以获得1NF。 【例2-3】 将R(员工号,姓名,工资)进行分解,使其满足1NF条件。假定R的“工资”属性由“基本工资”和“岗位工资”组成,直接用属性组(基本工资,岗位工资)取代“工资”属性,得到新关系R_NEW(员工号,姓名,基本工资,岗位工资),R_NEW满足1NF。注意:对工资属性是否应进行上述分解,要根据具体情况决定,这里只是一个示意性的解答。2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.4 关系模式的分解关系模式的分解(2

43、)如果R符合1NF条件但不符合2NF条件时,分解R使其满足2NF。若R不满足2NF条件,根据定义7,R中一定存在候选关键字K和非主属性X,使X部分函数依赖于K,因此,候选关键字K一定是由一个以上的属性组成的属性组。设K(K1,K2),并且K1X是R中的函数依赖关系。又设R(K1,K2,X1,X2),且(K1,K2)是R的一个侯选关键字,X1部分函数依赖于(K1,K2),不妨设K1X1,则将R分解成R1和R2:R1(S1,S2,X2),Primary Key(S1,S2),Foreign Key(S1),即属性组(S1,S2)是R1的关键字,S1是R1的外部关键字。R2(S1,X1),Prima

44、ry Key(S1)。容易证明,这样的分解是无损的。如果R1、R2还不满足2NF条件,可以继续上述分解过程,直到每个分解后的关系模式都满足要求为止。再考查对表2-9所示关系的分解过程。设K1员工号,K2月份,X1(姓名,部门),X2月度奖,有关系模式:R(员工号,姓名,部门,月份,月度奖)(K1,K2,X1,X2),Primary key(K1,K2)(员工号,月份),将R分解为R1和R2:R1(K1,K2,X2)(员工号,月份,月度奖),Primary Key(员工号,月份),Foreign Key(员工号)。R2(K1,X1)(员工号,姓名,部门),Primary Key(员工号)。经过这

45、样一次分解后得到的R1、R2均已满足2NF和3NF条件,因此,分解过程结束。当R符合2NF条件但不符合3NF条件时,继续对其分解,使其满足3NF条件。 2.4 2.4 关系数据库的规范化理论关系数据库的规范化理论2.4.4 关系模式的分解关系模式的分解(3)如果R符合2NF条件但不符合3NF条件时,分解R使其满足3NF。R满足2NF条件但不满足3NF条件时,说明R中的所有非主属性对R中的任何候选关键字都是完全函数依赖的,但至少存在一个非主属性对侯选关键字是传递函数依赖的。因此,存在R中的非主属性间的依赖作为传递函数依赖的过渡属性,设R(K,X1,X2),且R以K作为主关键字,X2通过非主属性X

46、1传递函数依赖于K,即KX1(但X1K不成立),X1X2,则对R分解成R1和R2:R1(K,X1),Primary Key(K),Foreign Key(X1)。R2(X1,X2),Primary Key(X1)。上述分解过程是无损的。如果R1、R2还不满足3NF,可以重复上述过程,直到符合3NF条件为止。2.5 2.5 数据库的设计方法数据库的设计方法2.5.1 数据库设计过程数据库设计过程数据库设计过程一般包括需求分析、概念设计、逻辑设计、物理设计以及实施与维护等内容。1需求分析在仔细调查研究的基础上,摸清目标需求以及现在的数据内容与形式,包括现在使用的帐簿、票据等原始单据以及这些单据的使

47、用频率、数据量,并在此基础上编写需求分析报告。需求分析报告中要罗列出目标系统涉及的全部数据实体、每个数据实体的属性名一览表、以及数据实体间的关联关系等。2概念设计概念设计是把用户的需求进行综合、归纳与抽象,统一到一个整体概念结构中,形成数据库的概念模型。概念模型是面向现实世界的一个真实模型,它一方面能够充分反映现实世界,同时又容易转换为数据库逻辑模型,也容易为用户理解。数据库概念模型独立于计算机系统和DBMS。2.5 2.5 数据库的设计方法数据库的设计方法2.5.1 数据库设计过程数据库设计过程(3逻辑设计数据库逻辑设计是将概念模型转换为逻辑模型,也就是被某个DBMS所支持的数据模型,并对转

48、换结果进行规范化处理。关系数据库的逻辑结构由一组关系模式组成。因而,从概念模型结构到关系数据库逻辑结构的转换就是将E-R图转换为关系模型的过程。4物理设计数据库最终是要存储在物理设备上的。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构与存取方法,并把得到的关系模型在一个选定的DBMS上实现,就是数据库的物理设计。数据库的物理结构依赖于给定的计算机系统和DBMS。5实施与维护确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格定义数据库,包括建立表、定义表的完整性约束规则等。数据库系统投入运行后,对数据库设计进行评价、调整、修改等

49、维护工作也是一项重要、长期的任务。 2.5 2.5 数据库的设计方法数据库的设计方法2.5.2 E-R模型到关系模型的转化模型到关系模型的转化E-R模型虽然能比较方便地模拟实际问题的静态过程,也很容易进行交流,但迄今为止,还没有哪个数据库管理系统直接支持该模型,因而,它只是一种工具,作为联接实际问题与数据库间的桥梁。E-R模型到关系模型的转化过程如图2-1所示。图2-1 E-R模型到关系模型的转化过程2.5 2.5 数据库的设计方法数据库的设计方法2.5.2 E-R模型到关系模型的转化模型到关系模型的转化下面讨论从E-R模型到关系模型的转化过程。1独立实体到关系模式的转化一个独立实体转化为一个

50、关系模式,实体的属性即为关系模式的属性,实体名称作为关系模式的名称,实体标识符转化为关系模式的关键属性。注意根据实际对象属性情况确定关系模式属性的值域。例如对于图2-2所示的学生实体,将其转化为关系模式:学生(学号,姓名,民族,出生年月)其中下划线标注的属性表示关键属性。图2-2 学生实体的E-R图2.5 2.5 数据库的设计方法数据库的设计方法2.5.2 E-R模型到关系模型的转化模型到关系模型的转化21:1联系到关系模式的转化若实体间的联系是1:1联系,只要在两个实体类型转化成的两个关系模式中任意一个关系模式中增加另一关系模式的关键属性和联系的属性即可。图2-3所示的E-R图中有“经理”和

51、“公司”两个实体,一个经理只主管一个公司,而一个公司也只有一个经理,两者是一对一关系,可以转化为两个关系模式:经理(经理姓名,民族,住址,出生年月,电话,任职年月,公司名称)公司(公司名称,注册地,类型,电话)图2-3 1:1联系到关系模式的转化2.5 2.5 数据库的设计方法数据库的设计方法2.5.2 E-R模型到关系模型的转化模型到关系模型的转化31:n联系到关系模式的转化若实体间的联系是1:n联系,则需要在n方(即1对多联系的多方)实体的关系模式中增加1方实体类型的关键属性和联系的属性,1方的关键属性作为外部关键属性处理。如图2-4所示的“学院”与“教师”的联系是1:n的联系,对图2-4

52、进行转化,得到关系模式:学院(学院名称,院长姓名,办公地点,电话)教师(工号,姓名,性别,出生年月,研究方向,聘期,学院名称)在教师关系中增加学院关系中的关键属性“学院名称”作为外部关键属性,以及增加联系的属性“聘期”。图2-4 1:n联系到关系模式的转化2.5 2.5 数据库的设计方法数据库的设计方法2.5.2 E-R模型到关系模型的转化模型到关系模型的转化4m:n联系到关系模式的转化若实体间的联系是m:n联系,则除对两个实体分别进行转化外,还要为联系类型单独建立一个关系模式,其属性为两方实体类型的关键属性加上联系类型的属性,两方实体关键属性的组合作为关键属性。图2-5描述的学生与课程的联系

53、是m:n联系,该E-R图应转化为3个关系模式:学生(学号,姓名,民族,出生年月)课程(课程号,课程名,学分)选课(学号,课程号,成绩)图2-5 m:n联系到关系模式的转化2.5 2.5 数据库的设计方法数据库的设计方法2.5.2 E-R模型到关系模型的转化模型到关系模型的转化5多元联系到关系模式的转化所谓多元联系,即是说该联系涉及两个以上的实体。例如采购货物涉及供应商、采购员和货物等3个实体,其E-R图如图2-6所示,3个实体之间的联系是m:n:p。和二元联系的转换类似,3元联系的转换方法是:(1)若实体间的联系是1:1:1联系,只要在3个实体类型转化成的3个关系模式中任意一个关系模式中增加另

54、两个关系模式的关键属性(作为外部关键属性)和联系的属性即可。(2)若实体间的联系是1:1:n联系,则需要在n方实体的关系模式中增加两个1方实体的关键属性(作为外部关键属性)和联系的属性。(3)若实体间的联系是1:m:n联系,则除对3个实体分别进行转化外,还要为联系类型单独建立一个关系模式,其属性为m方和n方实体类型的关键属性(作为外部关键属性)加上联系类型的属性,m方和n方实体关键属性的组合作为关键属性。(4)若实体间的联系是m:n:p联系,则除对3个实体分别进行转化外,还要为联系类型单独建立一个关系模式,其属性为3方实体类型的关键属性(作为外部关键属性)加上联系类型的属性,3方实体关键属性的组合作为关键属性。2.5 2.5 数据库的设计方法数据库的设计方法2.5.2 E-R模型到关系模型的转化模型到关系模型的转化图2-6 m:n:p联系到关系模式的转化图2-6描述的E-R图应转化为4个关系模式:供应商(供应商号,名称,地址,电话)采购员(采购员号,姓名,性别,业绩)货物(货物代码,名称,型号,库存量)采购(采购单号,数量,单价,日期,供应商号,采购员号,货物代码)2.5 2.5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论