规范数据库设计
9.1、为什么需要设计
糟糕的数据库设计
- 数据冗余,浪费空间
- 数据库插入和删除都会麻烦、异常
- 程序的性能差
良好的数据库设计:
- 节省内存空间
- 保证数据库的完整性
- 方便我们开发系统
软件开发中,关于数据库的设计
- 分析需求:分析业务和需要处理的数据库的需求
- 概要设计:设计关系图E-R图
9.2、三大范式
为什么需要数据规范化
- 信息重复
- 更新异常
- 插入异常
无法正常显示信息
- 删除异常
丢失有效信息
第一范式(1NF):需求数据库表中的每一列都是不可分割的原子数据项
原子性:保证每一列都不可再分
第二范式(2NF):
前提:满足第一范式,非码属性必须完全依赖候选码
第二范式需要确保数据库表中的每一列和主键相关,而不能只与主键的某一部分相关
第三范式(3NF):
前提:满足第二范式,任何非主属性不依赖于其他非主属性
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不是间接相关
规范数据库的设计
规范型和性能的问题
关联查询的表不得超过三张表
为满足某种商业目标 , 数据库性能比规范化数据库更重要
在数据规范化的同时 , 要综合考虑数据库的性能
通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
通过在给定的表中插入计算列,以方便查询