




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理與設(shè)計(jì)第4章數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)概述
需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫實(shí)施與維護(hù)數(shù)據(jù)庫建模工具第5章數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)任務(wù)
數(shù)據(jù)庫設(shè)計(jì)是指對于給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能有效地存儲數(shù)據(jù),滿足用戶的信息需求和處理需求。即把現(xiàn)實(shí)世界中的數(shù)據(jù),根據(jù)應(yīng)用處理的要求,合理組織,滿足各種用戶的應(yīng)用需求,包括信息管理要求和數(shù)據(jù)操作要求。數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用環(huán)境結(jié)合非常緊密,因此設(shè)計(jì)一個好的數(shù)據(jù)庫并不是一件簡單的事情。設(shè)計(jì)人員除了需要掌握數(shù)據(jù)庫與軟件的基礎(chǔ)知識,還需要掌握應(yīng)用領(lǐng)域的專業(yè)知識。一般的計(jì)算機(jī)專業(yè)人員掌握數(shù)據(jù)庫與軟件的基礎(chǔ)知識,但缺乏應(yīng)用領(lǐng)域知識。而用戶雖然具有豐富的應(yīng)用領(lǐng)域知識,卻沒有相關(guān)的計(jì)算機(jī)基礎(chǔ)。設(shè)計(jì)人員常常是根據(jù)經(jīng)驗(yàn)進(jìn)行數(shù)據(jù)庫設(shè)計(jì),缺乏和用戶的溝通,這樣設(shè)計(jì)出來的數(shù)據(jù)庫存在很大的隱患,如數(shù)據(jù)模型不能準(zhǔn)確反映用戶的實(shí)際情況,不能方便進(jìn)行數(shù)據(jù)庫應(yīng)用程序的開發(fā)。因此數(shù)據(jù)庫設(shè)計(jì)需要遵循一定的理論指導(dǎo),采用規(guī)范的設(shè)計(jì)方法,根據(jù)用戶的需求,進(jìn)行分析、歸納、抽象,設(shè)計(jì)出符合實(shí)際情況的數(shù)據(jù)模型,選擇一種符合要求的數(shù)據(jù)庫管理系統(tǒng),最終實(shí)現(xiàn)對數(shù)據(jù)模型及數(shù)據(jù)的管理。數(shù)據(jù)庫設(shè)計(jì)方法
新奧爾良方法基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法基于3NF的數(shù)據(jù)庫設(shè)計(jì)方法計(jì)算機(jī)輔助數(shù)據(jù)庫設(shè)計(jì)方法ODL方法數(shù)據(jù)庫設(shè)計(jì)的步驟1.需求分析獲取用戶需求,了解相關(guān)領(lǐng)域的業(yè)務(wù)知識,包括應(yīng)用系統(tǒng)的應(yīng)用環(huán)境和功能要求、具體業(yè)務(wù)處理方式等。2.概念結(jié)構(gòu)設(shè)計(jì)歸納與抽象需求分析階段的分析結(jié)果,進(jìn)行必要的,形成獨(dú)立于具體DBMS的概念結(jié)構(gòu)。3.邏輯結(jié)構(gòu)設(shè)計(jì)將概念結(jié)構(gòu)轉(zhuǎn)換為某個具體DBMS所支持的數(shù)據(jù)模型,并進(jìn)行優(yōu)化。4.物理結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)階段為邏輯模型選取合適的物理結(jié)構(gòu)。5.?dāng)?shù)據(jù)庫實(shí)施根據(jù)邏輯結(jié)構(gòu),創(chuàng)建數(shù)據(jù)庫。編寫應(yīng)用程序和SQL程序,組織數(shù)據(jù)遷移,進(jìn)行試運(yùn)行。6.?dāng)?shù)據(jù)庫運(yùn)行和維護(hù)數(shù)據(jù)庫運(yùn)行階段需要不斷維護(hù),分析數(shù)據(jù)庫性能,調(diào)整性能參數(shù)。對數(shù)據(jù)庫的運(yùn)行數(shù)據(jù)進(jìn)行備份、恢復(fù)和處理等。需求分析需求分析就是分析用戶的需要與要求,確定系統(tǒng)必須完成哪些工作,對系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。
調(diào)查現(xiàn)實(shí)世界要處理的對象(組織、部門、企業(yè)等)了解業(yè)務(wù)處理、處理的流程用戶希望數(shù)據(jù)庫應(yīng)用程序的功能了解用戶對系統(tǒng)的信息要求、處理要求以及安全性與完整性要求、處理的響應(yīng)時(shí)間需求分析的方法①親自參與業(yè)務(wù)活動,了解業(yè)務(wù)處理的基本情況。②請專人介紹。③通過與用戶座談、詢問等方式來解決疑問。④設(shè)計(jì)調(diào)查表請用戶填寫。⑤查閱記錄。⑥學(xué)習(xí)文件。⑦使用舊系統(tǒng)。數(shù)據(jù)流圖與數(shù)據(jù)字典數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)的傳輸途徑,數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的變換過程。數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它去掉了具體的組織機(jī)構(gòu)、工作場所、物質(zhì)流等,僅反映信息和數(shù)據(jù)存儲、流動、使用以及加工的情況。數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合。通常包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程和外部實(shí)體等6個部分。數(shù)據(jù)字典通過對數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。數(shù)據(jù)流圖基本元素?cái)?shù)據(jù)流圖的基本元素包括數(shù)據(jù)流、加工、數(shù)據(jù)存取文件、輸入數(shù)據(jù)的源點(diǎn)和輸出數(shù)據(jù)的匯點(diǎn)4類。
數(shù)據(jù)流圖(2)繪制數(shù)據(jù)流圖時(shí),應(yīng)先找出系統(tǒng)的數(shù)據(jù)源點(diǎn)與匯點(diǎn)及對應(yīng)的輸出數(shù)據(jù)流與輸入數(shù)據(jù)流,然后從輸入數(shù)據(jù)流(即系統(tǒng)的源點(diǎn))出發(fā),按照系統(tǒng)的邏輯需要,逐步畫出系列邏輯加工,直到所需的輸出數(shù)據(jù)流(即系統(tǒng)的匯點(diǎn)),形成數(shù)據(jù)流的封閉。數(shù)據(jù)流圖中常見的加工關(guān)系分層數(shù)據(jù)流圖較復(fù)雜的實(shí)際問題中,僅用一個數(shù)據(jù)流圖很難表達(dá)數(shù)據(jù)處理過程和數(shù)據(jù)加工情況,需要按照問題的層次結(jié)構(gòu)逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系。首先確定頂層數(shù)據(jù)流圖,把整個數(shù)據(jù)處理過程暫且看成一個加工,它的輸入數(shù)據(jù)和輸出數(shù)據(jù)實(shí)際上反映了系統(tǒng)與外界環(huán)境的接口,這就是頂層數(shù)據(jù)流圖。在頂層數(shù)據(jù)流圖的基礎(chǔ)上進(jìn)一步細(xì)化。形成第一層數(shù)據(jù)流圖,繼續(xù)分解,可得到第二層數(shù)據(jù)流圖。如此細(xì)化直到清晰地表達(dá)整個數(shù)據(jù)加工系統(tǒng)的真實(shí)情況。
分層數(shù)據(jù)流圖(2)畫數(shù)據(jù)流圖的步驟和原則①
頂層數(shù)據(jù)流圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間。②
每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流。③
在數(shù)據(jù)流圖中,需按層給加工進(jìn)行編號。編號應(yīng)表明該加工處在哪一層,以及與上下層的父圖與子圖的對應(yīng)關(guān)系。④
任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致,即父圖與子圖平衡。⑤
圖上每個元素都必須有名字。一般來說數(shù)據(jù)流和數(shù)據(jù)文件的名字應(yīng)當(dāng)表明流動的數(shù)據(jù)是什么,加工的名字應(yīng)當(dāng)表明做什么事情。⑥
數(shù)據(jù)流圖中不可夾帶控制流。
數(shù)據(jù)字典(1)數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位,若干個數(shù)據(jù)項(xiàng)可以組成一個數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系}(2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項(xiàng)組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成(嵌套數(shù)據(jù)結(jié)構(gòu)),或由若干個數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)混合組成。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}}(3)數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)的傳輸路徑。數(shù)據(jù)流描述={數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}一般說來,數(shù)據(jù)字典應(yīng)包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程、外部實(shí)體等六類元素。數(shù)據(jù)字典(2)
(4)數(shù)據(jù)存儲數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方。:數(shù)據(jù)存儲描述={數(shù)據(jù)存儲名,說明,編號,流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取方式}(5)處理過程處理過程應(yīng)描述處理邏輯的功能,詳細(xì)地描述其輸入輸出的數(shù)據(jù)流以及這些數(shù)據(jù)的基本轉(zhuǎn)換路徑和策略說明性信息。處理過程描述={處理過程名,編號,說明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡要說明}}(6)外部實(shí)體外部實(shí)體是系統(tǒng)的“人—機(jī)”界面,系統(tǒng)的數(shù)據(jù)流由外部實(shí)體流入,經(jīng)過加工處理之后,向外部實(shí)體流出。外部實(shí)體描述={外部實(shí)體的名稱,編號,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流}}學(xué)籍管理需求分析功能序號功能名稱功
能
說
明1學(xué)生管理登記學(xué)生的基本信息(姓名、性別、班級等),并提供查詢功能2課程管理登記課程基本情況(課程名稱、開課學(xué)期、課程類型、學(xué)分等),提供查詢3教師管理登記教師基本情況(姓名、年齡、性別、學(xué)歷等),提供查詢統(tǒng)計(jì)4成績管理登記學(xué)生各門課程的考試成績、提供查詢、統(tǒng)計(jì)功能5授課管理登記教師講授課程、授課地點(diǎn)、和授課學(xué)期,提供查詢功能6編碼維護(hù)維護(hù)系統(tǒng)中使用的編碼(如職稱編碼、學(xué)院編碼、班級編碼等)分析設(shè)計(jì)頂層數(shù)據(jù)流圖學(xué)籍管理的1層數(shù)據(jù)流圖
細(xì)化成績管理細(xì)化成績錄入制定整理數(shù)據(jù)字典分析成績錄入數(shù)據(jù)流圖,該數(shù)據(jù)流圖涉及學(xué)生名單、學(xué)號姓名、選定刪除的學(xué)號姓名、選定修改的學(xué)號姓名等數(shù)據(jù)流,同時(shí)涉及學(xué)生信息、考試成績等數(shù)據(jù)存儲,包括班級學(xué)生名單查詢、班級學(xué)生名單顯示、增加學(xué)生成績、修改成績、刪除成績、成績查詢等處理過程。
概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)有以下特點(diǎn):(1)能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括現(xiàn)實(shí)世界中實(shí)體及實(shí)體之間的聯(lián)系。(2)易于修改。當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),概念模型可以很容易地作相應(yīng)調(diào)整。(3)易于理解。用概念模型與不熟悉計(jì)算機(jī)的用戶交換意見,用戶不必知道DBMS的技術(shù)細(xì)節(jié),用戶能積極參與是數(shù)據(jù)庫設(shè)計(jì)成功的關(guān)鍵。(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。(5)概念模型不受具體的DBMS的限制,獨(dú)立于數(shù)據(jù)庫邏輯結(jié)構(gòu),因此更穩(wěn)定。概念結(jié)構(gòu)設(shè)計(jì)的方法概念結(jié)構(gòu)設(shè)計(jì)可以采用自頂向下、自底向上、逐步擴(kuò)張、混合策略等方法。自頂向下在定義全局概念結(jié)構(gòu)框架的基礎(chǔ)上逐步細(xì)化;自底向上先定義各局部應(yīng)用的概念結(jié)構(gòu),然后進(jìn)行集成,得到全局概念結(jié)構(gòu);逐步擴(kuò)張?jiān)诙x核心概念結(jié)構(gòu)的基礎(chǔ)上,逐步向外擴(kuò)充,生成其他概念結(jié)構(gòu),直至得到總體概念結(jié)構(gòu);混合策略采用自頂向下和自底向上的結(jié)合,自頂向下地設(shè)計(jì)一個全局概念結(jié)構(gòu),自底向上地設(shè)計(jì)各局部概念結(jié)構(gòu),在全局概念結(jié)構(gòu)的基礎(chǔ)上進(jìn)行局部概念集成。一般可以先抽象并設(shè)計(jì)局部視圖,然后集成局部視圖,形成全局的E-R圖。概念模型概念模型與信息的3個世界概念模型的表示方法(1)概念模型的其表示方法很多,其中最為常用的是P.P.S.Chen于1976年提出的實(shí)體—聯(lián)系方法(Entity-RelationshipApproach)。該方法用E-R圖來描述現(xiàn)實(shí)世界的概念模型。(1)實(shí)體(Entity)(2)屬性(Attribute)(3)碼(Key)(4)域(Domain)(5)實(shí)體型(EntityType)(6)實(shí)體間的聯(lián)系(Relationship)概念模型的表示方法(2)兩個實(shí)體型之間的聯(lián)系可以分為以下3類:一對一聯(lián)系(1∶1)、一對多聯(lián)系(1∶n)、多對多聯(lián)系(m∶n)數(shù)據(jù)抽象與局部視圖設(shè)計(jì)(2)需求分析階段會產(chǎn)生不同層次的數(shù)據(jù)流圖,這些數(shù)據(jù)流圖是進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)。高層的數(shù)據(jù)流圖能反映系統(tǒng)的概貌,但包含的信息不足以描述系統(tǒng)的詳細(xì)情況,中層的數(shù)據(jù)流圖能較好地反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)的詳細(xì)情況,因此中層數(shù)據(jù)流圖經(jīng)常作為設(shè)計(jì)分E-R圖的依據(jù)。每個局部應(yīng)用都對應(yīng)了一組數(shù)據(jù)流圖與數(shù)據(jù)字典。將數(shù)據(jù)從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,確定局部應(yīng)用中的實(shí)體、實(shí)體的屬性、實(shí)體的碼,確定實(shí)體之間的聯(lián)系及其類型
確定實(shí)體及屬性①
屬性必須是不可分的數(shù)據(jù)項(xiàng),不能包含其他屬性。②
屬性不能與其他實(shí)體具有聯(lián)系,與其他實(shí)體有聯(lián)系的屬性一般應(yīng)按照實(shí)體處理。符合上述兩條特性的事物一般作為屬性對待。視圖集成依據(jù)不同的局部應(yīng)用數(shù)據(jù)流圖設(shè)計(jì)的分E-R圖,進(jìn)行視圖集成,將所有的分E-R圖綜合成一個系統(tǒng)的總E-R圖。一般說來,視圖的集成可以有兩種方式。①
多個分E-R圖一次集成。②
逐步集成,用累加的方式一次集成兩個分E-R圖。其中第1種方法比較復(fù)雜,實(shí)現(xiàn)起來難度較大。第2種方法每次只集成兩個分E-R圖,可以降低復(fù)雜度。視圖集成時(shí)需要進(jìn)行分E-R圖的合并、修改、重構(gòu),解決各分E-R圖之間的沖突,消除不必要的冗余,形成基本E-R圖。
視圖集成(2)1.解決沖突,合并分E-R圖,形成初步E-R圖。
分E-R圖之間存在的不一致稱為沖突,各分E-R圖之間的沖突主要有3類屬性沖突命名沖突結(jié)構(gòu)沖突2.消除不必要的冗余,設(shè)計(jì)基本E-R圖。
分E-R圖經(jīng)過合并生成的是初步E-R圖,這種E-R圖中可能會存在冗余,還需要對其進(jìn)行消除冗余處理。冗余包括兩種情況,數(shù)據(jù)冗余和聯(lián)系冗余,其中冗余數(shù)據(jù)是可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系。學(xué)籍管理概念結(jié)構(gòu)設(shè)計(jì)1.?dāng)?shù)據(jù)抽象、確定實(shí)體及其屬性與碼2.確定實(shí)體間關(guān)系,設(shè)計(jì)分E-R圖3.合并分E-R圖,消除冗余,設(shè)計(jì)基本E-R圖。邏輯結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)獨(dú)立于DBMS,需要將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為與特定DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。DBMS產(chǎn)品可以支持關(guān)系、網(wǎng)狀、層次三種模型中的某一種,目前大多數(shù)應(yīng)用系統(tǒng)都選用支持關(guān)系模型的DBMS。設(shè)計(jì)邏輯結(jié)構(gòu)時(shí)首先要將概念結(jié)構(gòu)轉(zhuǎn)化為關(guān)系模型,然后對數(shù)據(jù)模型進(jìn)行優(yōu)化。關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,E-R圖則是由實(shí)體、實(shí)體屬性和實(shí)體之間的聯(lián)系3個要素組成的。所以將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是將實(shí)體、實(shí)體屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,并確定關(guān)系模式的屬性和碼。將實(shí)體轉(zhuǎn)換為關(guān)系模式一般將E-R圖中的實(shí)體轉(zhuǎn)化為一個關(guān)系模式。實(shí)體的屬性轉(zhuǎn)化為關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。學(xué)生(學(xué)號,姓名,性別,出生日期)有時(shí)為了減少關(guān)系模式的數(shù)量,如果實(shí)體之間存在很大的相似性,而且數(shù)據(jù)量不大,可以考慮將這些實(shí)體轉(zhuǎn)化為一個統(tǒng)一的關(guān)系模式,該關(guān)系模式具有其他實(shí)體的屬性。為了區(qū)別不同的實(shí)體,可以增加實(shí)體類型的屬性。如:學(xué)歷、職稱、課程類型編碼等實(shí)體具有類似的屬性,即編碼和描述,而且這類維護(hù)信息不會很多,因此可以將學(xué)歷和職稱實(shí)體合并為以下編碼關(guān)系模式:(編碼,編碼類型,編碼描述)。
將實(shí)體間的聯(lián)系轉(zhuǎn)化成關(guān)系模式(1)1∶1的聯(lián)系
1∶1的聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,則與該1∶1聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個實(shí)體的碼都可以是該關(guān)系模式的候選碼。如果與某一端對應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個關(guān)系模式的碼和聯(lián)系本身的屬性。例如,教師與班級的“管理”聯(lián)系為1∶1聯(lián)系可以將其轉(zhuǎn)換為一個獨(dú)立的關(guān)系模型:管理(教師編號,班級編號)也可以將“管理”聯(lián)系與教師或班級的關(guān)系模式合并,如將“管理”聯(lián)系與班級模式合并為:班級(班級編號,班級名稱,教師編號)也可以將“管理”聯(lián)系與教師關(guān)系模式合并將實(shí)體間的聯(lián)系轉(zhuǎn)化成關(guān)系模式(2)
(2)1∶n的聯(lián)系
1∶n的聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。例如,學(xué)院與班級的“隸屬”聯(lián)系為1∶n聯(lián)系,一種方法是使其轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式:隸屬(班級編號,學(xué)院編號)另一種方法是將其與班級關(guān)系模式合并,這時(shí)班級關(guān)系模式為:班級(班級編號、班級名稱、學(xué)院編號)將實(shí)體間的聯(lián)系轉(zhuǎn)化成關(guān)系模式(3)(3)m∶n的聯(lián)系m∶n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,關(guān)系的碼為各實(shí)體碼的組合。例如,“選課”聯(lián)系是一個m∶n聯(lián)系,可以將其轉(zhuǎn)化為一個關(guān)系模式:選課(學(xué)號,課程編號,成績)碼是學(xué)號與課程編號的組合。
關(guān)系模式的操作異常學(xué)籍管理數(shù)據(jù)庫,其關(guān)系模式SMD如下SMD(SNo,SName,SAge,CLno,MN,CNo,Score)(SNo,CNo)屬性的組合能唯一標(biāo)識一個元組,所以(SNo,CNo)是該關(guān)系模式的主碼,但在進(jìn)行數(shù)據(jù)庫的操作時(shí),會出現(xiàn)以下幾方面的問題。SNoSNameSAgeCLnoMNCNoScore03001李剛22030001趙亦000056203001李剛22030001趙亦000087903005郝枚22030002李平000056303005郝枚22030002李平000088503005郝枚22030002李平000095403005郝枚22030002李平000067903007梁棟23030003李平000058103007梁棟23030003李平00008關(guān)系模式的操作異常(2)(1)數(shù)據(jù)冗余。每個班級編號和班主任名字的存儲次數(shù)等于該班的學(xué)生人數(shù)乘以每個學(xué)生選修的課程門數(shù),同時(shí)學(xué)生的姓名、年齡也都要重復(fù)存儲多次,數(shù)據(jù)的冗余度很大,浪費(fèi)了存儲空間。(2)插入異常。如果某個新班暫無學(xué)生注冊,則關(guān)于班級信息和班主任的信息無法插入到數(shù)據(jù)庫中。因?yàn)樵谶@個關(guān)系模式中,(SNo,CNo)是主碼,根據(jù)關(guān)系的實(shí)體完整性約束,主碼的值不能為空,而這時(shí)沒有學(xué)生,SNo和CNo均無值,因此不能進(jìn)行插入操作。另外,如果某個學(xué)生尚未選課,即CNo未知,實(shí)體完整性約束還規(guī)定,主碼的值不能部分為空,同樣也不能進(jìn)行插入操作。關(guān)系模式的操作異常(3)(3)刪除異常。當(dāng)某班學(xué)生全部畢業(yè)時(shí),要刪除全部學(xué)生的記錄,這時(shí)班級編號、班主任也隨之刪除,而現(xiàn)實(shí)中這個班的班主任依然存在,但在數(shù)據(jù)庫中卻無法找到相應(yīng)的信息。另外,如果某個學(xué)生本學(xué)期只選修一門課程00005,當(dāng)他不再選修該課程時(shí),本應(yīng)該只刪去課程信息00005,但00005是主關(guān)系鍵的一部分,為保證實(shí)體體完整性,必須將整個元組一起刪掉,這樣,有關(guān)該學(xué)生的其他信息也隨之丟失。(4)更新異常。如果某學(xué)生改名,則該學(xué)生的所有記錄要要逐一修改SName的值;又如某班更換班主任,則屬于該班的學(xué)生記錄都要修改班主任的內(nèi)容,稍有不慎,就有可能漏改某些記錄,這就會造成數(shù)據(jù)的不一致,破壞了數(shù)據(jù)的完整性。一個好的關(guān)系模式應(yīng)該具備4個條件盡可能少的數(shù)據(jù)冗余;沒有插入異常;沒有刪除異常;沒有更新異常。函數(shù)依賴Y=X+5確定的映象關(guān)系Example1:R{Sno,Sname,Sdept}F={Sno→Sname,Sno→Sdept}Example2:R{Sno,Sdept,Mname,Cname,Grade}F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}基本概念1、函數(shù)依賴定義:設(shè)R(U)是一個關(guān)系模式,U是R的屬性集合,X和Y是U的子集,對于R(U)的任何一個可能的關(guān)系r,如果r中不存在兩個元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。說明
a、函數(shù)依賴是指R的所有關(guān)系實(shí)例均要滿足的條件。b、函數(shù)依賴是語義范疇的概念。
c、數(shù)據(jù)庫設(shè)計(jì)者可對現(xiàn)實(shí)世界作強(qiáng)制規(guī)定。d、若X→Y,則X叫決定因素(決定因素集)e、若X→Y,且Y→X,則記為X←→Y。2、平凡函數(shù)依賴與非平凡函數(shù)依賴
X→Y,但Y不是X的子集,則X→Y是非平凡函數(shù)依賴。
X→Y,但Y是X的子集,則X→Y是平凡函數(shù)依賴。基本概念(2)3、完全函數(shù)依賴和部分函依賴設(shè)有關(guān)系模式R(U),U是屬性全集,X和Y是U的子集,如果X→Y,并且對于X的任何一個真子集X',都有X'Y,則稱Y對X完全函數(shù)依賴(FullFunctionalDependency),記作XY。如果對X的某個真子集X',都有X'→Y,則稱Y對X部分函數(shù)依賴(PartialFunctionalDependency),記作XY。
Example:Student(Sno,Sname,Sdept,Sage)SC(Sno,Cno,Grade)4、傳遞函數(shù)依賴在關(guān)系模式R(U)中,U是屬性全集,X、Y和Z是U的子集,若X→Y,(Y?X),YX,而Y→Z,則稱Z對X傳遞函數(shù)依賴(TransitiveFunctionalDependency),記作XY。如果Y→X,則X←→Y,這時(shí)稱Z對X直接函數(shù)依賴,而不是傳遞函數(shù)依賴。Example:Student(Sno,Sid,Sage)基本概念(3)5、碼設(shè)K為R(U,F(xiàn))中的屬性或?qū)傩越M合,若KU則K為R的侯選碼。若侯選碼多于一個,則選定其中的一個為主碼(Primarykey)。包含在任何一個侯選碼中的屬性,叫做主屬性。不包含在任何中的屬性稱為非主屬性或非碼屬性。最簡單的情況,單個屬性是碼。最極端的情況是,整個屬性組是碼,稱為全碼。如:S(SNO,SDEPT,SAGE)SC(SNO,CNO,G)R(P,W,A),屬性P表示演奏者,W表示作品,A表示聽眾模式存在問題分析數(shù)據(jù)冗余規(guī)范化理論正是用來改造關(guān)系更新異常模式,通過分解關(guān)系模來消除其插入異常中不合適的數(shù)據(jù)依賴,使之成為刪除異常一個“好”模式分解后:
S(SNO,SDEPT,SNO→SDEPT)
SG(SNO,CNAME,G,(SNO,CNAME)→G)
DEPT(SDEPT,MNAME,SDEPT→MNAME)范式一、1NF(數(shù)據(jù)項(xiàng)不可再分)二、2NF(不允許有非主屬性對碼的部分依賴)三、3NF(不允許有非主屬性對碼的傳遞依賴)四、BCNF(不允許有主屬性對碼的部分依賴)多值依賴
例:TEACH(C,T,B),其中C表示課程,教師T,參考書B,關(guān)系如下數(shù)學(xué)鄧軍數(shù)學(xué)分析陳思高等代數(shù)微分方程物理李平普通物理王強(qiáng)光學(xué)原理劉明分析:1、是否屬于BCNF2、數(shù)據(jù)冗余度
3、增加操作、刪除操作、修改操作
4、原因(B和T的取值毫無關(guān)系)定義:設(shè)R(U)是一個屬性集U上的一個關(guān)系模式,X,Y,Z是U的子集,并且Z=U-X-Y,多值依賴X→→Y成立當(dāng)且僅當(dāng)對R的任一關(guān)系r,r在(X,Z)上的每個值對應(yīng)一組Y的值,這組值僅僅決定于X值而與Y的值無關(guān).若X→→Y,而Z=?,則稱X→→Y為平凡的多值依賴。否則為非平凡的多值依賴。4NF1、定義關(guān)系模式R<U,F(xiàn)>?1NF,如果對于R的每個非平凡多值依賴X→→Y(Y?X),X都含有候選碼,則R?4NF。例:Y=X+5Y=ARCSINX關(guān)系模式的規(guī)范化一、基本思想規(guī)范化實(shí)際上是概念的單一化。二、基本步驟
1NF-2NF-3NF-BCNF-4NF-5NF三、關(guān)系模式的分解保證分解后的關(guān)系模式與原關(guān)系模式等價(jià)。關(guān)系模式的規(guī)范化(2)例:SL(SNO,SDEPT,SLOC)
SNO→SDEPTSDEPT→SLOCSNO→SLOCSNOSDEPTSLOC9500195002950039500495005CSISMAISPHABCBB分解方法1、第一種分解方法
SL分解為三個關(guān)系SN(SNO),SD(SDEPT),
SO(SLOC)2、第二種分解方法
NL(SNO,SLOC)
DL(SDEPT,SLOC)SNOSLOC9500195002950039500495005ABCBBSDEPTSLOCCSISMAPHABCB第三種分解方法ND(SNO,SDEPT)NL(SNO,SLOC)SNOSDEPT9500195002950039500495005CSISMAISPHSNOSLOC9500195002950039500495005ABCBB關(guān)系模式的規(guī)范化(3)四、無損連接性五、保持函數(shù)依賴的分解第四種分解方法:ND(SNO,SDEPT)
DL(SDEPT,SLOC)六、判斷關(guān)系模式等價(jià)的三個標(biāo)準(zhǔn)七、常識
1、保持無損連接,一定能達(dá)到4NF。
2、保持函數(shù)依賴,一定能達(dá)到3NF,但不一定能達(dá)到BCNF。
3、既保持無損連接,又保持函數(shù)依賴,一定能達(dá)到3NF,但不一定能達(dá)到BCNF。規(guī)范化小結(jié)關(guān)系模式規(guī)范化的基本步驟
1NF ↓消除非主屬性對碼的部分函數(shù)依賴消除決定屬性2NF集非碼的非平↓消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴3NF ↓消除主屬性對碼的部分和傳遞函數(shù)依賴
BCNF
數(shù)據(jù)模型的優(yōu)化完成E-R圖向關(guān)系數(shù)據(jù)模型的轉(zhuǎn)換之后,還需要對數(shù)據(jù)模型進(jìn)行優(yōu)化,修改、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),提高數(shù)據(jù)庫的性能。①
確定數(shù)據(jù)依賴。按需求分析階段得到的語義,分別寫出每個關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間的數(shù)據(jù)依賴。②
對于各個關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。③
按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進(jìn)行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。④
按照需求分析階段得到的信息要求和處理要求,分析這些模式是否滿足這些要求,確定是否要對某些模式進(jìn)行合并或分解。并不是規(guī)范化程度越高的關(guān)系就越優(yōu)。當(dāng)一個應(yīng)用的查詢中經(jīng)常涉及兩個或多個關(guān)系模式的屬性時(shí),系統(tǒng)必須經(jīng)常地進(jìn)行連接運(yùn)算,而連接運(yùn)算的代價(jià)是相當(dāng)高的,因此在這種情況下,2NF甚至1NF也許是最好的。設(shè)計(jì)用戶子模式(1)使用更符合用戶習(xí)慣的別名視圖集成時(shí),為了減少異義同名的沖突,規(guī)范了一些名稱。規(guī)范后的名稱與局部用戶的習(xí)慣不一致,將影響用戶的工作。設(shè)計(jì)用戶的子模式時(shí)可以重新定義某些屬性名,使其與用戶習(xí)慣一致。(2)針對不同級別的用戶定義不同的視圖不同的用戶關(guān)心的實(shí)體及其屬性不同,對這些實(shí)體與屬性的訪問權(quán)限也不同。例如學(xué)生允許查看課程的開設(shè)情況和任課教師的學(xué)歷、職稱等屬性,但是沒有權(quán)利查看教師的籍貫、工資等屬性。為了滿足系統(tǒng)安全性要求,需要針對不同級別的用戶定義不同的視圖。(3)簡化用戶對系統(tǒng)的使用某些局部應(yīng)用中經(jīng)常要使用一些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖,用戶每次只對定義好的視圖進(jìn)行查詢,方便用戶使用系統(tǒng)。
實(shí)例——學(xué)籍管理邏輯結(jié)構(gòu)設(shè)計(jì)(1)1.?dāng)?shù)據(jù)模型(1)將實(shí)體轉(zhuǎn)化為關(guān)系模型將學(xué)生實(shí)體轉(zhuǎn)換為學(xué)生關(guān)系(學(xué)號,姓名,性別,出生日期)將班級實(shí)體轉(zhuǎn)換為班級關(guān)系(班級編號、班級名稱)將學(xué)院實(shí)體轉(zhuǎn)換為班級關(guān)系(學(xué)院編號、學(xué)院名稱)將課程實(shí)體轉(zhuǎn)換為課程關(guān)系(課程編號、課程名稱、課程介紹、開設(shè)學(xué)期、總學(xué)時(shí)、學(xué)分、先修課程)將課程類型實(shí)體轉(zhuǎn)換為課程類型關(guān)系(課程類型碼、類型說明)將教師實(shí)體轉(zhuǎn)換為教師關(guān)系(教師編號、姓名、性別、出生日期、參加工作日期)將職稱實(shí)體轉(zhuǎn)換為職稱關(guān)系(職稱編碼、職稱)實(shí)例——學(xué)籍管理邏輯結(jié)構(gòu)設(shè)計(jì)(2)(2)將聯(lián)系轉(zhuǎn)化為關(guān)系模型①將1∶1的聯(lián)系轉(zhuǎn)化為關(guān)系模式。教師與班級的“管理”聯(lián)系為1∶1聯(lián)系,可以使用下面任一種方法轉(zhuǎn)換。 將其轉(zhuǎn)換為一個獨(dú)立的關(guān)系模型管理(教師編號,班級編號),其中教師編號是教師關(guān)系的碼,班級編號是班級關(guān)系的碼。教師編號與班級編號都可以是管理關(guān)系的候選碼,此處選擇教師編號作為管理關(guān)系的碼。 將管理聯(lián)系合并到班級關(guān)系模式中在班級關(guān)系模式中加入教師關(guān)系的碼——教師編號,形成如下關(guān)系模式:班級(班級編號,班級名稱,教師編號)。 將管理聯(lián)系合并到教師關(guān)系模式中在教師關(guān)系中加入班級關(guān)系的碼——班級編號,形成如下關(guān)系模式:教師(教師編號、姓名、性別、出生日期、參加工作日期、班級編號)。實(shí)例——學(xué)籍管理邏輯結(jié)構(gòu)設(shè)計(jì)(3)②將1∶n的聯(lián)系轉(zhuǎn)化為關(guān)系模式。 學(xué)院與班級的“隸屬”聯(lián)系學(xué)院與班級的“隸屬”聯(lián)系??梢允褂孟旅嫒我环N方法轉(zhuǎn)換成關(guān)系模式。一種方法是使其轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式:隸屬(班級編號,學(xué)院編號),其中班級編號為“隸屬”關(guān)系的碼。另一種方法是將其與班級關(guān)系模式合并,這時(shí)班級關(guān)系模式修改為:班級(班級編號、班級名稱、學(xué)院編號),其中班級關(guān)系模式的碼仍為班級編號。后一種方式是常用的轉(zhuǎn)換方法,下面的1∶n的聯(lián)系都采用將聯(lián)系與n端對應(yīng)的關(guān)系模式合并的方法。 教師與學(xué)院的“就職”聯(lián)系將“就職”聯(lián)系與教師關(guān)系合并,教師關(guān)系模式變?yōu)椋航處煟ń處熅幪枴⑿彰?、性別、出生日期、參加工作日期、學(xué)院編號) 教師與職稱的“聘任”聯(lián)系將“聘任”聯(lián)系與教師關(guān)系合并,教師關(guān)系模式變?yōu)椋航處煟ń處熅幪枴⑿彰?、性別、出生日期、參加工作日期、學(xué)院編號、職稱編碼) 課程與課程類型的“屬于”聯(lián)系將課程與課程類型的“屬于”聯(lián)系與課程關(guān)系合并,課程關(guān)系模式變?yōu)椋赫n程(課程編號、課程名稱、課程介紹、開設(shè)學(xué)期、總學(xué)時(shí)、學(xué)分、先修課程、課程類型編碼) 學(xué)生與班級“所在”聯(lián)系將學(xué)生與班級“所在”聯(lián)系與學(xué)生關(guān)系合并,學(xué)生關(guān)系模式變?yōu)椋簩W(xué)生(學(xué)號,姓名,性別,出生日期、班級編號)實(shí)例——學(xué)籍管理邏輯結(jié)構(gòu)設(shè)計(jì)(4)③將m∶n的聯(lián)系轉(zhuǎn)化為關(guān)系模式。學(xué)生與課程的“選課”聯(lián)系將“選課”轉(zhuǎn)化為一個關(guān)系模式:選課(學(xué)號,課程編號,選修學(xué)期),碼是學(xué)號與課程編號的組合。教師與課程的“授課”聯(lián)系將“授課”轉(zhuǎn)化為一個關(guān)系模式:授課(教師編號,課程編號,授課學(xué)期、授課地點(diǎn)),碼是教師編號與課程編號的組合。實(shí)例——學(xué)籍管理邏輯結(jié)構(gòu)設(shè)計(jì)(5)2.用戶子模式
為了方便查詢教師的教學(xué)情況,根據(jù)需要建立如下子模式:教師基本信息(教師編號,姓名,性別,學(xué)歷,職稱)課程開設(shè)情況(課程編號,課程名稱,課程簡介,教師編號,歷屆成績,及格率)
為學(xué)籍管理人員建立如下子模式:學(xué)生基本情況(學(xué)號,姓名,性別,年齡,籍貫,班級,學(xué)院,獲取總學(xué)分)授課效果(課程編號,選修學(xué)期,平均成績)
為學(xué)生建立如下子模式:考試通過基本情況(學(xué)號,姓名,班級,課程名稱,成績)
為教師建立如下子模式:選修學(xué)生情況(課程編號,學(xué)號,姓名,班級,學(xué)院,平均成績)授課效果(課程編號,選修學(xué)期,平均成績)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫是存儲在物理設(shè)備上的,數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),物理結(jié)構(gòu)依賴于給定的DBMS和計(jì)算機(jī)系統(tǒng)。邏輯數(shù)據(jù)庫設(shè)計(jì)工作完成后,需要為給定的邏輯數(shù)據(jù)模型選取一個適合應(yīng)用環(huán)境的物理結(jié)構(gòu),對物理結(jié)構(gòu)進(jìn)行時(shí)間(執(zhí)行效率)和空間效率的評價(jià)。數(shù)據(jù)庫物理設(shè)計(jì)的任務(wù)是對給定的邏輯數(shù)據(jù)模型選取適合應(yīng)用環(huán)境的物理結(jié)構(gòu),即在邏輯設(shè)計(jì)的基礎(chǔ)上,為每個關(guān)系模式選擇合適的存儲結(jié)構(gòu)和存取方法,使數(shù)據(jù)庫的事務(wù)能夠高效率地運(yùn)行。
數(shù)據(jù)庫物理設(shè)計(jì)階段主要包括以下4個過程。①
分析影響物理數(shù)據(jù)庫設(shè)計(jì)的因素。②
為關(guān)系模式選擇存取方法。③
設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲結(jié)構(gòu)。④
評價(jià)物理結(jié)構(gòu)。
物理結(jié)構(gòu)設(shè)計(jì)(2)在進(jìn)行數(shù)據(jù)庫物理設(shè)計(jì)時(shí)需要注意以下問題。①確定數(shù)據(jù)的存儲結(jié)構(gòu)。需考慮存取時(shí)間、空間效率和維護(hù)代價(jià)間的平衡。如在引入冗余數(shù)據(jù)以加快存取速度時(shí)應(yīng)兼顧系統(tǒng)的空間效率。②選擇合適的存取路徑。例如,確定應(yīng)該為哪些關(guān)系模式建立索引,索引關(guān)鍵字是什么等。③確定數(shù)據(jù)的存放位置。例如,確定數(shù)據(jù)存放在一個磁盤上還是多個磁盤上,什么數(shù)據(jù)該存放在高速存儲器上,什么應(yīng)存放在低速存儲器上等。④確定存取分布。許多DBMS都提供了一些存儲分配參數(shù)供設(shè)計(jì)者使用。例如,緩沖區(qū)的大小和個數(shù)、塊的長度、塊因子的大小等。設(shè)計(jì)者必須規(guī)定其中的一些參數(shù)設(shè)置。分析影響數(shù)據(jù)庫物理設(shè)計(jì)的因素
(1)與數(shù)據(jù)庫查詢事務(wù)有關(guān)的因素 查詢的關(guān)系 查詢條件所涉及的屬性 連接條件所涉及的屬性 查詢的投影屬性(2)與數(shù)據(jù)庫更新事務(wù)有關(guān)的因素
被更新的關(guān)系
每個關(guān)系更新操作的類型
刪除和修改操作條件所涉及的屬性
修改操作要改變的屬性值(3)每個事務(wù)在各個關(guān)系上運(yùn)行的頻率和時(shí)間約束
關(guān)系模式存取方法選擇DBMS一般都提供多種存取方式:
索引(index)
HASH
HASH方法是用HASH函數(shù)存儲和存取關(guān)系記錄的方法。具體地講是,指定某個關(guān)系上的—個(組)屬性A作為HASH碼,對該HASH碼定義一個函數(shù)(稱為HASH函數(shù)),關(guān)系記錄的存儲地址由HASH(a)來決定,a是該記錄在屬性A上的值。聚簇(cluster)為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊上,這種方法稱為聚簇。聚簇方法可以大大提高按聚簇碼進(jìn)行查詢的效率。關(guān)系模式存取方法選擇(2)(1)索引方法根據(jù)實(shí)際需要確定對哪些關(guān)系的哪些屬性列建立索引、組合索引或唯一索引。是否需要建立索引,可以考慮以下原則。①如果一個(組)屬性經(jīng)常作為查詢條件,可以考慮建立索引(組合索引)。②如果一個(組)屬性經(jīng)常使用聚集函數(shù),可以考慮建立索引。③如果一個(組)屬性經(jīng)常需要作為連接條件,可以考慮建立索引。由于系統(tǒng)維護(hù)索引是需要一定的空間的,而且數(shù)據(jù)表內(nèi)容發(fā)生變化時(shí)系統(tǒng)也需要重新維護(hù)索引。因此索引并不是越多越好,設(shè)計(jì)時(shí)需要根據(jù)具體情況來建立。如果一個關(guān)系的更新頻率很高,這個關(guān)系上就不要定義的太多的索引。關(guān)系模式存取方法選擇(3)(2)HASH方法如果一個關(guān)系的屬性主要出現(xiàn)在等連接條件中或相等比較的選擇條件中,是否選擇HASH存取方法的原則如下。①一個關(guān)系的大小可預(yù)知,而且不變,則此關(guān)系可以選擇HASH存取方法。②如果DBMS支持動態(tài)HASH存取方式,即使關(guān)系大小動態(tài)可變,也可以采用HASH存取方法。關(guān)系模式存取方法選擇(3)聚簇方法需要建立多少個聚簇,每個聚簇中包括哪些關(guān)系,可以參考以下原則。①
經(jīng)常在一起進(jìn)行連接操作的關(guān)系可以建立聚簇。②
如果一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中,則該單個關(guān)系可以建立聚簇。③
如果一個關(guān)系的一個(組)屬性上的值重復(fù)率很高,則此關(guān)系可以建立聚簇。④
一個數(shù)據(jù)庫可以建立多個聚簇,一個關(guān)系只能加入一個聚簇。如果出現(xiàn)下列情況,建議不要建立聚簇。①
經(jīng)常需要進(jìn)行全表掃描的關(guān)系。②
更新操作頻率高于訪問和連接操作的關(guān)系。確定系統(tǒng)配置
DBMS產(chǎn)品一般都提供了一些存儲分配參數(shù),供設(shè)計(jì)人員和數(shù)據(jù)庫管理員對數(shù)據(jù)庫進(jìn)行物理優(yōu)化。初始情況下,系統(tǒng)都為這些變量賦予了合理的缺省值。但是這些值不一定適合每一種應(yīng)用環(huán)境,在進(jìn)行物理設(shè)計(jì)時(shí),需要重新對這些變量賦值以改善系統(tǒng)的性能。通常情況下,這些配置變量包括:同時(shí)使用數(shù)據(jù)庫的用戶數(shù),同時(shí)打開的數(shù)據(jù)庫對象數(shù),使用的緩沖區(qū)長度、個數(shù),時(shí)間片大小、數(shù)據(jù)庫的大小,裝填因子,鎖的數(shù)目等,這些參數(shù)值影響存取時(shí)間和存儲空間的分配,在物理設(shè)計(jì)時(shí)就要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)性能最優(yōu)。在物理設(shè)計(jì)時(shí)對系統(tǒng)配置變量的調(diào)整只是初步的,在系統(tǒng)運(yùn)行時(shí)還要根據(jù)系統(tǒng)實(shí)際運(yùn)行情況做進(jìn)一步的調(diào)整,以期切實(shí)改進(jìn)系統(tǒng)性能。
評價(jià)物理結(jié)構(gòu)物理設(shè)計(jì)過程中需考慮時(shí)間和空間效率、維護(hù)代價(jià)和用戶的要求等,對這些因素考慮的側(cè)重點(diǎn)不同會產(chǎn)生多種物理設(shè)計(jì)方案。因此,數(shù)據(jù)庫的物理結(jié)構(gòu)應(yīng)全面權(quán)衡這幾個因素,對各種可能的設(shè)計(jì)方案進(jìn)行評價(jià),評價(jià)的重點(diǎn)是系統(tǒng)的時(shí)間和空間效率,并從多個方案中選出較優(yōu)的物理結(jié)構(gòu)。
數(shù)據(jù)庫實(shí)施與維護(hù)完成數(shù)據(jù)庫物理設(shè)計(jì)之后,就可以根據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)設(shè)計(jì),采用符合DBMS提供的數(shù)據(jù)定義語言,建立數(shù)據(jù)庫和數(shù)據(jù)庫對象。數(shù)據(jù)定義語言可以通過手工編寫腳本,也可以使用建模工具(如PowerDesigner)根據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)設(shè)計(jì)自動生成。數(shù)據(jù)庫建立之后,可以組織數(shù)據(jù)入庫。經(jīng)過調(diào)試、試運(yùn)行之后可以正式運(yùn)行。正式運(yùn)行時(shí),還需要不斷進(jìn)行維護(hù)。
數(shù)據(jù)庫試運(yùn)行
數(shù)據(jù)庫運(yùn)行與維護(hù)
創(chuàng)建數(shù)據(jù)庫根據(jù)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)設(shè)計(jì),使用DBMS提供的命令,創(chuàng)建數(shù)據(jù)庫、建立數(shù)據(jù)庫中所包含的各種數(shù)據(jù)對象,包括表、視圖、索引、觸發(fā)器等。這部分的工作可以用CREATEDATABASE、CREATETABLE、CREATEVIEW等命令手工編寫。這些SQL語句一般都需要保存形成建立數(shù)據(jù)庫的腳本,一方面方便修改調(diào)式,另一方面可以在不同時(shí)間或計(jì)算機(jī)上多次創(chuàng)建數(shù)據(jù)庫。數(shù)據(jù)庫創(chuàng)建腳本也可以使用如PowerDesigner等CSAE工具生成。組織數(shù)據(jù)入庫(1)手工(紙質(zhì))數(shù)據(jù)用戶以前沒有使用任何計(jì)算機(jī)系統(tǒng)協(xié)助業(yè)務(wù)工作,所有的數(shù)據(jù)都存儲在一些報(bào)表、檔案、憑證、單據(jù)、臺賬中。組織這類數(shù)據(jù)入庫的工作非常艱辛。一方面需要用戶按照數(shù)據(jù)庫要求配合整理手工數(shù)據(jù),確保手工數(shù)據(jù)的正確性、一致性、完整性。另一方面需
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020年成人高考高起專英語語法時(shí)態(tài)訓(xùn)練
- 湖南省懷化市通道縣2023-2024學(xué)年五年級上學(xué)期科學(xué)期中試卷
- 2025至2030年中國虛擬專用網(wǎng)絡(luò)行業(yè)發(fā)展監(jiān)測及投資前景展望報(bào)告
- 2025至2030年中國凍鰹魚行業(yè)市場調(diào)研及投資戰(zhàn)略規(guī)劃建議報(bào)告
- 2025至2030年中國肽飼料市場供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2025至2030年中國農(nóng)作物種植市場運(yùn)營態(tài)勢及發(fā)展前景預(yù)測報(bào)告
- 融入生活情境的高中生物科學(xué)本質(zhì)觀培養(yǎng)策略研究
- 雙規(guī)的法律依據(jù)
- 四川省廣安第二中學(xué)2024-2025學(xué)年高二上學(xué)期開學(xué)考試化學(xué)試卷(含答案)
- 兒童陪伴師傅合同協(xié)議書
- JT-T 329-2025 公路橋梁預(yù)應(yīng)力鋼絞線用錨具、夾具和連接器
- 《MATLAB教程簡明》課件
- 公司事故隱患內(nèi)部報(bào)告獎勵機(jī)制
- 中國居民營養(yǎng)和健康狀況調(diào)查報(bào)告
- 犬瘟熱的診斷及治療論文
- 2022年初中英語教師進(jìn)城招聘考試模擬試題及部分答案(共5套)
- 全國河流水文站坐標(biāo)
- 電力拖動與控制課件
- 農(nóng)產(chǎn)品食品檢驗(yàn)員理論知識競賽題庫
- 廣西主要斷裂帶-個人整理
- 油田注水工藝及管理
評論
0/150
提交評論