因為開發工作成果:資料模型會用到正規化,本概念文件就稍微討論一下資料正規化這個主題。我們不打算完整論述正規化,因為這個主題太過廣泛,且許多資料庫設計文獻中已有記載。在
[NBG01]
中,正規化定義為「一種分析技術,適用於建立正確的關聯式資料庫設計」。在情境上,正規化是透過嚴格的規則以剔除「資料模型」重複性的一種程序。在「資料模型」的表格中排除重複資料,可強制資料庫中的資料遵守參照完整性。
在「資料模型」上,通常是等到模型中開發出表格及其關聯的初始版本之後,才會開始執行正規化。套用正規化的確切時機取決於專案的特殊狀況,且由資料庫設計師決定。在「資料模型」的表格上套用正規化流程需要經過一連串步驟,每個步驟依序套用愈來愈嚴格的規則。
正規化的等級
正規化按階層分類為數字排列格式,最常見的是第一階、第二階和第三階正規化。每一階正規化的限制比前一階更嚴苛。前三個正規化等級如下:
-
第一階正規化 - 剔除表格中重複的資料直欄群組,因此,資料以最小不可分割單位來組織。
-
第二階正規化 - 資料滿足第一階正規化,剔除主鍵欄位的重複性,因此,直欄值完全相依於主鍵欄位。
-
第三階正規化 - 資料滿足第二階正規化,且每一個直欄不相依於其他任何非鍵值直欄。
可能還會有其他正規化等級,在此不予討論。有關其他正規化等級的資訊,請參閱 [DAT99]。在「資料模型」上套用的確切正規化等級,必須由資料庫設計師依專案狀況的特性來決定。
|