天天看點

資料庫設計之實體結構設計

為一個給定的邏輯資料模型標明一個最合适應用要求的實體結構的過程,就是資料庫的實體設計。

1. 實體設計步驟

資料庫的實體設計通常分為兩步:

(1) 确定資料庫的實體結構,在關系資料庫中主要指存取方法和存儲結構。

(2) 對實體結構進行評價,評價的重點是時間和空間效率。

如果評價結果滿足原設計要求,則可進入到實體實施階段,否則,就需要重新設計或修改實體結構,有時甚至還要傳回邏輯設計階段修改資料模型。

2. 資料庫實體設計的内容和方法

希望設計優化的實體資料庫結構,使得在資料庫上運作的各種事務相應時間小,存儲空間使用率高,事務吞吐率大,是以需要:

(1) 首先要對運作的事務進行詳細分析,獲得選擇實體資料庫設計所需要的參數。

(2)要充分了解所用關系資料庫管理系統的内部特征,特别是系統提供的存取方法和存儲結構。

3. 關系模式存取方法選擇

  • B+樹索引存取方法的選擇

選擇索引存取方法就是根據應用要求确定對關系的那些屬性列建立索引,哪些屬性列建立組合索引,哪些索引要設計唯一索引等。

  1. 如果一個(或一組)屬性經常在查詢條件中出現,則考慮在這個(或這組)屬性上建立索引(或組合索引)。
  2. 如果一個屬性經常作為最大值和最小值等聚集函數的參數,則考慮在這個屬性上建立索引。
  3. 如果一個(或一組)屬性經常在連接配接操作的連接配接條件中出現,則考慮在這個(或這組)屬性上建立索引。

關系上定義的索引數并不是越多越好,系統為維護索引要付出代價,查找索引也要付出代價。

  • hash索引存取方法的選擇

選擇hash存取方法的規則:如果一個關系的屬性主要出現在等值連接配接條件中或主要出現在等值比較選擇條件中,而且滿足下列兩個條件之一,則此關系可以選擇hash存取方法。

  1. 一個關系的大小可預知,而且不變。
  2. 關系的大小動态改變,但資料庫管理系統提供了動态hash存取方法。
  • 聚簇存取方法的選擇

為了提高某個屬性(或屬性組)的查詢速度,把這個或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續的實體塊中稱為聚簇。

聚簇功能可以大大提高按聚簇碼進行查詢的效率,聚簇功能不單适用于單個關系,也适用于經常進行連接配接操作的多個關系。一個資料庫可以連接配接多個聚簇,一個關系隻能加入一個聚簇。

(1) 設計候選聚簇的條件

  1. 對經常在一起進行連接配接操作的關系可以建立聚簇。
  2. 如果一個關系的一組屬性經常出現在相等比較條件中,則該單個關系可建立聚簇。
  3. 如果一個關系的一個(或一組)屬性上的值重複率很高,則此單個關系可建立聚簇。即對應每個聚簇碼值的平均元組數不能太少。

(2) 檢查候選聚簇

  1. 從聚簇中删除經常進行全表掃描的關系。
  2. 從聚簇中删除更新操作遠多于連接配接操作的關系。
  3. 不同的聚簇中可能包含相同的關系,一個關系可以在某一個聚簇中,但不能同時加入多個聚簇。要從這多個聚簇方案(包括不建立聚簇)中選擇一個較優的,即在這個聚簇上運作各種事務的總代價最小。

4. 确定資料庫的存儲結構

确定資料庫實體結構主要指确定資料的存放位置和存儲結構,包括确定關系、索引、聚簇、日志、備份等的存儲安排和存儲結構,确定系統配置等。

确定資料的存放位置和存儲結構要綜合考慮存取時間、存儲空間使用率和維護代價三方面的因素。這三個方面常常是互相沖突的,是以需要進行權衡選擇一個折中方案。

  • 确定資料的存放位置

為了提高系統性能,應根據應用情況将資料的易變部分與穩定部分、經常存取部分和存取頻率較低部分分開存放。

  • 确定系統配置

關系資料庫管理系統産品一般都提供了一些系統配置變量和存儲配置設定參數,供設計人員和資料庫管理者對資料庫進行實體優化。初始情況下,系統都為這些變量賦予了合理的預設值。但是這些值不一定适合每一種應用環境,在進行實體設計時需要重新對些變量指派,以修改系統的性能。

5. 評價實體結構

評價實體資料庫的方法完全依賴于所選用的關系資料庫管理系統,主要是從定量估算各種方案的存儲空間、存取時間和維護代價入手,對估算結果進行權衡、比較,選擇出一個較優的、合理的實體結構。如果該結構不符合使用者需求,則需要修改設計。