第02章 关系数据库(2)
R
a1 a2 A a1 a1 a2
b2 b2 B b2 b3 b2
c2 c1 C c2 c2 c1
R∩S
S
如何将交运算换为其他运算? 等价于:R∩S = R –(R-S)
25
2.3.2 传统的集合运算
4.广义笛卡尔积: 设:R集合n目关系,k1个元组 S集合m目关系,k2个元组
则:R×S
列:(n+m)列的元组的集合
李思
周武 吴丽
男
男 女
21
19 20
自动化
计算机 自动化
35
1.选择
课程号 Cno
1 2 3 4 5 6 7
课程名 CN
程序设计 微机原理 数字逻辑 数据结构 数据库 编译原理 操作系统
先行课 Cpno
5 3 1 4 1 6
学时 CT
60 80 60 80 60 60 50
C表
36
1.选择
学 号 Sno S1 S1 S2 课程号 Cno C1 C2 C5 成 绩 Score 90 85 57
剩余的属性组。
30
2.4.2 专门的关系运算
几个常用记号: trts: R为n目关系,S为m目关系。tr R,tsS, trts称为元组的连接。一个n+m列的元组,前 n个分量为R中的一个n元组,后m个分量为S中 的一个m元组。
31
2.4.2 专门的关系运算
几个常用记号: 象集(Images Set) Zx: 给定一个关系R(X,Z),X和Z为属性组。 当t[X]=x时,x在R中的象集为 :Zx={t[Z]|tR,t[X]=x} 它表示R中属性组X 上值为x的诸元组在Z上分量的集合。
学生(学号,姓名,性别,专业号,年龄)
学号 801 802 803 804 805 姓名 张三 李四 王五 赵六 钱七 性别 女 男 男 女 男 专业号 01 01 01 02 02 年龄 19 20 20 20 19
课程(课程号,课程名,学分)
课程号 01 02 03 04 课程名 数据库 数据结构 编译 PASCAL 学分 4 4 4 2
3.交 设:R和S两个集合 具有相同的目n(即两个关系都有n个属性)
相应的属性取自同一个域
则:R∩S仍为n目关系,
由既属于R又属于S的元组组成 即: R ∩ S = { t|t R∧t S }
24
2.3.2 传统的集合运算
3.交
A a1 B b1 C c1 A a1 a2 B b2 b2 C c2 c1
n b
D. EMP、DEPT
6.若某个关系的主码为全码,则应包含 A.单个属性 C.多个属性 B.两个属性 D.全部属性
14
D
。
练习
7.现有如下关系,属于用户定义完整性的是( D )。 医疗(医生编号,医生姓名,患者编号,性别,诊 断日期,诊断结果) A.医生编号做主码 B.医生编号不能为空 C.患者编号要与患者关系中的患者编号对应 D.性别只能取“男”或“女”
29
2.4.2 专门的关系运算
几个常用记号: A 若A={Ai1,Ai2,…,Aik},Ai1,Ai2,…,Aik是 A1,A2,…,An中的一部分,则A称为属性列或属性组
t[A] t[A]=(t[Ai1],…,t[Aik]) 表示元组t在属性列A上诸分量的集合。
A: A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后
SC表
S2
S3
C6
C1
80
75
37
1.选择
T表
TNo T1 T2 T3 T4 TN 李力 王平 刘伟 张雪 Sex 男 女 男 女 Age 47 28 30 51 Prof 教授 讲师 讲师 教授
副教授
Sal 1500ห้องสมุดไป่ตู้800 900 1600
Comm 3000 1200 1200 3000
Dept 计算机 信息 计算机 自动化
a2
b1 b2
b2
c1 c2
c1 R∪S
S
A a1 a1 a2
B b2 b3 b2
C c2 c2 c1
A a1 a1 a2
a1
B b1 b2 b2
b3
C c1 c2 c1
c2
21
2.3.2 传统的集合运算
2.差 设:R和S两个集合
具有相同的目n(即两个关系都有n个属性)
相应的属性取自同一个域
则: R- S 仍为n目关系,
• 把关系看成元组的集合,以元组作为集合中元素 来进行运算,其运算是从关系的行的角度进行的。
• 包括并、差、交和笛卡尔积等运算。 专门的关系运算 • 不仅涉及行运算,也涉及列运算,这种运算是为 数据库的应用而引进的特殊运算。 • 包括选取、投影、连接和除法等运算。
基本操作:选择、投影、并、差、笛卡尔积
A.患者关系中的患者编号
B.患者关系中的患者姓名
C.医疗关系中的患者编号
D.患者关系中的患者编号和医疗关系中的患者编号
12
练习
4.有以下两个实体集:
•部门DEPT(Deptno, Name, Tel, Leader)
•职工EMP(Empno, Name, Sex, Address, Deptno)
若一个职工只能属于一个部门,部门负责人Leader 是一个职工。
关系DEPT和EMP的外码分别为 _____ 。 DEPT关系中的Leader
EMP关系中的Deptno
13
练习
5.基于上题描述,右图中a、 b处的实体名分别为 B 。
1
D_E
a
A. DEPT、Empno
B. DEPT、EMP C. Deptno、EMPno
» 元组的前n列是关系R 的一个元组
» 后m 列是关系S 的一个元组
行:k1×k2个元组
记作:R×S = {trts |trR ∧ tsS }
26
2.3.2 传统的集合运算
4.广义笛卡尔积:
R.A R.B R.C S.A S.B S.C
A B R a1 b1 a1 b2 a2 b2
C c1 c2 c1
3
2.2.2 外码
定义2.7:如果关系R2的一个(组)属性X,不是关系R2的主 码,而是另一个R1的主码,
则:该属性(组)X称为关系R2的外码
关系R1称为被参照关系或目标关系 关系R2 称为参照关系
被参照关系 主码 关系R1 属性X 关系R2 参照关系 外码 主键
属性X
… 属性Z
4
属性Y
…
[例2]找出下列关系中的外码。
如果关系R2的外码X与关系R1的主码相对应,则X的 取值必须是:
• 或者取空值(X的每个属性值均为空值);
• 或者等于R1中某个元组的主码值。
例1:关系学生(学号,姓名,性别,年龄,系别) 例2:关系选课(学号,课程号,成绩)
9
2.2.3 关系完整性
3.用户定义的完整性:
是针对某一具体关系数据库的约束条件,反映某一
计算机 信息 信息 自动化 计算机 自动化
数据库系统概论
Principle and Application of Database
第二章 关系数据库 (2)
1
复习
笛卡尔积与关系
关系模式与关系
候选码、主码、全码、主属性、非主属性
关系的三种完整性约束
2
2.2 关系的码和关系的完整性
2.2.1 候选码与主码
2.2.2 外码
2.2.3 关系的完整性
何时取 同名好?
802 805
802
提示: 804
(1)805 被参照关系的主码和参照关系的外码必须定 02 19 钱七 男 义在同一个域上。 (2)外码与相应的主码属性名可以相同,也可以 不同。
6
2.2.3 关系完整性
实体完整性
完整性约束
参照完整性 用户自定义完整性 体现具体领域中的语义约束
必须满足
33
1.选择
(2)选择是从行的角度进行的运算
σ
(3) 举例
设有一个学生-课程数据库,包括学生关系
Student、课程关系Course和选修关系SC。
34
1.选择
Sno S1 SN 赵亦 钱尔 孙珊 Sex 女 男 女 Age 17 18 20 Dept 计算机 信息 信息
S表
S2 S3
S4
S5 S6
具体应用所涉及的数据必须满足的语义要求。
关系模型应提供定义和检验这类完整性的机制,以
便用统一的系统的方法处理它们,而不要由应用程 序承担这一功能。 例:关系课程(课程号,课程名,学分)中: 课程号必须取唯一值; 课程名不能取空值; 学分只能取值{1,2,3,4}。
10
练习
1.一个关系只有一个( ) 。 A.候选码 B.外码 C.码 D.主码
2.关系模型中,一个码是( )。
A.可以由多个任意属性组成
B.至多由一个属性组成
C.由一个或多个属性组成,其值能够惟一标识关系 中一个元组 D.以上都不是
11
练习
3.现有如下关系,其外键是( )。
患者(患者编号,患者姓名,性别,出生日期,所 在单位) 医疗(医生编号,医生姓名,性别,患者编号,诊 断日期,诊断结果)
15
2.3 关系代数
2.3.1 关系代数的分类及其运算符
2.3.2 传统的集合运算
2.3.3 专门的关系运算
16
2.3.1 关系代数的分类及其运算符
关系代数是一种抽象的查询语言,用对关系 的运算来表达查询。
关系代数运算的三大要素:
运算对象、运算符、 运算结果。
17