chapter2关模型和关系运算理论

上传人:san****019 文档编号:70847018 上传时间:2019-01-18 格式:PPT 页数:62 大小:823.81KB
返回 下载 相关 举报
chapter2关模型和关系运算理论_第1页
第1页 / 共62页
chapter2关模型和关系运算理论_第2页
第2页 / 共62页
chapter2关模型和关系运算理论_第3页
第3页 / 共62页
chapter2关模型和关系运算理论_第4页
第4页 / 共62页
chapter2关模型和关系运算理论_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《chapter2关模型和关系运算理论》由会员分享,可在线阅读,更多相关《chapter2关模型和关系运算理论(62页珍藏版)》请在金锄头文库上搜索。

1、第2章 关系模型和关系运算理论,2,本章概要,本章先介绍关系模型的基本概念;然后介绍关系运算的理论基础:关系代数。,3,关系模型和关系运算理,2.1 关系模型的基本概念 2.2 关系代数 2.4 关系代数表达式的优化,4,2.1 关系模型的基本概念,2.1.1 基本术语 2.1.2 关系的定义和性质 2.1.3 关系模型的三类完整性规则 2.1.4 关系模型的三级体系结构 2.1.5 关系模型的形式定义和优点 2.1.6 关系查询语言和关系运算,5,2.1.1 基本术语(1),定义2.1 用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型(Relational Model)。,图

2、2.1 职工登记表,6,2.1.1 基本术语(2),关系R元数为5,基数为4,图2.2 关系模型的术语,一般术语 关系模型术语 字段、数据项 属性 记录类型 关系模式 记录1 元组1 记录2 元组2 记录3 元组3 记录4 元组4 字段值 属性值,7,2.1.1 基本术语(3),在关系模型中 字段-属性,字段值-属性值 记录类型-关系模式 记录-元组(tuple) 元组的集合-关系(relation)或实例(instance) 关系中属性个数称为元数(arity),元组个数为基数(cardinality)。 一般用大写字母A、B、C、 表示单个属性,用大写字母 、X、Y、Z表示属性集,用小写字

3、母表示属性值,有时也习惯称呼关系为表或表格,元组为行(row),属性为列(column)。,8,2.1.1 基本术语(4),关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键。 (1)超键(super Key) (2)候选键(candidate Key) (3)主键(primary Key) 在图2.1中,(工号,姓名)是模式的一个超键,但不是候选键,而(工号)是候选键。在实际使用中,如果选择(工号)作为删除或查找元组的标志,那么称(工号)是主键。 (4)外键(foreign Key),在关系中能唯一标识元组的属性集。,不含多余属性的超键。,用户选作元组标识的候选键。,如

4、果在关系模式R中属性K是其他关系模式的主键,那么K在该模式R中称外键。,9,2.1.2 关系的定义和性质,定义2.2 关系是一个属性相同的元组的集合。 在关系模型中,对关系作了下列规范性限制: 关系中每一个属性值都是不可分解的; 关系中不允许出现重复元组(即不允许出现相同的元组); 由于关系是一个集合,因此不考虑元组间的顺序,即没有行序; 元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。,10,2.1.3 关系模型的三类完整性规则,关系的约束条件 实体完整性 参照完整性 用户自定义完整性,11,2.1.3 关系模型的三类完整性规则(1),实体完整性规则(entity integri

5、ty rule) 要求关系中元组在组成主键的属性上不能有空值。 如果出现空值,那么主键值就起不了唯一标识元组的作用,即存在不可标识的实体。,12,2.1.3 关系模型的三类完整性规则(2),参照完整性规则(reference integrity rule) 定义2.3 参照完整性规则的形式定义如下: 如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。 这条规则的实质是“不允许引用不存在的实体”。,13,2.1.3 关系模型的三类完整性规则(3),例2.1 下面各种情况说明了参照完整性规则在关系中如何

6、实现的。 在关系数据库中有下列两个关系模式: S(S#,SNAME,AGE,SEX) SC(S#,C#,SCORE) 这里带下划线者为主键,带波浪线者为外键。据规则要求关系SC中的S# 值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。 另外,在关系SC中S# 不仅是外键,也是主键的一部分,因此这里S# 值不允许空。,14,2.1.3 关系模型的三类完整性规则(4), 设工厂数据库中有两个关系模式: DEPT(D#,DNAME) EMP(E#,ENAME,SALARY

7、,D# ) 车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D# 不在主键中,因此D# 值允许空。,15,2.1.3 关系模型的三类完整性规则(5), 设课程之间有先修、后继联系。模式如下: R(C# ,CNAME,PC# ) 其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#。这里参照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出现。,16,2.1.3 关系模型的三类完整性规则(6),用户定义的完整性规则 在建立关系模

8、式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在1530岁之间: CHECK(AGE BETWEEN 15 AND 30),17,2.1.4 关系模型的三级体系结构,在关系模型中,关系模式的集合就是数据库的概念模式。,学生关系模式S(S#,SNAME,AGE,SEX) 选课关系模式SC(S#,C#,SCORE) 课程关系模式C(C#,CNAME,T#) 教师关系模式T(T#,TNAME,T

9、ITLE),18,2.1.4 关系模型的三级体系结构 -关系,S,SC,C,图2.7 三个关系,19,2.1.4 关系模型的三级体系结构 -子模式,子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与关系模式中相应数据的联系。例如,用户需要用到子模式G(图2.8)。,成绩子模式 G(S#,SNAME,C#,SCORE),图2.8 子模式,20,2.1.4 关系模型的三级体系结构 -存储模式,图2.10 关系S和SC的环结构,在有些DBMS中,关系存储是作为文件看待的,每个元组就是一个记录。由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现。如果关系的元组数目较少(100个以

10、内),那么也可以用“堆文件”方式实现(即没有特定的次序)。此外,还可对任意的属性集建立辅助索引。,21,2.1.5 关系模型的形式定义,关系模型有三个重要组成部分:数据结构,数据操纵,数据完整性规则。 (1)数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。 (2)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。 (3)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。,22,2.1.5 关系模型的优点,与其它数据模型相比,

11、关系模型突出的优点如下: (1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。 (2)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。 (3)关系模型使数据库的研究建立在比较坚实的数学基础上。(关系运算和规范化理论) (4)关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。,23,2.1.6 关系查询语言和关系运算,关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。从计算机语言的角度看,后者是在前者基础上的工作,前者比后者更复杂。关于查询的理论称为“关系运算理论”。 关系查询语言根

12、据其理论基础的不同分成三类: (1)关系代数语言。 (2)关系演算语言。 (3)关系逻辑语言。,24,2.2 关系代数,2.2.1 关系代数的五个基本操作 2.2.2 关系代数的四个组合操作 2.2.3 关系代数运算的应用实例,返回,25,2.2.1 关系代数的五个基本操作,关系代数中的操作可以分为两类: 传统的集合操作:并、差、交、笛卡儿积 扩充的关系操作:投影、选择、连接、除法 关系代数的五个基本操作 并、差、笛卡儿积、投影、选择 关系代数的四个扩充操作 交、连接、自然连接、除法,26,2.2.1 关系代数的五个基本操作 (1),并(Union) 设关系R和S具有相同的关系模式,R和S的并

13、是由属于R或属于S的元组构成的集合,记为RS。形式定义如下: RSt | tR tS,t是元组变量,R和S的元数相同。 差(Difference) 设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为RS。形式定义如下: RS t | tR tS,R和S的元数相同。,27,2.2.1 关系代数的五个基本操作 (2),笛卡儿积(Cartesian Product) 设关系R和S的元数分别为r和s,定义R和S的笛卡儿积是一个(r+s)元的元组的集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为RS。形式定义如下: RSt | t=

14、trRtsS 若R中有m个元组,S中有n个元组,则RS有mn个元组。,28,投影(Projection) 这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。 设关系R是k元关系,R在其分量Ai1,Aim(mk,i1,im为1到k间的整数)上的投影用i1,im(R)表示,它是一个m元元组集合,形式定义如下: i1,im(R)t|tR 例如,3,1(R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符的下标处也可以用属性名表示。例如,关系R(A,B,C),那么C,A(R)与3,1(R)是等价的。,2.

15、2.1 关系代数的五个基本操作 (3),29,选择(Selection) 选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。F中有两种成分: 运算对象:常数,元组分量 运算符:算术比较运算符和逻辑运算符 关系R关于公式F的选择操作,用F(R)表示,形式定义如下: F(R) t | tR F(t)= true 为选择运算符,F(R)表示从R中挑选满足公式F为真的元组所构成的关系。 例如,23(R)表示从R中挑选第2个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来

16、。,2.2.1 关系代数的五个基本操作 (4),30,2.2.1 关系代数的五个基本操作 (例),例2.3 图2.12有两个关系R和S,图2.13的(a)、(b)表示RS和RS。(c)表示RS,此处R和S的属性名相同,就应在属性名前注上相应的关系名,例如R.A、S.A等。图2.13的(d)表示C,A(R),即3,1(R)。(e)表示B=b(R)。,31,(a)RS (b)RS (c)RS (d)C,A(R)(e)B=b(R) 图2.13 关系代数操作的结果,2.2.1关系代数的五个基本操作 (例),返回,32,2.2.2 关系代数的四个组合操作 (1),交(intersection) 关系R和S的交是由属于R又属于S的元组构成的集合,记为RS,这里要

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

当前位置:首页 > 高等教育 > 大学课件

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