数据库设计

1. 概述

数据库设计:有效存储并高效访问数据

1. 优良的数据库设计
  • 减少数据冗余
  • 避免数据维护异常
  • 节约存储空间
  • 高效的访问
2. 数据库设计步骤
  • 需求分析(数据分析)
  • 逻辑设计(ER图)
  • 物理设计(数据库特点转换)
  • 维护优化(需求建表、索引优化,大表拆分)

2. 数据库设计范式

  • 1NF:对属性的原子性约束,要求属性具有原子性,不可再分解(字段不可分);
  • 2NF:对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性(有主键,非主键字段依赖主键);
  • 3NF:对字段冗余性的约束,即任何字段不能由其他字段派生出来,要求字段没有冗余(非主键字段不能相互依赖);
  • BCNF:解决部分主键依赖于非主键部分
1. 第一范式

数据库表中的所有字段都是单一属性,不可再分;单一属性是由基本的数据类型所构成的,如整数、浮点数、字符串

2. 第二范式

数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。
部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。多关键字字段的某一字段和其他某一非关键字字段有必然的关系。
所有的单关键字段的表都符合第二范式。

3. 第三范式

第三范式是在第二范式的基础上定义的,如果数据表中不存在非关键字段对任意候选关键字段的传递函数依赖则符合第三范式。

4. BC范式

在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合 BC 范式。