對(duì)數(shù)據(jù)庫進(jìn)行范式化處理具有以下的優(yōu)點(diǎn):
1. 因?yàn)楸淼牧袛?shù)減少了,所以搜索、排序、創(chuàng)建索引的速度可以加快。
2. 因?yàn)楸頊p小了,所以按照索引查詢的速度加快了。
3. 可以更好地使用段來控制數(shù)據(jù)的物理存儲(chǔ)。
4. 每個(gè)表可以只有很少的索引,因此可以加快更新速度。
5. 可以減少空值和冗余,使數(shù)據(jù)庫更緊湊。
6. 減少數(shù)據(jù)的不規(guī)則性。
范式化使數(shù)據(jù)庫的維護(hù)和修改變得更容易
對(duì)數(shù)據(jù)庫進(jìn)行非范式化的目的在于提高應(yīng)用程序的效率,但非范式化處理畢竟會(huì)增加數(shù)據(jù)冗余,帶來相應(yīng)的數(shù)據(jù)完整性問題。因此,在考慮非范式化處理時(shí),要慎重考慮下面的幾個(gè)問題:
1. 哪些是比較緊急的事務(wù),哪些事務(wù)對(duì)響應(yīng)時(shí)間有要求。
2. 這些事務(wù)的執(zhí)行頻率有多高。
3. 這些緊急的事務(wù)要操作哪些表以及表中的哪些列,每次要訪問多少行。
4. 哪種類型的事務(wù)執(zhí)行頻率最高:查詢、插入、刪除還是更新。
5. 通常的排序順序是什么。
6. 哪些工作會(huì)并發(fā)執(zhí)行。
7. 經(jīng)常訪問的表有多大。
8. 哪些需要進(jìn)行統(tǒng)計(jì)計(jì)算。
9. 數(shù)據(jù)的物理位置在哪里。
常用的非范式化技術(shù)有以下幾種:
1. 增加冗余列。
2. 增加派生列。
3. 合并表。
4. 重復(fù)表。
5. 分割表(水平分割和垂直分割)。