6.6.2 數(shù)據(jù)庫(kù)邏輯模式調(diào)整
1、 物理數(shù)據(jù)庫(kù)設(shè)計(jì)首先需要根據(jù)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)信息,設(shè)計(jì)目標(biāo)DBMS平臺(tái)支持的基本表的模式信息,這些模式信息代表了所要開發(fā)的具體目標(biāo)數(shù)據(jù)庫(kù)的結(jié)構(gòu),這個(gè)過程稱為數(shù)據(jù)庫(kù)邏輯模式調(diào)整,主要包括如下設(shè)計(jì)內(nèi)容:
(1) 實(shí)現(xiàn)目標(biāo)數(shù)據(jù)庫(kù)基本表和視圖:采用目標(biāo)DBMS所支持的建表方法,設(shè)計(jì)基本表及其面向模型的完整性約束。
(2) 設(shè)計(jì)基本表業(yè)務(wù)規(guī)則。
6.6.3 DB文件組織與存取設(shè)計(jì)
1、分析事務(wù)的數(shù)據(jù)訪問特性
(1) 使用事務(wù)-基本表交叉引用矩陣,分析系統(tǒng)內(nèi)數(shù)據(jù)庫(kù)事務(wù)對(duì)各個(gè)基本表的訪問情況,確定事務(wù)訪問了哪些基本表,對(duì)這些基本表執(zhí)行了何種操作,并進(jìn)一步分析各操作涉及到的基本表屬性。
(2) 估計(jì)各事務(wù)的執(zhí)行頻率。
(3) 對(duì)每張基本表,匯總所有作用于該表上的各事務(wù)的操作頻率信息。
2、 了解并選擇數(shù)據(jù)庫(kù)文件結(jié)構(gòu)
(1) 如果數(shù)據(jù)庫(kù)中的一個(gè)基本表中的數(shù)據(jù)量很少,并且操作非常頻繁,該基本表可采用堆文件組織方式。
(2) 順序文件支持基于查找碼的順序訪問,也支持快速二分查找。
(3) 如果用戶查詢是基于散列域值的等值匹配,特別是如果訪問順序是隨機(jī)的,散列文件比較合適。但散列文件組織不適合以下情況:
(A) 基于散列值域的非精確查詢。
(B) 基于非散列域進(jìn)行查詢時(shí)。
(4) B-樹和B+樹文件是實(shí)際數(shù)據(jù)庫(kù)系統(tǒng)中使用非常廣泛的索引文件結(jié)構(gòu),適合于定義在大數(shù)據(jù)量基本表上、基于查找碼的等值查詢等。
(5) 如果某此重要而頻繁的用戶查詢經(jīng)常需要進(jìn)行多表連接操作,可考慮將這些基本表組織為聚集文件。
3、 設(shè)計(jì)存取路徑:
(1) 為數(shù)據(jù)庫(kù)文件設(shè)計(jì)合理的物理存儲(chǔ)位置。
(2) 為基本表設(shè)計(jì)索引機(jī)制:索引可以提高文件存取速度,改善訪問性能,但索引由DBMS管理,它的建立、維護(hù)需要一定的系統(tǒng)開銷,數(shù)據(jù)的操作會(huì)引起索引的重新調(diào)整,還占用一定的存儲(chǔ)空間,可根據(jù)如下原則決定是否為一個(gè)基本表建立索引。
(A) 對(duì)于經(jīng)常需要查詢、連接、統(tǒng)計(jì)操作,且數(shù)據(jù)量大的基本表可考慮建立索引,而對(duì)于經(jīng)常執(zhí)行插入、刪除、更新操作或小數(shù)據(jù)量的基本表應(yīng)盡量不建立索引。
(B) 一個(gè)基本表上除了可以建立一個(gè)聚集索引外,還可以建立多個(gè)非聚集索引,但索引越多,對(duì)表內(nèi)數(shù)據(jù)更新所需的開銷越大,對(duì)于一個(gè)更新頻繁的表應(yīng)少建或不建索引。
(C) 索引可以由用戶根據(jù)需要隨時(shí)創(chuàng)建或刪除,以提高數(shù)據(jù)查詢性能。
6.6.4 數(shù)據(jù)分布設(shè)計(jì)
1、不同類型數(shù)據(jù)的物理分布
(1) 各種數(shù)據(jù)在系統(tǒng)中的作用不同,使用的頻率也不一樣,應(yīng)根據(jù)實(shí)際使用情況放在合適的物理介質(zhì)上。
(2) 使用頻率低但數(shù)據(jù)量大的,可以放在磁帶中,而使用頻繁,要求響應(yīng)時(shí)間短的,必須放在支持直接存取的磁盤存儲(chǔ)介質(zhì)上。
2、 應(yīng)用數(shù)據(jù)的劃分和分布
(1) 根據(jù)數(shù)據(jù)的使用特征劃分:可將基本表劃分為頻繁使用分區(qū)和非頻繁使用分區(qū),分別存放在不同的磁盤上,對(duì)前者可考慮建立B+樹等多層索引,而后者不建立或只建立單層索引。
(2) 根據(jù)時(shí)間、地點(diǎn)劃分。
(3) 分布式數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)劃分。
3、派生屬性數(shù)據(jù)分布
(1) 派生屬性指該屬性的取值可根據(jù)表中其他屬性的取值惟一確定。
(2) 對(duì)帶有派生屬性的基本表可采用兩種實(shí)現(xiàn)方式。
(A) 將派生屬性作為基本表內(nèi)單獨(dú)一列,稱為派生列。
(B) 派生屬性不出現(xiàn)在基本表中。
4、 關(guān)系模式的去規(guī)范化
(1) 在數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段,可以對(duì)考慮數(shù)據(jù)庫(kù)中某些3NF、BCNF模式是否可以降低其規(guī)范化程度,以提高查詢效率,這稱為關(guān)系模式的去規(guī)范化處理,但不滿足3NF的關(guān)系模式又可能導(dǎo)致數(shù)據(jù)庫(kù)訪問異常,因此,設(shè)計(jì)基本表時(shí),需在規(guī)范化和查詢效率間權(quán)衡。
相關(guān)推薦:
2012年計(jì)算機(jī)等考四級(jí)數(shù)據(jù)庫(kù)工程師備考筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |