- 電子商務數據庫技術(第3版)
- 潘郁
- 1079字
- 2019-12-11 15:42:22
3.1.4 關系模式規范化的基本原則
一個低級范式的關系模式,通過關系模式的投影分解,可以轉換成若干個高一級范式的關系模式的集合,這種過程就叫規范化。規范化的基本思想是:逐步消除數據依賴中不合適的部分,使各關系模式達到一定程度的分離,即“一事一地”的模式設計原則,使概念單一化,也就是讓一個關系描述一個概念、一個實體或者實體間的一種聯系。
規范化的程度越高,數據的冗余和更新異常相對越少,但由于連接運算費時,查詢時所花的時間也就越多。因此,規范化應當根據具體情況權衡利弊,適可而止。對于數據變動不頻繁的數據庫,其規范化程度可以低一些。實際工作中,一般達到多數關系模式為3NF即可。
另外需要注意的是,規范化僅僅從一個側面提供了改善關系模式的理論和方法。一個關系模式的好壞,規范化是衡量的標準之一,但并不是唯一的標準。數據庫設計者的任務是在一定的制約條件下,尋求較好地滿足用戶需求的關系模式。規范化的程度不是越高越好,它取決于應用。
根據關系數據庫設計理論,優化關系數據庫設計的過程實際上是對關系模式進行規范化的過程,即不斷通過投影分解使非規范化的關系模式達到規范化的要求。一般來說,關系模式R(A1,A2,A3,……,An)的分解就是用R的一組子集{R1,R2,R3,……,Rk{來代替R,且這組子集滿足條件:

其中,任意兩個子集Ri和Rj相互的交集不要求為空,即它們可以有共同的屬性。通過分解,可消除數據冗余,從而消除插入、刪除或更新的異常。對于關系分解,我們不僅要求消除數據冗余,還要求分解后的關系模式和分解前的關系模式能表示相同的信息,即所謂的無損連接分解。在關系模式的規范化過程中,一般都采用無損連接分解。可以證明,利用函數依賴和多值依賴所做的投影分解都是無損連接分解。
在關系模式規范化時,一般要遵循以下原則。
關系模式在分解過程中數據不能丟失或增加,必須把全局關系模式中的所有數據無損地分解到各個子關系模式中,以保證數據的完整性。
從存取效率考慮,低級范式造成的冗余度很大,既浪費了存儲空間,又影響了數據的一致性,因此,一個子模式的屬性越少越好,即取高級范式;但從查詢效率考慮,低級范式又比高級范式好,因為此時連接運算的代價小。這是一對矛盾,所以應當根據實際情況,合理選擇規范化程度。
前面的兩個原則要求關系模式的分解既要是無損連接的,又要具有函數依賴保持性。但是根據目前的研究結果,關系模式的分解很難盡如人意。因此,在關系模式的規范化過程中,需要注意根據實際情況選擇如何遵循上述兩個原則,從而保證關系模式的正確性并具有可實現性。