关系模型的规范化龚蕊13课件讲解.pptxVIP

  • 0
  • 0
  • 约1.67千字
  • 约 14页
  • 2026-02-10 发布于陕西
  • 举报

关系模型的规范化主讲人:龚蕊

关系模型的规范化

关系模型的规范化(Normalizationoftherelationalmodel)给数据表“瘦身”“排错”的关键技术,通过遵循一系列规则(范式),让数据存储更高效、更可靠。1NF2NF3NF

操作异常(OperationError)插入异常:想插入数据却因缺少其他数据而无法插入;更新异常:修改一处数据需同时改多处,容易出错;删除异常:删除某条数据时,意外删掉其他有用信息。

关系模型的规范化(Normalizationoftherelationalmodel)这些问题的根源是数据依赖关系不合理,范式就是解决依赖问题的“标准”。

1NF原子性要求表中所有字段的值必须是不可再分割的原子值,不能有复合属性、多值属性。

优化前(违反1NF)优化后(满足1NF)联系方式student@手机号箱:student@问题描述:“联系方式”字段同时存手机号和邮箱(如student@”),违反1NF。弊端:无法独立查询手机号或邮箱,数据操作极不方便。解决办法:将“联系方式”拆分为“手机号”和“邮箱”两个独立字段,确保每个字段只存一个原子值。【案例2-9】学生表“联系方式”字段问题

2NF消除部分函数依赖必须先满足1NF。表中所有非主键字段必须完全依赖于主键(而非主键的一部分)。

优化前(违反2NF)优化后(满足2NF)学生选题表(student_id,topic_id,topic_name,score)1.学生选题表(student_id,topic_id,score)2.题目表(topic_id,topic_name)问题描述:表主键为“student_id+topic_id”,但字段“topic_name”仅依赖“topic_id”(主键的一部分),存在部分依赖,违反2NF。弊端:“topic_name”重复存储,修改课程名需改所有相关记录。解决办法:将“topic_name”移至“题目表”,“学生选题表”仅保留“student_id”和“topic_id”作为关联字段。【案例2-10】“学生选题表”联合主键问题

3NF消除传递函数依赖必须先满足2NF。表中所有非主键字段不能传递依赖于其他非主键字段(即非主键字段只能依赖主键)。

优化前(违反3NF)优化后(满足3NF)教师表(teacher_id,name,workplace_id,单位名称,单位地址)1.教师表(teacher_id,name,workplace_id)2.单位表(workplace_id,单位名称,单位地址)问题描述:表中包含“workplace_id”“单位名称”“单位地址”,其中“单位地址”依赖“单位名称”,“单位名称”依赖“workplace_id”,存在传递依赖,违反3NF。弊端:“单位地址”重复存储,修改单位地址需改所有相关教师记录。解决办法:将“单位名称”“单位地址”拆分至“单位表”,教师表仅保留“workplace_id”作为外键关联单位表。【案例2-11】“指导教师表”字段问题

1NF(原子性)2NF(消部分依赖)3NF(消传递依赖)?核心逻辑:范式级别越高,数据冗余越少,结构越清晰,但表的数量可能增加。?范式递进关系

应用要点(ApplicationHighlights)基础要求:实际开发中,满足3NF即可解决大部分问题;灵活权衡:偶尔为了查询效率,会适当“反规范化”(如冗余少量字段)但需谨慎;设计原则:一个实体或一种关系对应一张表,避免“大杂烩”式设计。

规范化的核心——1NF、2NF、3NF1NF保证字段“不可拆”;2NF保证非主键字段“完全依赖”主键;3NF保证非主键字段“不传递依赖”。

文档评论(0)

1亿VIP精品文档

相关文档