數據庫設計心得
規范化
在設計和操作維護數據庫時,關鍵的步驟就是要確保數據正確地分布到數據庫的表中。 使用正確的數據結構,不僅便於對數據庫進行相應的存取操作,而且可以極大地簡化應用程序的其他內容(查詢、窗體、報表、代碼等)。正確進行表設計的正式名稱就是"數據庫規范化"。后面我們將通過實例來說明具體的規范化的工程。關於什么是范式的定義,請參考附錄文章 1.
數據冗余
數據應該盡可能少地冗余,這意味着重復數據應該減少到最少。比如說,一個部門雇員的電話不應該被存儲在不同的表中, 因為這里的電話號碼是雇員的一個屬性。如果存在過多的冗余數據,這就意味着要占用了更多的物理空間,同時也對數據的維護和一致性檢查帶來了問題,當這個員工的電話號碼變化時,冗余數據會導致對多個表的更新動作,如果有一個表不幸被忽略了,那么就可能導致數據的不一致性。
第一范式
數據庫表的每一列都是不可分割的原子數據項,而不能是集合,數組,記錄等非原子數據項。如果實體中的某個屬性有多個值時,必須拆分為不同的屬性。
第二范式
屬性完全依賴於主鍵。第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。當存在多個主鍵的時候,才會發生不符合第二范式的情況。比如有兩個主鍵,不能存在這樣的屬性,它只依賴於其中一個主鍵,這就是不符合第二范式。如果存在不符合第二范式的情況,那么這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。
第三范式
屬性不能傳遞依賴於主屬性(屬性不依賴於其它非主鍵屬性)。第三范式(3NF)是在第二范式(2NF)的基礎上建立起來的,即滿足第三范式(3NF)必須先滿足第二范式(2NF)。
如果某一屬性依賴於其他非主鍵屬性,而其他非主鍵屬性又依賴於主鍵,那么這個屬性就是間接依賴於主鍵,這被稱作傳遞依賴於主屬性。
根據上述規則設計出數據庫
體會
這次項目對數據庫的設計利用課程中學到的數據庫知識和技術,來開發設計出數據庫,解決本項目對信息處理的要求。通過這次的數據庫設計,鞏固了我們對數據庫基本原理和基礎理論的理解,掌握數據庫應用系統設計開發的基本方法,進一步提高了我們綜合運用所學知識的能力。