第2章关系数据库基本原理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库技术与应用—Access第2章关系数据库基本原理第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.2E-R模型到关系模型的转化–2.5.3数据库设计实例第2章关系数据库基本原理2.1关系模型的基本概念1970年6月,美国IBM公司SanJose实验室的研究员E.F.Codd发表了《大型共享数据库数据的关系模型》(ARelationalModelofDataforLargeSharedDataBanks)一文,首次提出了关系模型的概念,从而开创了关系数据库方法和关系数据库理论,为关系数据库技术奠定了理论基础。由于E.F.Codd的杰出贡献,他于1981年获得了ACM图灵奖。20世纪70年代是关系数据库理论研究和原型系统开发的时代,其中以IBMSanJose实验室开发的SystemR和美国加利福尼亚大学伯克立分校(UniversityofCalifornia,Berkeley)研制的Ingres为典型代表。经过大量的高层次研究和开发,关系数据库系统的研究取得了一系列研究成果。20世纪70年代后期,关系数据库系统从实验室走向了社会。因此,在计算机领域中把20世纪70年代称为关系数据库时代,在20世纪80年代几乎所有新开发的数据库系统均是关系型的。这些数据库系统的运行,使数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等各个方面,成为信息系统和计算机应用系统的重要基础。2.1.1关系模型的发展第2章关系数据库基本原理2.1关系模型的基本概念关系模型的数据结构是满足一定条件的一组二维表格,该组表格可能只有一个表格,更多的时候是有关联的多个表格组成的表格集合,表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表的连接示例部门代码部门名称员工代码姓名性别住址D001总经理办E001钱达理男东风路78号D001总经理办E002东方牧男五一东路25号D002市场部E003郭文斌男公司集体宿舍D003销售部E004肖海燕女公司集体宿舍D004仓储部E005张明华男韶山北路55号第2章关系数据库基本原理2.1关系模型的基本概念为描述方便,常使用下面的方法描述关系模式的数据结构:部门(部门代码,部门名称)员工(员工代码,姓名,部门代码,性别,住址)2.1.2关系模型的数据结构第2章关系数据库基本原理2.1关系模型的基本概念关系模型的基本数据结构是关系,即平时所说的二维表格,在E-R模型中对应于实体集,而在数据库中关系又对应于表或数据表,因此二维表格、实体集、关系、表指的是同一概念,只是使用的场合不同而已。针对不同的场合有关术语的对应关系如图2-1所示。2.1.3关系模型的基本术语图2-1关系模型有关术语的对应关系第2章关系数据库基本原理2.1关系模型的基本概念1.关系通常将一个没有重复行、重复列,并且每个行列的交叉点只有一个基本数据的二维表格看成一个关系。二维表格包括表头和表中的内容,相应地,关系包括关系模式和记录的值,表包括表结构(记录类型)和表的记录,而满足一定条件的规范化关系的集合,就构成了关系模型。2.元组二维表格的每一行在关系中称为元组(Tuple),相当于表的一个记录(Record)。一行描述了现实世界中的一个实体。如在表2-2中,每行描述了一个员工的基本信息。在关系数据库中,行是不能重复的,即不允许两行的全部元素完全对应相同。2.1.3关系模型的基本术语第2章关系数据库基本原理2.1关系模型的基本概念3.属性二维表格的每一列在关系中称为属性(Attribute),相当于记录中的一个字段(Field)或数据项。每个属性有一个属性名,一个属性在其每个元组上的值称为属性值,因此,一个属性包括多个属性值,只有在指定元组的情况下,属性值才是确定的。同时,每个属性有一定的取值范围,称为该属性的值域。同样,在关系数据库中,列是不能重复的,即关系的属性不允许重复。属性必须是原子的,即属性是一个基本的数据项,不能是几个数据的组合项。有了属性概念后,可以这样定义关系模式和关系模型:关系模式是属性名及属性值域的集合,关系模型是一组相互关联的关系模式的集合。2.1.3关系模型的基本术语第2章关系数据库基本原理2.1关系模型的基本概念4.关键字关系中能唯一区分、确定不同元组的单个属性或属性组合,称为该关系的一个关键字。关键字又称为键或码(Key)。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取“空值”。所谓空值就是“不知道”或“不确定”的值,因为空值无法唯一地区分、确定元组。关系中能够作为关键字的属性或属性组合可能不是唯一的。凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字(CandidateKey)。例如,表2-2所示关系中的“员工代码”和“姓名”属性都是候选关键字(假定没有重名的职工)。在候选关键字中选定一个作为关键字,称为该关系的主关键字或主键(PrimaryKey)。关系中主关键字是唯一的。2.1.3关系模型的基本术语第2章关系数据库基本原理2.1关系模型的基本概念5.外部关键字如果关系中某个属性或属性组合并非本关系的关键字,但却是另一个关系的关键字,则称这样的属性或属性组合为本关系的外部关键字或外键(ForeignKey)。在关系数据库中,用外部关键字表示两个表之间的联系。如表2-2所示关系中的“部门代码”属性就是一个外部关键字,该属性是表2-1所示关系的关键字,该外部关键字描述了员工和部门两个实体之间的联系。2.1.3关系模型的基本术语第2章关系数据库基本原理2.1.4关系的性质与关系模型的优点关系是一种规范化了的二维表格。1.关系的性质在关系模型中,对关系作了种种规范性限制,关系具有以下性质。(1)关系必须规范化,属性不可再分割。(2)在同一关系中不允许出现相同的属性名。(3)关系中不允许有完全相同的元组。(4)在同一关系中元组的次序无关紧要。(5)在同一关系中属性的次序无关紧要。单位教师职称分布教授人数副教授人数讲师人数助教人数计算机系4111513自动化系5142011电子工程系39169表2-4不能直接作为关系的表格示例2.1关系模型的基本概念第2章关系数据库基本原理2.1关系模型的基本概念2.关系模型的优点与其他模型相比,关系模型具有以下优点。(1)数据结构单一。(2)关系规范化,并建立在严格的理论基础上。(3)概念简单,操作方便。2.1.4关系的性质与关系模型的优点第2章关系数据库基本原理2.2关系模型的完整性约束在关系模型中,数据完整性包括实体完整性(EntityIntegrity)、参照完整性(ReferentialIntegrity)及用户自定义完整性(User-definedIntegrity)3种。第2章关系数据库基本原理2.3关系代数的基本原理1.域域(Domain)是一组具有相同数据类型的值的集合,又称为值域(用D表示)。在关系中,用域来表示属性的取值范围。例如,{0,1}、{教授、副教授,讲师,助教}、{n|n∈[0,100]的整数}等都是域。分别用D1、D2和D3表示教师关系中编号、姓名和性别3个属性的取值范围,则可能的结果是:D1={T1,T2,T3}D2={张伶俐,罗佳旺,黎达仁}D3={男,女}注意,域中的元素无排列次序,如D3={男,女}={女,男}。2.3.1关系的数学定义第2章关系数据库基本原理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章关系数据库基本原理2.3关系代数的基本原理3.关系给定一组域D1、D2、…、Dn,设R={(d1,d2,…,dn)|di∈Di,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关系的数学定义编号姓名性别T1张伶俐女T2罗佳旺男T3黎达仁男表2-5教师关系R第2章关系数据库基本原理2.3关系代数的基本原理4.关系模式设A1、A2、…、An是关系R的属性,通常用R(A1,A2,…,An)来表示这个关系的一个框架,也称为R的关系模式。属性的名字唯一,属性的取值范围Di(i=1,2,…,n)称为值域。2.3.1关系的数学定义第2章关系数据库基本原理2.3关系代数的基本原理1.并设R、S同为n元关系,则R、S的并也是一个n元关系,记作R∪S。R∪S包含了所有分属于R、S或同属于R、S的元组。因为集合中不允许有重复元素,因此,同时属于R、S的元组在R∪S中只出现一次。2.交设R、S同为n元关系,则R、S的交也是一个n元关系,记作R∩S。R∩S包含了所有同属于R、S的元组。3.差设R、S同为n元关系,则R、S的差也是一个n元关系,记作R-S。R-S包含了所有属于R但不属于S的元组。【例2-1】设R={(湖南,长沙),(河北,石家庄),(陕西,西安)},S={(湖北,武汉),(广东,广州),(广东,深圳),(陕西,西安)},求R∪S、R∩S、R-S。显然,R、S是表示城市和所在省的关系。R∪S={(湖南,长沙),(河北,石家庄),(陕西,西安),(湖北,武汉),(广东,广州),(广东,深圳)}R∩S={(陕西,西安)}R-S={(湖南,长沙),(河北,石家庄)}2.3.2关系运算第2章关系数据库基本原理2.3关系代数的基本原理4.集合的笛卡尔乘积设D1、D2、…、Dn为任意集合,D1、D2、…、Dn的笛卡尔乘积记作:D1×D2×…×Dn,并且定义D=D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n},其中(d1,d2,…,dn)是一个元组,它的每个元素di取自对应的集合Di。例如,设D1={1,2},D2={a,b},则D1×D2={(1,a),(1,b),(2,a),(2,b)}。应当注意,集合的笛卡尔乘积是所有满足di∈Di的元组(d1,d2,…,dn)组合构成的集合,设D1有m1个元素,D2有m2个元素,…,Dn有mn个元素,则D=D1×D2×…×Dn,它包含m1

1 / 55
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功