哈喽,你好啊,我是雷工!
本节继续学习记录数据库设计的检验与模型设计,
以下为学习笔记。
01 数据库设计合理性检验
数据库中表结构设计的是否合理是数据库设计的关键。
数据表设计合理的表现:
①:能够避免数据冗余,不会产生大量重复数据;
②:能够避免数据库操作异常;
02 数据库三范式原则
三范式的目标是设计出具有最小冗余的表结构;
2.1、第一范式
目标:第一范式的目标是确保数据表每列是不可再分的最小数据单元;
例如:将住址拆分为省+城市+区域
2.2、第二范式
第二范式应用最广泛,与对象明确原则相对应,要求每个数据表只描述一个实体属性;
如何判断是否满足第二范式:
如果一个关系满足第一范式,并且除了主键之外的其他列,都和主键列相关,那么则满足第二范式;
应用第二范式将与主键不相关的列独立为单独的实体,独立后的实体需要添加主键作为标识列;
2.3、第三范式
第三范式要求实体各属性之间不能具有直接的依赖关系;
满足条件:
如果一个表结构各列之间满足第二范式,除了主键列之外,其他列之间都不具有直接的依赖关系,则满足第三范式;
应用第二、第三范式时,为了保证实体之间存在必要的关系,我们往往需要将独立的实体和当前实体通过外键关联;
03 数据库模型设计
当通过上述三范式原则规范化出表结构以后,可以使用像Viso这类短剑创建数据库模型,然后根据数据库模型实现数据库的创建。
04 三范式原则与数据库性能
4.1、应用第三范式后数据库的变化
①:使实体被最大限度的拆分为若干个小实体;
②:实体数量增多,同时各个实体之间的关系变得复杂,数据被拆分到多个数据表中。
③:数据的查询和统计将变得复杂,会更多使用多表连接查询,如此会适当降低查询性能。
4.2、规范与性能
在进行规范化的同时,还要兼顾考虑数据库的性能
①:应用三范式与数据库的性能要根据项目的实际情况进行权衡。
②:根据项目的实际需求增加或减少冗余列。
05 后记
以上为数据库设计的相关内容,理论基础支撑项目中实践,在实践中在多加练习肯定能熟练掌握数据库;
有记录不当之处欢迎在留言区评论指出,更多话题可以在交流群内沟通交流。