第2章 关系数据库设计理论

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 2 5 5 8 8
R3
3 3 6 6 9 9
S1
a d a d a d
S2
b e b e b e
S3
c f c f c f
4
7
5
8 S
6
9
S1 a d
S2 b e
S3 c f
7
笛卡尔积(Cartesian Product)
由上例可以看出,若干个域的笛卡尔积 具有相当多的元素,在实际应用中可能包含 许多“无意义”的元素。 人们通常感兴趣的只是笛卡尔积的某些 子集,笛卡尔积的一个子集就是一个关系。
【例】在教师表中, “职工号”属性可以作为码; “职工号”、“姓名”的组合也可以作为码。
候选码(候选关键字)
如果关系中的一个码移去了任何一个属 性,它就不再是这个关系的码,则称这样的 码为该关系的候选码或候选关键字。
【例】在教师表中,“职工号”属性可以作为
候选码;但是,“职工号”和“姓名”的组合 就不满足候选码的要求,因此不是候选码。
连接(Join)
连接是将两个关系拼接成一个更宽的关系,
生成的新关系中包含满足连接条件的元组,记
作:
R S ij R S
ij
其中,iθj是一个比较式,i和j分别是R和S
中的域,θ为算术比较符。
联接(Join)
【例】设有关系R和S如下所示:
R A 1 7 4 B 2 8 1 S E 4 8 F 9 5 G 7 2 C 3 0 9 D 4 5 2 A B 2 2 连接结果 C 3 3 D 4 4 E 4 8 F 9 5 G 7 2
4
7
5
8 S
6
9
A
1 2 7
B
2 5 0
C
3 8 4
7
差(Difference)
设有关系R和S具有相同的属性集,则关
系R和关系S的差由属于R并且不属于S的元组
组成。
R S t |t R t S
差(Difference)
【例】设有关系R和S如下所示:
R A 1 4 7 B 2 5 8 S A 1 2 7 B 2 5 0 C 3 8 4 C 3 6 9 R-S 差运算结果
其中,F表示选择条件。
选择(Selection)
【例】设有关系R如下所示:
R
A 1 B 2 C 3 条件:A>5 A 7 选择结果 B 8 C 9
4
7
5
8
6
9
投影(Projection)
投影是在关系R中选择若干属性列,并且
将这些列组成一个新的关系,即从列的角度进
行过滤,记作: R
投影(Projection)
其中,A1, A2, A3,…, An为各属性名。
【例】教师表的关系模式可记为:
教师(职工号, 姓名, 性别, 参加工作日期,职称,
院系代码)
码(关键字)
能唯一标识一个元组的属性或属性组称
为该关系的码或关键字。
职工号 021001 041012 071004 …… 981012 991013 姓名 罗丽丽 郭敏 毛利 …… 章美玲 王家辉 性别 女 女 男 …… 女 男 参加工作日期 2002/7/28 2004/7/8 2007/7/8 …… 1998/2/14 1999/7/8 职称 讲师 副教授 讲师 …… 讲师 副教授 050201 050201 院系代码 030201 070101 050301
A
4 7
B
5 8
C
6 9
交(Intersection)
设有关系R和S具有相同的属性集,则关
系R和关系S的交由既属于R又属于S的元组组
成。
R S t |t R t S
交(Intersection)
【例】设有关系R和S如下所示:
R
A 1 B 2 C 3
4
7
5
8 S
6
9 R∩S A 1
除、并、交、差等,以及查询操作和插入、
删除、更新操作。 查询操作是其中最主要的部分。
关系的完整性约束
数据库的完整性是指数据库中数据的正
确性、相容性和一致性。
完整性约束提供了一种手段保证当用户 对数据库进行插入、删除、更新时不会破坏 数据库中数据的正确性、相容性和一致性。
2.1.2 关系模型的数据结构和基本术语
关 系
041012 071004 …… 981012 991013
属性
二维表中垂直方向的列称为属性,每一 个列有一个属性名,列的值称为属性值。
属性(列)和 属性名
职工号 021001 姓名 罗丽丽 性别 女 参加工作日期 2002/7/28 职称 讲师 院系代码 030201
041012 071004
R A 1 7 4 5 D 4 B 2 8 1 8 S E 9 C 3 0 9 6 F 7 D 4 5 2 3 A B 2 1 1 C 3 9 9 D 4 2 2 E 9 0 5 F 7 9 3 自然连接结果
R S
1 4 4
8
2 2
5
0 5
2
9 3
除(Division)
除法运算就是笛卡尔积的逆运算。
一个 元组
职工号 021001 041012 071004 …… 981012 姓名 罗丽丽 郭敏 毛利 …… 章美玲 性别 女 女 男 …… 女 参加工作日期 2002/7/28 2004/7/8 2007/7/8 …… 1998/2/14 职称 讲师 副教授 讲师 …… 讲师 050201 院系代码 030201 070101 050301
数据库管理系统应用
第2章 关系数据库设计理论
目录
2.1 关系模型 2.2 关系代数
2.3 关系完整性
2.4 关系数据库的规范化理论
学习要点
了解关系模型的概念与分类
了解关系数据结构及相关术语
掌握关系代数的基本运算 了解关系完整性的含义
2.1 关系模型
一个关系可以看做一个二维表,由表示
却是另一个关系的主码时,则称该属性或属
性组为这个关系的外码或外部关键字。
外码(外关键字)
教师表
职工号 021001 041012
071004 …… 981012 991013
授课表
…… …… ……
…… …… …… …… 050201 050201
姓名 罗丽丽 郭敏
毛利 …… 章美玲 王家辉
性别 女 女
1. 关系 6. 码(关键字) 7. 候选码(候选关键字)
2. 属性
3. 元组 4. 域 5. 关系模式
8. 主码(主关键字)
9. 外码(外关键字)
关系
在关系模型中,一个关系就是一张二维 表,每个关系有一个关系名。
关系名:教师
职工号 021001 姓名 罗丽丽 郭敏 毛利 …… 章美玲 王家辉 性别 女 女 男 …… 女 男 参加工作日期 2002/7/28 2004/7/8 2007/7/8 …… 1998/2/14 1999/7/8 职称 讲师 副教授 讲师 …… 讲师 副教授 050201 050201 院系代码 030201 070101 050301
除法运算就是笛卡尔积的逆运算。
【例】设有关系R和S如下所示:
R A 1 5 5 1 1 5 B 2 6 6 2 2 6 C 3 3 7 7 5 2 D 4 4 0 0 8 9 C 3 7 S D 4 0
R /S
结果 A 1 5 B 2 6
STEP 3:从这些属性组中找出值相同的元组, 即为除法运算的结果。
一个实体的若干行或表示实体(集)某方面
属性的若干列组成。
2.1.1 关系模型的组成
关系模型由三大要素组成:
关系数据结构
关系操作集合 关系完整性约束
关系数据结构
关系模型把数据库表示为关系的集合。
在用户看来,关系模型中数据的逻辑结构是
一张二维表。
关系操作集合
常用的操作包括:选择、投影、连接、
除法运算就是笛卡尔积的逆运算。
【例】设有关系R和S如下所示:
R A 1 5 5 1 1 5 B 2 6 6 2 2 6 C 3 3 7 7 5 2 D 4 4 0 0 8 9 C 3 7 S D 4 0
R /S
结果 A B
STEP 2:在R中,找出与S中每个元组搭配的属 性组的值。
除(Division)
“男”或“女”。
关系模式
关系的描述称为关系模式(Relation Schema)。可以形式化地表示为: R(U, D, Dom, F) 其中,R为关系名,U为属性名集合,D 为U中属性所来自的域,Dom为属性向域的映
像集合,F为属性间数据依赖关系的结合。
关系模式
也可以简记为:
R(U)或R(A1, A2, A3,…, An)
R S
C E
1 1
7 7
8 8
0 0
5 5
4 8
9 5
7 2
自然连接(Natural Join)
自然连接是一种特殊的等值联接,要求关 系R和S中具有相同的属性组,取共有属性值相
等的元组进行连接,并且在结果中把重复的属
性去除。
自然连接(Natural Join)
【例】设有关系R和S如下所示:
除(Division)
除法运算就是笛卡尔积的逆运算。
【例】设有关系R和S如下所示:
R A 1 5 5 1 1 5 B 2 6 6 2 2 6 C 3 3 7 7 5 2 D 4 4 0 0 8 9 C 3 7 5 S D 4 0 8
R /S
结果 A 1 B 2
并(Union)
设有关系R和S具有相同的属性集,则关
系R和关系S的并由属于R或者属于S的元组组
成。
R S t |t R t S
并(Union)
【例】设有关系R和S如下所示:
R
A 1 B 2 C 3 A 1 R∪S 4 7 2 并运算结果 B 2 5 8 5 0 C 3 6 9 8 4
【例】设有关系R如下所示:
R
A 1 B 2 C 3 只查询A和B列 投影结果 A 1 4 7 B 2 5 8
4
7
5
8
6
9
笛卡尔积(Cartesian Product)
笛卡尔积(Cartesian Product)
【例】设有关系R和S如下所示:
R
R1 1 R2 2 R3 3
R1
1 1 4 4 7
R2
元 组 集 合
991013
王家辉

1999/7/8
副教授
050201

属性所取值的变化范围称为属性的域 (Domain)。 域约束规定属性的值必须是来自域中的 原子值。
性别 女 女 参加工作日期 2002/7/28 2004/7/8
【例】“性别”属性的域:
男 ……
女 男
2007/7/8 ……
1998/2/14 1999/7/8
【例】设有关系R和S如下所示:
R A 1 5 5 1 1 5 B 2 6 6 2 2 6 C 3 3 7 7 5 2 D 4 4 0 0 8 9 C 3 7 S D 4 0
R /S
结果 A B
STEP 1:除法运算结果中包含的属性列为:出 现在R中,但是没有在S中出现的属性列。
除(Division)
交运算结果 B 2 C 3
A
1 2 7
B
2 5 0
C
3 8 4
2.2.2 专门的关系运算
专门的关系运算根据操作对象数目的不
同,可以分为两类:
一元运算:选择、投影 二元运算:联接
选择(Selection)
选择是在关系R中选择满足给定条件的元
组,即从行的角度进行过滤,记作:
F R t |t R F t true
…… 981012 991013
郭敏 毛利
…… 章美玲 王家辉
女 男
…… 女 男
2004/7/8 2007/7/8
…… 1998/2/14 1999/7/8
副教授 讲师
…… 讲师 副教授
070101 050301
050201 050201
ຫໍສະໝຸດ Baidu
元组
二维表中水平方向的行称为元组,一行 就是一个元组。元组对应数据表中的一条记 录,元组的各分量对应于关系的各个属性。
关系代数是以集合代数为基础发展起来
的。
在关系代数的操作中,其操作对象和操 作结果均为关系。
关系代数的基本运算有两类:
传统的集合运算:并、交、差等。
专门的关系运算:选择、投影、连接。
2.2.1 传统的集合运算
并、差、交是集合的传统运算形式,若
关系R和S进行集合运算,那么R和S必须具有
相同的属性集。
主码(主关键字)
一个关系中往往有多个候选码,若选定 其中一个用来唯一标识该关系的元组,则称 这个被人为指定的候选码为该关系的主码或 主关键字。(也称为主键)
【例】在教师表中,我们可以指定“职工号” 属性作为该关系的主码。
外码(外关键字)
当关系中的某个属性或属性组虽然不是
这个关系的主码,或只是主码的一部分,但
男 …… 女 男
院系代码 030201 070101
050301
职工号
021001 041012 …… 991013
授课课号
0302003 0701001 …… 0502001
【例】“职工号”属性在授课表中不能单独作 为主码,但在教师表中却是主码,我们就称 “职工号”属性是授课表的外部关键字。
2.2 关系代数
相关文档
最新文档