數(shù)據(jù)庫(kù)系統(tǒng)原理 第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)3_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理 第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)3_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理 第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)3_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理 第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)3_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)原理 第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)3_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第七章數(shù)據(jù)庫(kù)設(shè)計(jì)之三AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)的物理設(shè)計(jì)什么是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱(chēng)為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴(lài)于給定的計(jì)算機(jī)系統(tǒng)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過(guò)程,就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)的步驟確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率目標(biāo):提高速度、節(jié)約空間。AnIntroductiontoDatabaseSystem

數(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í)施物理模型邏輯模型AnIntroductiontoDatabaseSystem存儲(chǔ)記錄結(jié)構(gòu)的設(shè)計(jì)訪(fǎng)問(wèn)方法的設(shè)計(jì)數(shù)據(jù)存儲(chǔ)位置設(shè)計(jì)系統(tǒng)配置設(shè)計(jì)確定物理結(jié)構(gòu)AnIntroductiontoDatabaseSystem存儲(chǔ)記錄結(jié)構(gòu)的設(shè)計(jì)存儲(chǔ)記錄結(jié)構(gòu)的設(shè)計(jì)包括記錄的組成、數(shù)據(jù)項(xiàng)的類(lèi)型和長(zhǎng)度,以及邏輯記錄到存儲(chǔ)記錄的映射靈活的存儲(chǔ)結(jié)構(gòu):聚簇和索引聚簇:把屬性上具有相同值的元組集中存放在一個(gè)物理塊中。如果存放不下,可以存放在相鄰的物理塊中,該組屬性稱(chēng)為聚簇碼索引文件對(duì)存儲(chǔ)記錄重新進(jìn)行內(nèi)部連接,邏輯上改變了記錄的存儲(chǔ)位置,從而改變了訪(fǎng)問(wèn)數(shù)據(jù)的入口點(diǎn)AnIntroductiontoDatabaseSystem關(guān)系模式存取方法選擇DBMS常用存取方法索引方法,目前主要是B+樹(shù)索引方法聚簇(Cluster)方法HASH方法(*)AnIntroductiontoDatabaseSystem索引存取方法的選擇選擇索引存取方法的主要內(nèi)容

根據(jù)應(yīng)用要求確定對(duì)哪些屬性列建立索引對(duì)哪些屬性列建立組合索引對(duì)哪些索引要設(shè)計(jì)為唯一索引AnIntroductiontoDatabaseSystem索引存取方法的選擇(續(xù))選擇索引存取方法的一般規(guī)則如果一個(gè)(或一組)屬性經(jīng)常在查詢(xún)條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引(或組合索引)如果一個(gè)屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個(gè)屬性上建立索引如果一個(gè)(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引AnIntroductiontoDatabaseSystem索引存取方法的選擇(續(xù))關(guān)系上定義的索引數(shù)過(guò)多會(huì)帶來(lái)較多的額外開(kāi)銷(xiāo)維護(hù)索引的開(kāi)銷(xiāo)查找索引的開(kāi)銷(xiāo)AnIntroductiontoDatabaseSystem聚簇存取方法的選擇什么是聚簇為了提高某個(gè)屬性(或?qū)傩越M)的查詢(xún)速度,把這個(gè)或這些屬性(稱(chēng)為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱(chēng)為聚簇.許多關(guān)系型DBMS都提供了聚簇功能.AnIntroductiontoDatabaseSystem建立聚簇索引(復(fù)習(xí))聚簇索引建立聚簇索引后,基表中數(shù)據(jù)也需要按指定的聚簇屬性值的升序或降序存放。也即聚簇索引的索引項(xiàng)順序與表中元組的物理順序一致。例:

CREATECLUSTERINDEXStusnameONStudent(Sname);

在Student表的Sname(姓名)列上建立一個(gè)聚簇索引,而且Student表中的記錄將按照Sname值的升序存放.AnIntroductiontoDatabaseSystem建立聚簇索引(復(fù)習(xí))在一個(gè)基本表上最多只能建立一個(gè)聚簇索引聚簇索引的用途:對(duì)于某些類(lèi)型的查詢(xún),可以提高查詢(xún)效率聚簇索引的適用范圍很少對(duì)基表進(jìn)行增刪操作很少對(duì)其中的建立了聚簇索引的列進(jìn)行修改操作AnIntroductiontoDatabaseSystem聚簇存取方法的選擇(續(xù))聚簇的用途大大提高按聚簇屬性進(jìn)行查詢(xún)的效率例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查 詢(xún)信息系的所有學(xué)生名單。信息系的500名學(xué)生分布在500個(gè)不同的物理塊上時(shí),至少要執(zhí)行500次I/O操作。如果將同一系的學(xué)生元組集中存放,則每讀一個(gè)物理塊可得到多個(gè)滿(mǎn)足查詢(xún)條件的元組,從而顯著地減少了訪(fǎng)問(wèn)磁盤(pán)的次數(shù)。AnIntroductiontoDatabaseSystem聚簇存取方法的選擇(續(xù))節(jié)省存儲(chǔ)空間聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個(gè)元組中重復(fù)存儲(chǔ),只要在一組中存一次就行了.AnIntroductiontoDatabaseSystem聚簇存取方法的選擇(續(xù))聚簇的局限性聚簇只能提高某些特定應(yīng)用的性能建立與維護(hù)聚簇的開(kāi)銷(xiāo)相當(dāng)大對(duì)已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動(dòng)其物理存儲(chǔ)位置,并使此關(guān)系上原有的索引無(wú)效,必須重建。當(dāng)一個(gè)元組的聚簇碼改變時(shí),該元組的存儲(chǔ)位置也要做相應(yīng)移動(dòng)。AnIntroductiontoDatabaseSystem聚簇存取方法的選擇(續(xù))聚簇的適用范圍既適用于單個(gè)關(guān)系獨(dú)立聚簇,也適用于多個(gè)關(guān)系組合聚簇.

例:假設(shè)用戶(hù)經(jīng)常要按系別查詢(xún)學(xué)生成績(jī)單,這一查詢(xún)涉及學(xué)生關(guān)系和選修關(guān)系的連接操作,即需要按學(xué)號(hào)連接這兩個(gè)關(guān)系,為提高連接操作的效率,可以把具有相同學(xué)號(hào)值的學(xué)生元組和選修元組在物理上聚簇在一起。這就相當(dāng)于把多個(gè)關(guān)系按“預(yù)連接”的形式存放,從而大大提高連接操作的效率。AnIntroductiontoDatabaseSystem聚簇存取方法的選擇(續(xù))當(dāng)通過(guò)聚簇碼進(jìn)行訪(fǎng)問(wèn)或連接是該關(guān)系的主要應(yīng)用,與聚簇碼無(wú)關(guān)的其他訪(fǎng)問(wèn)很少或者是次要的時(shí)候,可以使用聚簇。尤其當(dāng)SQL語(yǔ)句中包含有與聚簇碼有關(guān)的ORDERBY,GROUPBY,UNION,DISTINCT等子句或短語(yǔ)時(shí),使用聚簇特別有利,可以省去對(duì)結(jié)果集的排序操作AnIntroductiontoDatabaseSystemHASH存取方法的選擇*選擇HASH存取方法的規(guī)則當(dāng)一個(gè)關(guān)系滿(mǎ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存取方法。AnIntroductiontoDatabaseSystem數(shù)據(jù)存儲(chǔ)位置設(shè)計(jì)表和索引分別存放在不同的磁盤(pán)上數(shù)據(jù)庫(kù)的備份、日志文件備份可以存放在磁帶上AnIntroductiontoDatabaseSystem系統(tǒng)配置設(shè)計(jì)考慮以下因素:同時(shí)使用數(shù)據(jù)庫(kù)的用戶(hù)數(shù)同時(shí)打開(kāi)的數(shù)據(jù)庫(kù)對(duì)象數(shù)內(nèi)存分配參數(shù)緩沖區(qū)分配參數(shù)、存儲(chǔ)分配參數(shù)、時(shí)間片大小等AnIntroductiontoDatabaseSystem評(píng)價(jià)物理結(jié)構(gòu)評(píng)價(jià)內(nèi)容對(duì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)過(guò)程中產(chǎn)生的多種方案進(jìn)行細(xì)致的評(píng)價(jià),從中選擇一個(gè)較優(yōu)的方案作為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)AnIntroductiontoDatabaseSystem評(píng)價(jià)物理結(jié)構(gòu)評(píng)價(jià)方法定量估算各種方案

存儲(chǔ)空間存取時(shí)間維護(hù)代價(jià)對(duì)估算結(jié)果進(jìn)行權(quán)衡、比較,選擇出一個(gè)較優(yōu)的合理的物理結(jié)構(gòu)如果該結(jié)構(gòu)不符合用戶(hù)需求,則需要修改設(shè)計(jì)AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)的實(shí)施數(shù)據(jù)庫(kù)實(shí)施的工作內(nèi)容用DDL定義數(shù)據(jù)庫(kù)結(jié)構(gòu)組織數(shù)據(jù)入庫(kù)編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫(kù)試運(yùn)行AnIntroductiontoDatabaseSystem一、定義數(shù)據(jù)庫(kù)結(jié)構(gòu)確定了數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,就可以用所選用的DBMS提供的數(shù)據(jù)定義語(yǔ)言(DDL)來(lái)嚴(yán)格描述數(shù)據(jù)庫(kù)結(jié)構(gòu)。

AnIntroductiontoDatabaseSystem二、數(shù)據(jù)裝載數(shù)據(jù)庫(kù)結(jié)構(gòu)建立好后,就可以向數(shù)據(jù)庫(kù)中裝載數(shù)據(jù)了。組織數(shù)據(jù)入庫(kù)是數(shù)據(jù)庫(kù)實(shí)施階段最主要的工作。數(shù)據(jù)裝載方法人工方法計(jì)算機(jī)輔助數(shù)據(jù)入庫(kù)AnIntroductiontoDatabaseSystem三、編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)應(yīng)該與數(shù)據(jù)設(shè)計(jì)并行進(jìn)行。在數(shù)據(jù)庫(kù)實(shí)施階段,當(dāng)數(shù)據(jù)庫(kù)結(jié)構(gòu)建立好后,就可以開(kāi)始編制與調(diào)試數(shù)據(jù)庫(kù)的應(yīng)用程序。調(diào)試應(yīng)用程序時(shí)由于數(shù)據(jù)入庫(kù)尚未完成,可先使用模擬數(shù)據(jù)。AnIntroductiontoDatabaseSystem四、數(shù)據(jù)庫(kù)試運(yùn)行應(yīng)用程序調(diào)試完成,并且已有一小部分?jǐn)?shù)據(jù)入庫(kù)后,就可以開(kāi)始數(shù)據(jù)庫(kù)的試運(yùn)行。數(shù)據(jù)庫(kù)試運(yùn)行也稱(chēng)為聯(lián)合調(diào)試,其主要工作包括:功能測(cè)試:實(shí)際運(yùn)行應(yīng)用程序,執(zhí)行對(duì)數(shù)據(jù)庫(kù)的各種操作,測(cè)試應(yīng)用程序的各種功能。性能測(cè)試:測(cè)量系統(tǒng)的性能指標(biāo),分析是否符合設(shè)計(jì)目標(biāo)。AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)數(shù)據(jù)庫(kù)試運(yùn)行結(jié)果符合設(shè)計(jì)目標(biāo)后,數(shù)據(jù)庫(kù)就可以真正投入運(yùn)行了。數(shù)據(jù)庫(kù)投入運(yùn)行標(biāo)著開(kāi)發(fā)任務(wù)的基本完成和維護(hù)工作的開(kāi)始。對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)進(jìn)行評(píng)價(jià)、調(diào)整、修改等維護(hù)工作是一個(gè)長(zhǎng)期的任務(wù),也是設(shè)計(jì)工作的繼續(xù)和提高。應(yīng)用環(huán)境在不斷變化數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中物理存儲(chǔ)會(huì)不斷變化AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)(續(xù))在數(shù)據(jù)庫(kù)運(yùn)行階段,對(duì)數(shù)據(jù)庫(kù)經(jīng)常性的維護(hù)工作主要是由DBA完成的,包括:

⒈數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)轉(zhuǎn)儲(chǔ)和恢復(fù)是系統(tǒng)正式運(yùn)行后最重要的維護(hù)工作之一。DBA要針對(duì)不同的應(yīng)用要求制定不同的轉(zhuǎn)儲(chǔ)計(jì)劃,定期對(duì)數(shù)據(jù)庫(kù)和日志文件進(jìn)行備份。一旦發(fā)生介質(zhì)故障,即利用數(shù)據(jù)庫(kù)備份及日志文件備份,盡快將數(shù)據(jù)庫(kù)恢復(fù)到某種一致性狀態(tài)。AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)(續(xù))2.數(shù)據(jù)庫(kù)的安全性、完整性控制DBA必須根據(jù)用戶(hù)的實(shí)際需要授予不同的操作權(quán)限。在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,由于應(yīng)用環(huán)境的變化,對(duì)安全性的要求也會(huì)發(fā)生變化,DBA需要根據(jù)實(shí)際情況修改原有的安全性控制。由于應(yīng)用環(huán)境的變化,數(shù)據(jù)庫(kù)的完整性約束條件也會(huì)變化,也需要DBA不斷修正,以滿(mǎn)足用戶(hù)要求。AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)(續(xù))⒊數(shù)據(jù)庫(kù)性能的監(jiān)督、分析和改進(jìn)在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,DBA必須監(jiān)督系統(tǒng)運(yùn)行,對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析,找出改進(jìn)系統(tǒng)性能的方法。利用監(jiān)測(cè)工具獲取系統(tǒng)運(yùn)行過(guò)程中一系列性能參數(shù)的值。通過(guò)仔細(xì)分析這些數(shù)據(jù),判斷當(dāng)前系統(tǒng)是否處于最佳運(yùn)行狀態(tài)。如果不是,則需要通過(guò)調(diào)整某些參數(shù)來(lái)進(jìn)一步改進(jìn)數(shù)據(jù)庫(kù)性能。AnIntroductiontoDatabaseSystem數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)(續(xù))⒋數(shù)據(jù)庫(kù)的重組織和重構(gòu)造重組織數(shù)據(jù)庫(kù)適當(dāng)重構(gòu)造數(shù)據(jù)庫(kù)AnIntroductiontoDatabaseSystem小結(jié)數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理設(shè)計(jì)實(shí)施運(yùn)行維護(hù)設(shè)計(jì)過(guò)程中往往還會(huì)有許多反復(fù)。AnIntroductiontoDatabaseSystem小結(jié)(續(xù))數(shù)據(jù)庫(kù)各級(jí)模式的形成數(shù)據(jù)庫(kù)的各級(jí)模式是在設(shè)計(jì)過(guò)程中逐步形成的需求分析階段綜合各個(gè)用戶(hù)的應(yīng)用需求(現(xiàn)實(shí)世界的需求)。概念設(shè)計(jì)階段形成獨(dú)立于機(jī)器特點(diǎn)、獨(dú)立于各個(gè)DBMS產(chǎn)品的概念模式(信息世界模型),用E-R圖來(lái)描述。AnIntroductiontoDatabaseSystem小結(jié)(續(xù))在邏輯設(shè)計(jì)階段將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫(kù)產(chǎn)品支持的數(shù)據(jù)模型如關(guān)系模型,形成數(shù)據(jù)庫(kù)邏輯模式。然后根據(jù)用戶(hù)處理的要求,安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖(VIEW)形成數(shù)據(jù)的外模式。在物理設(shè)計(jì)階段根據(jù)DBMS特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,設(shè)計(jì)索引,形成數(shù)據(jù)庫(kù)內(nèi)模式。AnIntroductiontoDatabaseSystem小結(jié)(續(xù))目前很多DBMS都提供了一些輔助工具(CASE工具),為加快數(shù)據(jù)庫(kù)設(shè)計(jì)速度,設(shè)計(jì)人員可根據(jù)需要選用。例如需求分析完成之后,設(shè)計(jì)人員可以使用ORACLEDESIGNER2000畫(huà)E-R圖,將E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型,生成數(shù)據(jù)庫(kù)結(jié)構(gòu);AnIntroductiontoDatabaseSystem小結(jié)(續(xù))利用CASE工具生成的僅僅是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的一個(gè)雛形,比較粗糙,數(shù)據(jù)庫(kù)設(shè)計(jì)人員需要根據(jù)用戶(hù)的應(yīng)用需求進(jìn)一步修改該雛形,使之成為一個(gè)完善的系統(tǒng)。早期就選擇某種CASE工具固然能

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論