【数据库】第2章 关系数据库
本文所属《数据库系统原理》分类专栏,相关文章导航请点击《数据库系统原理》目录汇总贴
一、关系数据结构及形式化定义
【基本概念】
1、域(domain)
是一组具有相同数据类型的值的集合
2、笛卡尔积
是域上的一种集合运算
一个域允许不同取值个数称为这个域的基数
3、关系
关系是笛卡尔积的有限子集,所以关系也是一张二维表,表的每一行对应一个元组,表的每一列对应一个域。每一列都要起一个名字,称为属性。若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称为属性组为候选码。
若一个关系有多个候选码,则选定其中一个为主码。候选码的诸属性称为主属性,不包括在任何候选码中的属性称为非主属性,或非码属性。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属于是这个的候选码,称为全码。
关系可以有三种类型:
- 基本关系(又称基本表、基表)
- 查询表
- 视图表
基本关系具有以下6个性质:
- 1、列是同质的,即每一列中的分量是同一类型的数据,来自同一域。
- 2、不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
- 3、列的顺序无所谓,即列顺序是无关紧要的
- 4、任意两个 元组的候选码不能取相同的值
- 5、行的顺序无所谓,即每一个分量都必须是不可分的数据项
- 6、分量必须取原子值,即每一个分量都必须是不可分的数据项
4、关系模式
关系的描述称为关系模式。
它可以形式化的表示为:R( U, D, DOM, F )
其中R为关系名,U为组成关系的属性名集合,D为U中属性所来自的域,DOM是属性向域的映像集合,F 为属性间数据的依赖关系集合。
5、关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
关系数据库的“型”:
也称为关系数据库模式,是对关系数据库的描述。关系数据库的“值”:
是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
6、关系模型的存储结构
略。
二、关系操作
1、基本的关系操作
关系模型中常用的关系操作包括
- 查询操作
- 插入、删除、修改操作
查询操作又可以分为选择
、投影
、连接
、除
、并
、差
、交
、笛卡尔积
等。
其中选择
、投影
、并
、差
、笛卡尔积
是5种基本操作。
关系操作的特点是集合操作方式,即操作的对象的结果都是集合。这种操作方式也称为一次一集合的方式。
2、关系数据库语言的分类
- 关系代数语言(如ISBL)
- 关系演算语言
- 元组关系演算语言(如ALPHA、QUEL)
- 域关系演算语言(如QBE)
- 具有关系代数和关系演算双重特点的语言(如SQL)
三、关系的完整性
1、实体完整性
【实体完整性规则】:
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。所谓空值就是“不知道”或“不存在”或“无意义”的值。
对于实体完整性规则说明如下:
1、实体完整性规则是针对基本表关系而言的。一个基本表通常对应现实世界一个实体集。
2、现实世界中的实体是可区分的。即它们具有某种唯一性标识。
3、相应地,关系模型中以主码作为唯一性标识
4、主码中的属性即属性不能取空值
2、参照完整性
【参照完整性的定义】:
设F是基本关系R的一个或一组属性,但不是关系R的码、Ks 是基本关系S的主码。如果F与Ks 相对应,则称F是R是外码,并称基本关系R为参照关系,基本关系被参照关系或目标关系。
【参照完整性规则】:
若属性(或属性组)F是基本关系R的外码,它与基本准关系S的主码Ks 相对应,则对于R中第一个元组F上的值必须:
1、或者取空值
2、或者等于S中某个元组的主码值
参照完整性规则就是定义外码与主码之间的引用规则。
3、用户定义的完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
四、关系代数
1、传统的集合运算
传统的关系运算起源于数学的集合论
并
: U ∪ S
t属于U或者属于S差
: R - S
t属于R且不属于S交
: R ∩ S
r属于R且也属于S笛卡尔积
: R x S
R中任意与S任意进行组合
2、专门的关系运算
数据库中特有的运算规则
选择
: δF(R)
对行进行操作,F是选择条件,R是关系表名。投影
: ∏A(R)
对列进行操作,A为R的属性列。连接
: R⋈S
分为一般连接、等值连接、自然连接(特殊的等值连接)、外连接、左外连接、右外连接。除运算
: R÷S
同时从行和列角度进行运算,
按我目前的理解,它像是一种比对操作。
五、*关系演算(选学)
略。
【小结与习题】
试述关系模型的三个组成部分。
(1)关系的数据结构
(2)关系数据模型的操作集合
(3)关系模型的完整性约束。简述关系数据库语言的特点和分类。
关系数据语言可以分为三类:
(1)关系演算语言:元组关系演算语言、域关系演算语言。
(2)关系代数语言:通过关系代数运算符完成运算,包括集合运算符、专门的关系运算符,有并、差、交、笛卡尔积、选择、投影、连接、除。
(3)SQL语言:具有关系代数和关系演算双重特点的语言定义并理解下列术语,说明它们之间的联系与区别。
(1)域,笛卡尔积,关系,元组,属性。
域
:域是具有相同数据类型的值的集合。笛卡尔积
:给定一组域D1,D2,…….,Dn,允许其中某些域是相同的。D1,D2,…….,Dn的笛卡尔积为:D1×D2×…….×Dn={(d1,d2,d3……,dn)|di∈Di,i=1,2,…,n},是所有域 取值的一个组合,并且不能有重复。关系
:D1×D2×…….×Dn的子集叫做在域D1,D2,…….,Dn上的关系,表示为 R(D1,D2,…….,Dn) R:关系名,n:是关系的目或度,关系也是一个二维表,表的每一行对应一个元组,表的每一列对应一个域。元组
:笛卡尔积中的每一个元素叫做一个元组或简称元组。属性
:关系中不同的列可以对应相同的域,为了加以区分,必须给每个列起一个名字,成为属性。n目关系必有n个属性。
(2)主码,候选码,外码。主码
:若一个关系有多个候选码,则选定其中一个为主码。候选码
:若关系中的某一组属性组的值能唯一的标识一个元组,则称为该属性组为候选码。外码
:关系R中的一个属性组,他不是R的候选码,但它与另一个关系的候选码相对应,则称这个属性组为R的外码(外键),两个关系通常用外码相互连接。
(3)关系模式,关系,关系数据库。关系模式
:关系模式是型,关系模式是对关系的描述,关系模式可以形象化地表示为:R(U,D,DOM,F)。是对关系的描述,静态的、稳定的。关系
:关系:D1×D2×…….×Dn的子集叫做在域D1,D2,…….,Dn上的关系,表示为 R(D1,D2,…….,Dn) R:关系名,n:是关系的目或度,关系也是一个二维表,表的每一行对应一个元组,表的每一列对应一个域。关系是值,是关系模式在某一时刻的状态或者内容,动态的、随时间不断变化的。关系数据库
:在一个给定的应用领域中,所有关系的集合构成的一个关系数据库
关系数据库模式是对关系数据库的描述。关系模式在某一时刻对应的关系的集合,通常称为关系数据库。举例说明关系模式和关系的区别。
关系模式是静态的,比如一张二维表的表头,即有哪些构成,每个列的名称类型长度等。
关系是动态的,就是一张二维表的具体内容,就是除了标题以外的数据行,由于表数据经常被修改,插入,删除,所以不同时刻、关系可能不一样、其实,关系就是数学中的集合了,每一行就是集合的一个元素。
试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。空值就是“不知道”或“不存在”或“无意义”的值。
参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
- 或者取空值(F的每个属性值均为空值)
- 或者等于S中某个元组的主码值。
当属性F本身不是主属性,则可以取空值,否则不能取空值。
略。
试述等值连接与自然连接的区别与联系。
自然连接是一种特殊的等值连接(自然连接是除去重复属性的等值连接)。
1、自然连接一定是等值连接,但等值连接不一定是自然连接。
2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。关系代数的基本运算有哪些?如何用这些基本运算表示其他运算。
基本的运算:并
、差
、笛卡尔积
、选择
和投影
。
其他三种运算交
、连接
、除
,均可以用这五种基本运算表达。
本章感悟:
关系代数那一节还需要查资料加强了解,对那四种专门的关系运算理解不是很深(尤其是连接运算和除运算)。另外我想说,数据库这前两章好难啃啊,概念太多,脑子很乱。
本章学习过程中浏览过的博文:
CSDN -数据库关系代数详解
CSDN -王珊的第五版数据库系统概论–第二章总结概述
CSDN -《数据库系统概论》| 第二章 关系数据库 知识梳理