《实体资料库设计与效能.ppt》由会员分享,可在线阅读,更多相关《实体资料库设计与效能.ppt(36页珍藏版)》请在三一办公上搜索。
1、1,Prentice Hall,2002,第6章:實體資料庫設計與效能,資料庫管理與應用第六版Jeffrey A.Hoffer,Mary B.Prescott,Fred R.McFadden,2,Prentice Hall,2002,SDLC的實體設計階段(圖2-4與2-5),專案辨識與選擇,專案啟始與規劃,分析,實體設計,實作,維護,邏輯設計,目的 開發技術規格產出 程式與資料結構、技術採購、組織再造,資料庫活動 實體資料庫設計,3,Prentice Hall,2002,實體資料庫設計,目的-將資料的邏輯描述轉換成儲存與擷取資料的設計規格目標-產生儲存資料的設計提供適當的效能確保資料庫完整性
2、、安全性、與可復原性,4,Prentice Hall,2002,實體設計流程,5,Prentice Hall,2002,圖 6-1綜合使用圖(松谷傢具公司),6,Prentice Hall,2002,圖 6-1綜合使用圖(松谷傢具公司),資料量,7,Prentice Hall,2002,圖 6-1綜合使用圖(松谷傢具公司),存取頻率(每小時),8,Prentice Hall,2002,圖 6-1綜合使用圖(松谷傢具公司),使用分析:每小時存取200 次採購零件 這200次採購零件的存取中會存取80次報價這80次報價存取中會存取70次供應商,9,Prentice Hall,2002,圖 6-1綜
3、合使用圖(松谷傢具公司),使用分析:每小時存取75次供應商 75次供應商的存取中會存取40次報價40次報價的存取中會存取40次採購零件,10,Prentice Hall,2002,設計欄位,欄位:資料庫中的最小資料單元欄位設計選擇資料型態編碼、壓縮、加密控制資料完整性,11,Prentice Hall,2002,選擇資料型態,CHAR 固定長度的字元VARCHAR2 變動長度的字元(memo)LONG 大型數字NUMBER 正/負數字DATE 實際日期BLOB 二進位的大型物件(適用於圖形、聲音等),12,Prentice Hall,2002,圖 6-2編碼對照表範例(松谷傢具),編碼會節省空
4、間但取得實際資料值需要花費額外的一次查詢,13,Prentice Hall,2002,欄位資料完整性,預設值 沒有指定資料時所採用的值範圍控制 容許值的限制(限制或驗證規則)Null 值控制 允許或禁止空欄位參考完整性 外來鍵與主鍵配對的範圍控制(以及是否允許null值),14,Prentice Hall,2002,處理缺值資料,以估計值來取代(e.g.利用公式)建立缺值清單的報表在程式中除非特別重要否則忽略出缺的值,可用觸發程序來執行這些動作,15,Prentice Hall,2002,實體記錄,實體記錄:儲存在緊鄰記憶體位置的一群欄位當成擷取的單位頁:單筆I/O運算中所讀寫的資料量區塊係數
5、:每頁能容納的實體記錄數目,16,Prentice Hall,2002,去正規化,將正規化的關聯表轉換成非正規化的實體記錄規格優點:能降低表格查詢的次數(也就是降低必要的合併查詢次數)以增進效能(速度)成本(由於資料複製)浪費儲存空間資料完整性/一致性的威脅常見的去正規化機會一對一關係(圖6-3)帶有屬性的多對多關係(圖6-4)參考資料(1:N關係其中單基數邊有其他關係沒有使用到的資料)(圖6-5),17,Prentice Hall,2002,圖 6.5 可能的去正規化情況:參考資料,需要額外的表格存取,資料複製,18,Prentice Hall,2002,分割,水平分割:將表格的列分散到幾個
6、分開的檔案 當不同的使用者需要存取不同的資料列時特別有用3種方式:鍵範圍分割、雜湊式分割、複合式分割垂直分割:將一個表格的欄位分散到幾個分開的檔案 當不同的使用者需要存取不同的欄位時特別有用 每個檔案中必須重複納入主鍵組合水平與垂直分割,分割通常會符合使用者綱要(使用者視界),19,Prentice Hall,2002,分割,分割的優點:一起使用的記錄儲存在一起每份分割可最佳化其效能安全性、復原儲存在不同磁碟的分割:競爭充分利用平行處理的好處分割的缺點:跨分割的擷取速度緩慢複雜度,20,Prentice Hall,2002,資料複製,故意將相同的資料儲存在資料庫的多個位置讓多個使用者可在最小的
7、競爭狀況下同時存取相同的資料以改善效能由於資料複製的緣故犧牲了資料的完整性最適合不常更新的資料,21,Prentice Hall,2002,設計實體檔案,實體檔案:一塊有名稱的次級記憶體,配置的目的是為了要儲存實體記錄連結資料的構件:循序儲存指標檔案結構:如何在磁碟上安排檔案的技術存取方法:在檔案結構的基礎上如何擷取資料,22,Prentice Hall,2002,圖 6-7(a)循序式檔案結構,如果沒有排序找到記錄的平均時間=n/2.,1,2,n,根據主鍵欄位值依序地儲存檔案記錄,如果有排序 每次新增或刪除就需要重新排序,23,Prentice Hall,2002,索引式檔案結構,索引 包含
8、記錄結構的個別表格以加速擷取主鍵會自動建索引Oracle 有CREATE INDEX 運算,而MS ACCESS可為大部分的欄位類型建立索引索引的建構方式:B-tree索引圖 6-7b位元映射圖索引圖 6-8雜湊索引圖 6-7c合併索引圖 6-9,24,Prentice Hall,2002,圖 6-7b B-tree 索引,利用樹狀結構來搜尋找到記錄的平均時間=樹狀結構的深度,樹狀結構的所有樹葉都在同一層一致的存取時間,25,Prentice Hall,2002,圖 6-7c雜湊檔案或結構,雜湊演算法經常使用除法運算的餘數來決定記錄的位置相同位置的記錄則以串列串起來,26,Prentice H
9、all,2002,圖6-8位元映射圖 索引的索引結構,位元映射圖節省空間的需求列 屬性的可能值行 表格列位元表示該表格列的屬性是否有其值,27,Prentice Hall,2002,圖6-9 合併 索引 加速合併運算,28,Prentice Hall,2002,叢集檔案,在某些關聯式DBMS中來自不同表格的相關記錄可一起儲存在相同的磁碟區域中對於改善合併運算的效能非常有幫助主要表格的主鍵記錄與相依表格對應的外來鍵記錄儲存在緊鄰的位置例如Oracle 有 CREATE CLUSTER 命令,29,Prentice Hall,2002,使用索引的經驗法則,1.索引對大表格比較有用 2.為每個表格的
10、主鍵建索引3.為搜尋欄位建索引(經常出現在WHERE子句中的欄位)4.為ORDER BY及GROUP BY子句中參考的欄位建索引5.屬性的值若大於100種要用索引;屬性的值若少於30種不要用索引,30,Prentice Hall,2002,使用索引的經驗法則,6.DBMS對於每個表格可用的索引數目與每個索引欄位的位元組數目可能有限制7.不能從索引參考到Null值8.針對不易變動的資料庫使用大量的索引;而對於變動大的資料庫則要限制索引的使用為什麼?因為修改(例如新增或刪除)時檔案索引也要跟著修改,31,Prentice Hall,2002,RAID,磁碟陣列一組磁碟,但使用者看起來就好像只是一部
11、磁碟可平行存取資料(改善存取速度)安排記憶頁在stripe(狹長區塊)中,32,Prentice Hall,2002,圖 6-10 含4部磁碟的RAID與striping機制,可同時讀寫pages 1-4,33,Prentice Hall,2002,磁碟陣列的類型(圖 6-11),Raid 0最大程度的平行存取 沒有冗餘沒有錯誤修正 沒有容錯能力Raid 1冗餘的資料 具有容錯能力 最常見的形式Raid 2沒有冗餘一筆記錄橫跨數個資料磁碟在多部磁碟上進行錯誤修正-以重建受損的資料,Raid 3在一部磁碟上進行錯誤修正記錄橫跨多部資料磁碟(比Raid 2多)不適於多使用者的環境Raid 4在一部
12、磁碟上進行錯誤修正每條stripe上有多筆記錄可平行處理但由於錯誤修正的競爭減緩更新的速度Raid 5循環的同位陣列 儲存資料與錯誤修正碼於同一部磁碟可平行處理效能比Raid 4好,34,Prentice Hall,2002,圖6-12 資料庫結構,舊時系統,當代技術,資料倉儲,35,Prentice Hall,2002,查詢最佳化,平行查詢處理覆蓋自動的查詢最佳化資料區塊大小 效能的取捨:區塊競爭隨機與循序式列存取的速度列的長度額外負擔平衡磁碟控制模組之間的I/O,36,Prentice Hall,2002,查詢最佳化,聰明地使用索引相容的資料型態建議的查詢避免巢狀的查詢查詢群組的暫時表格只選取需要的欄位如果沒有索引不要排序,