上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
第 2章 关系数据库
? 2.1 关系模型概述
? 2.2 关系 数据库的基本概念
? 2.3 关系代数
? 2.4 关系演算
开始
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
2.1 关系模型概述
一、关系模型三要素
⒈ 关系数据结构:二维表。
⒉ 关系操作:选择、投影、连接、并、交、差、增加、删除、修改。
3,完整性规则:实体完整性规则(属性不能空)
参照完整性规则(不引用不存在的实体)
用户定义完整性规则(应用领域的约束条件)。
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
2.2 关系数据库基本概念
一、关系
⒈ 域:一组具有相同数据类型的值的集合。
⒉ 笛卡尔积:给定一组域 D1,D2,…,Dn.则笛卡尔积 D1×
D2× … × Dn={(d1,d,… di,dn)|di∈Di,i=1,2,…,n}
⒊ 关系:笛卡尔积的子集。
⒋ 主键:可以识别元组的最小属性集。
5,关系的性质, 列是同质的; 不同列可出自同一个域;
行, 列的顺序任意; 任意两个元组不能完全相同;
分量必须是原子的 。
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
二, 关系数据库的三级体系结构
⒈ 关系模式 ( 模式 ) 模式名, 属性名, 值域名, 主键
S# SNAME AGE SEX
TEACHER
GR
CNAMEC#
S
C
S-C
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
三个关系:
S SCS# SNAME AGE SEX
S1 WANG 20 M
S2 LIU 19 F
S3 CHEN 17 M
C# CNAME TEACHER
C1 MATHS LI
C2 DB LIU
C
S# C# GRADE
S1 C1 86
S1 C2 75
S2 C2 90
S3 C1 80
S3 C2 85
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
学生关系模式 S( S#,SNAME,AGE,SEX)
课程关系模式 C( C#,CNAME,TEACHER)
学习关系模式 SC( S#,C#,GRADE)
在 E— R模型中的每个实体和联系都可形成一个二维表 —— 关系。
2、关系子模式(外模式)
用户用到的那部分数据的描述。
例:成绩子模式 G( S#,SNAME,C#,GR)
它是由学生关系模式和学习关系模式按学号相等的原则构造的。
3、存储模式(内模式)
以文件进行组织,元组是文件的记录。
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
2.3 关系代数
关系代数:是一种抽象的查询语言,它是用对关系的运算来表达查询。
一、传统的集合运算
1、并,R∪S= {t | t∈R∨t∈S}, t是元组变量。
2、差,R- S= {t | t∈R∧t∈S}, t是元组变量。
3、交,R∩S = {t | t∈R∧t∈S}, t是元组变量。
4、广义笛卡尔积:
R× S = {t | t=<t1,t2>∧t1∈R∧t2∈S}
例:教材 P24—— 例 2.1
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
二, 专门的关系运算
1,选择:根据某些条件对关系做水平分割, 即选取符合条件的元组 。
б F(R) = {t | t∈R∧F(t)=True}
其中,б — 选择运算符; F— 条件; R— 关系;
б F(R) 表示从 R中挑选满足 F为真的元组 。
例,б 2=‘a’(R) 或 б B=‘a’(R)
2、投影:对关系做垂直分割,选择属性组成新关系,消去某些列并重
新安排列的顺序。
∏ i1,i2,…,im(R) = { t | t = <ti1,ti2,…,tim>}
例,∏ 3,1(R) 或 ∏ C,A(R)
3、连接:从 2个关系的笛卡尔积中选取属性间满足一定条件的元组。
R S={t|t=<t1,t2>∧t1∈R∧t2 ∈ S∧t1[A] =t2[B]}
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
例题, 2.1 R S R∩S
R∪S R- S
A B C
a b c
d a f
c b d
A B C
b g a
d a f
A B C
d a f
A B C
a b c
d a f
c b d
b g a
A B C
a b c
c b d
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
R× S(讲课时现场填写 )
R.A R.B R.C S.A S.B S.C
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
例题,2.2 R S
A B C D
a b c d
a b e f
b c e f
e d c d
e d e f
a b d e
C D
c d
e f
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
б B=‘d’(R) ∏A,B(R)
R.B=S.C
A B C D
e d c d
e d e f
A B
a b
b c
e d
A B R.C R.D S.C S.D
b c e f c d
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
自然连接
A B C D
a b c d
a b e f
b c e f
e d c d
e d e f
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
三、关系代数表达式
用传统的集合运算和专门的关系运算组成的表达查询的式子。
例:数据库有 3个关系:
学生(学号,姓名,性别,年龄,专业)
课程(课程号,课程名,学分,先行课程号)
成绩(学号,课程号,成绩)
⑴ 查询所有年龄小于 20岁的男学生
б 年龄 <‘20’ ∧ 性别 =‘男 ’ (学生 )
⑵ 查询所有女同学的姓名和年龄
∏ 姓名, 年龄 (б 性别 =‘女 ’ (学生 ) )
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
⑶ 查询选修课程号为 C2或 C4的学生的学号
∏ 学号 (б 课程号 =‘C2’ ∨ 课程号 =‘C4’(成绩 ))
⑷ 查询不作为其它课程的先行课的课程号
∏ 课程号(课程) — ∏ 先行课程号(课程)
⑸查询计算机专业和机械专业学生的情况
б 专业 =‘计算机 ’ ∨ 专业 =‘机械 ’ (学生 )
б 专业 =‘计算机 ’ (学生 ) ∪ б 专业 =‘机械 ’ (学生 )
⑹ 得到一张包括学生学号、课程名、学分和
成绩的学生成绩单
∏ 学号,课程名,学分,成绩(课程 | |成绩)
⑺ 查询选修课程号为 C2的学生学号与姓名
∏ 学号,姓名( б 课程号 =‘C2’( 学生 | |成绩))
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
四、扩充的关系代数操作
1、外连接:在自然连接时保留被舍弃的元组。
左外连接,R*| |S,保留 R中所有元组;
右外连接,R| |*S,保留 S中所有元组;
全部连接,R*| |*S,保留 R和 S中所有元组。
2、半连接,R和 S的自然连接在 R的属性集上的投影。
记为 R | S
例:教材 P28,29,30—— 例 2.6、例 2.7
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
2.4 关系演算
关系演算是以数理逻辑中谓词为基础,用公式表示关系上的运算。以元组
为变量的是元组关系演算,以属性为变量的是域关系演算。
一、元组关系演算
{ t | P(t) } 称元组关系演算表达式,P(t) 是元组关系演算公式,
t 是元组变量。 P(t)由原子公式和逻辑运算符组成,原子公式有 3种:
⑴ R(t) 表示元组 t 是关系 R中的一个元组,即 t∈R ;
⑵ t[i]⊙u[j] 表示元组 t 的第 I 个分量与元组 u 的第 j 个分量满足
比较关系 ⊙ ;
⑶ t[j]⊙C 表示元组 t 的第 j 个分量与常数 C之间满足比较关系 ⊙ 。
▲ P, P1 ∧P2, P1∨P2
▲ 存在量词、全称量词
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
? 关系代数的所有运算均可等价地转换成关系演算表达式。
并 R∪S = {t | t∈R∨t∈S} = {t | R(t) ∨S(t)}
交 R∩S = {t | t∈R∧t∈S} = {t | R(t) ∧ S(t)}
差 R- S= {t | t∈R∧t∈S} = {t | R(t) ∧ S(t)}
选择 б F (R) = {t | t∈R∧F(t)=True}
б F (R) = {t | R(t) ∧F`}
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
例:教材 P30— 例 2.8
R S
A B C A B C
1 2 3 1 2 3
4 5 6 3 4 6
7 8 9 5 6 9
R1 选择关系 S中第一列的值大于 2 的元组;
R2 选择属于关系 R但不属于关系 S 的元组;
R3 选择关系 S 的元组,同时 S 的第三列小于 R 的某个第二列;
R4 选择关系 R 的元组,同时 R 的第三列大于 S 的第一列;
R5 选择元组 t,满足 R的第一列大于 S的第二列,结果的第一列等于 R的第二
列,第二列等于 S的第三列,第三列等于 R的第一列。
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
习 题 课
习题 1、学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教
员,每个班级有若干学生,每个学生选修若干课程,每门课可能由若干学
生选修。请用 E— R图画出此学校的概念模型。
分析:
⑴实体:系、班级、教研室、教员、学生、课程
⑵联系:系 — 教研室 — 教员 — 课程;
系 — 学生 — 课程;
班级 — 学生 — 教员
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
E— R图
1 1
m m n
1 p
p m n

教研室
教员
学生
课程
班级
包含
包含
包含
讲授
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
习题 2、根据给定的三个关系,按要求完成下列各题
学生
学号 姓名 性别 年龄 系
95001 李勇 男 20 计算机
95002 王敏 女 18 电气
95003 张立 男 19 计算机
课程 成绩
课程号 课程名 学分 学号 课程号 成绩
1 数据库 4 95001 1 92
2 数 学 3 95001 3 88
3 C 语言 4 95002 2 95
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
1、查询计算机系全体学生
б 系 =‘计算机 ’ (学生 )
学号 姓名 性别 年龄 系
95001 李勇 男 20 计算机
95003 张立 男 19 计算机
2、查询年龄小于 20岁的女学生
б 年龄 <‘20’ ∧ 性别 =‘女 ’ (学生 )
学号 姓名 性别 年龄 系
95002 王敏 女 18 电气
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
3、查询学习数据库课程的学生的学号、姓名和系
∏ 学号,姓名,系
(( б 课程名 =‘数据库 ’ (课程) | |成绩) | |学生)
学号 姓名 系
95001 李勇 计算机
4、得到一张包括学生学号、姓名、系、课程名、成绩的学生成绩单
∏ 学号,姓名,系,课程名,成绩((课程 | |成绩) | |学生)
学号 姓名 系 课程名 成绩
95001 李勇 计算机 数据库 92
95001 李勇 计算机 C 语言 88
95002 王敏 电气 数 学 95
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
习题 3,设有关系 R 和 S 如下图:
R A B S B C
a b b c
c b e a
d e b d
试计算
⑴ R× S
⑵ R,A<S.C时 R与 S的连接、
⑶ бA=C( R× S )
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
⑴ R.A R.B S.B S.C
a b b c
a b e a
a b b d
c b b c
c b e a
c b b d
d e b c
d e e a
d e b d
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
⑵ R.A R.B S.B S.C
a b b c
a b b d
c b b c
c b b d
⑶ R.A R.B S.B S.C
a b e a
c b b c
d e b d
上一页 下一页 返回首页
第 2章 关系数据库 数据库原理与应用
Thank you very much!