第三章关系数据库

上传人:飞*** 文档编号:54173089 上传时间:2018-09-08 格式:PPT 页数:51 大小:684.50KB
返回 下载 相关 举报
第三章关系数据库_第1页
第1页 / 共51页
第三章关系数据库_第2页
第2页 / 共51页
第三章关系数据库_第3页
第3页 / 共51页
第三章关系数据库_第4页
第4页 / 共51页
第三章关系数据库_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《第三章关系数据库》由会员分享,可在线阅读,更多相关《第三章关系数据库(51页珍藏版)》请在金锄头文库上搜索。

1、1,第三章 关 系 数 据 库,数据库原理与应用,2,教 学 内 容,关系数据库目前是各类数据库中最重要、最流行的数据库。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都是关系型数据库,非关系系统的产品也大都加上了关系接口。,关系数据库概述,二 关系数据结构,三 关系代数,四 关系演算,3,关系数据库概述关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。1、关系数据结构关系模型的数据结构非常单一,在用户看来,关系模型中数据的逻辑结构是一张二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联

2、系。,4,2、关系操作关系操作采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称一次一集合(set-at-a-time)的方式。相反地,非关系数据模型的数据操作方式则为一次一记录(record-at-a-time)的方式。关系模型中常用的关系操作包括:选择、投影、连接、除、并、交、差等查询操作和增、删、改操作两大部分。,5,关系操作,代数方式:关系代数,逻辑方式:关系演算,传统的集合运算,专门的关系运算,元组关系演算,域关系演算,用对关系的运算来表达查询要求的方式,用谓词来表达查询要求的方式,谓词变元的基本对象是元组变量,谓词变元的基本对象是域变量,SQL,将关系看成是元组的集合,

3、运算从行的角度进行,运算涉及行和列,6,3、完整性约束关系的完整性,即关系中的数据及具有关联关系的数据间必须遵循的制约和依存关系,以保证数据的正确性、有效性和相容性。关系的完整性主要包括域完整性、实体完整性和参照完整性三种。 (1)域完整性又称“用户自定义的完整性”,是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。比如对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。,7,(2)实体完整性实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性是对关系中的记录唯一

4、性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。例如:学生(学号,姓名,性别,专业号,年龄),8,例1:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名) 例2:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩) 例3:学生2(学号,姓名,性别,专业号,年龄,班长)定义:设F是关系R的一个或一组属性,但不是关系R的码(键),如果F与关系S的主码(主键)相对应,则称F是关系R的外码(外键),并称关系R为参照关系,关系S为被参照关系。关系R和S不一定是不同的关系。,参照关系,被参照关系,参照关系,被参照

5、关系,被参照关系,被参照关系,参照关系,(3)参照完整性,9,参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码相对应,则对于R中每个元组在F上的值必须为:或者取空值;或者等于S中某个元组的主码值;参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。,10,二 关系数据结构在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系(二维表)来表示。关系是建立在集合代数的基础上的,下面从集合论角度给出关系数据结构的形式化定义。1、关系定义1:域(

6、domain)是一组具有相同数据类型的值的集合。 例如:整数,大于0小于100的整数,实数,长度小于25字节的字符串集合。,11,定义2:笛卡尔积(cartesian product)给定一组域D1 ,D2 ,Dn , 这些域可以完全不同,也可以部分或全部相同。 D1 ,D2 ,Dn 的笛卡尔积为:D1 D2 Dn=(d1,d2,dn)| di Dj,i=1,2, ,n其中每一个元素(d1,d2,dn)叫做一个n元组(n-tuple),或简称为元组(tuple)。元素中的每一个值di叫做一个分量(component)。,12,定义3:关系 D1 D2 Dn 的子集叫作在域D1 ,D2 ,Dn

7、上的关系,用R(D1 ,D2 ,Dn )表示。R表示关系的名字,n是关系的目或度(degree) 。关系中的每个元素是关系中的元组,通常用t表示。关系是笛卡尔积的子集,也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(attribute)。,13,王洪 张江 吴南,例如 设有值域D1(姓名)=王洪,张江,吴南,D2(性别)=男,女,D3(年龄)=28,30,由这三个值域构成的笛卡尔积D为:,14,新关系的势为: M = 322 = 12 即D有12个元组,从其中取出任意一个子集D 就构成了一个关系R:,15,2、关系模式关系

8、模式是对关系的描述。一个关系需要描述哪些方面呢? 关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。现实世界随着时间在不断地变化,因而在不同的时刻,关系模式中的关系也会有所变化。但是,现实世界的许多已有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件(属性值的限定或属性值间的相互关联)。关系模式应当刻画出这些完整性约束条件。,16,定义4:关系的描述称为关系模式(relation schema)。它可以形式化地表示为R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域

9、的映象集合,F为属性间数据的依赖关系集合。例如:有如下两个域:人(person)=张清玫,刘逸,李勇,刘晨,王名专业(speciality)=计算机专业,信息专业,17,由于supervisor和postgraduate两个属性出自于同一个域,所以取了不同于域名的属性名,关系模式中必须给出属性向域的映象,说明它们分别出自哪个域:DOM( supervisor )=DOM( postgraduate)=person,关系模式通常可以简记为R(U)或R(A1,A2,,An)其中R为关系名, A1,A2,,An为属性名。属性向域的映象常常直接说明为属性的类型、长度。关系实际上就是关系模式在某一时刻的

10、状态或内容。关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间变化的,因为关系操作在不断地更新着数据库中的数据。,18,3、关系数据库在关系模型中,实体以及实体间的联系都是用关系来表示的。关系的集合构成一个关系数据库。关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。,19,三 关系代数任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三大要素。关系

11、代数的运算对象是关系,运算结果也是关系。关系代数用到的运算符包括四类:传统的集合运算符、专门的关系运算符、比较运算符和逻辑运算符。其中,比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。,20,关系操作,代数方式:关系代数,逻辑方式:关系演算,传统的集合运算,专门的关系运算,元组关系演算,域关系演算,用对关系的运算来表达查询要求的方式,用谓词来表达查询要求的方式,谓词变元的基本对象是元组变量,谓词变元的基本对象是域变量,S Q L,将关系看成是元组的集合,运算从行的角度进行,运算涉及行和列,21,22,23,选择,投影,a b c,x y,积,24,连接,连接也称为连接。它是从两个关

12、系的广义笛卡尔积(积)中选取属性间满足一定条件的元组。记作:其中A和B分别为R和S上度数相等且可以比较的属性组。是比较运算符。连接运算从R和S的广义笛卡尔积RS中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系的元组。 为“”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为:自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:,25,例如:设关系R,S分别为下表中的(a)和(b), 的结果为(c

13、),等值连接 的结果为(d),自然连接 的结果为(e)。,(a),(b),R,S,26,除,给定关系R(X,Y)和S(Y,Z),其中X, Y, Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域。R与S的除运算得到一个新的关系P(X),P是R中 满足下列条件的元组在X属性列上的投影:元组在 X上分量值x的象集Yx包含 S 在Y上投影的集合。记作:RS = tX|tR Yx Y(S) 其中Yx为x在R中的象集,x=tX。,27,例如:设关系R,S分别为下表中的(a)和(b),RS的结果为(c)。在关系R中,A有四个分量值a1, a2, a3, a4。其中: a1在(B,C)上的

14、象集为(b1,c2), (b2,c3), (b2,c1) a2在(B,C)上的象集为(b3,c7), (b2,c3) a3在(B,C)上的象集为(b4,c6) a4在(B,C)上的象集为(b6,c6) S在(B,C)上的投影为 (b1,c2), (b2,c1), (b2,c3) 显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的投影,所以RS=a1 。,(a),(b),(c),R,S,RS,28,R1,R2,R1R2,R1R2,xe(R2),3,2(R1),关系代数实例,R1R2,29,K,I,J,R1,R1K,R1K,关系代数实例,30,【例】 设有学生(S)、课程(C)、选课(S

15、C)三个关系如图1所示,用关系代数方法完成下列各题: 试求选修课程C 3或5的学生所在的系。 试求至少选修一门先行课2的学生名单。 试求学生S2所选的课程名。图1中的符号说明:S#: 学号; SN: 姓名;SD: 系; SA: 年龄; C#: 课程号; SG: 成绩;CN: 课程名; P#: 先行课号。,31,S#: 学号; SN: 姓名; SD: 系; SA: 年龄; SG: 成绩; C#: 课程号; CN: 课程名; P#: 先行课号。,图1 学生、课程与选课关系,32,解答: 设所求关系为R,则求解步骤为: R2 = R1 S 即:,答:选修C3,5课程的学生所在的系为:CS、CI和MA。,试求选修课程C 3或5的学生所在的系。,33,S#: 学号; SN: 姓名; SD: 系; SA: 年龄; SG: 成绩; C#: 课程号; CN: 课程名; P#: 先行课号。,图1 学生、课程与选课关系,34, 设所求关系为PR,则求解步骤为: PR2 = PR1 SC PR4 = PR3 S 即:答:至少选修一门先行课2的学生名单有B2,C9和F6。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号