对数据库进行范式化处理具有以下的优点:
1. 因为表的列数减少了,所以搜索、排序、创建索引的速度可以加快。
2. 因为表减小了,所以按照索引查询的速度加快了。
3. 可以更好地使用段来控制数据的物理存储。
4. 每个表可以只有很少的索引,因此可以加快更新速度。
5. 可以减少空值和冗余,使数据库更紧凑。
6. 减少数据的不规则性。
范式化使数据库的维护和修改变得更容易
对数据库进行非范式化的目的在于提高应用程序的效率,但非范式化处理毕竟会增加数据冗余,带来相应的数据完整性问题。因此,在考虑非范式化处理时,要慎重考虑下面的几个问题:
1. 哪些是比较紧急的事务,哪些事务对响应时间有要求。
2. 这些事务的执行频率有多高。
3. 这些紧急的事务要操作哪些表以及表中的哪些列,每次要访问多少行。
4. 哪种类型的事务执行频率最高:查询、插入、删除还是更新。
5. 通常的排序顺序是什么。
6. 哪些工作会并发执行。
7. 经常访问的表有多大。
8. 哪些需要进行统计计算。
9. 数据的物理位置在哪里。
常用的非范式化技术有以下几种:
1. 增加冗余列。
2. 增加派生列。
3. 合并表。
4. 重复表。
5. 分割表(水平分割和垂直分割)。