一.数据库设计的概念数据库
数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程.数据库设计
二.数据库设计的重要性性能
若是一个数据库没有进行一个良好的设计,那么这个数据库完成以后他的缺点是:spa
1.效率会很低设计
2更新和检索数据时会出现不少问题,3d
反之,一个数据库被尽心策划了一番,具备良好的设计,那他的优势是:blog
1.效率会很高.开发
2.便于进一步扩展.效率
3.使得应用程序的开发变得更容易.基础
三.设计数据库的步骤
1.需求分析阶段:分析客户的业务和数据处理需求.
2.概要设计阶段:他主要就是绘制数据库的E-R图.
3.详细设计阶段:应用数据库的三大范式进行审核数据库的结构.
总结:在进行数据库的系统分析时,都如下列4点位参考的基本步骤.
01.收集信息.
02.标识实体.
03.标识每一个实体须要储存的详细信息.
04.标识实体之间的关系.
四.学会绘制E-R图
绘制E-R图首先要了解什么是实体,什么是属性,什么是联系.
1.首先实体是指现实世界中具备区分其余事物的特征或属性与其余实体有联系的实体,针对于数据库中的表而言实体是指表中一行一行特定数据,但咱们在开发中,也经常把整个表称为一个实体.
2.属性能够理解为实体的特征,针对于数据库中的表而言实体是指表中的列.
3.联系是两个或多个实体之间的关联关系.
4.实体关系图:
例:酒店管理系统E-R图:
五.映射基数
1.一对一:X中的一个实体最对与Y中的一个实体关联,而且Y中的一个实体最多与X中的一个实体关联.
Eg:一我的只有一张身份证.
2.一对多:X中的一个实体能够与Y中的任意数量的实体关联;Y中的一个实体最多与X中的一个实体关联.
Eg:一个班级有多名学生.
3.多对一:X中的一个实体最多与Y中的一个实体关联;Y中的一个实体能够与X中的任意数量的实体关联.
Eg:客人与客房之间的关系,一个客人只能住一间客房.
4.多对多:X中的一个实体能够与Y中的任意数量的实体关联,反之亦然.
Eg:学生和课程之间的关系,一个学生能够有多门课程,一门课程能够对应多名学生.
六.绘制数据库模型图
以酒店管理系统为例:
七.数据库规范化
若是数据库没有进行相应的规范设计,虽然在查询数据库可能会比较容易,但有时会形成一些问题,主要的问题以下:
1.信息重复(会形成储存空间的浪费及一些其余问题).
2.更新异常(冗余信息不只浪费空间,还会增长更新的难度).
3.插入异常
4.删除异常(在某些状况下,当删除一行时,可能会丢失有用的信息).
八.三大范式
1.第一范式:
目标是确保每列的原子性.若是每列都是不可再分的最小数据单元,则知足第一范式.
2.第二范式:
第二范式在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关,也就是说在一个数据库表中,一个表中只能保存一种数据,不能够把多种数据保存在同一张数据库表中.若是一个关系知足第一范式,而且除了主键之外的其余列都依赖与该主键.则知足第二范式.
3.第三范式:
第三范式在第二范式的基础上更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关.若是一个关系知足第二范式,而且除了主键之外的其余列都这能依赖于主键列,列和列之间不存在相互依赖关系,则知足第三范式.
九.规范性和性能的关系
为了知足三大范式,咱们的数据操做性能会受到相应的影响,因此,在实际的数据库设计中,既要考虑三大范式,避免数据的冗余和各类数据操做异常;有要考虑到数据访问性能,有时,为了减小表间链接,提升数据库的访问性能,容许适当的数据冗余列,这多是最合适的数据库设计方案.