目录
??????? 我们为什么要进行数据库设计呢?一个成熟完善的数据库设计可以带给我们什么好处呢?而糟糕的数据库设计又会给我们带来什么不便呢?学习本篇文章,你将对数据库设计的步骤有一个框架概念,并通过实例教会你如何让绘制E-R图以及如何转换为数据库模型图。
糟糕的数据库设计:
1,数据冗余,存储空间造成大量浪费;
2,内存空间与日志空间的浪费;
3,数据的更新迭代与插入时刻伴随着风险和异常;
成熟的数据库设计:
1,节省数据的存储空间;
2,数据的完整性高,原子性强;
3,方便进行数据库应用和系统开发;
那么我们该如何进行数据库设计呢?
数据库设计步骤:
1.需求分析阶段:旨在分析客户的业务和数据处理的需求
2.概要设计阶段:设计出数据库的E-R模型图,确认需求信息的正确和完整性
3.详细设计阶段:运用数据库三大范式越泽,规范审核数据库结构,形成数据库模型图
4.代码编写阶段:物理实现数据库,代码实现应用
5.测试阶段: 实践||实验
6.备份还原阶段:...
1.收集信息:
系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务
旅客办理入住手续:后台数据库需要存放入住客人的信息和客房信息
客房信息:后台数据库需要存放客房的相关信息,如客房号、床位数、价格等
客房管理信息:后台数据库需要保存客房类型信息和客房当前状态信息
2.标识出实体:
数据库要管理的关键对象或实体内容,实体通常情况下 是一个名词
客人:入住酒店的旅客。办理入职手续时,需填写用户信息。
客房:酒店为客人提供休息的住所。
3.标识出每个实体的属性:
客人属性:编号 姓名 身份证.....
客房属性:编号 名称 床位 状态 类型....
4.标识出实体和实体之间的关系:
实体和实体之间的关系 通常用动词去描述
客房和客人之间 存在主从关系 客房是主1 客人是从N
1对N关系 被引用 引用关系
从设计角度上来说 就是 N个人可以住一个房子
客房被客人引用了---客人引用了客房
符号 | 含义 |
---|---|
矩形 | 实体,一般是名词 |
椭圆形 | 实体,一般是名词 |
菱形 | 关系,一般是动词 |
1 将各实体转化为对应的各表,将各属性对应成为各表的列。
2 标识出每个表的主键列(非空+唯一),一张表有且只有一个主键列。
3 在表之间建立主外键,形成引用被引用关系。
数据库设计规范化的的重要性:防止信息重复、更新异常、插入异常以及删除异常等等
三大范式原则:
第一范式的目标是确保每列的原子性
如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
第二范式要求每个表只描述一件事情
如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)