数据库结构优化 – 表的范式优化
第三范式
范式化是指数据库设计的规范,目前说到范式化一般是指第三设计范式,也就是要求数据表中不存在非关键字段对任意候选关键字段的传递函数依赖,则符合第三范式。
存在以下传递函数依赖关系:
(商品名称)->(分类)->(分类描述)
也就是说存在非关键字段“分类描述”对关键字段“商品名称”的传递函数依赖。
反范式存在的问题
不符合第三范式要求的表存在下列问题:
1、数据冗余:(分类,分类描述)对于每一个商品都会进行记录;
相同“分类”字段对应的“分类描述”也相同,造成表中存在大量冗余数据。
2、数据的更新异常
也是由于表中存在冗余数据,更新操作时,会造成大量数据的改动。
3、数据的插入异常;
道理同上。
4、数据的删除异常;
如果将表中的“分类”值为 饮料 的记录全部删除,则会造成数据表中 饮料 这个分类消失。
解决方案
将表进行拆分为三个表。