《數(shù)據(jù)庫(kù)原理及應(yīng)用》課件-第6章 數(shù)據(jù)庫(kù)設(shè)計(jì) 2_第1頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》課件-第6章 數(shù)據(jù)庫(kù)設(shè)計(jì) 2_第2頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》課件-第6章 數(shù)據(jù)庫(kù)設(shè)計(jì) 2_第3頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》課件-第6章 數(shù)據(jù)庫(kù)設(shè)計(jì) 2_第4頁(yè)
《數(shù)據(jù)庫(kù)原理及應(yīng)用》課件-第6章 數(shù)據(jù)庫(kù)設(shè)計(jì) 2_第5頁(yè)
已閱讀5頁(yè),還剩139頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章數(shù)據(jù)庫(kù)設(shè)計(jì)

本章要點(diǎn)

數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo)就是根據(jù)特定的用戶(hù)需求及一定的計(jì)算機(jī)軟硬件環(huán)境,設(shè)計(jì)并優(yōu)化數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),建立高效、安全的數(shù)據(jù)庫(kù),為數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)和運(yùn)行提供良好的平臺(tái)。數(shù)據(jù)庫(kù)技術(shù)是研究如何對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一,有效地組織、管理和加工處理的計(jì)算機(jī)技術(shù),該技術(shù)已應(yīng)用于社會(huì)方方面面,大到一個(gè)國(guó)家的信息中心,小到個(gè)體私人小企業(yè),都會(huì)利用數(shù)據(jù)庫(kù)技術(shù)對(duì)數(shù)據(jù)進(jìn)行有效的管理,達(dá)到提高生產(chǎn)效率和決策水平。目前,一個(gè)國(guó)家的數(shù)據(jù)庫(kù)建設(shè)規(guī)模(指數(shù)據(jù)庫(kù)的個(gè)數(shù)、種類(lèi))、數(shù)據(jù)庫(kù)的信息量的大小和使用頻度已成為衡量這個(gè)國(guó)家信息化程度的重要標(biāo)志之一。第6章數(shù)據(jù)庫(kù)設(shè)計(jì)

本章要點(diǎn)本章詳細(xì)的介紹了設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)需經(jīng)歷的六個(gè)階段,即需求分析、概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、實(shí)施與運(yùn)行維護(hù)。其中概念結(jié)構(gòu)設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì)是本章的重點(diǎn),也是掌握本章的難點(diǎn)所在。本章邏輯結(jié)構(gòu)6.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述

6.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)、內(nèi)容和特點(diǎn)

6.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述

6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟6.2系統(tǒng)需求分析

6.2.1需求分析的任務(wù)

6.2.2需求分析的方法6.3概念結(jié)構(gòu)設(shè)計(jì)

6.3.1概念結(jié)構(gòu)設(shè)計(jì)的必要性本章邏輯結(jié)構(gòu)

6.3.2概念模型設(shè)計(jì)的特點(diǎn)

6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟6.4邏輯結(jié)構(gòu)設(shè)計(jì)

6.4.1邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)和步驟

6.4.2初始化關(guān)系模式設(shè)計(jì)

6.4.3關(guān)系模式的規(guī)范化

6.4.4關(guān)系模式的評(píng)價(jià)與改進(jìn)6.5數(shù)據(jù)庫(kù)物理設(shè)計(jì)

6.5.1確定物理結(jié)構(gòu)

6.5.2評(píng)價(jià)物理結(jié)構(gòu)6.6數(shù)據(jù)庫(kù)實(shí)施本章邏輯結(jié)構(gòu)

6.6.1建立實(shí)際數(shù)據(jù)庫(kù)結(jié)構(gòu)

6.6.2裝入數(shù)據(jù)

6.6.3編制與調(diào)試應(yīng)用程序

6.6.4數(shù)據(jù)庫(kù)試運(yùn)行

6.6.5整理文檔6.7數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)

6.7.1數(shù)據(jù)庫(kù)的安全性、完整性

6.7.2監(jiān)視并改善數(shù)據(jù)庫(kù)性能

6.7.3數(shù)據(jù)庫(kù)的重組織和重構(gòu)造6.9小結(jié)習(xí)題6.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述6.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)、內(nèi)容和特點(diǎn)6.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟6.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)、內(nèi)容和特點(diǎn)1、數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)數(shù)據(jù)庫(kù)設(shè)計(jì)是指根據(jù)用戶(hù)需求研制數(shù)據(jù)庫(kù)結(jié)構(gòu)并應(yīng)用的過(guò)程。具體的說(shuō),數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能有效地存儲(chǔ)數(shù)據(jù),滿(mǎn)足用戶(hù)的信息要求和處理要求,也就是把現(xiàn)實(shí)世界中的數(shù)據(jù),根據(jù)各種應(yīng)用處理的要求,加以合理組織,使之能滿(mǎn)足硬件和操作系統(tǒng)的特性,利用已有的DBMS來(lái)建立能夠?qū)崿F(xiàn)系統(tǒng)目標(biāo)的數(shù)據(jù)庫(kù)。返回本節(jié)首頁(yè)6.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)、內(nèi)容和特點(diǎn)2、數(shù)據(jù)庫(kù)設(shè)計(jì)的內(nèi)容

(1)數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)是指根據(jù)給定的應(yīng)用環(huán)境,進(jìn)行數(shù)據(jù)庫(kù)的模式設(shè)計(jì)或子模式的設(shè)計(jì)。它包括數(shù)據(jù)庫(kù)的概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。

(2)數(shù)據(jù)庫(kù)的行為設(shè)計(jì)是指數(shù)據(jù)庫(kù)用戶(hù)的行為和動(dòng)作。在數(shù)據(jù)庫(kù)系統(tǒng)中,用戶(hù)的行為和動(dòng)作指用戶(hù)對(duì)數(shù)據(jù)庫(kù)的操作,這些要通過(guò)應(yīng)用程序來(lái)實(shí)現(xiàn),所以數(shù)據(jù)庫(kù)的行為設(shè)計(jì)就是操作數(shù)據(jù)庫(kù)的應(yīng)用程序的設(shè)計(jì)。即設(shè)計(jì)應(yīng)用程序、事務(wù)處理等,所以行為設(shè)計(jì)是動(dòng)態(tài)的,行為設(shè)計(jì)又稱(chēng)為動(dòng)態(tài)模式設(shè)計(jì)。返回本節(jié)首頁(yè)6.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)、內(nèi)容和特點(diǎn)3、數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)

(1)數(shù)據(jù)庫(kù)建設(shè)是硬件、軟件和干件(技術(shù)和管理的界面稱(chēng)為干件)的結(jié)合。

三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)。

返回本節(jié)首頁(yè)6.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)、內(nèi)容和特點(diǎn)

所謂干件所謂干件就是技術(shù)和管理的界面,就是說(shuō)在數(shù)據(jù)庫(kù)建設(shè)過(guò)程當(dāng)中需要一定的技術(shù)和管理,而干件就是體現(xiàn)出這些內(nèi)容的界面,就個(gè)人的理解它是凌駕于軟件之上的一層。也就是說(shuō)數(shù)據(jù)庫(kù)的建設(shè)少不了最基礎(chǔ)的硬件建設(shè),建立于硬件基礎(chǔ)上需要的軟件處理,以及利用軟件開(kāi)發(fā)的干件(即軟件技術(shù)服務(wù)于管理需要),有了這三者的結(jié)合,才真正能夠構(gòu)成一個(gè)完整的發(fā)揮良好作用的數(shù)據(jù)庫(kù)。當(dāng)然數(shù)據(jù)庫(kù)最根本的內(nèi)容還要屬基礎(chǔ)數(shù)據(jù),這也就是很多數(shù)據(jù)庫(kù)設(shè)計(jì)方面的文章上常提到的“三分技術(shù),七分管理,十二分的基礎(chǔ)數(shù)據(jù)”,可以看出基礎(chǔ)數(shù)據(jù)的重要性。返回本節(jié)首頁(yè)干件示意圖6.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)、內(nèi)容和特點(diǎn)3、數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)

(1)數(shù)據(jù)庫(kù)建設(shè)是硬件、軟件和干件(技術(shù)和管理的界面稱(chēng)為干件)的結(jié)合。三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)。

(2)數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)該與應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合,也就是說(shuō)要把行為設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì)密切結(jié)合起來(lái)是一種“反復(fù)探尋,逐步求精的過(guò)程”。返回本節(jié)首頁(yè)6.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述

比較著名的有新奧爾良(NewOrleans)法,它是目前公認(rèn)的比較完整和權(quán)威的一種規(guī)范設(shè)計(jì)法,它將數(shù)據(jù)庫(kù)設(shè)計(jì)分為四個(gè)階段:需求分析(分析用戶(hù)的需求)、概念設(shè)計(jì)(信息分析和定義)、邏輯設(shè)計(jì)(設(shè)計(jì)的實(shí)現(xiàn))和物理設(shè)計(jì)(物理數(shù)據(jù)庫(kù)設(shè)計(jì)),其后,S.B.Yao等又將數(shù)據(jù)庫(kù)設(shè)計(jì)分為五個(gè)步驟。目前大多數(shù)設(shè)計(jì)方法都起源于新奧爾良法,并在設(shè)計(jì)的每個(gè)階段采用一些輔助方法來(lái)具體實(shí)現(xiàn),下面簡(jiǎn)單介紹幾種比較有影響的設(shè)計(jì)方法。

1、基于E-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)方法

E-R方法的基本步驟是:①確定實(shí)體類(lèi)型;②確定實(shí)體聯(lián)系;③畫(huà)出E-R圖;④確定屬性;⑤將E-R圖轉(zhuǎn)換成某個(gè)DBMS可接受的邏輯數(shù)據(jù)模型;⑥設(shè)計(jì)記錄格式。返回本節(jié)首頁(yè)6.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述

2、基于3NF的數(shù)據(jù)庫(kù)設(shè)計(jì)方法基于3NF的數(shù)據(jù)庫(kù)設(shè)計(jì)方法的基本思想是在需求分析的基礎(chǔ)上確定數(shù)據(jù)庫(kù)模式中的全部屬性與屬性之間的依賴(lài)關(guān)系,將它們組織一個(gè)單一的關(guān)系模式中,然后再將其投影分解,消除其中不符合3NF的約束條件,把其規(guī)范成若干個(gè)3NF關(guān)系模式的集合。

3、計(jì)算機(jī)輔助數(shù)據(jù)庫(kù)設(shè)計(jì)方法計(jì)算機(jī)輔助數(shù)據(jù)庫(kù)設(shè)計(jì)主要分為,需求分析、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)幾個(gè)步驟。設(shè)計(jì)中,哪些可在計(jì)算機(jī)輔助下進(jìn)行?能否實(shí)現(xiàn)全自動(dòng)化設(shè)計(jì)呢?這是計(jì)算機(jī)輔助數(shù)據(jù)庫(kù)設(shè)計(jì)需要研究的課題。返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

按照規(guī)范化的設(shè)計(jì)方法,以及數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程,數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程可分為以下六個(gè)設(shè)計(jì)階段(如圖6.1)需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)的實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)。數(shù)據(jù)庫(kù)設(shè)計(jì)中,前兩個(gè)階段是面向用戶(hù)的應(yīng)用要求,面向具體的問(wèn)題,中間兩個(gè)階段是面向數(shù)據(jù)庫(kù)管理系統(tǒng),最后兩個(gè)階段是面向具體的實(shí)現(xiàn)方法。前四個(gè)階段可統(tǒng)稱(chēng)為“分析和設(shè)計(jì)階段”,后面兩個(gè)階段統(tǒng)稱(chēng)為“實(shí)現(xiàn)和運(yùn)行階段”。按照規(guī)范化的設(shè)計(jì)方法,以及數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程,數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程可分為以下六個(gè)設(shè)計(jì)階段(如圖6.1)需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)的實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)。返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

圖6.1數(shù)據(jù)庫(kù)設(shè)計(jì)步驟返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

以下是數(shù)據(jù)庫(kù)設(shè)計(jì)六個(gè)步驟的簡(jiǎn)要內(nèi)容:

1、需求分析階段需求分析是指準(zhǔn)確了解和分析用戶(hù)的需求,這是最困難、最費(fèi)時(shí)、最復(fù)雜的一步,但也是最重要的一步。它決定了以后各步設(shè)計(jì)的速度和質(zhì)量。

2、概念結(jié)構(gòu)設(shè)計(jì)階段概念結(jié)構(gòu)設(shè)計(jì)是指對(duì)用戶(hù)的需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型,是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。

3、邏輯結(jié)構(gòu)設(shè)計(jì)階段邏輯結(jié)構(gòu)設(shè)計(jì)是指將概念模型轉(zhuǎn)換成某個(gè)DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

4、物理設(shè)計(jì)階段物理設(shè)計(jì)是指為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)方法)。5、數(shù)據(jù)庫(kù)實(shí)施階段數(shù)據(jù)庫(kù)實(shí)施是指建立數(shù)據(jù)庫(kù),編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫(kù),并進(jìn)行試運(yùn)行。6、數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)階段數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)是指對(duì)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)際正常運(yùn)行使用,并時(shí)時(shí)進(jìn)行評(píng)價(jià)、調(diào)整與修改。

返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

表6.1數(shù)據(jù)庫(kù)各個(gè)設(shè)計(jì)階段的描述返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

可以看出,設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)不可能一蹴而就的,它往往是上述各個(gè)階段的不斷反復(fù)。以上六個(gè)階段是從數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)的全過(guò)程來(lái)考察數(shù)據(jù)庫(kù)設(shè)計(jì)的問(wèn)題。因此,它既是數(shù)據(jù)庫(kù)也是應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程。在設(shè)計(jì)過(guò)程中,努力使數(shù)據(jù)庫(kù)設(shè)計(jì)和系統(tǒng)其他部分的設(shè)計(jì)緊密結(jié)合,把數(shù)據(jù)和處理的需求收集,分析,抽象,設(shè)計(jì)和實(shí)現(xiàn)在各個(gè)階段同時(shí)進(jìn)行、相互參照、相互補(bǔ)充,以完善兩個(gè)方面的設(shè)計(jì)。按照這個(gè)原則,數(shù)據(jù)庫(kù)各個(gè)階段的設(shè)計(jì)可用圖6.2描述。返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

如圖6.2所示:需求分析階段,綜合各個(gè)用戶(hù)的應(yīng)用需求;在概念設(shè)計(jì)階段形成獨(dú)立于機(jī)器特點(diǎn),獨(dú)立于各個(gè)DBMS產(chǎn)品的概念模型,在本書(shū)中就是E-R圖;在邏輯設(shè)計(jì)階段將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫(kù)產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型中的關(guān)系模式;然后根據(jù)用戶(hù)處理的要求、安全性、完整性要求等,在基本表的基礎(chǔ)上再建立必要的視圖(可認(rèn)為是外模式或子模式);在物理設(shè)計(jì)階段,根據(jù)DBMS特點(diǎn)和處理性能等的需要,進(jìn)行物理設(shè)計(jì)(如存儲(chǔ)安排、建立索引等),形成數(shù)據(jù)庫(kù)內(nèi)模式;實(shí)施階段開(kāi)發(fā)設(shè)計(jì)人員基于外模式,進(jìn)行系統(tǒng)功能模塊的編碼與調(diào)試;設(shè)計(jì)成功的話(huà)就進(jìn)入系統(tǒng)的運(yùn)行與維護(hù)階段。返回本節(jié)首頁(yè)6.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

圖6.2數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程與數(shù)據(jù)庫(kù)各級(jí)模式返回本節(jié)首頁(yè)6.2系統(tǒng)需求分析

需求分析簡(jiǎn)單的說(shuō)是分析用戶(hù)的要求,需求分析是設(shè)計(jì)數(shù)據(jù)庫(kù)的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶(hù)的實(shí)際需求,將直接影響到后面的各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理與實(shí)用。也就是說(shuō)如果這一步走得不對(duì),獲取的信息或分析結(jié)果就有誤,那么后面的各步設(shè)計(jì)即使再優(yōu)化也只能前功盡棄。因此,必須高度重視系統(tǒng)的需求分析。6.2.1需求分析的任務(wù)6.2.2需求分析的方法6.2.1系統(tǒng)需求分析

需求分析的任務(wù)需求分析的任務(wù)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,通過(guò)充分對(duì)原系統(tǒng)的工作概況的了解,明確用戶(hù)的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.

數(shù)據(jù)庫(kù)需求分析的任務(wù)主要包括“數(shù)據(jù)或信息”和“處理”兩個(gè)方面:(1)信息要求:指用戶(hù)需要從數(shù)據(jù)庫(kù)中獲得信息的內(nèi)容與性質(zhì)。由信息要求可以導(dǎo)出各種數(shù)據(jù)要求。(2)處理要求:指用戶(hù)有什么處理要求(如響應(yīng)時(shí)間、處理方式等),最終要實(shí)現(xiàn)什么處理功能。返回本節(jié)首頁(yè)6.2.1需求分析的任務(wù)

具體而言,需求分析階段的任務(wù)包括以下方面:1、調(diào)查、收集、分析用戶(hù)需求,確定系統(tǒng)邊界具體的做法是:

(1)調(diào)查組織機(jī)構(gòu)情況。包括了解該組織的部門(mén)組成情況、各部門(mén)的職責(zé)等,為分析信息流程做準(zhǔn)備。

(2)調(diào)查各部門(mén)的業(yè)務(wù)活動(dòng)情況,包括了解各部門(mén)輸入和使用什么數(shù)據(jù),如何加工處理這些數(shù)據(jù)?輸出什么信息?輸出到什么部門(mén)?輸出結(jié)果的格式是什么?這是調(diào)查的重點(diǎn)返回本節(jié)首頁(yè)6.2.1需求分析的任務(wù)(3)在熟悉業(yè)務(wù)的基礎(chǔ)上,明確用戶(hù)對(duì)新系統(tǒng)的各種要求,如信息要求,處理要求,完全性和完整性要求。

(4)確定系統(tǒng)邊界。即確定哪些活動(dòng)由計(jì)算機(jī)和將來(lái)由計(jì)算機(jī)來(lái)完成,哪些只能由人工來(lái)完成。由計(jì)算機(jī)完成的功能是新系統(tǒng)應(yīng)該實(shí)現(xiàn)的功能。

2、編寫(xiě)系統(tǒng)需求分析說(shuō)明書(shū)系統(tǒng)需求分析說(shuō)明書(shū)也稱(chēng)系統(tǒng)需求規(guī)范說(shuō)明書(shū),是系統(tǒng)分析階段的最后工作,是對(duì)需求分析階段的一個(gè)總結(jié),編寫(xiě)系統(tǒng)需求分析說(shuō)明書(shū)是一個(gè)不斷反復(fù)、逐步完善的過(guò)程。系統(tǒng)需求分析說(shuō)明書(shū)一般應(yīng)包括如下內(nèi)容:返回本節(jié)首頁(yè)6.2.1需求分析的任務(wù)2、編寫(xiě)系統(tǒng)需求分析說(shuō)明書(shū)(1)系統(tǒng)概況,包括系統(tǒng)的目標(biāo)、范圍、背景、歷史和現(xiàn)狀等;(2)系統(tǒng)的原理和技術(shù);(3)系統(tǒng)總體結(jié)構(gòu)和子系統(tǒng)結(jié)構(gòu)說(shuō)明;(4)系統(tǒng)總體功能和子系統(tǒng)功能說(shuō)明;(5)系統(tǒng)數(shù)據(jù)處理概述、工程項(xiàng)目體制和設(shè)計(jì)階段劃分;(6)系統(tǒng)方案及技術(shù)、經(jīng)濟(jì)、實(shí)施方案可行性等。返回本節(jié)首頁(yè)6.2.1需求分析的任務(wù)隨系統(tǒng)需求分析說(shuō)明書(shū)可提供以下附件:(1)系統(tǒng)的軟硬件支持環(huán)境的選擇及規(guī)格要求(所選擇的數(shù)據(jù)庫(kù)管理系統(tǒng)、操作系統(tǒng)、計(jì)算機(jī)型號(hào)及其網(wǎng)絡(luò)環(huán)境等)。(2)組織機(jī)構(gòu)圖、組織之間聯(lián)系圖和各機(jī)構(gòu)功能業(yè)務(wù)一覽圖。(3)數(shù)據(jù)流程圖、功能模塊圖和數(shù)據(jù)字典等圖表。返回本節(jié)首頁(yè)6.2.2需求分析的方法

用于需求分析的方法有很多種,主要的方法有自頂向下和自底向上兩類(lèi),結(jié)構(gòu)化分析方法(StructuredAnalysis,簡(jiǎn)稱(chēng)SA)是一種簡(jiǎn)單實(shí)用的方法。SA方法是從最上層的系統(tǒng)組織入手,采用自頂向下、逐層分解的方法分析系統(tǒng)。

SA方法把每個(gè)系統(tǒng)都抽象成圖6.3的形式。圖6.3只是給出了最高層次抽象的系統(tǒng)概貌,要反映更詳細(xì)的內(nèi)容,可將處理功能分解為若干個(gè)子系統(tǒng),每個(gè)子系統(tǒng)還可以繼續(xù)分解,直到把系統(tǒng)工作過(guò)程表示清楚為止。在處理功能逐步分解的同時(shí),它們所用的數(shù)據(jù)也逐級(jí)分解,形成有若干層次的數(shù)據(jù)流圖。返回本節(jié)首頁(yè)6.2.2需求分析的方法圖6.3系統(tǒng)最高層數(shù)據(jù)抽象圖返回本節(jié)首頁(yè)6.2.2需求分析的方法

數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過(guò)程的關(guān)系。在SA方法中,處理過(guò)程的處理邏輯常常借助判定表和判定樹(shù)來(lái)描述。系統(tǒng)中的數(shù)據(jù)則借助數(shù)據(jù)字典(DD)來(lái)描述。下面介紹一下數(shù)據(jù)字典和數(shù)據(jù)流圖

1、數(shù)據(jù)字典數(shù)據(jù)字典是系統(tǒng)中各類(lèi)數(shù)據(jù)描述的集合,是各類(lèi)數(shù)據(jù)結(jié)構(gòu)和屬性的清單。它與數(shù)據(jù)流圖互為解釋?zhuān)瑪?shù)據(jù)字典貫穿于數(shù)據(jù)庫(kù)需求分析直到數(shù)據(jù)庫(kù)運(yùn)行的全過(guò)程,在不同的階段其內(nèi)容形式和用途各有區(qū)別,在需求分析階段,它通常包含以下五個(gè)部分內(nèi)容。返回本節(jié)首頁(yè)6.2.2需求分析的方法(1)數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說(shuō)明,別名,數(shù)據(jù)類(lèi)型,長(zhǎng)度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系,數(shù)據(jù)項(xiàng)之間的聯(lián)系},其中,取值范圍、與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系定義了數(shù)據(jù)的完整性約束條件。(2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說(shuō)明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}(3)數(shù)據(jù)流數(shù)據(jù)流描述={數(shù)據(jù)流名,說(shuō)明,數(shù)據(jù)流來(lái)源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}返回本節(jié)首頁(yè)6.2.2需求分析的方法(4)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說(shuō)明,編號(hào),流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取方式}(5)處理過(guò)程處理過(guò)程描述={處理過(guò)程名,說(shuō)明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡(jiǎn)要說(shuō)明}}返回本節(jié)首頁(yè)6.2.2需求分析的方法

其中簡(jiǎn)要說(shuō)明該處理過(guò)程的功能及處理要求:

●功能要求:該處理過(guò)程用來(lái)做什么。

●處理要求:處理頻度要求(如單位時(shí)間里處理多少事務(wù),多少數(shù)據(jù)量);響應(yīng)時(shí)間要求等。處理要求是后面物理設(shè)計(jì)的輸入及性能評(píng)價(jià)的標(biāo)準(zhǔn)。

最終形成的數(shù)據(jù)流圖和數(shù)據(jù)字典為“系統(tǒng)需求分析說(shuō)明書(shū)”的主要內(nèi)容,這是下一步進(jìn)行概念設(shè)計(jì)的基礎(chǔ)。返回本節(jié)首頁(yè)6.2.2需求分析的方法

2、數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFlowDiagram,簡(jiǎn)稱(chēng)DFD)表達(dá)了數(shù)據(jù)與處理的關(guān)系。數(shù)據(jù)流圖中的基本元素有:

(1)圓圈表示處理,輸入數(shù)據(jù)在此進(jìn)行變換產(chǎn)生輸出數(shù)據(jù)。其中注明處理的名稱(chēng)。

(2)矩形描述一個(gè)輸入源點(diǎn)或輸出匯點(diǎn)。其中注明源點(diǎn)或匯點(diǎn)的名稱(chēng)。

返回本節(jié)首頁(yè)6.2.2需求分析的方法2、數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFlowDiagram,簡(jiǎn)稱(chēng)DFD)表達(dá)了數(shù)據(jù)與處理的關(guān)系。數(shù)據(jù)流圖中的基本元素有:

(3)命名的箭頭描述一個(gè)數(shù)據(jù)流。被加工的數(shù)據(jù)及其流向,流線上注明數(shù)據(jù)名稱(chēng),箭頭代表數(shù)據(jù)流動(dòng)方向。

(4)向右開(kāi)口的矩形框表示文件和數(shù)據(jù)存儲(chǔ),要在其內(nèi)標(biāo)明相應(yīng)的具體名稱(chēng)。

返回本節(jié)首頁(yè)6.2.2需求分析的方法2、數(shù)據(jù)流圖一個(gè)簡(jiǎn)單的系統(tǒng)可用一張數(shù)據(jù)流圖來(lái)表示。當(dāng)系統(tǒng)比較復(fù)雜時(shí),為了便于理解,控制其復(fù)雜性,可以采用分層描述的方法,一般用第一層描述系統(tǒng)的全貌,第二層分別描述各子系統(tǒng)的結(jié)構(gòu)。如果系統(tǒng)結(jié)構(gòu)還比較復(fù)雜,那么可以繼續(xù)細(xì)化,直到表達(dá)清楚為止,在處理功能逐步分解的同時(shí),它們所用的數(shù)據(jù)也逐級(jí)分解,形成若干層次的數(shù)據(jù)流圖,數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過(guò)程的關(guān)系。返回本節(jié)首頁(yè)6.3概念結(jié)構(gòu)設(shè)計(jì)

6.3.1概念結(jié)構(gòu)設(shè)計(jì)的必要性6.3.2概念模型設(shè)計(jì)的特點(diǎn)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟返回本節(jié)首頁(yè)6.3.1概念結(jié)構(gòu)設(shè)計(jì)的必要性

將需求分析得到的用戶(hù)需求抽象為信息結(jié)構(gòu)(即概念模型)的過(guò)程就是概念結(jié)構(gòu)設(shè)計(jì),它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。在進(jìn)行功能數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),如果將現(xiàn)實(shí)世界中的客觀對(duì)象直接轉(zhuǎn)換為機(jī)器世界中的對(duì)象,就會(huì)感到比較復(fù)雜;注意力往往被牽扯到更多的細(xì)節(jié)限制方面,而不能集中在最重要的信息的組織結(jié)構(gòu)和處理模式上。因此,通常是將現(xiàn)實(shí)世界中的客觀對(duì)象首先抽象為不依賴(lài)任何DBMS支持的數(shù)據(jù)模型。故概念模型可以看成是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)過(guò)度的中間層次。返回本節(jié)首頁(yè)6.3.1概念結(jié)構(gòu)設(shè)計(jì)的必要性

概念模型是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨(dú)立于機(jī)器、更抽象。將概念結(jié)構(gòu)設(shè)計(jì)從設(shè)計(jì)過(guò)程中獨(dú)立出來(lái),可以帶來(lái)以下好處:

(1)任務(wù)相對(duì)單一化,設(shè)計(jì)復(fù)雜程度大大降低,便于管理。

(2)概念模式不受具體的DBMS的限制,也獨(dú)立于存儲(chǔ)安排和效率方面的考慮,因此,更穩(wěn)定。

(3)概念模型不含具體DBMS所附加的技術(shù)細(xì)節(jié),更容易被用戶(hù)理解,因而更能準(zhǔn)確的反映用戶(hù)的信息需求。返回本節(jié)首頁(yè)6.3.2概念模型設(shè)計(jì)的特點(diǎn)概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn)(也是要求)有以下幾點(diǎn):①易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶(hù)交換意見(jiàn),用戶(hù)的積極參與是數(shù)據(jù)庫(kù)的設(shè)計(jì)成功的關(guān)鍵。②能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿(mǎn)足用戶(hù)對(duì)數(shù)據(jù)的處理要求。是對(duì)現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。③易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對(duì)概念模型修改和擴(kuò)充。④易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。返回本節(jié)首頁(yè)

6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

1、概念結(jié)構(gòu)的設(shè)計(jì)方法

(1)自頂向下。如圖6.4所示圖6.4自頂向下的設(shè)計(jì)方法返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

(2)自底向上。如圖6.5所示

圖6.5自底向上的設(shè)計(jì)方法返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

(3)逐步擴(kuò)張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。如圖6.6所示。

圖6.6逐步擴(kuò)張的設(shè)計(jì)方法返回本節(jié)首頁(yè)逐步擴(kuò)張方法與功能系統(tǒng)的原型法原型法是在20世紀(jì)80年代中期為了快速開(kāi)發(fā)系統(tǒng)而推出的一種開(kāi)發(fā)模式,旨在改進(jìn)傳統(tǒng)的結(jié)構(gòu)化生命周期法的不足,縮短開(kāi)發(fā)周期,減少開(kāi)發(fā)風(fēng)險(xiǎn)。原型法的理念是:在獲取一組基本需求之后,快速地構(gòu)造出一個(gè)能夠反映用戶(hù)需求的初始系統(tǒng)原型,讓用戶(hù)看到未來(lái)系統(tǒng)概貌,以便判斷哪些功能是符合要求的,哪些方面還需要改進(jìn),不斷地對(duì)這些需求進(jìn)一步補(bǔ)充、細(xì)化和修改,依次類(lèi)推,反復(fù)進(jìn)行,直到用戶(hù)滿(mǎn)意為止并由此開(kāi)發(fā)出完整的系統(tǒng)。6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

(4)混合策略。將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。

其中最常用的概念結(jié)構(gòu)設(shè)計(jì)方法是自底向上。

即自頂向下地進(jìn)行需求分析,再自底向上地設(shè)計(jì)概念模式結(jié)構(gòu)。

2、概念結(jié)構(gòu)設(shè)計(jì)的步驟對(duì)于自底向上的設(shè)計(jì)方法來(lái)說(shuō),概念結(jié)構(gòu)設(shè)計(jì)的步驟分為兩步(如圖6.7所示)①進(jìn)行數(shù)據(jù)抽象,設(shè)計(jì)局部E-R模型②集成各局部E-R模型,形成全局E-R模型返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟圖6.7自底向上方法的設(shè)計(jì)步驟返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟3、數(shù)據(jù)抽象與局部E-R模型設(shè)計(jì)

(1)數(shù)據(jù)抽象

設(shè)計(jì)局部E-R模型的關(guān)鍵就在于正確劃分實(shí)體和屬性。實(shí)體和屬性在形式上并無(wú)可以明顯區(qū)分的界限,通常是按照現(xiàn)實(shí)世界中事物的自然劃分來(lái)定義實(shí)體和屬性,將現(xiàn)實(shí)世界中的事物進(jìn)行數(shù)據(jù)抽象,得到實(shí)體和屬性。一般有兩種數(shù)據(jù)抽象方法:分類(lèi)和聚集。①分類(lèi)定義某一類(lèi)概念作為現(xiàn)實(shí)世界中一組對(duì)象的類(lèi)型,將一組具有某些共同特性和行為的對(duì)象抽象為一個(gè)實(shí)體,對(duì)象和實(shí)體之間是“ismemberof”的關(guān)系。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟②聚集定義某個(gè)實(shí)體類(lèi)型的組成成分。將對(duì)象的類(lèi)型的組成成分抽象為實(shí)體的屬性。抽象了對(duì)象內(nèi)部類(lèi)型和成分的“ispartof”的語(yǔ)義。(2)局部視圖設(shè)計(jì)選擇好一個(gè)個(gè)局部應(yīng)用之后,就要對(duì)每個(gè)局部應(yīng)用逐一設(shè)計(jì)分E-R圖,也稱(chēng)局部E-R圖。將各局部應(yīng)用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來(lái),參照數(shù)據(jù)流圖,標(biāo)定各局部應(yīng)用中的實(shí)體、實(shí)體的屬性、標(biāo)識(shí)實(shí)體的鍵,確定實(shí)體之間的聯(lián)系及其類(lèi)型(1:1,1:n,m:n)。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

實(shí)際上實(shí)體和屬性是相對(duì)而言的,往往要根據(jù)實(shí)際情況進(jìn)行必要的調(diào)整,在調(diào)整時(shí)要遵守兩條原則:①屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項(xiàng),不能再由另一些屬性組成。②屬性不能與其他實(shí)體具有聯(lián)系。聯(lián)系只發(fā)生在實(shí)體之間。符合上述兩條特性的事物一般作為屬性對(duì)待。為了簡(jiǎn)化E-R圖的處置,現(xiàn)實(shí)世界中的事物凡能夠作為屬性對(duì)待的,應(yīng)盡量作為屬性。例如:“學(xué)生”由學(xué)號(hào)、姓名等屬性進(jìn)一步描述,根據(jù)準(zhǔn)則①,“學(xué)生”只能作為實(shí)體,不能作為屬性。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

再如:職稱(chēng)通常作為教師實(shí)體的屬性,但在涉及住房分配時(shí),由于分房與職稱(chēng)有關(guān),也就是說(shuō)職稱(chēng)與住房實(shí)體之間有聯(lián)系,根據(jù)準(zhǔn)則②,這時(shí)把職稱(chēng)作為實(shí)體來(lái)處理會(huì)更合適些。如圖6.8

圖6.8職稱(chēng)作為一個(gè)屬性或?qū)嶓w返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟[例1]設(shè)有如下實(shí)體:學(xué)生:學(xué)號(hào)、單位名稱(chēng)、姓名、性別、年齡、選修課程名課程:編號(hào)、課程名、開(kāi)課單位、任課教師號(hào)教師:教師號(hào)、姓名、性別、職稱(chēng)、講授課程編號(hào)單位:?jiǎn)挝幻Q(chēng)、電話(huà)、教師號(hào)、教師姓名上述實(shí)體中存在如下聯(lián)系:(1)一個(gè)學(xué)生可選修多門(mén)課程,一門(mén)課程可為多個(gè)學(xué)生選修(2)一個(gè)教師可講授多門(mén)課程,一門(mén)課程可為多個(gè)教師講授(3)一個(gè)系可有多個(gè)教師,一個(gè)教師只能屬于一個(gè)系返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

根據(jù)上述約定,可以得到學(xué)生選課局部E-R圖和教師授課局部E-R圖。分別如圖6.12。圖6.12學(xué)生選課局部E-R圖返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟圖6.13教師任課局部E-R圖返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟4、全局E-R模型設(shè)計(jì)各個(gè)局部視圖即分E-R圖建立好后,還需要對(duì)它們進(jìn)行合并,集成為一個(gè)整體的概念數(shù)據(jù)結(jié)構(gòu)即全局E-R圖。也就是視圖的集成,視圖的集成有兩種方式:

(1)一次集成法:一次集成多個(gè)分E-R圖,通常用于局部視圖比較簡(jiǎn)單時(shí)。如圖6.14所示。

(2)逐步累積式:首先集成兩個(gè)局部視圖(通常是比較關(guān)鍵的兩個(gè)局部視圖),以后每次將一個(gè)新的局部視圖集成進(jìn)來(lái),如圖6.15所示。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

圖6.14一次集成法

返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟圖6.15逐步逐步累積式返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

由上圖可知,不管用哪種方法,集成局部E-R圖的都分為兩個(gè)步驟,如圖6.16所示。

(1)合并:解決各個(gè)局部E-R圖之間的沖突,將各個(gè)局部E-R圖合并起來(lái)生成初步E-R圖。

(2)修改與重構(gòu):消除不必要的冗余,生成基本E-R圖。

返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟圖6.16視圖的集成返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

(1)合并分E-R圖,生成初步E-R圖合并分E-R圖時(shí)并不能簡(jiǎn)單地將各個(gè)分E-R圖畫(huà)到一起,而是必須著力消除各個(gè)分E-R圖中不一致的地方,以形成一個(gè)能為全系統(tǒng)中所有用戶(hù)共同理解和接受的統(tǒng)一概念模型。合理消除各分E-R圖的沖突,合并分E-R圖的主要工作與關(guān)鍵所在。

E-R圖中的沖突有三種:屬性沖突、命名沖突和結(jié)構(gòu)沖突。①屬性沖突

屬性域沖突:屬性值的類(lèi)型、取值范圍或取值集合不同。

屬性取值單位沖突。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟②命名沖突

命名不一致可能發(fā)生在實(shí)體名、屬性名或聯(lián)系名之間,其中屬性的命名沖突更為常見(jiàn)。一般表現(xiàn)為同名異義或異名同義。同名異義:不同意義的對(duì)象在不同的局部應(yīng)用中具有相同的名字。異名同義(一義多名):同一意義的對(duì)象在不同的局部應(yīng)用中具有不同的名字。命名沖突可能發(fā)生在屬性級(jí)、實(shí)體級(jí)、聯(lián)系級(jí)上。其中屬性的命名沖突更為常見(jiàn)。解決命名沖突的方法是通常用討論、協(xié)商等行政手段加以解決。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟③結(jié)構(gòu)沖突(有三類(lèi)結(jié)構(gòu)沖突)

同一對(duì)象在不同應(yīng)用中具有不同的抽象

解決方法:通常是把屬性變換為實(shí)體或把實(shí)體變換為屬性,使同一對(duì)象具有相同的抽象。變換時(shí)要遵循兩個(gè)準(zhǔn)則。

同一實(shí)體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同。解決方法:使該實(shí)體的屬性取各分E-R圖中屬性的并集,再適當(dāng)設(shè)計(jì)屬性的次序。

實(shí)體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類(lèi)型

解決方法:根據(jù)應(yīng)用語(yǔ)義對(duì)實(shí)體聯(lián)系的類(lèi)型進(jìn)行綜合或調(diào)整。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟

(2)消除不必要的冗余,設(shè)計(jì)基本E-R圖

冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系。冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)庫(kù)維護(hù)增加困難。采用分析的方法來(lái)消除數(shù)據(jù)冗余,以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項(xiàng)之間邏輯關(guān)系的說(shuō)明來(lái)消除冗余。前面圖6.12和圖6.13在形成初步E-R圖后,以及消除冗余聯(lián)系,便可得到基本的E-R模型,如圖6.17-18所示。返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟圖6.17初步的全局E-R圖返回本節(jié)首頁(yè)6.3.3概念結(jié)構(gòu)的設(shè)計(jì)方法和步驟圖6.18優(yōu)化后的基本E-R圖返回本節(jié)首頁(yè)6.4邏輯結(jié)構(gòu)設(shè)計(jì)

6.4.1邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)和步驟6.4.2初始化關(guān)系模式設(shè)計(jì)6.4.3關(guān)系模式的規(guī)范化6.4.4關(guān)系模式的評(píng)價(jià)與改進(jìn)6.4.1邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)和步驟

概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ)。為了能夠用某一DBMS實(shí)現(xiàn)用戶(hù)需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。一般的邏輯結(jié)構(gòu)設(shè)計(jì)分為以下三個(gè)步驟(如圖6.16)

1、將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型。

2、將轉(zhuǎn)化來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換。

3、對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。返回本節(jié)首頁(yè)6.4.1邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)和步驟

返回本節(jié)首頁(yè)96.4.2初始化關(guān)系模式設(shè)計(jì)

1、轉(zhuǎn)換原則(1)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式。關(guān)系的屬性:實(shí)體的屬性關(guān)系的鍵:實(shí)體的鍵(2)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。關(guān)系的屬性:與該聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系本身的屬性。關(guān)系的鍵:各實(shí)體鍵的組合。返回本節(jié)首頁(yè)6.4.2初始化關(guān)系模式設(shè)計(jì)(3)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式

關(guān)系的屬性:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性關(guān)系的碼:n端實(shí)體的鍵

說(shuō)明:一個(gè)1:n聯(lián)系也可以與n端對(duì)應(yīng)的關(guān)系模式合并,這時(shí)需要把1端關(guān)系模式的碼和聯(lián)系本身的屬性都加入到n端對(duì)應(yīng)的關(guān)系模式中。返回本節(jié)首頁(yè)6.4.2初始化關(guān)系模式設(shè)計(jì)

(4)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。關(guān)系的屬性:與該聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系本身的屬性關(guān)系的候選碼:每個(gè)實(shí)體的碼均是該關(guān)系的候選碼說(shuō)明:一個(gè)1:1聯(lián)系也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并,這時(shí)需要把任一端關(guān)系模式的碼及聯(lián)系本身的屬性都加入到另一端對(duì)應(yīng)的關(guān)系模式中。返回本節(jié)首頁(yè)6.4.2初始化關(guān)系模式設(shè)計(jì)

(5)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。關(guān)系的屬性:與該多元聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系本身的屬性。關(guān)系的碼:各實(shí)體鍵的組合。返回本節(jié)首頁(yè)6.4.2初始化關(guān)系模式設(shè)計(jì)2、具體做法(1)把一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系。先分析該實(shí)體的屬性,從中確定主鍵,然后再將其轉(zhuǎn)換為關(guān)系模式[例2]以6.15圖為例將四個(gè)實(shí)體分別轉(zhuǎn)換為關(guān)系模式(帶下劃線的為主鍵):學(xué)生(學(xué)號(hào),姓名,性別,年齡)課程(課程號(hào),課程名)教師(教師號(hào),姓名,性別,職稱(chēng))系(系名,電話(huà))返回本節(jié)首頁(yè)6.4.2初始化關(guān)系模式設(shè)計(jì)

(2)把每個(gè)聯(lián)系轉(zhuǎn)換成關(guān)系模式:

[例3]把6.18圖中的四個(gè)聯(lián)系也轉(zhuǎn)換成關(guān)系模式:屬于(教師號(hào),系名)講授(教師號(hào),課程號(hào))選修(學(xué)號(hào),課程號(hào),成績(jī))擁有(系名,學(xué)號(hào))

(3)三個(gè)或三個(gè)以上的實(shí)體間的一個(gè)多元聯(lián)系在轉(zhuǎn)換為一個(gè)關(guān)系模式時(shí),與該多元聯(lián)系相連的各實(shí)體的主鍵及聯(lián)系本身的屬性均轉(zhuǎn)換成為關(guān)系的屬性,轉(zhuǎn)換后所有得到的關(guān)系的主鍵為個(gè)實(shí)體鍵的組合。返回本節(jié)首頁(yè)6.4.2初始化關(guān)系模式設(shè)計(jì)[例4]圖6.20表示供應(yīng)商、項(xiàng)目和零件三個(gè)實(shí)體之間的多對(duì)多聯(lián)系,如果已知三個(gè)實(shí)體的主鍵分別為“供應(yīng)商號(hào)”,“項(xiàng)目號(hào)”與“零件號(hào)”,則它們之間的聯(lián)系“供應(yīng)”轉(zhuǎn)換為關(guān)系模式:供應(yīng)(供應(yīng)號(hào),項(xiàng)目號(hào),零件號(hào),數(shù)量)。圖6.20多個(gè)實(shí)體之間的聯(lián)系返回本節(jié)首頁(yè)6.4.3關(guān)系模式的規(guī)范化

關(guān)系模型的優(yōu)化通常是以規(guī)范化理論為基礎(chǔ)。方法為:

1、確定數(shù)據(jù)依賴(lài),按需求分析階段所得到的語(yǔ)義,分別寫(xiě)出每個(gè)關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴(lài)以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴(lài)。

2、對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴(lài)進(jìn)行極小化處理,消除冗余的聯(lián)系。

3、按照數(shù)據(jù)依賴(lài)的理論對(duì)關(guān)系模式逐一進(jìn)行分析,考查是否存在部分函數(shù)依賴(lài)、傳遞函數(shù)依賴(lài)、多值依賴(lài)等,確定各關(guān)系模式分別屬于第幾范式。返回本節(jié)首頁(yè)6.4.3關(guān)系模式的規(guī)范化

4、按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。

5、按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,對(duì)關(guān)系模式進(jìn)行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率。返回本節(jié)首頁(yè)6.4.4關(guān)系模式的評(píng)價(jià)與改進(jìn)

1、模式的評(píng)價(jià)對(duì)模式的評(píng)價(jià)包括設(shè)計(jì)質(zhì)量的評(píng)價(jià)和性能評(píng)價(jià)兩個(gè)方面。

2、數(shù)據(jù)模式的改進(jìn)(1)分解關(guān)系模式的分解一般分為水平分解和垂直分解兩種。(2)合并具有相同主鍵的關(guān)系模式,且對(duì)這些關(guān)系模式的處理主要是查詢(xún)操作,而且經(jīng)常是多關(guān)系的查詢(xún),那么可對(duì)這些關(guān)系模式按照組合頻率進(jìn)行合并。返回本節(jié)首頁(yè)6.5數(shù)據(jù)庫(kù)物理設(shè)計(jì)

數(shù)據(jù)庫(kù)物理設(shè)計(jì)的任務(wù)是為上一階段得到的數(shù)據(jù)庫(kù)邏輯模式,即數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)選擇合適的應(yīng)用環(huán)境的物理結(jié)構(gòu),既確定有效地實(shí)現(xiàn)邏輯結(jié)構(gòu)模式的數(shù)據(jù)庫(kù)存儲(chǔ)模式,確定在物理設(shè)備上所采用的存儲(chǔ)結(jié)構(gòu)和存取方法,然后對(duì)該存儲(chǔ)模式進(jìn)行性能評(píng)價(jià)、修改設(shè)計(jì),經(jīng)過(guò)多次反復(fù),最后得到一個(gè)性能較好的存儲(chǔ)模式。6.5.1確定物理結(jié)構(gòu)6.5.2評(píng)價(jià)物理結(jié)構(gòu)6.5.1確定物理結(jié)構(gòu)

數(shù)據(jù)庫(kù)物理設(shè)計(jì)內(nèi)容包括記錄存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì),存儲(chǔ)路徑的設(shè)計(jì),記錄集簇的設(shè)計(jì)。

1、記錄存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)記錄存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)就是設(shè)計(jì)存儲(chǔ)記錄的結(jié)構(gòu)形式,它涉及不定長(zhǎng)數(shù)據(jù)項(xiàng)的表示。

2、關(guān)系模式的存取方法選擇

DBMS常用存取方法有:索引方法,目前主要是B+樹(shù)索引方法,聚簇(Cluster)方法,HASH方法。返回本節(jié)首頁(yè)2、插件式存儲(chǔ)引擎(也稱(chēng)作表類(lèi)型)在MySQL5.1中,MySQLAB引入了新的插件式存儲(chǔ)引擎體系結(jié)構(gòu),允許將存儲(chǔ)引擎加載到正在運(yùn)行的MySQL服務(wù)器中。應(yīng)用程序編程人員和DBA通過(guò)位于存儲(chǔ)引擎之上的連接器API和服務(wù)層來(lái)處理MySQL數(shù)據(jù)庫(kù)。如果應(yīng)用程序的變化需要改變底層存儲(chǔ)引擎,可能需要增加1個(gè)或多個(gè)額外的存儲(chǔ)引擎而不需要進(jìn)行大的編碼更改以支持新的需求。(1)選擇存儲(chǔ)引擎與MySQL一起提供的各種存儲(chǔ)引擎在設(shè)計(jì)時(shí)考慮了不同的使用情況。為了更有效地使用插件式存儲(chǔ)體系結(jié)構(gòu),最好了解各種存儲(chǔ)引擎的優(yōu)點(diǎn)和缺點(diǎn)。下述存儲(chǔ)引擎是最常用的:

MyISAM:它是在Web、數(shù)據(jù)倉(cāng)儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一。作為MySQL的默認(rèn)存儲(chǔ)引擎,MyISAM在性能和可用性之間達(dá)到了一個(gè)很好的折衷。MyISAM不支持事務(wù)和行級(jí)別的鎖。每個(gè)MyISAM的表在磁盤(pán)上存儲(chǔ)成三個(gè)文件。文件的名字都以表的名字開(kāi)始,擴(kuò)展名指出文件類(lèi)型。.frm文件存儲(chǔ)表定義。數(shù)據(jù)文件的擴(kuò)展名為.MYD(MYData)。索引文件的擴(kuò)展名是.MYI(MYIndex)。MyISAM文件的格式是平臺(tái)無(wú)關(guān)的,所以可以在任何平臺(tái)中進(jìn)行轉(zhuǎn)移。

InnoDB:InnoDB是為事務(wù)處理而設(shè)計(jì)的,特別是為處理多而生存周期比較短的事務(wù)而設(shè)計(jì),一般來(lái)說(shuō)這些事務(wù)基本上都會(huì)正常結(jié)束,只有少數(shù)才會(huì)回滾。它是目前事務(wù)型存儲(chǔ)引擎中最為著名的。除了它的高并發(fā)性之外,另一個(gè)著名的特性是外鍵約束,這一點(diǎn)MySQL服務(wù)器本身并不支持。InnoDB提供了基于主鍵的極快速的查詢(xún)。InnoDB把表和索引存儲(chǔ)在一個(gè)表空間中,表空間可以包含數(shù)個(gè)文件(或原始磁盤(pán)分區(qū))。

Memory:將所有數(shù)據(jù)保存在RAM中,在需要快速查找引用和其他類(lèi)似數(shù)據(jù)的環(huán)境下,可提供極快的訪問(wèn)。每個(gè)MEMORY表和一個(gè)磁盤(pán)文件關(guān)聯(lián)起來(lái)。文件名由表的名字開(kāi)始,并且由一個(gè).frm的擴(kuò)展名來(lái)指明它存儲(chǔ)的表定義。

Cluster/NDB:MySQL的簇式數(shù)據(jù)庫(kù)引擎,尤其適合于具有高性能查找要求的并發(fā)應(yīng)用程序,這類(lèi)查找需求還要求具有最高的正常工作時(shí)間和可用性。MySQL簇是一種技術(shù),該技術(shù)允許在無(wú)共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫(kù)的簇。通過(guò)無(wú)共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價(jià)的硬件,而且對(duì)軟硬件無(wú)特殊要求。此外,由于每個(gè)組件有自己的內(nèi)存和磁盤(pán),不存在單點(diǎn)故障。MySQL簇將標(biāo)準(zhǔn)的MySQL服務(wù)器與名為NDB的“內(nèi)存中”簇式存儲(chǔ)引擎集成了起來(lái)。在MySQL中,術(shù)語(yǔ)NDB指的是與存儲(chǔ)引擎相關(guān)的設(shè)置部分,而術(shù)語(yǔ)“MySQL簇”指的是MySQL和NDB存儲(chǔ)引擎的組合。

MyISAMMerge存儲(chǔ)引擎:MyISAMMerge引擎是MyISAM的一個(gè)變種。一個(gè)Merge表是將一系列的完全相同的MyISAM表合并成為一個(gè)虛擬表。這在日志和數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用中將變得極為有用。

Archive存儲(chǔ)引擎:Archive引擎只支持INSERT和SELECT語(yǔ)句,并且它不支持索引。它比MyISAM使用更少的磁盤(pán)輸入和輸出,因此它會(huì)在寫(xiě)操作之前將數(shù)據(jù)緩存并利用zlib來(lái)壓縮。而SELECT查詢(xún)操作則需要一個(gè)全表掃描。因此Archive表是日志和數(shù)據(jù)采集的理想選擇。Archive引擎支持行級(jí)別的鎖以及一個(gè)特殊的緩沖系統(tǒng)以期達(dá)到高并發(fā)的寫(xiě)操作。它在查詢(xún)時(shí)會(huì)將整個(gè)表掃描一次。它同時(shí)也會(huì)將批量寫(xiě)操作屏蔽直到全部的寫(xiě)操作完成。這些特性模擬了事務(wù)的部分特性,但是Archive引擎并不是一個(gè)事務(wù)型引擎。它只是一個(gè)優(yōu)化了插入操作以及壓縮了數(shù)據(jù)的引擎。

CSV存儲(chǔ)引擎:CSV引擎可以將以逗號(hào)分隔的CSV文件當(dāng)作數(shù)據(jù)表來(lái)處理,但是它不支持索引。這個(gè)引擎允許在服務(wù)器運(yùn)行的時(shí)候?qū)?shù)據(jù)文件拷貝進(jìn)數(shù)據(jù)庫(kù)或者從數(shù)據(jù)庫(kù)里拷貝出去。CSV表作為數(shù)據(jù)格式在轉(zhuǎn)換中極為有用。對(duì)于整個(gè)服務(wù)器或方案,并不一定要使用相同的存儲(chǔ)引擎,可以為方案中的每個(gè)表使用不同的存儲(chǔ)引擎,這點(diǎn)很重要。6.5.1確定物理結(jié)構(gòu)

(1)索引方法索引存取方法的主要內(nèi)容:對(duì)哪些屬性列建立索引,對(duì)哪些屬性列建立組合索引,對(duì)哪些索引要設(shè)計(jì)為唯一索引。

(2)聚簇

為了提高某個(gè)屬性(或?qū)傩越M)的查詢(xún)速度,把這個(gè)或這些屬性(稱(chēng)為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱(chēng)為聚簇。聚簇的用途:大大提高按聚簇屬性進(jìn)行查詢(xún)的效率。返回本節(jié)首頁(yè)6.5.1確定物理結(jié)構(gòu)

(3)Hash方法當(dāng)一個(gè)關(guān)系滿(mǎn)足下列兩個(gè)條件時(shí),可以選擇Hash存取方法:

①該關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等比較選擇條件中。②該關(guān)系的大小可預(yù)知且關(guān)系的大小不變或該關(guān)系的大小動(dòng)態(tài)改變但所選用的DBMS提供了動(dòng)態(tài)HASH存取方法。返回本節(jié)首頁(yè)6.5.2評(píng)價(jià)物理結(jié)構(gòu)

和前面幾個(gè)設(shè)計(jì)階段一樣,在確定了數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)之后,要進(jìn)行評(píng)價(jià),重點(diǎn)是時(shí)間和空間的效率。如果評(píng)價(jià)結(jié)果滿(mǎn)足設(shè)計(jì)要求,則可進(jìn)行數(shù)據(jù)庫(kù)實(shí)施,實(shí)際上,往往需要經(jīng)過(guò)反復(fù)測(cè)試才能優(yōu)化物理設(shè)計(jì)。返回本節(jié)首頁(yè)6.6數(shù)據(jù)庫(kù)實(shí)施

數(shù)據(jù)庫(kù)實(shí)施是指根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果,在計(jì)算機(jī)上建立起實(shí)際的數(shù)據(jù)庫(kù)結(jié)構(gòu),裝入數(shù)據(jù),進(jìn)行測(cè)試和試運(yùn)行的過(guò)程。數(shù)據(jù)庫(kù)實(shí)施的工作內(nèi)容包括:用DDL定義數(shù)據(jù)庫(kù)結(jié)構(gòu),組織數(shù)據(jù)入庫(kù),編制與調(diào)試應(yīng)用程序,數(shù)據(jù)庫(kù)試運(yùn)行。6.6.1建立實(shí)際數(shù)據(jù)庫(kù)結(jié)構(gòu)6.6.2裝入數(shù)據(jù)6.6.3編制與調(diào)試應(yīng)用程序6.6.4數(shù)據(jù)庫(kù)試運(yùn)行6.6.5整理文檔6.6.1建立實(shí)際數(shù)據(jù)庫(kù)結(jié)構(gòu)

確定了數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,就可以用所選用的DBMS提供的數(shù)據(jù)定義語(yǔ)言(DDL)來(lái)嚴(yán)格描述數(shù)據(jù)庫(kù)結(jié)構(gòu)。返回本節(jié)首頁(yè)6.6.2裝入數(shù)據(jù)

數(shù)據(jù)裝載方法有人工方法與計(jì)算機(jī)輔助數(shù)據(jù)入庫(kù)方法兩種。

1、人工方法適用于小型系統(tǒng)其步驟如下:①篩選數(shù)據(jù)。需要裝入數(shù)據(jù)庫(kù)中的數(shù)據(jù)通常都分散在各個(gè)部門(mén)的數(shù)據(jù)文件或原始憑證中,所以首先必須把需要入庫(kù)的數(shù)據(jù)篩選出來(lái)。②轉(zhuǎn)換數(shù)據(jù)格式。篩選出來(lái)的需要入庫(kù)的數(shù)據(jù),其格式往往不符合數(shù)據(jù)庫(kù)要求,還需要進(jìn)行轉(zhuǎn)換。這種轉(zhuǎn)換有時(shí)可能很復(fù)雜。返回本節(jié)首頁(yè)6.6.2裝入數(shù)據(jù)

③輸入數(shù)據(jù)。將轉(zhuǎn)換好的數(shù)據(jù)輸入計(jì)算機(jī)中。④校驗(yàn)數(shù)據(jù)。檢查輸入的數(shù)據(jù)是否有誤。

2、計(jì)算機(jī)輔助數(shù)據(jù)入庫(kù):適用于中大型系統(tǒng)其步驟如下:①篩選數(shù)據(jù)。②輸入數(shù)據(jù)。由錄入員將原始數(shù)據(jù)直接輸入計(jì)算機(jī)中。數(shù)據(jù)輸入子系統(tǒng)應(yīng)提供輸入界面。返回本節(jié)首頁(yè)6.6.2裝入數(shù)據(jù)

③校驗(yàn)數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)采用多種檢驗(yàn)技術(shù)檢查輸入數(shù)據(jù)的正確性。④轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)根據(jù)數(shù)據(jù)庫(kù)系統(tǒng)的要求,從錄入的數(shù)據(jù)中抽取有用成分,對(duì)其進(jìn)行分類(lèi),然后轉(zhuǎn)換數(shù)據(jù)格式。抽取、分類(lèi)和轉(zhuǎn)換數(shù)據(jù)是數(shù)據(jù)輸入子系統(tǒng)的主要工作,也是數(shù)據(jù)輸入子系統(tǒng)的復(fù)雜性所在。⑤綜合數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)對(duì)轉(zhuǎn)換好的數(shù)據(jù)根據(jù)系統(tǒng)的要求進(jìn)一步綜合成最終數(shù)據(jù)。返回本節(jié)首頁(yè)6.6.3編制與調(diào)試應(yīng)用程序

數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)應(yīng)該與數(shù)據(jù)庫(kù)設(shè)計(jì)并行進(jìn)行。在數(shù)據(jù)庫(kù)實(shí)施階段,當(dāng)數(shù)據(jù)庫(kù)結(jié)構(gòu)建立好后,就可以開(kāi)始編制與調(diào)試數(shù)據(jù)庫(kù)的應(yīng)用程序。調(diào)試應(yīng)用程序時(shí)由于數(shù)據(jù)入庫(kù)尚未完成,可先使用模擬數(shù)據(jù)。返回本節(jié)首頁(yè)6.6.4數(shù)據(jù)庫(kù)試運(yùn)行

數(shù)據(jù)庫(kù)試運(yùn)行也稱(chēng)為聯(lián)合調(diào)試,其主要工作包括:

1、功能測(cè)試:實(shí)際運(yùn)行應(yīng)用程序,執(zhí)行對(duì)數(shù)據(jù)庫(kù)的各種操作,測(cè)試應(yīng)用程序的各種功能。

2、性能測(cè)試:測(cè)量系統(tǒng)的性能指標(biāo),分析是否符合設(shè)計(jì)目標(biāo)。返回本節(jié)首頁(yè)6.6.4數(shù)據(jù)庫(kù)試運(yùn)行

重新設(shè)計(jì)物理結(jié)構(gòu)甚至邏輯結(jié)構(gòu),會(huì)導(dǎo)致數(shù)據(jù)重新入庫(kù)。由于數(shù)據(jù)入庫(kù)工作量實(shí)在太大,所以可以采用分期輸入數(shù)據(jù)的方法:●先輸入小批量數(shù)據(jù)供先期聯(lián)合調(diào)試使用。●待試運(yùn)行基本合格后再輸入大批量數(shù)據(jù)。●逐步增加數(shù)據(jù)量,逐步完成運(yùn)行評(píng)價(jià)。返回本節(jié)首頁(yè)6.6.5整理文檔

在程序的編制和試運(yùn)行中,應(yīng)將發(fā)現(xiàn)的問(wèn)題和解決方法記錄下來(lái),將它們整理存檔為資料,供以后正式運(yùn)行和改進(jìn)時(shí)參考,全部的調(diào)試工作完成之后,應(yīng)該編寫(xiě)應(yīng)用系統(tǒng)的技術(shù)說(shuō)明書(shū),在系統(tǒng)正式運(yùn)行時(shí)給用戶(hù),完整的資料是應(yīng)用系統(tǒng)的重要組成部分。返回本節(jié)首頁(yè)6.7數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)

數(shù)據(jù)庫(kù)試運(yùn)行結(jié)果符合設(shè)計(jì)目標(biāo)后,數(shù)據(jù)庫(kù)就可以真正投入運(yùn)行了。數(shù)據(jù)庫(kù)投入運(yùn)行標(biāo)著開(kāi)發(fā)任務(wù)的基本完成和維護(hù)工作的開(kāi)始,對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)進(jìn)行評(píng)價(jià)、調(diào)整、修改等維護(hù)工作是一個(gè)長(zhǎng)期的任務(wù),也是設(shè)計(jì)工作的繼續(xù)和提高。對(duì)數(shù)據(jù)庫(kù)經(jīng)常性的維護(hù)工作主要是由DBA完成的,包括:三個(gè)方面的內(nèi)容即數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù),數(shù)據(jù)庫(kù)的安全性、完整性控制,數(shù)據(jù)庫(kù)性能的監(jiān)督、分析和改進(jìn)。6.7.1數(shù)據(jù)庫(kù)的安全性、完整性6.7.2監(jiān)視并改善數(shù)據(jù)庫(kù)性能6.7.3數(shù)據(jù)庫(kù)的重組織和重構(gòu)造6.7.1數(shù)據(jù)庫(kù)的安全性、完整性

DBA必須根據(jù)用戶(hù)的實(shí)際需要授予不同的操作權(quán)限,在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,由于應(yīng)用環(huán)境的變化,對(duì)安全性的要求也會(huì)發(fā)生變化,DBA需要根據(jù)實(shí)際情況修改原有的安全性控制。由于應(yīng)用環(huán)境的變化,數(shù)據(jù)庫(kù)的完整性約束條件也會(huì)變化,也需要DBA不斷修正,以滿(mǎn)足用戶(hù)要求。返回本節(jié)首頁(yè)6.7.2監(jiān)視并改善數(shù)據(jù)庫(kù)性能

在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,DBA必須監(jiān)督系統(tǒng)運(yùn)行,對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析,找出改進(jìn)系統(tǒng)性能的方法。

●利用監(jiān)測(cè)工具獲取系統(tǒng)運(yùn)行過(guò)程中一系列性能參數(shù)的值?!裢ㄟ^(guò)仔細(xì)分析這些數(shù)據(jù),判斷當(dāng)前系統(tǒng)是否處于最佳運(yùn)行狀態(tài)?!袢绻皇?,則需要通過(guò)調(diào)整某些參數(shù)來(lái)進(jìn)一步改進(jìn)數(shù)據(jù)庫(kù)性能。返回本節(jié)首頁(yè)6.7.3數(shù)據(jù)庫(kù)的重組織和重構(gòu)造

數(shù)據(jù)庫(kù)的重組織,并不改變?cè)O(shè)計(jì)的邏輯和物理結(jié)構(gòu),而數(shù)據(jù)庫(kù)的重構(gòu)造則不同,它是指部分修改數(shù)據(jù)庫(kù)的模式和內(nèi)模式。由于數(shù)據(jù)庫(kù)應(yīng)用環(huán)境發(fā)生變化,增加了新的應(yīng)用或新的實(shí)體,取消了某些舊的應(yīng)用,有的實(shí)體與實(shí)體間的聯(lián)系也發(fā)生了變化等,使原有的數(shù)據(jù)庫(kù)設(shè)計(jì)不能滿(mǎn)足新的需要,必需要調(diào)整數(shù)據(jù)庫(kù)的模式和內(nèi)模式。當(dāng)然數(shù)據(jù)庫(kù)的重構(gòu)也是有限的,只能做部分修改。返回本節(jié)首頁(yè)6.9小結(jié)6.8UML簡(jiǎn)介*

隨著面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言及其技術(shù)、面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)等的不斷發(fā)展與廣泛深入應(yīng)用,面向?qū)ο蟮姆治雠c設(shè)計(jì)建模語(yǔ)言UML的學(xué)習(xí)與應(yīng)用已成為一種必然趨勢(shì),本節(jié)將簡(jiǎn)要介紹UML語(yǔ)言。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.1概述1、UML的概念和特點(diǎn)UML(UnifiedModelingLanguage,統(tǒng)一建模語(yǔ)言)是一種為面向?qū)ο箝_(kāi)發(fā)系統(tǒng)的產(chǎn)品進(jìn)行說(shuō)明、可視化和編制文檔的一種標(biāo)準(zhǔn)語(yǔ)言,是非專(zhuān)利的第三代建模和規(guī)約語(yǔ)言。UML使用面向?qū)ο笤O(shè)計(jì)的觀念,但獨(dú)立于任何具體的程序設(shè)計(jì)語(yǔ)言。UML作為一種統(tǒng)一的軟件建模語(yǔ)言具有廣泛地建模能力。UML是在消化、吸收、提煉至今存在的所有軟件建模語(yǔ)言的基礎(chǔ)上提出的,集百家之所長(zhǎng),是軟件建模語(yǔ)言的集大成者。UML還突破了軟件的限制,廣泛吸收了其他領(lǐng)域的建模方法,并根據(jù)建模的一般原理,結(jié)合了軟件的特點(diǎn),因此具有堅(jiān)實(shí)的理論基礎(chǔ)和廣泛性。UML不僅可以用于軟件建模,還可以用于其他領(lǐng)域的建模工作。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

UML立足于對(duì)事物的實(shí)體、性質(zhì)、關(guān)系、結(jié)構(gòu)、狀態(tài)和動(dòng)態(tài)變化過(guò)程的全程描述和反映。UML可以從不同角度描述人們所觀察到的軟件視圖,也可以描述在不同開(kāi)發(fā)階段中的軟件的形態(tài)。UML可以建立需求模型、邏輯模型、設(shè)計(jì)模型和實(shí)現(xiàn)模型等,但UML在建立領(lǐng)域模型方面存在不足,需要進(jìn)行補(bǔ)充。作為一種建模語(yǔ)言,UML有嚴(yán)格地語(yǔ)法和語(yǔ)義規(guī)范。UML建立在元模型理論基礎(chǔ)上,包括4層元模型結(jié)構(gòu),分別是基元模型、元模型、模型和用戶(hù)對(duì)象。4層結(jié)構(gòu)層層抽象,下一層是上一層的實(shí)例。UML中的所有概念和要素均有嚴(yán)格的語(yǔ)義規(guī)范。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

2、UML的出現(xiàn)與流行公認(rèn)的面向?qū)ο蠼UZ(yǔ)言出現(xiàn)于20世紀(jì)70年代中期。從1989-1994年,其數(shù)量從不到10種增加到50多種。面向?qū)ο蟮姆治雠c設(shè)計(jì)(OOA&D)方法的發(fā)展在20世紀(jì)80年代末至90年代中出現(xiàn)了一個(gè)高潮,UML是這個(gè)高潮的產(chǎn)物。它不僅統(tǒng)一了BOOCH、Rumnaugh和Jacobson的表示方法,而且對(duì)其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語(yǔ)言。1996年底,UML已穩(wěn)占面向?qū)ο蠹夹g(shù)市場(chǎng)的85%,成為可視化建模語(yǔ)言事實(shí)上的工業(yè)標(biāo)準(zhǔn)。1997年11月17日,OMG(對(duì)象管理組)采納UML1.1作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語(yǔ)言。UML是一種可視化的建模語(yǔ)言,能夠讓系統(tǒng)構(gòu)造者用標(biāo)準(zhǔn)的、易于理解的方式建立起能夠表達(dá)他們?cè)O(shè)計(jì)思想的系統(tǒng)藍(lán)圖,并且提供一種機(jī)制,以便于不同的人之間有效地共享和交流設(shè)計(jì)成果。UML代表了面向?qū)ο蠓椒ǖ能浖_(kāi)發(fā)技術(shù)的發(fā)展方向,具有巨大的市場(chǎng)前景。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

2、UML的出現(xiàn)與流行公認(rèn)的面向?qū)ο蠼UZ(yǔ)言出現(xiàn)于20世紀(jì)70年代中期。從1989-1994年,其數(shù)量從不到10種增加到50多種。面向?qū)ο蟮姆治雠c設(shè)計(jì)(OOA&D)方法的發(fā)展在20世紀(jì)80年代末至90年代中出現(xiàn)了一個(gè)高潮,UML是這個(gè)高潮的產(chǎn)物。它不僅統(tǒng)一了BOOCH、Rumnaugh和Jacobson的表示方法,而且對(duì)其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語(yǔ)言。1996年底,UML已穩(wěn)占面向?qū)ο蠹夹g(shù)市場(chǎng)的85%,成為可視化建模語(yǔ)言事實(shí)上的工業(yè)標(biāo)準(zhǔn)。1997年11月17日,OMG(對(duì)象管理組)采納UML1.1作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語(yǔ)言。UML是一種可視化的建模語(yǔ)言,能夠讓系統(tǒng)構(gòu)造者用標(biāo)準(zhǔn)的、易于理解的方式建立起能夠表達(dá)他們?cè)O(shè)計(jì)思想的系統(tǒng)藍(lán)圖,并且提供一種機(jī)制,以便于不同的人之間有效地共享和交流設(shè)計(jì)成果。UML代表了面向?qū)ο蠓椒ǖ能浖_(kāi)發(fā)技術(shù)的發(fā)展方向,具有巨大的市場(chǎng)前景。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.2UML的構(gòu)成作為一種對(duì)客觀系統(tǒng)的建模語(yǔ)言,UML提供了描述事物實(shí)體、性質(zhì)、結(jié)構(gòu)、功能、行為、狀態(tài)和關(guān)系的建模元素,并通過(guò)一組圖來(lái)描述由建模元素所構(gòu)成的多種模型。1、UML視圖UML提供4種視圖來(lái)展示軟件在開(kāi)發(fā)過(guò)程的不同階段的模型,這4種視圖作為4個(gè)視角,從不同側(cè)面展現(xiàn)軟件,使人們對(duì)軟件有一個(gè)全面地把握。如圖6.25所示,4種視圖分別是用例視圖、邏輯視圖、構(gòu)件視圖和部署視圖。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.25UML視圖返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

用例視圖:是向用戶(hù)和開(kāi)發(fā)人員展現(xiàn)的視圖,主要展現(xiàn)軟件能夠外部提供的功能,所以,用例視圖也被稱(chēng)為功能視圖。用例視圖用于描述軟件和信息系統(tǒng)的需求,對(duì)需求進(jìn)行建模。用例視圖包括包圖、用例圖、類(lèi)圖、活動(dòng)圖和狀態(tài)圖等。其中包圖用來(lái)對(duì)需求結(jié)構(gòu)進(jìn)行建模。用例圖是用例視圖中最重要的一種圖,用來(lái)描述系統(tǒng)功能。在用例視圖中有時(shí)也需要用類(lèi)圖來(lái)描述業(yè)務(wù)對(duì)象的關(guān)系,用活動(dòng)圖描述一些事務(wù)的處理流程,用狀態(tài)圖描述復(fù)雜業(yè)務(wù)對(duì)象的狀態(tài)及其變化。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

邏輯視圖:描述軟件和信息系統(tǒng)邏輯結(jié)構(gòu)和邏輯組成,是對(duì)系統(tǒng)的分析和設(shè)計(jì)的建模。邏輯視圖中包括包圖、類(lèi)圖、順序圖、活動(dòng)圖和狀態(tài)圖等。包圖用來(lái)建立軟件的體系結(jié)構(gòu);類(lèi)圖描述系統(tǒng)的各種實(shí)體類(lèi)、界面類(lèi)和控制類(lèi)的組成、關(guān)系和結(jié)構(gòu);順序圖用來(lái)描述為實(shí)現(xiàn)用例中規(guī)定的功能、系統(tǒng)相關(guān)構(gòu)成要素之間的動(dòng)態(tài)消息聯(lián)系;活動(dòng)圖可以用來(lái)描述類(lèi)中操作的算法流程;狀態(tài)圖用來(lái)描述類(lèi)的狀態(tài)。構(gòu)件視圖:是對(duì)軟件的實(shí)現(xiàn)建模。描述軟件的構(gòu)件以及構(gòu)件之間的相關(guān)關(guān)系。部署視圖:描述軟件和信息系統(tǒng)硬件的物理配置和結(jié)點(diǎn)布局。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

2、UML模型元素UML模型元素是模型的基本要素,每個(gè)模型元素有其確定的含義,稱(chēng)為模型元素的語(yǔ)義。模型元素有名字和表示模型元素的符號(hào),并且應(yīng)該遵循確定的建模規(guī)則。同一個(gè)模型元素可以出現(xiàn)在不同的圖中。UML中的模型元素可以分為結(jié)構(gòu)類(lèi)、行為類(lèi)、分組類(lèi)和注釋類(lèi)4種類(lèi)型。(1)結(jié)構(gòu)類(lèi)模型元素:用來(lái)描述軟件模型中的靜態(tài)要素,UML共定義了7種結(jié)構(gòu)類(lèi)模型元素,如圖6.26所示。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.26UML的結(jié)構(gòu)類(lèi)模型元素返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

(2)行為類(lèi)模型元素。如圖6.27所示,行為類(lèi)模型元素用來(lái)描述動(dòng)態(tài)行為,UML提供了交互和狀態(tài)機(jī)兩個(gè)行為類(lèi)模型元素。①交互:描述對(duì)象之間交互的消息,通過(guò)消息來(lái)傳遞一個(gè)交互信息。②狀態(tài)機(jī):一個(gè)對(duì)象在其生命周期中所經(jīng)歷的狀態(tài)序列,狀態(tài)機(jī)涉及狀態(tài)、轉(zhuǎn)移和事件。(3)分組類(lèi)模型。UML中分組模型元素是包,通過(guò)包來(lái)把若干個(gè)模型元素組織成為一個(gè)模型。(4)注釋類(lèi)模型元素。用來(lái)說(shuō)明和標(biāo)注其他模型元素。注釋類(lèi)模型元素只有一個(gè),用折角的矩形框表示。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.27UML的行為類(lèi)模型元素返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

3、UML模型元素之間的關(guān)系UML定義了模型元素之間的關(guān)系共包括關(guān)聯(lián)關(guān)系、泛化關(guān)系、依賴(lài)關(guān)系和實(shí)現(xiàn)關(guān)系,這幾種關(guān)系的具體含義將在下面相應(yīng)章節(jié)中介紹。4、圖如圖6.28所示是一組模型元素的圖形表示,用來(lái)描述一個(gè)具有確定含義的子模型。一個(gè)信息系統(tǒng)的模型應(yīng)該包括多種圖,UML共定義了10種圖:用例圖、類(lèi)圖、對(duì)象圖、順序圖、協(xié)作圖、狀態(tài)圖、活動(dòng)圖、構(gòu)件圖、配置圖、交互圖和包圖等。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.28UML定義的圖返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.3UML的系統(tǒng)開(kāi)發(fā)思路及開(kāi)發(fā)階段1、開(kāi)發(fā)思路從應(yīng)用的角度看,當(dāng)采用面向?qū)ο蠹夹g(shù)設(shè)計(jì)系統(tǒng)時(shí),第一步是描述需求;第二步是根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu);第三是描述系統(tǒng)的行為。其中在第一步與第二步中所建立的模型都是靜態(tài)的,包括用例圖、類(lèi)圖(包括包)、對(duì)象圖、組件圖和配置圖五個(gè)圖形,是標(biāo)準(zhǔn)建模語(yǔ)言UML的靜態(tài)建模機(jī)制。其中第三步中所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時(shí)的時(shí)序狀態(tài)或交互關(guān)系。它包括狀態(tài)圖、活動(dòng)圖、順序圖和合作圖四個(gè)圖形,是標(biāo)準(zhǔn)建模語(yǔ)言UML的動(dòng)態(tài)建模機(jī)制。因此,標(biāo)準(zhǔn)建模語(yǔ)言UML的主要內(nèi)容也可以歸納為靜態(tài)建模機(jī)制和動(dòng)態(tài)建模機(jī)制兩大類(lèi)。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

在需求分析階段,可以用用例來(lái)捕獲用戶(hù)需求。通過(guò)用例建模,描述對(duì)系統(tǒng)感興趣的外部角色及其對(duì)系統(tǒng)(用例)的功能要求。分析階段主要關(guān)心問(wèn)題域的主要概念(如抽象、類(lèi)和對(duì)象)和機(jī)制,需要識(shí)別這些以及它們相互間的關(guān)系,并用UML類(lèi)圖來(lái)描述。為實(shí)現(xiàn)用例,類(lèi)之間需要協(xié)作,這可以用UML動(dòng)態(tài)模型來(lái)描述。在系統(tǒng)分析階段,只對(duì)問(wèn)題域的對(duì)象(現(xiàn)實(shí)世界的概念)建模,而不考慮定義軟件系統(tǒng)中技術(shù)細(xì)節(jié)的類(lèi)(如處理用戶(hù)接口、數(shù)據(jù)庫(kù)、通信和并行性等問(wèn)題的類(lèi))。這些技術(shù)細(xì)節(jié)將在系統(tǒng)設(shè)計(jì)階段引入,因此設(shè)計(jì)階段為編碼階段提供更詳細(xì)的規(guī)格說(shuō)明。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

2、開(kāi)發(fā)階段因此,基于UML的系統(tǒng)開(kāi)發(fā)可分為5個(gè)階段:需求分析、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編碼和測(cè)試階段,具體說(shuō)明如下:(1)需求分析階段:UML語(yǔ)言利用用例來(lái)捕獲客戶(hù)的需求。通過(guò)用例模型,就可以使那些對(duì)系統(tǒng)感興趣的外部參與者與他們要求系統(tǒng)具備的功能(即用例)一起被建模。外部參與者和用例之間是通過(guò)關(guān)系建模的,并且相互之間存在通信關(guān)聯(lián),或者被分解為更具體的層次結(jié)構(gòu)。參與者和用例是由UML的用例圖來(lái)描述的。每一個(gè)用例都是用文本進(jìn)行描述的,它確定了客戶(hù)的需求,即在不考慮功能如何實(shí)現(xiàn)的情況下客戶(hù)所企盼的系統(tǒng)功能。需求分析不僅是軟件系統(tǒng)的需求,業(yè)務(wù)過(guò)程同樣也需要。(2)系統(tǒng)分析階段:分析階段關(guān)注的是出現(xiàn)在問(wèn)題域中的主要抽象(類(lèi)和對(duì)象)和機(jī)制。被建模的類(lèi)以及類(lèi)之間的關(guān)系在UML的類(lèi)圖中被明確指定和描述。為了實(shí)現(xiàn)用例,各類(lèi)之間需要相互協(xié)作。這種協(xié)作是由UML中的動(dòng)態(tài)模型描述的。在分析階段,只有在問(wèn)題域(現(xiàn)實(shí)世界的概念)中的類(lèi)才被建模,這里的類(lèi)并不是那些在軟件系統(tǒng)中定義了細(xì)節(jié)和解決方案的技術(shù)類(lèi)。此階段的類(lèi)有用戶(hù)界面類(lèi)、數(shù)據(jù)庫(kù)類(lèi)、通信類(lèi)和并發(fā)類(lèi)等。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

(3)系統(tǒng)設(shè)計(jì)階段:在設(shè)計(jì)階段,分析階段的結(jié)果被擴(kuò)展為一個(gè)技術(shù)解決方案。新類(lèi)被加入進(jìn)來(lái),以提供以下一些技術(shù)基礎(chǔ)結(jié)構(gòu):用戶(hù)界面、處理對(duì)象存儲(chǔ)的數(shù)據(jù)庫(kù)、與其他系統(tǒng)的通信、與系統(tǒng)中各種設(shè)備的接口等。在分析階段獲得的問(wèn)題域中的類(lèi)被“嵌入”到此技術(shù)基礎(chǔ)結(jié)構(gòu)中,這樣就能夠同時(shí)改變問(wèn)題域和基礎(chǔ)結(jié)構(gòu)。設(shè)計(jì)階段將為隨后的構(gòu)建階段產(chǎn)生詳細(xì)的規(guī)格說(shuō)明。(4)編碼階段:在編碼階段(或稱(chēng)為構(gòu)建階段),設(shè)計(jì)階段的類(lèi)被轉(zhuǎn)換為使用面向?qū)ο缶幊陶Z(yǔ)言編制(不推薦使用過(guò)程語(yǔ)言)的實(shí)際代碼。這一任務(wù)可能比較困難,也可能比較容易,主要取決于所使用的編程語(yǔ)言本身的能力。用UML創(chuàng)建分析模型和設(shè)計(jì)模型時(shí),最好避免試圖將模型轉(zhuǎn)換為代碼。在開(kāi)發(fā)的早期階段,模型是幫助理解和搭建系統(tǒng)結(jié)構(gòu)的一種手段。這樣,如果在早期階段就考慮代碼,勢(shì)必達(dá)不到預(yù)期的目標(biāo),即創(chuàng)建簡(jiǎn)單的和正確的模型。所以,編碼是一個(gè)單獨(dú)的階段,也就是只有到了編碼階段,模型才被轉(zhuǎn)換為代碼。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

(5)測(cè)試階段:通常,一個(gè)系統(tǒng)需要經(jīng)過(guò)單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和接受性測(cè)試。單元測(cè)試是對(duì)單個(gè)類(lèi)或一組類(lèi)的測(cè)試,一般情況下由編程者自己完成。集成測(cè)試是集成組件和類(lèi),以校驗(yàn)它們是否是像指定的那樣進(jìn)行合作。系統(tǒng)測(cè)試將系統(tǒng)看做一個(gè)“黒盒子”,檢驗(yàn)系統(tǒng)是否具有最終用戶(hù)所期望的功能。接受性測(cè)試與系統(tǒng)測(cè)試相似,它是由客戶(hù)實(shí)施的,以驗(yàn)證系統(tǒng)是否滿(mǎn)足客戶(hù)的需求。不同的測(cè)試團(tuán)隊(duì)使用不同的UML圖作為他們工作的基礎(chǔ);單元測(cè)試團(tuán)隊(duì)使用類(lèi)圖和類(lèi)規(guī)格說(shuō)明;集成測(cè)試團(tuán)隊(duì)一般使用組件圖和協(xié)作圖;系統(tǒng)測(cè)試團(tuán)隊(duì)則利用用例圖檢驗(yàn)最初在這些圖中定義的系統(tǒng)行為。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.4用例圖1、用例的概念用例(UseCase)是外部使用者與系統(tǒng)之間,為達(dá)到確定目的所進(jìn)行的一次交互活動(dòng)。使用者(也被稱(chēng)為參與者或活動(dòng)者)向系統(tǒng)提供某些交互要求,系統(tǒng)向使用者反饋所要的結(jié)果。在信息系統(tǒng)模型中,用例被用在需求分析中,用來(lái)描述系統(tǒng)的功能。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

2、用例圖(1)用例圖:用例圖(UseCaseDiagram)用來(lái)描述軟件系統(tǒng)向一組參與者提供的一組相關(guān)的功能。在一個(gè)用例圖中,有一個(gè)或多個(gè)參與者與一個(gè)或多個(gè)用例相互關(guān)聯(lián)。一個(gè)系統(tǒng)的全部用例圖構(gòu)成該系統(tǒng)的功能需求模型的需求。圖2-14是圖書(shū)借閱管理的用例圖。在用例圖中,小人表示與系統(tǒng)進(jìn)行交互的參與者。橢圓表示用例,橢圓中或在橢圓下面填寫(xiě)用例名。參與者與用例之間的連線表示參與者與系統(tǒng)之間的交互關(guān)系。用例之間存在著泛化、包含和擴(kuò)展關(guān)系。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.31圖書(shū)借閱用例圖返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.5類(lèi)圖1、概述類(lèi)圖(ClassDiagram)用來(lái)描述系統(tǒng)中的一些要素的靜態(tài)結(jié)構(gòu)。一個(gè)類(lèi)圖由一組類(lèi)以及它們之間的關(guān)系構(gòu)成。類(lèi)描述事物以及事物的靜態(tài)和動(dòng)態(tài)性質(zhì),類(lèi)的關(guān)系反映事物之間的聯(lián)系,主要有關(guān)聯(lián)關(guān)系、泛化關(guān)系、依賴(lài)關(guān)系和實(shí)現(xiàn)關(guān)系等。圖6.36是一個(gè)書(shū)店銷(xiāo)售管理類(lèi)圖的例子。2、對(duì)象和類(lèi)(1)對(duì)象的概念.:對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位,一個(gè)對(duì)象由一組屬性和操作組成。對(duì)象既可以描述一個(gè)客觀中存在的事物,也可以表示一個(gè)抽象概念。對(duì)象的屬性描述它所反映的客觀事物的靜態(tài)性質(zhì),對(duì)象的操作描述客觀事物的動(dòng)態(tài)性質(zhì)。對(duì)象是系統(tǒng)中一個(gè)獨(dú)立實(shí)體。例如,一張桌子,一輛汽車(chē),一個(gè)學(xué)生都是對(duì)象。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.36書(shū)店銷(xiāo)售管理類(lèi)圖返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.6交互圖1、概述交互圖描述一組對(duì)象合作完成一項(xiàng)工作時(shí),相互之間傳遞消息的交互過(guò)程。交互圖反映在系統(tǒng)運(yùn)行過(guò)程中,對(duì)象之間的動(dòng)態(tài)聯(lián)系活動(dòng),以幫助人們理解和把握內(nèi)部各對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系。交互圖分為順序圖和協(xié)作圖兩種形式。順序圖反映各對(duì)象之間的消息傳送順序,重點(diǎn)描述對(duì)象之間交互的時(shí)序關(guān)系。協(xié)作圖反映為完成一件工作所參與的對(duì)象,以及對(duì)象之間的消息聯(lián)系。2、順序圖順序圖反映對(duì)象之間消息傳送的時(shí)序關(guān)系。順序圖右對(duì)象、對(duì)象生命線、對(duì)象激活期和對(duì)象之間傳輸?shù)南⒌葓D形要素構(gòu)成,圖6.50是一個(gè)描述訂貨管理工作的順序圖。在順序圖中,參與交互活動(dòng)的對(duì)象用矩形框表示。在框中標(biāo)注對(duì)象名,也可以采用匿名對(duì)象。對(duì)象的生命線表示對(duì)象對(duì)象的存活期,在對(duì)象下面用一條虛線表示。在對(duì)象生命線上的窄條為對(duì)象的激活期,表示對(duì)象在生存期內(nèi)處在激活狀態(tài)。消息是對(duì)象之間的通信信息,用帶箭頭的線段表示一個(gè)對(duì)象傳送給另一個(gè)對(duì)象的消息。在消息上要注明消息名。虛線表示消息的返回。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*圖6.50訂貨管理的順序圖返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

3、協(xié)作圖協(xié)作圖描述一組對(duì)象之間消息交互關(guān)系的協(xié)作結(jié)構(gòu)。在協(xié)作圖中,對(duì)象作為結(jié)點(diǎn)。存在消息交互關(guān)系的對(duì)象之間直線連接,并在直線上標(biāo)注交互的消息名。圖6.51是訂貨管理的協(xié)作圖。協(xié)作圖與順序圖是等價(jià)的,包含的信息量相同,其差別是描述得角度不同。順序圖側(cè)重于反映對(duì)象之間的消息交互時(shí)序,協(xié)作圖重點(diǎn)描述對(duì)象之間的消息交互結(jié)構(gòu)。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.51訂貨管理的協(xié)作圖返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.7狀態(tài)圖狀態(tài)圖描述事物對(duì)象在其生存周期中所具有的各種狀態(tài),以及因事件激勵(lì)狀態(tài)的變化和相互關(guān)系。圖6.52是書(shū)店圖書(shū)的狀態(tài)圖。書(shū)店的圖書(shū)要經(jīng)過(guò)訂購(gòu)、庫(kù)存、待銷(xiāo)售、售出或報(bào)廢等狀態(tài)。狀態(tài)圖中的結(jié)點(diǎn)是事物所處的狀態(tài)。實(shí)心圓表示初始狀態(tài),帶圓圈的實(shí)心圓表示結(jié)束狀態(tài)。一副狀態(tài)圖中一般有一個(gè)初始態(tài)。箭頭表示狀態(tài)的切換,在箭頭上標(biāo)注狀態(tài)切換的激發(fā)條件。例如,圖6.52通過(guò)圖書(shū)入庫(kù)這個(gè)激發(fā)條件把圖書(shū)從訂購(gòu)狀態(tài)轉(zhuǎn)換為庫(kù)存狀態(tài)。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

圖6.52書(shū)店圖書(shū)狀態(tài)返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.8活動(dòng)圖活動(dòng)圖用來(lái)描述事物發(fā)展變化的過(guò)程?;顒?dòng)圖可以描述業(yè)務(wù)流程、工作流程、類(lèi)中的操作流程等。圖6.53是反映書(shū)店圖書(shū)入庫(kù)業(yè)務(wù)流程的活動(dòng)圖。采購(gòu)員憑到貨通知單到車(chē)站或郵局領(lǐng)取圖書(shū),并把到貨的圖書(shū)與圖書(shū)訂單進(jìn)行核對(duì),檢查是否存在偏差。如果有偏差,則與運(yùn)輸部門(mén)或郵局進(jìn)行聯(lián)系;如果沒(méi)有偏差,則領(lǐng)回圖書(shū)。采購(gòu)員領(lǐng)回圖書(shū)之后,填寫(xiě)圖書(shū)入庫(kù)單,然后持入庫(kù)單到書(shū)庫(kù)入庫(kù)。庫(kù)管員把圖書(shū)與入庫(kù)單進(jìn)行核對(duì),如果發(fā)現(xiàn)有誤,則請(qǐng)采購(gòu)員修改入庫(kù)0單。如果核對(duì)無(wú)誤,庫(kù)管員登記入庫(kù)賬,并把入庫(kù)圖書(shū)收庫(kù),入庫(kù)過(guò)程結(jié)束。在活動(dòng)圖中,要表示出活動(dòng)的開(kāi)始和結(jié)束。圓形框表示活動(dòng),菱形框表示檢查;用虛線隔開(kāi)的兩個(gè)部分稱(chēng)為泳道,表示兩個(gè)實(shí)體所進(jìn)行的活動(dòng),如圖6.53。返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*圖6.53圖書(shū)入庫(kù)的活動(dòng)圖返回本節(jié)首頁(yè)6.8UML簡(jiǎn)介*

6.8.9構(gòu)件圖構(gòu)件可以是一段源程序代碼、一個(gè)文本文件、一個(gè)二進(jìn)制文件或一個(gè)可執(zhí)行文件?;跇?gòu)件開(kāi)發(fā)的軟件系統(tǒng),由多個(gè)軟件構(gòu)件按照確定的關(guān)系構(gòu)成軟件系統(tǒng)。構(gòu)件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論