SQL-Server-2005數(shù)據(jù)庫原理及應(yīng)用教程第3章-數(shù)據(jù)庫設(shè)計_第1頁
SQL-Server-2005數(shù)據(jù)庫原理及應(yīng)用教程第3章-數(shù)據(jù)庫設(shè)計_第2頁
SQL-Server-2005數(shù)據(jù)庫原理及應(yīng)用教程第3章-數(shù)據(jù)庫設(shè)計_第3頁
SQL-Server-2005數(shù)據(jù)庫原理及應(yīng)用教程第3章-數(shù)據(jù)庫設(shè)計_第4頁
SQL-Server-2005數(shù)據(jù)庫原理及應(yīng)用教程第3章-數(shù)據(jù)庫設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章數(shù)據(jù)庫設(shè)計

3.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),只有對數(shù)據(jù)庫進行合理的邏輯設(shè)計和有效的物理設(shè)計才能開發(fā)出完善而高效的信息系統(tǒng),因此,數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分。3.1.1數(shù)據(jù)庫設(shè)計內(nèi)容及特點數(shù)據(jù)庫設(shè)計包括兩個方面:數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫的行為設(shè)計。結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的基礎(chǔ)和關(guān)鍵,行為設(shè)計起著輔助作用?,F(xiàn)代數(shù)據(jù)庫設(shè)計十分強調(diào)數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計與行為設(shè)計的統(tǒng)一,只有兩者相互參照,同步進行,才能較好地達到設(shè)計目標。1.數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計是指根據(jù)給定的應(yīng)用環(huán)境,進行數(shù)據(jù)庫的模式或子模式的設(shè)計。它包括數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計和物理設(shè)計。2.數(shù)據(jù)庫的行為設(shè)計數(shù)據(jù)庫的行為設(shè)計是指確定數(shù)據(jù)庫用戶的行為和動作,并根據(jù)其行為特性設(shè)計出數(shù)據(jù)庫的子模式。3.數(shù)據(jù)庫設(shè)計時考慮的相關(guān)內(nèi)容數(shù)據(jù)庫系統(tǒng)的硬件條件數(shù)據(jù)庫管理系統(tǒng)和主語言系統(tǒng)的特點數(shù)據(jù)庫用戶的技術(shù)水平和管理水平3.1.2數(shù)據(jù)庫設(shè)計的方法直觀設(shè)計法規(guī)范設(shè)計法基于E-R模型的數(shù)據(jù)庫設(shè)計方法基于3NF(第三范式)的數(shù)據(jù)庫設(shè)計方法基于視圖的數(shù)據(jù)庫設(shè)計方法計算機輔助設(shè)計法自動化設(shè)計法3.1.3數(shù)據(jù)庫設(shè)計的基本步驟數(shù)據(jù)庫的設(shè)計過程實質(zhì)是軟件設(shè)計的過程,因此數(shù)據(jù)庫設(shè)計一般都遵循軟件的生命周期理論。軟件的生命周期是指從軟件的規(guī)劃、研制、實現(xiàn)、投入運行后的維護,直到它被新的軟件所取代而停止使用的整個期間,具體可以劃分為六個階段:規(guī)劃階段、需求分析階段、設(shè)計階段、程序編制階段、調(diào)試階段、運行和維護階段。按照這種理論來考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計分為需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理設(shè)計、數(shù)據(jù)庫實施和數(shù)據(jù)庫的運行與維護六個階段,3.2需求分析需求分析就是分析用戶對數(shù)據(jù)庫的具體要求,是整個數(shù)據(jù)庫設(shè)計過程的起點和基礎(chǔ)。需求分析的結(jié)果是否準確地反映了用戶的實際要求,將直接影響到后期各個階段的設(shè)計,并影響到設(shè)計結(jié)果是否合理和實用。3.2.1需求分析的任務(wù)需求分析的任務(wù)是通過詳細調(diào)查現(xiàn)實世界要處理的對象(如組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求,收集支持新系統(tǒng)的基礎(chǔ)數(shù)據(jù)并對其進行處理,然后在此基礎(chǔ)上確定新系統(tǒng)的功能和邊界。1.調(diào)查分析用戶活動2.收集和分析需求數(shù)據(jù),確定系統(tǒng)邊界3.系統(tǒng)需求調(diào)查的方法4.編寫需求分析說明書3.2.2需求分析的方法在調(diào)查了用戶的需求之后,還需要進一步分析和表達用戶的需求,使之轉(zhuǎn)換為后續(xù)各設(shè)計階段可用的形式。目前分析和表達用戶需求的方法很多,主要方法有兩種:自頂向下和自底向上兩種,1.數(shù)據(jù)流圖數(shù)據(jù)流圖是軟件工程中專門描繪信息在系統(tǒng)中流動和處理過程的圖形化工具,能夠精確地在邏輯上描述系統(tǒng)的功能、輸入輸出和數(shù)據(jù)存儲,是設(shè)計人員與用戶之間一種較好的的交流工具。在數(shù)據(jù)流圖中,用命名的箭頭表示數(shù)據(jù)流,用圓圈表示處理,用矩形或其他形狀表示存儲。2.數(shù)據(jù)字典數(shù)據(jù)字典是用來對系統(tǒng)中各類數(shù)據(jù)進行詳盡的描述,是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要成果,它與數(shù)據(jù)流圖互為注釋,在數(shù)據(jù)庫設(shè)計過程中占有重要的地位。數(shù)據(jù)字典的內(nèi)容不是一成不變的,它貫穿于數(shù)據(jù)庫需求分析直到數(shù)據(jù)庫運行的全過程,在隨后數(shù)據(jù)庫設(shè)計的過程中會不斷地被修改、充實和完善,發(fā)揮不同的作用。數(shù)據(jù)字典通常包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程五個部分。1)數(shù)據(jù)項數(shù)據(jù)項是不可再分的數(shù)據(jù)單位,它的描述如下。數(shù)據(jù)項={數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項的邏輯關(guān)系}.2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。它可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)混合組成。它的描述如下。數(shù)據(jù)結(jié)構(gòu)={數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成{數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)}}。3)數(shù)據(jù)流表示某次數(shù)據(jù)處理過程中數(shù)據(jù)在系統(tǒng)內(nèi)傳輸?shù)穆窂?,可以是?shù)據(jù)項,也可以是數(shù)據(jù)結(jié)構(gòu)。它的描述如下。數(shù)據(jù)流={數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}。4)數(shù)據(jù)存儲數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。數(shù)據(jù)存儲可以是手工文檔、手工憑單或計算機文檔。它的描述如下。數(shù)據(jù)存儲={數(shù)據(jù)存儲名,說明,編號,輸入數(shù)據(jù)流,輸出數(shù)據(jù)流,組成{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取方式,存取頻度}。5)處理過程處理過程的具體處理邏輯一般用判定表或判定樹來描述。數(shù)據(jù)字典只需要描述處理過程的說明性信息,通常包括以下內(nèi)容。處理過程={處理過程名稱,說明,輸入數(shù)據(jù){數(shù)據(jù)流},輸出數(shù)據(jù){數(shù)據(jù)流},處理{簡單說明}}。3.3概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計的任務(wù)是在需求分析階段產(chǎn)生的需求說明書的基礎(chǔ)上,按照特定的方法把它們抽象為一個不依賴于任何具體機器的數(shù)據(jù)模型,即概念模型。3.3.1概念結(jié)構(gòu)的設(shè)計方法1.概念結(jié)構(gòu)的特點概念結(jié)構(gòu)能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求,是反映現(xiàn)實世界的一個真實模型。由于概念結(jié)構(gòu)簡潔、明晰,獨立于機器,很容易理解,因此設(shè)計者可以使用概念模型和不熟悉計算機的用戶交換意見,使用戶能積極參與數(shù)據(jù)庫的設(shè)計工作。概念結(jié)構(gòu)要易于變更。當應(yīng)用環(huán)境和應(yīng)用要求發(fā)生變化時,容易對概念模型進行修改和擴充。概念模型應(yīng)易于向數(shù)據(jù)模型轉(zhuǎn)換。概念模型最終要轉(zhuǎn)換為數(shù)據(jù)模型,設(shè)計概念模型時應(yīng)當注意,使其有利于向關(guān)系、網(wǎng)狀、層次等數(shù)據(jù)模型轉(zhuǎn)換。2.概念結(jié)構(gòu)設(shè)計的方法自頂向下的設(shè)計方法自底向上的設(shè)計方法逐步擴張的設(shè)計方法混合策略3.3.2數(shù)據(jù)抽象與局部視圖設(shè)計1.數(shù)據(jù)抽象數(shù)據(jù)抽象是概念結(jié)構(gòu)設(shè)計的基礎(chǔ),通過抽象可以得出概念模型的實體集及屬性。在概念結(jié)構(gòu)設(shè)計中涉及的數(shù)據(jù)抽象主要有三種:分類、聚集和概括。2.局部視圖的設(shè)計第一步,明確局部應(yīng)用的范圍。第二步,逐一設(shè)計局部E-R圖。3.3.3視圖的集成

視圖的集成就是在各個局部E-R圖設(shè)計完成后,對它們進行合并,集成為一個整體的數(shù)據(jù)概念結(jié)構(gòu),形成全局E-R圖。視圖的集成有兩種方法:一種是多元集成法,即一次性將多個E-R圖合并為一個全局E-R圖;另一種是逐步集成法,首先集成兩個重要的局部視圖,以后每次將一個新的局部視圖集成進來。1.合并局部視圖,生成初步E-R圖合理消除各局部E-R圖的沖突是合并局部E-R圖的主要工作與關(guān)鍵所在。沖突主要分為三類,分別是屬性沖突、命名沖突和結(jié)構(gòu)沖突。2.消除冗余,得到基本E-R圖局部E-R模型合并后,在得到的初步E-R圖中可能存在冗余的數(shù)據(jù)和實體間冗余的聯(lián)系。所謂冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系。冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫的維護增加困難,應(yīng)當予以消除。消除冗余的方法主要有兩種:關(guān)系數(shù)據(jù)設(shè)計理論(規(guī)范化)方法和分析方法。3.4邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是將概念模型結(jié)構(gòu)轉(zhuǎn)換成某個具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,然后根據(jù)邏輯設(shè)計的準則、數(shù)據(jù)的語義約束、規(guī)范化理論等對數(shù)據(jù)庫邏輯結(jié)構(gòu)進行適當?shù)恼{(diào)整和優(yōu)化,形成合理的全局邏輯結(jié)構(gòu),并設(shè)計出用戶視圖。3.4.1概念模型向關(guān)系模型的轉(zhuǎn)換關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,而E-R圖則是由實體、實體的屬性及實體之間的聯(lián)系組成的。因此將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是要將實體、實體的屬性及實體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。1.實體集的轉(zhuǎn)換規(guī)則概念模型中的每一個實體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系模式。實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼。2.實體集間聯(lián)系的轉(zhuǎn)換規(guī)則1)1∶1聯(lián)系的轉(zhuǎn)換(1)轉(zhuǎn)換為一個獨立的關(guān)系模式。聯(lián)系名為關(guān)系模式名,與該聯(lián)系相連的兩個實體的關(guān)鍵字及聯(lián)系本身的屬性為關(guān)系模式的屬性,其中每個實體的碼均是該關(guān)系模式的候選碼。(2)將1∶1聯(lián)系與某一端實體對應(yīng)的關(guān)系模式進行合并。這時需要將另一個關(guān)系模式的碼及聯(lián)系本身的屬性加入到該關(guān)系模式中。2)1∶n聯(lián)系的轉(zhuǎn)換(1)轉(zhuǎn)換為一個獨立的關(guān)系模式。聯(lián)系名為關(guān)系模式名,與該聯(lián)系相連的兩個實體的關(guān)鍵字及聯(lián)系本身的屬性為關(guān)系模式的屬性,其中n端實體的碼是該關(guān)系模式的碼。(2)將1∶n聯(lián)系與n端實體對應(yīng)的關(guān)系模式進行合并。這時需要將1端關(guān)系模式的碼及聯(lián)系本身的屬性加入到n端關(guān)系模式中,n端關(guān)系模式的碼不變。3)m∶n聯(lián)系的轉(zhuǎn)換一個m∶n聯(lián)系轉(zhuǎn)換為一個關(guān)系。聯(lián)系名為關(guān)系模式名,與該聯(lián)系相連的兩個實體的碼及聯(lián)系本身的屬性為關(guān)系模式的屬性,兩個實體碼的并集是該關(guān)系模式的碼。4)三個或三個以上實體集間聯(lián)系的轉(zhuǎn)換對于三個或三個以上實體集間的聯(lián)系可以轉(zhuǎn)換為一個關(guān)系模式,與該多元聯(lián)系相連的各實體的碼及聯(lián)系本身的屬性為該關(guān)系模式的屬性,各個實體碼的并集是該關(guān)系模式的碼。5)同一實體集內(nèi)部聯(lián)系的轉(zhuǎn)換前面已經(jīng)介紹過,聯(lián)系也可以發(fā)生在同一實體集內(nèi)部。在進行轉(zhuǎn)換時,可以將該實體集分為相互聯(lián)系的兩個子集,然后根據(jù)它們相互間不同的聯(lián)系方式(1∶1,1∶n,m∶n)按上面介紹的不同實體集之間聯(lián)系轉(zhuǎn)換的規(guī)則進行處理。3.4.2數(shù)據(jù)模型的優(yōu)化數(shù)據(jù)庫邏輯設(shè)計的結(jié)果并不是唯一的,為了進一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,還應(yīng)該根據(jù)應(yīng)用適當?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化。關(guān)系數(shù)據(jù)庫模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。具體的優(yōu)化過程介紹如下。1.確定范式級別2.實施規(guī)范化處理3.關(guān)系模式的分解對關(guān)系模式進行必要的分解,可以提高數(shù)據(jù)操作的效率和存儲空間的利用率。常用的方法是垂直分解和水平分解。3.4.3用戶子模式的設(shè)計在將概念模型轉(zhuǎn)換為全局數(shù)據(jù)模型后,還應(yīng)該根據(jù)局部應(yīng)用的需要,結(jié)合具體數(shù)據(jù)庫管理系統(tǒng)的特點,設(shè)計出用戶子模式。用戶子模式也稱為外模式。關(guān)系數(shù)據(jù)管理系統(tǒng)中提供的視圖是根據(jù)外模式設(shè)計的,在設(shè)計外模式時只需要考慮用戶對數(shù)據(jù)的使用要求、習(xí)慣及安全性要求,而不需要考慮系統(tǒng)的時間效率、空間效率、易維護等問題。外模式設(shè)計時要注意考慮用戶的習(xí)慣與方便,應(yīng)注意以下幾個方面。1.使用符合用戶習(xí)慣的別名2.對不同級別的用戶定義不同的外模式3.簡化用戶對系統(tǒng)的使用3.5數(shù)據(jù)庫的物理設(shè)計數(shù)據(jù)庫最終是要存儲在物理設(shè)備上的,數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于給定的計算機系統(tǒng)。對于給定的邏輯數(shù)據(jù)模型,選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,稱為數(shù)據(jù)庫的物理設(shè)計。數(shù)據(jù)庫物理設(shè)計的工作可以分為兩個主要環(huán)節(jié)。第一個環(huán)節(jié)是確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指確定存儲結(jié)構(gòu)和存取方法。第二個環(huán)節(jié)是對物理結(jié)構(gòu)進行評價,評價的重點是時間和空間效率。3.5.1確定數(shù)據(jù)庫的物理結(jié)構(gòu)確定數(shù)據(jù)庫的物理結(jié)構(gòu)主要是指確定數(shù)據(jù)的存儲位置和存儲結(jié)構(gòu),包括確定關(guān)系、索引、聚簇、日志和備份等的存儲安排及存儲結(jié)構(gòu);確定系統(tǒng)存儲參數(shù)配置等。1.確定數(shù)據(jù)的存儲結(jié)構(gòu)2.確定數(shù)據(jù)的存儲位置3.確定關(guān)系模式的存取方法索引方法聚簇方法HASH存取方法4.確定系統(tǒng)存儲參數(shù)的配置3.5.2評價物理結(jié)構(gòu)與前面幾個設(shè)計階段相同,在確定了數(shù)據(jù)庫的物理結(jié)構(gòu)之后,要進行評價,重點是對時間效率、空間效率、維護代價和各種用戶要求進行權(quán)衡,結(jié)果可能會產(chǎn)生多種設(shè)計方案。數(shù)據(jù)庫設(shè)計人員必須對這些方案進行詳細地評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)。評價物理數(shù)據(jù)庫的方法完全依賴于所選用的數(shù)據(jù)庫管理系統(tǒng),主要是從定量估算各種方案的存儲空間、存取時間和維護代價入手,對估算結(jié)果進行權(quán)衡、比較,選擇出一個較優(yōu)的、合理的物理結(jié)構(gòu)。如果該結(jié)構(gòu)不符合用戶的需求,則需要修改設(shè)計。如果評價結(jié)果滿足設(shè)計要求,則可進行數(shù)據(jù)庫實施。實際上,往往需要經(jīng)過反復(fù)測試才能優(yōu)化物理設(shè)計。3.6數(shù)據(jù)庫實施完成數(shù)據(jù)庫的物理設(shè)計之后,設(shè)計人員就要用數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言(DDL)和其他實用程序?qū)?shù)據(jù)庫邏輯設(shè)計和物理設(shè)計結(jié)果嚴格描述出來,成為數(shù)據(jù)庫管理系統(tǒng)能夠接受的源代碼,再經(jīng)過調(diào)試產(chǎn)生目標模式并組織數(shù)據(jù)入庫,這就是數(shù)據(jù)庫實施階段。1.建立數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論