标签归档:数据库

数据库设计

需求分析

  1. 实体与实体之间的关系
  2. 实体所包含的属性
  3. 哪些属性或属性的组合可以唯一标识一个实体

逻辑设计

  1. 第一范式
数据库表中的所有字段都是单一属性,不可再分。
即要求数据表都是二维表。


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



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



  4. BC 范式
在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合 BC 范式。
也就是说如果是复合关键字,则复合关键字之间也不能存在函数依赖关系。




物理设计

  1. 选用合适的数据库
  2. 反范式化
为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,以空间换时间。


维护优化

  1. 批量操作 VS 逐条操作
  2. 禁止使用 Select * 这样的查询
  3. 控制使用用户自定义函数
  4. 不要使用数据库中的全文索引

参考

数据库设计那些事