1. 程式人生 > >資料庫連線池工作機制

資料庫連線池工作機制

資料庫欄位設計 

正確認識資料冗餘

主鍵與外來鍵在多表中的重複出現, 不屬於資料冗餘,這個概念必須清楚,事實上有許多人還不清楚。

非鍵欄位的重複出現, 才是資料冗餘!而且是一種低階冗餘,即重複性的冗餘。

高階冗餘不是欄位的重複出現,而是欄位的派生出現。

【例4】:商品中的“單價、數量、金額”三個欄位,“金額”就 是由“單價”乘以“數量”派生出來的,它就是冗餘,而且是一種高階冗餘。

冗餘的目的是為了提高處理速度。只有低階冗餘才會增加資料的不一致性,因為同一數 據,可能從不同時間、地點、角色上多次錄入。

因此,我們提倡高階冗餘(派生性冗餘),反對低階冗餘(重複性冗餘)。

防止資料庫設計打補丁的方法是“三少原則”

(1) 一個數據庫中表的個數越少越好。只有表的個數少了,才能說明系統的E–R圖少而精,去掉了重複的多餘的實體,形成了對客觀世界的高度抽象,進行了系統的資料整合,防止了打補丁式的設計;

(2) 一個表中組合主鍵的欄位個數越少越好。因為主鍵的作用,一是建主鍵索引,二是做為子表的外來鍵,所以組合主鍵的欄位個數少了,不僅節省了執行時間,而且節省了索引儲存空間;

(3) 一個表中的欄位個數越少越好。只有欄位的個數少了,才能說明在系統中不存在資料重複,且很少有資料冗餘,更重要的是督促讀者學會“列變行”,這樣就防止了 將子表中的欄位拉入到主表中去,在主表中留下許多空餘的欄位。所謂“列變行”,就是將主表中的一部分內容拉出去,另外單獨建一個子表。這個方法很簡單,有 的人就是不習慣、不採納、不執行。