數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計_第1頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計_第2頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計_第3頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計_第4頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計1.數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計步驟按規(guī)范設(shè)計的方法可將數(shù)據(jù)庫設(shè)計分為以下六個階段(1)需求分析;(2)概念結(jié)構(gòu)設(shè)計;(3)邏輯結(jié)構(gòu)設(shè)計;(4)數(shù)據(jù)庫物理設(shè)計;(5)數(shù)據(jù)庫實(shí)施;(6)數(shù)據(jù)庫運(yùn)行和維護(hù)。2.需求分析需求收集和分析是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的第一階段。明確地把它作為數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的第一步是十分重要的。這一階段收集到的基礎(chǔ)數(shù)據(jù)和一組數(shù)據(jù)流圖(DataFlowDiagram———DFD)是下一步設(shè)計概念結(jié)構(gòu)的基礎(chǔ)。概念結(jié)構(gòu)是整個組中所有用戶關(guān)心的信息結(jié)構(gòu),對整個數(shù)據(jù)庫設(shè)計具有深刻影響。而要設(shè)計好概念結(jié)構(gòu),就必須在需求分析階段用系統(tǒng)的觀點(diǎn)來考慮問題、收集和分析數(shù)據(jù)及其處理。如何分析和表達(dá)用戶需求呢?在眾多的分析方法中,結(jié)構(gòu)化分析(StructuredAnalysis,簡稱SA方法)是一個簡單實(shí)用的方法。SA方法用自頂向下、逐層分解的方式分析系統(tǒng)。用數(shù)據(jù)流圖、數(shù)據(jù)字典描述系統(tǒng)。然后把一個處理功能的具體內(nèi)容分解為若干子功能,每個子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達(dá)清楚為止。在處理功能逐步分解的同時,它們所用的數(shù)據(jù)也逐級分解,形成若干層次的數(shù)據(jù)流圖。數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過程的關(guān)系。處理過程的處理邏輯常常用判定表或判定樹來描述。數(shù)據(jù)字典(DataDictionary,簡稱DD)則是對系統(tǒng)中數(shù)據(jù)的詳盡描述,是各類數(shù)據(jù)屬性的清單。對數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計來講,數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括以下5個部分:(1)數(shù)據(jù)項,是數(shù)據(jù)最小單位。(2)數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項有意義的集合。(3)數(shù)據(jù)流,可以是數(shù)據(jù)項,也可以是數(shù)據(jù)結(jié)構(gòu)。表示某一處理過程的輸入輸出。(4)數(shù)據(jù)存儲,處理過程中存取的數(shù)據(jù)。常常是手工憑證、手工文檔或計算機(jī)文件。(5)處理過程。3.概念結(jié)構(gòu)設(shè)計如同軟件工程中重視需求分析與規(guī)范說明的思想一樣,數(shù)據(jù)庫設(shè)計中同樣十分重視數(shù)據(jù)分析、抽象與概念結(jié)構(gòu)的設(shè)計。概念結(jié)構(gòu)的設(shè)計,是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵之一。概念結(jié)構(gòu)獨(dú)立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨(dú)立于支持?jǐn)?shù)據(jù)庫的DBMS,也獨(dú)立于具體計算機(jī)軟件和硬件系統(tǒng)。歸納總結(jié),其主要特點(diǎn)是:的E-R圖。視圖集成可以有兩種方式:①多個部分E-R圖一次集成。②逐步集成。用累加的方式一次集成兩個部分E-R圖。無論哪種方式,每次集成可分兩步走。第一步是合并,解決各部分E-R圖之間的沖突問題,生成初步E-R圖。第二步是修改和重構(gòu),消除不必要的冗余,生成基本E-R圖。4.邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是把概念結(jié)構(gòu)轉(zhuǎn)換為選用的DBMS所支持的數(shù)據(jù)模型的過程。設(shè)計邏輯結(jié)構(gòu)按理應(yīng)選擇對某個概念結(jié)構(gòu)最好的數(shù)據(jù)模型,然后對支持這種數(shù)據(jù)模型的各種DBMS進(jìn)行比較,選出最合適的DBMS。但實(shí)際情況常常是已給定了某臺機(jī)器,設(shè)計人員沒有選擇DBMS的余地?,F(xiàn)行的DBMS一般只支持關(guān)系、網(wǎng)狀或?qū)哟稳N模型中的某一種,對某一種數(shù)據(jù)模型,各個機(jī)器系統(tǒng)又有許多不同的限制,提供不同的環(huán)境與工具。因而我們把設(shè)計過程分三步進(jìn)行。首先把概念結(jié)構(gòu)向一般的關(guān)系模型轉(zhuǎn)換,然后向特定的DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換,最后進(jìn)行模型的優(yōu)化。(1)E-R圖向關(guān)系數(shù)據(jù)模型的轉(zhuǎn)換下面給出把E-R圖轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換規(guī)則。①一個實(shí)體轉(zhuǎn)換為一個關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。②一個聯(lián)系轉(zhuǎn)換為一個關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系的屬性轉(zhuǎn)換為關(guān)系的屬性。該關(guān)系的碼則有三種情況:若聯(lián)系為1∶1,則每個實(shí)體的碼均是該關(guān)系的候選碼。若聯(lián)系為1∶n,關(guān)系的碼為n端實(shí)體的碼。若聯(lián)系為n∶m,則關(guān)系的碼為諸實(shí)體碼的組合。具有相同碼的關(guān)系模式可合并。形成了一般的數(shù)據(jù)模型后,下一步就向特定的DBMS規(guī)定的模型轉(zhuǎn)換。設(shè)計人員必須熟知所用DBMS的功能及限制。這一步轉(zhuǎn)換是依賴于機(jī)器的,不能給出一個普遍的規(guī)則。轉(zhuǎn)化后的模型必須進(jìn)行優(yōu)化。對數(shù)據(jù)模型進(jìn)行優(yōu)化是指調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能。性能有動態(tài)性能和靜態(tài)性能兩種。靜態(tài)性能分析容易實(shí)現(xiàn)。根據(jù)應(yīng)用要求,選出合適的模型是一項復(fù)雜的工作。(2)規(guī)范化理論的應(yīng)用規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的指南和工具,具體地講可應(yīng)用在下面幾個具體的方面:第一,在數(shù)據(jù)分析階段用數(shù)據(jù)依賴的概念分析和表示各數(shù)據(jù)項之間的關(guān)系。第二,在設(shè)計概念結(jié)構(gòu)階段,用規(guī)范化理論為工具消除初步E-R圖中冗余的聯(lián)系。第三,由E-R圖向數(shù)據(jù)模型轉(zhuǎn)換過程中用模式分解的概念和算法指導(dǎo)設(shè)計。現(xiàn)在,不管選用的DBMS是支持哪種數(shù)據(jù)模型的,均先把概念結(jié)構(gòu)向關(guān)系模型轉(zhuǎn)換。然后,充分運(yùn)用規(guī)范化理論的成果優(yōu)化關(guān)系數(shù)據(jù)庫模式的設(shè)計。設(shè)計辦法是:①確定數(shù)據(jù)依賴把E-R圖中每個實(shí)體內(nèi)的各個屬性按數(shù)據(jù)分析階段所得到的語義寫出其數(shù)據(jù)依賴。實(shí)體之間的聯(lián)系用實(shí)體主碼之間的聯(lián)系來表示。②用關(guān)系來表示E-R圖中的每一個實(shí)體每個實(shí)體對應(yīng)一個關(guān)系模式Ri<Ui,∑i>,其中Ui就是該實(shí)體所包含的諸屬性,∑i就是∑在Ui上的投影。③對于實(shí)體之間的那些數(shù)據(jù)依賴進(jìn)行極小化處理設(shè)函數(shù)依賴集為F,求F和最小覆蓋G的差集。D=F-G逐一考察D中的函數(shù)依賴,確定是否應(yīng)該去掉,由于規(guī)范化理論受泛關(guān)系假設(shè)的限制,應(yīng)注意下面兩個問題:冗余的聯(lián)系一定在D中,而D中的聯(lián)系不一定是冗余的。當(dāng)實(shí)體之間存在多種聯(lián)系時應(yīng)該利用子類的概念將實(shí)體之間的聯(lián)系形式上單一化,然后才能進(jìn)行極小化處理。④用關(guān)系表示實(shí)體之間的聯(lián)系每個聯(lián)系對應(yīng)一個關(guān)系模式Rj<Uj,∑j>Ujo由相互聯(lián)系的諸實(shí)體(二個或多個實(shí)體)的主碼屬性以及描述該聯(lián)系的性質(zhì)的屬性組成?!苆就是∑在Ui上的投影。對于不同實(shí)體非主碼屬性之間的聯(lián)系同樣也要形成一個關(guān)系模式。這樣就得到了一組關(guān)系模式。按照數(shù)據(jù)依賴的理論,逐一分析這組模式??疾槭欠翊嬖诓糠趾瘮?shù)依賴、傳遞依賴、多值依賴等,確定它們分別屬于第幾范式。然后按照數(shù)據(jù)分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,分析對于這樣的應(yīng)用環(huán)境這模式是否合適,確定是否要對它們進(jìn)行合并或分解。⑤關(guān)系模式的分解,對于需要進(jìn)行分解的關(guān)系模式進(jìn)行分解,對產(chǎn)生的各種模式進(jìn)行評價,選出較合適的模式。規(guī)范化理論給出了判斷關(guān)系模式優(yōu)劣的理論標(biāo)準(zhǔn),幫助預(yù)測模式可能出現(xiàn)的問題,提供了自動產(chǎn)生各種模式的算法工具,因此是設(shè)計人員的有力工具,也使數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計工作有了嚴(yán)格的理論基礎(chǔ)。5.數(shù)據(jù)庫的物理設(shè)計物理設(shè)計的內(nèi)容主要包括:(1)確定數(shù)據(jù)的存儲結(jié)構(gòu)從DBMS所提供的存儲結(jié)構(gòu)中選取一種合適的加以實(shí)現(xiàn)。確定存儲結(jié)構(gòu)的主要因素是存取時間、存儲空間利用率和維護(hù)代價三個方面。設(shè)計者常常要對這些因素進(jìn)行權(quán)衡。一般的DBMS也總是具有一定靈活性供你選擇。例如,若引入某些冗余數(shù)據(jù),則可能減少物理I/O次數(shù)提高檢索效率。相反節(jié)約存儲空間檢索代價就會增加。當(dāng)然應(yīng)該盡量尋找優(yōu)化方法,使這三方面的性能都較好。折衷有時是必須的。(2)存取路徑的選擇和調(diào)整數(shù)據(jù)庫必須支持多個用戶的多種應(yīng)用,因而必須提供對數(shù)據(jù)庫的多個存取入口,也就是對同一數(shù)據(jù)存儲要提供多條存取路徑。物理設(shè)計的任務(wù)應(yīng)確定建立哪些存取路徑。設(shè)計者應(yīng)該進(jìn)行定量的分析,根據(jù)計算結(jié)果確定存取路徑。(3)確定數(shù)據(jù)存放位置首先按數(shù)據(jù)的應(yīng)用情況劃分為不同的組,然后確定存放位置。一般的應(yīng)把數(shù)據(jù)的易變部分和穩(wěn)定部分分開,把經(jīng)常存取和不常存取的數(shù)據(jù)分開。經(jīng)常存取或存取時間要求高的記錄應(yīng)存放在高速存儲器上,如硬盤。存取頻率小或存取時間要求低的放在低速存儲器上,如軟盤、磁帶。對于同一數(shù)據(jù)文件也可根據(jù)情況進(jìn)行水平劃分或垂直劃分。(4)確定存儲分配許多DBMS提供了存儲分配的參數(shù)供設(shè)計者物理優(yōu)化處理用。例如溢出空間的大小和分布參數(shù)、塊的長度、塊因子的大小、裝填因子、緩沖區(qū)的大小和個數(shù)等等,它們都要在物理設(shè)計中確定。這些參數(shù)的大小影響存取時間和存儲空間的分配。物理設(shè)計過程需要對時間、空間效率、維護(hù)代價和各種用戶要求進(jìn)行權(quán)衡,其結(jié)果可以產(chǎn)生多種方案。在實(shí)施數(shù)據(jù)庫前對這些方案進(jìn)行方案進(jìn)行細(xì)致的評價,以選擇一個較優(yōu)的方案是十分必要的。6.數(shù)據(jù)庫應(yīng)用系統(tǒng)的實(shí)施和維護(hù)對數(shù)據(jù)庫的物理設(shè)計初步評價完成后就可建立數(shù)據(jù)庫了。數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)施對應(yīng)于軟件工程的編碼、調(diào)試階段。設(shè)計人員運(yùn)用DBMS提供的數(shù)據(jù)定義語言將邏輯設(shè)計和物理設(shè)計的結(jié)果嚴(yán)格地描述出來,成為DBMS可接受的源代碼,經(jīng)過調(diào)試產(chǎn)生目標(biāo)模式。然后組織數(shù)據(jù)入庫。組織數(shù)據(jù)入庫是數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)施階段最主要的工作。(1)數(shù)據(jù)庫數(shù)據(jù)的載入和應(yīng)用程序的開發(fā)由于數(shù)據(jù)庫數(shù)據(jù)量一般都非常大,并且這些數(shù)據(jù)來源于一個組織的各個部門,分散在各種數(shù)據(jù)文件或原始憑證中。這些數(shù)據(jù)的結(jié)構(gòu)和格式一般也不符合數(shù)據(jù)庫的要求,還要進(jìn)行轉(zhuǎn)換。因此組織數(shù)據(jù)入庫是一件耗費(fèi)大量人力物力的工作。數(shù)據(jù)的轉(zhuǎn)換和組織對于小系統(tǒng)可以用人工方法完成。但是,人工轉(zhuǎn)換效率低、質(zhì)量差。一般來說,應(yīng)設(shè)計一個數(shù)據(jù)輸入子系統(tǒng)讓計算機(jī)完成這個工作。輸入子系統(tǒng)的主要功能是:原始數(shù)據(jù)的輸入、抽取、校驗、分類、轉(zhuǎn)換和綜合,最終把數(shù)據(jù)組織成符合數(shù)據(jù)庫結(jié)構(gòu)的形式。然后把數(shù)據(jù)存入數(shù)據(jù)庫中。數(shù)據(jù)的轉(zhuǎn)換、分類和綜合常常要經(jīng)過多次才能完成,因而輸入子系統(tǒng)的設(shè)計和實(shí)施亦是比較復(fù)雜的,要編寫許多應(yīng)用程序。輸入子系統(tǒng)的設(shè)計不能等物理設(shè)計完成后才動手,應(yīng)該和數(shù)據(jù)庫設(shè)計工作并行開展。為了保證數(shù)據(jù)庫數(shù)據(jù)正確無誤,必須高度重視數(shù)據(jù)的檢驗工作。在輸入子系統(tǒng)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的過程中應(yīng)該進(jìn)行多次檢驗,每次檢驗的方法亦不要相同。對于重要數(shù)據(jù)的校驗更應(yīng)該反復(fù)多次,確認(rèn)正確后方可入庫。數(shù)據(jù)庫應(yīng)用系統(tǒng)中應(yīng)用程序的設(shè)計應(yīng)該和數(shù)據(jù)庫模式設(shè)計并行。數(shù)據(jù)庫應(yīng)用系統(tǒng)的實(shí)施階段的另一項工作便這是這些應(yīng)用程序的編碼、調(diào)試工作。有了裝載實(shí)際數(shù)據(jù)的數(shù)據(jù)庫和應(yīng)用程序,就建立了數(shù)據(jù)庫應(yīng)用系統(tǒng),可以試運(yùn)行了。(2)數(shù)據(jù)庫應(yīng)用系統(tǒng)的試運(yùn)行在完成上述工作之后,便可進(jìn)入數(shù)據(jù)庫的試運(yùn)行階段,或者稱聯(lián)合調(diào)試階段。這階段的主要工作是:①實(shí)際運(yùn)行應(yīng)用程序,執(zhí)行對數(shù)據(jù)庫的各種操作,測試應(yīng)用程序的功能。②測量系統(tǒng)的性能指標(biāo),分析是否符合設(shè)計目標(biāo)。雖然已在物理設(shè)計過程中進(jìn)行了性能預(yù)測,但是僅僅估價了時間和空間指標(biāo),而且在性能估價的過程中作了許多簡化和假設(shè),忽略了許多次要因素,因而估價是粗糙的并可能失真。必須在試運(yùn)行階段進(jìn)行實(shí)際測量和評價。有些參數(shù)的最佳值往往是經(jīng)過運(yùn)行調(diào)試后才找到的。如果實(shí)際結(jié)果不符合設(shè)計目標(biāo),則需返回物理設(shè)計階段,調(diào)整物理結(jié)構(gòu),修改參數(shù)。有時,也許還需要返回邏輯設(shè)計階段,調(diào)整邏輯結(jié)構(gòu)。最后還須指出兩點(diǎn)。第一,上面已看到組織數(shù)據(jù)入庫是十分費(fèi)事的,如果運(yùn)行調(diào)試后又要修改數(shù)據(jù)庫設(shè)計則又要重新組織數(shù)據(jù)入庫。因此應(yīng)分批分期輸入數(shù)據(jù),逐步完成運(yùn)行評價。第二,數(shù)據(jù)庫的實(shí)施和調(diào)試不是一朝一夕能完成的,在此期間軟硬件的錯誤隨時可能發(fā)生。加上數(shù)據(jù)庫剛剛建立,工作人員對系統(tǒng)還不熟悉,對其規(guī)律更缺乏深入了解,容易發(fā)生操作錯誤。因此必須做好數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)工作,這就要求設(shè)計人員了解DBMS的這個功能,并根據(jù)調(diào)試方式和特點(diǎn)首先實(shí)施,盡量減少對數(shù)據(jù)庫的破壞并簡化故障恢復(fù)。(3)數(shù)據(jù)庫應(yīng)用系統(tǒng)的運(yùn)行和維護(hù)數(shù)據(jù)庫應(yīng)用系統(tǒng)投入運(yùn)行標(biāo)志著開發(fā)任務(wù)的基本完成和維護(hù)工作的開始,但并不意味著設(shè)計過程結(jié)束。任何數(shù)據(jù)庫應(yīng)用系統(tǒng)只要它存在一天,它的設(shè)計就得不不斷地進(jìn)行評價、調(diào)整、修改,甚至完全改革。因此數(shù)據(jù)庫應(yīng)用系統(tǒng)的維護(hù)不僅是維護(hù)其正?;顒佣沂窃O(shè)計工作的繼續(xù)和提高。維護(hù)階段的主要工作是:①數(shù)據(jù)庫的安全性、完整性控制及系統(tǒng)的轉(zhuǎn)儲和恢復(fù);②性能的監(jiān)督、分析和改進(jìn);③數(shù)據(jù)庫的重組織和重構(gòu)造。下面簡單介紹數(shù)據(jù)庫的重組織和重構(gòu)造。數(shù)據(jù)庫運(yùn)行一段時間后,由于記錄的不斷增、刪、改,會使數(shù)據(jù)庫的物理存儲變壞。例如,邏輯上屬于同一記錄型或同一關(guān)系的數(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論