數(shù)據(jù)庫(kù)物理設(shè)計(jì)、運(yùn)行與維護(hù)_第1頁(yè)
數(shù)據(jù)庫(kù)物理設(shè)計(jì)、運(yùn)行與維護(hù)_第2頁(yè)
數(shù)據(jù)庫(kù)物理設(shè)計(jì)、運(yùn)行與維護(hù)_第3頁(yè)
數(shù)據(jù)庫(kù)物理設(shè)計(jì)、運(yùn)行與維護(hù)_第4頁(yè)
數(shù)據(jù)庫(kù)物理設(shè)計(jì)、運(yùn)行與維護(hù)_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)物理設(shè)計(jì)、運(yùn)行與維護(hù)本章學(xué)習(xí)要點(diǎn)本章學(xué)習(xí)要點(diǎn): : (1 1)掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟。)掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟。 (2 2)熟悉需求分析過(guò)程。)熟悉需求分析過(guò)程。 (3 3)掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的概念結(jié)構(gòu)設(shè)計(jì)。)掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的概念結(jié)構(gòu)設(shè)計(jì)。 (4 4)掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的邏輯結(jié)構(gòu)設(shè)計(jì)。)掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的邏輯結(jié)構(gòu)設(shè)計(jì)。 (5 5)了解數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。)了解數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。 (6 6)掌握)掌握E-RE-R圖設(shè)計(jì)、圖設(shè)計(jì)、E-RE-R圖向關(guān)系模式的轉(zhuǎn)換、圖向關(guān)系模式的轉(zhuǎn)換、及優(yōu)化方法。及優(yōu)化方法。 (7 7)掌握索引的概念、分類、基本方法。)掌握索引的概念、分類、基本方法。9.19.1數(shù)據(jù)庫(kù)

2、設(shè)計(jì)概述數(shù)據(jù)庫(kù)設(shè)計(jì)概述9.29.2需求分析需求分析9.39.3概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)9.49.4邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)9.59.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)9.69.6數(shù)據(jù)庫(kù)實(shí)施數(shù)據(jù)庫(kù)實(shí)施9.79.7數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)9.89.8小結(jié)小結(jié)內(nèi)容提要內(nèi)容提要:9.49.4邏輯結(jié)構(gòu)設(shè)計(jì)(重點(diǎn))邏輯結(jié)構(gòu)設(shè)計(jì)(重點(diǎn))v邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù) 基本基本E-R模型模型 數(shù)據(jù)模型數(shù)據(jù)模型 (概念設(shè)計(jì)階段概念設(shè)計(jì)階段) (DBMS)v關(guān)系數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)的步驟關(guān)系數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)的步驟(1)將概念模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型。將概念模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型。(2)將關(guān)系數(shù)據(jù)模型

3、轉(zhuǎn)換成特定將關(guān)系數(shù)據(jù)模型轉(zhuǎn)換成特定DBMS支持下的支持下的關(guān)系數(shù)據(jù)模型。關(guān)系數(shù)據(jù)模型。(3)對(duì)關(guān)系數(shù)據(jù)模型進(jìn)行優(yōu)化。對(duì)關(guān)系數(shù)據(jù)模型進(jìn)行優(yōu)化。轉(zhuǎn)換轉(zhuǎn)換關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。集合。目標(biāo):將實(shí)體、實(shí)體的屬性和實(shí)體之間的目標(biāo):將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。聯(lián)系轉(zhuǎn)換為關(guān)系模式。9.4.1E-R模型向關(guān)系模型的轉(zhuǎn)換模型向關(guān)系模型的轉(zhuǎn)換1、轉(zhuǎn)換原則及具體方法:、轉(zhuǎn)換原則及具體方法:(1 1)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式:)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式:關(guān)系的屬性:實(shí)體的屬性;關(guān)系的屬性:實(shí)體的屬性;關(guān)系的碼:實(shí)體的碼。關(guān)系的碼:實(shí)體的碼。(

4、2 2)聯(lián)系的轉(zhuǎn)換原則)聯(lián)系的轉(zhuǎn)換原則 1 1)1:11:1聯(lián)系聯(lián)系 A A、轉(zhuǎn)換為獨(dú)立的關(guān)系模式:、轉(zhuǎn)換為獨(dú)立的關(guān)系模式:屬性屬性= =兩關(guān)聯(lián)實(shí)體各自的主碼兩關(guān)聯(lián)實(shí)體各自的主碼+聯(lián)系本身的屬性聯(lián)系本身的屬性 碼碼= =每個(gè)關(guān)聯(lián)的實(shí)體主碼的均是候選碼。每個(gè)關(guān)聯(lián)的實(shí)體主碼的均是候選碼。 B B、與任一方關(guān)系模式合并:、與任一方關(guān)系模式合并:將一方實(shí)體的碼與聯(lián)系屬性一并加入另一方。將一方實(shí)體的碼與聯(lián)系屬性一并加入另一方。 主碼:不變。主碼:不變。實(shí)例:部門與經(jīng)理:實(shí)例:部門與經(jīng)理:1 1:1 1聯(lián)系聯(lián)系各實(shí)體屬性各實(shí)體屬性部門:部門號(hào)、部門名稱部門:部門號(hào)、部門名稱經(jīng)理:工號(hào)、姓名、性別、出生年月

5、。經(jīng)理:工號(hào)、姓名、性別、出生年月。聯(lián)系的屬性:任期聯(lián)系的屬性:任期A A、聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式:、聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式:部門(部門(部門號(hào)部門號(hào),部門名稱),部門名稱)經(jīng)理(經(jīng)理(工號(hào)工號(hào)、姓名、性別、出生年月)、姓名、性別、出生年月)負(fù)責(zé)(負(fù)責(zé)(部門號(hào)部門號(hào),工號(hào),任期),工號(hào),任期)B B、與任一方關(guān)系模式合并:、與任一方關(guān)系模式合并:部門(部門(部門號(hào)部門號(hào),部門名稱,工號(hào),任期),部門名稱,工號(hào),任期)經(jīng)理(經(jīng)理(工號(hào)工號(hào)、姓名、性別、出生年月)、姓名、性別、出生年月)部門經(jīng)理負(fù)責(zé)112 2)1:m1:m聯(lián)系聯(lián)系: :A A、轉(zhuǎn)換為獨(dú)立的關(guān)系模式、轉(zhuǎn)換為獨(dú)立的關(guān)系模式屬性屬性

6、= =兩關(guān)聯(lián)實(shí)體各自的主碼兩關(guān)聯(lián)實(shí)體各自的主碼+聯(lián)系本身的屬性聯(lián)系本身的屬性 主碼主碼=“m”=“m”方實(shí)體主碼的主碼。方實(shí)體主碼的主碼。B B、將為、將為“1”“1”方的實(shí)體的主碼(作為外碼)與聯(lián)方的實(shí)體的主碼(作為外碼)與聯(lián)系屬性一并加入系屬性一并加入“m”“m”方實(shí)體。方實(shí)體。合并后,碼不變。合并后,碼不變。3 3)m:nm:n聯(lián)系:須單獨(dú)建立一個(gè)關(guān)系模式。聯(lián)系:須單獨(dú)建立一個(gè)關(guān)系模式。屬性屬性= =兩關(guān)聯(lián)實(shí)體各自的主碼兩關(guān)聯(lián)實(shí)體各自的主碼+聯(lián)系本身的屬性聯(lián)系本身的屬性 主碼主碼= =兩關(guān)聯(lián)實(shí)體主碼的組合。兩關(guān)聯(lián)實(shí)體主碼的組合。4 4)同一實(shí)體之間的)同一實(shí)體之間的1:m1:m聯(lián)系聯(lián)系

7、在該實(shí)體對(duì)應(yīng)的關(guān)系模式中加入為在該實(shí)體對(duì)應(yīng)的關(guān)系模式中加入為“1”“1”實(shí)體的實(shí)體的主碼和聯(lián)系的屬性。主碼和聯(lián)系的屬性。實(shí)例:實(shí)例:?jiǎn)T工工號(hào)工號(hào)姓名姓名性別性別出生年月出生年月工資工資民意測(cè)試民意測(cè)試負(fù)責(zé)負(fù)責(zé)1m關(guān)系模式為:關(guān)系模式為:?jiǎn)T工(員工(工號(hào)工號(hào),姓名,性別,出生年月,經(jīng)理工,姓名,性別,出生年月,經(jīng)理工號(hào),民意測(cè)驗(yàn))。號(hào),民意測(cè)驗(yàn))。6)超類和子類的轉(zhuǎn)換)超類和子類的轉(zhuǎn)換 超類、子類實(shí)體可轉(zhuǎn)換為一個(gè)關(guān)系,并將超類、子類實(shí)體可轉(zhuǎn)換為一個(gè)關(guān)系,并將超類實(shí)體的主碼加到子類實(shí)體中。超類實(shí)體的主碼加到子類實(shí)體中。實(shí)例:實(shí)例:?jiǎn)T工員工管理員管理員部門經(jīng)理部門經(jīng)理工程師工程師職工號(hào)性別出生年月參

8、加工作時(shí)間姓名部門號(hào)學(xué)歷崗位津貼級(jí)別職務(wù)職稱學(xué)歷專業(yè)職稱該該E-RE-R模型轉(zhuǎn)換為關(guān)系模式為:模型轉(zhuǎn)換為關(guān)系模式為:?jiǎn)T工(員工(職工號(hào)職工號(hào),姓名,性別,出生年月,參,姓名,性別,出生年月,參加工作時(shí)間,部門號(hào))加工作時(shí)間,部門號(hào))部門經(jīng)理(部門經(jīng)理(職工號(hào)職工號(hào),學(xué)歷,級(jí)別,崗位津貼),學(xué)歷,級(jí)別,崗位津貼)管理員(管理員(職工號(hào)職工號(hào),職務(wù),職稱),職務(wù),職稱)工程師(工程師(職工號(hào)職工號(hào),學(xué)歷,專業(yè)職稱),學(xué)歷,專業(yè)職稱) 為方便查詢,還可在超類實(shí)體中增加一個(gè)為方便查詢,還可在超類實(shí)體中增加一個(gè)指示屬性,根據(jù)指示的值直接查詢子類實(shí)體表。指示屬性,根據(jù)指示的值直接查詢子類實(shí)體表。員工(員工

9、(職工號(hào)職工號(hào)、姓名、性別、出生年月,參加工、姓名、性別、出生年月,參加工作時(shí)間,部門號(hào),員工類別)作時(shí)間,部門號(hào),員工類別)7)同一實(shí)體間的)同一實(shí)體間的m:n聯(lián)系聯(lián)系須單獨(dú)建立一個(gè)關(guān)系模式。須單獨(dú)建立一個(gè)關(guān)系模式。屬性屬性=兩關(guān)聯(lián)實(shí)體各自的主碼兩關(guān)聯(lián)實(shí)體各自的主碼+聯(lián)系本身的屬性聯(lián)系本身的屬性主碼主碼=兩關(guān)聯(lián)實(shí)體主碼的組合。兩關(guān)聯(lián)實(shí)體主碼的組合。注:由于注:由于“聯(lián)系聯(lián)系”僅涉及一個(gè)實(shí)體,加入的主碼要僅涉及一個(gè)實(shí)體,加入的主碼要取不同的名字。取不同的名字。實(shí)例實(shí)例:零件號(hào)零件號(hào)零件組裝組裝名稱名稱型號(hào)型號(hào)數(shù)量數(shù)量?jī)r(jià)格價(jià)格nm關(guān)系模式為:關(guān)系模式為:零件(零件(零件號(hào)零件號(hào),名稱,型號(hào),價(jià)格

10、),名稱,型號(hào),價(jià)格)組裝(組裝(零件號(hào),組裝零件號(hào)零件號(hào),組裝零件號(hào),數(shù)量),數(shù)量)9)三個(gè)或三個(gè)以上實(shí)體間的)三個(gè)或三個(gè)以上實(shí)體間的m:n聯(lián)系聯(lián)系須單獨(dú)建立一個(gè)關(guān)系模式。須單獨(dú)建立一個(gè)關(guān)系模式。屬性屬性=所聯(lián)系的各實(shí)體的主碼所聯(lián)系的各實(shí)體的主碼+聯(lián)系本身的屬性聯(lián)系本身的屬性主碼主碼=關(guān)聯(lián)實(shí)體主碼的組合。關(guān)聯(lián)實(shí)體主碼的組合。實(shí)例:實(shí)例:零件號(hào)零件號(hào)零件零件供應(yīng)供應(yīng)名稱名稱型號(hào)型號(hào)數(shù)量數(shù)量?jī)r(jià)格價(jià)格nm項(xiàng)目項(xiàng)目供應(yīng)商供應(yīng)商p項(xiàng)目號(hào)項(xiàng)目號(hào)工期工期項(xiàng)目名稱項(xiàng)目名稱地址地址供應(yīng)商名供應(yīng)商名供應(yīng)商號(hào)供應(yīng)商號(hào)該該E-R模型轉(zhuǎn)換為關(guān)系模式為:模型轉(zhuǎn)換為關(guān)系模式為:零件(零件(零件號(hào)零件號(hào),名稱,型號(hào),價(jià)格)

11、,名稱,型號(hào),價(jià)格)項(xiàng)目(項(xiàng)目(項(xiàng)目號(hào)項(xiàng)目號(hào),項(xiàng)目名稱,工期),項(xiàng)目名稱,工期)供應(yīng)商(供應(yīng)商(供應(yīng)商號(hào)供應(yīng)商號(hào),供應(yīng)商名,地址),供應(yīng)商名,地址)供應(yīng)(供應(yīng)(零件號(hào),項(xiàng)目號(hào),供應(yīng)商號(hào)零件號(hào),項(xiàng)目號(hào),供應(yīng)商號(hào),數(shù)量),數(shù)量)綜合實(shí)例綜合實(shí)例:工廠工廠產(chǎn)品產(chǎn)品零件零件倉(cāng)庫(kù)倉(cāng)庫(kù)家屬家屬工人工人車間車間從屬?gòu)膶匐`屬隸屬有有有有制造制造存放存放存放存放生產(chǎn)生產(chǎn)裝配裝配mmmmmmmnnmm1E-R模型模型各實(shí)體的屬性為:各實(shí)體的屬性為:車間:車間號(hào)、車間主任姓名、地址和車間:車間號(hào)、車間主任姓名、地址和 ;工人:職工號(hào)、姓名、年齡、性別、工種工人:職工號(hào)、姓名、年齡、性別、工種;工廠:工廠名、廠長(zhǎng)名;

12、工廠:工廠名、廠長(zhǎng)名;產(chǎn)品:產(chǎn)品號(hào)、產(chǎn)品名、型號(hào)、價(jià)格;產(chǎn)品:產(chǎn)品號(hào)、產(chǎn)品名、型號(hào)、價(jià)格;零件:零件號(hào)、零件名稱、重量、價(jià)格;零件:零件號(hào)、零件名稱、重量、價(jià)格;倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào)、倉(cāng)庫(kù)主任姓名、倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào)、倉(cāng)庫(kù)主任姓名、 ;家屬:家屬姓名、親屬關(guān)系。家屬:家屬姓名、親屬關(guān)系。 將將E-RE-R模型轉(zhuǎn)換為關(guān)系模式為:模型轉(zhuǎn)換為關(guān)系模式為:工廠(工廠名、廠長(zhǎng)名);工廠(工廠名、廠長(zhǎng)名);車間(車間號(hào),車間主任姓名,地址,車間(車間號(hào),車間主任姓名,地址, ,工廠名);,工廠名);工人(職工號(hào),姓名,年齡,性別,工種,車間號(hào));工人(職工號(hào),姓名,年齡,性別,工種,車間號(hào));倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),倉(cāng)庫(kù)主任姓名

13、,倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),倉(cāng)庫(kù)主任姓名, ,工廠名),工廠名)產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,型號(hào),價(jià)格,車間號(hào),倉(cāng)庫(kù)號(hào));產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,型號(hào),價(jià)格,車間號(hào),倉(cāng)庫(kù)號(hào));零件(零件號(hào),零件名稱,重量,價(jià)格,倉(cāng)庫(kù)號(hào));零件(零件號(hào),零件名稱,重量,價(jià)格,倉(cāng)庫(kù)號(hào));制造(車間號(hào),零件號(hào));制造(車間號(hào),零件號(hào));裝配(零件號(hào),產(chǎn)品號(hào));裝配(零件號(hào),產(chǎn)品號(hào));親屬(職工號(hào),家屬姓名,親屬關(guān)系)親屬(職工號(hào),家屬姓名,親屬關(guān)系)9.4.2向特定的向特定的RDBMS的模型轉(zhuǎn)換。(略)的模型轉(zhuǎn)換。(略)9.4.3關(guān)系數(shù)據(jù)模型的優(yōu)化關(guān)系數(shù)據(jù)模型的優(yōu)化 根據(jù)應(yīng)用需要適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模根據(jù)應(yīng)用需要適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模

14、型結(jié)構(gòu)。型結(jié)構(gòu)。1、應(yīng)用關(guān)系規(guī)范化理論對(duì)關(guān)系模式進(jìn)行優(yōu)化,、應(yīng)用關(guān)系規(guī)范化理論對(duì)關(guān)系模式進(jìn)行優(yōu)化,具體步驟如下:具體步驟如下:(1)確定數(shù)據(jù)依賴:確定每個(gè)關(guān)系模式內(nèi)部各)確定數(shù)據(jù)依賴:確定每個(gè)關(guān)系模式內(nèi)部各個(gè)屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之個(gè)屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間的數(shù)據(jù)依賴。間的數(shù)據(jù)依賴。(2)對(duì)各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化)對(duì)各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。處理,消除冗余的聯(lián)系。(3)確定各關(guān)系模式為第幾范式。)確定各關(guān)系模式為第幾范式。(4)按照需求分析階段的需求,確定要對(duì)哪)按照需求分析階段的需求,確定要對(duì)哪些模式進(jìn)行合并或分

15、解。些模式進(jìn)行合并或分解。 采用技術(shù):反規(guī)范化采用技術(shù):反規(guī)范化(5)對(duì)關(guān)系模式進(jìn)行必要的分解,提高數(shù)據(jù)操作)對(duì)關(guān)系模式進(jìn)行必要的分解,提高數(shù)據(jù)操作的效率和存儲(chǔ)空間利用率。的效率和存儲(chǔ)空間利用率。 兩種分解方法:水平分解兩種分解方法:水平分解 垂直分解垂直分解2、反規(guī)范化、反規(guī)范化 (了解)(了解) 一個(gè)完全規(guī)范化的設(shè)計(jì)并不總能生成最一個(gè)完全規(guī)范化的設(shè)計(jì)并不總能生成最優(yōu)的性能,因此通常是先按照優(yōu)的性能,因此通常是先按照3NF設(shè)計(jì),如設(shè)計(jì),如果有性能問(wèn)題,再通過(guò)反規(guī)范來(lái)解決。果有性能問(wèn)題,再通過(guò)反規(guī)范來(lái)解決。 數(shù)據(jù)庫(kù)中的數(shù)據(jù)規(guī)范化的優(yōu)點(diǎn)是減少了數(shù)據(jù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)規(guī)范化的優(yōu)點(diǎn)是減少了數(shù)據(jù)冗余,節(jié)約

16、了存儲(chǔ)空間,相應(yīng)邏輯和物理的冗余,節(jié)約了存儲(chǔ)空間,相應(yīng)邏輯和物理的I/O次數(shù)減少,同時(shí)加快了增、刪、改的速度,但是次數(shù)減少,同時(shí)加快了增、刪、改的速度,但是對(duì)完全規(guī)范的數(shù)據(jù)庫(kù)查詢,通常需要更多的連接對(duì)完全規(guī)范的數(shù)據(jù)庫(kù)查詢,通常需要更多的連接操作,從而影響查詢的速度。因此,有時(shí)為了提操作,從而影響查詢的速度。因此,有時(shí)為了提高某些查詢或應(yīng)用的性能而破壞規(guī)范規(guī)則,即反高某些查詢或應(yīng)用的性能而破壞規(guī)范規(guī)則,即反規(guī)范。規(guī)范。是否規(guī)范化的程度越高越好是否規(guī)范化的程度越高越好? 這要根據(jù)需要來(lái)決定,因?yàn)檫@要根據(jù)需要來(lái)決定,因?yàn)椤胺蛛x分離”越深,產(chǎn)生越深,產(chǎn)生的關(guān)系越多,關(guān)系過(guò)多,連接操作越頻繁,而連接的關(guān)

17、系越多,關(guān)系過(guò)多,連接操作越頻繁,而連接操作是最費(fèi)時(shí)間的,特別對(duì)以查詢?yōu)橹鞯臄?shù)據(jù)庫(kù)應(yīng)操作是最費(fèi)時(shí)間的,特別對(duì)以查詢?yōu)橹鞯臄?shù)據(jù)庫(kù)應(yīng)用來(lái)說(shuō),頻繁的連接會(huì)影響查詢速度。所以,關(guān)系用來(lái)說(shuō),頻繁的連接會(huì)影響查詢速度。所以,關(guān)系有時(shí)故意保留成非規(guī)范化的,或者規(guī)范化以后又反有時(shí)故意保留成非規(guī)范化的,或者規(guī)范化以后又反規(guī)范了,這樣做通常是為了改進(jìn)性能。規(guī)范了,這樣做通常是為了改進(jìn)性能。(了解)(了解)例如,某校成績(jī)管理系統(tǒng),學(xué)生基本信息表例如,某校成績(jī)管理系統(tǒng),學(xué)生基本信息表student(sno,sname,sex,birth,zgrade),其中,總成績(jī)就違反規(guī)范,其中的其中,總成績(jī)就違反規(guī)范,其中的值可

18、以通過(guò)下面的查詢獲得:值可以通過(guò)下面的查詢獲得: select sno,sum(grade) from sc group by sno(了解)(了解) 如果如果studentstudent中沒(méi)有該列,若想獲得該生的姓名和中沒(méi)有該列,若想獲得該生的姓名和總成績(jī),則需要做連接操作:總成績(jī),則需要做連接操作:select sname,zgradefrom student,(select sno,sum(grade)as grade from sc group by sc.sno) s where s.sno=student.sno 如果經(jīng)常做這種查詢,則就有必要在如果經(jīng)常做這種查詢,則就有必要在st

19、udentstudent表中加入列表中加入列zgradezgrade,相應(yīng)的代價(jià)則是必須在表,相應(yīng)的代價(jià)則是必須在表studentstudent上創(chuàng)建增、刪、改的觸發(fā)器來(lái)維護(hù)上創(chuàng)建增、刪、改的觸發(fā)器來(lái)維護(hù)studentstudent表上表上zgradezgrade列的值。類似的情況在決策支持系統(tǒng)中列的值。類似的情況在決策支持系統(tǒng)中經(jīng)常發(fā)生。經(jīng)常發(fā)生。 (了解)(了解)反規(guī)范的優(yōu)點(diǎn)是降低連接操作的需求、降低外反規(guī)范的優(yōu)點(diǎn)是降低連接操作的需求、降低外碼和索引的數(shù)目,還可能減少表的數(shù)目;加快了碼和索引的數(shù)目,還可能減少表的數(shù)目;加快了查詢速度。查詢速度。缺點(diǎn):可能出現(xiàn)數(shù)據(jù)的完整性問(wèn)題;會(huì)降低修改缺點(diǎn)

20、:可能出現(xiàn)數(shù)據(jù)的完整性問(wèn)題;會(huì)降低修改速度。速度。 因此決定做反規(guī)范時(shí),一定要權(quán)衡利弊,因此決定做反規(guī)范時(shí),一定要權(quán)衡利弊,仔細(xì)分析應(yīng)用的數(shù)據(jù)存取需求和實(shí)際的性能特仔細(xì)分析應(yīng)用的數(shù)據(jù)存取需求和實(shí)際的性能特點(diǎn),好的索引和其它方法經(jīng)常能夠解決性能問(wèn)點(diǎn),好的索引和其它方法經(jīng)常能夠解決性能問(wèn)題,而不必采用反規(guī)范這種方法。題,而不必采用反規(guī)范這種方法。 3、幾種常用的反規(guī)范化方法:、幾種常用的反規(guī)范化方法: 在進(jìn)行反規(guī)范操作之前,要充分考慮數(shù)在進(jìn)行反規(guī)范操作之前,要充分考慮數(shù)據(jù)的存取需求、常用表的大小、一些特殊的據(jù)的存取需求、常用表的大小、一些特殊的計(jì)算列計(jì)算列(如合計(jì)如合計(jì))、數(shù)據(jù)的物理存儲(chǔ)位置等。、

21、數(shù)據(jù)的物理存儲(chǔ)位置等。 常用的反規(guī)范技術(shù)有增加冗余列、增加派生常用的反規(guī)范技術(shù)有增加冗余列、增加派生列、重新組表和分割表。列、重新組表和分割表。(了解)(了解)(1)增加冗余列)增加冗余列 增加冗余列是指在多個(gè)表中具有相同的列,它常增加冗余列是指在多個(gè)表中具有相同的列,它常用來(lái)在查詢時(shí)避免連接操作。用來(lái)在查詢時(shí)避免連接操作。例如,前面例子中,如果經(jīng)常檢索一門課的任課教例如,前面例子中,如果經(jīng)常檢索一門課的任課教師姓名,若課程表中僅有教師編號(hào)師姓名,若課程表中僅有教師編號(hào)teacherno 列,列,則需要做則需要做course和和teacher表的連接查詢表的連接查詢:select cname,

22、tname from course,teacher where course.teacherno=teacher.teacherno (了解)(了解)由于要頻繁的查詢每門課程任課老師的姓名,由于要頻繁的查詢每門課程任課老師的姓名,則就可以在則就可以在course表中增加一列表中增加一列tname,就不,就不需要做連接操作了。需要做連接操作了。增加冗長(zhǎng)余列的優(yōu)點(diǎn):增加冗長(zhǎng)余列的優(yōu)點(diǎn): 查詢時(shí)可避免連接操作。查詢時(shí)可避免連接操作。增加冗長(zhǎng)余列的缺點(diǎn):增加冗長(zhǎng)余列的缺點(diǎn): 需要更多的磁盤空間,同時(shí)增加表維護(hù)的工需要更多的磁盤空間,同時(shí)增加表維護(hù)的工作量。作量。 (2)增加派生列)增加派生列 增加派生

23、列指增加的列來(lái)自其它表中的數(shù)據(jù),增加派生列指增加的列來(lái)自其它表中的數(shù)據(jù),由它們計(jì)算生成。由它們計(jì)算生成。 優(yōu)點(diǎn):在查詢時(shí)減少連接操作,避免使用優(yōu)點(diǎn):在查詢時(shí)減少連接操作,避免使用集函數(shù)。集函數(shù)。 缺點(diǎn):具有與冗余列。缺點(diǎn):具有與冗余列。例如,前例例如,前例student表中的表中的zgrade列就是派生列就是派生列。列。(了解)(了解)(3)重新組表)重新組表 重新組表指如果許多用戶需要查看兩個(gè)表連接重新組表指如果許多用戶需要查看兩個(gè)表連接出來(lái)的結(jié)果數(shù)據(jù),則把這兩個(gè)表重新組成一個(gè)表來(lái)出來(lái)的結(jié)果數(shù)據(jù),則把這兩個(gè)表重新組成一個(gè)表來(lái)減少連接而提高性能。減少連接而提高性能。例如,用戶經(jīng)常需要同時(shí)查看課

24、程號(hào),課程名例如,用戶經(jīng)常需要同時(shí)查看課程號(hào),課程名稱,任課教師號(hào),任課教師姓名,則可把表稱,任課教師號(hào),任課教師姓名,則可把表course(cno,cname,tno)和和表表teacher(teacherno,tname)合并成一個(gè)表合并成一個(gè)表:course(cno,cname,teacherno,tname)。這樣可。這樣可提高性能,但需要更多的磁盤空間,同時(shí)也損失了提高性能,但需要更多的磁盤空間,同時(shí)也損失了數(shù)據(jù)在概念上的獨(dú)立性。數(shù)據(jù)在概念上的獨(dú)立性。 (了解)(了解)(4)(4)分割表分割表 有時(shí)對(duì)表做分割可以提高性能。表分割有有時(shí)對(duì)表做分割可以提高性能。表分割有兩種方式:兩種方式

25、: 1)1)水平分解:把(基本表)關(guān)系的元組分為若水平分解:把(基本表)關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率。提高系統(tǒng)的效率。水平分割通常在下面的情況下使用水平分割通常在下面的情況下使用: :A A、表很大,分割后可以降低在查詢時(shí)需要讀的數(shù)、表很大,分割后可以降低在查詢時(shí)需要讀的數(shù)據(jù)和索引的頁(yè)數(shù),同時(shí)也降低了索引的層數(shù),提高據(jù)和索引的頁(yè)數(shù),同時(shí)也降低了索引的層數(shù),提高查詢速度。查詢速度。(了解)(了解)B B、表中的數(shù)據(jù)本來(lái)就有獨(dú)立性,例如表中分別記、表中的數(shù)據(jù)本來(lái)就有獨(dú)立性,例如表中分別記錄各個(gè)地區(qū)的數(shù)據(jù)或不同時(shí)期的數(shù)

26、據(jù),特別是有些錄各個(gè)地區(qū)的數(shù)據(jù)或不同時(shí)期的數(shù)據(jù),特別是有些數(shù)據(jù)常用,而另外一些數(shù)據(jù)不常用。數(shù)據(jù)常用,而另外一些數(shù)據(jù)不常用。C C、需要把數(shù)據(jù)存放到多個(gè)介質(zhì)上。、需要把數(shù)據(jù)存放到多個(gè)介質(zhì)上。分解原則:分解原則:80/2080/20原則。原則。例如例如 、法規(guī)表法規(guī)表law就可以分成兩個(gè)表就可以分成兩個(gè)表active_law和和inactive_law。Activea_law表表中的內(nèi)容是正生效的法規(guī),是經(jīng)常使用的中的內(nèi)容是正生效的法規(guī),是經(jīng)常使用的;而而inactive_law表則是已經(jīng)作廢的法規(guī),不常被表則是已經(jīng)作廢的法規(guī),不常被查詢,但須保留的。查詢,但須保留的。(了解)(了解)水平分割的缺

27、點(diǎn):會(huì)給應(yīng)用增加復(fù)雜度,它通常水平分割的缺點(diǎn):會(huì)給應(yīng)用增加復(fù)雜度,它通常在查詢時(shí)需要多個(gè)表名,查詢所有數(shù)據(jù)需要在查詢時(shí)需要多個(gè)表名,查詢所有數(shù)據(jù)需要unionunion操作。操作。 在許多數(shù)據(jù)庫(kù)應(yīng)用中,這種復(fù)雜性會(huì)超過(guò)它在許多數(shù)據(jù)庫(kù)應(yīng)用中,這種復(fù)雜性會(huì)超過(guò)它帶來(lái)的優(yōu)點(diǎn),因?yàn)橹灰饕P(guān)鍵字不大,則在索帶來(lái)的優(yōu)點(diǎn),因?yàn)橹灰饕P(guān)鍵字不大,則在索引用于查詢時(shí),表中增加兩到三倍數(shù)據(jù)量,查詢引用于查詢時(shí),表中增加兩到三倍數(shù)據(jù)量,查詢時(shí)也就增加讀一個(gè)索引層的磁盤次數(shù)。時(shí)也就增加讀一個(gè)索引層的磁盤次數(shù)。(了解)(了解)2 2)垂直分割:把主碼和一些列放到一個(gè)表,)垂直分割:把主碼和一些列放到一個(gè)表,然后把主

28、碼和另外的列放到另一個(gè)表中。然后把主碼和另外的列放到另一個(gè)表中。(即把關(guān)系模式(即把關(guān)系模式R R的屬性分解為若干子集合。)的屬性分解為若干子集合。) 如果一個(gè)表中某些列常用,而另外一些列如果一個(gè)表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割不常用,則可以采用垂直分割,另外垂直分割可以使得數(shù)據(jù)行變小,一個(gè)數(shù)據(jù)頁(yè)就能存放更可以使得數(shù)據(jù)行變小,一個(gè)數(shù)據(jù)頁(yè)就能存放更多的數(shù)據(jù),在查詢時(shí)就會(huì)減少多的數(shù)據(jù),在查詢時(shí)就會(huì)減少I/OI/O次數(shù)。其缺次數(shù)。其缺點(diǎn)是需要管理冗余列,查詢所有數(shù)據(jù)需要點(diǎn)是需要管理冗余列,查詢所有數(shù)據(jù)需要joinjoin操作。操作。注:要確保無(wú)損連接性和保持函數(shù)依

29、賴。注:要確保無(wú)損連接性和保持函數(shù)依賴。(了解)(了解)4 4、反規(guī)范技術(shù)需要維護(hù)數(shù)據(jù)的完整性、反規(guī)范技術(shù)需要維護(hù)數(shù)據(jù)的完整性 無(wú)論使用何種反規(guī)范技術(shù),都需要一定的管理來(lái)維無(wú)論使用何種反規(guī)范技術(shù),都需要一定的管理來(lái)維護(hù)數(shù)據(jù)的完整性。護(hù)數(shù)據(jù)的完整性。常用的方法:批處理維護(hù)常用的方法:批處理維護(hù) 應(yīng)用邏輯應(yīng)用邏輯 觸發(fā)器觸發(fā)器1 1)批處理維護(hù)是指對(duì)復(fù)制列或派生列的修改積累一定)批處理維護(hù)是指對(duì)復(fù)制列或派生列的修改積累一定的時(shí)間后,運(yùn)行一批處理作業(yè)或存儲(chǔ)過(guò)程對(duì)復(fù)制或派生的時(shí)間后,運(yùn)行一批處理作業(yè)或存儲(chǔ)過(guò)程對(duì)復(fù)制或派生列進(jìn)行修改,這只能在對(duì)實(shí)時(shí)性要求不高的情況下使用。列進(jìn)行修改,這只能在對(duì)實(shí)時(shí)性要求

30、不高的情況下使用。(了解)(了解)2 2)用應(yīng)用邏輯:數(shù)據(jù)的完整性也可由應(yīng)用邏輯來(lái)實(shí))用應(yīng)用邏輯:數(shù)據(jù)的完整性也可由應(yīng)用邏輯來(lái)實(shí)現(xiàn),這就要求必須在同一事務(wù)中對(duì)所有涉及的表進(jìn)行現(xiàn),這就要求必須在同一事務(wù)中對(duì)所有涉及的表進(jìn)行增、刪、改操作。增、刪、改操作。 該方法實(shí)現(xiàn)數(shù)據(jù)的完整性風(fēng)險(xiǎn)較大,因?yàn)橥摲椒▽?shí)現(xiàn)數(shù)據(jù)的完整性風(fēng)險(xiǎn)較大,因?yàn)橥贿壿嫳仨氃谒械膽?yīng)用中使用和維護(hù),容易遺一邏輯必須在所有的應(yīng)用中使用和維護(hù),容易遺漏,特別是在需求變化時(shí),不易于維護(hù)。漏,特別是在需求變化時(shí),不易于維護(hù)。3 3)使用觸發(fā)器,對(duì)數(shù)據(jù)的任何修改立即觸發(fā)對(duì)復(fù)制列)使用觸發(fā)器,對(duì)數(shù)據(jù)的任何修改立即觸發(fā)對(duì)復(fù)制列或派生列的相應(yīng)修

31、改。觸發(fā)器是實(shí)時(shí)的,而且相應(yīng)的處或派生列的相應(yīng)修改。觸發(fā)器是實(shí)時(shí)的,而且相應(yīng)的處理邏輯只在一個(gè)地方出現(xiàn),易于維護(hù)。一般來(lái)說(shuō),是解理邏輯只在一個(gè)地方出現(xiàn),易于維護(hù)。一般來(lái)說(shuō),是解決這類問(wèn)題的最好的辦法。決這類問(wèn)題的最好的辦法。 (了解)(了解)9.4.4設(shè)計(jì)用戶子模式設(shè)計(jì)用戶子模式(創(chuàng)建視圖創(chuàng)建視圖) 全局關(guān)系模型設(shè)計(jì)完成后,還應(yīng)根據(jù)局全局關(guān)系模型設(shè)計(jì)完成后,還應(yīng)根據(jù)局部應(yīng)用的需求,結(jié)合具體部應(yīng)用的需求,結(jié)合具體DBMS的特點(diǎn),設(shè)的特點(diǎn),設(shè)計(jì)用戶的子模式。計(jì)用戶的子模式。 設(shè)計(jì)子模式時(shí)應(yīng)注意考慮用戶的習(xí)慣和設(shè)計(jì)子模式時(shí)應(yīng)注意考慮用戶的習(xí)慣和方便性,主要包括:方便性,主要包括:(1)使用更符合用戶

32、慣的別名)使用更符合用戶慣的別名 如按不同部門的習(xí)慣給視圖中的列取名。如按不同部門的習(xí)慣給視圖中的列取名。(2)以不同級(jí)別的用戶定義不同的視圖,以)以不同級(jí)別的用戶定義不同的視圖,以保證系統(tǒng)的安全性。保證系統(tǒng)的安全性。例如、設(shè)有一關(guān)系模式:產(chǎn)品(產(chǎn)品編號(hào),產(chǎn)例如、設(shè)有一關(guān)系模式:產(chǎn)品(產(chǎn)品編號(hào),產(chǎn)品名稱,型號(hào),價(jià)格,生產(chǎn)車間,生產(chǎn)負(fù)責(zé)人,品名稱,型號(hào),價(jià)格,生產(chǎn)車間,生產(chǎn)負(fù)責(zé)人,產(chǎn)品成本,產(chǎn)品合格率,質(zhì)量等級(jí))產(chǎn)品成本,產(chǎn)品合格率,質(zhì)量等級(jí))面向一般顧客的視圖:面向一般顧客的視圖:產(chǎn)品產(chǎn)品1 1(產(chǎn)品編號(hào),產(chǎn)品名稱,型號(hào),價(jià)格,質(zhì)(產(chǎn)品編號(hào),產(chǎn)品名稱,型號(hào),價(jià)格,質(zhì)量等級(jí))量等級(jí))面向質(zhì)量監(jiān)督

33、部門的視圖:面向質(zhì)量監(jiān)督部門的視圖:產(chǎn)品格(產(chǎn)品編號(hào),產(chǎn)品名稱,型號(hào),生產(chǎn)車間,產(chǎn)品格(產(chǎn)品編號(hào),產(chǎn)品名稱,型號(hào),生產(chǎn)車間,產(chǎn)品合格率,質(zhì)量等級(jí))產(chǎn)品合格率,質(zhì)量等級(jí))(3 3)簡(jiǎn)化用戶對(duì)系統(tǒng)的使用)簡(jiǎn)化用戶對(duì)系統(tǒng)的使用 針對(duì)某些局部應(yīng)用中經(jīng)常使用某些十分復(fù)針對(duì)某些局部應(yīng)用中經(jīng)常使用某些十分復(fù)雜的查詢情況,為方便用戶,可先將這些復(fù)雜雜的查詢情況,為方便用戶,可先將這些復(fù)雜查詢定義為視圖,用戶每次只需對(duì)定義好的視查詢定義為視圖,用戶每次只需對(duì)定義好的視圖進(jìn)行查詢,大大簡(jiǎn)化了復(fù)雜度。圖進(jìn)行查詢,大大簡(jiǎn)化了復(fù)雜度。9.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì) (主考慮是否建立相(主考慮是否建立相關(guān)索引)關(guān)

34、索引)v什么是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)什么是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴于給方法稱為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴于給定的計(jì)算機(jī)系統(tǒng)。定的計(jì)算機(jī)系統(tǒng)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過(guò)程,就是數(shù)據(jù)合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過(guò)程,就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。庫(kù)的物理設(shè)計(jì)。數(shù)據(jù)庫(kù)物理設(shè)計(jì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)確定數(shù)確定數(shù)據(jù)庫(kù)的據(jù)庫(kù)的物理結(jié)物理結(jié)構(gòu)構(gòu)評(píng)價(jià)數(shù)據(jù)評(píng)價(jià)數(shù)據(jù)庫(kù)的物理庫(kù)的物理結(jié)構(gòu)結(jié)構(gòu)邏輯結(jié)邏輯結(jié)構(gòu)設(shè)計(jì)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)實(shí)施實(shí)施物理物理模型模型邏輯邏輯模型模型數(shù)據(jù)庫(kù)物理設(shè)計(jì)的步驟

35、:數(shù)據(jù)庫(kù)物理設(shè)計(jì)的步驟:9.5.1 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)的內(nèi)容和方法數(shù)據(jù)庫(kù)的物理設(shè)計(jì)的內(nèi)容和方法v設(shè)計(jì)物理數(shù)據(jù)庫(kù)結(jié)構(gòu)的準(zhǔn)備工作設(shè)計(jì)物理數(shù)據(jù)庫(kù)結(jié)構(gòu)的準(zhǔn)備工作v 1 1、充分了解應(yīng)用環(huán)境,詳細(xì)分析要運(yùn)行的事、充分了解應(yīng)用環(huán)境,詳細(xì)分析要運(yùn)行的事務(wù),以獲得選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)。務(wù),以獲得選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)。v 2 2、充分了解所用、充分了解所用RDBMSRDBMS的內(nèi)部特征,特別是的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲(chǔ)結(jié)構(gòu)。系統(tǒng)提供的存取方法和存儲(chǔ)結(jié)構(gòu)。選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)數(shù)據(jù)庫(kù)查詢事務(wù)數(shù)據(jù)庫(kù)查詢事務(wù)(1 1)查詢的關(guān)系)查詢的關(guān)系(2 2)查詢條件所涉

36、及的屬性)查詢條件所涉及的屬性(3 3)連接條件所涉及的屬性)連接條件所涉及的屬性(4 4)查詢的投影屬性)查詢的投影屬性數(shù)據(jù)更新事務(wù)數(shù)據(jù)更新事務(wù)(1 1)被更新的關(guān)系。)被更新的關(guān)系。(2 2)每個(gè)關(guān)系上的更新操作條件所涉及的屬)每個(gè)關(guān)系上的更新操作條件所涉及的屬性。性。(3 3)修改操作要改變的屬性值。)修改操作要改變的屬性值。(4 4)每個(gè)事務(wù)在各關(guān)系上運(yùn)行的頻率和性能)每個(gè)事務(wù)在各關(guān)系上運(yùn)行的頻率和性能要求。要求。關(guān)系數(shù)據(jù)庫(kù)物理設(shè)計(jì)的主要內(nèi)容關(guān)系數(shù)據(jù)庫(kù)物理設(shè)計(jì)的主要內(nèi)容1 1、為關(guān)系模式選擇存取方法、為關(guān)系模式選擇存取方法( (建立存取路徑建立存取路徑) )。2 2、設(shè)計(jì)關(guān)系、索引等數(shù)

37、據(jù)庫(kù)文件的物理存儲(chǔ)、設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫(kù)文件的物理存儲(chǔ)結(jié)構(gòu)。結(jié)構(gòu)。9.5.2 9.5.2 關(guān)系模式存取方法選擇關(guān)系模式存取方法選擇DBMSDBMS常用存取方法常用存取方法1 1、索引方法,目前主要是、索引方法,目前主要是B+B+樹索引方法樹索引方法2 2、聚簇(、聚簇(ClusterCluster)方法)方法3 3、HASHHASH方法方法9.5.2.19.5.2.1索引方法索引方法 選擇索引存取方法的主要內(nèi)容:選擇索引存取方法的主要內(nèi)容: 根據(jù)應(yīng)用要求確定根據(jù)應(yīng)用要求確定 對(duì)哪些屬性列建立索引對(duì)哪些屬性列建立索引 對(duì)哪些屬性列建立組合索引對(duì)哪些屬性列建立組合索引 對(duì)哪些索引要設(shè)計(jì)為唯一索引

38、對(duì)哪些索引要設(shè)計(jì)為唯一索引9.5.2.29.5.2.2聚簇存取方法聚簇存取方法什么是聚簇什么是聚簇 為了提高某個(gè)屬性(或?qū)傩越M)的查詢?yōu)榱颂岣吣硞€(gè)屬性(或?qū)傩越M)的查詢速度,把這個(gè)或這些屬性(稱為聚簇碼速度,把這個(gè)或這些屬性(稱為聚簇碼/ /聚集聚集鍵)上具有相同值的元組集中存放在連續(xù)的鍵)上具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇物理塊稱為聚簇/ /聚集。聚集。許多關(guān)系型許多關(guān)系型DBMSDBMS都提供了聚簇功能。都提供了聚簇功能。聚簇存取的優(yōu)點(diǎn)聚簇存取的優(yōu)點(diǎn)1 1、大大提高按聚簇屬性進(jìn)行查詢的效率、大大提高按聚簇屬性進(jìn)行查詢的效率2 2、節(jié)省存儲(chǔ)空間、節(jié)省存儲(chǔ)空間v聚簇的局限性(了解

39、)聚簇的局限性(了解)v1、聚簇只能提高某些特定應(yīng)用的性能、聚簇只能提高某些特定應(yīng)用的性能v2、建立與維護(hù)聚簇的開(kāi)銷相當(dāng)大、建立與維護(hù)聚簇的開(kāi)銷相當(dāng)大v對(duì)已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動(dòng)其物理存儲(chǔ)對(duì)已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動(dòng)其物理存儲(chǔ)位置,并使此關(guān)系上原有的索引無(wú)效,必須重建。位置,并使此關(guān)系上原有的索引無(wú)效,必須重建。v當(dāng)一個(gè)元組的聚簇碼改變時(shí),該元組的存儲(chǔ)位置也要做相當(dāng)一個(gè)元組的聚簇碼改變時(shí),該元組的存儲(chǔ)位置也要做相應(yīng)移動(dòng)。應(yīng)移動(dòng)。9.5.2.3HASH9.5.2.3HASH存取方法存取方法當(dāng)一個(gè)關(guān)系滿足下列兩個(gè)條件時(shí),可以選擇當(dāng)一個(gè)關(guān)系滿足下列兩個(gè)條件時(shí),可以選擇HAS

40、HHASH存存取方法:取方法:1 1、該關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主、該關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等比較選擇條件中。要出現(xiàn)在相等比較選擇條件中。2 2、該關(guān)系的大小可預(yù)知,而且不變;、該關(guān)系的大小可預(yù)知,而且不變; 3 3、該關(guān)系的大小動(dòng)態(tài)改變,但所選用的、該關(guān)系的大小動(dòng)態(tài)改變,但所選用的DBMSDBMS提提供了動(dòng)態(tài)供了動(dòng)態(tài)HASHHASH存取方法。存取方法。9.5.3 9.5.3 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)(了解)確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)(了解)確定數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的內(nèi)容:確定數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的內(nèi)容:1 1、確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu):、確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu): 關(guān)

41、系、索引、聚簇、日志、備份。關(guān)系、索引、聚簇、日志、備份。2 2、確定系統(tǒng)配置。、確定系統(tǒng)配置。影響數(shù)據(jù)存放位置和存儲(chǔ)結(jié)構(gòu)的因素:影響數(shù)據(jù)存放位置和存儲(chǔ)結(jié)構(gòu)的因素:(1 1)硬件環(huán)境)硬件環(huán)境(2 2)應(yīng)用需求:存取時(shí)間、存儲(chǔ)空間利用率、維護(hù))應(yīng)用需求:存取時(shí)間、存儲(chǔ)空間利用率、維護(hù)代價(jià)。代價(jià)。 這三個(gè)方面常常是相互矛盾的。這三個(gè)方面常常是相互矛盾的。例如:消除一切冗余數(shù)據(jù)雖能夠節(jié)約存儲(chǔ)空間和例如:消除一切冗余數(shù)據(jù)雖能夠節(jié)約存儲(chǔ)空間和減少維護(hù)代價(jià),但往往會(huì)導(dǎo)致檢索代價(jià)的增加。減少維護(hù)代價(jià),但往往會(huì)導(dǎo)致檢索代價(jià)的增加。必須進(jìn)行權(quán)衡,選擇一個(gè)折中方案。必須進(jìn)行權(quán)衡,選擇一個(gè)折中方案。1 1、確定數(shù)

42、據(jù)的存放位置:、確定數(shù)據(jù)的存放位置: (了解)(了解)v基本原則基本原則根據(jù)應(yīng)用情況將根據(jù)應(yīng)用情況將v易變部分與穩(wěn)定部分;易變部分與穩(wěn)定部分;v存取頻率較高部分與存取頻率較低部分存取頻率較高部分與存取頻率較低部分 分開(kāi)存放,以提高系統(tǒng)性能。分開(kāi)存放,以提高系統(tǒng)性能。實(shí)例實(shí)例1 1:數(shù)據(jù)庫(kù)數(shù)據(jù)備份、日志文件備份等由于:數(shù)據(jù)庫(kù)數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時(shí)才使用,而且數(shù)據(jù)量很大,可只在故障恢復(fù)時(shí)才使用,而且數(shù)據(jù)量很大,可以考慮存放在磁帶上。以考慮存放在磁帶上。2. 2. 確定系統(tǒng)配置確定系統(tǒng)配置(了解)(了解)vDBMS產(chǎn)品一般都提供了一些存儲(chǔ)分配參數(shù)產(chǎn)品一般都提供了一些存儲(chǔ)分配參數(shù)

43、同時(shí)使用數(shù)據(jù)庫(kù)的用戶數(shù)同時(shí)使用數(shù)據(jù)庫(kù)的用戶數(shù) 同時(shí)打開(kāi)的數(shù)據(jù)庫(kù)對(duì)象數(shù)同時(shí)打開(kāi)的數(shù)據(jù)庫(kù)對(duì)象數(shù) 使用的緩沖區(qū)長(zhǎng)度、個(gè)數(shù)使用的緩沖區(qū)長(zhǎng)度、個(gè)數(shù) 時(shí)間片大小時(shí)間片大小 數(shù)據(jù)庫(kù)的大小數(shù)據(jù)庫(kù)的大小 填充因子填充因子 鎖的數(shù)目鎖的數(shù)目 等等等等9.5.4 9.5.4 評(píng)價(jià)物理結(jié)構(gòu)評(píng)價(jià)物理結(jié)構(gòu)(了解)(了解)v評(píng)價(jià)內(nèi)容評(píng)價(jià)內(nèi)容對(duì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)過(guò)程中產(chǎn)生的多種方案進(jìn)對(duì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)過(guò)程中產(chǎn)生的多種方案進(jìn)行細(xì)致的評(píng)價(jià),從中選擇一個(gè)較優(yōu)的方案作行細(xì)致的評(píng)價(jià),從中選擇一個(gè)較優(yōu)的方案作為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。v評(píng)價(jià)方法評(píng)價(jià)方法定量估算各種方案定量估算各種方案v 存儲(chǔ)空間存儲(chǔ)空間v 存取時(shí)間存取時(shí)間v 維

44、護(hù)代價(jià)維護(hù)代價(jià)對(duì)估算結(jié)果進(jìn)行權(quán)衡、比較,選擇出一個(gè)對(duì)估算結(jié)果進(jìn)行權(quán)衡、比較,選擇出一個(gè)較優(yōu)的合理的物理結(jié)構(gòu)。較優(yōu)的合理的物理結(jié)構(gòu)。如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計(jì)。計(jì)。9.6 數(shù)據(jù)庫(kù)的實(shí)施v數(shù)據(jù)庫(kù)實(shí)施的工作內(nèi)容數(shù)據(jù)庫(kù)實(shí)施的工作內(nèi)容用用DDLDDL定義數(shù)據(jù)庫(kù)結(jié)構(gòu)定義數(shù)據(jù)庫(kù)結(jié)構(gòu)組織數(shù)據(jù)入庫(kù)組織數(shù)據(jù)入庫(kù)編制與調(diào)試應(yīng)用程序編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫(kù)試運(yùn)行數(shù)據(jù)庫(kù)試運(yùn)行數(shù)據(jù)庫(kù)實(shí)施數(shù)據(jù)庫(kù)實(shí)施定義數(shù)定義數(shù)據(jù)庫(kù)結(jié)據(jù)庫(kù)結(jié)構(gòu)構(gòu)數(shù)據(jù)數(shù)據(jù)裝載裝載 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)試運(yùn)行試運(yùn)行數(shù)據(jù)庫(kù)物數(shù)據(jù)庫(kù)物理設(shè)計(jì)理設(shè)計(jì)數(shù)據(jù)庫(kù)運(yùn)數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)行和維護(hù)物理物理模型模型編制與編制與調(diào)試應(yīng)調(diào)試應(yīng)用程序用程序數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)系統(tǒng)系統(tǒng)v在數(shù)據(jù)庫(kù)運(yùn)行階段,對(duì)數(shù)據(jù)庫(kù)經(jīng)常性的維護(hù)在數(shù)據(jù)庫(kù)運(yùn)行階段,對(duì)數(shù)據(jù)庫(kù)經(jīng)常

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論