1. 程式人生 > >資料庫設計:物理結構設計

資料庫設計:物理結構設計

資料庫物理設計階段的任務是根據具體計算機系統(DBMS和硬體等)的特點,為給定的資料庫模型確定合理的儲存結構和存取方法。所謂的“合理”主要有兩個含義:一個是要使設計出的物理資料庫佔用較少的儲存空間,另一個對資料庫的操作具有儘可能高的速度。

為了設計資料庫的物理結構,設計人員必須充分了解所用DBMS的內部特徵;充分了解資料系統的實際應用環境,特別是資料應用處理的頻率和響應時間的要求;充分了解外儲存裝置的特性。資料庫的物理結構設計大致包括:確定資料的存取方法、確定資料的儲存結構。

物理結構設計階段實現的是資料庫系統的內模式,它的質量直接決定了整個系統的效能。因此在確定資料庫的儲存結構和存取方法之前,對資料庫系統所支援的事務要進行仔細分析,獲得優化資料庫物理設計的引數。

對於資料庫查詢事務,需要得到如下資訊:

l要查詢的關係。

l查詢條件(即選擇條件)所涉及的屬性。

l連線條件所涉及的屬性。

l查詢的投影屬性。

對於資料更新事務,需要得到如下資訊:

l要更新的關係。

l每個關係上的更新操作的型別。

l刪除和修改操作所涉及的屬性。

l修改操作要更改的屬性值。

上述這些資訊是確定關係存取方法的依據。除此之外,還需要知道每個事務在各關係上執行的頻率,某些事務可能具有嚴格的效能要求。例如,某個事務必須在20秒內結束。這種時間約束對於存取方法的選擇有重大的影響。需要了解每個事務的時間約束。

值得注意的是,在進行資料庫物理結構設計時,通常並不知道所有的事務,上述資訊可能不完全。所以,以後可能需要修改根據上述資訊設計的物理結構,以適應新事務的要

求。

1. 確定關係模型的存取方法

確定資料庫的存取方法,就是確定建立哪些儲存路徑以實現快速存取資料庫中的資料。現行的DBMS一般都提供了多種存取方法,如索引法、HASH法等。其中,最常用的是索引法。

資料庫的索引類似書的目錄。在書中,目錄允許使用者不必瀏覽全書就能迅速地找到所需要的位置。在資料庫中,索引也允許應用程式迅速找到表中的資料,而不必掃描整個資料庫。在書中,目錄就是內容和相應頁號的清單。在資料庫中,索引就是表中資料和相應儲存位置的列表。使用索引可以大大減少資料的查詢時間。

但需要注意的是索引雖然能加速查詢的速度,但是為資料庫中的每張表都設定大量的索引並不是一個明智的做法。這是因為增加索引也有其不利的一面:首先,每個索引都將佔用一定的儲存空間,如果建立聚簇索引

(會改變資料物理儲存位置的一種索引),佔用需要的空間就會更大;其次,當對錶中的資料進行增加、刪除和修改的時候,索引也要動態地維護,這樣就降低了資料的更新速度。

在建立索引的時候,一般遵循以下的一些經驗性原則:

l在經常需要搜尋的列上建立索引。

l在主關鍵字上建立索引。

l在經常用於連線的列上建立索引,即在外來鍵上建立索引。

l在經常需要根據範圍進行搜尋的列上建立索引,因為索引已經排序,其指定的範圍是連續的。

l在經常需要排序的列上建立索引,因為索引已經排序,這樣查詢可以利用索引的排序,加快排序查詢的時間。

l在經常成為查詢條件的列上建立索引。也就是說,在經常使用在WHERE子句中的列上面建立索引。

同樣,對於某些列不應該建立索引。這時候應該考慮下面的指導原則:

l對於那些在查詢中很少使用和參考的列不應該建立索引。因為既然這些列很少使用到,有索引並不能提高查詢的速度。相反,由於增加了索引,反而降低了系統的維護速度和增大了空間需求。

l對於那些只有很少值的列不應該建立索引。例如,人事表中的“性別”列,取值範圍只有兩項:“男”或“女”。若在其上建立索引,則平均起來,每個屬性值對應一半的元組,用索引檢索,並不能明顯加快檢索的速度。