第2章关模型和关系运算理论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩子模式 G(S#,SNAME,C#,GRADE)
图2.8 子模式
22
关系模型的形式定义
关系模型有三个重要组成部分:数据结构,数据操纵,数 据完整性规则。 (1)数据结构:数据库中全部数据及其相互联系都被组织成 “关系”(二维表格)的形式。关系模型基本的数据结构是关 系。 (2)数据操纵:关系模型提供一组完备的高级关系运算,以 支持对数据库的各种操作。关系运算分成关系代数、关系演算 和关系逻辑等三类。 (3)数据完整性规则:数据库中数据必须满足实体完整性, 参照完整性和用户定义的完整性等三类完整性规则。
第2章 关系模型和关系运算理论
计算机系
刘金岭
1
本章重要概念(一)
(1)基本概念 关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规 则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。 (2)关系代数 五个基本操作,四个组合操作,七个扩充操作。 (3)关系代数表达式的优化 关系代数表达式的等价及等价转换规则,启化式优化算法。
9
关系的定义和性质
定义2.2 关系是一个属性数目相同的元组的集合。 在关系模型中,对关系作了下列规范性限制: (1)关系中每一个属性值都是不可分解的; (2)关系中不允许出现重复元组(即不允许出现相同的元组); (3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序; (4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺 序。
因此:若R有m个元组,S有n个元组,则R×S有m×n个元组。
28
关系代数的五个基本操作 (3)
投影(Projection) 这个操作是对一个关系进行垂直分割,消去某些列,并 重新安排列的顺序。 设关系R是k元关系,R在其分量Ai1,…,Aim(m≤k, i1,…,im为1到k间的整数)上的投影用π i1,…,im(R) 表示,它是一个m元元组集合,形式定义如下: π i1,…,im(R)≡{ t | t=〈ti1,…,tim〉∧〈t1,…, tk〉∈R } 例如,π 3,1(R)表示关系R中取第1、3列,组成新的 关系,新关系中第1列为R的第3列,新关系的第2列为R的 第1列。如果R的每列标上属性名,那么操作符π 的下标处 也可以用属性名表示。例如,关系R(A,B,C),那么 π C,A(R)与π3,1(R)是等价的。
由参照完整性建立了多表之间的对应关系
12
关系模型的三类完整性规则 (3)
例2.1 下面各种情况说明了参照完整性规则在关系中如何实现的。 ① 在关系数据库中有下列两个关系模式: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) 这里带下划线者为主键,带红虚线者为外键。据规则要求,关系SC 中的S# 值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80), 而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个 不存在的学生实体,这就违反了参照完整性规则。 另外,在关系SC中S#不仅是外键,也是主键的一部分,因此这里S# 值不允许空。
15
ER模型向关系模型的转换规则 (1)
ER模型向关系模型的转换,实际上就是把ER图转换成关系模式的集合。 规则2.1(实体类型的转换):将每个实体类型转换成一个关系模式, 实体的属性即为关系模式的属性,实体标识符即为关系模式的键。 规则2.2(二元联系类型的转换) ① 若实体间联系是1:1,可以在两个实体类型转换的两个关系中的任意一 个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7
基本术语 关系的定义和性质 关系模型的三类完整性规则 ER模型向关系模型的转换规则 关系模型的三级体系结构 关系模型的形式定义和优点 关系查询语言和关系运算
5
基本术语(1)
定义2.1 用二维表格表示实体集,用关键码进行数据导航的数据模型称 为关系模型(relational Model)。这里数据导航(data navigation)是 指从已知数据查找未知数据的过程和方法。
(3)关系逻辑语言。
25
2.2 关系代数
2.2.1 2.2.2 2.2.3 2.2.4
关系代数的五个基本操作 关系代数的四个组合操作 关系代数运算的应用实例 关系代数的七个扩充操作
返 回
26
关系代数的五个基本操作 (1)
并(Union) 设关系R和S具有相同的关系模式,R和S的并是由属于R或属 于S的元组构成的集合,记为R∪S。形式定义如下: R∪S≡{t | t∈R ∨ t∈S},t是元组变量,R和S的元数相同。 差(Difference) 设关系R和S具有相同的关系模式,R和S的差是由属于R但不 属于S的元组构成的集合,记为R-S。形式定义如下: R-S≡{ t | t∈R ∧ t∈S},R和S的元数相同。
一般术语 字段、数据项 A a1 B b1 C c1 D d1 E e1 记录类型 记录1 记录2 关系模型术语 属性 关系模式 元组1 元组2
R
a2
a3 a4
b2
b3 B4
c2
c3 c4
d2
d3 d4
e2
e3 e4
文件
记录3 记录4 字段值 元组3 元组4 属性值
关系 (实例)
图2.2 关系模型的术语
例子
27
关系代数的五个基本操作 (2)
笛卡儿积(Cartesian Product)
设关系R和S的元数分别为r和s,定义R和S的一个(r+s)元的元 组集合,每个元组的前r个分量来自R的一个元组,后s个分量来 自S的一个元组,记为R×S。 R×S ≡{t|t=<tr,ts>∧tr∈R∧ts∈S}
返 回
24
关系查询语言和关系运算
关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两 大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户 进行插入、删除、修改等操作。关于查询的理论称为“关系运算理论”。 关系查询语言根据其理论基础的不同分成三类: (1)关系代数语言。 (2)关系演算语言。
16
ER模型向关系模型的转换规则 (2)
其关系模式为: 学校(校名,地址,电话,校长名, 任职年月) 校长(姓名,性别,年龄,职称)
图2.3 一对一联系
17
ER模型向关系模型的转换规则 (3)
②若实体间联系是1:N,则在N端实体类型也转换成的关系模式中加入 1端实体类型的键和联系类型的属性。
系(系号,系名,电话) 教师(工号,姓名,性别,年龄, 系号,聘期)
13
关系模型的三类完整性规则 (4)
② 设工厂数据库中有两个关系模式:
DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D# )
车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为 工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。 在EMP中,由于D#不在主键中,因此D# 值允许空。
工 号 4001 4002 4124 5018 姓 名 zhang li liu wang 年 龄 50 40 35 25 性 别 M F M M 工 资 2000 1500 2000 1000
图2.1 职工登记表
6
基本术语(2)
在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系 模式。在图2.2中,关系模式名是R。
关系的属性个数称为元数,元组的个数称为基数。 关系R的元数为5,基数为4。
7
基本术语(3)
记 录 称 为 元 组 (Tuple) , 元 组 的 集 合 称 为 关 系 ( relation ) 或 实 例 (instance)。一般用大写字母A、B、C、… 表示单个属性,用大写字 母 …、X、Y、Z表示属性集,用小写字母表示属性值,有时也习惯称呼 关系为表或表格,元组为行(row),属性为列(column)。 关系中属性个数称为“元数”(arity),元组个数为“基 数”(cardinality)。
C1 C1 C2 C2 C3 C4 C3
80 90 70 85 95 70 90
C
C# C2 C4 C3 C1
CNAME MATHs Physics Chemistry Database
TEACHER Ma Shi Zhou Li
21
关系模型的三级体系结构 --子模式
子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与 关系模式中相应数据的联系。例如,用户需要用到子模式G(图2.8)。
用户定义的完整性规则 在建立关系模式时,对属性定义了数据类型,即使这样可能还满足 不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性 规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用 程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大, 我们可以写如下规则把年龄限制在15~30岁之间: CHECK(AGE BETWEEN 15 AND 30)
19
关系模型的三级体系结构 -- 关系模式
在关系模型中,记录类型称为关系模式,而关系模式的集合就是数 据库的概念模式。在系统实现时,关系模式和属性的命名一般都用 英文单词。譬如上例的ER图转换成的关系模式集可用图2.6表示。
学生关系模式:S(S#,SNAME,AGE,SEX) 选课关系模式:SC(S#,C#,GRADE)
③ 设课程之间有先修、后继联系。模式如下: R(C# ,CNAME,PC# ) 其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程 的直接先修课只有一门,那么模式R的主键是C#,外键是PC#.。这里参 照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出 现。
14
关系模型的三类完整性规则 (5)
8
基本术语(4)
关键码(key,简称键) 由一个或多个属性组成,有下列几种: (1)超建(super Key):在关系中能惟一标识元组的属性集称为关系模 式的超键。 (2)候选键(candidate Key):不含有多余属性的超键称为候选键。 (3)主键(primary Key):用户选作元组标识的候选键称为主键。一般 如不加说明,键是指主键。 在前面职工登记表中,(工号,姓名)是模式的一个超键,但不是候选 键,而(工号)是候选键。在实际使用中,如果选择(工号)作为删除或 查找元组的标志,那么称(工号)是主键。 (4)外键(foreign Key):如果模式R中属性K是其他模式的主键,那 么K在模式R中称为外键。 关系中每一个属性都有一个取值范围,称为属性的值域(Domain), 属性A的取值范围用DOM(A)表示。
10
关系模型的三类完整性规则(1)
实体完整性规则(entity integrity rule) 要求关系中元组在组成主键的属性上不能有空值。如果出 现空值,那么主键值就起不了惟一标织元组的作用。
11
关系模型的三类完整性规则 (2)
参照完整性规则(reference integrity rule) 定义2.3 参照完整性规则的形式定义如下: 如果属性集K是关系模式R1的主键,K也是关系模式R2的外 键,那么在R2的关系中,K的取值只允许两种可能,或者为空 值,或者等于R1关系中某个主键值。 这条规则的实质是“不允许引用不存在的实体”。 在上述形式定义中,关系模式R1的关系称为“参照关系”,关 系模式R2的关系称为“依赖关系”。
23
关系模型的优点
与其它数据模型相比,关系模型突出的优点如下: (1)关系模型提供单一的数据结构形式,具有高度的简明 性和精确性。 (2)关系模型的逻辑结构和相应的操作完全独立于数据存 储方式,具有高度的数据独立性。 (3)关系模型使数据库的研究建立在比较坚实的数学基础 上。 (4)关系数据库语言与一阶谓词逻辑的固有内在联系,为 以关系数据库为基础的推理系统和知识库系统的研究提供了方 便。
课程关系模式:C(C#,CNAME,TEACHER)
图2.6 关系模式集
20
这个关系模型的三个具体关系: S
S# S1 S4 S2 S3 S8 SNAME Wang Wu Liu Chen Dong AGE 20 19 21 22 18 SEX M M F M F
SC
S#
C#
CRADE
S1 S3 S1 S3 S3 S4 S8
2
本章概要
本章先介绍关系模型的基本概念;然后主要介绍关系运算的三种理论之 一:关系代数。
3
关系模型和关系运算理
2.1 2.2 2.3 2.4 2.5
关系模型的基本概念 关系代数 关系演算(略) 关系代数表达式的优化 关系逻辑(略)
4
2.1 关系模型的基本概念
图2.4 一对多联系
18
ER模型向关系模型的转换规则 (4)
③若实体间联系是M:N,则将联系类型转换成关系模式时,其属性为两端实体 类型的键加上联系类型的属性,而键为两端实体键的组合。
学生(学号,姓名,年龄, 性别) 选课(学号,课程号,成 绩) 课程(课程号,课程名, 教师名)
图2Βιβλιοθήκη Baidu5 多对多联系