14個數據庫設計中技巧

作者: seasun  發布時間: 2010-09-26 15:26  閱讀: 1610 次  推薦: 0   原文鏈接   [收藏]  
 
摘要:文章從各個方面總結了在數據庫設計過程中應該注意的問題與技巧,有助于大家在今后的項目開發過程中數據庫的設計。
[1] 14個數據庫設計中技巧
[2] 14個數據庫設計中技巧

  1.原始單據與實體之間的關系

  可以是一對一、一對多、多對多的關系。在一般情況下,它們是一對一的關系:即一張原始單據對應且只對應一個實體。在特殊情況下,它們可能是一對多或多對一的關系,即一張原始單據對應多個實體,或多張原始單據對應一個實體。這里的實體可以理解為基本表。明確這種對應關系后,對我們設計錄入界面大有好處。

  〖例1〗:一份員工履歷資料,在人力資源信息系統中,就對應三個基本表:員工基本情況表、社會關系表、工作簡歷表。這就是“一張原始單據對應多個實體”的典型例子。

  2.主鍵與外鍵

  一般而言,一個實體不能既無主鍵又無外鍵。在E-R 圖中,處于葉子部位的實體,可以定義主鍵,也可以不定義主鍵(因為它無子孫),但必須要有外鍵(因為它有父親)。

  主鍵與外鍵的設計,在全局數據庫的設計中,占有重要地位。當全局數據庫的設計完成以后,有個美國數據庫設計專家說:“鍵,到處都是鍵,除了鍵之外,什么也沒有”,這就是他的數據庫設計經驗之談,也反映了他對信息系統核心(數據模型)的高度抽象思想。因為:主鍵是實體的高度抽象,主鍵與外鍵的配對,表示實體之間的連接。

  3.基本表的性質

  基本表與中間表、臨時表不同,因為它具有如下四個特性:

  (1)原子性。基本表中的字段是不可再分解的。

  (2)原始性。基本表中的記錄是原始數據(基礎數據)的記錄。

  (3)演繹性。由基本表與代碼表中的數據,可以派生出所有的輸出數據。

  (4)穩定性。基本表的結構是相對穩定的,表中的記錄是要長期保存的。

  理解基本表的性質后,在設計數據庫時,就能將基本表與中間表、臨時表區分開來。

  4.范式標準

  基本表及其字段之間的關系,應盡量滿足第三范式。但是,滿足第三范式的數據庫設計,往往不是最好的設計。為了提高數據庫的運行效率,常常需要降低范式標準:適當增加冗余,達到以空間換時間的目的。

  〖例2〗:有一張存放商品的基本表,如表1所示。“金額”這個字段的存在,表明該表的設計不滿足第三范式,因為“金額”可以由“單價”乘以“數量”得到,說明“金額”是冗余字段。但是,增加“金額”這個冗余字段,可以提高查詢統計的速度,這就是以空間換時間的作法。

  在Rose 2002中,規定列有兩種類型:數據列和計算列。“金額”這樣的列被稱為“計算列”,而“單價”和“數量”這樣的列被稱為“數據列”。

  表1 商品表的表結構

  商品名稱  商品型號  單價   數量  金額

  電視機     29吋   2,500   40   100,000

  5.通俗地理解三個范式

  通俗地理解三個范式,對于數據庫設計大有好處。在數據庫設計中,為了更好地應用三個范式,就必須通俗地理解三個范式(通俗地理解是夠用的理解,并不是最科學最準確的理解):

  第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解;

  第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性;

  第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余。

  沒有冗余的數據庫設計可以做到。但是,沒有冗余的數據庫未必是最好的數據庫,有時為了提高運行效率,就必須降低范式標準,適當保留冗余數據。具體做法是:在概念數據模型設計時遵守第三范式,降低范式標準的工作放到物理數據模型設計時考慮。降低范式就是增加字段,允許冗余。

  6.要善于識別與正確處理多對多的關系

  若兩個實體之間存在多對多的關系,則應消除這種關系。消除的辦法是,在兩者之間增加第三個實體。這樣,原來一個多對多的關系,現在變為兩個一對多的關系。要將原來兩個實體的屬性合理地分配到三個實體中去。這里的第三個實體,實質上是一個較復雜的關系,它對應一張基本表。一般來講,數據庫設計工具不能識別多對多的關系,但能處理多對多的關系。

  〖例3〗:在“圖書館信息系統”中,“圖書”是一個實體,“讀者”也是一個實體。這兩個實體之間的關系,是一個典型的多對多關系:一本圖書在不同時間可以被多個讀者借閱,一個讀者又可以借多本圖書。為此,要在二者之間增加第三個實體,該實體取名為“借還書”,它的屬性為:借還時間、借還標志(0表示借書,1表示還書),另外,它還應該有兩個外鍵(“圖書”的主鍵,“讀者”的主鍵),使它能與“圖書”和“讀者”連接。

[第1頁][第2頁]
0
0
 
標簽:數據庫表
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()