数据库规范化|面向IT护照考试整理第1至第3范式
通过具体示例,面向IT护照考试整理数据库规范化的目的、第1至第3范式的步骤以及函数依赖关系。
规范化的目的
数据库规范化旨在消除数据冗余并保持数据一致性。它具有防止更新时出现不一致(更新异常)的效果。在IT护照考试中,从第1范式到第3范式的步骤是高频考点。
什么是函数依赖
函数依赖指的是“若A确定,则B唯一确定”的关系。记作A→B。例如,如果知道学号就能确定姓名,则表示为学号→姓名。
第1范式(1NF)
在第1范式中,消除重复项,每个单元格只保存一个值。非规范化的例子是,一行中包含多个科目名称。规范化后,按1名学生×1个科目=1行进行拆分记录。
第2范式(2NF)
第2范式在满足第1范式的基础上,消除部分函数依赖。将仅依赖于主键一部分的列分离到另一个表中。例如,在复合键(学号+科目代码)中,如果姓名仅依赖于学号,则将姓名列分离到单独的表中。
第3范式(3NF)
第3范式在满足第2范式的基础上,消除传递函数依赖。分离“主键→列X→列Y”的关系。例如,存在学号→学科代码→学科名的依赖关系时,将“学科代码→学科名”部分分离到单独的表中。
规范化示例
非规范化形式
| 学号 | 姓名 | 科目 | 成绩 |
|---|---|---|---|
| S001 | 山田 | 语文, 数学 | 80, 75 |
第1范式
| 学号 | 姓名 | 科目 | 成绩 |
|---|---|---|---|
| S001 | 山田 | 语文 | 80 |
| S001 | 山田 | 数学 | 75 |
第2和第3范式(分离为学生表和成绩表)
学生表:
| 学号 | 姓名 |
|---|---|
| S001 | 山田 |
成绩表:
| 学号 | 科目 | 成绩 |
|---|---|---|
| S001 | 语文 | 80 |
| S001 | 数学 | 75 |
规范化的优点与缺点
优点
规范化的优点包括通过消除冗余来节省存储空间。它可以防止更新时的不一致,确保数据的一致性。
缺点
另一方面,缺点是由于连接(JOIN)操作增加,查询会变得更复杂、更慢。为了提升速度,有时会有意进行反规范化,这在数据仓库等场景中可见。
IT护照考试的出题要点
在IT护照考试中,第1至第3范式的判定题经常出现。要求理解函数依赖关系,并考察对规范化优点(消除冗余和确保一致性)的掌握。
历年真题的典型模式
- “给定表格属于第几范式”型
- “关于规范化目的的正确选项是哪一个”型
相关术语
- 关系数据库(关系数据库与SQL基础)
- NoSQL与大数据(NoSQL与大数据)
学习技巧
作为学习技巧,建议通过动作来记忆:“1NF=消除重复,2NF=消除部分依赖,3NF=消除传递依赖”。推荐用函数依赖“A→B”的箭头进行图解,并亲自尝试对表格示例进行一次规范化。
总结
掌握各范式的步骤和函数依赖关系,就能在规范化问题上稳拿分数。如需全面练习技术类内容,请访问技术类汇总;如需进行实战演练,请前往模拟考试。
相关文章
关系型数据库与SQL基础|IT护照考试备考
整理关系型数据库(RDB)的结构、主键·外键·范式、SQL的SELECT/INSERT/UPDATE/DELETE等IT护照考试高频考点。
5G是什么?|面向IT护照考试整理的4G差异与活用案例
针对IT护照考试,整理了5G(第5代移动通信)的三大特征(高速、低延迟、多设备同时连接)、与4G的差异,以及在自动驾驶、远程医疗中的应用。
AI・机器学习基础|IT护照考试高频关键词整理
整理AI、机器学习、深度学习的关系,监督学习/无监督学习/强化学习的区别,以及生成式AI、LLM等IT护照考试中涉及的AI相关术语。