0. 数据库设计规范化

mysql 文章 2022-07-15 14:23 0 全屏看文

数据库规范化

  • 第一范式: 字段不可再分

1NF(第一范式)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

  • 第二范式: 非主键字段完全依赖主键字段

第二范式(Second Normal Form,2nd NF)是指每个表必须有主关键字(Primary key),其他数据元素与主关键字一一对应。通常称这种关系为函数依赖(Functional dependence)关系,即表中其他数据元素都依赖于主关键字,或称该数据元素惟一地被主关键字所标识。

  • 第三范式: 消除传递函数依赖(非主属性->非主属性->主键)

第三范式(Third Normal Form,3rd NF)就是指表中的所有数据元素不但要能唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其他的函数关系。

  • BCNF: 不会,一般而言,不以数据库为主要方向的话,自用数据库3NF足够了

所有非主属性对每一个候选键都是完全函数依赖; 所有的主属性对每一个不包含它的候选键,也是完全函数依赖;没有任何属性完全函数依赖于非候选键的任何一组属性。


数据库完整性

实体完整性:主键

实体完整性这项规则要求每个数据表都必须有主键,而作为主键的所有字段,其属性必须是独一及非空值。

参照完整性:外键

若属性或属性组F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须为:
(1)空值,F的每个属性值均为空值。
(2)S中某个元组中的主键值(主码值)

image-20220711202559587

用户定义完整性:各种列级约束

image-20220711202729639

A

-EOF-