摘要:該文主要針對ER模型和DFD模型進(jìn)行了探討。ER模型和DFD模型是數(shù)據(jù)設(shè)計和數(shù)據(jù)流設(shè)計的有效工具,它們不僅是軟件設(shè)計的基礎(chǔ),而且也是軟件設(shè)計的必然。
關(guān)鍵詞:數(shù)據(jù)設(shè)計;數(shù)據(jù)流設(shè)計;ER模型;DFD模型
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)33-9431-02
Analysis of ER Model and the DFD Model
LI Su-ping
(Taiyuan University of Technology,Yangquan 045000, China)
Abstract: This article mainly aimed at the ER model and the DFD model has carried on the discussion.The ER model and the DFD model are effective tools in the data design and the data stream design.Not only they are the foundation which the software designs, moreover alsothey arethe necessity which the software designs.
Key words: data design; data stream design; ER model; DFD model
軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),因此,在軟件系統(tǒng)的整個開發(fā)過程中都必須考慮兩方面的問題——“數(shù)據(jù)”及對數(shù)據(jù)的“處理”。即既要分析用戶的數(shù)據(jù)要求(即需要有哪些數(shù)據(jù)、數(shù)據(jù)之間有什么聯(lián)系、數(shù)據(jù)本身有什么性質(zhì)、數(shù)據(jù)的結(jié)構(gòu)等等),又要分析用戶的處理要求(即對數(shù)據(jù)進(jìn)行哪些處理、每個處理的邏輯功能等等)。所以,數(shù)據(jù)設(shè)計和數(shù)據(jù)流設(shè)計既是軟件設(shè)計的基礎(chǔ),又是軟件設(shè)計的必備。
1 數(shù)據(jù)設(shè)計
在軟件工程學(xué)中,為了把開發(fā)系統(tǒng)的大量紛繁復(fù)雜的數(shù)據(jù)清晰明確地組織起來,通常建立一個概念性的數(shù)據(jù)模型,也稱為信息模型。
概念性數(shù)據(jù)模型是按照用戶的觀點(diǎn)對數(shù)據(jù)或信息建模,它描述了從用戶角度看到的數(shù)據(jù),反映了用戶的現(xiàn)實(shí)環(huán)境,且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法無關(guān)。
最常用的表示概念性數(shù)據(jù)模型的方法,是實(shí)體-聯(lián)系方法(Entity-Relationship Approach)。這種方法是用實(shí)體-聯(lián)系圖(也稱為實(shí)體-關(guān)系圖或ER圖)來描述現(xiàn)實(shí)世界中的實(shí)體,用這種方法表示的概念性數(shù)據(jù)模型又稱為ER模型。
實(shí)體--聯(lián)系模型中包含“實(shí)體”、“聯(lián)系”和“屬性”三個基本成分。
1) 實(shí)體
實(shí)體是客觀世界中存在的且可相互區(qū)分的事物。實(shí)體可以是人也可以是物;可以是具體事物也可以是抽象概念。例如,職工、學(xué)生、課程、教師等都是實(shí)體。在ER圖中用矩形框代表實(shí)體。
2) 聯(lián)系
客觀世界中的事物彼此間往往是有聯(lián)系的。例如,教師與課程間存在“教”這種聯(lián)系,而學(xué)生與課程間則存在“學(xué)”這種聯(lián)系。聯(lián)系可分為以下三類:
(1) 一對一聯(lián)系(1∶1)
(2) 一對多聯(lián)系(1∶N)
(3) 多對多聯(lián)系(M∶N)
3) 屬性
屬性是實(shí)體或聯(lián)系所具有的性質(zhì)。通常一個實(shí)體由若干個屬性來描述。例如,“學(xué)生”實(shí)體有學(xué)號、姓名、性別、系、年級等屬性;“教師”實(shí)體有教工號、姓名、性別、職稱、職務(wù)等屬性;“課程”實(shí)體有課程號、課名、學(xué)時、學(xué)分等屬性。
聯(lián)系也可能有屬性。例如,學(xué)生“學(xué)”某門課程所取得的成績,既不是學(xué)生的屬性也不是課程的屬性。由于“成績”既依賴于某名特定的學(xué)生又依賴于某門特定的課程,所以這是學(xué)生與課程之間的聯(lián)系“學(xué)”的屬性。
通常,我們應(yīng)該根據(jù)所要解決的實(shí)際問題確定特定的數(shù)據(jù)(即實(shí)體)的一組合適的屬性。
在ER圖中,用橢圓形或圓角矩形表示實(shí)體(或聯(lián)系)的屬性,并用直線把實(shí)體(或聯(lián)系)與其屬性連接起來。
如圖1是某校教學(xué)管理的ER圖例。
可以看出, ER模型比較接近人的習(xí)慣思維方式,不熟悉計算機(jī)技術(shù)的用戶也能容易地理解掌握。因此,它可以作為數(shù)據(jù)設(shè)計的有力工具。有了它,就可以方便地導(dǎo)出數(shù)據(jù)的邏輯模型,確定合適的物理結(jié)構(gòu),以順利完成數(shù)據(jù)設(shè)計的任務(wù),從而為軟件設(shè)計打下堅實(shí)的基礎(chǔ)。
2 數(shù)據(jù)流設(shè)計
當(dāng)數(shù)據(jù)在軟件中“移動”時,它將被一系列“處理”所修改。為了把用戶的處理要求清晰明確地表達(dá)出來,通常建立一個抽象性的邏輯模型。它描述了數(shù)據(jù)在軟件中從輸入移動到輸出的過程中所經(jīng)受的變換(即加工處理)。它是從用戶角度看到的處理,即對數(shù)據(jù)進(jìn)行哪些處理、每個處理的邏輯功能等等,且與在軟件系統(tǒng)中功能的具體實(shí)現(xiàn)方法無關(guān)。
在軟件工程學(xué)中,通常用數(shù)據(jù)流圖這種抽象性邏輯模型表示數(shù)據(jù)的處理。數(shù)據(jù)流圖(DFD)是一種形象直觀的圖形,它僅僅描繪數(shù)據(jù)在軟件中流動和被處理的情況,是軟件系統(tǒng)邏輯功能的圖形表示。
數(shù)據(jù)流圖有四種基本符號:正方形(或立方體)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn);圓角矩形(或圓形)代表變換數(shù)據(jù)的處理;開口矩形(或兩條平行橫線)代表數(shù)據(jù)存儲;箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向。
說明:數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),它們所處的狀態(tài)不同。數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動中的數(shù)據(jù)。
除了上述四種基本符號之外,有時也使用幾種附加符號:星號(*)表示數(shù)據(jù)流之間“與”的關(guān)系(同時存在);加號(+)表示數(shù)據(jù)流之間“或”的關(guān)系;異或號(⊕)表示只能從數(shù)據(jù)流中選一個(互斥的關(guān)系)。
如下是某工廠定貨系統(tǒng)的DFD圖例。
假設(shè)一工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號,零件名稱,定貨數(shù)量,目前價格,主要供應(yīng)者,次要供應(yīng)者。零件入庫或出庫稱為事務(wù),通過放在倉庫中的終端把事務(wù)報告給定貨系統(tǒng)。當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時就應(yīng)該再次定貨。如圖2。
然而,從這張圖上對定貨系統(tǒng)所能了解到的信息非常有限。所以,應(yīng)該把基本系統(tǒng)模型再細(xì)化。將定貨系統(tǒng)分解為“處理事務(wù)”和“產(chǎn)生報表”兩個基本功能,同時,增加兩個數(shù)據(jù)存儲(“庫存清單”和“定貨信息”)和兩個數(shù)據(jù)流(“庫存清單”和“定貨信息”)
這時,還需進(jìn)一步分解。因?yàn)橥ㄟ^系統(tǒng)的邏輯數(shù)據(jù)流當(dāng)發(fā)生一個事務(wù)時必須首先接收它;隨后按照事務(wù)的內(nèi)容修改庫存清單;最后,如果更新后的庫存量少于庫存量臨界值,則應(yīng)該再次定貨,也就是需要處理定貨信息。因此,把“處理事務(wù)”這個功能再分解為“接收事務(wù)”、“更新庫存清單”和“處理定貨”這樣三個子功能就明了了。如圖3。也就是說,分解到需要涉及功能的具體實(shí)現(xiàn)時就不應(yīng)該再分解了。
可以看出, DFD模型也比較接近人的習(xí)慣思維方式,即使不是專業(yè)的計算機(jī)技術(shù)人員也很容易理解,所以,它是數(shù)據(jù)流設(shè)計極好的工具。有了它,就可以方便地導(dǎo)出系統(tǒng)模塊圖,完成數(shù)據(jù)流設(shè)計的任務(wù),從而為軟件設(shè)計打下堅實(shí)的基礎(chǔ)。
因此,ER模型和DFD模型是數(shù)據(jù)設(shè)計和數(shù)據(jù)流設(shè)計的基礎(chǔ),更是軟件設(shè)計的必然。
參考文獻(xiàn):
[1] 劉健.SQLServer數(shù)據(jù)庫案例教程[M].北京:清華大學(xué)出版社,2008.
[2] 劉培文,數(shù)據(jù)庫原理與應(yīng)用[M].北京:中國人民大學(xué)出版社,2006.
[3] 陳明.軟件工程[M].北京:清華大學(xué)出版社,2002.