数据库系统之关系型数据库

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

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

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

资源描述

1关系数据库关系数据库应用数学方法来处理数据库中的数据。最早将这类方法用于数据处理的是1962年CODASYL发表的“信息代数”,之后在1968年DavidChild在7090机器上实现的集合论数据结构,但系统地、严格地提出关系模型的是美国IBM公司的E.F.Codd。关系模型概述关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。2关系数据库单一的数据结构——关系在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。关系操作关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查询操作和插入(Insert)、删除(Delete)、修改(Update)操作两大部分。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合(set-at-a-time)的方式。相应地,非关系数据模型的数据操作方式则为一次一记录(record-at-a-time)的方式。3关系数据库目前在关系数据库中完成这些操作基本上都是用SQL(StructureQueryLanguage,结构化查询语言)语言完成的。SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL、DML和DCL于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。4关系数据库关系的三类完整性约束实体完整性参照完整性用户定义的完整性其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,由关系数据库系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的主义约束。5关系数据库关系数据结构及形式化定义在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系(表)来表示的。关系模型是建立在集合代数的基础上的,下面从集合论角度给出关系数据结构的形式化定义。关系(1)域(Domain)定义1:域是一组具有相同数据类型的值的集合。6关系数据库(2)笛卡尔积(CartesianProduct)定义2:给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1,d2,…,dn)叫作一个n元组或简称元组。元素中的每一个值di叫作一个分量。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。7关系数据库例1:给出三个域:D1=导师集合SUPERVISOR=张清玫,刘逸D2=专业集合SPECIALITY=计算机,信息D3=研究生集合POSTGRADUATE=李勇,刘晨,王敏则D1,D2,D3的笛卡尔积为:D1×D2×D3={(张清玫,计算机,李勇),(张清玫,计算机,刘晨),(张清玫,计算机,王敏),(张清玫,信息,李勇),(张清玫,信息,刘晨),(张清玫,信息,王敏),(刘逸,计算机,李勇),(刘逸,计算机,刘晨),(刘逸,计算机,王敏),(刘逸,信息,李勇),(刘逸,信息,刘晨),(刘逸,信息,王敏)}8关系数据库其中:(张清玫,计算机,李勇),(张清玫,计算机,刘晨)等都是元组。张清玫,计算机,李勇,刘晨等都是分量。该笛卡尔积的基数为:2×2×3=12也就是说,D1×D2×D3一共有2×2×3=12个元组。这12个元组可列成一张二维表,如表1所示:9关系数据库10张清玫计算机李勇张清玫计算机刘晨张清玫计算机王敏张清玫信息李勇张清玫信息刘晨张清玫信息王敏刘逸计算机李勇刘逸计算机刘晨刘逸计算机王敏刘逸信息李勇刘逸信息刘晨刘逸信息王敏SUPERVISORSPECIALITYPOSTGRADUATED1,D2,D3的笛卡尔积表1(3)关系(Relation)定义3:D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)这里R表示关系的名字,n是关系的目或度。“基数”表示二维表的行数,“目或度”表示二维表的列数。关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。n目关系必有n个属性。11关系数据库若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码(Primarykey)。主码的诸属性称为主属性。不包含在任何候选码中的属性称为非码属性。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码。例如在表1的笛卡尔积中取出一个子集来构造一个关系。由于一个研究生只师从于一个导师,学习某一个专业,所以笛卡尔积中的许多元组是无实际意义的,从中取出有实际意义的元组来构造关系。该关系的名字为SAP,属性名取域名,即:SUPERVISOR,SPECIALITY,POSTGRADUATE,12关系数据库则这个关系可表示为:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假设导师与专业是一对一的,即一个导师只有一个专业;导师与研究生是一对多的,即一个导师可以带多名研究生,而一名研究生只有一个导师。这样SAP关系可以包含三个元组,如表2示:13张清玫信息李勇张清玫信息刘晨刘逸信息王敏SUPERVISORSPECIALITYPOSTGRADUATE表2SAP关系假设研究生不会重名,则POSTGRADUATE属性的每个值都唯一地标识了一个元素,因此可以作为SAP关系的主码。关系可以有三种类型:基本关系(通常称为基本表或基表)、查询表和视图。基本表是实际存在的表,它是实际存储数据的逻辑表示。查询表是查询结果对应的表。视图是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。按照定义2,关系可以是一个无限集合。由于笛卡尔积不满足交换律,所以按照数学定义,(d1,d2,…,dn)≠(d2,d1,…,dn)。当关系作为关系数据模型的数据结构时,需要给予如下的限定和扩充:(1)无限关系在数据库系统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。14关系数据库(2)通过为关系的每个列附加一个属性名的方法取消关系元组的有序性,即:(d1,d2,…,dn)=(d2,d1,…,dn)因此基本关系具有以下六条性质:①列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。②不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。③列的顺序无所谓,即列的次序可以任意交换。④任意两个元组不能完全相同。⑤行的顺序无所谓,即行的次序可以任意交换。⑥分量必须取原子值,即每一个分量都必须是不可分的数据项。15在许多实际关系数据库产品中,基本表并不完全具有这六条性质,如:Oracle等,允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件。这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项。规范化的关系简称为范式(NormalForm,NF)。16关系数据库SUPSPECPOSTPG1PG2非规范化关系张三计算机李四王五关系模式在数据库中要区分型和值。关系模式是型,关系是值。关系模式是对关系的描述。关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。现实世界随着时间在不断变化,因而在不同的时刻,关系模式的关系也会有所变化。但是,现实世界的许多已有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件。这些约束或者通过对属性取值范围的限定,或者通过属性值间的相互关连反映出来。关系模式应当刻划出这些完整性约束条件。17关系数据库定义4:关系的描述称为关系模式,它可以形式化地表示为:R(U,D,dom,F)其中R为关系名,U为组成该关系的属性集合,D为属性组U中属性所来自的域dom为属性向域的映象集合,F为属性间数据的依赖关系集合。关系模式通常记为:R(U)或R(A1,A2,…,An)R为关系名,A1,A2,…,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。18关系数据库关系数据库在关系模型中,实体以及实体间的联系都是用关系来表示的。在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。19关系数据库关系的完整性关系模型的完性规则是对关系的某种约束条件。关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整约束条件,被称作是关系的两个不变性,由关系系统自动支持。实体完整性(IntityIntegrity)规则1实体完整性若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。20关系数据库对实体完整规则的说明:实体完整性规则是针对基本关系而言的。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。(空值就是“不知道”或“无意义”)参照完整性在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。21关系数据库定义5:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreignkey),并称基本关系R为参照关系(ReferencingRelation),基本关系S为被参照关系(ReferencedRelation)或目标关系。关系R和S不一定是不同的关系。目标关系S的主码Ks和参照关系的外码F必须定义在同一个域上。规则2:参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:a)或者取空值(F的每个属性值均为空值);b)或者等于S中某个元组的主码值。22关系数据库参照完整性规则中,R与S可以是同一个关系。用户定义的完整性用户定义的完整性就是针对某一具体关系数据库的约束条件。关系代数关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。关系代数的运算对象是关系,运算结果亦为关系。23关系数据库专门的关系运算专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个记号。①设关系模式为R(A1,A2,…,An)。它的一个关系设为R,t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应属性Ai的一个分量。②若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。③R为n目关系,S为m目关系。tr∈R,ts∈S,称为元组

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

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

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

×
保存成功