跳转到内容

DBMS/数据库设计

来自维基教科书,开放世界中的开放书籍
实体
它仅仅代表数据库的字段,例如:

雇员

实体集
不同字段的集合
关系
关系集
属性可能值的集合称为

属性的域,例如:属性婚姻状况的域有四个值:单身、已婚、离婚或丧偶。

属性月份的域有十二个值,从一月到十二月。

关键属性
对每个实体实例而言是

唯一的属性(或属性组合),例如:帐户的帐户号码、雇员的雇员 ID 等。

属性
例如:性别
组合属性
关系的度
参与关系的实体类型的数量

数据库

关系的基数
此的最小值和最大值

连接性称为关系的基数,例如:一对一、一对多、多对多

弱实体
依赖于其他实体以其存在的实体,并且
doesn’t have key attribute (s) of its own e.g. : spouse of employee
识别关系
非识别关系
区分符

建模概念

  • 专业化
  • 泛化
  • 分类
  • 聚合

规范化

[编辑 | 编辑源代码]

规范化是确定哪些属性应该

be grouped together in a relation.The process of normalization was 

由 E.F. CODD 首次提出的。规范化是评估和修正关系模式以最小化数据冗余,从而减少异常的过程。

第一范式

[编辑 | 编辑源代码]

根据 1NF 的规则,表中的属性不能包含多个值。它应该只包含原子值。

第二范式

[编辑 | 编辑源代码]

第二范式以**函数依赖**属性为特征。如果一个关系处于第一范式,并且每个非关键属性都完全且函数依赖于主键,则该关系处于第二范式。

第三范式

[编辑 | 编辑源代码]

传递依赖:如果一个关系处于第二范式,并且

no transitive dependencies exist.

假设 A、B 和 C 是关系 (R) 的三个属性,那么如果 A->B(B 依赖于 A)B->C(C 依赖于 B),那么可以说“C”传递依赖于“A”。

Boyce-Codd 范式 (BCNF)

[编辑 | 编辑源代码]

BCNF 基于函数依赖,这些依赖考虑了关系中所有候选键。对于只有一个候选键的关系,第三范式和 BCNF 是等效的。**当且仅当每个决定因素都是候选键时,关系才处于 BCNF。** 那么什么是决定因素?考虑以下函数依赖:A→B,其中 A 和 B 是关系 R 中的属性。它表示 B 函数依赖于 A。这里 A 被称为决定因素,B 是依赖项。

BCNF 比 3NF 稍强。

第四范式

[编辑 | 编辑源代码]
删除多值依赖

第五范式

[编辑 | 编辑源代码]

删除任何剩余的异常。在这个范式中,我们分离语义相关的多个关系。

**异常**可能包括:插入异常删除异常修改/更新异常。删除任何剩余的异常。在这个范式中,我们分离语义相关的多个关系。

华夏公益教科书