MySQL之规范数据库设计

九、规范数据库设计

1.为什么需要设计?

1)糟糕的数据库设计
①数据冗余,浪费空间。
②数据库插入和删除都会很麻烦、出现异常(屏蔽使用物理外键)。
③程序的性能差。
2)良好的数据库设计
①节省内存空间。
②保证数据库的完整性。
③方便开发系统。
3)软件开发中,关于数据库的设计
①分析需求:分析业务和需要处理的数据库需求。
②设计概要:设计关系图E-R图。
4)设计数据库的步骤以个人博客为例
①收集信息,分析需求。
Ⅰ用户表(用户登录注销、用户的个人信息、写博客、创建分类)
Ⅱ分类表(文章分类、谁创建的)
Ⅲ文章表(文章的信息)
Ⅳ友链表(友链信息)
Ⅴ自定义表(系统信息、某个关键字或一些主字段)
②标识实体(把需求落实到每个字段)。
③标识实体之间的关系。
Ⅰ写博客:user——>blog
Ⅱ创建分类:user——>category
Ⅲ关注:user——>user
Ⅳ友链:links
Ⅴ评论:user——>user——>blog

2.三大范式

为什么需要数据规范?
不规范可能造成的问题:信息重复、更新异常、插入异常(无法正常显示信息)、删除异常(丢失有效信息)
1)第一范式(1NF)
原子性:保证每一列不可再分。
2)第二范式(2NF)
前提:满足第一范式。
每张表只描述一件事情。
3)第三范式(3NF)
前提:满足第一范式和第二范式。
需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
(规范数据库的设计)
参考博客园链接:https://www.cnblogs.com/wsg25/p/9615100.html
上述博客文章

4)规范性和性能的问题

阿里规定:关联查询的表不得超过三张表。

①考虑商业化的需求和目标(成本、用户体验),数据库的性能更加重要。
②在考虑性能的问题的时候,需要适当的考虑一下规范性。
③故意给某些表增加一些冗余的字段(从多表查询变为单表查询)。
④故意增加一些计算列(从大数据量降低为小数据量的查询:索引)。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页