我在北纬36度
数据库系统原理回顾(二)关系数据库部分.md

png

1.1. 基本特征

1.1.1. 关系数据模型组织数据

1.2. 关系数据库的产生和发展

1.2.1. 1962

信息代数

1.2.2. 1970

IBM ACM 关系数据模型

1.2.3. 20.70末

IBM SystemR SQL/DS INGRES

1.2.4. 20.80后

关系模型

2. 关系数据模型

2.1. 关系数据结构

2.1.1. 基本术语

参见: 关系

表名
若干行

关系

参见:

基本关系
查询表
视图表

参见: 属性

字段或属性

属性

参见:

元或度
属性的个数

元祖

分量

参见: 相同 (元组中一个属性值)

码或键

属性组或属性能够用来唯一标识该元组

参见: 相反 (基于码来定义)

超码或超键

在码中移去某个属性仍然是该关系的码

候选码或候选键

与超码相反,在关系中的码不能移去某个属性,否则不是该关系的码

参见: 从候选码中选择一个用来唯一标识该元组 (基于候选码定义)

主码或主键

从候选码中选择一个用来唯一标识该元组

参见: 与超码相反,在关系中的码不能移去某个属性,否则不是该关系的码 (基于候选码定义)

全码或全键

一个关系中所有属性集合

主属性和非主属性

包含候选码的
不包含候选码的

外码或外键

在关系中某一个属性不是候选码或候选键而是另外一个关系的主码

参照关系和被参照关系

参照关系外码所在的关系
被参照关系外码作为主码的关系

取值范围

数据类型

关系模式

关系模式
关系

关系数据库

关系模型作为数据逻辑模型,并采用关系作为数据的组织方式

相同(, 元祖)

参见: 分量 (元组中一个属性值)

相反(超码或超键, 候选码或候选键)

参见: 属性组或属性能够用来唯一标识该元组 (基于码来定义)

2.1.2. 关系数据库的要求

每一个属性不可分解

每一个关系仅仅有一个关系模式

每一个关系模式中的属性必须命名

同一个关系中不允许候选码或候选值完全相同的元组

在关系中元组的顺序无关紧要

在关系中属性的顺序无关紧要

2.2. 关系操作集合

2.2.1. 基本的关系操作

参见: 关系数据语言 (使用)

查询

选择
投影
连接
笛卡儿积
传统的集合运算(, , , 笛卡儿积)

参见: 传统的集合运算

专门的关系运算(选择, 投影, 连接, )

参见: 专门的关系运算

操作

插入
删除
修改
集合操作(插入, 删除, 修改)

2.2.2. 关系数据语言

参见: 基本的关系操作 (使用)

特点

高度非过程化
用户不必请求数据库管理员为建立特殊存取路径,由DBMS优化机制来完成
用户不必请求循环和递归来完成数据的重复操作

分类

代数
关系代数语言

通过关系操作来表达查询要求

逻辑
关系演算语言

用谓词来表达查询要求

关系演算

域关系演算

结构化查询语言

SQL

介于关系代数和关系演算的语言

查询功能

数据定义语言DDL

数据操纵语言DML

数据控制语言DCL

语言具有完整的表达能力,非过程化语言,功能强,能够独立嵌入高级语言(代数, 逻辑, 结构化查询语言)

2.2.3. 关系代数

三要素

操作对象
操作符
操作结果

分类

传统的集合运算

参见: 传统的集合运算

属性个数不变,去重复的元组

笛卡儿积

新关系元数=n+m

专门的关系运算

参见: 专门的关系运算

一元专门关系

选择运算

表示

形式

select 关系名 where 条件

投影运算

表示

表示

projection 关系名(属性名)

二元专门关系

连接运算

表示

形式

join 关系名1 and 关系名2 where 条件

除运算

2.3. 关系完整性约束

2.3.1. 数据完整性

数据库中数据的正确性、相容性、一致性

现实世界应用需求的数据
数据库中数据之间的

2.3.2. 分类

实体完整性约束

关系中的主属性,主码不能为空

参照完整性约束

定义外码与主码之间的应用规则,是对关系间引用数据的一种约束

用户定义完整性约束

针对某一应用环境的完整性约束条件,反映了某一具体应用所涉及的数据满足的需求

2.3.3. 关系模型完整性约束的检验

3. 关系数据库规范化理论

3.1. 关系模式中可能存在的冗余和异常

3.1.1. 分类

数据冗余

同一数据被反复存储

更新异常

数据冗余造成数据不一致以至于更新异常

插入异常

不能执行插入操作

删除异常

不应该删除的被删除掉

3.1.2. 数据依赖

参见: 函数依赖和关键字

数据依赖是关系模式任何一个关系中取值所满足的约束条件

通过一个关系中的各个元组的某些属性值之间相等与否体现出来

3.2. 函数依赖和关键字

参见: 数据依赖

3.2.1. 函数依赖

完全函数依赖

关系R, 属性X, 属性Y,

Y唯一值与X对应 称X->Y(X函数决定Y函数或Y依赖于X函数)

部分函数依赖

关系R,属性X,属性Y,

X->Y, 若X存在真子集x满足x->y

传递函数依赖

关系R属性XYZ

X->Y
Y!->X Y->Z =>X->Z

3.2.2. 候选关键字

R关系 U属性全部集合 若X->U,则称X为R候选关键字

3.3. 范式与关系规范化过程

3.3.1. 第一范式

设R为关系,如果R中的某一列和行的交点处取值都是不可再分的

3.3.2. 第二范式

设R为关系,R为第一范式,且所有非主属性都完全函数依赖于候选关键字

3.3.3. 第三范式

设R为关系,R为第二范式,且所有非主属性都传递依赖于候选关键字

3.3.4. BCNF

高一级转换(第一范式, 第二范式, 第三范式, BCNF)