第二讲 关系数据库理论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R: 关系名
R (A1,A2,…,An)
A1,A2,…,An : 属性名
如:STUDENT(SNO,SNAME,SEX,SAGE,DEPT)
13
关系模式与关系
关系的内涵和外延
关系的内涵是关系模式。它是静态的、稳定的,是对 关系的描述。 关系的外延是关系(的值)。任何给定的时刻,出现 在关系中的所有元组的集合,它是动态的、随时间变化的 ,反映了关系模式在某一时刻的状态或内容。
17
关系的完整性约束
例1:职工关系 EMP(ENO, ENAME, DNO)
部门关系 DEPT(DNO, DNAME)
在EMP中,DNO是外码。EMP中每个元组在DNO 上的值允许有两种 可能: ① 取空值。这说明这个职工尚未分配到某个部门; ② 若非空值,则DNO的值必须是DEPT中某个元组中的DNO值。表 示此职工不可能分配到一个不存在的部门。
32
专门的关系运算
注意: 因为投影运算的属性表不一定包含关系的码,经投 影运算后,结果中很可能出现重复元组,消除重复元组 后所得关系的元组将小于等于原关系的元组数。如果属 性列中包含码,则不可能出现重复元组,投影运算后所 得关系的元组与原关系一样。 投影不仅会取消一些列,也可能取消某些行。但在 实际的SQL实现时要靠关键字来完成。
14
关系的完整性约束
类型 实体完整性 参照完整性
说明 约束主键的值 约束外键的值
用户自定义完整性(域完整性)
约束其他字段的值
15
关系的完整性约束
(1)实体完整性(PRIMARY KEY)
规则:设属性A是基本关系R的主属性(码的组成部分),则属性A 不能空值(NULL)和码不能出现重复值。 说明: • 实体完整性是针对基本关系的; • 本规则要求基本关系中的元组在组成码属性上不能有空值; • 现实世界中的实体是可区分的,即它们具有某种唯一性标识( 不取重复值)
SNAME
丁一 王二 张三 李四
SDEPT
计算机 计算机 数学 信息
SAGE
19 20 21 19
例2:求计算机系叫的张三学生。 σ
SDEPT=‘计算机’^SNAME=‘张三’(S)
96004 96005
刘五
赵六
数学
计算机
20
22
96006
31
专门的关系运算
② 投影( Select ) ∏(pi) 从一个关系出发构造其垂直子集的运算,即结果关 系由运算分量中的某些列组成,并消去重复的元组。 一般定义为:关系R在域列A上的投影: ∏A(R)={t[A]|t∈R} ∏表示投影运算符;A为R中的属性列,R是运算对象的 关系,写在∏之后用()括起来。
7
关系代数的基本术语
定义3: 关系
D1×D2×…×Dn的子集叫作在域D1,D2, …,Dn上的关系,记为R(D1,D2,…,Dn)。其中R是关系的名, Di(i=1,2,…,n)是关系的域,n是关系的目或度(Degree)。
一般说来,只有笛卡儿积的子集才是有意义的。
关系就是一张二维表。 行数:元组的个数,即笛卡儿积的基数; 列数:域的个数。
1
《数据库系统及应用》
主讲人:陈业斌 教授
安徽工业大学
2
第二讲 关系数据库理论 目
01
02 03
关系代数的基本术语
关系模式与关系 关系的完整性
录
04
关系运算
3
关系数据库的奠基人
E.F.Codd,英国人,1923生于英格兰中部波 特兰。第二次世界大战时应征入伍,在皇家 空军服役。 大战结束后,到英国牛津大学数 学专业学习,1963年获得硕士学位,1965年 又获得博士学位。 60年代后期开始数据库研究, 1970年E.F.Codd 博士提出关系模型概念,他因此获得1981年 的ACM图灵奖。
18
关系的完整性约束
职工表(EMP)
职工号 部门编号 姓名 … 9801 9802 9803 9804 9805 01 01 02 03 张三 李四 王五 赵六 钱七
部门表(DEPT)
部门编号 部门名称 …
01 02 03 04
经理办公室 人事部 公关部 技术部
外部关系码
关系主码
19
关系的完整性约束
23
传统的集合运算
① 并(Union)
关系R和S的并记为R∪S,结果仍为n度关系, 由或属于R或属于S的元组组成。
R
S R∪S
24
传统的集合运算
② 差(Minus)
关系R和S的差记为R-S,结果仍为n度关系,由属于R而不 属于S的元组组成。
R R-S
S
25
传统的集合运算
③ 交(Intersect)
16
关系的完整性约束
(2)参照(引用)完整性(FOREIGN KEY)
规则:基本关系R中含有与另一个基本关系S的主码相对应的属性组F (F称为R的外码),则对于R中的每个元组在F上的值必须为: ① 或者取空值(F的每个属性值均为空值); ② 或者等于S中某个元组的主码值 引用完整性约束是不同关系之间或同一关系的不同元组间的约束 。 本规则要求不允许引用不存在的元组;
E.F.Codd 博士
关系数据库之父 美国工程院院士
4
关系代数的基本术语
关系理论是建立在集合代数理论基础上的,有着坚实的数学基础
定义1: 域(Domain)是一组具有相同类型的值的集合(即 每个属性的取值范围)。
一组值的集合,这组值具有相同的数据类型
例:整数集合{0,1};长度小于5的字符串集合等都可以是域;全体实数的 集合。
5
关系代数的基本术语
定义2: 笛卡尔积
给定一组域D1,D2,…,Dn, D1,D2,…,Dn的笛卡儿积为 D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n} 其中每一个元素(d1,d2,…,dn)叫做一个n元组。元组中的每 一个值di叫做一个分量。
度(n):参与笛卡儿积的域的个数,它表示了每一个元组中分量的个数。 基:域中可取值的个数。
关系代数的基本术语
如果某一个关系中的属性(或属性集合)在另一个关系中是主码,则称该属性
③ 外码(Foreign Key -- FK)
(或属性集合)是外码。 学生关系 课程关系 学习成绩关系
主码
学号 姓名 0101 0102 0103 0104 张三 李四 王五 赵六 所在系 计算机 计算机 计算机 计算机 课程号 C01 C02 C03 C04
6
关系代数的基本术语
例:设有域
D1=姓名集合(NAME)={王三,丁平}; D2=职业集合(JOB)={工人,农民,商人}; D3=住址集合(ADDR)={北京,上海,广州};
则 D1×D2×D3 = {
(王三,工人,北京), (王三,工人,上海), (王三,工人,广州), (王三,农民,北京), (王三,农民,上海), (王三,农民,广州), (王三,商人,北京), (王三,商人,上海), (王三,商人,广州), (丁平,工人,北京), (丁平,工人,上海), (丁平,工人,广州), (丁平,农民,北京), (丁平,农民,上海), (丁平,农民,广州), (丁平,商人,北京), (丁平,商人,上海), (丁平,商人,广州)} D1、D2、D3 的基分别为2,3,3,所以笛卡儿积的基为 MD1×D2×D3 = 2×3×3=18;其度为3。
② 关系的码(Key) (或候选码、键)。
如果一个属性(或属性集合)的值能唯一地标识一个关系的元组而 又不含有多余的属性,则称该属性(或属性集合)为关系的码(或候 选码,也称键)。 每个关系都有一个且只有一个主码(Primary Key)。 码的属性称为主属性,不包含在任何码中的属性称为非主属性。
10
例2:学生实体及其内部的联系
学生(学号,姓名,性别,专业号,年龄,班长)
学号 801 802 803 804 805 姓名 张三 李四 王五 赵六 钱七 性别 女 男 男 女 男 专业号 01 01 01 02 02 年龄 19 20 20 20 19 802 805 班长 802
20
关系的完整性约束
29
专门的关系运算
例:设有学生-课程关系数据库,如下所示:
S
SNO
96001 96002 96003 96004 96005 96006
SNAME
丁一
王二 张三 李四 刘五
SDEPT
计算机
计算机 数学 信息 数学
SAGE
19
20 21 19 20
C
CNO
C1 C2 C3
CNAME
高等代数 程序设计 微机原理
主码
课程名 高等数学 数据结构 操作系统 数据库
外部码
学时数 100 70 80 60 0101 0101 0102 0104 0104 C01 C02 C04 C04 C03
外部码
学号 课程号 成绩 90 80 90 85 70
11
关系模式
关系模式是型,是对数据本身的特性描述 数据的结构 元组语义以及完整性约束条件 关系是值,是元组的集合 关系模式是用DDL定义的 包括:关系名,属性名以及属性域的类型和长度。
12
关系模式
定义: 关系模型中的数据结构就是关系模式,即是对关系 的描述。它的形式化表示是一个5元组:R(U, D, dom, F)
其中,R:关系名; U:属性名集合; D:域,属性组U中属性所来自的域; F:属性间数据的依赖关系集合
dom:属性向域的映射;
关系模式通常可以简记为
R (U) 或
CT
144 100 44
C4
C5 C6
数据结构
编译原理 操作系统
64
90 32
赵六
计算机
22
SC
SNO
96004
CNO
C3
GRADE
95
96004
96005 96005
C5
C2 C3
70
81 95
30
专门的关系运算
例1:求计算机系的学生。 σ
SDEPT=‘计算机’(S)
SNO
96001
96002 96003
关系R和S的并记为R∩S,结果仍为n度关系,由既属于R又属于S 的元组组成。
R
S R∩ S
R∩S=R–(R-S)
26
广义笛卡儿积
广义笛卡儿积
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个元组。
22
传统的集合运算
定义1. 设给定两个关系R和S,若满足:具有相同的度n,且R中第i 个属性和S中第i个属性必须来自同一个域,则说关系R和S是相容的 。即:关系R和S有相同的度,即有相同的属性个数,且对应的属 性的域相同。 传统集合运算的两个关系必须是相容的。
约定:大写字母表示命名关系和关系的属性;小写字母表示元组。
8
关系代数的基本术语
① 域和属性 域是属性的取值范围,属性是列。属性名可以是域 名,但有时不同的列名可以定义在同一域中,这时属性 名就不能与域名同名了。
学号 姓名 年龄 0104 赵六 20 0101 张三 20 0103 王五 19 0102 李四 18 年级 1
2 3 2
9
关系代数的基本术语
27
广义笛卡儿积
R ×S
例: R
A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 D c2 c2 c1
S
A a1 a1 a2
A a1 a1 a1 a1 a1 a1 a2 a2 a2
B b1 b1 b1 b2 b2 b2 b2 b2 b2
C c1 c1 c1 c2 c2 c2 c1 c1 c1
例3:选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值 :
(1)选修关系中的主属性,不能取空值
(2)只能取相应被参照关系中已经存在的主码值
21
关系的完整性约束
(3)域完整性(用户自定义完整性)
规则:要求属性值必须取自其对应的值域。 例:学生的性别只能是:‘男’和‘女’ CONSTRAINT SX CHECK (性别 IN (‘男’,‘女’)
A′ a1 a1 a2 a1 a1 a2 a1 a1 a2
B′ b2 b3 b2 b2 b3 b2 b2 b3 b2
D c2 c2 c1 c2 c2 c1 c2 c2 c1
记 录 个 数 9
度数 6
Leabharlann Baidu
28
专门的关系运算
① 选择(Select) σ (sigma) 从一个关系中选出所有满足指定条件的元组。即在给定 关系中,从水平方向上选取符合给定条件的元组的子集。 一般定义为: σ F(R)={t|t∈R∧F(t)=‘True’} 读作关系R关于公式F的选择运算,表示从R中选择那 些满足公式F的元组。
R (A1,A2,…,An)
A1,A2,…,An : 属性名
如:STUDENT(SNO,SNAME,SEX,SAGE,DEPT)
13
关系模式与关系
关系的内涵和外延
关系的内涵是关系模式。它是静态的、稳定的,是对 关系的描述。 关系的外延是关系(的值)。任何给定的时刻,出现 在关系中的所有元组的集合,它是动态的、随时间变化的 ,反映了关系模式在某一时刻的状态或内容。
17
关系的完整性约束
例1:职工关系 EMP(ENO, ENAME, DNO)
部门关系 DEPT(DNO, DNAME)
在EMP中,DNO是外码。EMP中每个元组在DNO 上的值允许有两种 可能: ① 取空值。这说明这个职工尚未分配到某个部门; ② 若非空值,则DNO的值必须是DEPT中某个元组中的DNO值。表 示此职工不可能分配到一个不存在的部门。
32
专门的关系运算
注意: 因为投影运算的属性表不一定包含关系的码,经投 影运算后,结果中很可能出现重复元组,消除重复元组 后所得关系的元组将小于等于原关系的元组数。如果属 性列中包含码,则不可能出现重复元组,投影运算后所 得关系的元组与原关系一样。 投影不仅会取消一些列,也可能取消某些行。但在 实际的SQL实现时要靠关键字来完成。
14
关系的完整性约束
类型 实体完整性 参照完整性
说明 约束主键的值 约束外键的值
用户自定义完整性(域完整性)
约束其他字段的值
15
关系的完整性约束
(1)实体完整性(PRIMARY KEY)
规则:设属性A是基本关系R的主属性(码的组成部分),则属性A 不能空值(NULL)和码不能出现重复值。 说明: • 实体完整性是针对基本关系的; • 本规则要求基本关系中的元组在组成码属性上不能有空值; • 现实世界中的实体是可区分的,即它们具有某种唯一性标识( 不取重复值)
SNAME
丁一 王二 张三 李四
SDEPT
计算机 计算机 数学 信息
SAGE
19 20 21 19
例2:求计算机系叫的张三学生。 σ
SDEPT=‘计算机’^SNAME=‘张三’(S)
96004 96005
刘五
赵六
数学
计算机
20
22
96006
31
专门的关系运算
② 投影( Select ) ∏(pi) 从一个关系出发构造其垂直子集的运算,即结果关 系由运算分量中的某些列组成,并消去重复的元组。 一般定义为:关系R在域列A上的投影: ∏A(R)={t[A]|t∈R} ∏表示投影运算符;A为R中的属性列,R是运算对象的 关系,写在∏之后用()括起来。
7
关系代数的基本术语
定义3: 关系
D1×D2×…×Dn的子集叫作在域D1,D2, …,Dn上的关系,记为R(D1,D2,…,Dn)。其中R是关系的名, Di(i=1,2,…,n)是关系的域,n是关系的目或度(Degree)。
一般说来,只有笛卡儿积的子集才是有意义的。
关系就是一张二维表。 行数:元组的个数,即笛卡儿积的基数; 列数:域的个数。
1
《数据库系统及应用》
主讲人:陈业斌 教授
安徽工业大学
2
第二讲 关系数据库理论 目
01
02 03
关系代数的基本术语
关系模式与关系 关系的完整性
录
04
关系运算
3
关系数据库的奠基人
E.F.Codd,英国人,1923生于英格兰中部波 特兰。第二次世界大战时应征入伍,在皇家 空军服役。 大战结束后,到英国牛津大学数 学专业学习,1963年获得硕士学位,1965年 又获得博士学位。 60年代后期开始数据库研究, 1970年E.F.Codd 博士提出关系模型概念,他因此获得1981年 的ACM图灵奖。
18
关系的完整性约束
职工表(EMP)
职工号 部门编号 姓名 … 9801 9802 9803 9804 9805 01 01 02 03 张三 李四 王五 赵六 钱七
部门表(DEPT)
部门编号 部门名称 …
01 02 03 04
经理办公室 人事部 公关部 技术部
外部关系码
关系主码
19
关系的完整性约束
23
传统的集合运算
① 并(Union)
关系R和S的并记为R∪S,结果仍为n度关系, 由或属于R或属于S的元组组成。
R
S R∪S
24
传统的集合运算
② 差(Minus)
关系R和S的差记为R-S,结果仍为n度关系,由属于R而不 属于S的元组组成。
R R-S
S
25
传统的集合运算
③ 交(Intersect)
16
关系的完整性约束
(2)参照(引用)完整性(FOREIGN KEY)
规则:基本关系R中含有与另一个基本关系S的主码相对应的属性组F (F称为R的外码),则对于R中的每个元组在F上的值必须为: ① 或者取空值(F的每个属性值均为空值); ② 或者等于S中某个元组的主码值 引用完整性约束是不同关系之间或同一关系的不同元组间的约束 。 本规则要求不允许引用不存在的元组;
E.F.Codd 博士
关系数据库之父 美国工程院院士
4
关系代数的基本术语
关系理论是建立在集合代数理论基础上的,有着坚实的数学基础
定义1: 域(Domain)是一组具有相同类型的值的集合(即 每个属性的取值范围)。
一组值的集合,这组值具有相同的数据类型
例:整数集合{0,1};长度小于5的字符串集合等都可以是域;全体实数的 集合。
5
关系代数的基本术语
定义2: 笛卡尔积
给定一组域D1,D2,…,Dn, D1,D2,…,Dn的笛卡儿积为 D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n} 其中每一个元素(d1,d2,…,dn)叫做一个n元组。元组中的每 一个值di叫做一个分量。
度(n):参与笛卡儿积的域的个数,它表示了每一个元组中分量的个数。 基:域中可取值的个数。
关系代数的基本术语
如果某一个关系中的属性(或属性集合)在另一个关系中是主码,则称该属性
③ 外码(Foreign Key -- FK)
(或属性集合)是外码。 学生关系 课程关系 学习成绩关系
主码
学号 姓名 0101 0102 0103 0104 张三 李四 王五 赵六 所在系 计算机 计算机 计算机 计算机 课程号 C01 C02 C03 C04
6
关系代数的基本术语
例:设有域
D1=姓名集合(NAME)={王三,丁平}; D2=职业集合(JOB)={工人,农民,商人}; D3=住址集合(ADDR)={北京,上海,广州};
则 D1×D2×D3 = {
(王三,工人,北京), (王三,工人,上海), (王三,工人,广州), (王三,农民,北京), (王三,农民,上海), (王三,农民,广州), (王三,商人,北京), (王三,商人,上海), (王三,商人,广州), (丁平,工人,北京), (丁平,工人,上海), (丁平,工人,广州), (丁平,农民,北京), (丁平,农民,上海), (丁平,农民,广州), (丁平,商人,北京), (丁平,商人,上海), (丁平,商人,广州)} D1、D2、D3 的基分别为2,3,3,所以笛卡儿积的基为 MD1×D2×D3 = 2×3×3=18;其度为3。
② 关系的码(Key) (或候选码、键)。
如果一个属性(或属性集合)的值能唯一地标识一个关系的元组而 又不含有多余的属性,则称该属性(或属性集合)为关系的码(或候 选码,也称键)。 每个关系都有一个且只有一个主码(Primary Key)。 码的属性称为主属性,不包含在任何码中的属性称为非主属性。
10
例2:学生实体及其内部的联系
学生(学号,姓名,性别,专业号,年龄,班长)
学号 801 802 803 804 805 姓名 张三 李四 王五 赵六 钱七 性别 女 男 男 女 男 专业号 01 01 01 02 02 年龄 19 20 20 20 19 802 805 班长 802
20
关系的完整性约束
29
专门的关系运算
例:设有学生-课程关系数据库,如下所示:
S
SNO
96001 96002 96003 96004 96005 96006
SNAME
丁一
王二 张三 李四 刘五
SDEPT
计算机
计算机 数学 信息 数学
SAGE
19
20 21 19 20
C
CNO
C1 C2 C3
CNAME
高等代数 程序设计 微机原理
主码
课程名 高等数学 数据结构 操作系统 数据库
外部码
学时数 100 70 80 60 0101 0101 0102 0104 0104 C01 C02 C04 C04 C03
外部码
学号 课程号 成绩 90 80 90 85 70
11
关系模式
关系模式是型,是对数据本身的特性描述 数据的结构 元组语义以及完整性约束条件 关系是值,是元组的集合 关系模式是用DDL定义的 包括:关系名,属性名以及属性域的类型和长度。
12
关系模式
定义: 关系模型中的数据结构就是关系模式,即是对关系 的描述。它的形式化表示是一个5元组:R(U, D, dom, F)
其中,R:关系名; U:属性名集合; D:域,属性组U中属性所来自的域; F:属性间数据的依赖关系集合
dom:属性向域的映射;
关系模式通常可以简记为
R (U) 或
CT
144 100 44
C4
C5 C6
数据结构
编译原理 操作系统
64
90 32
赵六
计算机
22
SC
SNO
96004
CNO
C3
GRADE
95
96004
96005 96005
C5
C2 C3
70
81 95
30
专门的关系运算
例1:求计算机系的学生。 σ
SDEPT=‘计算机’(S)
SNO
96001
96002 96003
关系R和S的并记为R∩S,结果仍为n度关系,由既属于R又属于S 的元组组成。
R
S R∩ S
R∩S=R–(R-S)
26
广义笛卡儿积
广义笛卡儿积
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个元组。
22
传统的集合运算
定义1. 设给定两个关系R和S,若满足:具有相同的度n,且R中第i 个属性和S中第i个属性必须来自同一个域,则说关系R和S是相容的 。即:关系R和S有相同的度,即有相同的属性个数,且对应的属 性的域相同。 传统集合运算的两个关系必须是相容的。
约定:大写字母表示命名关系和关系的属性;小写字母表示元组。
8
关系代数的基本术语
① 域和属性 域是属性的取值范围,属性是列。属性名可以是域 名,但有时不同的列名可以定义在同一域中,这时属性 名就不能与域名同名了。
学号 姓名 年龄 0104 赵六 20 0101 张三 20 0103 王五 19 0102 李四 18 年级 1
2 3 2
9
关系代数的基本术语
27
广义笛卡儿积
R ×S
例: R
A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 D c2 c2 c1
S
A a1 a1 a2
A a1 a1 a1 a1 a1 a1 a2 a2 a2
B b1 b1 b1 b2 b2 b2 b2 b2 b2
C c1 c1 c1 c2 c2 c2 c1 c1 c1
例3:选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值 :
(1)选修关系中的主属性,不能取空值
(2)只能取相应被参照关系中已经存在的主码值
21
关系的完整性约束
(3)域完整性(用户自定义完整性)
规则:要求属性值必须取自其对应的值域。 例:学生的性别只能是:‘男’和‘女’ CONSTRAINT SX CHECK (性别 IN (‘男’,‘女’)
A′ a1 a1 a2 a1 a1 a2 a1 a1 a2
B′ b2 b3 b2 b2 b3 b2 b2 b3 b2
D c2 c2 c1 c2 c2 c1 c2 c2 c1
记 录 个 数 9
度数 6
Leabharlann Baidu
28
专门的关系运算
① 选择(Select) σ (sigma) 从一个关系中选出所有满足指定条件的元组。即在给定 关系中,从水平方向上选取符合给定条件的元组的子集。 一般定义为: σ F(R)={t|t∈R∧F(t)=‘True’} 读作关系R关于公式F的选择运算,表示从R中选择那 些满足公式F的元组。