第2章关系模型和关系运算理论(2008)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HU XIA
年龄 20 18 17 19
性别 M F M F
籍贯 北京 山东 上海 四川
图2.1 学生登记表
8
2.1.1 基本术语(2/4)
❖ 在关系模型中,字段称为属性,字段值称为属性值,记录 类型称为关系模式。
❖ 在图2.1中,关系模式名是R。记录称为元组(tuple),元 组的集合称为关系(relation)或实例(instance)。
❖ 例 下面各种情况说明了参照完整性规则在关系中如何实现 的。
① 在关系数据库中有下列两个关系模式: S(S#,SNAME,AGE,SEX) SC(S#,C#,SCORE)
这里带 线者为主键,带 线者为外键。据规则要求关系 SC中的S#值应该在关系S中出现。如果关系SC中有一个元组 (S7,C4,80),而学号S7却在关系S中找不到,那么我们就 认为在关系SC中引用了一个不存在的学生实体,这就违反了 参照完整性规则。 另外,在关系SC中S# 不仅是外键,也是主键的一部分,因 此这里S# 值不允许空。
25
2.1.5 关系模型的形式定义
❖ 关系模型有三个重要组成部分:数据结构,数据 操纵,数据完整性规则。
数据结构:数据库中全部数据及其相互连系都被组织 成“关系”(二维表格)的形式。关系模型基本的数 据结构是关系。
数据操纵:关系模型提供一组完备的高级关系运算, 以支持对数据库的各种操作。关系运算分成关系代数、 关系演算和关系逻辑等三类。
TEACHER(T#,TNAME,TITLE) COURSE (C#,CNAME,T#) STUDENT(S#,SNAME,AGE,SEX) SC (S#,C#,SCORE)
21
2.1.4关系模型的三层体系结构--子模式(1/2)
❖ 子模式是用户所用到的那部分数据的描述。除此之 外,还应指出数据与关系模式中相应数据的联系。 例如,用户需要用到子模式G(图2.3)。
2
本章重要概念(1/2)
(1)基本概念 关系模型,关键码(主键和外键),关系的定义和 性质,三类完整性规则,过程性语言与非过程性语 言。
(2)关系代数 五个基本操作,四个组合操作,七个扩充操作。
3
本章重要概念(2/2)
(3)关系演算(介绍) 元组关系演算和域关系演算的原子公式、公式的定义。 关系演算的安全性和等价性。
如果属性集K是关系模式R1的主键,K也是关系模式R2 的外键,那么在R2的关系中,K的取值只允许两种可能,或 者为空值,或者等于R1关系中某个主键值。
这条规则的实质是“不允许引用不存在的实体”。 在上述形式定义中,关系模式R1的关系称为“参照关系”, 关系模式R2的关系称为“依赖关系”。“主表”和“副表”, “父表”和“子表”。
数据完整性规则:数据库中数据必须满足实体完整性, 参照完整性和用户定义的完整性等三类完整性规则。
26
2.1.5 关系模型的优点
与其它数据模型相比,关系模型突出的优点如下: ❖ 关系模型提供单一的数据结构形式,具有高度的简明性和
精确性。 ❖ 关系模型的逻辑结构和相应的操作完全独立于数据存储方
式,具有高度的数据独立性。 ❖ 关系模型使数据库的研究建立在比较坚实的数学基础上。 ❖ 关系数据库语言与一阶谓词逻辑的固有内在连系,为以关
❖ 一般用大写字母A、B、C、… 表示单个属性,用大写字 母 …、X、Y、Z表示属性集,用小写字母表示属性值,有时 也 习 惯 称 呼 关 系 为 表 或 表 格 , 元 组 为 行 (row) , 属 性 为 列 (column)。
❖ 关系中属性个数称为“元数”(arity),元组个数为“基 数”(cardinality)。
成绩子模式 G(S#,SNAME,C#,SCORE)
22
2.1.4关系模型的三层体系结构 --子模式(2/2)
G S# SNAME C# SCORE S256 Wang C5 80 ┆
S S# SNAME AGE SEX
S256 Wang 21 F ┆
SC S# C# SCORE
S25┆6 C5
80
元组2 关 元组3 系
元组4 属性值
图2.2 关系模型的术语
10
2.1.1 基本术语(4/4)
❖ 关键码(key,简称键)由一个或多个属性组成。在实 际使用中,有下列几种键。
超键(Super Key):关系中能惟一标识元组的属性集。 候选键(Candidate Key)):不含有多余属性的超键 主键(Primary Key) :用户选作元组标识的候选键
搞清楚下一步该做什么。 ❖ Ariel:你的意思是什么?你觉得这个项目要花费多长时间? ❖ Miranda:正是这个问题。我这一段的所有时间都花进去了,但事实上
我还一点都没有开始做这个项目。 ❖ Ariel:唔,数据难道不是构建一个数据库应用程序最重要的方面吗?我
听说数据库系统挺难对付的。你必须第一次就正确地定义数据;否则, 你将不得不重新开始。 ❖ Miranda:或许你是对的。我计划用这个晚上来放松一下,然后我要研 究一下这些规则,看看怎样将ER图转化为一组数据库表。
系数据库为基础的推理系统和知识库系统的研究提供了方 便。
27
2.1.6 关系查询语言和关系运算
❖ 关系数据库的数据操纵语言(DML)的语句分成查询语句 和更新语句两大类。
查询语句用于描述用户的各种检索要求; 更新语句用于描述用户进行插入、删除、修改等操作。关于查询的
❖ 2.1 关系模型的基本概念 ❖ 2.2 关系代数 ❖ 2.3 关系演算 ❖ 2.4 关系代数表达式的优化 ❖ 2.5 关系逻辑 ❖ 2.6 小结
6
2.1 关系模型的基本概念
❖ 2.1.1 基本术语 ❖ 2.1.2 关系的定义和性质 ❖ 2.1.3 关系模型的三类完整性规则 ❖ 2.1.4 关系模型的三级体系结构 ❖ 2.1.5 关系模型的形式定义和优点 ❖ 2.1.6 关系查询语言和关系运算

23
2.1.4关系模型的三层体系结构--存储模式(1/2)
❖ 在有些DBMS中,关系存储是作为文件看待的,每个
元组就是一个记录。由于关系模式有键,因此存储一个
关系可用散列方法或索引方法实现。如果关系的元组数
目较少(100个以内),那么也可以用“堆文件”方式
实现(即没有特定的次序)。此外,还可对任意的属性
SC(S#,C#,SCORE)
图2.3 关系模型的数据结构图(DSD)
19
2.1.3 关系模型的完整性规则 (8/8)
❖ 用户定义的完整性规则 在建立关系模式时,对属性定义了数据类型,即
使这样可能还满足不了用户的需求。此时,用户可 以针对具体的数据约束,设置完整性规则,由系统 来检验实施,以使用统一的方法处理它们,不再由 应用程序承担这项工作。
18
2.1.3 关系模型的完整性规则 (7/8)
❖ 例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#)
14
2.1.3 关系模型的完整性规则 (3/8)
❖ 这条规则在具体使用时,有三点变通: ① 外键和相应的主键可以不同名,
只要定义在相同值域上即可; ② R1和R2也可以是同一个关系模式,此时表示了同一个关
系中不同元组之间的联系; ③ 外键值是否允许空,应视具体问题而定。
15
2.1.3 关系模型的完整性规则 (4/8)
❖ 定义2.2 关系是一个属性数目相同的元组的集合。 ❖ 在关系模型中,对关系作了下列规范性限制
关系中每一个属性值都是不可分解的; 关系中不允许出现重复元组(即不允许出现相同的元组); 由于关系是一个集合,因此不考虑元组间 的顺序,即没有行序; 元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。
集建立辅助索引。
关系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
17
2.1.3 关系模型的完整性规则 (6/8)
③ 设课程之间有先修、后继连系。模式如下: R(C#,CNAME,PC#)
其属性表示课程号、课程名、先修课的课程号。 如果规定,每门课程的直接先修课只有一门,那 么模式R的主键是C#,外键是PC#.。这里参照完整 性在一个模式中实现。即每门课程的直接先修课 必须在关系中出现。
❖ 在图2.1中,(工号,姓名)是模式的一个超键,但不是候选键, 而(工号)是候选键。在实际使用中,如果选择(工号)作
为删除或查找元组的标志,那么称(工号)是主键。
外键(Foreign Key)):如果模式R中属性K是其他模式 的主键,那么K在模式R中称为外键。
返 回
11
2.1.2 关系的定义和性质
9
2.1.1 基本术语(3/4)
❖ 关系元数为5,基数为4。
RABCDE a1 b1 c1 d1 e1 a2 b2 c2 d2 e2 a3 b3 c3 d3 e3 a4 b4 c4 d4 e4
一般术语 字段、数据项 记录类型 记录1
记录2 文 记录3 件
记录4 字段值
关系模型术语 属性 关系模式 元组1
16
2.1.3 关系模型的完整性规则 (5/8)
② 设工厂数据库中有两个关系模式: DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D# )
车间模式DEPT的属性为车间编号、车间名,职工模 式EMP的属性为工号、姓名、工资、所在车间的编 号。每个模式的主键与外键已标出。在EMP中,由 于D# 不在主键中,因此D# 值允许空。
返 回
7
2.1.1 基本术语(1/4)
❖ 定义2.1 用二维表格表示实体集,用关键码表示实体之间联系的 数据模型称为关系模型(Relational Model)。这里数据导航(data navigation)是指从已知数据查找未知数据的过程和方法。
学号 S1 S4 S2 S3
姓名 WANG LIU
返 回
12
2.1.3 关系模型的完整性规则(1/8)
❖ 实体完整性规则(entity integrity rule) 要求关系中元组在组成主键的属性上不能
有空值。如果出现空值,那么主键值就起不了 惟一标识元组的作用。
13
2.1.3 关系模型的完整性规则 (2/8)
❖ 参照完整性规则(reference integrity rule) ❖ 定义2.3 参照完整性规则的形式定义如下:
第2章 关系模型和 关系运算理论
1
开发漫谈
❖ Miranda:真有意思,我对公司的流程和规则有了很多了解。我想我已 经把每一件事情都完全记录在ER图里了,并且在数据字典中作了一些记 录。
❖ Ariel:真棒!我们今天晚上应该去听音乐会庆祝一下。 ❖ Miranda:我可以放松一个晚上了。或许让我的脑细胞休息一下能让我
图2.6 关系STUDENT和SC的环结构
24
2.1.4关系模型的三层体系结构--存储模式(2/2)
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
图2.7 两个关系存储在一起
(4)关系代数表达式的优化 关系代数表达式的等价及等价转换规则,启化式优化
算法。 (5)关系逻辑(介绍)
谓词、原子、规则和查询,规则的安全性,用规则模 拟关系代数表达式。
4
本章概要
❖ 本章先介绍关系模型的基本概念ห้องสมุดไป่ตู้然后介绍关系运算的三种 理论:关系代数、关系演算和关系逻辑。
5
关系模型和关系运算理论
例如学生的年龄定义为两位整数,范围还太大, 我们可以写如下规则把年龄限制在15~30岁之间:
CHECK(AGE BETWEEN 15 AND 30)
返 回
20
2.1.4 关系模型的三层体系结构 -- 关系模式
❖ 在关系模型中,记录类型称为关系模式,而关系模式 的集合就是数据库的概念模式。在系统实现时,关系模式 和属性的命名一般都用英文单词。
相关文档
最新文档