第2章关系模型和关系运算理论-
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果属性集K是关系模式R1的主键,K 也是关系模式R2的外键,那么在R2的关系中, K的取值只允许两种可能,或者为空值,或者 等于R1关系中某个主键值。
这条规则的实质是“不允许引用不存在的 实体”。
在上述形式定义中,关系模式R1的关系称
为 “ 参 照 关 系 ” , 关 系 模 式 R2 的 关 系 称 为
例如学生的年龄定义为两位整数,范围还
太大,我们可以写如下规则把年龄限制在
15~30岁之间:
CHECK(AGE BETWEEN 15 AND 30)
返 回
19
2.1.4 关系模型的三层体系结构 -- 关系模式
在关系模型中,记录类型称为关系模式,而关 系模式的集合就是数据库的概念模式。在系统实 现时,关系模式和属性的命名一般都用英文单词。
29
2.2.1 关系代数的五个基本操作 (2)
笛卡尔积(Cartesian Product) 形式定义如下: R×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S}
成绩子模式 G(S#,SNAME,C#,SCORE)
21
2.1.4
关系模型的三层体系结构
--子模式(2)
G S# SNAME C# SCORE S256 Wang C5 80 ┆
S S# SNAME AGE SEX
S256 Wang 21 F ┆
SC S# C# SCORE ┆ S256 C5 80 ┆
(3)主键(Primary Key)
在图2.1中,(工号,姓名)是模式的一个超
键,但不是候选键, 而(工号)是候选键。在
实际使用中,如果选择(工号)作为删除或查
找元组的标志,那么称(工号)是主键。
(4)外键(Foreign Key)
返 回
10
2.1.2 关系的定义和性质
定义2.2 关系是一个属性数目相同的元组的 集合。
(4)关系代数表达式的优化 关系代数表达式的等价及等价转换规则, 启化式优化算法。
(5)关系逻辑 谓词、原子、规则和查询,规则的安全性, 用规则模拟关系代数表达式。
3
本章概要
本章先介绍关系模型的基本概念; 然后介绍关系运算的三种理论: 关系代数、关系演算和关系逻辑。
4Leabharlann 关系模型和关系运算理论2.1 关系模型的基本概念 2.2 关系代数 2.3 关系演算 2.4 关系代数表达式的优化 2.5 关系逻辑 2.6 小结
16
2.1.3 关系模型的完整性规则 (6)
③ 设课程之间有先修、后继连系。模式如下: R(C#,CNAME,PC#)
其属性表示课程号、课程名、先修课的课 程号。如果规定,每门课程的直接先修课只 有一门,那么模式R的主键是C#,外键是 PC#.。这里参照完整性在一个模式中实现。 即每门课程的直接先修课必须在关系中出现。
集建立辅助索引。
关系SC
关系STUDENT S# SNAME AGE SEX PTR S1 WANG 20 M · S2 HU 17 M · S3 XIA 19 F · S4 LIU 18 F ·
PTR S# · S1 · S2 · S1 · S2 · S1 · S4
C# SCORE C1 80 C1 85 C2 60 C2 75 C3 70 C4 90
TEACHER(T#,TNAME,TITLE) COURSE (C#,CNAME,T#) STUDENT(S#,SNAME,AGE,SEX) SC (S#,C#,SCORE)
20
2.1.4 关系模型的三层体系结构 --子模式(1)
子模式是用户所用到的那部分数据的描述。 除此之外,还应指出数据与关系模式中相 应数据的连系。例如,用户需要用到子模 式G(图2.3)。
第2章 关系模型和 关系运算理论
1
本章重要概念(1)
(1)基本概念 关系模型,关键码(主键和外键),关系 的定义和性质,三类完整性规则,过程性 语言与非过程性语言。
(2)关系代数 五个基本操作,四个组合操作,七个扩充 操作。
2
本章重要概念(2)
(3)关系演算 元组关系演算和域关系演算的原子公式、 公式的定义。关系演算的安全性和等价性。
关系查询语言根据其理论基础的不同分成三类: (1)关系代数语言。 (2)关系演算语言。 (3)关系逻辑语言。
27
2.2 关系代数
2.2.1 2.2.2 2.2.3 2.2.4
关系代数的五个基本操作 关系代数的四个组合操作 关系代数运算的应用实例 关系代数的七个扩充操作
返 回
28
学基础上。 (4)关系数据库语言与一阶谓词逻辑的固有内在连
系,为以关系数据库为基础的推理系统和知识库 系统的研究提供了方便。
26
2.1.6 关系查询语言和关系运算
关系数据库的数据操纵语言(DML)的语句分成 查询语句和更新语句两大类。查询语句用于描述 用户的各种检索要求;更新语句用于描述用户进 行插入、删除、修改等操作。关于查询的理论称 为“关系运算理论”。
在关系模型中,对关系作了下列规范性限制:
(1)关系中每一个属性值都是不可分解的;
(2)关系中不允许出现重复元组
(即不允许出现相同的元组);
(3)由于关系是一个集合,因此不考虑元组间 的顺序,即没有行序;
(4)元组中的属性在理论上也是无序的, 返
但使用时按习惯考虑列的顺序。
回
11
2.1.3 关系模型的完整性规则(1)
“依赖关系”。“主表”和“副表”,“父表”
和“子表”。
13
2.1.3 关系模型的完整性规则 (3)
这条规则在具体使用时,有三点变通: ① 外键和相应的主键可以不同名,
只要定义在相同值域上即可; ② R1和R2也可以是同一个关系模式,此时表
示了同一个关系中不同元组之间的联系; ③ 外键值是否允许空,应视具体问题而定。
两个关系存储在一起
24
2.1.5 关系模型的形式定义
关系模型有三个重要组成部分:数据结构,数据 操纵,数据完整性规则。
(1)数据结构:数据库中全部数据及其相互连系都 被组织成“关系”(二维表格)的形式。关系模 型基本的数据结构是关系。
(2)数据操纵:关系模型提供一组完备的高级关系 运算,以支持对数据库的各种操作。关系运算分 成关系代数、关系演算和关系逻辑等三类。
图2.6 关系STUDENT和SC的环结构 23
2.1.4 关系模型的三层体系结构 --存储模式(2)
图2.7
S1 WANG 20 M S1 C1 80 S1 C2 60 S1 C3 70
S2 HU 17 M S2 C1 85 S2 C2 75
S3 XIA 19 F S4 LIU 20 F
S4 C4 90
另外,在关系SC中S# 不仅是外键,也是主键的一部分, 因此这里S# 值不允许空。
15
2.1.3 关系模型的完整性规则 (5)
② 设工厂数据库中有两个关系模式: DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D# )
车间模式DEPT的属性为车间编号、车间名, 职工模式EMP的属性为工号、姓名、工资、 所在车间的编号。每个模式的主键与外键已标 出。在EMP中,由于D# 不在主键中,因此D# 值允许空。
关系中属性个数称为“元数”(arity),元组 个数为“基数”(cardinality)。
8
2.1.1 基本术语(3)
关系元数为5,基数为4。
一般术语
字段、数据项
RABCDE a1 b1 c1 d1 e1 a2 b2 c2 d2 e2 a3 b3 c3 d3 e3 a4 b4 c4 d4 e4
SC(S#,C#,SCORE)
图2.3 关系模型的数据结构图(DSD)
18
2.1.3 关系模型的完整性规则 (8)
用户定义的完整性规则
在建立关系模式时,对属性定义了数据类 型,即使这样可能还满足不了用户的需求。此 时,用户可以针对具体的数据约束,设置完整 性规则,由系统来检验实施,以使用统一的方 法处理它们,不再由应用程序承担这项工作。
14
2.1.3 关系模型的完整性规则 (4)
例 下面各种情况说明了参照完整性规则在关系中如何 实现的。
① 在关系数据库中有下列两个关系模式: S(S#,SNAME,AGE,SEX)
SC(S#,C#,SCORE) 这里带 线者为主键,带 线者为外键。据规则要求 关系SC中的S#值应该在关系S中出现。如果关系SC中有 一个元组(S7,C4,80),而学号S7却在关系S中找不到, 那么我们就认为在关系SC中引用了一个不存在的学生实 体,这就违反了参照完整性规则。
5
2.1 关系模型的基本概念
2.1.1 基本术语 2.1.2 关系的定义和性质 2.1.3 关系模型的三类完整性规则 2.1.4 关系模型的三级体系结构 2.1.5 关系模型的形式定义和优点 2.1.6 关系查询语言和关系运算
返 回
6
2.1.1 基本术语(1)
定义2.1 用二维表格表示实体集,用关 键码表示实体之间联系的数据模型称为 关系模型(Relational Model)。
17
2.1.3 关系模型的完整性规则 (7)
例2.1
TEACHER(T#,TNAME,TITLE)
COURSE (C#,CNAME,T#)
STUDENT(S#,SNAME,AGE,SEX)
SC
(S#,C#,SCORE)
TEACHER(T#,TNAME,TITLE)
STUDENT(S#,SNAME,AGE,SEX) COURSE(C#,CNAME,T#)
2.2.1 关系代数的五个基本操作 (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的元数相同。
学号 姓名 年龄 性别 籍贯
S1 WANG 20
M 北京
S4 LIU 18
F 山东
S2 HU 17
M 上海
S3 XIA 19
F 四川
图2.1 学生登记表
7
2.1.1 基本术语(2)
在关系模型中,字段称为属性,字段值称为属 性值,记录类型称为关系模式。在图2.1中,关 系模式名是R。记录称为元组(tuple),元组 的 集 合 称 为 关 系 ( relation ) 或 实 例 ( instance ) 。 一 般 用 大 写 字 母 A 、 B 、 C 、 … 表示单个属性,用大写字母 …、X、Y、Z表示 属性集,用小写字母表示属性值,有时也习惯 称呼关系为表或表格,元组为行(row),属性为 列(column)。
(3)数据完整性规则:数据库中数据必须满足实体 完整性,参照完整性和用户定义的完整性等三类 完整性规则。
25
2.1.5 关系模型的优点
与其它数据模型相比,关系模型突出的优点如下: (1)关系模型提供单一的数据结构形式,具有高度
的简明性和精确性。 (2)关系模型的逻辑结构和相应的操作完全独立于
数据存储方式,具有高度的数据独立性。 (3)关系模型使数据库的研究建立在比较坚实的数
记录类型
记录1
记录2 文 记录3 件
记录4
字段值
关系模型术语 属性 关系模式 元组1
元组2 关 元组3 系
元组4 属性值
图2.2 关系模型的术语
9
2.1.1 基本术语(4)
关键码(key,简称键)由一个或多个属性组成。 在实际使用中,有下列几种键。
(1)超键(Super Key)
(2)候选键(Candidate Key)
实 体 完 整 性 规 则 ( entity integrity rule) 要求关系中元组在组成主键的属性上 不能有空值。如果出现空值,那么主键值 就起不了惟一标识元组的作用。
12
2.1.3 关系模型的完整性规则 (2)
参照完整性规则(reference integrity rule)
定义2.3 参照完整性规则的形式定义如下:
80
22
2.1.4 关系模型的三层体系结构
--存储模式(1)
• 在有些DBMS中,关系存储是作为文件看待的,每个
元组就是一个记录。由于关系模式有键,因此存储一个
关系可用散列方法或索引方法实现。如果关系的元组数
目较少(100个以内),那么也可以用“堆文件”方式
实现(即没有特定的次序)。此外,还可对任意的属性