《数据库原理与应用》第三章--章节总结
3.1****关系数据模型和关系数据库
关系模型包括其数据体系结构、操作功能集以及完整性规则三个核心要素作为其核心内容。
数据操作:
- 基本的关系运算包括并集(Union)、交集(Intersection)、差集(Difference)以及广义笛卡尔乘积(Generalized Cartesian Product)。
- 特定的集合运算涉及选择(Selection)、投影(Projection)、连接(Join)以及除法操作(Division)。
- 数据处理过程涵盖查询(Query)、插入(Insert)、删除(Delete)以及修改(Update),通常简称为增删改查。
关系模型的操作实体及其输出结果是以集合或表的形式存在(包括可能为空的情况),而不以单一的数据行为单位进行处理。
非关系模型中,各个数据记录之间是通过指针等方式连接
数据完整性操作
- 该系统在设计时充分考虑了与现实世界的应用场景数据的兼容性和一致性。
- 该系统的数据库设计确保了内部数据间的兼容性和一致性。
3.2****关系模型的基本术语与形式化定义
基于单一的数据组织方式来表示实体及其联系的关系就是二维表。
基本术语:
- 关系即是二维表结构;其名称由对应表格决定。
- 属性即二维表列;每个列都有一个名字即属性名;列中的数据称为属性值;列的数量即为关系的元数(若一个二维表有n个列,则称其为n元关系)。
- 值域是指属性可能取之范围。
- 元组即二维表中一行数据;每个元组都有n个分量。
- 关系模式是二维表框架或表头结构;可视为数据类型;而关系则是该数据类型的实例。
- 关系数据库是由多个满足一定条件的关系集合而成。
- 候选键是指能唯一标识一行数据而不含冗余属性的关键组合(若一个关系有多个候选键,则可任选其一作为主键)。
- 主键是指不可空且唯一标识行的数据的关键字段(一个关系只允许有一个主键)。
- 主属性是候选码组成部分;非主属性是非候选码字段。
- 外键是指在两个不同实体之间建立联系的关键字段(若某字段为主外键,则它必定也是某个内码)。
形式化定义
——关系的形式化定义
笛卡尔积
从本质上讲,这相当于一个二维表格结构;每一个行数据单元格都代表一个独立的元组;这些元组的整体构成了完整的笛卡尔积结果。
规范化的知识表示方法可将实体间的关系视为二维表格的形式。对于每一列的数据进行命名操作,则可将其定义为该表格的属性字段。其中涉及n个不同且互不相同的属性字段。为了保证命名的一致性和避免混淆,在同一个表格中所有属性字段的名称必须互不相同。
——对关系的限定
- 在关系中定义的各项属性应为不可分割的基本单位。
- 表内各列所定义的数据类型具有固定性,并且每个数据单元都源自同一值域。
- 各列间可共享相同的数值来源。
- 关系表内各列之间的排列顺序无关紧要。
- 数据行之间的排列位置不影响整体信息内容。
- 不允许存在完全相同的元组。
3.3****关系代数
关系代数的运算对象是关系,运算结果也是关系
——关系代数的运算
在关系代数中,运算符主要分为四个类别:集合运算符也称作基本操作、专门的关系运算符也被称为专门的操作、比较运算符以及逻辑运算符(见第P37页)。
逻辑运算符的优先级(左高右低):括号、θ、¬、∧、∨
- 传统的集合运算:即为将关系主要地视为元组的集合。其中涉及集合的广义笛卡尔乘积运算法则、并集运算法则、交集运算法则以及差集运算法则。
(广义笛卡尔积不要求参加运算的两个关系具有相同的目数)
常见的关系操作涉及选择、投影、连接和除(其中选择和投影属于单目操作而连接与除则为双目操作)
- 筛选:在特定的关系中筛选出符合预设标准(通过逻辑公式描述)的记录以形成新的结果集。
- 抽取:基于表R提取所需字段以生成新的数据集合。
(投影和选择一起使用时,投影写在选择的外面)
(若投影后有重复元组,应去掉)
使用投影的一般步骤:1找表;2选择元组;3投影属性
连接(P42-44):用于将相互相关联的两个关系结合在一起以形成一个新的关系这一过程通过连接属性(字段)来完成
连接运算主要有以下几种形式:
1、θ连接
2、等值连接(θ连接的特例)
3、自然连接(去掉等值连接的重复列,即等值连接的特例)
4、外部连接(外连接)(有三种形式:左外连接、右外连接、全外连接)
5、半连接
- 除(P45)(常用于解决“查询...所有的/全部的...”类问题)
设关系S的属性是关系R的一部分,则R÷S为这样一个关系:
此关系的属性包含所有属于集合 R 但不属于集合 S 的属性;在 R 除以 S 的结果中(即 R÷S),任意一个元素都是来自原始集合 R 中某个元素的部分。须满足以下条件:对于每一个属于 R÷S 的元素 t,在与每一个属于 S 中的元素进行连接时,所得结果必然是原关系 R 中存在的某个元素。
除法的一般形式:设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则 :
R(X,Y)÷S(Y,Z)= R(X,Y)÷∏Y(S)
鉴于关系除运算较为复杂,并为了简化阐述过程而引入了一个概念称为"象集";具体而言,在关系模式中设R(X,Y),其中X和Y均为属性组;我们有以下定义式子表示法形式化地描述这一概念:R(X) ÷ S = \{ t_{\small \boldsymbol{X}} \mid ∀s ∈ S, t_{\small \boldsymbol{X}} = x, R(x,s) ∈ 𝔽 }
Yx = {t[Y] | t∈R∧t[X]=x}
t[Y]和t[X]分别表示R中的元组t在属性组Y和X上的分量的集合
