数据库规范化是设计关系型数据库时,通过消除数据冗余和避免更新异常,将关系模式分解成多个更小、更聚焦的关系模式的过程。规范化的目标是产生一组既能反映现实世界语义,又具有良好存储性能的关系模式。一、为什么要规范化?未规范化的数据库存在四大异常:异常类型描述示例(学生选课表:学号、姓名、课程、教师、教师职称)插入异常某些信息无法独立存储新开设的课程尚未有学生选修,无法插入课程及教师信息删除异常删除部分信息时丢失其他信息删除最后一个选课记录,同时丢失了教师和课程的对应关系修改异常数据冗余导致更新代价高且易不一致某教师职称变更,需要修改所有选修该教师课程的学生记录数据冗余相同数据被重复存储教师职称在每条选课记录中重复二、基本概念回顾函数依赖:若属性集 Y 的值由 X 唯一确定,则称 X → Y。完全函数依赖:X 的所有属性共同决定 Y,去掉任一属性则依赖不成立。部分函数依赖:X 的真子集就能决定 Y。