Вы находитесь на странице: 1из 48

第二章 关系数 据模 型

本章 要点 :
1. 掌握关 系数 据模型 的基本 概念
2. 掌握关 系的 三种完 整性的 定义 及关 系模
式的形 式化 定义
3. 掌握各 种关 系运算
第一节 关 系模型

1 、关系模 型:

用二维表的形 式来表示实 体和实体 间联系的


数据模 型,简称 为关系模型 。关系模型由 关系数据结
构、关 系操作集 合和关系完 整性约束三部 分组成。

数据结 构 + 操作约束条件
常用 术语
关系 —— 一个关系就 是一张二维 表,每个关 系有一个 关
系名 。
元组 —— 表中 的每行称为 元组,每 个元 记录

属性 —— 表中 的列称为属 性,每一 列的列名即 属 字段
性名
域 —— 一组 具有相同 数据类型 的值的集合, 即属性的取 值范
围。
关键 —— 其值 能唯一地标 识一个元 组的属性或 属性组合, 又称为
字 主键。
外关键 —— 如果 一个关系中 的属性或 属性组并非 该关系的关 键字,
字 但却是 另外一个关 系的关键字, 则称其为该 关系的外关 键字,
又称为 外键。
关键字 关系名 定单 关系 数据库名
属性 定单号 货号 定 货单位 售 价 定购量字段送
元组 货地点
97001 SL02 阳光公司 800.50 500 甲地 记录
97002 DH03 友谊商城 500.88 400 乙地
97003 DS01 和平饭店 4000.99 600 乙地
97004 DS01 蓝天乐园 4000.99 80 丙地
关系数 据结构: 关系模型的数据结构非常单一,在关系模型
中,现实世界的实体以及实体间的各种联系均用关系来表示,
在用户看来,关系模型中数据的逻辑结构是一张二维表。

关系操 作:对存放在关系中的数据所进行的操作主要有存储
操作和检索操作。
–存储操作(插入、删除、修改)
–检索操作(选择、连接、投影、除、并、交、差等查
询)
关系操作用以下三种关系数据语言来表述:
1. 关系代 数语言 :用对关系的运算来表达查询要求的方式。
2. 关系演 算语言 :用谓词来表达查询要求的方式。关系演
算又可按谓词变量的基本对是元组变量还是域变量分为
元组关系演算和域关系演算。
3. 具有关 系代数和关 系演算双重 特点的语言 :如 SQL 语言
是集查询、定义、操纵、和控制于一体的关系数据语言
,它充分体现了关系数据语言的特点和优点,是关系数
据库的标准语言。
关系代数语言 例如 ISBL
元组关系演算语言 例如 APLHA , QUEL
关系数据语言 关系演算语言
域关系演算语言 例如 QBE
具有关系代数和关系演算双重特点的语言 例如 SQL

关系 数据 语言的 特点

• 语言具 有完备的表达 能力;


• 非过程 化的集合操作 语言;
• 功能强 ,能够嵌入高 级语言中使 用。
关系 的完 整性约 束
• 实体完整性
• 参照完整性
• 用户定义完整性

实体完 整性 :关系模型中以主键作为唯一性标识,如果
主键取空值,就说明存在着不可识别的实体,这与现实
世界的实体是可以区分的事实相矛盾,因此,在关系中
要求主键的值不能为空,并称为实体完整性。

参照完 整性 :同一属性在不同关系中要有值的对应关系
,即如果关系 R1 的外键 F 与关系 R2 的主键相符,那么
外键 F 的值要么取关系 R2 中存在的值,要么取空值。

用户定 义完整性 :用户定义的完整性就是针对某一具体


关系数据库的约束条件,它反映某一具体应用所涉及的
数据必须满足的语义要求。
职工表 R1
职工编号 部门编号 姓名 性别 …
9801 01 张山 男
9802 02 万名 男
9803 李娟 女
9804 01 张海燕 女

部门编号 部门名称
01 经理办公室
部门表 R2 02 人事部
03 公关部

2 、关系 模型的 特点
1 )关系必 须规范化
规范化 是指关系模型中的每个关系模式都必须满足一定的
条件。
规范化有许多层次,其中最基本的要求是每个属性的值必
须是不可分割的数据单元。

2 )模型概 念单一
实体及其联系都用二维表描述。关系模型中没有链,没
有指针这类数据,操作简单,不用去修复链。

3 )操作集 合化
关系操作的对象和结果都是集合。
3 、关系 的形 式化定 义

域:一组具有相同 数据类型的 值的集合 。


笛卡尔 积:给定一 组域 D 1 ,D 2 ,…D n ,这些域可以相 同,
D 1 , D 2 ,…, D n 的笛 卡尔积为:
D 1 ×D 2 ×…×D n ={(d 1 ,d 2 ,…d n )|d i ∈D i , i= 1,2 ,…
n}
笛卡尔 积可表示为 一个二维表 ,表中的每行 对应一个
元组, 表中的每列 对应一个域 。
D 1 = 导师集合 ={ 李清, 刘涛 }
D 2 = 专业集合 ={ 计算机 ,管理 }
D 3 = 研究生集 合 ={ 李华, 刘颖,杨 玲 }
则 D 1 , D 2 , D 3 的笛卡 尔积为:
D 1 ×D 2 ×D 3 ={
( 李清, 计算机,李 华 ) , ( 李清,计算 机,刘颖 ) , ( 李清, 计算
机,杨 玲 ) , ( 李清,管理 ,李华 ) , ( 李清 ,管理,刘 颖 ) ,
( 李清, 管理,杨玲 ) ,
( 刘涛, 计算机,李 华 ) , ( 刘涛,计算 机,刘颖 ) , ( 刘涛, 计算
机,杨 玲 ) , ( 刘涛,管理 ,李华 ) , ( 刘涛, 管理,刘 颖 ) , ( 刘
涛,管 理,杨玲 )
}
D1,D2,D3的笛卡尔积
导师 专业 研究生
李清 计算机 李华
李清 计算机 刘颖 该笛卡 尔积的基数
李清 计算机 杨玲 为:
李清 管理 李华 2× 2 × 3 =12 ,
李清 管理 刘颖 即d 1 × d 2 × d 3 一
李清 管理 杨玲 共有 2× 2 × 3 =12
个元组 ,这 12 个元组
刘涛 计算机 李华 可列成 一张二维表
刘涛 计算机 刘颖
刘涛 计算机 杨玲
刘涛 管理 李华
刘涛 管理 刘颖
刘涛 管理 杨玲
关系 (relation) :
笛卡尔积 D1×D 2 ×…×Dn 的子集称作在域 D1×D
2 ×…×Dn 上的关系,表示为:

R(d1,d2,…dn)
这里 R 表示关系的名字, n 是关系的度,关
系中的元素是元组。
关系是笛卡尔积的有限子集,所以关系也是
一个二维表,表的每行对应一个元组,表的列对
应一个域。
  并不是每张二维表都是关系,只有满足下列条件的二
维表才是关系:
1. 每一列中的分量必须是相同类型的数据,来自同
一个域。
2. 行、列顺序无所谓,可以任意交换位置。
3. 任意两个元组不能完全相同。
4. 每个分量必须是不可分的数据项。
关系三种 类型

1. 基本表: 是实 际存在 的表, 它是 实际存 储数 据


的逻辑表 示。
2. 查询表: 是查 询结果 对应的 表。
3. 视图表: 是基 本表或 其他视 图表 导出的 表, 是
虚表,不 对应 实际存 储的数 据。
关系 模式
关系数据库中,关系模式是对关系结构的描
述,是关系的框架,它描述了组成关系的元组集合
的结构, 即它是由那些属性组成, 这些属性来自
于哪些域,以及属性与域之间的映象关系。关系是
关系模式在某一个时刻的状态或内容,关系模式是
静态的,稳定的,而关系是动态的、随时间不断变
化的。
关系 数据 库
在关系模型中,实体以及实体间的联系都是用
关系来表示的。在一个给定的应用领域中,所有实
体及实体之间联系的关系的集合构成一个关系数据
库。
第二节 关 系代数

关系代数语言是关系数据操纵语言的一
种传统表达方式,它是用对关系的运算来表达
查询的。运算的三大要素是运算对象、运算符
和运算结果。
关系代数的运算对象是关系,运算结果
也为关系,用到的运算符包括四类:集合运算
符、专门的关系运算符、比较运算符和逻辑运
算符。
运算符 含义
∪ 并
- 差
集合运算符
∩ 交 比较运算
× 广义笛卡尔积 符和逻辑运算符
σ 选择 是用来辅助专门
∏ 投影 的关系运算符进
专门的关系运算符
连接 行操作的,所以
÷ 除 关系代数的运算
> 大于 按运算符的不同
≥ 大于等于 主要分为传统的
< 小于 集合运算和专门
比较运算符
≤ 小于等于 的关系运算两
= 等于 类。
≠ 不等于
¬ 非
逻辑运算符 ∧ 与
∨ 或
1 、传 统的集 合运 算

传统的集合运算是两个关系的集
合运算,包括并、交、差、广义笛卡
尔积四种运算。
并 (union)
设关系 R 和关系 S 具有相 同的目 n (属性个 数
相同 ), 且相应 的属 性取自 同一 个域, 则关系 R 与
关系 S 的并由 属于 R 或属于 S 的元 组组 成,其 结果
仍为 n 目关系 ,记作 :
R
R∪ S= { t| t∈R ∨t ∈S } S
A B C A B C
a1 b1 c1 集合 集合 a1 b2 c2
a1 b2 c2 R S a1 b3 c2
a2 b2 c1 a2 b2 c1

R∪S
A B C
a1 b1 c1
a1 b2 c2
a2 b2 c1
a1 b3 c2
差 (difference)
设关系 R 和关系 S 具有相 同的目 n (属性个数 相
同) ,且 相应的 属性 取自同 一个 域,则 关系 R 与关
系 S 的差由属 于 R 而不 属于 S 的所有元 组组 成,其 结
果仍 为 n 目关 系, 记作: ¬ R- S= { t|t ∈R ∧
t∈ SR }
S
A B C A B C
a1 b1 c1 a1 b2 c2
S R
a1 b2 c2 a1 b3 c2
a2 b2 c1 a2 b2 c1

R-S
A B C
a1 b1 c1
交 (intersection)
设关系 R 和关系 S 具有相 同的目 n (属性个数
相同 ), 且相应 的属 性取自 同一 个域, 则关 系 R 与
关系 S 的交由 既属于 R 又属于 S 的元组 组成 ,其结
果仍 为 n 目关 系, 记作:
R∩S = { t| t∈ R∧t ∈S }
R S
A B C A B C
a1 b1 c1 集合 集合 a1 b2 c2
a1 b2 c2 R S a1 b3 c2
a2 b2 c1 a2 b2 c1

R∩S
A B C
a1 b2 c2
a2 b2 c1
广义笛卡尔积
两个分别 为 n 目和 m 目的关 系 R 和 S 的广义笛
卡尔 积是 一个 (n +m ) 列的 元组 的集合 。元 组的前 n 列
是关 系 R 的一 个元 组,后 m 列是关系 S 的一个 元组 ,
若 R 有 k 1 个元组 , S 有 k 2 个元 组, 则关系 R 和关系 S
的广 义笛 卡尔积 有 k 1 ×k 2 个元组 ,记 作:
R×S = { t r t s |t r ∈R∧ t s ∈S }
R
A B C
a 2 c R×S
A B C D E
b 4 a
a 2 c b 4
b 4 a b 4
S a 2 c c 2
D E b 4 a c 2
a 2 c a 6
b 4 b 4 a a 6
c 2
a 6
已知关系 R 、 S ,如下 图, 求出下 列运 算结 果:
( 1 ) R∪S ( 2 ) R- S
( 3 ) R∩S ( 4 ) R× S

R S
A B A B
a d a c
b c b c
c e d e
R∪S R-S
A B A B
a d a d
b c c e
c e R∩S
a c A B
d e b c
R×S
R.A R.B S.A S.B
a d a c
a d b c
a d d e
b c a c
b c b c
b c d e
c e a c
c e b c
c e d e
2 、专门的 关系 运算

仅依靠传统的集合运算,还不能灵活地实
现多样的查询操作,一个关系数据库管理系统还应具
有一些专门的关系运算,包括选择( SELECT )、投
影( PROJECT )与连 接( JOIN )、除 (div is io n)
等操作
选择 (selection)
选择又 称为 限制, 它是 在关 系 R 中选择 满足给
定条件的 诸元 组,记 作: σ F (R)
其中 F 表示选 择条 件,它 是一 个逻 辑表达 式,
取逻辑值 ‘真 ’或‘ 假’。
逻辑表达 式 F 的基 本形 式为: X 1 θY 1 [φX 2 θY 2 ]
其中 θ 表示比 较运 算符, 它可 以是 >、≥ 、<
、≤、= 或≠ 。 X 1 、 Y 1 等是属 性名, φ 表示 逻辑 运
算符,它 可以 是 、∧或∨ 。
选择运 算实际 上是从 关系 R 中选取 使逻辑 表达
式为真的 元组 ,这是 从行的 角度 进行的 运算 。
Student
学号Sno 姓名Sname 性别Ssex 年龄Sage 所在系Sdept
99001 张岩 男 20 CS
99002 李晨 女 19 IS
99003 周敏 女 18 MA
99004 陈立 男 19 IS
查询信息 系 (I S 系 ) 全体 学生
σ sdep t= ‘IS’ (s tu de nt)
或 σ 5=‘I S’ (s tu de nt)
其中下角 标“ 5” 为 sd ep t 的属 性号 ,结果如
下表:
学号Sno 姓名Sname 性别Ssex 年龄Sage 所在系Sdept
99002 李晨 女 19 IS
99004 陈立 男 19 IS
Student
学号 Sno 姓名 Sname 性别 Ssex 年龄 Sage 系 Sdept
99001 张岩 男 20 CS
99002 李晨 女 19 IS
99003 周敏 女 18 MA
99004 陈立 男 19 IS

查询 年龄 小于 20 岁的元 组
σ Sag e< 20 ( Stu den t)
或 σ 4< 20 (St ude nt)
结果 如下 表:
学号 Sno 姓名 Sname 性别 Ssex 年龄 Sage 系 Sdept
99002 李晨 女 19 IS
99003 周敏 女 18 MA
99004 陈立 男 19 IS
投影 (projection)

关系 R 上的 投影 是从 R 中选择出 若干 属
性列组 成新的 关系 ,记作 : Π A (R)
其中 A 为 R 的属性列 ,投 影操作 是从 列
的角度 进行的 运算 。
Student
学号 Sno 姓名 Sname 性别 Ssex 年龄 Sage 系 Sdept
99001 张岩 男 20 CS
99002 李晨 女 19 IS
99003 周敏 女 18 MA
99004 陈立 男 19 IS
查询 学生 关系 St ud ent 在学生 姓名和 所在系 两个
属性 上的 投影。
Π Sna me ,Sd ept (S tud ent )
或 Π 2, 5 (S tu de nt)
结果如下 表:
姓名 Sname 系 Sdept
张岩 CS
李晨 IS
周敏 MA
陈立 IS
Student
学号 Sno 姓名 Sname 性别 Ssex 年龄 Sage 系 Sdept
99001 张岩 男 20 CS
99002 李晨 女 19 IS
99003 周敏 女 18 MA
99004 陈立 男 19 IS
查询 学生 关系 St ud en t 中都有 哪些 系,即 查询 学
生关 系 St ude nt 在系属 性上的 投影 。
Π Sdep t( Stud en t)
结果如下 表, Stu de nt 关系 原来 有四个 元组
,而 投影 结果取 消了 重复的 IS 元组,因 此只 有三
个元 组。
系Sdept
CS
IS
MA
连接 (join)

连接也 称为 θ 连接 ,它 是从两 个关 系的笛 卡尔


积中 选取 属性间 满足 一定条 件的 元组, 记作:
R S
AθB

其中 A 和 B 分别为 R 和 S 上可 比的 属性组 , θ
是比 较运 算符。 连接 运算从 R 和 S 的笛卡尔 积 R×S
中选 取 (R 关系 ) 在 A 属性组上 的值 与 (S 关系 ) 在
B 属性组 上值 满足比 较关 系 θ 的元组 。
连接运 算中 有两种 最为重 要也 最为 常用的 连接
,一 种是 等值连 接, 另一种 是自 然连接 。
θ 为“ =” 的连接 运算 称为等 值连 接, 它是从
关系 R 与 S 的笛卡 尔积 中选取 A 、 B 属性 值相 等的那
些元 组, 即等值 连接 为:
R S
A= B

自然连接 是一 种特殊 的等 值连接 ,它 要求两 个


关系 中进 行比较 的分 量必须 是相 同的属 性组 ,并且
要把 结果 中重复 的属 性去掉 ,即 自然连 接是 去掉重
复列 的等 值连接 ,记 作:

R S
R S
A B C B E
a1 b1 5 b1 3
b2 7
a1 b2 6
b3 10
a2 b3 8 b3 2
a2 b4 12 b5 2
R S
C< E

A R.B C S.B E
a1 b1 5 b2 7
a1 b1 5 b3 10
a1 b2 6 b2 7
a1 b2 6 b3 10
a2 b3 8 b3 10
R S
A B C B E
a1 b1 5 b1 3
b2 7
a1 b2 6
b3 10
a2 b3 8 b3 2
a2 b4 12 b5 2

R S
R. B=S . B

A R.B C S.B E
a1 b1 5 b1 3
a1 b2 6 b2 7
a2 b3 8 b3 10
a2 b3 8 b3 2
R S
A B C B E
a1 b1 5 b1 3
b2 7
a1 b2 6
b3 10
a2 b3 8 b3 2
a2 b4 12 b5 2

R S 一般 的连 接
A B C E 操作 是从 行的角
度进 行运 算,但
a1 b1 5 3 自然 连接 还要取
a1 b2 6 7 消重 复列 ,所以
a2 b3 8 10 是同 时从 行和列
a2 b3 8 2 的角 度进 行运
算。
除 (div ision )
给定关 系 R( X , Y) 和 S( Z) ,其中 X , Y , Z
为属 性组 ,假设 Y 和 Z 具有相 同的属 性数 目(列 数
相等 ), 且对应 属性 出自相 同域 , R 与 S 的除 运算
得到 商是 关系 R 在属性 X 上投影的 一个子 集, 该子
集和 S(Z ) 的笛卡 儿积 必须包 含在 R ( X , Y )中
,记 作: R÷S
除操作是 同时 从行和 列角 度进行 运算。
关系 R 在属性 A 上的投影有四 个值{ a1 ,a2 ,a 3, a4 }
,其中 :
a1 的像集为{ (b 1,c 2) ,(b 2,c 3) ,( b2, c1 ) }
a2 的像集为{ (b 3,c 7) ,(b 2,c 3) }
a3 的像集为{ (b 4,c 6) }
a4 的像集为{ (b 6,c 6) }
显然只 有 a1 的像集 (B , C) a1 包含了 S ,所以
R÷S= { a1 }
R R S
A B C A B C B C
a1 b1 c2 a1 b1 c2 b1 c2
a2 b3 c7 a1 b2 c3 b2 c3
a3 b4 c6 a1 b2 c1 b2 c1
a1 b2 c3 a2 b3 c7
a4 b6 c6 a2 b2 c3 R÷S
a2 b2 c3 a3 b4 c6 A
a1 b2 c1 a4 b6 c6 a1
查询 至少 选修 2 号课程和 3 号课程 的学生 号码 。
首先 建立 一个临 时关 系 K ,然后 求:
Π Sno, Cn o (S C)÷ K
先对 SC 关系 在 Sn o 和 Cn o 属性 上投 影,然 后求 出
每一 学生 的象集 ,并 依次检 查这 些象集 是否包 含
K ,结 果为 { 990 01 , 99 002 }。

SC K
学号Sno 课程号Cno 成绩Grade Cno
2
99001 1 97
3
99001 2 90
ΠSno,Cno(SC)÷K
99001 3 80
Sno
99002 2 86 99001
99002 3 92 99002
已知关系 R 、 T ,如下 图所 示。求 出下 列运 算的结 果

( 1 )R T ( 2 ) Π A (R )
( 3 ) σ R. A= 'c' (R×T )

R T
A B A C
a d a d
b c b c
c e c e
R T ΠA(R)
A B C A
a d d a
b c c b
c e e c
R×T
R.A B S.A C
a d a d
a d b c
a d c e
b c a d
b c b c
b c c e
c e a d
c e b c
c e c e

σR.A='c'(R×T)
R.A B S.A C
c e a d
c e b c
c e c e
小结

本章 系统 讲解了 关系 数据库 的重 要
概念 ,包 括关系 模型 的数据 结构 、关系 操
作以 及关 系的完 整性 。介绍 了用 代数方 式
或逻 辑方 式来表 达的 关系语 言即 关系代 数
语言 。
作业
1 、已知关 系 R 、 S ,如下图 ,求出 下列 运算结 果

( 1 ) R∪ S ( 2 ) R-S
( 3 ) R∩ S ( 4 ) R×S

R S
A B C A B C
a1 b1 c1 a1 b2 c2
a1 b2 c2 a1 b3 c2
a2 b2 c1 a2 b2 c1
2 、已 知关 系 S 和 SC ,求关 系代 数 S 和 SC 的自然
连接 。
SC
S Sno course grade
Sno Sname 9901 C 89
9901 李易 9901 VB 79
9902 Foxpro 88
9902 刘林 9903 C 80
9903 张毅 9903 JAVA 97

Вам также может понравиться