數(shù)據(jù)庫(kù)實(shí)用教程ppt課件
《數(shù)據(jù)庫(kù)實(shí)用教程ppt課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫(kù)實(shí)用教程ppt課件(70頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
7.5 邏輯(結(jié)構(gòu))設(shè)計(jì) 概念設(shè)計(jì)的結(jié)果是得到一個(gè)與DBMS無(wú)關(guān)的概念模式。而邏輯設(shè)計(jì)的目的是把概念設(shè) 計(jì)階段設(shè)計(jì)好的全局ER模式轉(zhuǎn)換成與選用的具體機(jī)器上的DBMS所支援的數(shù)據(jù)模型相符合的的邏輯結(jié)構(gòu)(包括數(shù)據(jù)庫(kù)模式和外模式)。這些模式在功能上、完整性和一致性約束及數(shù)據(jù)庫(kù)的可擴(kuò)充性等方面均應(yīng)滿足用戶的各種要求。對(duì)于邏輯設(shè)計(jì)而言,應(yīng)首先選擇DBMS,但往往數(shù)據(jù)庫(kù)設(shè)計(jì)人員沒(méi)有挑選的余地,都是在指定的DBMS上進(jìn)行邏輯結(jié)構(gòu)的設(shè)計(jì)。,1,7.5.1 邏輯設(shè)計(jì)環(huán)境 邏輯設(shè)計(jì)的輸入輸出環(huán)境如圖7.22所示,2,在邏輯設(shè)計(jì)階段主要輸入下列信息: (1)獨(dú)立于DBMS的概念模式。這是概念設(shè)計(jì)階段產(chǎn)生的所有局部和全局概念模式。 (2)處理需求。需求分析階段產(chǎn)生的業(yè)務(wù)活動(dòng)分析結(jié)果。這里包括數(shù)據(jù)的規(guī)模和應(yīng)用頻率,用戶或用戶集團(tuán)的需求。 (3)約束條件。即完整性、一致性、安全性要求及響應(yīng)時(shí)間要求等等。 (4)DBMS特性。即特定的DBMS所支持的模式、子模式和程序語(yǔ)法的形式規(guī)則。,3,在邏輯設(shè)計(jì)階段主要輸出如下的信息: (1)DBMS可處理的模式。一個(gè)能用特定 DBMS實(shí)現(xiàn)的數(shù)據(jù)庫(kù)結(jié)構(gòu)的說(shuō)明,但是不包括記錄的聚合、塊的大小等物理參數(shù)的說(shuō)明,但要對(duì)某些訪問(wèn)路徑參數(shù)(如順序、指針檢索的類型)加以說(shuō)明。 (2)子模式。與單個(gè)用戶觀點(diǎn)和完整性約束一致的DBMS所支持的數(shù)據(jù)結(jié)構(gòu)。 (3)應(yīng)用程序設(shè)計(jì)指南。根據(jù)設(shè)計(jì)的數(shù)據(jù)庫(kù)結(jié)構(gòu)為應(yīng)用程序員提供訪問(wèn)路徑選擇。 (4)物理設(shè)計(jì)指南。完全文檔化的模式和子模式應(yīng)包括容量、使用頻率、軟硬件等信息。這些信息將要在物理設(shè)計(jì)階段使用,4,7.5.2 邏輯設(shè)計(jì)的步驟 邏輯設(shè)計(jì)主要是把概念模式轉(zhuǎn)換成DBMS能處理的模式。轉(zhuǎn)換過(guò)程中要對(duì)模式進(jìn)行評(píng) 價(jià)和性能測(cè)試,以便獲得較好的模式設(shè)計(jì)。邏輯設(shè)計(jì)的主要步驟如圖7.23所示。 1.初始模式的形成; 這一步是形成初始的 DBMS模式。 根據(jù)概念模式以及DBMS的記錄類型特點(diǎn),將ER模式的實(shí)體類型或聯(lián)系類型轉(zhuǎn)換成記錄類型,在比較復(fù)雜的情況下,實(shí)體可能分裂或合并成新的記錄類型。,5,6,2.子模式設(shè)計(jì) 子模式是模式的邏輯子集。子模式是應(yīng)用程序和數(shù)據(jù)庫(kù)系統(tǒng)的接口,它能允許應(yīng)用程序有效地訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),而不破壞數(shù)據(jù)庫(kù)的安全性。 3.應(yīng)用程序設(shè)計(jì)梗概 在設(shè)計(jì)完整的應(yīng)用程序之前,先設(shè)計(jì)出應(yīng)用程序的草圖,對(duì)每個(gè)應(yīng)用程序應(yīng)設(shè)計(jì)出數(shù)據(jù)存取功能的梗概,提供程序上的邏輯接口。,7,4.模式評(píng)價(jià) 這一步的工作就是對(duì)數(shù)據(jù)庫(kù)模式進(jìn)行評(píng)價(jià)。評(píng)價(jià)數(shù)據(jù)庫(kù)結(jié)構(gòu)的方法通常有定量分析和性能測(cè)量等方法。 定量分析有兩個(gè)參數(shù):處理頻率和數(shù)據(jù)容量。處理頻率是在數(shù)據(jù)庫(kù)運(yùn)行期間應(yīng)用程序的使用次數(shù);數(shù)據(jù)容量是數(shù)據(jù)庫(kù)中記錄的個(gè)數(shù)。數(shù)據(jù)庫(kù)增長(zhǎng)過(guò)程的具體表現(xiàn)就是這兩個(gè)參 數(shù)值的增加。 性能測(cè)量是指邏輯記錄的訪問(wèn)數(shù)目、一個(gè)應(yīng)用程序傳輸?shù)目傋止?jié)數(shù)。數(shù)據(jù)庫(kù)的總字節(jié) 數(shù),這些參數(shù)應(yīng)該盡可能預(yù)先知道,它能預(yù)測(cè)物理數(shù)據(jù)庫(kù)的性能。,8,5.修正模式 修正模式的目的是為了使模式適應(yīng)信息的不同表示。此時(shí),可利用DBMS的性能,如索引或散列功能,但數(shù)據(jù)庫(kù)的信息內(nèi)容不能修改。如果信息內(nèi)容不修改,模式就不能進(jìn)一步求精,那么就要停止模式設(shè)計(jì),返回到概念設(shè)計(jì)或需求分析階段,重新設(shè)計(jì)。,9,7.5.3 ER模型向關(guān)系模型的轉(zhuǎn)換 1. ER模型轉(zhuǎn)換為關(guān)系模型的一般規(guī)則 ER模型中的主要成分是實(shí)體類型和聯(lián)系類型,轉(zhuǎn)換規(guī)則就是如何把實(shí)體類型、聯(lián)系類型轉(zhuǎn)換成關(guān)系模式。 (1)實(shí)體類型的轉(zhuǎn)換:將每個(gè)實(shí)體類型轉(zhuǎn)換成一個(gè)關(guān)系模式,實(shí)體的屬性即為關(guān)系模式的屬性,實(shí)體標(biāo)識(shí)符即為關(guān)系模式的鍵。,10,(2)聯(lián)系類型的轉(zhuǎn)換,根據(jù)不同的情況做不同的處理: ①若實(shí)體間的聯(lián)系是1:1的,可以在兩個(gè)實(shí)體類型轉(zhuǎn)換成的兩個(gè)關(guān)系模式中的任意一個(gè)關(guān)系模式的屬性中加人另一個(gè)關(guān)系模式的鍵和聯(lián)系類型的屬性。,11,[例7·9] 某大學(xué)管理中的實(shí)體“院長(zhǎng)”與“學(xué)院’之間存在著1:1的聯(lián)系,其ER圖如7·24所示。在將其轉(zhuǎn)化為關(guān)系模型時(shí),“院長(zhǎng)’與“學(xué)院”各為一個(gè)模式。如果用戶經(jīng)常要在查詢學(xué)院信息時(shí)查詢其院長(zhǎng)信息,那么可在學(xué)院模式中加人院長(zhǎng)名和任職年月,其關(guān)系模式設(shè)計(jì)如下(加下劃線者為主鍵,加波浪線者為外鍵): 學(xué)院關(guān)系模式(學(xué)院編號(hào),學(xué)院名,地址,電話,院長(zhǎng)名,任職年月) 院長(zhǎng)關(guān)系模式(院長(zhǎng)名,年齡,性別,職稱),12,13,②若實(shí)體間的聯(lián)系是1:N的,則在N端實(shí)體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實(shí)體類 型轉(zhuǎn)換成的關(guān)系模式的鍵和聯(lián)系類型的屬性。 [例7·10]某大學(xué)管理中的實(shí)體“系”與“教師”之間存在著1:N的聯(lián)系,其ER圖如7·25所示。轉(zhuǎn)換成的關(guān)系模式如下: 系關(guān)系模式(系編號(hào),系名,電話,系主任) 教師關(guān)系模式(教師編號(hào),姓名,年齡,性別,職稱,系編號(hào),聘用年月),14,③弱實(shí)體:若實(shí)體間的聯(lián)系是1:N的,而且在N端實(shí)體類型為弱實(shí)體,轉(zhuǎn)換成的關(guān)系模式中將1端實(shí)體類型(父表)的鍵作為外鍵放在N端的弱實(shí)體(子表)中。弱實(shí)體的主鍵由父表的主鍵與弱實(shí)體本身的候選鍵組成。也可以為弱實(shí)體建立新的獨(dú)立的標(biāo)識(shí)符 ID。 [例7·11]某大學(xué)管理中的實(shí)體“學(xué)生”與弱實(shí)體“社會(huì)關(guān)系”之間存在著1:N的聯(lián)系,其ER圖如7·26所示。轉(zhuǎn)換成的關(guān)系模式如下: 學(xué)生關(guān)系模式(學(xué)生編號(hào),姓名,年齡,性別,家庭地址,所在系,班號(hào)) 社會(huì)關(guān)系模式(學(xué)生編號(hào),稱呼,姓名,年齡,政治面貌,工作單位),15,16,若實(shí)體間的聯(lián)系是M:N的,則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實(shí)體類型的鍵加上聯(lián)系類型的屬性,而鍵為兩端實(shí)體鍵的組合。 [例7.12]某大學(xué)管理中的實(shí)體“學(xué)生”與“課程”之間存在著M:N的聯(lián)系,其ER圖如7.27所示。轉(zhuǎn)換成的關(guān)系模式如下: 學(xué)生關(guān)系模式(學(xué)生編號(hào),姓名,年齡,性別,家庭地址,所在系,班號(hào)) 課程關(guān)系模式(課程編號(hào),課程名,課程性質(zhì),學(xué)分?jǐn)?shù),先行課,開(kāi)課學(xué)期,開(kāi)課系編號(hào)) 選修關(guān)系模式(學(xué)生編號(hào),課程編號(hào),成績(jī)),17,18,2.超類和子類的轉(zhuǎn)換規(guī)則 將超類和子類各轉(zhuǎn)換成一個(gè)關(guān)系模式,在子類轉(zhuǎn)換成的關(guān)系模式(子表)中加入超類轉(zhuǎn)換成關(guān)系模式(父表)的鍵,從而實(shí)現(xiàn)父表與子表的聯(lián)系。由于父表與子表的主鍵相同,所子表的主鍵也是外鍵。 [例 7.13]某大學(xué)數(shù)據(jù)庫(kù)中的實(shí)體“教師”(超類)的成員實(shí)體也可以分為教授、副教授,講師和助教四個(gè)子實(shí)體集合(子類)如圖7.28所示。,19,轉(zhuǎn)換成的關(guān)系模式如下: 教師關(guān)系模式(教師編號(hào),姓名,年齡,性別) 教授關(guān)系模式(教師編號(hào),是否博導(dǎo)) 副教授關(guān)系模式(教師編號(hào),是否碩導(dǎo)) 講師關(guān)系模式(教師編號(hào),學(xué)歷,是否班導(dǎo)師) 助教關(guān)系模式(教師編號(hào),導(dǎo)師姓名),20,7.5.4 關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì) 由于關(guān)系模型的固有優(yōu)點(diǎn),邏輯設(shè)計(jì)可以運(yùn)用關(guān)系數(shù)據(jù)庫(kù)模式設(shè)計(jì)理論使設(shè)計(jì)過(guò)程形式化地進(jìn)行,并且結(jié)果可以驗(yàn)證。關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)的過(guò)程如圖 7·29所示。,21,從圖7.29可以看出,概念設(shè)計(jì)的結(jié)果直接影響到邏輯設(shè)計(jì)過(guò)程的復(fù)雜性和效率。在概念設(shè)計(jì)階段已經(jīng)把關(guān)系規(guī)范化的某些思想用作構(gòu)造實(shí)體類型和聯(lián)系類型的標(biāo)準(zhǔn),在邏輯設(shè)計(jì)階段,仍然要使用關(guān)系規(guī)范化理論來(lái)設(shè)計(jì)模式和評(píng)價(jià)模式。關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)的結(jié)果是一組關(guān)系模式的定義。 1.導(dǎo)出初始關(guān)系模式 邏輯設(shè)計(jì)的第一步是把概念設(shè)計(jì)的結(jié)果(即全局ER模式)轉(zhuǎn)換成初始關(guān)系模式。,22,2.規(guī)范化處理 規(guī)范化的目的是減少乃至消除關(guān)系模式中存在的各種異常,改善完整性、一致性和存儲(chǔ)效率。規(guī)范化過(guò)程分為兩個(gè)步驟: (1) 確定規(guī)范級(jí)別 規(guī)范級(jí)別取決于兩個(gè)因素,一是歸結(jié)出來(lái)的數(shù)據(jù)依賴的種類,二是實(shí)際應(yīng)用的需要。在這里,我們主要從數(shù)據(jù)依賴的種類出發(fā),來(lái)討論規(guī)范級(jí)別問(wèn)題。 首先考察數(shù)據(jù)依賴集合。在僅有函數(shù)依賴時(shí),3NF或BCNF是適宜的標(biāo)準(zhǔn).,23,如還包括多值依賴時(shí),應(yīng)達(dá)到4NF。由于多值依賴語(yǔ)義的復(fù)雜性、非直觀性,一般使用得并不多。 在現(xiàn)實(shí)環(huán)境中,大量作用的還是函數(shù)依賴。 (2)實(shí)施規(guī)范化處理 確定規(guī)范級(jí)別之后,利用第5章的算法,逐一考察關(guān)系模式,判斷它們是否滿足規(guī)范要求。若不符合上下步所確定的規(guī)范級(jí)別,則利用相應(yīng)的規(guī)范算法將關(guān)系模式規(guī)范化。 在規(guī)范化綜合或分解過(guò)程中,要特別注意保持依賴和無(wú)損聯(lián)接要求。,24,綜合以上數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程,規(guī)范化理論在數(shù)據(jù)庫(kù)設(shè)計(jì)中有如下幾方面的應(yīng)用: (1) 在需求分析階段,用數(shù)據(jù)依賴概念分析和表示各個(gè)數(shù)據(jù)項(xiàng)之間的聯(lián)系。 (2) 在概念結(jié)構(gòu)設(shè)計(jì)階段,以規(guī)范化理論為指導(dǎo),確定關(guān)系鍵,消除初步E-R圖中冗余的聯(lián)系。 (3) 在邏輯結(jié)構(gòu)設(shè)計(jì)階段,從E-R圖向數(shù)據(jù)模型轉(zhuǎn)換過(guò)程中,用模式合并與分解方法達(dá)到規(guī)范化級(jí)別。,25,(3) 模式評(píng)價(jià) 關(guān)系模式的規(guī)范化不是目的而是手段,數(shù)據(jù)庫(kù)設(shè)計(jì)的目的是最終滿足應(yīng)用需求。因此,為了進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,還應(yīng)該對(duì)規(guī)范化后產(chǎn)生的關(guān)系模式進(jìn)行評(píng)價(jià)、改進(jìn),經(jīng)過(guò)反復(fù)多次的嘗試和比較,最后得到優(yōu)化的關(guān)系模式。 模式評(píng)價(jià)的目的是檢查所設(shè)計(jì)的數(shù)據(jù)庫(kù)模式是否滿足用戶的功能要求、效率,確定加以改進(jìn)的部分。模式評(píng)價(jià)包括功能評(píng)價(jià)和性能評(píng)價(jià)。,26,(A) 功能評(píng)價(jià) 功能評(píng)價(jià)指對(duì)照需求分析的結(jié)果,檢查規(guī)范化后的關(guān)系模式集合是否支持用戶所有的應(yīng)用要求。關(guān)系模式必須包括用戶可能訪問(wèn)的所有屬性。在涉及多個(gè)關(guān)系模式的應(yīng)用中,應(yīng)確保聯(lián)接后不丟失信息。如果發(fā)現(xiàn)有的應(yīng)用不被支持,或不完全被支持,則應(yīng)該改進(jìn)關(guān)系模式。發(fā)生這種問(wèn)題的原因可能是在邏輯設(shè)計(jì)階段,也可能是在需求分析或概念設(shè)計(jì)階段。是哪個(gè)階段的問(wèn)題就返回到哪個(gè)階段去,因此有可能對(duì)前兩個(gè)階段再進(jìn)行評(píng)審,解決存在的問(wèn)題。,27,在功能評(píng)價(jià)的過(guò)程中,可能會(huì)發(fā)現(xiàn)冗余的關(guān)系模式或?qū)傩?,這時(shí)應(yīng)對(duì)它們加以區(qū)分,搞清楚它們是為未來(lái)發(fā)展預(yù)留的,還是某種錯(cuò)誤造成的,比如名字混淆。如果屬于錯(cuò)誤處置,進(jìn)行改正即可,而如果這種冗余來(lái)源于前兩個(gè)設(shè)計(jì)階段,則也要返回重新進(jìn)行評(píng)審。 (B) 性能評(píng)價(jià) 對(duì)于目前得到的數(shù)據(jù)庫(kù)模式,由于缺乏物理設(shè)計(jì)所提供的數(shù)量測(cè)量標(biāo)準(zhǔn)和相應(yīng)的評(píng)價(jià)手段,所以性能評(píng)價(jià)是比較困難的,只能對(duì)實(shí)際性能進(jìn)行估計(jì),包括邏輯記錄的存取數(shù)、傳送量以及物理設(shè)計(jì)算法的模型等。,28,美國(guó)密執(zhí)安大學(xué)的T.Teorey和J.Fry于1980年提出的邏輯記錄訪問(wèn)(Logical Record Access,LRA)方法是一種常用的模式性能評(píng)價(jià)方法。LRA方法對(duì)網(wǎng)狀模型和層次模型較為實(shí)用,對(duì)于關(guān)系模型的查詢也能起一定的估算作用。 有關(guān)LRA方法本書(shū)不詳細(xì)介紹,讀 者可以參考有關(guān)書(shū)籍。,29,(4) 模式改進(jìn) 根據(jù)模式評(píng)價(jià)的結(jié)果,對(duì)已生成的模式進(jìn)行改進(jìn)。 如果因?yàn)樾枨蠓治觥⒏拍钤O(shè)計(jì)的疏漏導(dǎo)致某些應(yīng)用不能得到支持,則應(yīng)該增加新的關(guān)系模式或?qū)傩浴?如果因?yàn)樾阅芸紤]而要求改進(jìn),則可采用合并或分解的方法。 (A) 合并 如果有若干個(gè)關(guān)系模式具有相同的主鍵,并且對(duì)這些關(guān)系模式的處理主要是查詢操作,而且經(jīng)常是多關(guān)系的查詢,那么可對(duì)這些關(guān)系模式按照組合使用頻率進(jìn)行合并。 這樣便可以減少聯(lián)接操作而提高查詢效率。,30,(B) 分解 為了提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率,最常用和最重要的模式優(yōu)化方法就是分解,根據(jù)應(yīng)用的不同要求,可以對(duì)關(guān)系模式進(jìn)行垂直分解和水平分解。 水平分解是把關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系。 對(duì)于經(jīng)常進(jìn)行大量數(shù)據(jù)的分類條件查詢的關(guān)系,可進(jìn)行水平分解,這樣可以減少應(yīng)用系統(tǒng)每次查詢需要訪問(wèn)的記錄數(shù),從而提高了查詢性能。,31,例如,有學(xué)生關(guān)系(學(xué)號(hào),姓名,類別……),其中類別包括大專生、本科生和研究生。如果多數(shù)查詢一次只涉及其中的一類學(xué)生,就應(yīng)該把整個(gè)學(xué)生關(guān)系水平分割為大專生、本科生和研究生三個(gè)關(guān)系。 垂直分解是把關(guān)系模式的屬性分解為若干子集合,形成若干子關(guān)系模式。垂直分解的原則是把經(jīng)常一起使用的屬性分解出來(lái),形成一個(gè)子關(guān)系模式。 例如,有教師關(guān)系(教師號(hào),姓名,性別,年齡,職稱,工資,崗位津貼,住址,電話),如果經(jīng)常查詢的僅是前六項(xiàng),而后三項(xiàng)很少使用,則可以將教師關(guān)系進(jìn)行垂直分割,得到兩個(gè)教師關(guān)系:,32,教師關(guān)系1(教師號(hào),姓名,性別,年齡,職稱,工資) 教師關(guān)系2(教師號(hào),崗位津貼,住址,電話) 這樣,便減少了查詢的數(shù)據(jù)傳遞量,提高了查詢速度。 垂直分解可以提高某些事務(wù)的效率,但也有可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。因此是否要進(jìn)行垂直分解要看分解后的所有事務(wù)的總效率是否得到了提高。垂直分解要保證分解后的關(guān)系具有無(wú)損連接性和函數(shù)依賴保持性。相關(guān)的分解算法已經(jīng)在第4章進(jìn)行了詳細(xì)介紹。,33,經(jīng)過(guò)多次的模式評(píng)價(jià)和模式改進(jìn)之后,最終的數(shù)據(jù)庫(kù)模式得以確定。邏輯設(shè)計(jì)階段的結(jié)果是全局邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu)。對(duì)于關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),就是一組符合一定規(guī)范的關(guān)系模式組成的關(guān)系數(shù)據(jù)庫(kù)模型。 數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)物理獨(dú)立性特點(diǎn)消除了由于物理存儲(chǔ)改變而引起的對(duì)應(yīng)程序的修改。標(biāo)準(zhǔn)的DBMS例行程序應(yīng)適用于所有的訪問(wèn),查詢和更新事務(wù)的優(yōu)化應(yīng)當(dāng)在系統(tǒng)軟件一級(jí)上實(shí)現(xiàn)。這樣,邏輯數(shù)據(jù)庫(kù)確定之后,就可以開(kāi)始進(jìn)行應(yīng)用程序設(shè)計(jì)了。,34,[例7.15] 學(xué)員王洪林為浙江省黃驊紙制品公司設(shè)計(jì)的“庫(kù)存銷售信息管技系統(tǒng)”對(duì)倉(cāng)庫(kù)、車間、產(chǎn)品、客戶、銷售部的信息進(jìn)行了有效的管理,其ER圖如圖7.30所示。,35,這個(gè)ER圖有5個(gè)實(shí)體類型,其屬性如下: 車間:車間號(hào),車間名,主任名。 產(chǎn)品:產(chǎn)品號(hào),產(chǎn)品名,單價(jià)。 倉(cāng)位:倉(cāng)位號(hào),地址,主任名。 客戶:客戶號(hào),客戶名,聯(lián)系人,電話,地址,稅號(hào),賬號(hào)。 銷售員:銷售員號(hào),姓名,性別,學(xué)歷,業(yè)績(jī)。,36,這個(gè)ER圖有4個(gè)聯(lián)系類型,其中3個(gè)是M:N:P, 1個(gè)是M:N,屬性如下: 入庫(kù):入庫(kù)單號(hào),入庫(kù)量,入庫(kù)日期,經(jīng)手人。 存儲(chǔ):核對(duì)日期,核對(duì)員,存儲(chǔ)量。 出庫(kù):出庫(kù)單號(hào),出庫(kù)量,出庫(kù)日期,經(jīng)手人。 定單:定單號(hào),數(shù)量,折扣,總價(jià),定單日期。 試把這個(gè)ER圖轉(zhuǎn)換成關(guān)系模型,并指出每個(gè)表的主鍵和外鍵。,37,[解]根據(jù)ER模型轉(zhuǎn)換成關(guān)系模型的規(guī)則,可把上述ER圖轉(zhuǎn)換成9個(gè)關(guān)系模式,具體如下: 車間(車間號(hào),車間名,主任名) 產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,單價(jià)) 倉(cāng)位(倉(cāng)位號(hào),地址,主任名) 客戶(客戶號(hào),客戶名,聯(lián)系人,電話,地址,稅號(hào),賬號(hào)),38,銷售員(銷售員號(hào),姓名,性別,學(xué)歷,業(yè)績(jī)) 入庫(kù)(入庫(kù)單號(hào),入庫(kù)量,入庫(kù)日期,經(jīng)手人,車間號(hào),倉(cāng)位號(hào),產(chǎn)品號(hào)) 存儲(chǔ)(倉(cāng)位號(hào),產(chǎn)品號(hào),核對(duì)日期,核對(duì)員,存儲(chǔ)量) 出庫(kù)(出庫(kù)單號(hào),出庫(kù)量,出庫(kù)日期,經(jīng)手人,客戶號(hào),產(chǎn)品號(hào),倉(cāng)位號(hào)) 定單(定單號(hào),數(shù)量,折扣,總價(jià),定單日期,產(chǎn)品號(hào),客戶號(hào),銷售員號(hào)),39,7.6 數(shù)據(jù)庫(kù)物理設(shè)計(jì) 數(shù)據(jù)庫(kù)最終要存儲(chǔ)在物理設(shè)備上。對(duì)于給定的邏輯數(shù)據(jù)模型,選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過(guò)程,稱為數(shù)據(jù)庫(kù)物理設(shè)計(jì)。數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存取方法。顯然,數(shù)據(jù)庫(kù)的物理設(shè)計(jì)是完全依賴于給定的硬件環(huán)境和數(shù)據(jù)庫(kù)產(chǎn)品的。 在關(guān)系模型系統(tǒng)中,物理設(shè)計(jì)比較簡(jiǎn)單一些,因?yàn)槲募问绞菃斡涗涱愋臀募?,僅包含索引機(jī)制、空間大小、塊的大小等內(nèi)容。,40,數(shù)據(jù)庫(kù)的物理設(shè)計(jì)可分為兩步: (1) 確定物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存儲(chǔ)結(jié)構(gòu); (2)評(píng)價(jià)物理結(jié)構(gòu),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率。 7.6.1 確定物理結(jié)構(gòu) 設(shè)計(jì)人員必須深入了解給定的DBMS的功能,DBMS提供的環(huán)境和工具、硬件環(huán)境,特別是存儲(chǔ)設(shè)備的特征。另一方面也要了解應(yīng)用環(huán)境的具體要求,如各種應(yīng)用的數(shù)據(jù)量、處理頻率和響應(yīng)時(shí)間等。只有“知己知彼”才能設(shè)計(jì)出較好的物理結(jié)構(gòu)。,41,1.存儲(chǔ)記錄結(jié)構(gòu)的設(shè)計(jì) 在物理結(jié)構(gòu)中,數(shù)據(jù)的基本存取單位是存儲(chǔ)記錄。有了邏輯記錄結(jié)構(gòu)以后,就可以設(shè)計(jì)存儲(chǔ)記錄結(jié)構(gòu),一個(gè)存儲(chǔ)記錄可以和一個(gè)或多個(gè)邏輯記錄相對(duì)應(yīng)。存儲(chǔ)記錄結(jié)構(gòu)包括記錄的組成、數(shù)據(jù)項(xiàng)的類型和長(zhǎng)度,以及邏輯記錄到存儲(chǔ)記錄的映射。某一類型的所有存儲(chǔ)記錄的集合稱為“文件”,文件的存儲(chǔ)記錄可以是定長(zhǎng)的,也可以是變長(zhǎng)的。 文件組織或文件結(jié)構(gòu)是組成文件的存儲(chǔ)記錄的表示法。文件結(jié)構(gòu)應(yīng)該表示文件格式、邏輯次序、物理次序、訪問(wèn)路徑、物理設(shè)備的分配。物理數(shù)據(jù)庫(kù)就是指數(shù)據(jù)庫(kù)中實(shí)際存儲(chǔ)記錄的格式、邏輯次序和物理次序、訪問(wèn)路徑、物理設(shè)備的分配。 決定存儲(chǔ)結(jié)構(gòu)的主要因素包括存取時(shí)間、存儲(chǔ)空間和維護(hù)代價(jià)三個(gè)方面。設(shè)計(jì)時(shí)應(yīng)當(dāng)根據(jù)實(shí)際情況對(duì)這三個(gè)方面進(jìn)行綜合權(quán)衡。一般DBMS也提供一定的靈活性可供選擇,包括聚簇和索引。,42,(1) 聚簇(Cluster) 聚簇就是為了提高查詢速度,把在一個(gè)(或一組)屬性上具有相同值的元組集中地存放在一個(gè)物理塊中。如果存放不下,可以存放在相鄰的物理塊中。其中,這個(gè)(或這組)屬性稱為聚簇碼。 為什么要使用聚簇呢?聚簇有兩個(gè)作用: ①使用聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇值不必在每個(gè)元組中重復(fù)存儲(chǔ),只要在一組中存儲(chǔ)一次即可,因此可以節(jié)省存儲(chǔ)空間。,43,②聚簇功能可以大大提高按聚簇碼進(jìn)行查詢的效率。例如,假設(shè)要查詢學(xué)生關(guān)系中計(jì)算機(jī)系的學(xué)生名單,設(shè)計(jì)算機(jī)系有300名學(xué)生。在極端情況下,這些學(xué)生的記錄會(huì)分布在300個(gè)不同的物理塊中,這時(shí)如果要查詢計(jì)算機(jī)系的學(xué)生,就需要做300次的I/O操作,這將影響系統(tǒng)查詢的性能。如果按照系別建立聚簇,使同一個(gè)系的學(xué)生記錄集中存放,則每做一次I/O操作,就可以獲得多個(gè)滿足查詢條件和記錄,從而顯著地減少了訪問(wèn)磁盤的次數(shù)。,44,(2) 索引 存儲(chǔ)記錄是屬性值的集合,主關(guān)系鍵可以惟一確定一個(gè)記錄,而其他屬性的一個(gè)具體值不能惟一確定是哪個(gè)記錄。在主關(guān)系鍵上應(yīng)該建立惟一索引,這樣不但可以提高查詢速度,還能避免關(guān)系鍵重復(fù)值的錄入,確保了數(shù)據(jù)的完整性。 在數(shù)據(jù)庫(kù)中,用戶訪問(wèn)的最小單位是屬性。如果對(duì)某些非主屬性的檢索很頻繁,可以考慮建立這些屬性的索引文件。索引文件對(duì)存儲(chǔ)記錄重新進(jìn)行內(nèi)部鏈接,從邏輯上改變了記錄的存儲(chǔ)位置,從而改變了訪問(wèn)數(shù)據(jù)的入口點(diǎn)。關(guān)系中數(shù)據(jù)越多索引的優(yōu)越性也就越明顯。,45,建立多個(gè)索引文件可以縮短存取時(shí)間,但是增加了索引文件所占用的存儲(chǔ)空間以及維護(hù)的開(kāi)銷。因此,應(yīng)該根據(jù)實(shí)際需要綜合考慮。 2.訪問(wèn)方法的設(shè)計(jì) 訪問(wèn)方法是為存儲(chǔ)在物理設(shè)備(通常指輔存)上的數(shù)據(jù)提供存儲(chǔ)和檢索能力的方法。一個(gè)訪問(wèn)方法包括存儲(chǔ)結(jié)構(gòu)和檢索機(jī)構(gòu)兩個(gè)部分。存儲(chǔ)結(jié)構(gòu)限定了可能訪問(wèn)的路徑和存儲(chǔ)記錄;檢索機(jī)構(gòu)定義了每個(gè)應(yīng)用的訪問(wèn)路徑,但不涉及存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)和設(shè)備分配。,46,存儲(chǔ)記錄是屬性的集合,屬性是數(shù)據(jù)項(xiàng)類型,可用作主鍵或輔助鍵。主鍵惟一地確定了一個(gè)記錄。輔助鍵是用作記錄索引的屬性,可能并不惟一確定某一個(gè)記錄。 訪問(wèn)路徑的設(shè)計(jì)分成主訪問(wèn)路徑與輔訪問(wèn)路徑的設(shè)計(jì)。主訪問(wèn)路徑與初始記錄的裝入有關(guān),通常是用主鍵來(lái)檢索的。首先利用這種方法設(shè)計(jì)各個(gè)文件,使其能最有效地處理主要的應(yīng)用。一個(gè)物理數(shù)據(jù)庫(kù)很可能有幾套主訪問(wèn)路徑。輔訪問(wèn)路徑是通過(guò)輔助鍵的索引對(duì)存儲(chǔ)記錄重新進(jìn)行內(nèi)部鏈接,從而改變?cè)L問(wèn)數(shù)據(jù)的入口點(diǎn)。用輔助索引可以縮短訪問(wèn)時(shí)間,但增加了輔存空間和索引維護(hù)的開(kāi)銷。設(shè)計(jì)者應(yīng)根據(jù)具體情況作出權(quán)衡。,47,3.數(shù)據(jù)存放位置的設(shè)計(jì) 為了提高系統(tǒng)性能,應(yīng)該根據(jù)應(yīng)用情況將數(shù)據(jù)的易變部分、穩(wěn)定部分、經(jīng)常存取部分和存取頻率較低部分分開(kāi)存放。 例如,目前許多計(jì)算機(jī)都有多個(gè)磁盤,因此可以將表和索引分別存放在不同的磁盤上,在查詢時(shí),由于兩個(gè)磁盤驅(qū)動(dòng)器并行工作,可以提高物理讀寫的速度。 在多用戶環(huán)境下,可能將日志文件和數(shù)據(jù)庫(kù)對(duì)象(表、索引等)放在不同的磁盤上,以加快存取速度。另外,數(shù)據(jù)庫(kù)的數(shù)據(jù)備份、日志文件備份等,只在數(shù)據(jù)庫(kù)發(fā)生故障進(jìn)行恢復(fù)時(shí)才使用,而且數(shù)據(jù)量很大,可以存放在磁帶上,以改進(jìn)整個(gè)系統(tǒng)的性能。,48,4.系統(tǒng)配置的設(shè)計(jì) DBMS產(chǎn)品一般都提供了一些系統(tǒng)配置變量、存儲(chǔ)分配參數(shù),供設(shè)計(jì)人員和DBA對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理優(yōu)化。系統(tǒng)為這些變量設(shè)定了初始值,但是這些值不一定適合每一種應(yīng)用環(huán)境,在物理設(shè)計(jì)階段,要根據(jù)實(shí)際情況重新對(duì)這些變量賦值,以滿足新的要求。 系統(tǒng)配置變量和參數(shù)很多,例如,同時(shí)使用數(shù)據(jù)庫(kù)的用戶數(shù)、同時(shí)打開(kāi)的數(shù)據(jù)庫(kù)對(duì)象數(shù)、內(nèi)存分配參數(shù)、緩沖區(qū)分配參數(shù)(使用的緩沖區(qū)長(zhǎng)度、個(gè)數(shù))、存儲(chǔ)分配參數(shù)、數(shù)據(jù)庫(kù)的大小、時(shí)間片的大小、鎖的數(shù)目等,這些參數(shù)值影響存取時(shí)間和存儲(chǔ)空間的分配,在物理設(shè)計(jì)時(shí)要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)的性能達(dá)到最優(yōu)。,49,7.6.2 評(píng)價(jià)物理結(jié)構(gòu) 和前面幾個(gè)設(shè)計(jì)階段一樣,在確定了數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)之后,要進(jìn)行評(píng)價(jià),重點(diǎn)是時(shí)間和空間的效率。 如果評(píng)價(jià)結(jié)果滿足設(shè)計(jì)要求,則可進(jìn)行數(shù)據(jù)庫(kù)實(shí)施。 實(shí)際上,往往需要經(jīng)過(guò)反復(fù)測(cè)試才能優(yōu)化物理設(shè)計(jì)。,50,7.7 數(shù)據(jù)庫(kù)實(shí)施 數(shù)據(jù)庫(kù)實(shí)施是指根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果,在計(jì)算機(jī)上建立起實(shí)際的數(shù)據(jù)庫(kù)結(jié)構(gòu)、裝入數(shù)據(jù)、進(jìn)行測(cè)試和試運(yùn)行的過(guò)程。 數(shù)據(jù)庫(kù)實(shí)施主要包括以下工作: 建立實(shí)際數(shù)據(jù)庫(kù)結(jié)構(gòu); 裝入數(shù)據(jù); 應(yīng)用程序編碼與調(diào)試; 數(shù)據(jù)庫(kù)試運(yùn)行; 整理文檔。,51,7.7.1 建立實(shí)際數(shù)據(jù)庫(kù)結(jié)構(gòu) DBMS提供的數(shù)據(jù)定義語(yǔ)言(DDL)可以定義數(shù)據(jù)庫(kù)結(jié)構(gòu)。可使用第3章所講的SQL定義語(yǔ)句中的CREATE TABLE語(yǔ)句定義所需的基本表,使用CREATE VIEW語(yǔ)句定義視圖。 7.7.2 裝入數(shù)據(jù) 裝入數(shù)據(jù)又稱為數(shù)據(jù)庫(kù)加載(Loading),是數(shù)據(jù)庫(kù)實(shí)施階段的主要工作。在數(shù)據(jù)庫(kù)結(jié)構(gòu)建立好之后,就可以向數(shù)據(jù)庫(kù)中加載數(shù)據(jù)了。,52,由于數(shù)據(jù)庫(kù)的數(shù)據(jù)量一般都很大,它們分散于一個(gè)企業(yè)(或組織)中各個(gè)部門的數(shù)據(jù)文件、報(bào)表或多種形式的單據(jù)中,它們存在著大量的重復(fù),并且其格式和結(jié)構(gòu)一般都不符合數(shù)據(jù)庫(kù)的要求,必須把這些數(shù)據(jù)收集起來(lái)加以整理,去掉冗余并轉(zhuǎn)換成數(shù)據(jù)庫(kù)所規(guī)定的格式,這樣處理之后才能裝入數(shù)據(jù)庫(kù)。因此,需要耗費(fèi)大量的人力、物力,是一種非常單調(diào)乏味而又意義重大的工作。,53,由于應(yīng)用環(huán)境和數(shù)據(jù)來(lái)源的差異,所以不可能存在普遍通用的轉(zhuǎn)換規(guī)則,現(xiàn)有的DBMS并不提供通用的數(shù)據(jù)轉(zhuǎn)換軟件來(lái)完成這一工作。 對(duì)于一般的小型系統(tǒng),裝入數(shù)據(jù)量較少,可以采用人工方法來(lái)完成。 首先將需要裝入的數(shù)據(jù)從各個(gè)部門的數(shù)據(jù)文件中篩選出來(lái),轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)要求的數(shù)據(jù)格式, 然后輸入到計(jì)算機(jī)中, 最后進(jìn)行數(shù)據(jù)校驗(yàn),檢查輸入的數(shù)據(jù)是否有誤。,54,但是,人工方法不僅效率低,而且容易產(chǎn)生差錯(cuò)。對(duì)于數(shù)據(jù)量較大的系統(tǒng),應(yīng)該由計(jì)算機(jī)來(lái)完成這一工作。通常是設(shè)計(jì)一個(gè)數(shù)據(jù)輸入子系統(tǒng),其主要功能是從大量的原始數(shù)據(jù)文件中篩選、分類、綜合和轉(zhuǎn)換數(shù)據(jù)庫(kù)所需的數(shù)據(jù),把它們加工成數(shù)據(jù)庫(kù)所要求的結(jié)構(gòu)形式,最后裝入數(shù)據(jù)庫(kù)中,同時(shí)還要采用多種檢驗(yàn)技術(shù)檢查輸入數(shù)據(jù)的正確性。 為了保證裝入數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確無(wú)誤,必須高度重視數(shù)據(jù)的校驗(yàn)工作。在輸入子系統(tǒng)的設(shè)計(jì)中應(yīng)該考慮多種數(shù)據(jù)檢驗(yàn)技術(shù),在數(shù)據(jù)轉(zhuǎn)換過(guò)程中應(yīng)使用不同的方法進(jìn)行多次檢驗(yàn),確認(rèn)正確后方可入庫(kù)。,55,如果在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),原來(lái)的數(shù)據(jù)庫(kù)系統(tǒng)仍在使用,則數(shù)據(jù)的轉(zhuǎn)換工作是將原來(lái)老系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)換成新系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。同時(shí)還要轉(zhuǎn)換原來(lái)的應(yīng)用程序,使之能在新系統(tǒng)下有效地運(yùn)行。 數(shù)據(jù)的轉(zhuǎn)換、分類和綜合常常需要多次才能完成,因而輸入子系統(tǒng)的設(shè)計(jì)和實(shí)施是很復(fù)雜的,需要編寫許多應(yīng)用程序,由于這一工作需要耗費(fèi)較多的時(shí)間,為了保證數(shù)據(jù)能夠及時(shí)入庫(kù),應(yīng)該在數(shù)據(jù)庫(kù)物理設(shè)計(jì)的同時(shí)編制數(shù)據(jù)輸入子系統(tǒng),而不能等物理設(shè)計(jì)完成后才開(kāi)始。,56,7.7.3 應(yīng)用程序編碼與調(diào)試 數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)屬于一般的程序設(shè)計(jì)范疇,但數(shù)據(jù)庫(kù)應(yīng)用程序有自己的一些特點(diǎn)。例如,大量使用屏幕顯示控制語(yǔ)句、形式多樣的輸出報(bào)表、重視數(shù)據(jù)的有效性和完整性檢查、有靈活的交互功能。 為了加快應(yīng)用系統(tǒng)的開(kāi)發(fā)速度,一般選擇第四代語(yǔ)言開(kāi)發(fā)環(huán)境,利用自動(dòng)生成技術(shù)和軟件復(fù)用技術(shù),在程序設(shè)計(jì)編寫中往往采用工具(CASE)軟件來(lái)幫助編寫程序和文檔,如目前普遍使用的PowerBuilder、Delphi以及由北京航空航天大學(xué)研制的863/CMIS支持的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具OpenTools等。,57,數(shù)據(jù)庫(kù)結(jié)構(gòu)建立好之后,就可以開(kāi)始編制與調(diào)試數(shù)據(jù)庫(kù)的應(yīng)用程序,這時(shí)由于數(shù)據(jù)入庫(kù)尚未完成,調(diào)試程序時(shí)可以先使用模擬數(shù)據(jù)。 7.7.4 數(shù)據(jù)庫(kù)試運(yùn)行 應(yīng)用程序編寫完成,并有了一小部分?jǐn)?shù)據(jù)裝入后,應(yīng)該按照系統(tǒng)支持的各種應(yīng)用分別試驗(yàn)應(yīng)用程序在數(shù)據(jù)庫(kù)上的操作情況,這就是數(shù)據(jù)庫(kù)的試運(yùn)行階段,或者稱為聯(lián)合調(diào)試階段。在這一階段要完成兩方面的工作。,58,(1) 功能測(cè)試。實(shí)際運(yùn)行應(yīng)用程序,測(cè)試它們能否完成各種預(yù)定的功能。 (2) 性能測(cè)試。測(cè)量系統(tǒng)的性能指標(biāo),分析系統(tǒng)是否符合設(shè)計(jì)目標(biāo)。 系統(tǒng)的試運(yùn)行對(duì)于系統(tǒng)設(shè)計(jì)的性能檢驗(yàn)和評(píng)價(jià)是很重要的,因?yàn)橛行﹨?shù)的最佳值只有在試運(yùn)行后才能找到。如果測(cè)試的結(jié)果不符合設(shè)計(jì)目標(biāo),則應(yīng)返回到設(shè)計(jì)階段,重新修改設(shè)計(jì)和編寫程序,有時(shí)甚至需要返回到邏輯設(shè)計(jì)階段,調(diào)整邏輯結(jié)構(gòu)。,59,重新設(shè)計(jì)物理結(jié)構(gòu)甚至邏輯結(jié)構(gòu),會(huì)導(dǎo)致數(shù)據(jù)重新入庫(kù)。由于數(shù)據(jù)裝入的工作量很大,所以可分期分批的組織數(shù)據(jù)裝入,先輸入小批量數(shù)據(jù)做調(diào)試用,待試運(yùn)行基本合格后,再大批量輸入數(shù)據(jù),逐步增加數(shù)據(jù)量,逐步完成運(yùn)行評(píng)價(jià)。 數(shù)據(jù)庫(kù)的實(shí)施和調(diào)試不是幾天就能完成的,需要有一定的時(shí)間。在此期間由于系統(tǒng)還不穩(wěn)定,隨時(shí)可能發(fā)生硬件或軟件故障,加之?dāng)?shù)據(jù)庫(kù)剛剛建立,操作人員對(duì)系統(tǒng)還不熟悉,對(duì)其規(guī)律,60,缺乏了解,容易發(fā)生操作錯(cuò)誤,這些故障和錯(cuò)誤很可能破壞數(shù)據(jù)庫(kù)中的數(shù)據(jù),這種破壞很可能在數(shù)據(jù)庫(kù)中引起連鎖反應(yīng),破壞整個(gè)數(shù)據(jù)庫(kù)。 因此必須做好數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)工作,要求設(shè)計(jì)人員熟悉DBMS的轉(zhuǎn)儲(chǔ)和恢復(fù)功能,并根據(jù)調(diào)試方式和特點(diǎn)首先加以實(shí)施,盡量減少對(duì)數(shù)據(jù)庫(kù)的破壞,并簡(jiǎn)化故障恢復(fù)。,61,7.7.5 整理文檔 在程序的編碼調(diào)試和試運(yùn)行中,應(yīng)該將發(fā)現(xiàn)的問(wèn)題和解決方法記錄下來(lái),將它們整理存檔作為資料,供以后正式運(yùn)行和改進(jìn)時(shí)參考。 全部的調(diào)試工作完成之后,應(yīng)該編寫應(yīng)用系統(tǒng)的技術(shù)說(shuō)明書(shū)和使用說(shuō)明書(shū),在正式運(yùn)行時(shí)隨系統(tǒng)一起交給用戶。 完整的文件資料是應(yīng)用系統(tǒng)的重要組成部分,但這一點(diǎn)常被忽視。必須強(qiáng)調(diào)這一工作的重要性,引起用戶與設(shè)計(jì)人員的充分注意。,62,7.8 數(shù)據(jù)庫(kù)運(yùn)行和維護(hù) 數(shù)據(jù)庫(kù)試運(yùn)行結(jié)果符合設(shè)計(jì)目標(biāo)后,數(shù)據(jù)庫(kù)就投入正式運(yùn)行,進(jìn)入運(yùn)行和維護(hù)階段。數(shù)據(jù)庫(kù)系統(tǒng)投入正式運(yùn)行,標(biāo)志著數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)工作的基本結(jié)束,但并不意味著設(shè)計(jì)過(guò)程己經(jīng)結(jié)束。 由于應(yīng)用環(huán)境不斷發(fā)生變化,用戶的需求和處理方法不斷發(fā)展,數(shù)據(jù)庫(kù)在運(yùn)行過(guò)程中的存儲(chǔ)結(jié)構(gòu)也會(huì)不斷變化,從而必須修改和擴(kuò)充相應(yīng)的應(yīng)用程序。,63,數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段的主要任務(wù)包括以下三項(xiàng)內(nèi)容: (1) 維護(hù)數(shù)據(jù)庫(kù)的安全性與完整性; (2) 監(jiān)測(cè)并改善數(shù)據(jù)庫(kù)性能; (3) 重新組織和構(gòu)造數(shù)據(jù)庫(kù)。 7.8.1 維護(hù)數(shù)據(jù)庫(kù)的安全性與完整性 按照設(shè)計(jì)階段提供的安全規(guī)范和故障恢復(fù)規(guī)范,DBA要經(jīng)常檢查系統(tǒng)的安全是否受到侵犯,根據(jù)用戶的實(shí)際需要授予用戶不同的操作權(quán)限。,64,數(shù)據(jù)庫(kù)在運(yùn)行過(guò)程中,由于應(yīng)用環(huán)境發(fā)生變化,對(duì)安全性的要求可能發(fā)生變化,DBA要根據(jù)實(shí)際情況及時(shí)調(diào)整相應(yīng)的授權(quán)和密碼,以保證數(shù)據(jù)庫(kù)的安全性。 同樣數(shù)據(jù)庫(kù)的完整性約束條件也可能會(huì)隨應(yīng)用環(huán)境的改變而改變,這時(shí)DBA也要對(duì)其進(jìn)行調(diào)整,以滿足用戶的要求。 另外,為了確保系統(tǒng)在發(fā)生故障時(shí),能夠及時(shí)地進(jìn)行恢復(fù),DBA要針對(duì)不同的應(yīng)用要求定制不同的轉(zhuǎn)儲(chǔ)計(jì)劃,定期對(duì)數(shù)據(jù)庫(kù)和日志文件進(jìn)行備份,以使數(shù)據(jù)庫(kù)在發(fā)生故障后恢復(fù)到某種一致性狀態(tài),保證數(shù)據(jù)庫(kù)的完整性。,65,7.8.2 監(jiān)測(cè)并改善數(shù)據(jù)庫(kù)性能 目前許多DBMS產(chǎn)品都提供了監(jiān)測(cè)系統(tǒng)性能參數(shù)的工具,DBA可以利用系統(tǒng)提供的這些工具,經(jīng)常對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)空間狀況及響應(yīng)時(shí)間進(jìn)行分析評(píng)價(jià); 結(jié)合用戶的反應(yīng)情況確定改進(jìn)措施;及時(shí)改正運(yùn)行中發(fā)現(xiàn)的錯(cuò)誤; 按用戶的要求對(duì)數(shù)據(jù)庫(kù)的現(xiàn)有功能進(jìn)行適當(dāng)?shù)臄U(kuò)充。 但要注意在增加新功能時(shí)應(yīng)保證原有功能和性能不受損害。,66,7.8.3 重新組織和構(gòu)造數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)建立后,除了數(shù)據(jù)本身是動(dòng)態(tài)變化以外,隨著應(yīng)用環(huán)境的變化,數(shù)據(jù)庫(kù)本身也必須變化以適應(yīng)應(yīng)用要求。 數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間后,由于記錄的不斷增加、刪除和修改,會(huì)改變數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu),使數(shù)據(jù)庫(kù)的物理特性受到破壞,從而降低數(shù)據(jù)庫(kù)存儲(chǔ)空間的利用率和數(shù)據(jù)的存取效率,使數(shù)據(jù)庫(kù)的性能下降。因此,需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行重新組織,即重新安排數(shù)據(jù)的存儲(chǔ)位置,回收垃圾,減少指針鏈,改進(jìn)數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間和空間利用率,提高系統(tǒng)性能。這與操作系統(tǒng)對(duì)“磁盤碎片”的處理的概念相類似。,67,數(shù)據(jù)庫(kù)的重組只是使數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)發(fā)生變化,而數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)不變,所以根據(jù)數(shù)據(jù)庫(kù)的三級(jí)模式,可以知道數(shù)據(jù)庫(kù)重組對(duì)系統(tǒng)功能沒(méi)有影響,只是為了提高系統(tǒng)的性能。 數(shù)據(jù)庫(kù)應(yīng)用環(huán)境的變化可能導(dǎo)致數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)發(fā)生變化,比如要增加新的實(shí)體,增加某些實(shí)體的屬性,這樣實(shí)體之間的聯(lián)系發(fā)生了變化,這樣使原有的數(shù)據(jù)庫(kù)設(shè)計(jì)不能滿足新的要求,必須對(duì)原來(lái)的數(shù)據(jù)庫(kù)重新構(gòu)造,適當(dāng)調(diào)整數(shù)據(jù)庫(kù)的模式和內(nèi)模式,比如要增加新的數(shù)據(jù)項(xiàng),增加或刪除索引,修改完整性約束條件等。,68,DBMS一般都提供了重新組織和構(gòu)造數(shù)據(jù)庫(kù)的應(yīng)用程序,以幫助DBA完成數(shù)據(jù)庫(kù)的重組和重構(gòu)工作。 只要數(shù)據(jù)庫(kù)系統(tǒng)在運(yùn)行,就需要不斷地進(jìn)行修改、調(diào)整和維護(hù)。一旦應(yīng)用變化太大,數(shù)據(jù)庫(kù)重新組織也無(wú)濟(jì)于事,這就表明數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的生命周期結(jié)束,應(yīng)該建立新系統(tǒng),重新設(shè)計(jì)數(shù)據(jù)庫(kù)。從頭開(kāi)始數(shù)據(jù)庫(kù)設(shè)計(jì)工作,標(biāo)志著一個(gè)新的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)生命周期的開(kāi)始。,69,小 結(jié) 本章主要討論數(shù)據(jù)庫(kù)設(shè)計(jì)的方法和步驟,列舉了許多實(shí)例,詳細(xì)介紹了數(shù)據(jù)庫(kù)設(shè)計(jì)中規(guī)劃、需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)及運(yùn)行與維護(hù)各階段的目標(biāo)、方法和應(yīng)注意的事項(xiàng)。其中重點(diǎn)是概念結(jié)構(gòu)的設(shè)計(jì)和邏輯結(jié)構(gòu)的設(shè)計(jì),這也是數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中最重要的兩個(gè)環(huán)節(jié)。 學(xué)習(xí)這一章,要努力掌握書(shū)中討論的基本方法,還要能在實(shí)際工作中運(yùn)用這些思想,設(shè)計(jì)出符合應(yīng)用需求的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。,70,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
200 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫(kù) 實(shí)用教程 ppt 課件
鏈接地址:http://m.appdesigncorp.com/p-845039.html