范式

1 概念

实体:数据描述的实际事物

字段:数据的一种属性,即:列

记录:实体的特定实例的字段集合,即:行

键:唯一标识记录的字段或字段集合,也叫”码“。分为主键和候选键。候选键也能成为主键。主键或候选键的任意真子集都不能唯一确定一条记录。

主键:唯一标识记录的键,具有以下特征:

  • 唯一
  • 包含最少字段
  • 非空
  • 不能随时更改

外键:父表或子表的主键,用于连接父表和子表记录

依赖表:需要用父表标识的子表,也叫“弱实体”

关联表:多对多关系中,两个父表的子表

实体完整性:每张表必须有一个有效的主键

参照完整性:没有不匹配的外键值

函数依赖:若X、Y存在关系,则对于相同的X,有相同的Y。称为Y函数依赖于X,或X函数确定Y。

完全函数依赖:Y不函数依赖于X的真子集,否则Y对X部分函数依赖。

候选键:若X完全函数确定Y,则X为候选键。

主属性:候选键中包含的属性

非主属性:候选键不包含的属性。也叫“非键属性”、“非关键字段”

传递依赖:若a依赖于B,B依赖于C,则A传递依赖于C

2 定义

符合某一级别关系模式的集合。

3 种类

共有六种范式,逐个递进(除BC范式)。

(1) 第一范式

没有重复的列。

用于区分关系型与菲关系型。

重复的列转换为一对多的实体关系

(2) 第二范式

数据库表中不存在非主属性对任一候选键的部分函数依赖,也即所有非主属性完全依赖于任意一组候选键。

思考:非主属性完全依赖于键

非主属性转换为一对多的实体关系。

image-20200716182212401

(3) 第三范式

不存在可以确定其他非主属性的非主属性。

image-20200716182342524

(4) BC范式

若属性或属性组合A能确定另一个属性B,则A的子集中必须有候选键。

排除了属性对候选键的传递依赖和部分依赖

image-20200716182603554

(5) 第四范式

基于BC范式,不包含多值依赖

(6) 第五范式

处理无损连接问题。

因为无损连接很少出现,基本没有实际意义。

参考资料

范式

如何理解关系型数据库的常见设计范式?

第二、三范式与BC范式的区别

数据库设计范式2——BC范式和第四范式

学习笔记]数据库设计三大范式与BCNF,学习笔记