第二讲 关系数据库理论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名 赵六 张三 王五 李四
年龄 20 20 19 18
年级 1 2 3 2
10 关系代数的基本术语
③ 外码(Foreign Key)
如果某一个关系中的属性(或属性集合)在另一个关系中是主码,则称该属性(
或属性集合)是外码。
学生关系
课程关系
学习成绩关系
主码
主码 外部码
外部码
学号
0101 0102 0103 0104
R
A BC a1 2 c a2 4 d a3 4 c
S
DE d4 e 10
R∞S
B<E
A BCD E a1 2 c d 4 a1 2 c e 10 a2 4 d e 10 a3 4 c e 10
姓名 张三 李四 王五 赵六
所在系 计算机 计算机 计算机 计算机
课程号
C01 C02 C03 C04
课程名 高等数学 数据结构 操作系统
数据库
学时数
100 70 80 60
学号 课程号 成绩
0101 C01 90 0101 C02 80 0102 C04 90 0104 C04 85 0104 C03 70
SDEPT SAGE
计算机
19
计算机
20
数学
21
信息
19
数学
20
计算机
22
C CNO CNAME CT C1 高等代数 144 C2 程序设计 100 C3 微机原理 44 C4 数据结构 64 C5 编译原理 90 C6 操作系统 32
SC
SNO CNO
96004 C3 96004 C5 96005 C2 96005 C3
两个名词: 度(n):参与笛卡儿积的域的个数。 基:域中可取值的个数。
6 关系代数的定义
例:设有域
D1=姓名集合(NAME)={王三,丁平}; D2=职业集合(JOB)={工人,农民,商人}; D3=住址集合(ADDR)={北京,上海,广州};
则 D1×D2×D3 = {
(王三,工人,北京), (王三,工人,上海), (王三,工人,广州), (王三,农民,北京), (王三,农民,上海), (王三,农民,广州), (王三,商人,北京), (王三,商人,上海), (王三,商人,广州), (丁平,工人,北京), (丁平,工人,上海), (丁平,工人,广州), (丁平,农民,北京), (丁平,农民,上海), (丁平,农民,广州), (丁平,商人,北京), (丁平,商人,上海), (丁平,商人,广州)}
16 关系的完整性约束
职工表(EMP)
职工号 部门编号 姓名 …
9801
01 张三
9802
01 李四
9803
王五
9804
02 赵六
9805
03 钱七
部门表(DEPT)
部门编号 部门名称 …
01 经理办公室
02
人事部
03
公关部
04
技术部
外部关系码
关系主码
17 关系的完整性约束
例2:学生实体及其内部的联系
19 关系的完整性约束
(3)域完整性(用户自定义完整性)
规则:要求属性值必须取自其对应的值域。 例:学生的性别只能是:‘男’和‘女’ CONSTRAINT SX CHECK (性别 IN (‘男’,‘女’)
20 传统的集合运算
定义1. 设给定两个关系R和S,若满足:具有相同的度n,且R中第i 个属性和S中第i个属性必须来自同一个域,则说关系R和S是相容的 。即:关系R和S有相同的度,即有相同的属性个数,且对应的属 性的域相同。
类型 实体完整性 参照完整性 用户自定义完整性(域完整性)
说明 约束主键的值 约束外键的值 约束其他字段的值
13 关系的完整性约束
(1)实体完整性(PRIMARY KEY)
规则:设属性A是基本关系R的主属性(码的组成部分),则属性A 不能空值(NULL)和码不能出现重复值。
说明: • 实体完整性是针对基本关系的; • 本规则要求基本关系中的元组在组成码属性上不能有空值; • 现实世界中的实体是可区分的,即它们具有某种唯一性标识( 不取重复值)
25 广义笛卡儿积
例: RA B C
a1 b1 c1 a1 b2 c2 a2 b2 c1
SA B D
a1 b2 c2 a1 b3 c2 a2 b2 c1
R× A B C A′ B′ D
S
a1 b1 c1 a1 b2 c2
a1 b1 c1 a1 b3 c2
a1 b1 c1 a2 b2 c1

a1 b2 c2 a1 b2 c2

a1 b2 c2 a1 b3 c2

a1 b2 c2 a2 b2 c1

a2 b2 c1 a1 b2 c2
9
a2 b2 c1 a1 b3 c2
a2 b2 c1 a2 b2 c1
度数 6
26 专门的关系运算
① 选择(Select) σ(sigma) 从一个关系中选出所有满足指定条件的元组。即在给定 关系中,从水平方向上选取符合给定条件的元组的子集。 一般定义为:
学生(学号,姓名,性别,专业号,年龄,班长)
学号
801 802 803 804 805
姓名
张三 李四 王五 赵六 钱七
性别
女 男 男 女 男
专业号 年龄
01
19
01
20
01
20
02
20
02
19
班长 802
802 805
18 关系的完整性约束
例3:选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值 : (1)选修关系中的主属性,不能取空值 (2)只能取相应被参照关系中已经存在的主码值
问题:笛卡儿积的度为多少?笛卡儿积的基为 多少?
7 关系代数的定义
定义3: 关系
D1×D2×…×Dn的子集叫作在域D1,D2, …,Dn上的关系,记为R(D1,D2,…,Dn)。
一般说来,只有笛卡儿积的子集才是有意义的。为什么?
学号 0104 0101 0103 0102
姓名 赵六 张三 王五 李四
数学
20
96006 赵六
计算机
22
32 专门的关系运算
③ 连接(Join) θ连接
一般定义为: R∞S
AθB
∞(Infinity)表示连接运算符;θ为比较运算符,AθB
是条件表达式。
含义是: 从R×S的广义笛卡儿积中选取R关系在A属性组上的值与S关系
在B属性组上值满足比较运算θ的那些元组。
33 专门的关系运算
14 关系的完整性约束
(2)参照(引用)完整性(FOREIGN KEY)
规则:基本关系R中含有与另一个基本关系S的主码相对应的属性组F (F称为R的外码),则对于R中的每个元组在F上的值必须为:
① 或者取空值(F的每个属性值均为空值); ② 或者等于S中某个元组的主码值
引用完整性约束是不同关系之间或同一关系的不同元组间的约束 。 本规则要求不允许引用不存在的元组;
➢ 传统集合运算的两个关系必须是相容的。 约定:大写字母表示命名关系和关系的属性;小写字母表示元组。
21 传统的集合运算
① 并(Union)
关系R和S的并记为R∪S,结果仍为n度关系, 由或属于R或属于S的元组组成。
RS
R∪S
22 传统的集合运算
② 差(Minus)
关系R和S的差记为R-S,结果仍为n度关系,由属于R而不 属于S的元组组成。
GRADE
95 70 81 95
28 专门的关系运算
例1:求计算机系的学生。 σSDEPT=‘计算机’(S)
例2:求计算机系叫的张三学生。 σSDEPT=‘计算机’^SNAME=‘张三’(S)
SNO SNAME SDEPT SAGE
96001 丁一
计算机
19
96002 王二
计算机
20
96003 张三
Βιβλιοθήκη Baidu
30 专门的关系运算
注意: 因为投影运算的属性表不一定包含关系的码,经投影
运算后,结果中很可能出现重复元组,消除重复元组后所 得关系的元组将小于等于原关系的元组数。如果属性列中 包含码,则不可能出现重复元组,投影运算后所得关系的 元组与原关系一样。
投影不仅会取消一些列,也可能取消某些行。但在实 际的SQL实现时要靠关键字来完成。
RS R-S
23 传统的集合运算
③ 交(Intersect)
关系R和S的并记为R∩S,结果仍为n度关系,由既属于R又属于S 的元组组成。
R
S
R∩S
R∩S=R–(R-S)
24 广义笛卡儿积
广义笛卡儿积
R是一个n度关系,S是一个m度关系。关系R和S的广义笛卡儿积 记为R×S,其结果是(n+m)度的关系,结果中的元组是R中元组 和S中元组连成的一串,前n个分量是R中的一个元组,后m个分量 是S的一个元组。假定R中有元组(r1,r2,…,rn),S中有元组 (s1,s2,…,sm),则结果中的元组为 (r1,r2,…,rn,s1,s2,…,sm)。若R有k1个元组,S有k2个元组,则R×S 有k1×k2个元组。
15 关系的完整性约束
例1:职工关系 EMP(ENO, ENAME, DNO)
部门关系 DEPT(DNO, DNAME)
在EMP中,DNO是外码。EMP中每个元组在DNO 上的值允许有 两种可能:
① 取空值。这说明这个职工尚未分配到某个部门; ② 若非空值,则DNO的值必须是DEPT中某个元组中的DNO值。 表示此职工不可能分配到一个不存在的部门。
1
《数据库系统及应用》
主讲人:陈业斌 教授
安徽工业大学
2


第二讲 关系数据库理论
01 关系代数的基本术语 02 关系模式与关系 03 关系的完整性 04 关系运算
3 关系数据库的奠基人
➢ E.F.Codd,英国人,1923生于英格兰中部波特 兰。第二次世界大战时应征入伍,在皇家空 军服役。 大战结束后,到英国牛津大学数学 专业学习,1963年获得硕士学位,1965年又 获得博士学位。
9 关系代数的基本术语
② 关系的码(Key) (或候选码、键)。
如果一个属性(或属性集合)的值能唯一地标识一个关系的元组而 又不含有多余的属性,则称该属性(或属性集合)为关系的码(或候 选码,也称键)。
每个关系都有一个且只有一个主码(Primary Key)。
学号 0104 0101 0103 0102
σF(R)={t|t∈R∧F(t)=‘True’} 读作关系R关于公式F的选择运算,表示从R中选择那 些满足公式F的元组。
27 专门的关系运算
例:设有学生-课程关系数据库,如下所示:
S SNO SNAME
96001 96002
丁一 王二
96003 96004 96005 96006
张三 李四 刘五 赵六
例:性别集合{男,女};正整数集合{1,2,3,……};姓名集合{ 张三,李四,王五};全体实数的集合等都可以称为是域。
5 关系代数的定义
定义2: 笛卡尔积
给定一组域D1,D2,…,Dn, D1,D2,…,Dn的笛卡儿积为 D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n} 笛卡儿积中每一个元素(d1,d2,…,dn)叫做一个n元组。
31 专门的关系运算
例1:求学生关系S在学生姓名和所在系这两个属性上的投影。
∏SNAME,SDEPT(S) 例2:求有多少个系。
∏SDEPT(S)
SNO SNAME SDEPT SAGE
96001 丁一
计算机
19
96002 王二
计算机
20
96003 张三
数学
21
96004 李四
信息
19
96005 刘五
数学
21
96004 李四
信息
19
96005 刘五
数学
20
96006 赵六
计算机
22
29 专门的关系运算
② 投影( Select ) ∏(pi) 从一个关系出发构造其垂直子集的运算,即结果关
系由运算分量中的某些列组成,并消去重复的元组。 一般定义为:关系R在域列A上的投影:
∏A(R)={t[A]|t∈R} ∏表示投影运算符;A为R中的属性列,R是运算对象的 关系,写在∏之后用()括起来。
➢ 60年代后期开始数据库研究, 1970年E.F.Codd 博士提出关系模型概念,他因此获得1981年 的ACM图灵奖。
E.F.Codd 博士
关系数据库之父 美国工程院院士
4 关系代数的定义
关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。
定义1: 域(Domain)是一组具有相同类型的值的集合。
年龄 20 20 19 18
年级 1 2 3 2
8 关系代数的基本术语
关系就是一张二维表。 一行称为一个元组或一条记录, 一列叫一个属性或一个字段。
学号 0104 0101 0103 0102
姓名 赵六 张三 王五 李四
年龄 20 20 19 18
年级 1 2 3 2
①记录和属性 记录是行,属性是列,域是属性的取值范 围。
11 关系模式
定义: 关系数据模型中的数据结构就是关系模式,即是对 关系的描述。关系模式通常可以简记为:
R (A1,A2,…,An)
R: 关系名 A1,A2,…,An : 属性名
如:STUDENT(SNO,SNAME,SEX,SAGE,DEPT)或学生(学号,姓 名,性别,年龄,系)
12 关系的完整性约束
相关文档
最新文档