數(shù)據(jù)庫(kù)系統(tǒng)概論課件:第7章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.3_第1頁
數(shù)據(jù)庫(kù)系統(tǒng)概論課件:第7章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.3_第2頁
數(shù)據(jù)庫(kù)系統(tǒng)概論課件:第7章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.3_第3頁
數(shù)據(jù)庫(kù)系統(tǒng)概論課件:第7章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.3_第4頁
數(shù)據(jù)庫(kù)系統(tǒng)概論課件:第7章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.3_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、中國(guó)人民大學(xué)信息學(xué)院 數(shù)據(jù)庫(kù)系統(tǒng)概論An Introduction to Database System第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)(續(xù)2)An Introduction to Database System第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2 需求分析7.3 概念結(jié)構(gòu)設(shè)計(jì)7.4 邏輯結(jié)構(gòu)設(shè)計(jì)7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6 數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)7.7 小結(jié)An Introduction to Database System7.4 邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)的步驟將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系

2、、網(wǎng)狀、層次模型將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化An Introduction to Database System 邏輯結(jié)構(gòu)設(shè)計(jì)(續(xù))邏輯結(jié)構(gòu)設(shè)計(jì)時(shí)的3個(gè)步驟 An Introduction to Database System7.4 邏輯結(jié)構(gòu)設(shè)計(jì)7.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換7.4.2 數(shù)據(jù)模型的優(yōu)化7.4.3 設(shè)計(jì)用戶子模式An Introduction to Database System7.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換轉(zhuǎn)換內(nèi)容轉(zhuǎn)換原則An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換

3、(續(xù))E-R圖向關(guān)系模型的轉(zhuǎn)換要解決的問題 如何將實(shí)體型和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式如何確定這些關(guān)系模式的屬性和碼 轉(zhuǎn)換內(nèi)容將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))實(shí)體型間的聯(lián)系有以下不同情況 :(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式 與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并(2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式與n端對(duì)應(yīng)的關(guān)系模式

4、合并An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))(3) 一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。例,“選修”聯(lián)系是一個(gè)m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)與課程號(hào)為關(guān)系的組合碼:選修(學(xué)號(hào),課程號(hào),成績(jī))An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))(4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。例,“講授”聯(lián)系是一個(gè)三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號(hào)、職工號(hào)和書號(hào)為關(guān)系的組合碼:講授(課程號(hào),職工號(hào),書號(hào))An Introduction to Databa

5、se SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))(5)具有相同碼的關(guān)系模式可合并目的:減少系統(tǒng)中的關(guān)系個(gè)數(shù)合并方法:將其中一個(gè)關(guān)系模式的全部屬性加入到另一個(gè)關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當(dāng)調(diào)整屬性的次序An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))注意:從理論上講,1:1聯(lián)系可以與任意一端對(duì)應(yīng)的關(guān)系模式合并但在一些情況下,與不同的關(guān)系模式合并效率會(huì)大不一樣。因此究竟應(yīng)該與哪端的關(guān)系模式合并需要依應(yīng)用的具體情況而定。由于連接操作是最費(fèi)時(shí)的操作,所以一般應(yīng)以盡量減少連接操作為目標(biāo)。 例如,如果經(jīng)常要查詢某個(gè)班級(jí)的

6、班主任姓名,則將管理聯(lián)系與教師關(guān)系合并更好些。An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例 把圖7.30中虛線上部的E-R圖轉(zhuǎn)換為關(guān)系模型 部門實(shí)體對(duì)應(yīng)的關(guān)系模式 部門(部門號(hào),部門名,經(jīng)理的職工號(hào),) 此關(guān)系模式已包含了聯(lián)系“領(lǐng)導(dǎo)”所對(duì)應(yīng)的關(guān)系模式 經(jīng)理的職工號(hào)是關(guān)系的候選碼 職工實(shí)體對(duì)應(yīng)的關(guān)系模式 職工(職工號(hào)、部門號(hào),職工名,職務(wù),) 該關(guān)系模式已包含了聯(lián)系“屬于”所對(duì)應(yīng)的關(guān)系模式 An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例 把圖7.30中虛線上部的E-R圖轉(zhuǎn)換為關(guān)系模型(續(xù)

7、) 產(chǎn)品實(shí)體對(duì)應(yīng)的關(guān)系模式 產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,產(chǎn)品組長(zhǎng)的職工號(hào),)供應(yīng)商實(shí)體對(duì)應(yīng)的關(guān)系模式 供應(yīng)商(供應(yīng)商號(hào),姓名,) 零件實(shí)體對(duì)應(yīng)的關(guān)系模式 零件(零件號(hào),零件名,) An Introduction to Database SystemE-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例 把圖7.30中虛線上部的E-R圖轉(zhuǎn)換為關(guān)系模型(續(xù)) 聯(lián)系“參加”所對(duì)應(yīng)的關(guān)系模式 職工工作(職工號(hào),產(chǎn)品號(hào),工作天數(shù),) 聯(lián)系“供應(yīng)”所對(duì)應(yīng)的關(guān)系模式 供應(yīng)(產(chǎn)品號(hào),供應(yīng)商號(hào),零件號(hào),供應(yīng)量) An Introduction to Database System7.4 邏輯結(jié)構(gòu)設(shè)計(jì)7.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換7.

8、4.2 數(shù)據(jù)模型的優(yōu)化7.4.3 設(shè)計(jì)用戶子模式An Introduction to Database System7.4.2 數(shù)據(jù)模型的優(yōu)化得到初步數(shù)據(jù)模型后,還應(yīng)該適當(dāng)?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)An Introduction to Database System數(shù)據(jù)模型的優(yōu)化(續(xù))優(yōu)化數(shù)據(jù)模型的方法確定數(shù)據(jù)依賴按需求分析階段所得到的語義,分別寫出每個(gè)關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴消除 冗余的聯(lián)系對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除 冗余的聯(lián)系。確定

9、所屬范式按照數(shù)據(jù)依賴的理論對(duì)關(guān)系模式逐一進(jìn)行分析考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等確定各關(guān)系模式分別屬于第幾范式An Introduction to Database System數(shù)據(jù)模型的優(yōu)化(續(xù))按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適, 確定是否要對(duì)它們進(jìn)行合并或分解。注意:并不是規(guī)范化程度越高的關(guān)系就越優(yōu),一般說來,第三范式就足夠了An Introduction to Database System數(shù)據(jù)模型的優(yōu)化(續(xù))例:在關(guān)系模式 學(xué)生成績(jī)單(學(xué)號(hào),英語,數(shù)學(xué),語文,平均成績(jī)) 中存在下列函數(shù)依賴: 學(xué)號(hào)英語 學(xué)號(hào)數(shù)學(xué) 學(xué)

10、號(hào)語文 學(xué)號(hào)平均成績(jī) (英語, 數(shù)學(xué), 語文)平均成績(jī)An Introduction to Database System數(shù)據(jù)模型的優(yōu)化(續(xù)) 顯然有: 學(xué)號(hào)(英語,數(shù)學(xué),語文)因此該關(guān)系模式中存在傳遞函數(shù)信賴,是2NF關(guān)系 雖然平均成績(jī)可以由其他屬性推算出來,但如果應(yīng)用中需要經(jīng)常查詢學(xué)生的平均成績(jī),為提高效率,仍然可保留該冗余數(shù)據(jù),對(duì)關(guān)系模式不再做進(jìn)一步分解An Introduction to Database System數(shù)據(jù)模型的優(yōu)化(續(xù))按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,對(duì)關(guān)系模式進(jìn)行必要的分解,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率常用分解方法水平分解垂直分解An In

11、troduction to Database System數(shù)據(jù)模型的優(yōu)化(續(xù))水平分解什么是水平分解把(基本)關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率水平分解的適用范圍滿足“80/20原則”的應(yīng)用并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù)An Introduction to Database System數(shù)據(jù)模型的優(yōu)化(續(xù))垂直分解什么是垂直分解把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式垂直分解的適用范圍取決于分解后R上的所有事務(wù)的總效率是否得到了提高An Introduction to Database System7.4 邏輯結(jié)構(gòu)設(shè)計(jì)7.4.1 E-R圖向關(guān)系模

12、型的轉(zhuǎn)換7.4.2 數(shù)據(jù)模型的優(yōu)化7.4.3 設(shè)計(jì)用戶子模式An Introduction to Database System7.4.3 設(shè)計(jì)用戶子模式定義用戶外模式時(shí)應(yīng)該注重的問題 包括三個(gè)方面: (1) 使用更符合用戶習(xí)慣的別名 (2) 針對(duì)不同級(jí)別的用戶定義不同的View ,以 滿足系統(tǒng)對(duì)安全性的要求。 (3) 簡(jiǎn)化用戶對(duì)系統(tǒng)的使用An Introduction to Database System設(shè)計(jì)用戶子模式(續(xù))例 關(guān)系模式產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,規(guī)格,單價(jià),生產(chǎn)車間,生產(chǎn)負(fù)責(zé)人,產(chǎn)品成本,產(chǎn)品合格率,質(zhì)量等級(jí)),可以在產(chǎn)品關(guān)系上建立兩個(gè)視圖: 為一般顧客建立視圖: 產(chǎn)品1(產(chǎn)品號(hào)

13、,產(chǎn)品名,規(guī)格,單價(jià)) 為產(chǎn)品銷售部門建立視圖: 產(chǎn)品2(產(chǎn)品號(hào),產(chǎn)品名,規(guī)格,單價(jià),車間,生產(chǎn)負(fù)責(zé)人)顧客視圖中只包含允許顧客查詢的屬性銷售部門視圖中只包含允許銷售部門查詢的屬性生產(chǎn)領(lǐng)導(dǎo)部門則可以查詢?nèi)慨a(chǎn)品數(shù)據(jù)可以防止用戶非法訪問不允許他們查詢的數(shù)據(jù),保證系統(tǒng)的安全性An Introduction to Database System邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)任務(wù)將概念結(jié)構(gòu)轉(zhuǎn)化為具體的數(shù)據(jù)模型邏輯結(jié)構(gòu)設(shè)計(jì)的步驟將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型將轉(zhuǎn)化來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化設(shè)計(jì)用戶子模式An Introduction to Database

14、 System邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)E-R圖向關(guān)系模型的轉(zhuǎn)換內(nèi)容E-R圖向關(guān)系模型的轉(zhuǎn)換原則An Introduction to Database System邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)優(yōu)化數(shù)據(jù)模型的方法 1. 確定數(shù)據(jù)依賴 2. 對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。 3. 確定各關(guān)系模式分別屬于第幾范式。 4. 分析對(duì)于應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。 5. 對(duì)關(guān)系模式進(jìn)行必要的分解或合并An Introduction to Database System邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)設(shè)計(jì)用戶子模式 1. 使用更符合用戶習(xí)慣的別名 2. 針對(duì)不同級(jí)別的用戶定義不同的外模

15、式,以滿足系統(tǒng)對(duì)安全性的要求。 3. 簡(jiǎn)化用戶對(duì)系統(tǒng)的使用An Introduction to Database System第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2 需求分析7.3 概念結(jié)構(gòu)設(shè)計(jì)7.4 邏輯結(jié)構(gòu)設(shè)計(jì)7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6 數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)7.7 小結(jié)An Introduction to Database System7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫(kù)管理系統(tǒng)為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)An Introduction to

16、 Database System數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(續(xù))數(shù)據(jù)庫(kù)物理設(shè)計(jì)的步驟確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存儲(chǔ)結(jié)構(gòu) 對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率 如果評(píng)價(jià)結(jié)果滿足原設(shè)計(jì)要求,則可進(jìn)入到物理實(shí)施階段,否則,就需要重新設(shè)計(jì)或修改物理結(jié)構(gòu),有時(shí)甚至要返回邏輯設(shè)計(jì)階段修改數(shù)據(jù)模型An Introduction to Database System數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(續(xù))數(shù)據(jù)庫(kù)物理設(shè)計(jì)確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)評(píng)價(jià)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施物理模型邏輯模型An Introduction to Database System7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.5.1 數(shù)據(jù)

17、庫(kù)物理設(shè)計(jì)的內(nèi)容和方法7.5.2 關(guān)系模式存取方法選擇7.5.3 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)7.5.4 評(píng)價(jià)物理結(jié)構(gòu)An Introduction to Database System7.5.1 數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法設(shè)計(jì)物理數(shù)據(jù)庫(kù)結(jié)構(gòu)的準(zhǔn)備工作對(duì)要運(yùn)行的事務(wù)進(jìn)行詳細(xì)分析,獲得選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)充分了解所用RDBMS的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲(chǔ)結(jié)構(gòu)An Introduction to Database System數(shù)據(jù)庫(kù)的物理設(shè)計(jì)的內(nèi)容和方法(續(xù))選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù) 數(shù)據(jù)庫(kù)查詢事務(wù)查詢的關(guān)系 查詢條件所涉及的屬性 連接條件所涉及的屬性 查詢的投影屬性 An Intr

18、oduction to Database System數(shù)據(jù)庫(kù)的物理設(shè)計(jì)的內(nèi)容和方法(續(xù))選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)(續(xù))數(shù)據(jù)更新事務(wù)被更新的關(guān)系每個(gè)關(guān)系上的更新操作條件所涉及的屬性 修改操作要改變的屬性值 每個(gè)事務(wù)在各關(guān)系上運(yùn)行的頻率和性能要求An Introduction to Database System數(shù)據(jù)庫(kù)的物理設(shè)計(jì)的內(nèi)容和方法(續(xù))關(guān)系數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容為關(guān)系模式選擇存取方法(建立存取路徑) 設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫(kù)文件的物理存儲(chǔ)結(jié)構(gòu)An Introduction to Database System7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.5.1 數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法7.5.2 關(guān)系模式

19、存取方法選擇7.5.3 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)7.5.4 評(píng)價(jià)物理結(jié)構(gòu)An Introduction to Database System7.5.2 關(guān)系模式存取方法選擇數(shù)據(jù)庫(kù)系統(tǒng)是多用戶共享的系統(tǒng),對(duì)同一個(gè)關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求物理設(shè)計(jì)的任務(wù)之一就是要確定選擇哪些存取方法,即建立哪些存取路徑An Introduction to Database System關(guān)系模式存取方法選擇(續(xù))DBMS常用存取方法索引方法目前主要是B+樹索引方法經(jīng)典存取方法,使用最普遍 聚簇(Cluster)方法HASH方法An Introduction to Database System一

20、、索引存取方法的選擇根據(jù)應(yīng)用要求確定 對(duì)哪些屬性列建立索引 對(duì)哪些屬性列建立組合索引 對(duì)哪些索引要設(shè)計(jì)為唯一索引An Introduction to Database System索引存取方法的選擇(續(xù))選擇索引存取方法的一般規(guī)則如果一個(gè)(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引(或組合索引)如果一個(gè)屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個(gè)屬性上建立索引如果一個(gè)(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引關(guān)系上定義的索引數(shù)過多會(huì)帶來較多的額外開銷 維護(hù)索引的開銷 查找索引的開銷An Introduction t

21、o Database System二、聚簇存取方法的選擇聚簇為了提高某個(gè)屬性(或?qū)傩越M)的查詢速度,把這個(gè)或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇An Introduction to Database System聚簇存取方法的選擇(續(xù))聚簇的用途1. 大大提高按聚簇碼進(jìn)行查詢的效率 例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查詢信息系的所有學(xué)生名單。信息系的500名學(xué)生分布在500個(gè)不同的物理塊上時(shí),至少要執(zhí)行500次I/O操作如果將同一系的學(xué)生元組集中存放,則每讀一個(gè)物理塊可得到多個(gè)滿足查詢條件的元組,從而顯著地減少了訪問磁盤的次數(shù)An Introductio

22、n to Database System聚簇存取方法的選擇(續(xù))2. 節(jié)省存儲(chǔ)空間聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個(gè)元組中重復(fù)存儲(chǔ),只要在一組中存一次就行了An Introduction to Database System聚簇存取方法的選擇(續(xù))聚簇的局限性1. 聚簇只能提高某些特定應(yīng)用的性能2. 建立與維護(hù)聚簇的開銷相當(dāng)大對(duì)已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動(dòng)其物理存儲(chǔ)位置,并使此關(guān)系上原有的索引無效,必須重建當(dāng)一個(gè)元組的聚簇碼改變時(shí),該元組的存儲(chǔ)位置也要做相應(yīng)移動(dòng)An Introduction to Database System聚簇存取方法的選擇(續(xù))聚簇

23、的適用范圍1. 既適用于單個(gè)關(guān)系獨(dú)立聚簇,也適用于多個(gè)關(guān)系組合聚簇例:假設(shè)用戶經(jīng)常要按系別查詢學(xué)生成績(jī)單,這一查詢涉及學(xué)生關(guān)系和選修關(guān)系的連接操作,即需要按學(xué)號(hào)連接這兩個(gè)關(guān)系,為提高連接操作的效率,可以把具有相同學(xué)號(hào)值的學(xué)生元組和選修元組在物理上聚簇在一起。這就相當(dāng)于把多個(gè)關(guān)系按“預(yù)連接”的形式存放,從而大大提高連接操作的效率。An Introduction to Database System聚簇存取方法的選擇(續(xù))2. 當(dāng)通過聚簇碼進(jìn)行訪問或連接是該關(guān)系的主要應(yīng)用,與聚簇碼無關(guān)的其他訪問很少或者是次要的時(shí),可以使用聚簇。尤其當(dāng)SQL語句中包含有與聚簇碼有關(guān)的ORDER BY,GROUP B

24、Y,UNION,DISTINCT等子句或短語時(shí),使用聚簇特別有利,可以省去對(duì)結(jié)果集的排序操作An Introduction to Database System聚簇存取方法的選擇(續(xù))設(shè)計(jì)候選聚簇對(duì)經(jīng)常在一起進(jìn)行連接操作的關(guān)系可以建立聚簇如果一個(gè)關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中,則該單個(gè)關(guān)系可建立聚簇如果一個(gè)關(guān)系的一個(gè)(或一組)屬性上的值重復(fù)率很高,則此單個(gè)關(guān)系可建立聚簇。即對(duì)應(yīng)每個(gè)聚簇碼值的平均元組數(shù)不太少。太少了,聚簇的效果不明顯An Introduction to Database System聚簇存取方法的選擇(續(xù))優(yōu)化聚簇設(shè)計(jì)從聚簇中刪除經(jīng)常進(jìn)行全表掃描的關(guān)系;從聚簇中刪除更新

25、操作遠(yuǎn)多于連接操作的關(guān)系;不同的聚簇中可能包含相同的關(guān)系,一個(gè)關(guān)系可以在某一個(gè)聚簇中,但不能同時(shí)加入多個(gè)聚簇 從這多個(gè)聚簇方案(包括不建立聚簇)中選擇一個(gè)較優(yōu)的,即在這個(gè)聚簇上運(yùn)行各種事務(wù)的總代價(jià)最小An Introduction to Database System三、HASH存取方法的選擇選擇HASH存取方法的規(guī)則當(dāng)一個(gè)關(guān)系滿足下列兩個(gè)條件時(shí),可以選擇HASH存取方法該關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等比較選擇條件中該關(guān)系的大小可預(yù)知,而且不變; 或 該關(guān)系的大小動(dòng)態(tài)改變,但所選用的DBMS提供了動(dòng)態(tài)HASH存取方法An Introduction to Database S

26、ystem7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.5.1 數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法7.5.2 關(guān)系模式存取方法選擇7.5.3 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)7.5.4 評(píng)價(jià)物理結(jié)構(gòu)An Introduction to Database System7.5.3 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)確定數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的內(nèi)容1. 確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu) 關(guān)系 索引 聚簇 日志 備份2. 確定系統(tǒng)配置An Introduction to Database System1. 確定數(shù)據(jù)的存放位置確定數(shù)據(jù)存放位置和存儲(chǔ)結(jié)構(gòu)的因素存取時(shí)間存儲(chǔ)空間利用率維護(hù)代價(jià) 這三個(gè)方面常常是相互矛盾的 例:消除一切冗余數(shù)據(jù)雖能夠節(jié)約存儲(chǔ)空間和減少維護(hù)代

27、價(jià),但往往會(huì)導(dǎo)致檢索代價(jià)的增加 必須進(jìn)行權(quán)衡,選擇一個(gè)折中方案An Introduction to Database System確定數(shù)據(jù)的存放位置(續(xù))基本原則根據(jù)應(yīng)用情況將易變部分與穩(wěn)定部分分開存放存取頻率較高部分與存取頻率較低部分,分開存放An Introduction to Database System確定數(shù)據(jù)的存放位置(續(xù))例:數(shù)據(jù)庫(kù)數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時(shí)才使用,而且數(shù)據(jù)量很大,可以考慮存放在磁帶上如果計(jì)算機(jī)有多個(gè)磁盤或磁盤陣列 ,可以考慮將表和索引分別放在不同的磁盤上,在查詢時(shí),由于磁盤驅(qū)動(dòng)器并行工作,可以提高物理I/O讀寫的效率 An Introductio

28、n to Database System確定數(shù)據(jù)的存放位置(續(xù))例(續(xù)):可以將比較大的表分別放在兩個(gè)磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效可以將日志文件與數(shù)據(jù)庫(kù)對(duì)象(表、索引等)放在不同的磁盤以改進(jìn)系統(tǒng)的性能An Introduction to Database System2. 確定系統(tǒng)配置DBMS產(chǎn)品一般都提供了一些存儲(chǔ)分配參數(shù) 同時(shí)使用數(shù)據(jù)庫(kù)的用戶數(shù) 同時(shí)打開的數(shù)據(jù)庫(kù)對(duì)象數(shù) 內(nèi)存分配參數(shù) 使用的緩沖區(qū)長(zhǎng)度、個(gè)數(shù) 存儲(chǔ)分配參數(shù) .An Introduction to Database System7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.5.1 數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法7.5.2 關(guān)系模式

29、存取方法選擇7.5.3 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)7.5.4 評(píng)價(jià)物理結(jié)構(gòu)An Introduction to Database System7.5.4 評(píng)價(jià)物理結(jié)構(gòu)評(píng)價(jià)內(nèi)容對(duì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)過程中產(chǎn)生的多種方案進(jìn)行細(xì)致的評(píng)價(jià),從中選擇一個(gè)較優(yōu)的方案作為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)An Introduction to Database System評(píng)價(jià)物理結(jié)構(gòu)(續(xù))評(píng)價(jià)方法(完全依賴于所選用的DBMS )定量估算各種方案 存儲(chǔ)空間 存取時(shí)間 維護(hù)代價(jià)對(duì)估算結(jié)果進(jìn)行權(quán)衡、比較,選擇出一個(gè)較優(yōu)的合理的物理結(jié)構(gòu)如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計(jì)An Introduction to Database System第

30、七章 數(shù)據(jù)庫(kù)設(shè)計(jì)7.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2 需求分析7.3 概念結(jié)構(gòu)設(shè)計(jì)7.4 邏輯結(jié)構(gòu)設(shè)計(jì)7.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6 數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)7.7 小結(jié)An Introduction to Database System7.6數(shù)據(jù)庫(kù)實(shí)施和維護(hù)7.6.1 數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試7.6.2 數(shù)據(jù)庫(kù)的試運(yùn)行 7.6.3 數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù) An Introduction to Database System7.6.1 數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試 數(shù)據(jù)的載入 應(yīng)用程序的編碼和調(diào)試An Introduction to Database System 數(shù)據(jù)的載入 數(shù)據(jù)庫(kù)結(jié)構(gòu)建立好后,就可以向數(shù)據(jù)庫(kù)

31、中裝載數(shù)據(jù)了。組織數(shù)據(jù)入庫(kù)是數(shù)據(jù)庫(kù)實(shí)施階段最主要的工作。數(shù)據(jù)裝載方法人工方法計(jì)算機(jī)輔助數(shù)據(jù)入庫(kù)An Introduction to Database System應(yīng)用程序的編碼和調(diào)試數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)應(yīng)該與數(shù)據(jù)設(shè)計(jì)并行進(jìn)行在組織數(shù)據(jù)入庫(kù)的同時(shí)還要調(diào)試應(yīng)用程序 An Introduction to Database System7.6數(shù)據(jù)庫(kù)實(shí)施和維護(hù)7.6.1 數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試7.6.2 數(shù)據(jù)庫(kù)的試運(yùn)行 7.6.3 數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù) An Introduction to Database System7.6.2 數(shù)據(jù)庫(kù)的試運(yùn)行在原有系統(tǒng)的數(shù)據(jù)有一小部分已輸入數(shù)據(jù)庫(kù)后,就可以開始對(duì)數(shù)

32、據(jù)庫(kù)系統(tǒng)進(jìn)行聯(lián)合調(diào)試,稱為數(shù)據(jù)庫(kù)的試運(yùn)行 數(shù)據(jù)庫(kù)試運(yùn)行主要工作包括:1)功能測(cè)試實(shí)際運(yùn)行數(shù)據(jù)庫(kù)應(yīng)用程序,執(zhí)行對(duì)數(shù)據(jù)庫(kù)的各種操作,測(cè)試應(yīng)用程序的功能是否滿足設(shè)計(jì)要求 如果不滿足,對(duì)應(yīng)用程序部分則要修改、調(diào)整,直到達(dá)到設(shè)計(jì)要求2)性能測(cè)試測(cè)量系統(tǒng)的性能指標(biāo),分析是否達(dá)到設(shè)計(jì)目標(biāo)如果測(cè)試的結(jié)果與設(shè)計(jì)目標(biāo)不符,則要返回物理設(shè)計(jì)階段,重新調(diào)整物理結(jié)構(gòu),修改系統(tǒng)參數(shù),某些情況下甚至要返回邏輯設(shè)計(jì)階段,修改邏輯結(jié)構(gòu) An Introduction to Database System數(shù)據(jù)庫(kù)的試運(yùn)行(續(xù))強(qiáng)調(diào)兩點(diǎn):分期分批組織數(shù)據(jù)入庫(kù) 重新設(shè)計(jì)物理結(jié)構(gòu)甚至邏輯結(jié)構(gòu),會(huì)導(dǎo)致數(shù)據(jù)重新入庫(kù)。由于數(shù)據(jù)入庫(kù)工作量實(shí)在太

33、大,費(fèi)時(shí)、費(fèi)力,所以應(yīng)分期分批地組織數(shù)據(jù)入庫(kù)先輸入小批量數(shù)據(jù)供調(diào)試用待試運(yùn)行基本合格后再大批量輸入數(shù)據(jù)逐步增加數(shù)據(jù)量,逐步完成運(yùn)行評(píng)價(jià)An Introduction to Database System數(shù)據(jù)庫(kù)的試運(yùn)行(續(xù))數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)在數(shù)據(jù)庫(kù)試運(yùn)行階段,系統(tǒng)還不穩(wěn)定,硬、軟件故障隨時(shí)都可能發(fā)生系統(tǒng)的操作人員對(duì)新系統(tǒng)還不熟悉,誤操作也不可避免因此必須做好數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)工作,盡量減少對(duì)數(shù)據(jù)庫(kù)的破壞。An Introduction to Database System7.6數(shù)據(jù)庫(kù)實(shí)施和維護(hù)7.6.1 數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試7.6.2 數(shù)據(jù)庫(kù)的試運(yùn)行 7.6.3 數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù) An Introduction to Database System7.6.3 數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論