第3章 关系数据库系统

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

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

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

资源描述

1第三章关系数据库系统关系数据库是目前应用最广泛,也是最重要、最流行的数据库。本章将介绍关系数据库的一些基本理论,包括关系数据模型、关系数据结构、关系操作、关系的完整性、关系代数、关系数据库管理系统、关系数据库标准语言。23.1关系数据库概述数据库模型依赖于数据的存储模式,即数据存储的模式不同,数据库的性质亦不同。以关系模型作为数据的组织存储方式的数据库称为关系数据库。关系数据库采用数学的方法来处理数据库中的数据,是建立在严密的数学基础之上的一种数据组织存储方式。关系数据库理论是IBM公司的E.F.Codd提出来的,他从1970年开始连续发表了多篇论文,奠定了关系数据库的理论基础。3从1975年到1979年的5月间,关系方法的理论和软件系统的研制取得了很大成功,IBM公司的SanJose实验室在IBM370系列机上研制成功了一个实现SQL语言的关系数据库实验系统原型SystemR。1981年IBM公司又宣布具有SystemR全部特征的新的数据库软件产品SQL/DS问世。之后,IBM公司又将SQL语言引入到DB2(IBMDataBase2)中,配置在MVS上运行,并于1983年推出了DB2产品。20世纪70年代末期,美国加州大学伯克利分校也研制了Ingres关系数据库实验系统,并由Ingres公司发展成为Ingres数据库产品。3.1关系数据库概述43.2关系数据模型在前面已经非形式化地介绍了关系模型及有关的基本概念。在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。关系模型是建立在集合代数基础上的,这里将从集合角度给出关系数据结构的形式化定义。关系模型:关系数据结构关系操作集合关系的完整性约束5关系模型有三个重要组成部分:关系数据结构、关系操作集合、关系完整性规则(1)关系数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表)的形式。关系模型基本的数据结构是关系。(2)关系操作集合:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。(3)关系完整性规则:数据库中数据必须满足:实体完整性、参照完整性、用户定义完整性三类完整性规则。6(1)关系的定义1p391.关系的数学定义学号姓名性别出生年月入学成绩981001姜英奇男77-6-26512991001张丹女78-1-3419991002雷拓男78-8-28579201002苏湘婷女80-1-10558201003萧易寒男81-10-95203.2.1关系数据结构属性列元组行7(1)关系的定义:关系是二维表的一种抽象,是一组属性数目相同的元组的集合。这个定义把关系看成了一个集合。集合中的元素是元组,每个元组的属性数目应该是相同的。8(2)关系的分类:按照不同的标准,关系有不同的分类。①按属性数目分:具有n个属性的关系称为n元关系。n=0时称空关系。②按元组数目分:如果一个关系的元组数目是无限的,则称为无限关系,否则称为有限关系。由于计算机存储系统的限制,通常我们只研究有限关系。③按关系的存储状况分:基本表:是实际存在的表,它是实际存储的数据的逻辑表示。查询表:是查询结果表或查询中生成的临时表。视图表:是由基本表或其他视图表导出的表,它是为了数据查询方便、数据处理简便、数据安全要求而设计的数据虚表,不对应实际存储的数据。9其中,D1、D2、D3为域名,分别表示学生关系中姓名、性别和年龄的集合。域名无排列次序,如D2={男,女}={女,男}。(2)域(Domain)定义:域是一组具有相同数据类型的值的集合,又称为值域(用D表示)。例如整数、实数和字符串的集合都是域。域中所包含的值的个数称为域的基数(用m表示)。在关系中就是用域来表示属性的取值范围的。例:D1={李力,王平,刘伟},m1=3D2={男,女};m2=2D3={18,20,18};m3=310定义给定一组域D1,D2,…Dn,这些域可以完全不同,也可以部分或全部相同。D1,D2,…Dn的笛卡儿积为D1×D2×…×Dn,每一个(d1,d2,…dn)叫做一个n元组,或简称为元组。元组中每一个值di叫做一个分量。若Di为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中:m —— 笛卡尔乘积的基数mi —— 第i个域的基数n —— 域的个数niimm1(3)笛卡儿积(CartesianProduct)11笛卡儿积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。如果我们给出三个域:D1={张宾,王雷,李平}(学生集合)D2={男,女}(性别集合)D3={计算机语言,数据结构,计算机网络}(课程集合)则D1×D2×D3=(3)笛卡儿积(CartesianProduct)12{(张宾,男,计算机语言),(张宾,男,数据结构),(张宾,男,计算机网络),(张宾,女,计算机语言),(张宾,女,数据结构),(张宾,女,计算机网络),(王雷,男,计算机语言),(王雷,男,数据结构),(王雷,男,计算机网络),(王雷,女,计算机语言),(王雷,女,数据结构),(王雷,女,计算机网络),(李平,男,计算机语言),(李平,男,数据结构),(李平,男,计算机网络),(李平,女,计算机语言),(李平,女,数据结构),(李平,女,计算机网络)}D1={张宾,王雷,李平}D2={男,女}D3={计算机语言,数据结构,计算机网络}则D1×D2×D3=13其中(张宾,男,计算机语言),(王雷,男,数据结构),(李平,男,计算机网络)等都是元组。张宾、男、计算机语言,王雷、男、数据结构,李平、男、计算机网络等都是分量。该笛卡儿积的基数为:3×2×3=18,这也就是说D1×D2×D3一共有3×2×3=18个元组。(4)关系定义2(Relation)定义3D1×D2×…×Dn的子集叫做在域D1×D2×…×Dn上的关系,用R(D1×D2×…×Dn)表示。这里R表示关系的名字,n是关系的目或度,也称为元数。14关系中的每个元素是关系中的元组。关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对应一个元组。表的每列对应一个域,由于域可以相同,为了加以区分,必须对每列起一个名字。关系中的每一列称为属性,列名称为属性名,n目关系必有n个属性。在定义中,当n=1的关系只含有一个属性,称为单元关系。当n=2为二元关系,以此类推。在SQLServer数据库中,通常关系被称为数据表,属性被称为字段,元组则被称为记录。15学生选课表(姓名,性别,所选课程)如下表给出了一张学生选课表,该表由学生姓名、性别和所选课程组成,该关系的名字为学生选课表,属性名就是域名,即姓名,性别和所选课程,这个关系可表示为姓名性别所选课程王芳男计算机语言王天女数据库系统及应用郑蕾男计算机网络16(1)码(key)码,主码,候选码主属性,非主属性(2)全码单属性码,多属性码,全码(3)关系模式(4)关系数据库2.相关术语17(1)码:是关系模型中的一个重要概念,它具有标识元组、建立元组间联系等重要作用。码(key):在二维表中凡能唯一标识元组的属性组称为该表的码或关键字。候选码(candidatekey):二维表中可能有若干个码,它们称为该表的候选码或候选关键字。主码(primarykey):用户选作元组标识的候选码称为主码或主关键字。一般主码也简称码。外码(foreignkey):如果表A中的某属性组是表B的主码,则称该属性集为A的外码或外关键字。p412.相关术语18如:两个关系(学生登记表)和(学院情况表):学生登记表(学号,姓名,性别,年龄,学院号)学院情况表(学院号,学院名称,院长姓名,联系电话)其中学院号是关系学院情况表的主码,是关系学生登记表的外码。(2)全码:单属性码,多属性码,全码2.相关术语19关系模型(RelationModel)在关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,通常它要描述一个关系:1.由哪些属性组成,2.这些属性来自哪些域,3.属性与域之间的映象关系,4.还要描述关系中元组的语义。因此,一个关系模式应当是一个5元组。3.关系模型20定义7-3关系的描述称为关系模式(RelationSchema)。它可以形式化地表示为:R(U,D,dom,F)R:为关系名U:为组成该关系的属性名集合D:为属性组U中属性所来自的域dom:为属性向域的映象集合F:为属性间数据的依赖关系集合通常关系模式可以简记为:R(U)或R(A1,A2,…,An)学生选课表(姓名,性别,所选课程)21关系模式是对关系的描述,通常它包括关系名、组成该关系的多个属性名、域名、属性向域的映像(即属性与域之间的映像关系)等4个部分。通常记为R(D1,D2,…,Dn),R为关系名,D1,D2,…Dn为属性名。属性向域的映像常用属性的类型、长度来说明。关系模式是型,关系模式就是二维表的表框架或结构,它相当于文件结构或者记录结构。关系是它们的值,关系就是关系模式在某一时刻的状态或内容。在实际中,常常把关系模式和关系统称为关系,读者可以从上下文中加以区别。设关系名为R,其属性名为A1,A2…,An,则关系模式为:R(A1,A2,…,An)对每个Ai(i=1,…,n)还包括该属性到值域的映象,即属性的取值范围3.关系模型224.关系数据库模式一组关系模式的集合叫作关系数据库模式。关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述,也就是前面所讲过的关系的头,可以看作是关系的型。与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,成为关系数据库的实例,即前面所讲过的关系体,可以看作是关系的值。例如,在教学数据库中,共有五个关系,其关系模式分别为:学生(学号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,职称,工资,岗位津贴,系别)课程(课程号,课程名,课时)选课(学号,课程名,成绩)授课(教师号,课程号)在每个关系中,又有其相应的数据库的实例(元组)。所有的关系模式、属性名和关键字的汇集,是模式描述的对象235.关系数据库关系数据库是“一组随时间变化,具有各种度的概念的规范化关系的集合”。因为关系是由关系头和关系体组成的,所以关系数据库也可以看作是一组关系头和关系体的集合,由此可见,关系数据库也有型和值的概念,其型就是关系数据库模式,相对固定,其值就是在不同的时刻会有所变化。24在关系模型中,实体及实体间的联系都是用关系来表示的。在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库。关系数据库也有型和值之分。关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。5.关系数据库256.关系的性质在关系数据库中,关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项。我们把这样的关系称为规范化的关系。当有些分量可以取多个值时,我们把这样的关系称为非规范化的关系,而非规范化的关系在关系数据库中是不允许出现的。关系是用集合代数的笛卡尔积定义的,关系是元组的集合。关系具有如下性质:·列是同质的,即每一列中的分量是同类型的数据,来自同一域;·不同的列可出自同一个域,每一列称为属性,要给予不同的属性名;·关系中没有重复元组,任意一个元组在关系中都是惟一的;·元组的顺序无关紧要,即元组的次序可以任意交换;·属性的顺序是非排序的,属性一般是用它的名称来标识,而不使用它的位置来标识;·属性必须有不同的属性名,不同的属性可来自同一个域;·所有的属性值都是原子,不允许属性又是一个二维关系。26二维表一般满足下面7个性质:(1)二维表中元组个数是有限的——元组个数有限性。(2)二维表中元组均不相同——元组的唯一性。(3)二维表中元组的次序可以任意交换——元组的

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

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

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

×
保存成功