数据库原理-第三章-关系运算课件

上传人:F****n 文档编号:88147603 上传时间:2019-04-20 格式:PPT 页数:44 大小:402.50KB
返回 下载 相关 举报
数据库原理-第三章-关系运算课件_第1页
第1页 / 共44页
数据库原理-第三章-关系运算课件_第2页
第2页 / 共44页
数据库原理-第三章-关系运算课件_第3页
第3页 / 共44页
数据库原理-第三章-关系运算课件_第4页
第4页 / 共44页
数据库原理-第三章-关系运算课件_第5页
第5页 / 共44页
点击查看更多>>
资源描述

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

1、1,数据库原理,第三章 关系运算,本章内容概要,关系数据模型 关系数据模型定义 关键码和表之间的联系 关系模式 关系模型的完整性规则 关系运算 关系查询语言和关系运算 关系代数运算符的分类 传统的集合运算 专门的关系运算 扩充的关系代数操作(自学) 关系代数表达式的优化(自学),关系数据库 关系数据库是通过关系数据模型建立起来的数据库系统 。 关系数据库有一个严密的、能够数学推导的、容易理解的、得到实践证明正确的是关系数据模型。 基本概念:利用集合代数、谓词演算等抽象的数学知识,深刻而透彻地介绍了关系数据结构,关系数据库操作及关系数据库完整性这关系数据模型的三要素的概念。 数据模型中的数据描述

2、,组成的基本要素.,3.1关系数据模型,关系数据模型,关系数据模型三要素-关系数据结构、关系操作集合和关系完整性约束。 1、关系模型的数据结构关系结构 关系模型的数据结构:非常单一,在用户看来关系模型中数据的逻辑结构是一张二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。 2、关系模型的数据操作关系操作 关系模型给出了关系操作的能力,它利用基于数学的方法来表达关系操作,关系模型给出的关系操作往往不针对具体的RDBMS语言来表述。,关系模型(续),3、关系的三类完整性约束 关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完

3、整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户自定义的完整性是应用领域特殊要求而需要遵循的约束条件,体现了具体领域中的语义约束。,3.1.1关系数据模型的定义, 域(Domain) 定义1: 域是一组具有相同数据类型的值的集合。又称为值域(用D表示)。 域中所包含的值的个数称为域的基数(用m表示)。 在关系中就是用域来表示属性的取值范围的。 例如,自然数、整数、实数、长度小于10字节的字符串集合、1-16之间的整数,它们都是域。 又如, D1=张三,李四 D1的基数m1为2 D2=男,女 D2的基数m2为2 D3=19,20

4、,21 D3的基数m3为3, 笛卡尔积(Cartesian Product) 定义2: 给定一组域D1、D2、Dn (这些域中可以包含相同的元素,即可以完全不同(也可以部分或全部相同), D1、D2、Dn的笛卡尔积为: D1D2Dn=(d1,d2, ,dn)|diDi,i1,2,,n 由定义可以看出,笛卡尔积也是一个集合。,其中: (1)其中每一个元素(d1,d2, ,dn)叫作一个n元组(n-tuple),或简称为元组(Tuple)。但元组不是di的集合,元组由di按序排列而成。 (2)元素中的每一个值di叫作一个分量(Component)。分量来自相应的域(diDi)。,(3) 若Di(i

5、1,2,n)为有限集, 其基数(Cardinal number)为mi(i1,2,n), 则D1D2Dn的基数为n个域的基数累乘之积 (4)笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。 如上面例子中D1与D2的笛卡尔积: D1D2 =(张三,男),(张三,女),(李四,男),(李四,女) 可以表示成二维表,如下表2.1所示:,表3-3 笛卡尔积,笛卡尔积是个二维表,3、关系(Relation),关系是属性值域的笛卡尔积中有意义的元组的集合 定义3: D1D2Dn的任何一个子集叫作在域D1,D2,Dn上的关系,用 R(D1,D2,Dn)表示。如上例中D1D2笛卡尔积

6、的子集可以构成关系T1,如下表所示:,笛卡尔积的子集,关系T1,笛卡尔积的二维表,关系T1的二维表,表现形式,关系(续),(1) R表示关系的名字,n是关系的目或度(Degree)。 当n=1时,称为单元关系。 当n=2时,称为二元关系。 当n=m时,称为 m元关系。 (2)关系中的每个元素是关系中的元组。 通常用t表示。 (3)关系是笛卡尔积的子集,所以关系也是一个二维表。 表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个唯一的名字,称为属性(Attribute)。n目关系必有n个属性。,关系(续2),对关系作如下限定和扩充: 无限关系在数据库系统中是

7、无意义的。因此限定关系数据模型中的关系必须是有限集合。 通过为关系的每个列附加一个属性名的方法取消关系元组的有序性。 即(d1,d2,dj,di,dn) =(d1,d2,di,dj,dn) (i,j=1,2,n) 基本关系具有以下六条性质: 列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。,关系(续3), 列的顺序无所谓,即列的次序可以任意交换。 任意两个元组不能完全相同。 行的顺序无所谓,即行的次序可以任意交换。 分量必须取原子值,即每一个分量都必须是不可分的数据项。如下两

8、图: 课程关系C(不规范的关系) 课程关系C (规范的关系),3.1.2 关键码和表之间的关系,插入键的概念:键(Key)-关键码 1、超键(Super Key) 在一个关系中能唯一标识元组的属性集合 例如:属性集(教师、系别) 2、候选键(Candidate Key) 若关系中某一属性组的值能唯一地表示一个元组,则称该属性组为候选键。例如:教师编号、身份证号 3、主键(Primary Key) 在候选键中选中一个作为主键,主键带有主属性。 例如:可选教师号、身份证号均可。 4、合成键(Composite Key) 由多个属性组成的候选键。 5、外键(Foreign Key) 若关系包含有另一

9、个关系R所对应的属性F,则F为R的外键,或当关系R1与R2建立联系时,R1的属性A1不是R1的候选键,而是R2的候选键,则称A1为R1的外键。 例如教师编号、系别编号、姓名、年龄、省份证号,例题: 设教学管理数据库中有5个关系如下: 学生 S(SNO, SNAME, AGE, SEX, BPLACE) 课程 C(CNO, CNAME, CREDIT) 教师 T(TNO, TNAME, AGE, PS) 选课 SE(SNO, CNO, GRADE) 任课 TE(CNO, TNO, SNUM) 例1找出S,SE关系中的各种关键字。 例2设关系S中有两个超键BC、C,其中哪个是候选健、主键、复合键。

10、,Home,关键码和表之间的关系(续),3.1.3 关系模式,在数据库中要区分型和值两方面。 关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,那么一个关系需要描述哪些方面? 首先应该知道,关系实际上是一张二维表, 表的每一行为一个元组,每一列为一个属性。 其次一个关系通常是由赋予它的元组语义来确定的。 元组语义实质上是一个n目谓词(n是属性集中属性的个数)。 关系模式的关系在不同的时刻会随着现实世界的不断地变化会有所变化。 现实世界的许多已有事实限定了关系模式,因此所有可能的关系必须满足一定的完整性约束条件。 关系模式的形式化表示 一个关系模式应当是一个5元组。,关系模式(续),

11、定义4:关系的描述称为关系模式(Relation Schema)一个关系模式应当是一个五元组。 它形式化地表示为:R(U, D, dom, F)。 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域的集合,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。 关系模式通常简记为:R(A1, A2, , An)或R(U)。 其中 A1, A2, , An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。 关系实际上就是关系模式在某一时刻的状态或内容。 就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系

12、操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系。,关系数据库,在一个给定的现实世界领域中,所有实体及实体之间的联系关系的集合构成一个关系数据库。 在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生实体、课程实体、学生与课程之间的多对多选课联系都可以分别用一个关系(或二维表)来表示。 关系数据库也分成型和值。 型称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。 值称为关系数据库,是关系的集合。 关系数据库模式与关系数据库通常统称为关系数据库。,3.1.4 关系模型的完整性规则,一、实体完整性规则(Entity Integrity) 规则3.1

13、4: 若属性组(或属性)K是基本关系R的主码(或称主关键字),则所有元组K的取值唯一,并且K中属性不能全部或部分取空值。 二、参照完整性(Referential integrity) 定义5 :设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可能是相同的关系,即自身参照。,关系模型的完整性规则(续),规则3.15 参

14、照完整性规则: 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为以下两种情况,或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。 例子见教材P37. 三、用户定义的完整性(User-defined integrity) 用户定义的完整性就是针对某一具体应用的关系数据库所制定的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 例如:非空、0、限定的值域范围等等。,完整性约束 数据做更新操作必须遵守的规则,数据做更新操作必须遵守如下4类完整性约束。 实体(Entity Inte

15、grity)约束:主键值必须唯一,且不能为空值。 参照(Referential Integrity)约束:关系R1与R2关联时,R2中的外键值依赖于R1中的主键值。 域(Domain Integrity)约束:对属性的取值范围或是否为空值(NULL)。 用户自定义约束:用户自定义的默认值等。,3.2 关系运算,关系运算就是指研究关系操作的问题 关系查询语言和关系运算 关系代数运算符及其分类 传统的集合运算 专门的关系运算 关系代数表达式应用实例 扩充的关系代数操作,关系代数,关系代数是一种抽象的查询语言。 用对关系的运算来表达关系操作,关系代数是研究关系数据操作语言的一种较好的数学工具。 关系

16、代数是E.F.Codd 1970年首次提出的,后面一节的关系演算是E.F.Codd 1972年首次提出的, 1979年E.F.Codd对关系模型作了扩展,讨论了关系代数中加入空值和外连接的问题。 关系代数以一个或两个关系为输入(或称为操作对象),产生一个新的关系作为其操作结果。即其运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符,如表3.6所示。,关系代数的运算符,关系代数的运算符,关系代数运算符分类说明,比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类。 1.传统的集合运算:包括并、交、差、广义笛卡尔积四种运算。 2.专门的关系运算:包括选择、投影、连接、除等。 其中传统的集合运算将关系看成元组的集合,其运算

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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