1.需求分析:全面了解产品设计的存储需求
存储需求:数据库需要存储什么样的数据,数据具有什么样特点
数据处理需求:我们需要如何对数据库进行读取或修改以完成产品设计的功能,已经对数据处理的响应时间有什么要求,数据处理的方式是批量处理还是连接处理
数据的安全性和完整性: 包括数据的生命周期和信息
2.逻辑设计:设计数据的逻辑存储结构
这个阶段不要关心什么数据库,什么存储引擎,搞清楚数据实体之间的逻辑关系,解决数据冗余和数据维护异常,用设计范式
3.物理设计:根据所使用的数据库特点进行表结构设计
关系型:Oracle,SQLServer,Mysql,postgresSQL
非关系型数据库:mongo,Redis,Hadoop
存储引擎:Innodb
4.维护优化:根据实际情况对索引,存储结构等进行优化
数据库设计范式:就是我们在设计数据库需要遵循的一些规范,只要按照这个范式就可以设计出 没有数据冗余和数据维护异常的数据库结构
数据库三范式:一般只需要满足这三条就可以符合需求设计(不是性能最好),我们也不能完全按照范式设计,因为还要考虑实际的业务使用情况
第一范式:数据库表中所有字段都只具有单一属性,不能在进行分解
单一属性的列是由基本的数据类型(如整形,浮点型,字符型)所构成的
设计出来的表都是简单的二维表
第二范式(符合第二范式要满足第一范式的要求):
要求一个表中只具有一个业务主键,也就是说符合第二范式的表不能存在非主键列对只对部分主键的依赖关系。
非主键列对只对部分主键的依赖关系只出现在主键是符合主键的情况下,如果是单一主键一定满足第二个范式要求
第三范式:
指每一个非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式的基础上消除了非主属性对主键的传递依赖