![數(shù)據(jù)庫原理及應(yīng)用-數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view12/M08/23/37/wKhkGWcBeUiASdgLAACNDSbkz1o451.jpg)
![數(shù)據(jù)庫原理及應(yīng)用-數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view12/M08/23/37/wKhkGWcBeUiASdgLAACNDSbkz1o4512.jpg)
![數(shù)據(jù)庫原理及應(yīng)用-數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view12/M08/23/37/wKhkGWcBeUiASdgLAACNDSbkz1o4513.jpg)
![數(shù)據(jù)庫原理及應(yīng)用-數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view12/M08/23/37/wKhkGWcBeUiASdgLAACNDSbkz1o4514.jpg)
![數(shù)據(jù)庫原理及應(yīng)用-數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view12/M08/23/37/wKhkGWcBeUiASdgLAACNDSbkz1o4515.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)目錄01數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)概述02需求分析03概念結(jié)構(gòu)設(shè)計(jì)04邏輯結(jié)構(gòu)設(shè)計(jì)05物理結(jié)構(gòu)設(shè)計(jì)06數(shù)據(jù)庫實(shí)施07數(shù)據(jù)庫運(yùn)行和維護(hù)本章主要內(nèi)容
本章主要介紹數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的整體過程及具體設(shè)計(jì)過程中使用的相關(guān)方法和技術(shù)。從數(shù)據(jù)庫設(shè)計(jì)的概念出發(fā),引出了數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的內(nèi)容、特點(diǎn)、使用的方法、基本過程和步驟;重點(diǎn)介紹需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù)等階段的具體設(shè)計(jì)內(nèi)容和步驟,并詳細(xì)介紹需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)的模型設(shè)計(jì)方法和模型創(chuàng)建步驟。準(zhǔn)備知識模型是對事物、對象、過程等客觀系統(tǒng)中人們感興趣的內(nèi)容的模擬和抽象表達(dá),是理解系統(tǒng)的思維工具。數(shù)據(jù)模型也是一種模型,是計(jì)算機(jī)世界對現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象、表示和處理的工具。數(shù)據(jù)庫不僅要反映數(shù)據(jù)本身內(nèi)容,而且要反映數(shù)據(jù)之間的聯(lián)系,而這種模擬是通過數(shù)據(jù)模型實(shí)現(xiàn)的。數(shù)據(jù)模型是數(shù)據(jù)庫的框架,是數(shù)據(jù)庫的核心和基礎(chǔ)。數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)概述015.1.1數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的內(nèi)容數(shù)據(jù)庫設(shè)計(jì)是根據(jù)用戶需求研制數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的過程。數(shù)據(jù)庫設(shè)計(jì)人員基于給定的應(yīng)用環(huán)境,運(yùn)用數(shù)據(jù)庫設(shè)計(jì)的相關(guān)方法和技術(shù),建立一個性能良好的、能滿足不同用戶使用要求又能被選定的數(shù)據(jù)庫管理系統(tǒng)接受的數(shù)據(jù)庫系統(tǒng)模式。數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)包含數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)兩方面內(nèi)容。1.數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)是指針對特定的應(yīng)用環(huán)境,進(jìn)行數(shù)據(jù)庫模式設(shè)計(jì)的過程,包括數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)。數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)的過程是:設(shè)計(jì)人員首先將現(xiàn)實(shí)世界中的實(shí)體、實(shí)體間的聯(lián)系用E-R圖表示,再將各個E-R圖匯總,得出數(shù)據(jù)庫的概念結(jié)構(gòu)模型;然后,將概念結(jié)構(gòu)模型轉(zhuǎn)化為數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型表示;最后,把數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型進(jìn)行物理實(shí)現(xiàn),獲得數(shù)據(jù)庫系統(tǒng)的存儲模式和存取方法。數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)又稱為數(shù)據(jù)庫系統(tǒng)的靜態(tài)結(jié)構(gòu)設(shè)計(jì)。2.數(shù)據(jù)庫系統(tǒng)的行為設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)的行為設(shè)計(jì)的概念:設(shè)計(jì)者確定數(shù)據(jù)庫用戶的行為和動作的過程。其中數(shù)據(jù)庫用戶的行為和動作是指用戶對數(shù)據(jù)進(jìn)行的查詢和統(tǒng)計(jì)、事務(wù)處理及報(bào)表處理等操作。數(shù)據(jù)庫系統(tǒng)的行為設(shè)計(jì)步驟是:將現(xiàn)實(shí)世界中的數(shù)據(jù)對象及使用情況用數(shù)據(jù)流圖和數(shù)據(jù)字典表示,詳細(xì)描述在特定應(yīng)用環(huán)境下各種用戶對數(shù)據(jù)的操作要求(包括操作對象、方法、頻度和實(shí)時(shí)性要求),進(jìn)而得出系統(tǒng)的層次結(jié)構(gòu),確定系統(tǒng)的功能模塊結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)的子模式和系統(tǒng)數(shù)據(jù)流圖。數(shù)據(jù)庫的行為設(shè)計(jì)也被稱為數(shù)據(jù)庫的動態(tài)結(jié)構(gòu)設(shè)計(jì)。5.1.2數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的特點(diǎn)數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的過程是一個自頂向下、逐步求精的過程。概況起來,數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)具有綜合性、結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)相互分離又緊密聯(lián)系兩個基本特點(diǎn)。1.綜合性數(shù)據(jù)庫系統(tǒng)設(shè)計(jì),既要完成后臺數(shù)據(jù)庫創(chuàng)建工作(是數(shù)據(jù)庫工程),也要完成前端應(yīng)用軟件的開發(fā)工作(是軟件工程)。數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)涉及的知識領(lǐng)域廣,不僅包含計(jì)算機(jī)專業(yè)知識,還包含應(yīng)用系統(tǒng)的業(yè)務(wù)領(lǐng)域知識;同時(shí)它還要解決技術(shù)及非技術(shù)兩方面的問題?!叭旨夹g(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)”是數(shù)據(jù)庫設(shè)計(jì)的基本規(guī)律。數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的管理人員要加強(qiáng)管理和控制,做好基礎(chǔ)數(shù)據(jù)的收集、入庫工作。2.結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)相互分離又緊密聯(lián)系結(jié)構(gòu)設(shè)計(jì)是指數(shù)據(jù)庫的模式結(jié)構(gòu)設(shè)計(jì)和物理實(shí)現(xiàn),它包括概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)。行為設(shè)計(jì)是指應(yīng)用程序設(shè)計(jì),包括功能組織、流程控制等方面的設(shè)計(jì)。數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)人員應(yīng)當(dāng)具有戰(zhàn)略眼光,考慮到當(dāng)前、近期和遠(yuǎn)期3個時(shí)段的用戶需求。5.1.3數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的方法為了使數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)更合理、更有效,在數(shù)據(jù)庫設(shè)計(jì)的過程中需要有效的指導(dǎo)原則,這種原則被稱為數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)方法。數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)方法主要分為直觀設(shè)計(jì)法、規(guī)范設(shè)計(jì)法和計(jì)算機(jī)輔助設(shè)計(jì)法3類。1.直觀設(shè)計(jì)法又稱手工試湊法。特點(diǎn):依賴于設(shè)計(jì)者的經(jīng)驗(yàn)和技術(shù)水平。不足:缺乏科學(xué)理論和工程方法的支持,設(shè)計(jì)的質(zhì)量很難保證。2.規(guī)范設(shè)計(jì)法新奧爾良方法:將數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)分成需求分析(分析用戶需求的數(shù)據(jù)及數(shù)據(jù)的聯(lián)系)、概念結(jié)構(gòu)設(shè)計(jì)(信息分析和定義)、邏輯結(jié)構(gòu)設(shè)計(jì)(設(shè)計(jì)實(shí)現(xiàn))和物理結(jié)構(gòu)設(shè)計(jì)(物理數(shù)據(jù)庫設(shè)計(jì))4個階段。特點(diǎn):注重?cái)?shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)不足:忽略了數(shù)據(jù)庫系統(tǒng)用戶在使用數(shù)據(jù)庫時(shí)進(jìn)行的查詢、統(tǒng)計(jì)、事務(wù)處理和報(bào)表處理等操作。2.規(guī)范設(shè)計(jì)法改進(jìn)新奧爾良方法:把數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)分為需求分析、結(jié)構(gòu)設(shè)計(jì)、行為設(shè)計(jì)、數(shù)據(jù)庫實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù)5個階段。其中,結(jié)構(gòu)設(shè)計(jì)包含概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)3個階段;行為設(shè)計(jì)包含應(yīng)用系統(tǒng)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼與實(shí)現(xiàn)3個階段。特點(diǎn):數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)包括設(shè)計(jì)系統(tǒng)開發(fā)的全過程,具有綜合性、結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)相互分離又緊密聯(lián)系兩個基本特點(diǎn)。3.計(jì)算機(jī)輔助設(shè)計(jì)法計(jì)算機(jī)輔助設(shè)計(jì)法:設(shè)計(jì)人員以過往的知識或經(jīng)驗(yàn)為主導(dǎo),在數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的某些過程中使用相關(guān)自動化技術(shù)和工具模擬某一方面的規(guī)范化設(shè)計(jì)工作,通過人機(jī)交互方式實(shí)現(xiàn)設(shè)計(jì)中的某些部分的方法。計(jì)算機(jī)輔助軟件如Sybase公司的PowerDesigner、卓軟公司的Navicat等。5.1.4數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的基本過程和步驟數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)包括數(shù)據(jù)庫靜態(tài)結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫動態(tài)行為設(shè)計(jì)2方面內(nèi)容。1.數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的基本過程首先對待開發(fā)的現(xiàn)實(shí)世界中給定的數(shù)據(jù)庫應(yīng)用環(huán)境進(jìn)行數(shù)據(jù)分析和用戶業(yè)務(wù)活動分析,得到系統(tǒng)的數(shù)據(jù)需求和業(yè)務(wù)需求。然后對數(shù)據(jù)需求進(jìn)行結(jié)構(gòu)設(shè)計(jì),包括概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)和用戶子模式設(shè)計(jì);同時(shí),設(shè)計(jì)人員對業(yè)務(wù)需求進(jìn)行行為設(shè)計(jì),包括功能分析、創(chuàng)建功能模型,事務(wù)設(shè)計(jì)、應(yīng)用程序設(shè)計(jì)。之后,設(shè)計(jì)人員加載試驗(yàn)數(shù)據(jù),調(diào)試和運(yùn)行數(shù)據(jù)庫系統(tǒng)。如果用戶對系統(tǒng)的運(yùn)行和性能表現(xiàn)不滿,則需要設(shè)計(jì)人員返回?cái)?shù)據(jù)庫系統(tǒng)設(shè)計(jì)的起始階段,對開發(fā)的現(xiàn)實(shí)世界中給定的數(shù)據(jù)庫應(yīng)用環(huán)境進(jìn)行第二次數(shù)據(jù)分析和用戶業(yè)務(wù)活動分析,重復(fù)上述過程,直到用戶對開發(fā)的系統(tǒng)運(yùn)行和性能表現(xiàn)滿意,并把開發(fā)的系統(tǒng)成功交付給用戶使用為止。2.數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的步驟和各階段要完成的工作應(yīng)用軟件系統(tǒng)開發(fā)方法分兩種,一是結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)方法,二是面向?qū)ο蟮能浖_發(fā)方法。使用結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)方法進(jìn)行數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)時(shí),數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)分為需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施及數(shù)據(jù)庫運(yùn)行和維護(hù)6個步驟。需求分析階段深入了解待開發(fā)系統(tǒng)的行業(yè)背景、業(yè)務(wù)領(lǐng)域知識及業(yè)務(wù)處理流程,分析最終用戶對系統(tǒng)的要求和需要,弄清系統(tǒng)要達(dá)到的業(yè)務(wù)目標(biāo)和實(shí)現(xiàn)的功能,形成經(jīng)過各方(包括用戶代表、行業(yè)評審專家、開發(fā)設(shè)計(jì)人員、軟件測試人員等)簽字認(rèn)可的需求規(guī)格說明書。概念結(jié)構(gòu)設(shè)計(jì)階段以需求規(guī)格說明書為基礎(chǔ)對用戶需求進(jìn)行歸納、抽象和綜合,設(shè)計(jì)出一個獨(dú)立于計(jì)算機(jī)硬件和具體數(shù)據(jù)庫管理系統(tǒng)等相關(guān)軟件的概念模型。邏輯結(jié)構(gòu)設(shè)計(jì)階段選定一個具體的數(shù)據(jù)庫管理系統(tǒng)(常用的有SQLServer、Oracle、MySQL、Sybase等),將概念結(jié)構(gòu)轉(zhuǎn)換為該數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型;根據(jù)模型轉(zhuǎn)換規(guī)則和數(shù)據(jù)庫管理系統(tǒng)的要求與優(yōu)化方法,進(jìn)行邏輯結(jié)構(gòu)優(yōu)化,獲得系統(tǒng)優(yōu)化后的邏輯結(jié)構(gòu)。物理結(jié)構(gòu)設(shè)計(jì)階段為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括數(shù)據(jù)存儲位置、數(shù)據(jù)存儲結(jié)構(gòu)和存取方法。設(shè)計(jì)好物理結(jié)構(gòu)后,設(shè)計(jì)人員需要評價(jià)設(shè)計(jì),并進(jìn)行性能預(yù)測。如果用戶對數(shù)據(jù)庫的設(shè)計(jì)結(jié)構(gòu)和預(yù)期性能的表現(xiàn)不滿意,需要設(shè)計(jì)人員返回邏輯結(jié)構(gòu)設(shè)計(jì)階段,重新進(jìn)行邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì),修改邏輯模型,調(diào)整物理結(jié)構(gòu),直到滿意為止。數(shù)據(jù)庫實(shí)施階段運(yùn)用數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)操作語言和宿主語言,根據(jù)數(shù)據(jù)庫的邏輯設(shè)計(jì)結(jié)果和物理設(shè)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)庫,編寫與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫并進(jìn)行系統(tǒng)試運(yùn)行。數(shù)據(jù)庫運(yùn)行和維護(hù)階段對其結(jié)構(gòu)性能進(jìn)行評價(jià)、調(diào)整和修改。5.1.5數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)過程中所涉及的模式數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)各階段的設(shè)計(jì)成果需要從數(shù)據(jù)設(shè)計(jì)描述和處理設(shè)計(jì)描述兩方面進(jìn)行。設(shè)計(jì)階段設(shè)計(jì)成果描述數(shù)據(jù)處理需求分析數(shù)據(jù)字典、全系統(tǒng)中的數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲的描述數(shù)據(jù)流圖和判定表(判定樹)、數(shù)據(jù)字典中處理過程的描述概念結(jié)構(gòu)設(shè)計(jì)概念模型(E-R圖)系統(tǒng)說明書包括:新系統(tǒng)的要求、方案和概念圖;反映新系統(tǒng)信息流的數(shù)據(jù)流圖邏輯結(jié)構(gòu)設(shè)計(jì)某種數(shù)據(jù)模型、關(guān)系模型或非關(guān)系模型系統(tǒng)結(jié)構(gòu)圖(模塊結(jié)構(gòu))物理結(jié)構(gòu)設(shè)計(jì)存儲安排、方法選擇、存取路徑的建立模塊設(shè)計(jì)、IPO表數(shù)據(jù)庫實(shí)施編寫模式、裝入數(shù)據(jù)、數(shù)據(jù)庫試運(yùn)行程序編碼、編譯、連接、測試數(shù)據(jù)庫運(yùn)行和維護(hù)性能監(jiān)測、轉(zhuǎn)儲/恢復(fù)、數(shù)據(jù)庫重組和重構(gòu)新舊系統(tǒng)轉(zhuǎn)換、運(yùn)行、維護(hù)(修正性、適應(yīng)性、改善性維護(hù))數(shù)據(jù)庫的各級模式數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的不同階段對應(yīng)要完成的不同級別的數(shù)據(jù)模式設(shè)計(jì)。邏輯結(jié)構(gòu)設(shè)計(jì)階段,系統(tǒng)設(shè)計(jì)人員要先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,形成數(shù)據(jù)庫邏輯模式;然后再根據(jù)用戶處理的要求、安全性的考慮建立必要的數(shù)據(jù)視圖,形成數(shù)據(jù)的外模式。在物理結(jié)構(gòu)設(shè)計(jì)階段,要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)和處理的需要進(jìn)行物理存儲安排,并確定系統(tǒng)要建立的索引,得出數(shù)據(jù)庫的內(nèi)模式。需求分析025.2.1需求的類型需求可以分為業(yè)務(wù)需求、用戶需求和系統(tǒng)需求3類。(1)業(yè)務(wù)需求:從組織機(jī)構(gòu)的角度明確待開發(fā)系統(tǒng)的發(fā)展方向、工作內(nèi)容、目標(biāo)客戶和產(chǎn)品價(jià)值等。(2)用戶需求:從系統(tǒng)用戶的角度確定待開發(fā)系統(tǒng)需要完成的功能(或提供的服務(wù))和要達(dá)到的指標(biāo)或要求(例如性能、存儲空間要求、吞吐量、安全性、可靠性、容錯性)。(3)系統(tǒng)需求:從設(shè)計(jì)人員的角度詳細(xì)、準(zhǔn)確地描述系統(tǒng)應(yīng)該完成的功能和非功能性需求。5.2.1需求的類型需求分析是數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的基礎(chǔ),它的結(jié)果是否準(zhǔn)確,直接影響后續(xù)各個階段設(shè)計(jì)的正確性,設(shè)計(jì)管理人員一定要強(qiáng)調(diào)并認(rèn)真對待這個階段的工作。調(diào)查了解、收集并獲取不同角色用戶的需求。分析用戶需求,確定新系統(tǒng)的邊界。使用規(guī)格說明描述用戶需求,編寫系統(tǒng)分析報(bào)告。需求驗(yàn)證。5.2.2需求分析的步驟1.調(diào)查了解、收集并獲取不同角色用戶的需求首先,需要了解管理對象的組織機(jī)構(gòu)情況,弄清所設(shè)計(jì)的數(shù)據(jù)庫系統(tǒng)與哪些部門相關(guān),這些部門及下屬各個單位的聯(lián)系和職責(zé)是什么;其次,了解相關(guān)部門的業(yè)務(wù)活動情況。設(shè)計(jì)人員需要明確數(shù)據(jù)庫中的信息內(nèi)容、數(shù)據(jù)處理內(nèi)容,以及數(shù)據(jù)的安全性和完整性需求。2.分析用戶需求,確定新系統(tǒng)的邊界明確哪些功能現(xiàn)在就由計(jì)算機(jī)完成;哪些功能將來準(zhǔn)備讓計(jì)算機(jī)完成;哪些功能或活動由人工完成。3.使用規(guī)格說明描述用戶需求,編寫系統(tǒng)分析報(bào)告系統(tǒng)分析報(bào)告也稱為需求規(guī)格說明書,它是對需求分析階段的一個總結(jié)。編寫系統(tǒng)分析報(bào)告是一個不斷反復(fù)、逐步深入和逐步完善的過程。系統(tǒng)分析報(bào)告應(yīng)包括系統(tǒng)概況、系統(tǒng)的原理和技術(shù),以及對原系統(tǒng)的改善、系統(tǒng)總體結(jié)構(gòu)與子系統(tǒng)結(jié)構(gòu)說明、系統(tǒng)功能說明、數(shù)據(jù)處理概要、工程體制和設(shè)計(jì)階段的劃分、系統(tǒng)方案及技術(shù)、經(jīng)濟(jì)、功能和操作上的可行性6部分內(nèi)容。隨系統(tǒng)分析報(bào)告還需要提供系統(tǒng)的硬件、軟件支持環(huán)境的選擇及規(guī)格要求(所選擇的數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、漢字平臺、計(jì)算機(jī)型號及其網(wǎng)絡(luò)環(huán)境等)、組織機(jī)構(gòu)圖、組織之間的聯(lián)系圖和各機(jī)構(gòu)功能業(yè)務(wù)一覽圖、數(shù)據(jù)流圖、功能模塊圖和數(shù)據(jù)字典等圖表。4.需求驗(yàn)證完成系統(tǒng)的分析報(bào)告后,在項(xiàng)目單位的領(lǐng)導(dǎo)下,軟件開發(fā)項(xiàng)目組要組織有關(guān)技術(shù)專家評審系統(tǒng)分析報(bào)告,通過后,項(xiàng)目方和開發(fā)方的領(lǐng)導(dǎo)簽字認(rèn)可。5.2.3獲取需求的常用方法調(diào)查方法是設(shè)計(jì)人員獲取需求使用的重要手段,是設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)不可缺少的環(huán)節(jié)。在調(diào)查進(jìn)行之前,軟件開發(fā)機(jī)構(gòu)需要進(jìn)行一些必要的準(zhǔn)備工作,成立項(xiàng)目領(lǐng)導(dǎo)小組(包括客戶項(xiàng)目組和開發(fā)項(xiàng)目組)。在調(diào)查時(shí),設(shè)計(jì)人員需要深入到應(yīng)用待開發(fā)系統(tǒng)的組織機(jī)構(gòu)和業(yè)務(wù)領(lǐng)域,與具有業(yè)務(wù)領(lǐng)域知識和行業(yè)背景的人員反復(fù)溝通、確認(rèn),并用計(jì)算機(jī)知識和建模技術(shù)清晰、準(zhǔn)確地描述用戶需求,獲得用戶認(rèn)可的需求文檔。其中,用戶的積極參與配合是做好調(diào)查的關(guān)鍵。常用的調(diào)查方法(1)跟班作業(yè)調(diào)查法(2)開調(diào)查會(3)請專人介紹(4)填寫調(diào)查表(5)資料查閱5.2.4需求分析創(chuàng)建模型的方法為了準(zhǔn)確描述系統(tǒng)能夠“做什么”,方便設(shè)計(jì)人員、用戶及其他相關(guān)人員之間的溝通,設(shè)計(jì)人員需要使用相應(yīng)的需求建模方法創(chuàng)建需求模型(數(shù)據(jù)流圖和數(shù)字字典,或狀態(tài)轉(zhuǎn)換圖、序列圖、協(xié)作圖、類圖、部署圖等),從而真實(shí)、準(zhǔn)確、完整地描述目標(biāo)系統(tǒng)的業(yè)務(wù)需求和用戶需求。常用的需求建模方法有結(jié)構(gòu)化分析(StructuredAnalysis,SA)方法和面向?qū)ο蟮模∣bject-Oriented)方法。1.
結(jié)構(gòu)化分析方法由美國Yourdon公司和密歇根大學(xué)于20世紀(jì)70年代中期在開發(fā)ISDOS系統(tǒng)工具時(shí)提出。采用“自頂向下,化繁為簡,由外到內(nèi),逐層分解”的分治策略,把復(fù)雜的信息處理系統(tǒng)分解為若干個人們易于分析和描述的子系統(tǒng),用各方人員易于理解的數(shù)據(jù)流圖表示待開發(fā)系統(tǒng)的模型,驗(yàn)證模型是否滿足用戶對目標(biāo)系統(tǒng)的需求,并在設(shè)計(jì)過程中逐漸把與實(shí)現(xiàn)有關(guān)的細(xì)節(jié)加入模型中,直至最終使用程序?qū)崿F(xiàn)模型。分治策略示意圖如右所示。2.
面向?qū)ο蟮姆椒ɑ诿嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)思想,以統(tǒng)一建模語言(UnifiedModelingLanguage,UML)和相應(yīng)的需求建模工具(比較知名的有PowerDesigner、StarUML、NetbeansUMLPlugin、RationalRose等)為基礎(chǔ),從獲取到的需求信息中抽象出重點(diǎn)業(yè)務(wù)領(lǐng)域中的類與對象,確定類之間的關(guān)系,并建立簡單、準(zhǔn)確和易于理解的用例圖、序列圖、協(xié)作圖、狀態(tài)轉(zhuǎn)換圖、類圖、部署圖等需求模型。面向?qū)ο蟮姆椒ㄒ话惴謨蓚€步驟進(jìn)行需求建模:(1)問題分析階段(2)應(yīng)用分析階段5.2.5數(shù)據(jù)流圖數(shù)據(jù)流圖是描述系統(tǒng)內(nèi)部的業(yè)務(wù)處理流程,表達(dá)軟件系統(tǒng)功能需求的模型。它從數(shù)據(jù)傳遞、數(shù)據(jù)加工和數(shù)據(jù)存儲的角度,以圖形的方式刻畫數(shù)據(jù)從輸入到輸出的變換過程。1.
數(shù)據(jù)流圖的模型數(shù)據(jù)流圖模型示意圖:1.
數(shù)據(jù)流圖的模型數(shù)據(jù)流圖由4個基本元素組成。(1)數(shù)據(jù)源點(diǎn)和終點(diǎn):表示數(shù)據(jù)的來源和最終去向,通常用方框表示。它們均代表軟件系統(tǒng)外的實(shí)體,如用戶或其他軟件系統(tǒng)。(2)數(shù)據(jù)流:是一組數(shù)據(jù)項(xiàng)組成的數(shù)據(jù),通常用帶標(biāo)識的有向弧表示。(3)處理(也稱加工或變換):主要用于描述對數(shù)據(jù)進(jìn)行的操作或變換,通常用圓圈或橢圓表示。(4)文件(也稱數(shù)據(jù)存儲):是存放數(shù)據(jù)的邏輯單位,通常用圖形符號“
”“
”“
”分別表示加工寫文件、讀文件和讀寫文件。在相應(yīng)的圖形符號中還要給出文件名。1.
數(shù)據(jù)流圖的模型某培訓(xùn)中心學(xué)員報(bào)名繳費(fèi)信息管理系統(tǒng)的數(shù)據(jù)流圖1.
數(shù)據(jù)流圖的模型注意:(1)數(shù)據(jù)流可以由單個數(shù)據(jù)項(xiàng)組成,也可以由一組數(shù)據(jù)項(xiàng)組成;另外,數(shù)據(jù)流要有一個合適的名字。(2)數(shù)據(jù)流可以從處理流向處理,從源點(diǎn)流向處理,從處理流向終點(diǎn),從處理流向文件,從文件流向處理。(3)從處理流向文件或從文件流向處理的數(shù)據(jù)流可不指定數(shù)據(jù)流名,給出文件名即可。(4)兩個處理之間允許有多股數(shù)據(jù)流。數(shù)據(jù)流不分先后次序,處理只描述具體功能——“做什么”,不需要考慮“怎么做”。2.
分層的數(shù)據(jù)流圖對于較為復(fù)雜的問題的數(shù)據(jù)處理過程,用一個數(shù)據(jù)流圖往往不夠,這是因?yàn)橛靡粋€圖表示全部數(shù)據(jù)處理過程會面臨兩個問題:(1)數(shù)據(jù)處理過程多而復(fù)雜,不容易理解(2)如果系統(tǒng)過于復(fù)雜,數(shù)據(jù)流圖占用的篇幅過大,難以表示全部數(shù)據(jù)處理過程。為了準(zhǔn)確、清晰、簡單地表示數(shù)據(jù)處理過程,一般采用化繁為簡、逐層分解的方法,用分層的數(shù)據(jù)流圖來反映待開發(fā)系統(tǒng)的層次結(jié)構(gòu)。2.
分層的數(shù)據(jù)流圖根據(jù)層次關(guān)系,一般將數(shù)據(jù)流圖分為頂層數(shù)據(jù)流圖、中間層數(shù)據(jù)流圖和底層數(shù)據(jù)流圖。(1)頂層數(shù)據(jù)流圖(又稱0層數(shù)據(jù)流圖):用于表示系統(tǒng)的邊界,即系統(tǒng)的輸入/輸出。頂層數(shù)據(jù)流圖需要抽象出與待開發(fā)系統(tǒng)交互的外部實(shí)體(即數(shù)據(jù)源點(diǎn)與終點(diǎn))及待開發(fā)系統(tǒng)的處理名稱。(2)中間層數(shù)據(jù)流圖:把上一層的數(shù)據(jù)處理過程進(jìn)一步分解,描述外部實(shí)體與具體處理過程中涉及的數(shù)據(jù)流入、流出、存儲、加工或轉(zhuǎn)換過程。其組成部分可進(jìn)一步細(xì)分。(3)底層數(shù)據(jù)流圖:由一些不可再分的處理組成,這些處理功能單一、含義明確、足夠簡單,也稱為基本處理。2.
分層的數(shù)據(jù)流圖逐層分解的目的是把復(fù)雜的處理分解成比較簡單和易于理解的基本處理,但分解的層次不宜太深,否則會影響數(shù)據(jù)流圖的可理解性,一般分解的層次不宜超過7層或8層。達(dá)到底層的分解標(biāo)準(zhǔn),要滿足兩個條件:(1)處理用幾句或十幾句話就可以準(zhǔn)確、清晰地描述其含義。(2)一個處理只有一個輸入流和一個輸出流。3.
分層數(shù)據(jù)流圖的繪制方法一般來說,繪制分層數(shù)據(jù)流圖分為3個步驟。(1)確定待開發(fā)系統(tǒng)的輸入/輸出數(shù)據(jù)流、數(shù)據(jù)的源點(diǎn)和終點(diǎn)。(2)將基本系統(tǒng)模型加上源點(diǎn)和終點(diǎn),構(gòu)成頂層數(shù)據(jù)流圖。(3)按照分層原則,繪制各層的數(shù)據(jù)流圖。3.
分層數(shù)據(jù)流圖的繪制方法繪制各層的數(shù)據(jù)流圖時(shí)需要遵循以下原則。(1)對組織機(jī)構(gòu)中開展的業(yè)務(wù)進(jìn)行功能分析和過程分析,從中抽象出重點(diǎn)業(yè)務(wù)中的基本概念、屬性和操作,集中精力找出數(shù)據(jù)流。(2)找到數(shù)據(jù)流后,標(biāo)識該數(shù)據(jù)流,然后分析該數(shù)據(jù)流的組成成分及來去方向,并將其與處理連接。標(biāo)識處理,繼續(xù)尋找其他的數(shù)據(jù)流。(3)當(dāng)處理需要用到共享和暫存數(shù)據(jù)時(shí),設(shè)置文件及其標(biāo)識。(4)分析處理的內(nèi)部,如果處理還比較抽象或其內(nèi)部還有數(shù)據(jù)流,需要將該處理進(jìn)一步分解,直到達(dá)到底層圖。(5)為所有的數(shù)據(jù)流命名。(6)為所有的處理編號。編號方法:處理編號應(yīng)從第1層開始,處理的編號按順序?yàn)?、2、3、…;對于子圖的編號,通常是父類圖中相應(yīng)被分解處理的編號+小數(shù)點(diǎn)號+子圖中局部處理的順序號。(7)將所有軟件的輸入/輸出數(shù)據(jù)流用一連串處理連接起來。(8)頂層數(shù)據(jù)流圖只有一個,只有一個處理,該加工不用編號。3.
分層數(shù)據(jù)流圖的繪制方法例:繪制教務(wù)管理系統(tǒng)數(shù)據(jù)流圖用戶需求描述如下:(1)學(xué)生的需求:選課,查看自己的選課情況、課表及課程成績。(2)教師的需求:能查看自己的個人信息、授課課表、所授課班級的所有學(xué)生的名單,并提交課程成績。(3)系統(tǒng)管理員的需求:對院系信息、學(xué)生信息、教師信息、課程信息、教室信息及學(xué)生選課信息進(jìn)行管理。(4)學(xué)院管理員的需求:管理開課信息、教師授課信息。3.
分層數(shù)據(jù)流圖的繪制方法教務(wù)管理系統(tǒng)的業(yè)務(wù)流程:(1)超級教務(wù)管理員設(shè)置院系信息(包含院系編號、院系名、院系位置、院系辦公電話等信息)、學(xué)生信息(包括學(xué)號、姓名、性別、年齡、系編號等信息)、教師信息(包括教工號、姓名、性別、入職日期、職稱、系編號等信息)、課程信息(包括課程號、課程名稱、課程類型、學(xué)時(shí)、學(xué)分等信息)、教室信息(包括教室號、教室類別、地點(diǎn)、容量等信息)等。(2)一般學(xué)院管理員設(shè)置每個班級的每門課程的任課教師。(3)超級教務(wù)管理員編排課表,生成教師授課表(教工號,課程號)。(4)學(xué)生選課。(5)選課后,生成學(xué)生選課表(學(xué)號,課程號,成績)。(6)教師錄入成績,發(fā)布、查看、打印成績。(7)學(xué)生查看課程成績信息。(8)一些限制規(guī)定:3.
分層數(shù)據(jù)流圖的繪制方法教務(wù)管理系統(tǒng)的頂層數(shù)據(jù)流圖:3.
分層數(shù)據(jù)流圖的繪制方法教務(wù)管理系統(tǒng)的1層數(shù)據(jù)流圖:3.
分層數(shù)據(jù)流圖的繪制方法教務(wù)管理系統(tǒng)的2層數(shù)據(jù)流圖:3.
分層數(shù)據(jù)流圖的繪制方法教務(wù)管理系統(tǒng)的2層數(shù)據(jù)流圖:5.2.6數(shù)據(jù)字典數(shù)據(jù)字典是數(shù)據(jù)流圖中涉及的各類數(shù)據(jù)的集合,即對元數(shù)據(jù)的描述,它從數(shù)據(jù)含義、數(shù)據(jù)結(jié)構(gòu)組成和屬性等方面對數(shù)據(jù)進(jìn)行詳細(xì)的描述,與數(shù)據(jù)流圖互為注釋。數(shù)據(jù)字典通常包含數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程5部分內(nèi)容。1.
數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)是組成數(shù)據(jù)的最小單位,不可再分。一個數(shù)據(jù)項(xiàng)由數(shù)據(jù)項(xiàng)名、數(shù)據(jù)項(xiàng)含義說明、別名、數(shù)據(jù)類型、長度、取值范圍、與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系7部分組成;其中,“取值范圍”和“與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系”兩項(xiàng)定義了數(shù)據(jù)的完整性約束條件,它們是設(shè)計(jì)數(shù)據(jù)完整性檢驗(yàn)功能的依據(jù)。2.
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)項(xiàng)之間的組合關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項(xiàng)組成,也可以由若干個數(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部分組成。3.
數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?,它由?shù)據(jù)流名、說明、數(shù)據(jù)流來源、數(shù)據(jù)流去向、數(shù)據(jù)結(jié)構(gòu)組成、平均流量、高峰期流量7部分組成。其中,“流出過程”說明該數(shù)據(jù)流來自哪個過程;“流入過程”說明該數(shù)據(jù)流將到哪個過程中去;“平均流量”是指在單位時(shí)間(每天、每周、每月等)里傳輸?shù)拇螖?shù);“高峰期流量”是指在高峰時(shí)期的數(shù)據(jù)流量。4.
數(shù)據(jù)存儲數(shù)據(jù)存儲是數(shù)據(jù)及其結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。一個數(shù)據(jù)存儲通常由數(shù)據(jù)存儲名、說明、編號、輸入的數(shù)據(jù)流、輸出的數(shù)據(jù)流、數(shù)據(jù)結(jié)構(gòu)組成、數(shù)據(jù)量、存取頻度和存取方式9部分組成。其中,“數(shù)據(jù)量”說明每次存取多少數(shù)據(jù);“存取頻度”指每小時(shí)或每天或每周存取幾次、每次存取多少數(shù)據(jù)等信息;“存取方式”指是批處理還是聯(lián)機(jī)處理,是檢索還是更新,是順序檢索還是隨機(jī)檢索等;“輸入的數(shù)據(jù)流”指出數(shù)據(jù)的來源處;“輸出的數(shù)據(jù)流”指出數(shù)據(jù)的去向處。5.
處理過程處理過程是對數(shù)據(jù)流圖中處理過程的描述性說明信息,一般需要結(jié)合判定表、判定樹、IPO圖等工具來描述具體處理邏輯。一個處理過程通常由處理過程名、說明、輸入的數(shù)據(jù)流、輸出的數(shù)據(jù)流、處理的簡要說明5部分組成。其中,“簡要說明”中主要說明該處理過程用來做什么,而不是怎么做及處理頻度要求,如單位時(shí)間里處理多少事務(wù)、多少數(shù)據(jù)量、響應(yīng)時(shí)間要求等。3.
數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?,它由?shù)據(jù)流名、說明、數(shù)據(jù)流來源、數(shù)據(jù)流去向、數(shù)據(jù)結(jié)構(gòu)組成、平均流量、高峰期流量7部分組成。其中,“流出過程”說明該數(shù)據(jù)流來自哪個過程;“流入過程”說明該數(shù)據(jù)流將到哪個過程中去;“平均流量”是指在單位時(shí)間(每天、每周、每月等)里傳輸?shù)拇螖?shù);“高峰期流量”是指在高峰時(shí)期的數(shù)據(jù)流量。概念結(jié)構(gòu)設(shè)計(jì)035.3.1概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn)(1)概念模型是現(xiàn)實(shí)世界真實(shí)模型的一個抽象表示,應(yīng)客觀真實(shí)、完整細(xì)致地表示現(xiàn)實(shí)世界,以滿足用戶對數(shù)據(jù)的處理要求。(2)概念模型應(yīng)易于理解。(3)概念模型應(yīng)易于修改和擴(kuò)充。(4)概念模型應(yīng)易于向數(shù)據(jù)模型轉(zhuǎn)換。5.3.2概念結(jié)構(gòu)設(shè)計(jì)使用的方法概念結(jié)構(gòu)設(shè)計(jì)通常有自頂向下、自底向上、由里向外逐步擴(kuò)張和混合策略4種設(shè)計(jì)方法。(1)自頂向下:首先定義總體概念結(jié)構(gòu)框架,然后逐步細(xì)化,直至形成完整的總體概念結(jié)構(gòu)模型。(2)自底向上:首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)模型。(3)有里向外逐步擴(kuò)張:首先定義核心業(yè)務(wù)的概念結(jié)構(gòu),然后逐步向外擴(kuò)展,生成其他業(yè)務(wù)的概念結(jié)構(gòu),直至完成總體概念結(jié)構(gòu)設(shè)計(jì)。(4)混合策略:它采用自頂向下與自底向上相結(jié)合的方法,首先用自頂向下策略設(shè)計(jì)一個總體概念結(jié)構(gòu)框架,然后以它為骨架,通過自底向上策略設(shè)計(jì)各個局部應(yīng)用的概念結(jié)構(gòu)。5.3.2概念結(jié)構(gòu)設(shè)計(jì)使用的方法概念結(jié)構(gòu)設(shè)計(jì)自頂向下、自底向上示意圖:5.3.3概念結(jié)構(gòu)設(shè)計(jì)的步驟采用自底向上的設(shè)計(jì)方法,獲得概念結(jié)構(gòu)的步驟如下:(1)根據(jù)需求分析階段得到的數(shù)據(jù)流圖和數(shù)據(jù)字典,進(jìn)行數(shù)據(jù)抽象并設(shè)計(jì)局部視圖(E-R圖)。(2)集成局部視圖,得到全局概念結(jié)構(gòu)。(3)對全局概念結(jié)構(gòu)進(jìn)行優(yōu)化,直到用戶滿意為止。概念結(jié)構(gòu)設(shè)計(jì)的步驟如右圖所示。5.3.4局部E-R圖設(shè)計(jì)E-R圖(Entity-RelationshipDiagram):又稱實(shí)體聯(lián)系圖或?qū)嶓w關(guān)聯(lián)圖,它由實(shí)體、實(shí)體間的聯(lián)系和屬性3個基本成分組成,用于描述系統(tǒng)的數(shù)據(jù)及數(shù)據(jù)間的聯(lián)系。(1)實(shí)體是數(shù)據(jù)項(xiàng)(也就是屬性)的集合,通常用矩形框表示,框內(nèi)標(biāo)注實(shí)體名稱。(2)屬性是定義實(shí)體的性質(zhì),通常用橢圓或圓角矩形框表示,框內(nèi)標(biāo)注屬性名稱。(3)聯(lián)系是指實(shí)體之間相互連接的方式,它確定了實(shí)體間邏輯上和數(shù)量上的聯(lián)系,也稱為關(guān)系、關(guān)聯(lián)。通常用菱形框表示聯(lián)系,并用直線連接有聯(lián)系的實(shí)體。聯(lián)系有3種類型:一對一聯(lián)系(1∶1)、一對多聯(lián)系(1∶n)和多對多聯(lián)系(m∶n)。說明:聯(lián)系也可以有屬性。5.3.4局部E-R圖設(shè)計(jì)數(shù)據(jù)抽象:總結(jié)現(xiàn)實(shí)世界中具有共同特性實(shí)體的特征,忽略非本質(zhì)的細(xì)節(jié),并把這些共同特性用各種概念精確地加以描述,形成某種模型。數(shù)據(jù)抽象有3種基本方法:(1)分類:抽象了具體數(shù)據(jù)對象和類之間的“成員”語義,它針對現(xiàn)實(shí)世界中具有某些共同特性和行為的一組對象,定義類型概念模型,用共同特性作為該類的屬性,行為作為該類與其他類發(fā)生的聯(lián)系。在E-R圖中,實(shí)體集就是這種抽象。(2)聚集:抽象了對象所屬類型和對象內(nèi)部“組成成分”的語義,用于定義某一類型的組成成分(即屬性),若干屬性的聚集組成了實(shí)體型。(3)概括:抽象了類型之間的“所屬”的語義,它定義了類型之間的父子聯(lián)系。在E-R圖中用雙豎邊的矩形框表示子類,用直線加小圓圈表示父類—子類的聯(lián)系。5.3.4局部E-R圖設(shè)計(jì)【例5.1】用分類方法設(shè)計(jì)教務(wù)管理系統(tǒng)中的教師實(shí)體。5.3.4局部E-R圖設(shè)計(jì)【例5.2】用聚集方法設(shè)計(jì)教師實(shí)體的詳細(xì)屬性?!纠?.3】用聚集方法設(shè)計(jì)部門實(shí)體的詳細(xì)屬性。5.3.4局部E-R圖設(shè)計(jì)【例5.4】用概括方法設(shè)計(jì)“教師”實(shí)體與“教輔人員”“實(shí)驗(yàn)員”和“行政管理人員”等實(shí)體間的聯(lián)系。5.3.4局部E-R圖設(shè)計(jì)局部E-R圖的設(shè)計(jì)步驟:(1)選擇適當(dāng)層次的數(shù)據(jù)流圖,確定設(shè)計(jì)局部E-R圖的范圍。(2)逐步設(shè)計(jì)局部E-R圖。5.3.4局部E-R圖設(shè)計(jì)【例5.5】根據(jù)教務(wù)管理系統(tǒng)數(shù)據(jù)流圖設(shè)計(jì)局部E-R圖。(1)選擇適當(dāng)層次的數(shù)據(jù)流圖,確定設(shè)計(jì)局部E-R圖的范圍。本例中,選擇第2層數(shù)據(jù)流圖,以學(xué)生選課模塊為核心進(jìn)行局部E-R圖設(shè)計(jì),并根據(jù)數(shù)據(jù)字典確定局部E-R圖的邊界。(2)識別實(shí)體、屬性,確定實(shí)體間的聯(lián)系。5.3.4局部E-R圖設(shè)計(jì)【例5.5】根據(jù)教務(wù)管理系統(tǒng)數(shù)據(jù)流圖設(shè)計(jì)局部E-R圖。(1)以學(xué)生選課模塊為核心進(jìn)行局部E-R圖設(shè)計(jì),該局部E-R圖涉及的實(shí)體有:學(xué)生、課程和教師。(2)各實(shí)體包含的屬性:學(xué)生實(shí)體有學(xué)號、姓名、性別、年齡和系編號5個屬性;課程實(shí)體有課程號、課程名稱、課程類別、學(xué)時(shí)和學(xué)分5個屬性;教師實(shí)體有教工號、姓名、性別、入職日期、職稱和系別號6個屬性。(3)實(shí)體間的聯(lián)系:學(xué)生與課程實(shí)體間的選修聯(lián)系(n∶m)、教師與課程實(shí)體間的講授聯(lián)系(m∶n)、......5.3.4局部E-R圖設(shè)計(jì)【例5.5】根據(jù)教務(wù)管理系統(tǒng)數(shù)據(jù)流圖設(shè)計(jì)局部E-R圖。
院系-專業(yè)-班級局部E-R圖5.3.4局部E-R圖設(shè)計(jì)【例5.5】根據(jù)教務(wù)管理系統(tǒng)數(shù)據(jù)流圖設(shè)計(jì)局部E-R圖。
院系-教師-職稱局部E-R圖5.3.4局部E-R圖設(shè)計(jì)【例5.5】根據(jù)教務(wù)管理系統(tǒng)數(shù)據(jù)流圖設(shè)計(jì)局部E-R圖。
班級-學(xué)生-課程局部E-R圖5.3.4局部E-R圖設(shè)計(jì)【例5.5】根據(jù)教務(wù)管理系統(tǒng)數(shù)據(jù)流圖設(shè)計(jì)局部E-R圖。
學(xué)生-課程-教師局部E-R圖5.3.4局部E-R圖設(shè)計(jì)【例5.5】根據(jù)教務(wù)管理系統(tǒng)數(shù)據(jù)流圖設(shè)計(jì)局部E-R圖。
學(xué)生-課程-教師局部E-R圖5.3.4局部E-R圖設(shè)計(jì)實(shí)體設(shè)計(jì)遵從以下原則:(1)實(shí)體要盡可能少。(2)只考慮系統(tǒng)范圍內(nèi)的屬性。屬性設(shè)計(jì)遵從以下原則:(1)屬性必須是不可再分的,它不能再包含其他的屬性;(2)屬性不能和其他任何實(shí)體發(fā)生聯(lián)系。5.3.4局部E-R圖設(shè)計(jì)實(shí)體設(shè)計(jì)遵從以下原則:(1)實(shí)體要盡可能少。(2)只考慮系統(tǒng)范圍內(nèi)的屬性。屬性設(shè)計(jì)遵從以下原則:(1)屬性必須是不可再分的,它不能再包含其他的屬性;(2)屬性不能和其他任何實(shí)體發(fā)生聯(lián)系。5.3.4局部E-R圖設(shè)計(jì)【例5.6】將教師實(shí)體中的職稱屬性轉(zhuǎn)換為職稱實(shí)體。
職稱屬性轉(zhuǎn)換為職稱實(shí)體5.3.4局部E-R圖設(shè)計(jì)【例5.7】將病人實(shí)體的病房屬性轉(zhuǎn)換為病房實(shí)體。
病房屬性轉(zhuǎn)換為病房實(shí)體5.3.5總體E-R圖設(shè)計(jì)集成局部E-R圖,設(shè)計(jì)總體E-R圖時(shí)的步驟如下:(1)合并分E-R圖,解決沖突問題,生成初步E-R圖。(2)重構(gòu)初步E-R圖,消除冗余,得到總體E-R圖1.合并分E-R圖時(shí)的沖突及其解決方法合并分E-R圖時(shí)的沖突:各局部E-R圖存在許多不一致的地方。沖突主要有3種類型:(1)屬性沖突(2)命名沖突(3)結(jié)構(gòu)沖突屬性沖突屬性沖突主要包括以下兩種類型:①
屬性域沖突。屬性域沖突又分為同一屬性的類型、取值范圍和取值集合3種情況。②
屬性取值單位沖突。例如:學(xué)生的學(xué)號,有的部門定義為整型,而有的部門定義為字符串類型,這就是類型沖突。命名沖突命名沖突主要包括以下兩種類型:①
同名異義沖突②異名同義沖突。結(jié)構(gòu)沖突結(jié)構(gòu)沖突主要以下3種類型。①
同一對象在不同的E-R圖中具有不同的抽象,有的圖中將其作為屬性,有的圖中將其作為實(shí)體。②同一實(shí)體在不同的E-R圖中其屬性的個數(shù)和排列順序不完全一樣。③兩個實(shí)體在不同的局部E-R圖中具有不同的聯(lián)系類型。舉例將例5.5中教務(wù)管理系統(tǒng)的各局部E-R圖合并生成全局E-R圖。(1)將院系-專業(yè)-班級局部E-R圖與院系-教師-職稱局部E-R圖合并。舉例將例5.5中教務(wù)管理系統(tǒng)的各局部E-R圖合并生成全局E-R圖。(2)將班級-學(xué)生-課程局部E-R圖和合并后的院系-專業(yè)-班級-教師-職稱局部E-R圖合并。舉例將例5.5中教務(wù)管理系統(tǒng)的各局部E-R圖合并生成全局E-R圖。(3)將學(xué)生-課程-教師局部E-R圖和合并后的院系-專業(yè)-班級-教師-職稱-學(xué)生-課程局部E-R圖合并?!纠?.8】將在線點(diǎn)餐系統(tǒng)的各局部E-R圖合并生成全局E-R圖。在線點(diǎn)餐系統(tǒng)的各局部E-R圖包括區(qū)域-餐廳-菜品、顧客-菜品和送餐員-派送單3個局部E-R圖,參見教材圖5.29~圖5.31?!纠?.8】在線點(diǎn)餐系統(tǒng)全局E-R圖的設(shè)計(jì)步驟如下。(1)將區(qū)域-餐廳-菜品局部E-R圖與顧客-菜品局部E-R圖合并。其中涉及將訂單由屬性改為實(shí)體。(2)將圖5.33所示的E-R圖繼續(xù)與送餐員-派送單局部E-R圖進(jìn)行合并。其中需要處理命名沖突和結(jié)構(gòu)沖突兩個問題。2.總體E-R圖的優(yōu)化優(yōu)化總體E-R圖的目的:盡量避免冗余信息冗余:是指冗余數(shù)據(jù)或?qū)嶓w間的冗余聯(lián)系。(1)冗余數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù)(2)冗余聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系。消除冗余的方法:(1)合并相關(guān)實(shí)體(2)消除冗余屬性(3)消除冗余聯(lián)系合并相關(guān)實(shí)體合并實(shí)體時(shí)一般選擇具有相同主碼,或者是具有一對一聯(lián)系的兩個實(shí)體合并。并不是所有的類似情況都一定要進(jìn)行合并,而是要根據(jù)具體情況衡量。例如:病人和病歷實(shí)體消除冗余屬性冗余屬性的出現(xiàn)有以下兩種情況:(1)相同的非主屬性出現(xiàn)在了幾個不同實(shí)體中。(2)一個屬性雖然和其他屬性沒有重復(fù),但是它的值可以通過其他屬性值計(jì)算或推導(dǎo)得出。例如:學(xué)生實(shí)體的出生日期屬性和年齡屬性消除冗余聯(lián)系冗余聯(lián)系的出現(xiàn)有以下兩種情況。(1)不同的聯(lián)系出現(xiàn)在了兩個有關(guān)聯(lián)的實(shí)體中。(2)在3個及3個以上有關(guān)聯(lián)實(shí)體的E-R圖中,2個實(shí)體間的聯(lián)系可以通過其他屬性值計(jì)算推導(dǎo)得出冗余屬性,此時(shí)的聯(lián)系就是冗余聯(lián)系。【例5.9】消除圖5.35所示的職工-部門E-R圖中存在的冗余聯(lián)系?!纠?.10】消除倉庫-材料-零件-產(chǎn)品E-R圖中存在的冗余聯(lián)系。邏輯結(jié)構(gòu)設(shè)計(jì)045.4.1概念模型轉(zhuǎn)換為邏輯模型的步驟(1)選擇最佳的數(shù)據(jù)模型,把概念模型轉(zhuǎn)換成一般的數(shù)據(jù)模型,并將一般的數(shù)據(jù)模型轉(zhuǎn)換成特定的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。(2)通過優(yōu)化方法將其轉(zhuǎn)化為優(yōu)化的數(shù)據(jù)模型。(3)設(shè)計(jì)用戶子模式。5.4.2概念模型向關(guān)系模型轉(zhuǎn)換的原則將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體集、屬性及聯(lián)系轉(zhuǎn)換為相應(yīng)的關(guān)系模式。概念模型向關(guān)系模型轉(zhuǎn)換的原則涉及以下2方面內(nèi)容:1.實(shí)體集、屬性轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換規(guī)則2.實(shí)體集間的聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則1.實(shí)體集、屬性轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換規(guī)則將概念模型中的一個實(shí)體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼,關(guān)系的結(jié)構(gòu)是關(guān)系模式。2.實(shí)體集間的聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則實(shí)體集間的聯(lián)系轉(zhuǎn)換為關(guān)系模型時(shí),分以下3種情況:(1)1∶1聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則(2)1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則(3)m∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則1∶1聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則1∶1聯(lián)系轉(zhuǎn)換為關(guān)系模式有以下2種轉(zhuǎn)換方法:①將聯(lián)系與任意一端實(shí)體所對應(yīng)的關(guān)系合并。在被合并關(guān)系中增加屬性,新增的屬性為與聯(lián)系相關(guān)的另一端實(shí)體對應(yīng)關(guān)系的碼,被合并關(guān)系中的碼不變。②將聯(lián)系轉(zhuǎn)換為一個獨(dú)立的關(guān)系。將與該聯(lián)系相連的各實(shí)體的碼及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,且關(guān)系的碼為兩端實(shí)體碼的聯(lián)合?!纠?.11】將圖5.38所示的1∶1聯(lián)系轉(zhuǎn)換為關(guān)系模式。【例5.11】方案1:將每個實(shí)體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,1∶1的聯(lián)系形成一個擔(dān)任領(lǐng)導(dǎo)關(guān)系獨(dú)立存在。該方案形成的關(guān)系模型如下:職工(職工號,姓名,出生日期,職稱)部門(部門號,名稱,地址,聯(lián)系電話)擔(dān)任領(lǐng)導(dǎo)(職工號,部門號)【例5.11】方案2:“擔(dān)任領(lǐng)導(dǎo)”與“職工”關(guān)系合并。該方案形成的關(guān)系模型如下:職工(職工號,姓名,出生日期,職稱,部門號)部門(部門號,名稱,地址,聯(lián)系電話)【例5.11】方案3:“擔(dān)任領(lǐng)導(dǎo)”與“部門”關(guān)系合并。該方案形成的關(guān)系模型如下:職工(職工號,姓名,出生日期,職稱)部門(部門號,名稱,地址,聯(lián)系電話,職工號)對比以上3種方案:方案1轉(zhuǎn)換得到的關(guān)系多,增加了系統(tǒng)的復(fù)雜性;方案2中的職工關(guān)系,由于并不是每個職工都擔(dān)任一個部門的領(lǐng)導(dǎo),會造成部門號屬性的空值過多。比較起來,方案3比較合理。1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模型有以下2種轉(zhuǎn)換方法:①將聯(lián)系轉(zhuǎn)換為一個獨(dú)立的關(guān)系。新關(guān)系的屬性由與該聯(lián)系相連的各實(shí)體的碼及聯(lián)系本身的屬性組成,該關(guān)系的碼為n端實(shí)體的碼。②將聯(lián)系與n端實(shí)體所對應(yīng)的關(guān)系合并。在n端實(shí)體對應(yīng)的關(guān)系中增加新屬性,新屬性由聯(lián)系對應(yīng)的1端實(shí)體的碼和聯(lián)系自身的屬性構(gòu)成,新增屬性后n端實(shí)體對應(yīng)關(guān)系的碼不變?!纠?.12】將圖5.39所示的1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.12】方案1:將每個實(shí)體轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,1∶n聯(lián)系形成新的關(guān)系獨(dú)立存在。該方案形成的關(guān)系模型如下:專業(yè)(專業(yè)號,專業(yè)名)班級(班號,班名,人數(shù))屬于(專業(yè)號,班號,年級)【例5.12】方案2:與n端實(shí)體合并。該方案形成的關(guān)系模型如下:專業(yè)(專業(yè)號,專業(yè)名)班級(班號,班名,人數(shù),專業(yè)號,年級)對比以上兩個方案:方案1轉(zhuǎn)換得到的關(guān)系較多,適用于屬于關(guān)系頻繁改變的應(yīng)用場景;方案2的關(guān)系少,適用于屬于關(guān)系變化概率較小的應(yīng)用場景?!纠?.13】將圖5.40所示的1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.13】方案1:將實(shí)體轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,1∶n聯(lián)系形成新的關(guān)系獨(dú)立存在,即轉(zhuǎn)換為兩個關(guān)系模式。該方案形成的關(guān)系模型如下:職工(職工號,姓名,年齡)領(lǐng)導(dǎo)(領(lǐng)導(dǎo)工號,職工號)【例5.13】方案2:方案2:將聯(lián)系與n端實(shí)體合并,轉(zhuǎn)換為一個關(guān)系模式。該方案形成的關(guān)系模型如下:職工(職工號,姓名,年齡,領(lǐng)導(dǎo)工號)對比以上兩種方案,方案2在充分表達(dá)原有數(shù)據(jù)聯(lián)系的基礎(chǔ)上,轉(zhuǎn)化得到的關(guān)系模式較少,因此方案2更好。m∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則m∶n聯(lián)系轉(zhuǎn)換為關(guān)系模型只有一種轉(zhuǎn)換方法,即將一個m∶n聯(lián)系轉(zhuǎn)換為一個關(guān)系,與該聯(lián)系相連的各實(shí)體的碼及聯(lián)系本身的屬性均轉(zhuǎn)換為新關(guān)系的屬性,新關(guān)系的碼為兩個相連實(shí)體碼的組合(該碼為多屬性構(gòu)成的組合碼)?!纠?.14】將圖5.41所示的1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.14】在將該E-R圖轉(zhuǎn)換為關(guān)系模型時(shí),將每個實(shí)體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,m∶n的選修聯(lián)系形成一個獨(dú)立的關(guān)系,即轉(zhuǎn)換為3個關(guān)系模式。該方案形成的關(guān)系模型如下。學(xué)生(學(xué)號,姓名,性別,年齡,系編號)課程(課程號,課程名稱,課程類型,學(xué)時(shí),學(xué)分)選修(學(xué)號,課程號,成績)3個或3個以上實(shí)體集間的多元聯(lián)系的轉(zhuǎn)換方法將概念模型中的一個實(shí)體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼,關(guān)系的結(jié)構(gòu)是關(guān)系模式?!纠?.15】將圖5.42所示的3個實(shí)體集間的多元聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.15】在將該E-R圖轉(zhuǎn)換為關(guān)系模型時(shí),3個實(shí)體對應(yīng)3個關(guān)系,對于2個多對多的多元聯(lián)系,需要新建一個獨(dú)立的關(guān)系,即轉(zhuǎn)換為4個關(guān)系模式。該方案形成的關(guān)系模型如下。供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)零件(零件號,零件名,價(jià)格)產(chǎn)品(產(chǎn)品號,產(chǎn)品名,型號)供應(yīng)(供應(yīng)商號,零件號,產(chǎn)品號,數(shù)量)5.4.3邏輯模型優(yōu)化及外模式設(shè)計(jì)數(shù)據(jù)模型的優(yōu)化:根據(jù)軟件系統(tǒng)應(yīng)用的需要對邏輯模型進(jìn)行適當(dāng)?shù)男薷暮驼{(diào)整,進(jìn)一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能。1.數(shù)據(jù)模型的優(yōu)化常用的優(yōu)化方法包括規(guī)范化和分解2種。(1)規(guī)范化。使用關(guān)系規(guī)范化理論,逐一分析各關(guān)系模式中包含的屬性間是否存在數(shù)據(jù)依賴,根據(jù)分析結(jié)果確定各關(guān)系模式的范式等級。說明:在進(jìn)行關(guān)系規(guī)范化時(shí),規(guī)范化等級并不是越高越好,要結(jié)合具體的應(yīng)用需求進(jìn)行。(2)分解。使用模式分解技術(shù)(水平分解或垂直分解)將一個表分解為兩個或多個表。2.用戶外模式設(shè)計(jì)用戶外模式也稱子模式,是設(shè)計(jì)人員依據(jù)用戶對數(shù)據(jù)的使用要求、習(xí)慣及數(shù)據(jù)權(quán)限分配與安全性要求,對某一關(guān)系模式建立的適合具體局部應(yīng)用的屬性子集。在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,有以下兩種用戶外模式設(shè)計(jì)的實(shí)現(xiàn)方法。(1)創(chuàng)建局部應(yīng)用視圖。(2)使用垂直分解技術(shù)創(chuàng)建用戶外模式。設(shè)計(jì)用戶外模式的意義有以下3點(diǎn):(1)定義更符合用戶習(xí)慣的別名。(2)對不同級別的用戶設(shè)計(jì)不同的外模式。(3)簡化用戶操作,提高查詢效率。物理結(jié)構(gòu)設(shè)計(jì)05相關(guān)概念數(shù)據(jù)庫的物理結(jié)構(gòu)(即內(nèi)模式):指實(shí)現(xiàn)在物理設(shè)備上的存儲結(jié)構(gòu)和存儲方法。物理結(jié)構(gòu)設(shè)計(jì):基于優(yōu)化后的數(shù)據(jù)庫邏輯結(jié)構(gòu),數(shù)據(jù)庫設(shè)計(jì)人員利用具體數(shù)據(jù)庫管理系統(tǒng)所提供的方法和技術(shù),選取一個最適合應(yīng)用要求的數(shù)據(jù)庫存儲結(jié)構(gòu)和數(shù)據(jù)存取路徑,設(shè)計(jì)合理的數(shù)據(jù)存儲位置,分配適當(dāng)?shù)拇鎯臻g,設(shè)計(jì)出高效的、可實(shí)現(xiàn)的物理數(shù)據(jù)庫結(jié)構(gòu)的過程。5.5.1物理結(jié)構(gòu)設(shè)計(jì)的步驟數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)分2步進(jìn)行:(1)確定數(shù)據(jù)的物理結(jié)構(gòu)。即確定數(shù)據(jù)庫的存取方法和存儲結(jié)構(gòu)。(2)對物理結(jié)構(gòu)進(jìn)行評價(jià)。對物理結(jié)構(gòu)評價(jià)的重點(diǎn)是時(shí)間效率和空間效率。說明:物理結(jié)構(gòu)設(shè)計(jì)的結(jié)果并不唯一,但數(shù)據(jù)庫設(shè)計(jì)人員追求的設(shè)計(jì)目標(biāo)一致。5.5.1物理結(jié)構(gòu)設(shè)計(jì)的步驟進(jìn)行物理結(jié)構(gòu)設(shè)計(jì)需要注意以下幾個問題:(1)熟悉具體選定的數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn),全面掌握選定數(shù)據(jù)庫管理系統(tǒng)的功能、數(shù)據(jù)庫管理系統(tǒng)提供的物理環(huán)境和工具及其限制條件。(2)詳細(xì)分析將要在數(shù)據(jù)庫上運(yùn)行的事務(wù),了解計(jì)算機(jī)系統(tǒng)的性能和數(shù)據(jù)使用頻率?;陉P(guān)系數(shù)據(jù)庫理論的物理結(jié)構(gòu)設(shè)計(jì)包含以下兩方面的內(nèi)容。(1)為關(guān)系模式選取合適的存取方法。(2)確定關(guān)系、索引、聚簇、日志和備份等的物理存儲結(jié)構(gòu)。5.5.2確定數(shù)據(jù)存取方法設(shè)計(jì)人員在確定數(shù)據(jù)存取方法時(shí),需要詳細(xì)掌握與數(shù)據(jù)庫相關(guān)的3種信息。(1)查詢事務(wù)信息。(2)更新事務(wù)信息。(3)每個事務(wù)在各個關(guān)系上運(yùn)行的頻率和性能要求。關(guān)系數(shù)據(jù)庫系統(tǒng)提供3種數(shù)據(jù)存取方法:(1)索引方法(2)聚簇方法(3)散列方法1.索引及其創(chuàng)建原則索引:建立在數(shù)據(jù)庫表上的一個附加表,表中存儲了滿足用戶常用的查詢操作的列值和對應(yīng)的記錄地址。在建立索引時(shí),需要遵循以下3個原則。(1)若某屬性或?qū)傩越M經(jīng)常在查詢條件中出現(xiàn),則考慮在這個屬性或?qū)傩越M上建立索引。(2)若某屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引。(3)若某屬性或?qū)傩越M經(jīng)常出現(xiàn)在連接操作的連接條件中,則考慮在這個屬性或?qū)傩越M上建立索引。1.聚簇及其創(chuàng)建原則索引的局限性:耗費(fèi)存儲空間資源,付出系統(tǒng)維護(hù)代價(jià)。創(chuàng)建的索引數(shù)量需要結(jié)合具體數(shù)據(jù)庫的操作考慮。查詢操作多,修改操作少,可以多創(chuàng)建索引;反之,則要少創(chuàng)建一些。2.聚簇及其創(chuàng)建原則聚簇:指把經(jīng)常進(jìn)行的連接操作中相關(guān)的屬性或?qū)傩越M取值相同的元組集中存放在連續(xù)的物理塊上,以提高基于這些屬性或?qū)傩越M值的查詢速度,這些屬性或?qū)傩越M稱為聚簇碼。設(shè)計(jì)聚簇分以下2步進(jìn)行:(1)根據(jù)規(guī)則確定候選聚簇。(2)從候選聚簇中去除不必要的關(guān)系。2.聚簇及其創(chuàng)建原則在設(shè)計(jì)候選聚簇時(shí),需要遵循以下4個原則。(1)經(jīng)常在一起進(jìn)行連接操作的關(guān)系,可以創(chuàng)建一個聚簇。(2)若某關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等、比較條件中,則該單個關(guān)系可建立聚簇。(3)若某關(guān)系的一個(或一組)屬性值的重復(fù)率很高,則該單個關(guān)系可建立聚簇。對應(yīng)每個聚簇碼值的平均元組不能太少,若元組數(shù)量太少,聚簇的效果不明顯。(4)若某關(guān)系的主要應(yīng)用是通過聚簇碼進(jìn)行訪問或連接,而其他屬性訪問關(guān)系的操作很少時(shí),可以使用聚簇。尤其當(dāng)SQL語句中含有與聚簇有關(guān)的ORDER_BY、GROUP_BY、UNION、DISTINCT等子句或短語時(shí),使用聚簇特別有利,可以省去對結(jié)果集的排序操作。反之,當(dāng)關(guān)系較少利用聚簇碼操作時(shí),最好不要使用聚簇。2.聚簇及其創(chuàng)建原則說明:(1)對于數(shù)據(jù)更新不頻繁的關(guān)系,適合創(chuàng)建聚簇。(2)一個數(shù)據(jù)庫可以建立多個聚簇,但一個關(guān)系只能加入一個聚簇。(3)聚簇功能不僅適用于單個關(guān)系,而且適用于經(jīng)常進(jìn)行連接操作的多個關(guān)系。2.聚簇及其創(chuàng)建原則設(shè)計(jì)好候選聚簇后,設(shè)計(jì)人員采用如下方法刪去其中不必要的關(guān)系:(1)從候選聚簇中刪除經(jīng)常進(jìn)行全表掃描的關(guān)系。(2)從候選聚簇中刪除更新操作遠(yuǎn)多于連接操作的關(guān)系。(3)由于一個關(guān)系不能同時(shí)加入多個聚簇,當(dāng)出現(xiàn)不同的聚簇中可能包含同一個關(guān)系的情況時(shí),設(shè)計(jì)人員需要從多個聚簇方案(包括不建立聚簇)中選擇一個較優(yōu)的聚簇,選取標(biāo)準(zhǔn)是在這個聚簇上運(yùn)行各種事務(wù)的總代價(jià)最小。2.聚簇及其創(chuàng)建原則創(chuàng)建聚簇需要注意的2個問題:(1)在已有的關(guān)系上建立聚簇,會移動關(guān)系中元組的物理存儲位置,原有關(guān)系上創(chuàng)建的索引將不再有效,要想使用原索引就必須重建原有索引。(2)聚簇碼值應(yīng)當(dāng)相對穩(wěn)定。5.5.3確定數(shù)據(jù)的物理存儲結(jié)構(gòu)確定數(shù)據(jù)的物理存儲結(jié)構(gòu),主要是確定數(shù)據(jù)庫中各種數(shù)據(jù)(包括關(guān)系、日志、備份等)在計(jì)算機(jī)中的存放位置和存儲結(jié)構(gòu)。確定數(shù)據(jù)的存放位置和存儲結(jié)構(gòu)需要綜合考慮存取時(shí)間、存儲空間利用率和維護(hù)代價(jià)3方面的因素。這3方面常常相互矛盾,需要進(jìn)行權(quán)衡,選擇一個折中方案。1.確定數(shù)據(jù)的存放位置當(dāng)計(jì)算機(jī)中包含多個磁盤時(shí),確定存放位置的方法有以下4種:(1)將表和索引放在不同的磁盤上。(2)將比較大的表放在兩個磁盤上。(3)將日志文件、重要的系統(tǒng)備份文件與數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤上。(4)對經(jīng)常存取或存取時(shí)間要求較高的對象(如表、索引)應(yīng)放在高速存儲器(如硬盤)上;對存取頻率小或存取時(shí)間要求低的對象(如數(shù)據(jù)庫的數(shù)據(jù)備份和日志文件備份等只在故障恢復(fù)時(shí)使用),可以存放在低速存儲設(shè)備上。2.確定系統(tǒng)配置系統(tǒng)配置變量、存儲分配參數(shù)有很多,這些參數(shù)值影響存取時(shí)間和存儲空間的分配。在初始情況下,系統(tǒng)為這些變量賦了合理的默認(rèn)值。但是這些默認(rèn)值不一定適合每一種應(yīng)用環(huán)境,在進(jìn)行數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)時(shí),設(shè)計(jì)人員和數(shù)據(jù)庫管理員需要根據(jù)具體的應(yīng)用環(huán)境適當(dāng)調(diào)整這些參數(shù)值,以改善系統(tǒng)的性能,使其最優(yōu)化。在進(jìn)行物理結(jié)構(gòu)設(shè)計(jì)時(shí)對系統(tǒng)配置變量的調(diào)整只是
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年互聯(lián)網(wǎng)電路租賃合同(三篇)
- 2025年個人租房合租合同常用版(4篇)
- 保齡球館裝修合同范本
- 主題餐廳裝修免租合同
- 專賣店吊頂裝修合同
- 機(jī)場建設(shè)渣土運(yùn)輸協(xié)議范本
- 臨時(shí)承接合同范本
- 偽造員工勞動合同范本案例
- 基金托管合同范例
- JJG 921-2021環(huán)境振動分析儀
- GB/T 308.1-2013滾動軸承球第1部分:鋼球
- 中藥炮制學(xué)-第五、六章
- 中國風(fēng)軍令狀誓師大會PPT模板
- 小兒高熱驚厥精品課件
- 2023機(jī)械工程師考試試題及答案
- 2022年電拖實(shí)驗(yàn)報(bào)告伍宏淳
- 豐田汽車戰(zhàn)略規(guī)劃與戰(zhàn)略管理體系研究(2021)
- 公共政策學(xué)(第三版)-課件
- 冷卻塔是利用水和空氣的接觸
- 我的家鄉(xiāng)--安徽亳州.PPT
評論
0/150
提交評論