首先对数据库的整体结构进行图形化的设计,然后在依据图形对数据库结构进行建立。简单来说,数据库设计就是根据业务系统的具体需要,结合我们所选用的DBMS(数据库管理系统),为这个业务系统构造出最优的数据存储模型,并建立好数据库中的表结构及表与表之间的关联关系的过程。使之能有效的对应用系统中的数据进行存储,并可以高效的对已经存储的数据进行访问。
应用系统中的数据可以有多种存储方式,可以把所有数据存储在一张表中,但是这样就不能达到高效访问的目的。
为什么要进行数据库设计?
好的设计: 减少数据多余,避免数据维护异常,节约存储空间,高效的访问
坏的设计: 存在大量数据多余,存在数据插入、更新、删除异常,浪费大量存储空间,访问数据低效。
如果数据库已经在生产环境运行了一段时间之后,在想对数据库进行调整,就会影响业务的正常运行,所以在最初就要设计出简洁、高效的数据结构。
设计步骤:
1.需求分析: 数据是什么,数据有哪些属性,数据和属性各自的特点有哪些;
2.使用ER图 对数据库进行逻辑建模(跟我们所选的具体的数据库管理系统是没有关系的),大部分的表关系也是在这一步完成的
3.物理设计: 根据数据库自身的的特点把逻辑设计转换为物理设计;
4.维护优化: 新的需求进行建表,索引优化,大表拆分。随着应用程序上线的时间越来越久,需求越来越多,数据结构也会越来越复杂,所以在维护优化的时候也要遵循以上几步,完了之后再进行页面的操作,这样保证数据结构永远是最优的。
需求分析:
了解系统中所要存储的数据
了解数据的存储特点,比如有的有时效性,可以采用过期清理的方式存储,有的没有
了解数据的生命周期,可以采用分库分表的方式存储
小问题:
实体及实体之间的关系(1对1,1对多,多对多),可能是一个实体对应一个表,也可能是多个实体对应一个表
实体所包含的属性有什么
哪些属性或属性的组合可以唯一标识一个实体
逻辑设计:
1将需求转化为数据库的逻辑模型
2通过ER图的形式对逻辑模型进行展示
3同所选用的具体的DBMS无关
常见数据库设计范式:
第一范式、第二范式、第三范式及BC范式,当然还有第四及第五范式,不过重点还是前三个范式上,这也是目前我们大多数数据库设计所要遵循的范式。
第一范式
数据库表中的所有字段都是单一属性,不可再分的。这个单一属性是由基本的数据类型所构成的,如整数、浮点型、字符串等,第一范式要求数据库中的表都是二维表。
第二范式
数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。所有单关键字段的表都复合第二范式。
第三范式
第三范式是在第二范式的基础之上定义的,如果数据表中不存在非关键字段,对任意候选关键字段的传递函数依赖则符合第三范式