数据库系统教程(施伯乐第三版) 第02章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
属性值
图2.2 关系键码(key,简称键)由一个或多个属性组成。在实 际使用中,有下列几种键。 (1)超键(super Key):在关系中能唯一标识元组的 属性集称为关系模式的超键。 (2)候选键(candidate Key):不含有多余属性的超 键称为候选键。 在最简单的情况下,候选码只包含一个属性。 (3)主键(primary Key):用户选作元组标识的候选键 称为主键。 一般如不加说明,键是指主键。
关系查询语言和关系运算
关系数据库的数据操纵语言(DML)的语句分成查询 语句和更新语句两大类。查询语句用于描述用户的各 种检索要求;更新语句用于描述用户进行插入、删除、 修改等操作。关于查询的理论称为“关系运算理论”。 关系查询语言根据其理论基础的不同分成三类: (1)关系代数语言:查询操作以集合操作为基础的运算 (2)关系演算语言:查询操作以谓词演算为基础的运算 (3)关系逻辑语言:查询操作以if-then逻辑操作为基 础的运算
数据结构图
数据结构图可用来表示关系数据库 中表与表之间的联系。 ①矩形框表示关系模式 ②框间的连线表示其联系
③连线端点的“鸡爪型”表示“多” 的一端 P42图2.3
关系模型的3层体系结构
在关系模型中,记录类型称为关系模式, 而关系模式的集合就是数据库的概念模式。在 系统实现时,关系模式和属性的命名一般都用 英文单词。如:
关系的定义和性质
定义2.2 关系是一个具有相同属性的元组的集合。 在关系模型中,对关系作了下列规范性限制: (1)关系中每一个属性值都是不可分解的; (2)关系中不允许出现重复元组(即不允许出现相同的 元组); (3)由于关系是一个集合,因此不考虑元组间的顺序, 即没有行序; (4)元组中的属性在理论上也是无序的,但使用时按习 惯考虑列的顺序。
关系模型的3类完整性规则 (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
图2.1 职工登记表
性 别 M F M M
工 资 2000 1500 2000 1000
基本术语(2)
在关系模型中,字段称为属性,字段值称为属性值, 记录类型称为关系模式。在图2.2中,关系模式名是R。 记 录 称 为 元 组 ( tuple ) , 元 组 的 集 合 称 为 关 系 (relation)或实例(instance)。一般用大写字母A、 B、C、… 表示单个属性,用大写字母 …、X、Y、Z表 示属性集,用小写字母表示属性值,有时也习惯称呼 关系为表或表格,元组为行(row),属性为列(column)。 关系中属性个数称为“元数”(arity),元组个数为 “基数”(cardinality)。
(5)外键(foreign Key):如果模式R中属性K 是其他模式的主键,那么K在模式R中称为外键。 例: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) 在关系S中S#为主键,在关系SC中S#为外键。
基本术语(5)
关系中每一个属性都有一个取值范围, 称为属性的值域。属性A的取值范围用DOM (A)表示。
基本术语(4)(续)
(4)全键(All key):在最极端的情况下,关 系模式的所有属性组是这个关系模式的候选 键,称为全键(All-key) 例:朋友关系
姓名1 张三 姓名2 李四
张三
赵六 丁一
王五
李四 李四
基本术语(4)(续)
例:在图2.1中,(工号,姓名)是模式的一个超键,但 不是候选键,而(工号)是候选键。在实际使用中,如 果选择(工号)作为删除或查找元组的标志,那么称 (工号)是主键。
2.2 关系代数
关系代数:一组高级运算的集合,运算的对象为关系。 关系代数运算分为:传统的集合运算 并、差、交、广义笛卡尔积 专门的关系运算 选择、投影、连接、除 五个基本运算:并、差、笛卡尔积、选择、投影,其 他运算可由他们推出。
关系代数的五个基本操作 (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的元数相同。
基本术语(3)
关系元数为5,基数为4
R A a1 a2 a3 a4 B b1 b2 b3 b4 C c1 c2 c3 c4 D d1 d2 d3 d4 E e1 e2 e3 e4
一般术语 字段、数据项 记录类型
关系模型术语 属性 关系模式
记录1
记录2 记录3 记录4
元组1
元组2 元组3 元组4
字段值
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 GRADE 80 90 70 85 95
图2.6 关系S和SC的环结构
关系模型的优点
与其它数据模型相比,关系模型突出的优点如下: (1)关系模型提供单一的数据结构形式,具有高度的简 明性和精确性。 (2)关系模型的逻辑结构和相应的操作完全独立于数据 存储方式,具有高度的数据独立性。 (3)关系模型使数据库的研究建立在比较坚实的数学基 础上。 (4)关系数据库语言与一阶谓词逻辑的固有内在联系, 为以关系数据库为基础的推理系统和知识库系统的研 究提供了方便。
关系代数的五个基本操作(1)
R
A a1 a1 a2
B b1 b2 b2 B b2 b3 b2
C c1 c2 c1 C c2 c2 c1
关系模型的3类完整性规则 (6)
用户定义的完整性规则 在建立关系模式时,对属性定义了数据类型,即使 这样可能还满足不了用户的需求。此时,用户可以针 对具体的数据约束,设置完整性规则,由系统来检验 实施,以使用统一的方法处理它们,不再由应用程序 承担这项工作。例如学生的年龄定义为两位整数,范 围还太大,我们可以写如下规则把年龄限制在15~30 岁之间: CHECK(AGE BETWEEN 15 AND 30)
成绩子模式 G(S#,SNAME,C#,GRADE)
图2.4 子模式
关系模型的3层体系结构--存储模式
• 在有些DBMS中,关系存储是作为文件看待的,每个元 组就是一个记录。由于关系模式有键,因此存储一个关 系可用散列方法或索引方法实现。如果关系的元组数目 较少(100个以内),那么也可以用“堆文件”方式实现 (即没有特定的次序)。此外,还可对任意的属性集建 立辅助索引。
之后,提出了关系代数和关系演算的概念 1972年提出了关系的第一、第二、第三范式
1974年提出了关系的BC范式
2.1 关系模型的基本概念
关系模型建立在集合代数的基础上 关系数据库应用数学方法来处理数据库 中的数据 关系数据库系统
是支持关系模型的数据库系统
80年代后,关系数据库系统成为最重要、 最流行的数据库系统
关系模型的形式定义
关系模型有三个重要组成部分:数据结构,数据操纵, 数据完整性规则。 (1)数据结构:数据库中全部数据及其相互联系都被组 织成“关系”(二维表格)的形式。关系模型基本的 数据结构是关系。 (2)数据操纵:关系模型提供一组完备的高级关系运算, 以支持对数据库的各种操作。关系运算分成关系代数、 关系演算和关系逻辑等三类。 (3)数据完整性规则:数据库中数据必须满足实体完整 性,参照完整性和用户定义的完整性等三类完整性规 则。
2.1 关系模型的基本概念
典型实验系统
System R University INGRES ORACLE SYBASE INFORMIX DB2 INGRES
典型商用系统
基本术语(1)
定义2.1 用二维表格表示实体集,用关键码表示实体 之间联系的数据模型称为关系模型(relational Model)。
学生关系模式S(S#,SNAME,AGE,SEX)
选课关系模式SC(S#,C#,GRADE)
课程关系模式C(C#,CNAME,TEACHER)
图2.6 关系模式集
关系模型的3层体系结构 --子模式
子模式是用户所用到的那部分数据的描述。除此之外, 还应指出数据与关系模式中相应数据的联系。例如, 用户需要用到子模式G(图2.4)。
第2章 关系模型和关系运算理论
数据库系统
2010年
本章重要概念(一)
(1)基本概念 关系模型,关键码(主键和外键),关 系的定义和性质,三类完整性规则,过 程性语言与非过程性语言。 (2)关系代数 五个基本操作,四个组合操作,七个扩 充操作。
本章重要概念(二)
(3)关系演算 元组关系演算和域关系演算的原子公式、公式 的定义。关系演算的安全性和等价性。 (4)关系代数表达式的优化 关系代数表达式的等价及等价转换规则,启化 式优化算法。 (5)关系逻辑 谓词、原子、规则和查询,规则的安全性,用 规则模拟关系代数表达式。
本章概要
本章先介绍关系模型的基本概念;然后介绍关 系运算的三种理论:关系代数、关系演算和关 系逻辑。
2.1 关系模型的基本概念
系统而严格地提出关系模型的是美国 IBM公司的E.F.Codd
1970年提出关系数据模型
E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, 《Communication of the ACM》,1970
关系模型的3类完整性规则 (5)
③ 设课程之间有先修、后继联系。模式如下: R(C# ,CNAME,PC# ) 其属性表示课程号、课程名、先修课的课程号。如 果规定,每门课程的直接先修课只有一门,那么模式R 的主键是C#,外键是PC#.。这里参照完整性在一个模 式中实现。即每门课程的直接先修课必须在关系中出 现。
关系模型的3类完整性规则(1)
实体完整性规则(entity integrity rule)
要求关系中元组在组成主键的属性上不能有空值。如果 出现空值,那么主键值就起不了惟一标织元组的作用。
关系模型的3类完整性规则 (2)
参照完整性规则(reference integrity rule) 定义2.3 参照完整性规则的形式定义如下: 如果属性集K是关系模式R1的主键,K也是关系模式 R2的外键,那么在R2的关系中,K的取值只允许两种 可能,或者为空值,或者等于R1关系中某个主键值。 这条规则的实质是“不允许引用不存在的实体”。 在上述形式定义中,关系模式R1的关系称为“参照关 系”,关系模式R2的关系称为“依赖关系”。R1和R2 的关系也称为“主表”和“副表”(PowerBuilder), “父表”和“子表”(Visual Foxpro)。
关系模型的3类完整性规则 (3)
例2.1 下面各种情况说明了参照完整性规则在关系中 如何实现的。 ① 在关系数据库中有下列两个关系模式: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) 在关系S中S#为主键,在关系SC中S#为外键。据规则要 求关系SC中的S# 值应该在关系S中出现。如果关系SC 中有一个元组(S7,C4,80),而学号S7却在关系S中找 不到,那么我们就认为在关系SC中引用了一个不存在 的学生实体,这就违反了参照完整性规则。 另外,在关系SC中S# 不仅是外键,也是主键的一部 分,因此这里S# 值不允许空。