数据库规范化是为了克服以下缺陷:
1. 数据冗余:非规范化的数据库设计中,数据可能会在多个地方重复存储,这不仅浪费存储空间,还可能导致数据不一致。
2. 更新异常:当数据库中的数据冗余时,对数据进行更新操作可能会造成数据不一致的情况,即“更新异常”。
3. 插入异常:在非规范化数据库中,如果某些数据是其他数据依赖的,但某些依赖的数据还未存在,那么无法插入新记录,这种情况称为“插入异常”。
4. 删除异常:当删除某些数据时,可能会意外地删除其他相关联的数据,这种情况称为“删除异常”。
5. 数据依赖:在非规范化数据库中,数据依赖关系可能会变得复杂,导致数据管理和维护变得困难。
通过规范化,数据库设计可以减少或消除这些缺陷,提高数据库的效率和可靠性。规范化分为多个层次,从第一范式(1NF)到第五范式(5NF),每一范式都针对特定的数据冗余和异常问题进行优化。