數(shù)據(jù)庫原理及應用-數(shù)據(jù)庫系統(tǒng)設(shè)計_第1頁
數(shù)據(jù)庫原理及應用-數(shù)據(jù)庫系統(tǒng)設(shè)計_第2頁
數(shù)據(jù)庫原理及應用-數(shù)據(jù)庫系統(tǒng)設(shè)計_第3頁
數(shù)據(jù)庫原理及應用-數(shù)據(jù)庫系統(tǒng)設(shè)計_第4頁
數(shù)據(jù)庫原理及應用-數(shù)據(jù)庫系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩150頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)設(shè)計目錄01數(shù)據(jù)庫系統(tǒng)設(shè)計概述02需求分析03概念結(jié)構(gòu)設(shè)計04邏輯結(jié)構(gòu)設(shè)計05物理結(jié)構(gòu)設(shè)計06數(shù)據(jù)庫實施07數(shù)據(jù)庫運行和維護本章主要內(nèi)容

本章主要介紹數(shù)據(jù)庫系統(tǒng)設(shè)計的整體過程及具體設(shè)計過程中使用的相關(guān)方法和技術(shù)。從數(shù)據(jù)庫設(shè)計的概念出發(fā),引出了數(shù)據(jù)庫系統(tǒng)設(shè)計的內(nèi)容、特點、使用的方法、基本過程和步驟;重點介紹需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施、數(shù)據(jù)庫運行和維護等階段的具體設(shè)計內(nèi)容和步驟,并詳細介紹需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計的模型設(shè)計方法和模型創(chuàng)建步驟。準備知識模型是對事物、對象、過程等客觀系統(tǒng)中人們感興趣的內(nèi)容的模擬和抽象表達,是理解系統(tǒng)的思維工具。數(shù)據(jù)模型也是一種模型,是計算機世界對現(xiàn)實世界數(shù)據(jù)特征的抽象、表示和處理的工具。數(shù)據(jù)庫不僅要反映數(shù)據(jù)本身內(nèi)容,而且要反映數(shù)據(jù)之間的聯(lián)系,而這種模擬是通過數(shù)據(jù)模型實現(xiàn)的。數(shù)據(jù)模型是數(shù)據(jù)庫的框架,是數(shù)據(jù)庫的核心和基礎(chǔ)。數(shù)據(jù)庫系統(tǒng)設(shè)計概述015.1.1數(shù)據(jù)庫系統(tǒng)設(shè)計的內(nèi)容數(shù)據(jù)庫設(shè)計是根據(jù)用戶需求研制數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的過程。數(shù)據(jù)庫設(shè)計人員基于給定的應用環(huán)境,運用數(shù)據(jù)庫設(shè)計的相關(guān)方法和技術(shù),建立一個性能良好的、能滿足不同用戶使用要求又能被選定的數(shù)據(jù)庫管理系統(tǒng)接受的數(shù)據(jù)庫系統(tǒng)模式。數(shù)據(jù)庫系統(tǒng)設(shè)計包含數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計和行為設(shè)計兩方面內(nèi)容。1.數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計是指針對特定的應用環(huán)境,進行數(shù)據(jù)庫模式設(shè)計的過程,包括數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計。數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計的過程是:設(shè)計人員首先將現(xiàn)實世界中的實體、實體間的聯(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)模型進行物理實現(xiàn),獲得數(shù)據(jù)庫系統(tǒng)的存儲模式和存取方法。數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計又稱為數(shù)據(jù)庫系統(tǒng)的靜態(tài)結(jié)構(gòu)設(shè)計。2.數(shù)據(jù)庫系統(tǒng)的行為設(shè)計數(shù)據(jù)庫系統(tǒng)的行為設(shè)計的概念:設(shè)計者確定數(shù)據(jù)庫用戶的行為和動作的過程。其中數(shù)據(jù)庫用戶的行為和動作是指用戶對數(shù)據(jù)進行的查詢和統(tǒng)計、事務處理及報表處理等操作。數(shù)據(jù)庫系統(tǒng)的行為設(shè)計步驟是:將現(xiàn)實世界中的數(shù)據(jù)對象及使用情況用數(shù)據(jù)流圖和數(shù)據(jù)字典表示,詳細描述在特定應用環(huán)境下各種用戶對數(shù)據(jù)的操作要求(包括操作對象、方法、頻度和實時性要求),進而得出系統(tǒng)的層次結(jié)構(gòu),確定系統(tǒng)的功能模塊結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)的子模式和系統(tǒng)數(shù)據(jù)流圖。數(shù)據(jù)庫的行為設(shè)計也被稱為數(shù)據(jù)庫的動態(tài)結(jié)構(gòu)設(shè)計。5.1.2數(shù)據(jù)庫系統(tǒng)設(shè)計的特點數(shù)據(jù)庫系統(tǒng)設(shè)計的過程是一個自頂向下、逐步求精的過程。概況起來,數(shù)據(jù)庫系統(tǒng)設(shè)計具有綜合性、結(jié)構(gòu)設(shè)計和行為設(shè)計相互分離又緊密聯(lián)系兩個基本特點。1.綜合性數(shù)據(jù)庫系統(tǒng)設(shè)計,既要完成后臺數(shù)據(jù)庫創(chuàng)建工作(是數(shù)據(jù)庫工程),也要完成前端應用軟件的開發(fā)工作(是軟件工程)。數(shù)據(jù)庫系統(tǒng)設(shè)計涉及的知識領(lǐng)域廣,不僅包含計算機專業(yè)知識,還包含應用系統(tǒng)的業(yè)務領(lǐng)域知識;同時它還要解決技術(shù)及非技術(shù)兩方面的問題。“三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)”是數(shù)據(jù)庫設(shè)計的基本規(guī)律。數(shù)據(jù)庫系統(tǒng)設(shè)計的管理人員要加強管理和控制,做好基礎(chǔ)數(shù)據(jù)的收集、入庫工作。2.結(jié)構(gòu)設(shè)計和行為設(shè)計相互分離又緊密聯(lián)系結(jié)構(gòu)設(shè)計是指數(shù)據(jù)庫的模式結(jié)構(gòu)設(shè)計和物理實現(xiàn),它包括概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計。行為設(shè)計是指應用程序設(shè)計,包括功能組織、流程控制等方面的設(shè)計。數(shù)據(jù)庫系統(tǒng)設(shè)計人員應當具有戰(zhàn)略眼光,考慮到當前、近期和遠期3個時段的用戶需求。5.1.3數(shù)據(jù)庫系統(tǒng)設(shè)計的方法為了使數(shù)據(jù)庫系統(tǒng)設(shè)計更合理、更有效,在數(shù)據(jù)庫設(shè)計的過程中需要有效的指導原則,這種原則被稱為數(shù)據(jù)庫系統(tǒng)設(shè)計方法。數(shù)據(jù)庫系統(tǒng)設(shè)計方法主要分為直觀設(shè)計法、規(guī)范設(shè)計法和計算機輔助設(shè)計法3類。1.直觀設(shè)計法又稱手工試湊法。特點:依賴于設(shè)計者的經(jīng)驗和技術(shù)水平。不足:缺乏科學理論和工程方法的支持,設(shè)計的質(zhì)量很難保證。2.規(guī)范設(shè)計法新奧爾良方法:將數(shù)據(jù)庫系統(tǒng)設(shè)計分成需求分析(分析用戶需求的數(shù)據(jù)及數(shù)據(jù)的聯(lián)系)、概念結(jié)構(gòu)設(shè)計(信息分析和定義)、邏輯結(jié)構(gòu)設(shè)計(設(shè)計實現(xiàn))和物理結(jié)構(gòu)設(shè)計(物理數(shù)據(jù)庫設(shè)計)4個階段。特點:注重數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)設(shè)計不足:忽略了數(shù)據(jù)庫系統(tǒng)用戶在使用數(shù)據(jù)庫時進行的查詢、統(tǒng)計、事務處理和報表處理等操作。2.規(guī)范設(shè)計法改進新奧爾良方法:把數(shù)據(jù)庫系統(tǒng)設(shè)計分為需求分析、結(jié)構(gòu)設(shè)計、行為設(shè)計、數(shù)據(jù)庫實施、數(shù)據(jù)庫運行和維護5個階段。其中,結(jié)構(gòu)設(shè)計包含概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計3個階段;行為設(shè)計包含應用系統(tǒng)總體設(shè)計、詳細設(shè)計、編碼與實現(xiàn)3個階段。特點:數(shù)據(jù)庫系統(tǒng)設(shè)計包括設(shè)計系統(tǒng)開發(fā)的全過程,具有綜合性、結(jié)構(gòu)設(shè)計和行為設(shè)計相互分離又緊密聯(lián)系兩個基本特點。3.計算機輔助設(shè)計法計算機輔助設(shè)計法:設(shè)計人員以過往的知識或經(jīng)驗為主導,在數(shù)據(jù)庫系統(tǒng)設(shè)計的某些過程中使用相關(guān)自動化技術(shù)和工具模擬某一方面的規(guī)范化設(shè)計工作,通過人機交互方式實現(xiàn)設(shè)計中的某些部分的方法。計算機輔助軟件如Sybase公司的PowerDesigner、卓軟公司的Navicat等。5.1.4數(shù)據(jù)庫系統(tǒng)設(shè)計的基本過程和步驟數(shù)據(jù)庫系統(tǒng)設(shè)計包括數(shù)據(jù)庫靜態(tài)結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫動態(tài)行為設(shè)計2方面內(nèi)容。1.數(shù)據(jù)庫系統(tǒng)設(shè)計的基本過程首先對待開發(fā)的現(xiàn)實世界中給定的數(shù)據(jù)庫應用環(huán)境進行數(shù)據(jù)分析和用戶業(yè)務活動分析,得到系統(tǒng)的數(shù)據(jù)需求和業(yè)務需求。然后對數(shù)據(jù)需求進行結(jié)構(gòu)設(shè)計,包括概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計和用戶子模式設(shè)計;同時,設(shè)計人員對業(yè)務需求進行行為設(shè)計,包括功能分析、創(chuàng)建功能模型,事務設(shè)計、應用程序設(shè)計。之后,設(shè)計人員加載試驗數(shù)據(jù),調(diào)試和運行數(shù)據(jù)庫系統(tǒng)。如果用戶對系統(tǒng)的運行和性能表現(xiàn)不滿,則需要設(shè)計人員返回數(shù)據(jù)庫系統(tǒng)設(shè)計的起始階段,對開發(fā)的現(xiàn)實世界中給定的數(shù)據(jù)庫應用環(huán)境進行第二次數(shù)據(jù)分析和用戶業(yè)務活動分析,重復上述過程,直到用戶對開發(fā)的系統(tǒng)運行和性能表現(xiàn)滿意,并把開發(fā)的系統(tǒng)成功交付給用戶使用為止。2.數(shù)據(jù)庫系統(tǒng)設(shè)計的步驟和各階段要完成的工作應用軟件系統(tǒng)開發(fā)方法分兩種,一是結(jié)構(gòu)化系統(tǒng)設(shè)計方法,二是面向?qū)ο蟮能浖_發(fā)方法。使用結(jié)構(gòu)化系統(tǒng)設(shè)計方法進行數(shù)據(jù)庫及其應用系統(tǒng)開發(fā)時,數(shù)據(jù)庫系統(tǒng)設(shè)計分為需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施及數(shù)據(jù)庫運行和維護6個步驟。需求分析階段深入了解待開發(fā)系統(tǒng)的行業(yè)背景、業(yè)務領(lǐng)域知識及業(yè)務處理流程,分析最終用戶對系統(tǒng)的要求和需要,弄清系統(tǒng)要達到的業(yè)務目標和實現(xiàn)的功能,形成經(jīng)過各方(包括用戶代表、行業(yè)評審專家、開發(fā)設(shè)計人員、軟件測試人員等)簽字認可的需求規(guī)格說明書。概念結(jié)構(gòu)設(shè)計階段以需求規(guī)格說明書為基礎(chǔ)對用戶需求進行歸納、抽象和綜合,設(shè)計出一個獨立于計算機硬件和具體數(shù)據(jù)庫管理系統(tǒng)等相關(guān)軟件的概念模型。邏輯結(jié)構(gòu)設(shè)計階段選定一個具體的數(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)化方法,進行邏輯結(jié)構(gòu)優(yōu)化,獲得系統(tǒng)優(yōu)化后的邏輯結(jié)構(gòu)。物理結(jié)構(gòu)設(shè)計階段為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu),包括數(shù)據(jù)存儲位置、數(shù)據(jù)存儲結(jié)構(gòu)和存取方法。設(shè)計好物理結(jié)構(gòu)后,設(shè)計人員需要評價設(shè)計,并進行性能預測。如果用戶對數(shù)據(jù)庫的設(shè)計結(jié)構(gòu)和預期性能的表現(xiàn)不滿意,需要設(shè)計人員返回邏輯結(jié)構(gòu)設(shè)計階段,重新進行邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計,修改邏輯模型,調(diào)整物理結(jié)構(gòu),直到滿意為止。數(shù)據(jù)庫實施階段運用數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)操作語言和宿主語言,根據(jù)數(shù)據(jù)庫的邏輯設(shè)計結(jié)果和物理設(shè)計結(jié)果創(chuàng)建數(shù)據(jù)庫,編寫與調(diào)試應用程序,組織數(shù)據(jù)入庫并進行系統(tǒng)試運行。數(shù)據(jù)庫運行和維護階段對其結(jié)構(gòu)性能進行評價、調(diào)整和修改。5.1.5數(shù)據(jù)庫系統(tǒng)設(shè)計過程中所涉及的模式數(shù)據(jù)庫系統(tǒng)設(shè)計各階段的設(shè)計成果需要從數(shù)據(jù)設(shè)計描述和處理設(shè)計描述兩方面進行。設(shè)計階段設(shè)計成果描述數(shù)據(jù)處理需求分析數(shù)據(jù)字典、全系統(tǒng)中的數(shù)據(jù)項、數(shù)據(jù)流、數(shù)據(jù)存儲的描述數(shù)據(jù)流圖和判定表(判定樹)、數(shù)據(jù)字典中處理過程的描述概念結(jié)構(gòu)設(shè)計概念模型(E-R圖)系統(tǒng)說明書包括:新系統(tǒng)的要求、方案和概念圖;反映新系統(tǒng)信息流的數(shù)據(jù)流圖邏輯結(jié)構(gòu)設(shè)計某種數(shù)據(jù)模型、關(guān)系模型或非關(guān)系模型系統(tǒng)結(jié)構(gòu)圖(模塊結(jié)構(gòu))物理結(jié)構(gòu)設(shè)計存儲安排、方法選擇、存取路徑的建立模塊設(shè)計、IPO表數(shù)據(jù)庫實施編寫模式、裝入數(shù)據(jù)、數(shù)據(jù)庫試運行程序編碼、編譯、連接、測試數(shù)據(jù)庫運行和維護性能監(jiān)測、轉(zhuǎn)儲/恢復、數(shù)據(jù)庫重組和重構(gòu)新舊系統(tǒng)轉(zhuǎn)換、運行、維護(修正性、適應性、改善性維護)數(shù)據(jù)庫的各級模式數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的不同階段對應要完成的不同級別的數(shù)據(jù)模式設(shè)計。邏輯結(jié)構(gòu)設(shè)計階段,系統(tǒng)設(shè)計人員要先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,形成數(shù)據(jù)庫邏輯模式;然后再根據(jù)用戶處理的要求、安全性的考慮建立必要的數(shù)據(jù)視圖,形成數(shù)據(jù)的外模式。在物理結(jié)構(gòu)設(shè)計階段,要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點和處理的需要進行物理存儲安排,并確定系統(tǒng)要建立的索引,得出數(shù)據(jù)庫的內(nèi)模式。需求分析025.2.1需求的類型需求可以分為業(yè)務需求、用戶需求和系統(tǒng)需求3類。(1)業(yè)務需求:從組織機構(gòu)的角度明確待開發(fā)系統(tǒng)的發(fā)展方向、工作內(nèi)容、目標客戶和產(chǎn)品價值等。(2)用戶需求:從系統(tǒng)用戶的角度確定待開發(fā)系統(tǒng)需要完成的功能(或提供的服務)和要達到的指標或要求(例如性能、存儲空間要求、吞吐量、安全性、可靠性、容錯性)。(3)系統(tǒng)需求:從設(shè)計人員的角度詳細、準確地描述系統(tǒng)應該完成的功能和非功能性需求。5.2.1需求的類型需求分析是數(shù)據(jù)庫系統(tǒng)設(shè)計的基礎(chǔ),它的結(jié)果是否準確,直接影響后續(xù)各個階段設(shè)計的正確性,設(shè)計管理人員一定要強調(diào)并認真對待這個階段的工作。調(diào)查了解、收集并獲取不同角色用戶的需求。分析用戶需求,確定新系統(tǒng)的邊界。使用規(guī)格說明描述用戶需求,編寫系統(tǒng)分析報告。需求驗證。5.2.2需求分析的步驟1.調(diào)查了解、收集并獲取不同角色用戶的需求首先,需要了解管理對象的組織機構(gòu)情況,弄清所設(shè)計的數(shù)據(jù)庫系統(tǒng)與哪些部門相關(guān),這些部門及下屬各個單位的聯(lián)系和職責是什么;其次,了解相關(guān)部門的業(yè)務活動情況。設(shè)計人員需要明確數(shù)據(jù)庫中的信息內(nèi)容、數(shù)據(jù)處理內(nèi)容,以及數(shù)據(jù)的安全性和完整性需求。2.分析用戶需求,確定新系統(tǒng)的邊界明確哪些功能現(xiàn)在就由計算機完成;哪些功能將來準備讓計算機完成;哪些功能或活動由人工完成。3.使用規(guī)格說明描述用戶需求,編寫系統(tǒng)分析報告系統(tǒng)分析報告也稱為需求規(guī)格說明書,它是對需求分析階段的一個總結(jié)。編寫系統(tǒng)分析報告是一個不斷反復、逐步深入和逐步完善的過程。系統(tǒng)分析報告應包括系統(tǒng)概況、系統(tǒng)的原理和技術(shù),以及對原系統(tǒng)的改善、系統(tǒng)總體結(jié)構(gòu)與子系統(tǒng)結(jié)構(gòu)說明、系統(tǒng)功能說明、數(shù)據(jù)處理概要、工程體制和設(shè)計階段的劃分、系統(tǒng)方案及技術(shù)、經(jīng)濟、功能和操作上的可行性6部分內(nèi)容。隨系統(tǒng)分析報告還需要提供系統(tǒng)的硬件、軟件支持環(huán)境的選擇及規(guī)格要求(所選擇的數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、漢字平臺、計算機型號及其網(wǎng)絡環(huán)境等)、組織機構(gòu)圖、組織之間的聯(lián)系圖和各機構(gòu)功能業(yè)務一覽圖、數(shù)據(jù)流圖、功能模塊圖和數(shù)據(jù)字典等圖表。4.需求驗證完成系統(tǒng)的分析報告后,在項目單位的領(lǐng)導下,軟件開發(fā)項目組要組織有關(guān)技術(shù)專家評審系統(tǒng)分析報告,通過后,項目方和開發(fā)方的領(lǐng)導簽字認可。5.2.3獲取需求的常用方法調(diào)查方法是設(shè)計人員獲取需求使用的重要手段,是設(shè)計數(shù)據(jù)庫系統(tǒng)不可缺少的環(huán)節(jié)。在調(diào)查進行之前,軟件開發(fā)機構(gòu)需要進行一些必要的準備工作,成立項目領(lǐng)導小組(包括客戶項目組和開發(fā)項目組)。在調(diào)查時,設(shè)計人員需要深入到應用待開發(fā)系統(tǒng)的組織機構(gòu)和業(yè)務領(lǐng)域,與具有業(yè)務領(lǐng)域知識和行業(yè)背景的人員反復溝通、確認,并用計算機知識和建模技術(shù)清晰、準確地描述用戶需求,獲得用戶認可的需求文檔。其中,用戶的積極參與配合是做好調(diào)查的關(guān)鍵。常用的調(diào)查方法(1)跟班作業(yè)調(diào)查法(2)開調(diào)查會(3)請專人介紹(4)填寫調(diào)查表(5)資料查閱5.2.4需求分析創(chuàng)建模型的方法為了準確描述系統(tǒng)能夠“做什么”,方便設(shè)計人員、用戶及其他相關(guān)人員之間的溝通,設(shè)計人員需要使用相應的需求建模方法創(chuàng)建需求模型(數(shù)據(jù)流圖和數(shù)字字典,或狀態(tài)轉(zhuǎn)換圖、序列圖、協(xié)作圖、類圖、部署圖等),從而真實、準確、完整地描述目標系統(tǒng)的業(yè)務需求和用戶需求。常用的需求建模方法有結(jié)構(gòu)化分析(StructuredAnalysis,SA)方法和面向?qū)ο蟮模∣bject-Oriented)方法。1.

結(jié)構(gòu)化分析方法由美國Yourdon公司和密歇根大學于20世紀70年代中期在開發(fā)ISDOS系統(tǒng)工具時提出。采用“自頂向下,化繁為簡,由外到內(nèi),逐層分解”的分治策略,把復雜的信息處理系統(tǒng)分解為若干個人們易于分析和描述的子系統(tǒng),用各方人員易于理解的數(shù)據(jù)流圖表示待開發(fā)系統(tǒng)的模型,驗證模型是否滿足用戶對目標系統(tǒng)的需求,并在設(shè)計過程中逐漸把與實現(xiàn)有關(guān)的細節(jié)加入模型中,直至最終使用程序?qū)崿F(xiàn)模型。分治策略示意圖如右所示。2.

面向?qū)ο蟮姆椒ɑ诿嫦驅(qū)ο蟮某绦蛟O(shè)計思想,以統(tǒng)一建模語言(UnifiedModelingLanguage,UML)和相應的需求建模工具(比較知名的有PowerDesigner、StarUML、NetbeansUMLPlugin、RationalRose等)為基礎(chǔ),從獲取到的需求信息中抽象出重點業(yè)務領(lǐng)域中的類與對象,確定類之間的關(guān)系,并建立簡單、準確和易于理解的用例圖、序列圖、協(xié)作圖、狀態(tài)轉(zhuǎn)換圖、類圖、部署圖等需求模型。面向?qū)ο蟮姆椒ㄒ话惴謨蓚€步驟進行需求建模:(1)問題分析階段(2)應用分析階段5.2.5數(shù)據(jù)流圖數(shù)據(jù)流圖是描述系統(tǒng)內(nèi)部的業(yè)務處理流程,表達軟件系統(tǒng)功能需求的模型。它從數(shù)據(jù)傳遞、數(shù)據(jù)加工和數(shù)據(jù)存儲的角度,以圖形的方式刻畫數(shù)據(jù)從輸入到輸出的變換過程。1.

數(shù)據(jù)流圖的模型數(shù)據(jù)流圖模型示意圖:1.

數(shù)據(jù)流圖的模型數(shù)據(jù)流圖由4個基本元素組成。(1)數(shù)據(jù)源點和終點:表示數(shù)據(jù)的來源和最終去向,通常用方框表示。它們均代表軟件系統(tǒng)外的實體,如用戶或其他軟件系統(tǒng)。(2)數(shù)據(jù)流:是一組數(shù)據(jù)項組成的數(shù)據(jù),通常用帶標識的有向弧表示。(3)處理(也稱加工或變換):主要用于描述對數(shù)據(jù)進行的操作或變換,通常用圓圈或橢圓表示。(4)文件(也稱數(shù)據(jù)存儲):是存放數(shù)據(jù)的邏輯單位,通常用圖形符號“

”“

”“

”分別表示加工寫文件、讀文件和讀寫文件。在相應的圖形符號中還要給出文件名。1.

數(shù)據(jù)流圖的模型某培訓中心學員報名繳費信息管理系統(tǒng)的數(shù)據(jù)流圖1.

數(shù)據(jù)流圖的模型注意:(1)數(shù)據(jù)流可以由單個數(shù)據(jù)項組成,也可以由一組數(shù)據(jù)項組成;另外,數(shù)據(jù)流要有一個合適的名字。(2)數(shù)據(jù)流可以從處理流向處理,從源點流向處理,從處理流向終點,從處理流向文件,從文件流向處理。(3)從處理流向文件或從文件流向處理的數(shù)據(jù)流可不指定數(shù)據(jù)流名,給出文件名即可。(4)兩個處理之間允許有多股數(shù)據(jù)流。數(shù)據(jù)流不分先后次序,處理只描述具體功能——“做什么”,不需要考慮“怎么做”。2.

分層的數(shù)據(jù)流圖對于較為復雜的問題的數(shù)據(jù)處理過程,用一個數(shù)據(jù)流圖往往不夠,這是因為用一個圖表示全部數(shù)據(jù)處理過程會面臨兩個問題:(1)數(shù)據(jù)處理過程多而復雜,不容易理解(2)如果系統(tǒng)過于復雜,數(shù)據(jù)流圖占用的篇幅過大,難以表示全部數(shù)據(jù)處理過程。為了準確、清晰、簡單地表示數(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ù)據(jù)源點與終點)及待開發(fā)系統(tǒng)的處理名稱。(2)中間層數(shù)據(jù)流圖:把上一層的數(shù)據(jù)處理過程進一步分解,描述外部實體與具體處理過程中涉及的數(shù)據(jù)流入、流出、存儲、加工或轉(zhuǎn)換過程。其組成部分可進一步細分。(3)底層數(shù)據(jù)流圖:由一些不可再分的處理組成,這些處理功能單一、含義明確、足夠簡單,也稱為基本處理。2.

分層的數(shù)據(jù)流圖逐層分解的目的是把復雜的處理分解成比較簡單和易于理解的基本處理,但分解的層次不宜太深,否則會影響數(shù)據(jù)流圖的可理解性,一般分解的層次不宜超過7層或8層。達到底層的分解標準,要滿足兩個條件:(1)處理用幾句或十幾句話就可以準確、清晰地描述其含義。(2)一個處理只有一個輸入流和一個輸出流。3.

分層數(shù)據(jù)流圖的繪制方法一般來說,繪制分層數(shù)據(jù)流圖分為3個步驟。(1)確定待開發(fā)系統(tǒng)的輸入/輸出數(shù)據(jù)流、數(shù)據(jù)的源點和終點。(2)將基本系統(tǒng)模型加上源點和終點,構(gòu)成頂層數(shù)據(jù)流圖。(3)按照分層原則,繪制各層的數(shù)據(jù)流圖。3.

分層數(shù)據(jù)流圖的繪制方法繪制各層的數(shù)據(jù)流圖時需要遵循以下原則。(1)對組織機構(gòu)中開展的業(yè)務進行功能分析和過程分析,從中抽象出重點業(yè)務中的基本概念、屬性和操作,集中精力找出數(shù)據(jù)流。(2)找到數(shù)據(jù)流后,標識該數(shù)據(jù)流,然后分析該數(shù)據(jù)流的組成成分及來去方向,并將其與處理連接。標識處理,繼續(xù)尋找其他的數(shù)據(jù)流。(3)當處理需要用到共享和暫存數(shù)據(jù)時,設(shè)置文件及其標識。(4)分析處理的內(nèi)部,如果處理還比較抽象或其內(nèi)部還有數(shù)據(jù)流,需要將該處理進一步分解,直到達到底層圖。(5)為所有的數(shù)據(jù)流命名。(6)為所有的處理編號。編號方法:處理編號應從第1層開始,處理的編號按順序為1、2、3、…;對于子圖的編號,通常是父類圖中相應被分解處理的編號+小數(shù)點號+子圖中局部處理的順序號。(7)將所有軟件的輸入/輸出數(shù)據(jù)流用一連串處理連接起來。(8)頂層數(shù)據(jù)流圖只有一個,只有一個處理,該加工不用編號。3.

分層數(shù)據(jù)流圖的繪制方法例:繪制教務管理系統(tǒng)數(shù)據(jù)流圖用戶需求描述如下:(1)學生的需求:選課,查看自己的選課情況、課表及課程成績。(2)教師的需求:能查看自己的個人信息、授課課表、所授課班級的所有學生的名單,并提交課程成績。(3)系統(tǒng)管理員的需求:對院系信息、學生信息、教師信息、課程信息、教室信息及學生選課信息進行管理。(4)學院管理員的需求:管理開課信息、教師授課信息。3.

分層數(shù)據(jù)流圖的繪制方法教務管理系統(tǒng)的業(yè)務流程:(1)超級教務管理員設(shè)置院系信息(包含院系編號、院系名、院系位置、院系辦公電話等信息)、學生信息(包括學號、姓名、性別、年齡、系編號等信息)、教師信息(包括教工號、姓名、性別、入職日期、職稱、系編號等信息)、課程信息(包括課程號、課程名稱、課程類型、學時、學分等信息)、教室信息(包括教室號、教室類別、地點、容量等信息)等。(2)一般學院管理員設(shè)置每個班級的每門課程的任課教師。(3)超級教務管理員編排課表,生成教師授課表(教工號,課程號)。(4)學生選課。(5)選課后,生成學生選課表(學號,課程號,成績)。(6)教師錄入成績,發(fā)布、查看、打印成績。(7)學生查看課程成績信息。(8)一些限制規(guī)定:3.

分層數(shù)據(jù)流圖的繪制方法教務管理系統(tǒng)的頂層數(shù)據(jù)流圖:3.

分層數(shù)據(jù)流圖的繪制方法教務管理系統(tǒng)的1層數(shù)據(jù)流圖:3.

分層數(shù)據(jù)流圖的繪制方法教務管理系統(tǒng)的2層數(shù)據(jù)流圖:3.

分層數(shù)據(jù)流圖的繪制方法教務管理系統(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ù)進行詳細的描述,與數(shù)據(jù)流圖互為注釋。數(shù)據(jù)字典通常包含數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程5部分內(nèi)容。1.

數(shù)據(jù)項數(shù)據(jù)項是組成數(shù)據(jù)的最小單位,不可再分。一個數(shù)據(jù)項由數(shù)據(jù)項名、數(shù)據(jù)項含義說明、別名、數(shù)據(jù)類型、長度、取值范圍、與其他數(shù)據(jù)項的邏輯關(guān)系7部分組成;其中,“取值范圍”和“與其他數(shù)據(jù)項的邏輯關(guān)系”兩項定義了數(shù)據(jù)的完整性約束條件,它們是設(shè)計數(shù)據(jù)完整性檢驗功能的依據(jù)。2.

數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)項之間的組合關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(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部分組成。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ù)據(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ù)據(jù)等信息;“存取方式”指是批處理還是聯(lián)機處理,是檢索還是更新,是順序檢索還是隨機檢索等;“輸入的數(shù)據(jù)流”指出數(shù)據(jù)的來源處;“輸出的數(shù)據(jù)流”指出數(shù)據(jù)的去向處。5.

處理過程處理過程是對數(shù)據(jù)流圖中處理過程的描述性說明信息,一般需要結(jié)合判定表、判定樹、IPO圖等工具來描述具體處理邏輯。一個處理過程通常由處理過程名、說明、輸入的數(shù)據(jù)流、輸出的數(shù)據(jù)流、處理的簡要說明5部分組成。其中,“簡要說明”中主要說明該處理過程用來做什么,而不是怎么做及處理頻度要求,如單位時間里處理多少事務、多少數(shù)據(jù)量、響應時間要求等。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ù)據(jù)流量。概念結(jié)構(gòu)設(shè)計035.3.1概念結(jié)構(gòu)設(shè)計的特點(1)概念模型是現(xiàn)實世界真實模型的一個抽象表示,應客觀真實、完整細致地表示現(xiàn)實世界,以滿足用戶對數(shù)據(jù)的處理要求。(2)概念模型應易于理解。(3)概念模型應易于修改和擴充。(4)概念模型應易于向數(shù)據(jù)模型轉(zhuǎn)換。5.3.2概念結(jié)構(gòu)設(shè)計使用的方法概念結(jié)構(gòu)設(shè)計通常有自頂向下、自底向上、由里向外逐步擴張和混合策略4種設(shè)計方法。(1)自頂向下:首先定義總體概念結(jié)構(gòu)框架,然后逐步細化,直至形成完整的總體概念結(jié)構(gòu)模型。(2)自底向上:首先定義各局部應用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)模型。(3)有里向外逐步擴張:首先定義核心業(yè)務的概念結(jié)構(gòu),然后逐步向外擴展,生成其他業(yè)務的概念結(jié)構(gòu),直至完成總體概念結(jié)構(gòu)設(shè)計。(4)混合策略:它采用自頂向下與自底向上相結(jié)合的方法,首先用自頂向下策略設(shè)計一個總體概念結(jié)構(gòu)框架,然后以它為骨架,通過自底向上策略設(shè)計各個局部應用的概念結(jié)構(gòu)。5.3.2概念結(jié)構(gòu)設(shè)計使用的方法概念結(jié)構(gòu)設(shè)計自頂向下、自底向上示意圖:5.3.3概念結(jié)構(gòu)設(shè)計的步驟采用自底向上的設(shè)計方法,獲得概念結(jié)構(gòu)的步驟如下:(1)根據(jù)需求分析階段得到的數(shù)據(jù)流圖和數(shù)據(jù)字典,進行數(shù)據(jù)抽象并設(shè)計局部視圖(E-R圖)。(2)集成局部視圖,得到全局概念結(jié)構(gòu)。(3)對全局概念結(jié)構(gòu)進行優(yōu)化,直到用戶滿意為止。概念結(jié)構(gòu)設(shè)計的步驟如右圖所示。5.3.4局部E-R圖設(shè)計E-R圖(Entity-RelationshipDiagram):又稱實體聯(lián)系圖或?qū)嶓w關(guān)聯(lián)圖,它由實體、實體間的聯(lián)系和屬性3個基本成分組成,用于描述系統(tǒng)的數(shù)據(jù)及數(shù)據(jù)間的聯(lián)系。(1)實體是數(shù)據(jù)項(也就是屬性)的集合,通常用矩形框表示,框內(nèi)標注實體名稱。(2)屬性是定義實體的性質(zhì),通常用橢圓或圓角矩形框表示,框內(nèi)標注屬性名稱。(3)聯(lián)系是指實體之間相互連接的方式,它確定了實體間邏輯上和數(shù)量上的聯(lián)系,也稱為關(guān)系、關(guān)聯(lián)。通常用菱形框表示聯(lián)系,并用直線連接有聯(lián)系的實體。聯(lián)系有3種類型:一對一聯(lián)系(1∶1)、一對多聯(lián)系(1∶n)和多對多聯(lián)系(m∶n)。說明:聯(lián)系也可以有屬性。5.3.4局部E-R圖設(shè)計數(shù)據(jù)抽象:總結(jié)現(xiàn)實世界中具有共同特性實體的特征,忽略非本質(zhì)的細節(jié),并把這些共同特性用各種概念精確地加以描述,形成某種模型。數(shù)據(jù)抽象有3種基本方法:(1)分類:抽象了具體數(shù)據(jù)對象和類之間的“成員”語義,它針對現(xiàn)實世界中具有某些共同特性和行為的一組對象,定義類型概念模型,用共同特性作為該類的屬性,行為作為該類與其他類發(fā)生的聯(lián)系。在E-R圖中,實體集就是這種抽象。(2)聚集:抽象了對象所屬類型和對象內(nèi)部“組成成分”的語義,用于定義某一類型的組成成分(即屬性),若干屬性的聚集組成了實體型。(3)概括:抽象了類型之間的“所屬”的語義,它定義了類型之間的父子聯(lián)系。在E-R圖中用雙豎邊的矩形框表示子類,用直線加小圓圈表示父類—子類的聯(lián)系。5.3.4局部E-R圖設(shè)計【例5.1】用分類方法設(shè)計教務管理系統(tǒng)中的教師實體。5.3.4局部E-R圖設(shè)計【例5.2】用聚集方法設(shè)計教師實體的詳細屬性?!纠?.3】用聚集方法設(shè)計部門實體的詳細屬性。5.3.4局部E-R圖設(shè)計【例5.4】用概括方法設(shè)計“教師”實體與“教輔人員”“實驗員”和“行政管理人員”等實體間的聯(lián)系。5.3.4局部E-R圖設(shè)計局部E-R圖的設(shè)計步驟:(1)選擇適當層次的數(shù)據(jù)流圖,確定設(shè)計局部E-R圖的范圍。(2)逐步設(shè)計局部E-R圖。5.3.4局部E-R圖設(shè)計【例5.5】根據(jù)教務管理系統(tǒng)數(shù)據(jù)流圖設(shè)計局部E-R圖。(1)選擇適當層次的數(shù)據(jù)流圖,確定設(shè)計局部E-R圖的范圍。本例中,選擇第2層數(shù)據(jù)流圖,以學生選課模塊為核心進行局部E-R圖設(shè)計,并根據(jù)數(shù)據(jù)字典確定局部E-R圖的邊界。(2)識別實體、屬性,確定實體間的聯(lián)系。5.3.4局部E-R圖設(shè)計【例5.5】根據(jù)教務管理系統(tǒng)數(shù)據(jù)流圖設(shè)計局部E-R圖。(1)以學生選課模塊為核心進行局部E-R圖設(shè)計,該局部E-R圖涉及的實體有:學生、課程和教師。(2)各實體包含的屬性:學生實體有學號、姓名、性別、年齡和系編號5個屬性;課程實體有課程號、課程名稱、課程類別、學時和學分5個屬性;教師實體有教工號、姓名、性別、入職日期、職稱和系別號6個屬性。(3)實體間的聯(lián)系:學生與課程實體間的選修聯(lián)系(n∶m)、教師與課程實體間的講授聯(lián)系(m∶n)、......5.3.4局部E-R圖設(shè)計【例5.5】根據(jù)教務管理系統(tǒng)數(shù)據(jù)流圖設(shè)計局部E-R圖。

院系-專業(yè)-班級局部E-R圖5.3.4局部E-R圖設(shè)計【例5.5】根據(jù)教務管理系統(tǒng)數(shù)據(jù)流圖設(shè)計局部E-R圖。

院系-教師-職稱局部E-R圖5.3.4局部E-R圖設(shè)計【例5.5】根據(jù)教務管理系統(tǒng)數(shù)據(jù)流圖設(shè)計局部E-R圖。

班級-學生-課程局部E-R圖5.3.4局部E-R圖設(shè)計【例5.5】根據(jù)教務管理系統(tǒng)數(shù)據(jù)流圖設(shè)計局部E-R圖。

學生-課程-教師局部E-R圖5.3.4局部E-R圖設(shè)計【例5.5】根據(jù)教務管理系統(tǒng)數(shù)據(jù)流圖設(shè)計局部E-R圖。

學生-課程-教師局部E-R圖5.3.4局部E-R圖設(shè)計實體設(shè)計遵從以下原則:(1)實體要盡可能少。(2)只考慮系統(tǒng)范圍內(nèi)的屬性。屬性設(shè)計遵從以下原則:(1)屬性必須是不可再分的,它不能再包含其他的屬性;(2)屬性不能和其他任何實體發(fā)生聯(lián)系。5.3.4局部E-R圖設(shè)計實體設(shè)計遵從以下原則:(1)實體要盡可能少。(2)只考慮系統(tǒng)范圍內(nèi)的屬性。屬性設(shè)計遵從以下原則:(1)屬性必須是不可再分的,它不能再包含其他的屬性;(2)屬性不能和其他任何實體發(fā)生聯(lián)系。5.3.4局部E-R圖設(shè)計【例5.6】將教師實體中的職稱屬性轉(zhuǎn)換為職稱實體。

職稱屬性轉(zhuǎn)換為職稱實體5.3.4局部E-R圖設(shè)計【例5.7】將病人實體的病房屬性轉(zhuǎn)換為病房實體。

病房屬性轉(zhuǎn)換為病房實體5.3.5總體E-R圖設(shè)計集成局部E-R圖,設(shè)計總體E-R圖時的步驟如下:(1)合并分E-R圖,解決沖突問題,生成初步E-R圖。(2)重構(gòu)初步E-R圖,消除冗余,得到總體E-R圖1.合并分E-R圖時的沖突及其解決方法合并分E-R圖時的沖突:各局部E-R圖存在許多不一致的地方。沖突主要有3種類型:(1)屬性沖突(2)命名沖突(3)結(jié)構(gòu)沖突屬性沖突屬性沖突主要包括以下兩種類型:①

屬性域沖突。屬性域沖突又分為同一屬性的類型、取值范圍和取值集合3種情況。②

屬性取值單位沖突。例如:學生的學號,有的部門定義為整型,而有的部門定義為字符串類型,這就是類型沖突。命名沖突命名沖突主要包括以下兩種類型:①

同名異義沖突②異名同義沖突。結(jié)構(gòu)沖突結(jié)構(gòu)沖突主要以下3種類型。①

同一對象在不同的E-R圖中具有不同的抽象,有的圖中將其作為屬性,有的圖中將其作為實體。②同一實體在不同的E-R圖中其屬性的個數(shù)和排列順序不完全一樣。③兩個實體在不同的局部E-R圖中具有不同的聯(lián)系類型。舉例將例5.5中教務管理系統(tǒng)的各局部E-R圖合并生成全局E-R圖。(1)將院系-專業(yè)-班級局部E-R圖與院系-教師-職稱局部E-R圖合并。舉例將例5.5中教務管理系統(tǒng)的各局部E-R圖合并生成全局E-R圖。(2)將班級-學生-課程局部E-R圖和合并后的院系-專業(yè)-班級-教師-職稱局部E-R圖合并。舉例將例5.5中教務管理系統(tǒng)的各局部E-R圖合并生成全局E-R圖。(3)將學生-課程-教師局部E-R圖和合并后的院系-專業(yè)-班級-教師-職稱-學生-課程局部E-R圖合并?!纠?.8】將在線點餐系統(tǒng)的各局部E-R圖合并生成全局E-R圖。在線點餐系統(tǒng)的各局部E-R圖包括區(qū)域-餐廳-菜品、顧客-菜品和送餐員-派送單3個局部E-R圖,參見教材圖5.29~圖5.31?!纠?.8】在線點餐系統(tǒng)全局E-R圖的設(shè)計步驟如下。(1)將區(qū)域-餐廳-菜品局部E-R圖與顧客-菜品局部E-R圖合并。其中涉及將訂單由屬性改為實體。(2)將圖5.33所示的E-R圖繼續(xù)與送餐員-派送單局部E-R圖進行合并。其中需要處理命名沖突和結(jié)構(gòu)沖突兩個問題。2.總體E-R圖的優(yōu)化優(yōu)化總體E-R圖的目的:盡量避免冗余信息冗余:是指冗余數(shù)據(jù)或?qū)嶓w間的冗余聯(lián)系。(1)冗余數(shù)據(jù)是指可由基本數(shù)據(jù)導出的數(shù)據(jù)(2)冗余聯(lián)系是指可由其他聯(lián)系導出的聯(lián)系。消除冗余的方法:(1)合并相關(guān)實體(2)消除冗余屬性(3)消除冗余聯(lián)系合并相關(guān)實體合并實體時一般選擇具有相同主碼,或者是具有一對一聯(lián)系的兩個實體合并。并不是所有的類似情況都一定要進行合并,而是要根據(jù)具體情況衡量。例如:病人和病歷實體消除冗余屬性冗余屬性的出現(xiàn)有以下兩種情況:(1)相同的非主屬性出現(xiàn)在了幾個不同實體中。(2)一個屬性雖然和其他屬性沒有重復,但是它的值可以通過其他屬性值計算或推導得出。例如:學生實體的出生日期屬性和年齡屬性消除冗余聯(lián)系冗余聯(lián)系的出現(xiàn)有以下兩種情況。(1)不同的聯(lián)系出現(xiàn)在了兩個有關(guān)聯(lián)的實體中。(2)在3個及3個以上有關(guān)聯(lián)實體的E-R圖中,2個實體間的聯(lián)系可以通過其他屬性值計算推導得出冗余屬性,此時的聯(lián)系就是冗余聯(lián)系?!纠?.9】消除圖5.35所示的職工-部門E-R圖中存在的冗余聯(lián)系?!纠?.10】消除倉庫-材料-零件-產(chǎn)品E-R圖中存在的冗余聯(lián)系。邏輯結(jié)構(gòu)設(shè)計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è)計用戶子模式。5.4.2概念模型向關(guān)系模型轉(zhuǎn)換的原則將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是要將實體集、屬性及聯(lián)系轉(zhuǎn)換為相應的關(guān)系模式。概念模型向關(guān)系模型轉(zhuǎn)換的原則涉及以下2方面內(nèi)容:1.實體集、屬性轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換規(guī)則2.實體集間的聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則1.實體集、屬性轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換規(guī)則將概念模型中的一個實體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼,關(guān)系的結(jié)構(gòu)是關(guān)系模式。2.實體集間的聯(lián)系轉(zhuǎn)換為關(guān)系模式的轉(zhuǎn)換規(guī)則實體集間的聯(lián)系轉(zhuǎn)換為關(guān)系模型時,分以下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)系與任意一端實體所對應的關(guān)系合并。在被合并關(guān)系中增加屬性,新增的屬性為與聯(lián)系相關(guān)的另一端實體對應關(guān)系的碼,被合并關(guān)系中的碼不變。②將聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系。將與該聯(lián)系相連的各實體的碼及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,且關(guān)系的碼為兩端實體碼的聯(lián)合。【例5.11】將圖5.38所示的1∶1聯(lián)系轉(zhuǎn)換為關(guān)系模式。【例5.11】方案1:將每個實體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,1∶1的聯(lián)系形成一個擔任領(lǐng)導關(guān)系獨立存在。該方案形成的關(guān)系模型如下:職工(職工號,姓名,出生日期,職稱)部門(部門號,名稱,地址,聯(lián)系電話)擔任領(lǐng)導(職工號,部門號)【例5.11】方案2:“擔任領(lǐng)導”與“職工”關(guān)系合并。該方案形成的關(guān)系模型如下:職工(職工號,姓名,出生日期,職稱,部門號)部門(部門號,名稱,地址,聯(lián)系電話)【例5.11】方案3:“擔任領(lǐng)導”與“部門”關(guān)系合并。該方案形成的關(guān)系模型如下:職工(職工號,姓名,出生日期,職稱)部門(部門號,名稱,地址,聯(lián)系電話,職工號)對比以上3種方案:方案1轉(zhuǎn)換得到的關(guān)系多,增加了系統(tǒng)的復雜性;方案2中的職工關(guān)系,由于并不是每個職工都擔任一個部門的領(lǐng)導,會造成部門號屬性的空值過多。比較起來,方案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)換為一個獨立的關(guān)系。新關(guān)系的屬性由與該聯(lián)系相連的各實體的碼及聯(lián)系本身的屬性組成,該關(guān)系的碼為n端實體的碼。②將聯(lián)系與n端實體所對應的關(guān)系合并。在n端實體對應的關(guān)系中增加新屬性,新屬性由聯(lián)系對應的1端實體的碼和聯(lián)系自身的屬性構(gòu)成,新增屬性后n端實體對應關(guān)系的碼不變?!纠?.12】將圖5.39所示的1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.12】方案1:將每個實體轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,1∶n聯(lián)系形成新的關(guān)系獨立存在。該方案形成的關(guān)系模型如下:專業(yè)(專業(yè)號,專業(yè)名)班級(班號,班名,人數(shù))屬于(專業(yè)號,班號,年級)【例5.12】方案2:與n端實體合并。該方案形成的關(guān)系模型如下:專業(yè)(專業(yè)號,專業(yè)名)班級(班號,班名,人數(shù),專業(yè)號,年級)對比以上兩個方案:方案1轉(zhuǎn)換得到的關(guān)系較多,適用于屬于關(guān)系頻繁改變的應用場景;方案2的關(guān)系少,適用于屬于關(guān)系變化概率較小的應用場景?!纠?.13】將圖5.40所示的1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.13】方案1:將實體轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,1∶n聯(lián)系形成新的關(guān)系獨立存在,即轉(zhuǎn)換為兩個關(guān)系模式。該方案形成的關(guān)系模型如下:職工(職工號,姓名,年齡)領(lǐng)導(領(lǐng)導工號,職工號)【例5.13】方案2:方案2:將聯(lián)系與n端實體合并,轉(zhuǎn)換為一個關(guān)系模式。該方案形成的關(guān)系模型如下:職工(職工號,姓名,年齡,領(lǐng)導工號)對比以上兩種方案,方案2在充分表達原有數(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)系相連的各實體的碼及聯(lián)系本身的屬性均轉(zhuǎn)換為新關(guān)系的屬性,新關(guān)系的碼為兩個相連實體碼的組合(該碼為多屬性構(gòu)成的組合碼)?!纠?.14】將圖5.41所示的1∶n聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.14】在將該E-R圖轉(zhuǎn)換為關(guān)系模型時,將每個實體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,m∶n的選修聯(lián)系形成一個獨立的關(guān)系,即轉(zhuǎn)換為3個關(guān)系模式。該方案形成的關(guān)系模型如下。學生(學號,姓名,性別,年齡,系編號)課程(課程號,課程名稱,課程類型,學時,學分)選修(學號,課程號,成績)3個或3個以上實體集間的多元聯(lián)系的轉(zhuǎn)換方法將概念模型中的一個實體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼,關(guān)系的結(jié)構(gòu)是關(guān)系模式?!纠?.15】將圖5.42所示的3個實體集間的多元聯(lián)系轉(zhuǎn)換為關(guān)系模式?!纠?.15】在將該E-R圖轉(zhuǎn)換為關(guān)系模型時,3個實體對應3個關(guān)系,對于2個多對多的多元聯(lián)系,需要新建一個獨立的關(guān)系,即轉(zhuǎn)換為4個關(guān)系模式。該方案形成的關(guān)系模型如下。供應商(供應商號,供應商名,地址)零件(零件號,零件名,價格)產(chǎn)品(產(chǎn)品號,產(chǎn)品名,型號)供應(供應商號,零件號,產(chǎn)品號,數(shù)量)5.4.3邏輯模型優(yōu)化及外模式設(shè)計數(shù)據(jù)模型的優(yōu)化:根據(jù)軟件系統(tǒng)應用的需要對邏輯模型進行適當?shù)男薷暮驼{(diào)整,進一步提高數(shù)據(jù)庫應用系統(tǒng)的性能。1.數(shù)據(jù)模型的優(yōu)化常用的優(yōu)化方法包括規(guī)范化和分解2種。(1)規(guī)范化。使用關(guān)系規(guī)范化理論,逐一分析各關(guān)系模式中包含的屬性間是否存在數(shù)據(jù)依賴,根據(jù)分析結(jié)果確定各關(guān)系模式的范式等級。說明:在進行關(guān)系規(guī)范化時,規(guī)范化等級并不是越高越好,要結(jié)合具體的應用需求進行。(2)分解。使用模式分解技術(shù)(水平分解或垂直分解)將一個表分解為兩個或多個表。2.用戶外模式設(shè)計用戶外模式也稱子模式,是設(shè)計人員依據(jù)用戶對數(shù)據(jù)的使用要求、習慣及數(shù)據(jù)權(quán)限分配與安全性要求,對某一關(guān)系模式建立的適合具體局部應用的屬性子集。在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,有以下兩種用戶外模式設(shè)計的實現(xiàn)方法。(1)創(chuàng)建局部應用視圖。(2)使用垂直分解技術(shù)創(chuàng)建用戶外模式。設(shè)計用戶外模式的意義有以下3點:(1)定義更符合用戶習慣的別名。(2)對不同級別的用戶設(shè)計不同的外模式。(3)簡化用戶操作,提高查詢效率。物理結(jié)構(gòu)設(shè)計05相關(guān)概念數(shù)據(jù)庫的物理結(jié)構(gòu)(即內(nèi)模式):指實現(xiàn)在物理設(shè)備上的存儲結(jié)構(gòu)和存儲方法。物理結(jié)構(gòu)設(shè)計:基于優(yōu)化后的數(shù)據(jù)庫邏輯結(jié)構(gòu),數(shù)據(jù)庫設(shè)計人員利用具體數(shù)據(jù)庫管理系統(tǒng)所提供的方法和技術(shù),選取一個最適合應用要求的數(shù)據(jù)庫存儲結(jié)構(gòu)和數(shù)據(jù)存取路徑,設(shè)計合理的數(shù)據(jù)存儲位置,分配適當?shù)拇鎯臻g,設(shè)計出高效的、可實現(xiàn)的物理數(shù)據(jù)庫結(jié)構(gòu)的過程。5.5.1物理結(jié)構(gòu)設(shè)計的步驟數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計分2步進行:(1)確定數(shù)據(jù)的物理結(jié)構(gòu)。即確定數(shù)據(jù)庫的存取方法和存儲結(jié)構(gòu)。(2)對物理結(jié)構(gòu)進行評價。對物理結(jié)構(gòu)評價的重點是時間效率和空間效率。說明:物理結(jié)構(gòu)設(shè)計的結(jié)果并不唯一,但數(shù)據(jù)庫設(shè)計人員追求的設(shè)計目標一致。5.5.1物理結(jié)構(gòu)設(shè)計的步驟進行物理結(jié)構(gòu)設(shè)計需要注意以下幾個問題:(1)熟悉具體選定的數(shù)據(jù)庫管理系統(tǒng)的特點,全面掌握選定數(shù)據(jù)庫管理系統(tǒng)的功能、數(shù)據(jù)庫管理系統(tǒng)提供的物理環(huán)境和工具及其限制條件。(2)詳細分析將要在數(shù)據(jù)庫上運行的事務,了解計算機系統(tǒng)的性能和數(shù)據(jù)使用頻率?;陉P(guān)系數(shù)據(jù)庫理論的物理結(jié)構(gòu)設(shè)計包含以下兩方面的內(nèi)容。(1)為關(guān)系模式選取合適的存取方法。(2)確定關(guān)系、索引、聚簇、日志和備份等的物理存儲結(jié)構(gòu)。5.5.2確定數(shù)據(jù)存取方法設(shè)計人員在確定數(shù)據(jù)存取方法時,需要詳細掌握與數(shù)據(jù)庫相關(guān)的3種信息。(1)查詢事務信息。(2)更新事務信息。(3)每個事務在各個關(guān)系上運行的頻率和性能要求。關(guān)系數(shù)據(jù)庫系統(tǒng)提供3種數(shù)據(jù)存取方法:(1)索引方法(2)聚簇方法(3)散列方法1.索引及其創(chuàng)建原則索引:建立在數(shù)據(jù)庫表上的一個附加表,表中存儲了滿足用戶常用的查詢操作的列值和對應的記錄地址。在建立索引時,需要遵循以下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)建原則索引的局限性:耗費存儲空間資源,付出系統(tǒng)維護代價。創(chuàng)建的索引數(shù)量需要結(jié)合具體數(shù)據(jù)庫的操作考慮。查詢操作多,修改操作少,可以多創(chuàng)建索引;反之,則要少創(chuàng)建一些。2.聚簇及其創(chuàng)建原則聚簇:指把經(jīng)常進行的連接操作中相關(guān)的屬性或?qū)傩越M取值相同的元組集中存放在連續(xù)的物理塊上,以提高基于這些屬性或?qū)傩越M值的查詢速度,這些屬性或?qū)傩越M稱為聚簇碼。設(shè)計聚簇分以下2步進行:(1)根據(jù)規(guī)則確定候選聚簇。(2)從候選聚簇中去除不必要的關(guān)系。2.聚簇及其創(chuàng)建原則在設(shè)計候選聚簇時,需要遵循以下4個原則。(1)經(jīng)常在一起進行連接操作的關(guān)系,可以創(chuàng)建一個聚簇。(2)若某關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等、比較條件中,則該單個關(guān)系可建立聚簇。(3)若某關(guān)系的一個(或一組)屬性值的重復率很高,則該單個關(guān)系可建立聚簇。對應每個聚簇碼值的平均元組不能太少,若元組數(shù)量太少,聚簇的效果不明顯。(4)若某關(guān)系的主要應用是通過聚簇碼進行訪問或連接,而其他屬性訪問關(guān)系的操作很少時,可以使用聚簇。尤其當SQL語句中含有與聚簇有關(guān)的ORDER_BY、GROUP_BY、UNION、DISTINCT等子句或短語時,使用聚簇特別有利,可以省去對結(jié)果集的排序操作。反之,當關(guān)系較少利用聚簇碼操作時,最好不要使用聚簇。2.聚簇及其創(chuàng)建原則說明:(1)對于數(shù)據(jù)更新不頻繁的關(guān)系,適合創(chuàng)建聚簇。(2)一個數(shù)據(jù)庫可以建立多個聚簇,但一個關(guān)系只能加入一個聚簇。(3)聚簇功能不僅適用于單個關(guān)系,而且適用于經(jīng)常進行連接操作的多個關(guān)系。2.聚簇及其創(chuàng)建原則設(shè)計好候選聚簇后,設(shè)計人員采用如下方法刪去其中不必要的關(guān)系:(1)從候選聚簇中刪除經(jīng)常進行全表掃描的關(guān)系。(2)從候選聚簇中刪除更新操作遠多于連接操作的關(guān)系。(3)由于一個關(guān)系不能同時加入多個聚簇,當出現(xiàn)不同的聚簇中可能包含同一個關(guān)系的情況時,設(shè)計人員需要從多個聚簇方案(包括不建立聚簇)中選擇一個較優(yōu)的聚簇,選取標準是在這個聚簇上運行各種事務的總代價最小。2.聚簇及其創(chuàng)建原則創(chuàng)建聚簇需要注意的2個問題:(1)在已有的關(guān)系上建立聚簇,會移動關(guān)系中元組的物理存儲位置,原有關(guān)系上創(chuàng)建的索引將不再有效,要想使用原索引就必須重建原有索引。(2)聚簇碼值應當相對穩(wěn)定。5.5.3確定數(shù)據(jù)的物理存儲結(jié)構(gòu)確定數(shù)據(jù)的物理存儲結(jié)構(gòu),主要是確定數(shù)據(jù)庫中各種數(shù)據(jù)(包括關(guān)系、日志、備份等)在計算機中的存放位置和存儲結(jié)構(gòu)。確定數(shù)據(jù)的存放位置和存儲結(jié)構(gòu)需要綜合考慮存取時間、存儲空間利用率和維護代價3方面的因素。這3方面常常相互矛盾,需要進行權(quán)衡,選擇一個折中方案。1.確定數(shù)據(jù)的存放位置當計算機中包含多個磁盤時,確定存放位置的方法有以下4種:(1)將表和索引放在不同的磁盤上。(2)將比較大的表放在兩個磁盤上。(3)將日志文件、重要的系統(tǒng)備份文件與數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤上。(4)對經(jīng)常存取或存取時間要求較高的對象(如表、索引)應放在高速存儲器(如硬盤)上;對存取頻率小或存取時間要求低的對象(如數(shù)據(jù)庫的數(shù)據(jù)備份和日志文件備份等只在故障恢復時使用),可以存放在低速存儲設(shè)備上。2.確定系統(tǒng)配置系統(tǒng)配置變量、存儲分配參數(shù)有很多,這些參數(shù)值影響存取時間和存儲空間的分配。在初始情況下,系統(tǒng)為這些變量賦了合理的默認值。但是這些默認值不一定適合每一種應用環(huán)境,在進行數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計時,設(shè)計人員和數(shù)據(jù)庫管理員需要根據(jù)具體的應用環(huán)境適當調(diào)整這些參數(shù)值,以改善系統(tǒng)的性能,使其最優(yōu)化。在進行物理結(jié)構(gòu)設(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論