设计数据库
1. 为什么要设计数据库
当数据库比较复杂的手,我们就需要设计了
- 糟糕的数据库设计:
- 数据冗余,浪费空间
- 数据库插入和删除都会麻烦、异常
- 程序的性能差
- 良好的数据库设计:
- 节省内存空间
- 保证数据库的完整性
- 方便我们开发系统
2.设计数据库的步骤:
- 收集信息,分析需求
- 标识实体
- 标识实体之间的关系
三大范式
1. 为什么需要数据规范化
- 信息重复
- 更新异常
- 插入异常
- 无法正常显示信息
- 删除异常
- 丢失有效的信息
2. 三大范式
- 第一范式(1NF)
- 原子性:保证每一列不可再分
- 第二范式(2NF)
- 前提:满足第一范式
- 每张表只描述一件事情
- 第三范式(3NF)
- 前提:满足第一范式和第二范式
- 第三范式需要确保数据的每一列数据都和主键直接相关,而不能间接相关。
3.规范性和性能的问题
关联查询的表不得超过三张
- 考虑商业化的需求和目标,数据库的性能更加重要
- 在规范性能的问题的时候,需要适当的考虑一下规范性!
- 故意给某些表增加一下冗余的字段。
- 故意增加一些计算列。
mysql正则表达式
| 模式 | 示例 | 描述 |
|---|---|---|
| ^ | ^st | 以st开头的所有数据 |
| $ | st$ | 以st结尾的所有数据 |
| [……] | [st] | 字符集合,匹配包含s或t的所有数据 |
| [^……] | [^st] | 负字符集合,匹配不包含s或t的所有数据 |
| p1|p2 | s|t | 匹配s或t |
| * | st* | 匹配s或stt,* 等价于{0,}。 |
| + | st+ | 能匹配st或stt,+ 等价于 {1,}。 |
| {n} | s{2} | 只能匹配包含两个ss的数据,匹配确定两次 |
| {n,m} | st{0,1} | 匹配s或st,最少匹配0次,最多1次 |
本文深入探讨了数据库设计的重要性,包括避免数据冗余、保证数据库完整性和提升系统开发效率。介绍了数据库设计的基本步骤,如需求分析、实体标识和关系定义,并详细讲解了三大范式(1NF、2NF、3NF)的规范原则,帮助读者理解如何创建高效、规范的数据库结构。
1万+

被折叠的 条评论
为什么被折叠?



