關鍵字:數據庫設計 設計規范 技巧
下述十四個技巧,是許多人在大量的數據庫分析與設計實踐中,逐步總結出來的。對于這些經驗的運用,讀者不能生幫硬套,死記硬背,而要消化理解,實事求是,靈活掌握。并逐步做到:在應用中發展,在發展中應用。
1. 原始單據與實體之間的關系
可以是一對一、一對多、多對多的關系。在一般情況下,它們是一對一的關系:即一張原始單據對應且只對應一個實體。在特殊情況下,它們可能是一對多或多對一的關系,即一張原始單證對應多個實體,或多張原始單證對應一個實體。這里的實體可以理解為基本表。明確這種對應關系后,對我們設計錄入界面大有好處。
〖例1〗:一份員工履歷資料,在人力資源信息系統中,就對應三個基本表:員工基本情況表、社會關系表、工作簡歷表。這就是“一張原始單證對應多個實體”的典型例子。
2. 主鍵與外鍵
一般而言,一個實體不能既無主鍵又無外鍵。在E?R 圖中, 處于葉子部位的實體, 可以定義主鍵,也可以不定義主鍵(因為它無子孫), 但必須要有外鍵(因為它有父親)。
主鍵與外鍵的設計,在全局數據庫的設計中,占有重要地位。當全局數據庫的設計完成以后,有個美國數據庫設計專家說:“鍵,到處都是鍵,除了鍵之外,什么也沒有”,這就是他的數據庫設計經驗之談,也反映了他對信息系統核心(數據模型)的高度抽象思想。因為:主鍵是實體的高度抽象,主鍵與外鍵的配對,表示實體之間的連接。
3. 基本表的性質
基本表與中間表、臨時表不同,因為它具有如下四個特性:
(1) 原子性;颈碇械淖侄问遣豢稍俜纸獾。
(2) 原始性;颈碇械挠涗浭窃紨祿(基礎數據)的記錄。
(3) 演繹性。由基本表與代碼表中的數據,可以派生出所有的輸出數據。
(4) 穩定性;颈淼慕Y構是相對穩定的,表中的記錄是要長期保存的。
理解基本表的性質后,在設計數據庫時,就能將基本表與中間表、臨時表區分開來。
4. 范式標準
基本表及其字段之間的關系, 應盡量滿足第三范式。但是,滿足第三范式的數據庫設計,往往不是最好的設計。為了提高數據庫的運行效率,常常需要降低范式標準:適當增加冗余,達到以空間換時間的目的。
〖例2〗:有一張存放商品的基本表,如表1所示!敖痤~”這個字段的存在,表明該表的設計不滿足第三范式,因為“金額”可以由“單價”乘以“數量”得到,說明“金額”是冗余字段。但是,增加“金額”這個冗余字段,可以提高查詢統計的速度,這就是以空間換時間的作法。
在Rose 2002中,規定列有兩種類型:數據列和計算列!敖痤~”這樣的列被稱為“計算列”,而“單價”和“數量”這樣的列被稱為“數據列”。
表1 商品表的表結構
商品名稱 商品型號 單價 數量 金額
電視機 29? 2,500 40 100,000
5. 通俗地理解三個范式
通俗地理解三個范式,對于數據庫設計大有好處。在數據庫設計中,為了更好地應用三個范式,就必須通俗地理解三個范式(通俗地理解是夠用的理解,并不是最科學最準確的理解):
第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解;
第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性;
文章來源于領測軟件測試網 http://www.kjueaiud.com/