数据库系统原理回顾(二)关系数据库部分

本贴最后更新于 2284 天前,其中的信息可能已经时异事殊

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)

  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    340 引用 • 708 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...