数据库系统教程第2章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章 关系模型和 关系运算 ( 主键和外键 ) ,关系的定义和性质,三类完
整性规则,过程性语言与非过程性语言。
• (2)关系代数
• 五个基本操作,四个组合操作,七个扩充操作。
• (3)关系代数表达式的优化
• 关系代数表达式的等价及等价转换规则,启化式优化算法。
在关系中能唯一标识元组的属性集。 • 关键码(Key,简称键 )由一个或多个属性组成。在实际使用中,有下列 几种键。 不含多余属性的超键。
(1)超键(Super Key) (2)候选键(Candidate Key) (3)主键(Primary Key) 在图2.1中,(学号,姓名)是模式的一个超键,但 不是候选键,而 (学号)是候选键。在实际使用中,如果选择(学号 )作 为删除或查找元组的标志,那么称(学号)是主键。 (4)外键(Foreign Key) 例: S(S#,SNAME,AGE,SEX)
2.2 关系代数
• 2.2.1 关系代数的五个基本操作 • 2.2.2 关系代数的四个组合操作
• 2.2.3 关系代数运算的应用实例
• 2.2.4 关系代数的七个扩充操作
2.2.1 关系代数的五个基本操作
• 并(Union) 设关系R和S具有相同的关系模式,R和S的并是由属于R或属
于S的元组构成的集合,记为R∪S。形式定义如下:
成绩子模式 G(S#,SNAME,C#,SCORE) 图2.4 子模式
• 3. 存储模式 •在有些DBMS中,关系存储时是作为文件看待的,每个元组就是一 个记录。由于关系模式有键,因此存储一个关系可用散列方法或索 引方法实现。如果关系的元组数目较少(100个以内),那么也可以用 “堆文件”方式实现(即没有特定的次序)。此外,还可对任意的属 性集建立辅助索引。
② 设工厂数据库中有两个关系模式: DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D# ) • 车间模式 DEPT 的属性为车间编号、车间名,职工模式 EMP 的属性为工号、姓名、工资、所在车间的编号。每 个模式的主键与外键已标出。在EMP 中,由于D#不在主 键中,因此,D# 值允许空。
图2.1 学生登记表
• 在关系模型中,字段称为属性,字段值称为属性值,记录类型 称为关系模式。 • 在图2.2中,关系模式名是R。 • 记 录 称 为 元 组 (tuple) , 元 组 的 集 合 称 为 关 系 (relation) 或 实 例 (instance)。 • 一般用大写字母A、B、C、… 表示单个属性,用大写字母 …、
• 2.1.6 关系查询语言和关系运算
2.1.1 基本术语
• 定义2.1 用二维表格表示实体集,用关键码进行数据导航的数据模 型称为关系模型(Relational Model)。这里数据导航(data navigation) 是指从已知数据查找未知数据的过程和方法。
学号 S1 S4 S2 S3 姓名 WANG LIU HU XIA 年龄 20 18 17 19 性别 M F M F 籍贯 北京 山东 上海 四川
关系模式集
关系(实例)
T
T# T1 T2 T3 T4 TNAME zhang wang liu hu TITLE 教授 副教授 教授 副教授
S
S# S1 S4 S2 S3 S8
SNAME Wang Wu Liu Chen Dong S# C# C1 C1 C2
AGE 20 19 21 22 18
SEX M M F M F SCORE 80 90 70
C
C#
CNAME
T#
S1 S3 S1
C2
C4 C3
Maths
Physics Chemistry
T2
T3 T4
S3
S3 S4 S8
C2
C3 C4 C3
85
95 70 90
C1
Database
T1
• 2.子模式
• 子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与 关系模式中相应数据的联系。例如,用户需要用到子模式G(图2.4)。构 造过程见书P43,图2.5
关系逻辑等三类。 (3)数据完整性规则:数据库中数据必须满足实体完整性,参照 完整性和用户定义的完整性等三类完整性规则。
2.1.6 关系模型的优点
• 与其它数据模型相比,关系模型突出的优点如下: • (1)关系模型提供单一的数据结构形式,具有高度的简明 性和精确性。 • (2)关系模型的逻辑结构和相应的操作完全独立于数据存 储方式,具有高度的数据独立性。 • (3)关系模型使数据库的研究建立在比较坚实的数学基础 上。 • (4)关系数据库语言与一阶谓词逻辑的固有内在联系,为 以关系数据库为基础的推理系统和知识库系统的研究提 供了方便。
• 例2.1 TEACHER(T#,TNAME,TITLE) COURSE (C#,CNAME,T#)
STUDENT(S#,SNAME,AGE,SEX)
SC (S#,C#,SCORE)
连线端点的“鸡爪型”表示“多”的一端
STUDENT(S#,SNAME,AGE,SEX)
TEACHER(T#,TNAME,TITLE)
B b1 b2 b2 B
C c1 c2 c1 C
R.A
R.B
R.C S.A
S.B S.C
a1
b1
c1 a1
b2 c2 b3 c2 b2 c1 b2 c2
a1
R×S
b1
b1 b2
c1 a1
c1 a2 c2 a1
a1 a1
是一个 (r+s) 元的元组的集合,每个元组的前 r 个分量 ( 属
性值)来自R的一个元组,后s个分量来自S的一个元组, 记为R×S。形式定义如下: R×S≡{t | t=<tr,ts>∧tr∈R∧ts∈S} 若R中有m个元组,S中有n个元组,则R×S有m×n个
元组。
关系代数的五个基本操作
R
A a1 a1 a2 A
2.1.6 关系模型的形式定义
• 关系模型有三个重要组成部分:数据结构,数据操纵,数据 完整性规则。
(1)数据结构:数据库中全部数据及其相互联系都被组织成“关
系”(二维表格)的形式。关系模型基本的数据结构是关系。 (2)数据操纵:关系模型提供一组完备的高级关系运算,以支持
对数据库的各种操作。关系运算分成关系代数、关系演算和
表”,“父表”和“子表”。
学生表是主表,成绩表是从表,成 绩表中的学号是外键,该值必须是 学生表中已经存在的值。
• 例2.1 下面各种情况说明了参照完整性规则在关系中如何实现的。
① 在关系数据库中有下列两个关系模式:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,SCORE) 这里带下划线者为主键,带波浪线者为外键。据规则要求关系SC中的S# 值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在 关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体, 这就违反了参照完整性规则。 另外,在关系SC中S# 不仅是外键,也是主键的一部分,因此,这里S# 值 不允许空。
关系模型和关系运算理论

2.1 关系模型的基本概念 2.2 关系代数 2.4 关系代数表达式的优化
2.1 关系模型的基本概念
• 2.1.1 基本术语 • 2.1.2 关系的定义和性质
• 2.1.3 关系模型的三类完整性规则
• 2.1.4 关系模型的三级体系结构
• 2.1.5 关系模型的形式定义和优点
SC S S# S1 S2 S3 SNAME Wang Liu Chen AGE 20 21 22 SEX M F M PTR · · · PTR · · · · · S# S1 S3 S1 S3 S3 C# C1 C1 C2 C2 C3 SCORE 80 90 70 85 95
图2.6 关系S和SC的环结构
字段、数据项
R A a a a a B b 1 b 2 b 3 b 4 C c c c c D d 1 d 2 d 3 d 4 E e e e e
属性
关系模式 元组1 元组2 元组3 元组4 属性值
记录类型 记录1 记录2 记录3 记录4 字段值
1
2 3 4
1
2 3 4
1
2 3 4
图2.2 关系模型的术语

CHECK(AGE BETWEEN 15 AND 30)
2.1.4 关系模型的三级体系结构
• 1.关系模式
• 在关系模型中,记录类型称为关系模式,而关系模式 的集合就是数据库的概念模式。在系统实现时,关系 模式和属性的命名一般都用英文单词。
TEACHER(T#,TNAME,TITLE) COURSE (C#,CNAME,T#) STUDENT (S#,SNAME,AGE,SEX) SC (S#,C#,SCORE)
X、Y、Z表示属性集,用小写字母表示属性值,有时也习惯称呼
关系为表或表格,元组为行(row),属性为列(column)。 • 关 系 中 属 性 个 数 称 为 “ 元 数 ” (arity) , 元 组 个 数 为 “ 基 数”(cardinality)。
• 关系元数为5,基数为4
一般术语 关系模型术语
③ 设课程之间有先修、后继联系。模式如下:
R(C# ,CNAME,PC# )
其属性表示课程号、课程名、先修课的课程号。如 果规定,每门课程的直接先修课只有一门,那么模 式 R的主键是 C#,外键是 PC# 。这里参照完整性在 一个模式中实现,即每门课程的直接先修课必须在 关系中出现。
参照完整性实例
出现空值,那么主键值就起不了惟一标识元组的作用。
如:学生(学号,姓名,年龄,......),学号不能为空
• 2. 参照完整性规则(reference integrity rule)
• 定义2.3 参照完整性规则的形式定义如下:
如果属性集 K 是关系模式 R1 的主键, K 也是关系模式 R2 的 外键,那么在 R2 的关系中, K 的取值只允许两种可能,或 者为空值,或者等于R1关系中某个主键值。 • 这条规则的实质是“不允许引用不存在的实体”。 • 在上述形式定义中,关系模式R1的关系称为“参照关系”, 关系模式 R2 的关系称为“依赖关系”。“主表”和“副
R∪S≡{t | t∈R ∨ t∈S},t是元组变量,R和S的元数相同。 • 差(Difference)
设关系R和S具有相同的关系模式,R和S的差是由属于R但不
属于S的元组构成的集合,记为R-S。形式定义如下: R-S≡{ t | t∈R ∧ tS},R和S的元数相同。
关系代数的五个基本操作
R
A a1 a1 a2
用户选作元组标识的候选键。
如果在模式R中属性K是其他模式的主键, 在关系S中S#为主键,在关系 SC中S#为外键。 那么K在该模式 R中称外键。
SC(S#,C#,GRADE)
2.1.2 关系的定义和性质
• 定义2.2 关系是一个属性数目相同的元组的集合。
• 在关系模型中,对关系作了下列规范性限制:
B b1 b2 b2 B b2 b3 b2
C c1 c2 c1 C c2 c2 c1
A R∪S a1 a1 a1 a2
B
C
A S a1 a1 a2
b1 b2 b3 b2
B b1
c1 c2 c2 c1
C c1
R-S
A a1
关系代数的五个基本操作
• 笛卡儿积(Cartesian Product) 设关系R和S的元数分别为r和s,定义R和S的笛卡儿积
COURSE(C#,CNAME,T#)
SC(S#,C#,SCORE)
图2.3 关系模型的数据结构图(DSD)
• 3.用户定义的完整性规则 • 在建立关系模式时,对属性定义了数据类型,即使这样, 可能还满足不了用户的需求。此时,用户可以针对具体 的数据约束,设置完整性规则,由系统来检验实施,以 使用统一的方法处理它们,不再由应用程序承担这项工 作。 • 例如,学生的年龄定义为两位整数范围还太大,我们可 以写如下规则,把年龄限制在15~30岁之间:
(1)关系中每一个属性值都是不可分解的; (2) 关系中不允许出现重复元组 ( 即不允许出现相同的元组 ) ; (3)由于关系是一个集合,因此不考虑元组间的顺序,即没 有行序; (4)元组中的属性在理论上也是无序的,但使用时按习惯考 虑列的顺序。
2.1.3 关系模型的三类完整性规则
• 1.实体完整性规则(entity integrity rule) 要求关系中元组在组成主键的属性上不能有空值。如果
相关文档
最新文档