2017年計算機四級考試數(shù)據(jù)庫復習筆記:數(shù)據(jù)庫物理設計

字號:


    6.6 數(shù)據(jù)庫物理設計
    6.6.1 設計步驟和內(nèi)容
    1、 數(shù)據(jù)庫物理結(jié)構設計:在具體的硬件環(huán)境、OS、DBMS約束下,根據(jù)數(shù)據(jù)庫邏輯設計結(jié)果,設計合適的數(shù)據(jù)庫物理結(jié)構。目標是存儲空間占用少、訪問效率高和維護代價低;
    2、 一旦選定了硬件平臺、OS和DBMS,數(shù)據(jù)庫的數(shù)據(jù)存儲和存取方式等可用的物理模式也就隨之確定了;
    3、 數(shù)據(jù)庫物理設計主要包括以下步驟:
    (1) 數(shù)據(jù)庫邏輯模式調(diào)整:將數(shù)據(jù)庫邏輯模式及其視圖轉(zhuǎn)換為DBMS支持的基本表和視圖,并利用DBMS提供的完整性機制設計業(yè)務規(guī)則;
    (2) 文件組織與存取設計:配置基本表的文件組織形式,據(jù)實際情況為基本表設計合適的存取方法和路徑;
    (3) 數(shù)據(jù)分布設計:
    (4) 安全模式設計:
    (5) 確定系統(tǒng)配置:
    (6) 物理模式評估:
    6.6.2 數(shù)據(jù)庫邏輯模式調(diào)整
    1、 物理數(shù)據(jù)庫設計首先需要根據(jù)數(shù)據(jù)庫邏輯結(jié)構信息,設計目標DBMS平臺支持的基本表的模式信息,這些模式信息代表了所要開發(fā)的具體目標數(shù)據(jù)庫的結(jié)構,這個過程稱為數(shù)據(jù)庫邏輯模式調(diào)整,主要包括如下設計內(nèi)容:
    (1) 實現(xiàn)目標數(shù)據(jù)庫基本表和視采用目標DBMS所支持的建表方法,設計基本表及其面向模型的完整性約束;
    (2) 設計基本表業(yè)務規(guī)則;
    6.6.3 DB文件組織與存取設計
    1、分析事務的數(shù)據(jù)訪問特性
    (1) 使用事務-基本表交叉引用矩陣,分析系統(tǒng)內(nèi)數(shù)據(jù)庫事務對各個基本表的訪問情況,確定事務訪問了哪些基本表,對這些基本表執(zhí)行了何種操作,并進一步分析各操作涉及到的基本表屬性;
    (2) 估計各事務的執(zhí)行頻率;
    (3) 對每張基本表,匯總所有作用于該表上的各事務的操作頻率信息;
    2、 了解并選擇數(shù)據(jù)庫文件結(jié)構
    (1) 如果數(shù)據(jù)庫中的一個基本表中的數(shù)據(jù)量很少,并且操作非常頻繁,該基本表可采用堆文件組織方式;
    (2) 順序文件支持基于查找碼的順序訪問,也支持快速二分查找;
    (3) 如果用戶查詢是基于散列域值的等值匹配,特別是如果訪問順序是隨機的,散列文件比較合適。但散列文件組織不適合以下情況:
    (A) 基于散列值域的非精確查詢;
    (B) 基于非散列域進行查詢時;
    (4) B-樹和B+樹文件是實際數(shù)據(jù)庫系統(tǒng)中使用非常廣泛的索引文件結(jié)構,適合于定義在大數(shù)據(jù)量基本表上、基于查找碼的等值查詢等;
    (5) 如果某此重要而頻繁的用戶查詢經(jīng)常需要進行多表連接操作,可考慮將這些基本表組織為聚集文件;
    3、 設計存取路徑:
    (1) 為數(shù)據(jù)庫文件設計合理的物理存儲位置;
    (2) 為基本表設計索引機制:索引可以提高文件存取速度,改善訪問性能,但索引由DBMS管理,它的建立、維護需要一定的系統(tǒng)開銷,數(shù)據(jù)的操作會引起索引的重新調(diào)整,還占用一定的存儲空間,可根據(jù)如下原則決定是否為一個基本表建立索引:
    (A) 對于經(jīng)常需要查詢、連接、統(tǒng)計操作,且數(shù)據(jù)量大的基本表可考慮建立索引,而對于經(jīng)常執(zhí)行插入、刪除、更新操作或小數(shù)據(jù)量的基本表應盡量不建立索引;
    (B) 一個基本表上除了可以建立一個聚集索引外,還可以建立多個非聚集索引,但索引越多,對表內(nèi)數(shù)據(jù)更新所需的開銷越大,對于一個更新頻繁的表應少建或不建索引;
    (C) 索引可以由用戶根據(jù)需要隨時創(chuàng)建或刪除,以提高數(shù)據(jù)查詢性能;
    6.6.4 數(shù)據(jù)分布設計
    1、不同類型數(shù)據(jù)的物理分布
    (1) 各種數(shù)據(jù)在系統(tǒng)中的作用不同,使用的頻率也不一樣,應根據(jù)實際使用情況放在合適的物理介質(zhì)上;
    (2) 使用頻率低但數(shù)據(jù)量大的,可以放在磁帶中,而使用頻繁,要求響應時間短的,必須放在支持直接存取的磁盤存儲介質(zhì)上;
    2、 應用數(shù)據(jù)的劃分和分布
    (1) 根據(jù)數(shù)據(jù)的使用特征劃分:可將基本表劃分為頻繁使用分區(qū)和非頻繁使用分區(qū),分別存放在不同的磁盤上,對前者可考慮建立B+樹等多層索引,而后者不建立或只建立單層索引;
    (2) 根據(jù)時間、地點劃分;
    (3) 分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)劃分:
    3、派生屬性數(shù)據(jù)分布
    (1) 派生屬性指該屬性的取值可根據(jù)表中其他屬性的取值惟一確定;
    (2) 對帶有派生屬性的基本表可采用兩種實現(xiàn)方式:
    (A) 將派生屬性作為基本表內(nèi)單獨一列,稱為派生列;
    (B) 派生屬性不出現(xiàn)在基本表中;
    4、 關系模式的去規(guī)范化
    (1) 在數(shù)據(jù)庫物理設計階段,可以對考慮數(shù)據(jù)庫中某些3NF、BCNF模式是否可以降低其規(guī)范化程度,以提高查詢效率,這稱為關系模式的去規(guī)范化處理,但不滿足3NF的關系模式又可能導致數(shù)據(jù)庫訪問異常,因此,設計基本表時,需在規(guī)范化和查詢效率間權衡;
    6.6.5 安全模式設計
    1、系統(tǒng)安全設計
    (1) 是指為數(shù)據(jù)庫服務器合法用戶分配用戶名和口令,使其能夠正常登錄服務器訪問所需的數(shù)據(jù),還可采用基于CA認證的系統(tǒng)安全控制機制;
    1、 數(shù)據(jù)安全設計
    (1) 是指通過數(shù)據(jù)庫系統(tǒng)視圖機制和授權機制為用戶對數(shù)據(jù)庫對象訪問的權限;
    (2) 引用數(shù)據(jù)視圖機制,只給用戶需求的那部分數(shù)據(jù)訪問權限,防止由合法用戶造成信息泄密,另外數(shù)據(jù)視圖還可以防止基本表發(fā)生改變時,影響用戶的訪問;
    (3) 權限是允許用戶對一給定的數(shù)據(jù)庫對象可執(zhí)行的操作;
    (4) 數(shù)據(jù)庫安全設計需要根據(jù)用戶需求,采用授權機制,為用戶分配合法訪問的權限;
    6.6.6 確定系統(tǒng)配置
    1、 要根據(jù)實際應用系統(tǒng)的運行情況配置系統(tǒng)參數(shù);
    6.6.7 物理模式評估
    1、 在設計過程中,通過對時間效率、空間效率、維護代價和用戶要求權衡考慮,擇優(yōu)采用;
    2、 評估物理數(shù)據(jù)庫的方法完全依賴所選用的DBMS,主要從定量估算各方案的存儲空間、存取時間和維護代價入手;