MySQL第五章数据库设计
良好的数据库设计
1、节省数据的存储空间
2、能攻保证数据的完整性
3、方便进行数据库应用系统的开发
糟糕的数据库设计
1、数据冗余、存储空间浪费
2、内存空间浪费
3、数据更新和插入的异常
软件项目开发周期中数据库设计
1.需求分析阶段
分析客户的业务和数据处理需求
(1)收集信息
与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务
(2)标识实体(Entity)
标识数据库要管理的关键对象或实体,实体一般是名词
(3)标识每个实体的属性(Attribute)
标识每个实体需要存储的详细信息
(4)标识实体之间的关系
2.概要设计阶段
设计数据库的E-R模型图,确认需求信息的正确和完整
E-R图
映射基数
有一对一、一对多、多对一、多对多四种模式
示例:
关系模式
用二维表的形式来表示实体和实体之间联系的数据模型
E-R图转换为关系模式的步骤:
1.把每个实体都转化为关系模式 R(U)形式
2.建立实体间联系的转换
数据库模型图
E-R图转换为数据库模型图步骤:
1.新建数据库模型图
2.添加实体
3.添加数据列及相应的属性
4.添加实体之间的映射关系
示例:
3.详细设计阶段
应用三大范式审核数据库结构
不合规范的表设计会带来一系列问题:
1.信息重复
2.更新异常
3.插入异常(无法正确表示信息)
4.删除异常(丢失有效信息)
三大范式
第一范式1NF
第一范式的目标是确保每列的原子性
如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
第二范式2NF
第二范式要求每个表只描述一件事情,确保每列都与主键列相关
第三范式3NF
如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)
4.代码编写阶段
物理实现数据库,编码实现应用
5.软件测试阶段
对编写好的数据库进行测试
6.安装部署
数据库在正式的运行环境中使用测试