軟件系統(tǒng)開發(fā)指導(dǎo)_第1頁
軟件系統(tǒng)開發(fā)指導(dǎo)_第2頁
軟件系統(tǒng)開發(fā)指導(dǎo)_第3頁
軟件系統(tǒng)開發(fā)指導(dǎo)_第4頁
軟件系統(tǒng)開發(fā)指導(dǎo)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件系統(tǒng)開發(fā)概述系統(tǒng)開發(fā)的主要步驟包括:系統(tǒng)需求分析、數(shù)據(jù)庫設(shè)計和應(yīng)用程序設(shè)計。系統(tǒng)分為面向數(shù)據(jù)的數(shù)據(jù)庫應(yīng)用系統(tǒng)和面向處理的數(shù)據(jù)庫應(yīng)用系統(tǒng)。否認(rèn)哪一種,第一步都要作好數(shù)據(jù)庫的設(shè)計。兩類系統(tǒng)都是通過應(yīng)用程序向用戶提供信息服務(wù)的。但是,前者的應(yīng)用面更寬,其數(shù)據(jù)對應(yīng)用程序的依賴也因而更小。反映在系統(tǒng)的開發(fā)步驟上,兩類系統(tǒng)的具體作法也有較大不同?,F(xiàn)分述如下:一、 以數(shù)據(jù)為中心的系統(tǒng)這類系統(tǒng)都是大型數(shù)據(jù)庫系統(tǒng)。這類系統(tǒng)的開發(fā)示意圖如下收集數(shù)據(jù)處理需求 求 數(shù)據(jù)分類與編碼維護(hù)子系統(tǒng)的設(shè)計與實現(xiàn)應(yīng)用子系統(tǒng)的設(shè)計與實現(xiàn)數(shù)據(jù)庫設(shè)計滿意否 N 數(shù)據(jù)庫實現(xiàn)(采集與裝入數(shù)據(jù))數(shù)據(jù)庫運行與維護(hù)1 數(shù)據(jù)庫設(shè)計數(shù)據(jù)量大是這

2、類系統(tǒng)的主要特點。如國家經(jīng)濟(jì)信息系統(tǒng)、全國財政稅務(wù)信息系統(tǒng)、科技情報檢索系統(tǒng)等,一般都在幾百MB。設(shè)計這類系統(tǒng)時還要充分考慮到數(shù)據(jù)的增長??萍记閳笮畔⒁埠茫瑖医?jīng)濟(jì)信息也好,數(shù)據(jù)量都是逐年增長的。在一般情況下,可以把數(shù)據(jù)分為當(dāng)前數(shù)據(jù)和歷史數(shù)據(jù),分別存放在當(dāng)前庫和歷史庫中。這樣既可達(dá)到把一些有用數(shù)據(jù)作為歷史資料長期保存的目的,又可使對當(dāng)前數(shù)據(jù)的頻繁處理更加高效和方便。2 應(yīng)用程序設(shè)計在上圖中,“數(shù)據(jù)庫設(shè)計”的左右兩側(cè)列出了應(yīng)用程序設(shè)計所包含的兩項工作,即應(yīng)用子系統(tǒng)設(shè)計和維護(hù)子系統(tǒng)設(shè)計。需要強(qiáng)調(diào)指出,對于以數(shù)據(jù)為中心的系統(tǒng),其應(yīng)用子程序不僅數(shù)量大,而且伴隨用戶的增加而不斷擴(kuò)充。由于這類系統(tǒng)的用戶眾

3、多,每個用戶對數(shù)據(jù)會有不同的需求,因此系統(tǒng)設(shè)置若干基本查詢程序用于一般的對外信息服務(wù)外,應(yīng)允許某些用戶擁有專用的查詢程序;對于領(lǐng)導(dǎo)機(jī)關(guān)和研究部門,還應(yīng)允許它們建立滿足各自需求的統(tǒng)計和分析程序,支持它們進(jìn)行預(yù)測和決策。由此可見,這類系統(tǒng)的應(yīng)用子程序可以在數(shù)據(jù)庫設(shè)計之后,甚至在已經(jīng)運行后,再根據(jù)用戶的需要逐步開發(fā)與擴(kuò)充。所以我們說,在這類系統(tǒng)中數(shù)據(jù)是獨立于應(yīng)用程序的。除此之外,在設(shè)計這類系統(tǒng)的應(yīng)用程序時不需注意以下特點:(1) 由于用戶眾多,系統(tǒng)應(yīng)十分重視數(shù)據(jù)安全,防止有意或無意地造成數(shù)據(jù)的破壞或泄密。為此,程序應(yīng)具有鑒別用戶身分(例如核對用戶口令)和限制操作權(quán)限(例如只讀不寫)等功能,并在維護(hù)子

4、程序中設(shè)置對數(shù)據(jù)進(jìn)行后備(即復(fù)制備份)和轉(zhuǎn)移(將數(shù)據(jù)從當(dāng)前庫轉(zhuǎn)入歷史庫)等有關(guān)程序。(2) 考慮到大多數(shù)用戶是不計算機(jī)的非專業(yè)用戶,所有應(yīng)用程序都應(yīng)具有友好的用戶界面,并盡可能利用圖形、代碼等技術(shù),以方便用戶的操作。(3) 維護(hù)數(shù)據(jù)的完整性。由于這類系統(tǒng)往往是適用于多用戶的網(wǎng)絡(luò)或分布式系統(tǒng),這一點尤須引起足夠重視。以數(shù)據(jù)為中心的應(yīng)用系統(tǒng)通常是在大、中型計算機(jī),或者由它們與微機(jī)共同組成的主從式系統(tǒng)上開發(fā)的。二、 以處理為中心的系統(tǒng)在微機(jī)DBMS上開發(fā)的應(yīng)用系統(tǒng)大都是小型的數(shù)據(jù)庫系統(tǒng)。它們是以處理為中心的應(yīng)用系統(tǒng),也是我們研究的重點。這類系統(tǒng)的開發(fā)示意圖如下:需 求 分 析功能分析數(shù)據(jù)分析應(yīng)用程序

5、設(shè)計數(shù)據(jù)庫設(shè)計系統(tǒng)試運行(聯(lián)調(diào))滿意否NNY系統(tǒng)運行與維護(hù)由圖可知,整個開發(fā)活動是從對系統(tǒng)的需求分析開始的。需要指出,系統(tǒng)需求包括對數(shù)據(jù)的需求和對數(shù)據(jù)處理或應(yīng)用的需求兩方面的內(nèi)容。圖中把前者稱為數(shù)據(jù)分析,后者稱為功能分析。它們的分析結(jié)果將分別作為數(shù)據(jù)庫設(shè)計和應(yīng)用程序設(shè)計的依據(jù)。實際上在一個“以處理為中心”的應(yīng)用系統(tǒng)中,這兩方面的需求往往我中有你,你中有我,不能截然分開。具體地說,不僅在應(yīng)用程序設(shè)計中仍須接受數(shù)據(jù)庫當(dāng)前結(jié)構(gòu)的約束,在設(shè)計數(shù)據(jù)庫的時候,也須充分考慮滿足數(shù)據(jù)處理的需要。需求分析結(jié)束后,就要分別開始數(shù)據(jù)庫設(shè)計和應(yīng)用誤譯設(shè)計了。前者又可分為“概念設(shè)計-實現(xiàn)設(shè)計(或邏輯設(shè)計)-物理設(shè)計”等

6、步驟;后者則通常包括“確定總體結(jié)構(gòu)-模塊設(shè)計-編碼調(diào)試”等內(nèi)容。這兩項工作完成后,系統(tǒng)應(yīng)進(jìn)入試運行,即把數(shù)據(jù)庫文件連同有關(guān)的應(yīng)用程序一起裝入計算機(jī),考察它們在各種應(yīng)用中能否達(dá)到預(yù)定的功能和性能需求。若不能滿足,還需返回前面步驟,修改數(shù)據(jù)庫或應(yīng)用程序的設(shè)計。為穩(wěn)妥起見,在試運行階段一般只裝入少量數(shù)據(jù)。等確認(rèn)沒有重大問題時再裝入大批數(shù)據(jù),以免造成較大返工。試運行的結(jié)束,標(biāo)志著系統(tǒng)開發(fā)的基本完成。但是,只要系統(tǒng)存在一天,對系統(tǒng)的調(diào)整和修改就會繼續(xù)一天。還須繼續(xù)做好系統(tǒng)的維護(hù)工作,包括糾錯和系統(tǒng)改進(jìn)等。系統(tǒng)需求分析需求分析是系統(tǒng)開發(fā)的第一步,目的是確定用戶對目標(biāo)系統(tǒng)的需求。一般地說,目標(biāo)系統(tǒng)都是由當(dāng)前

7、系統(tǒng)脫胎而來的。它源于當(dāng)前系統(tǒng),但又往往高于當(dāng)前系統(tǒng)。大體上說系統(tǒng)的需求分析要經(jīng)歷下列步驟:(1) 調(diào)查研究當(dāng)前系統(tǒng)的工作狀況,即進(jìn)行“詳細(xì)的用戶調(diào)查”(2) 通過對調(diào)查內(nèi)容的“分析”與“抽象”,列出經(jīng)過用戶許可的目標(biāo)系統(tǒng)需求(3) 對上述需求進(jìn)行“數(shù)據(jù)分析”和“功能分析”,分別得出系統(tǒng)對數(shù)據(jù)和數(shù)據(jù)應(yīng)用兩方面的需求。一個實例汽車修理管理信息系統(tǒng)(QCXL_MIS)通過用戶調(diào)查,初步得出以下結(jié)果:1當(dāng)前系統(tǒng)工作狀況調(diào)查獲悉,該廠在業(yè)務(wù)管理上共使用5種單據(jù),4種賬冊和3種主要報表?,F(xiàn)分述如下:(1) 5種單據(jù)。如下表當(dāng)前系統(tǒng)單據(jù)一覽表編 號名 稱填 寫 人D1修車登記表送修人D2汽車修理單修理派工

8、員和修理工D3零件領(lǐng)用單修理工D4零件入庫單倉庫管理員D5修車發(fā)票財務(wù)人員各表的具體格式如下:修車登記單 日期 汽車牌號 型號 生產(chǎn)廠 修理項目 車主名 電話 地址 其余略(2) 4種帳冊 如下表當(dāng)前系統(tǒng)賬冊一覽表編 號名 稱建賬根據(jù)Z1汽車登記冊D1Z2修理工名冊人事部門資料Z3汽車修理臺賬D2、D5Z4庫存零件臺賬庫房資料汽車登記冊牌號型號生產(chǎn)廠車主名地址電話其余略(3) 3種主要報表當(dāng)前系統(tǒng)報表一覽表編 號名 稱 數(shù)據(jù)來源B1零件耗用月報表Z3,Z4B2修理工資月報表Z3,Z2B3零件訂貨計劃Z4零件耗用月報表零件名稱數(shù)量價格零件費利潤其余略2對目標(biāo)系統(tǒng)的應(yīng)用要求通過對當(dāng)前系統(tǒng)的調(diào)查和與

9、用戶的共同討論,對將要開發(fā)的目標(biāo)系統(tǒng)提出了如下的總體要求:(1) 用數(shù)據(jù)文件代替現(xiàn)用的全部賬冊(2) 具有對各種數(shù)據(jù)文件裝入和修改數(shù)據(jù)的功能(3) 能計算出修車費用和開發(fā)票。其中修車費用按下列各式計算:零件費=零件價格耗用數(shù)量修理費=小時工資修理工時3總 計=零件費用+修理費(4) 能找出需要訂貨的零件,編制并打印零件訂貨計劃訂貨條件:零件庫存量<最低庫存量訂貨數(shù)量:額定訂貨量(5) 按現(xiàn)有格式和內(nèi)容和打印零件耗用月報表和修理工資月報表(6) 有多種查詢和統(tǒng)計功能。為了簡化討論,具體需求就從略了在上述工作的基礎(chǔ)上,就可以進(jìn)行“數(shù)據(jù)分析”和“功能分析”了。數(shù)據(jù)分析這是數(shù)據(jù)庫系統(tǒng)開發(fā)中十分重

10、要的一項活動。其首要任務(wù)是確定目標(biāo)系統(tǒng)中使用的全部數(shù)據(jù),為它們?nèi)∶投x。在傳統(tǒng)的軟件工程方法中,數(shù)據(jù)常區(qū)分為數(shù)據(jù)文件、數(shù)據(jù)流(組合數(shù)據(jù))和數(shù)據(jù)項(單個數(shù)據(jù))三大類。分析中要為每一數(shù)據(jù)編寫一個數(shù)據(jù)條目,然后將所有條目合編為數(shù)據(jù)字典。這樣,在隨后進(jìn)行的系統(tǒng)設(shè)計中不論有多少人參加,大家都可以數(shù)據(jù)字典為統(tǒng)一的根據(jù),不必?fù)?dān)心因數(shù)據(jù)不一致而導(dǎo)致矛盾和混亂了。在數(shù)據(jù)字典中,每一個數(shù)據(jù)占一個字典條目。字典條目可以用簡易表示法表示。字典條目所用符號如下表:符號=+a b/( )*含義定義為加允許重復(fù)a-b次在數(shù)項中任選一項允許省略( )中內(nèi)容注釋的起止符號字典條目舉例修車登記單=牌號+型號+生產(chǎn)廠+車主名+地

11、址+電話汽車登記冊=牌號+型號+生產(chǎn)廠+車主名+地址+電話車主名=3漢字符10以汽車修理管理信息系統(tǒng)為例,說明數(shù)據(jù)分析步驟如下:1確定各個單項數(shù)據(jù)(不含數(shù)據(jù)文件和數(shù)據(jù)流)在目標(biāo)系統(tǒng)中的名稱。為數(shù)據(jù)取名時注意:(1) 同一數(shù)據(jù)還要使用不同的名稱(2) 在容易識別的前提下盡量簡化名稱,以方便輸入操作。在本例中,一律取漢字拼音的首字母作為數(shù)據(jù)名稱。例:賬冊Z1(PH,XH,SCC,CZM,DZ,DH)2定義數(shù)據(jù)項的含意與取值將上一步得到的全部數(shù)據(jù)項綜合起來,加上含義與取值,便可得到整個目標(biāo)系統(tǒng)的數(shù)據(jù)項條目,這些數(shù)據(jù)項將構(gòu)成定義應(yīng)用系統(tǒng)的字段變量和內(nèi)存變量的根據(jù)。數(shù)據(jù)項條目一覽表數(shù)據(jù)項名含義類型寬度數(shù)

12、據(jù)項名含義類型寬度PH汽車牌號C12CB成本N8.2XH汽車型號C6JG價格N8.2GH修理工工號C4LJF零件費N8.2BH修理單編號C4ZJ總計N8.2LJH零件號C6SL數(shù)量N2XM修理工姓名C8KCL庫存量N3CZM車主名C8ZDKC最低庫存N3LJM零件名C10DHL訂貨量N3DZ地址C16LR利潤N8.2DH電話C13YGZ月工資N6.2XLXM修理項目C12CSRQ出生日期D8SCC生產(chǎn)廠C20JCRQ進(jìn)廠日期D8XLXS修理小時N4.1SXRG送修日期D8XSGZ小時工資N5.2WGRG完工日期D8XLF修理費N8.23定義目標(biāo)系統(tǒng)的數(shù)據(jù)流系統(tǒng)的輸入數(shù)據(jù)和輸出的打印數(shù)據(jù),一般可

13、轉(zhuǎn)換為目標(biāo)系統(tǒng)的輸入和輸出數(shù)據(jù)流。就本例面議,D1-D5,B1-B3共可定義8種數(shù)據(jù)流。如下表:數(shù)據(jù)流條目一覽表數(shù)據(jù)流名含 義組 成XCDJ修車登記單PH+XH+SCC+CZM+DH+DZ+XLXM+SXRQXLD汽車修理單BH+PH+GH+XLXM+XLXS+WGRQ+LJH+SLLYD零件領(lǐng)用單BH+LJH+SLRKD零件入庫單LJH+LJM+CB+SLXCFP修車發(fā)票CZM+DZ+PH+XLXM+WGRQ+XLF+LJF+ZJLHYB零件耗用月報LJH+LJM+SLDHJB零件訂貨季報LJH+LJM+DHL+JG+ZJGZYB修理工資月報GH+XM+XLXS+XSGZ+YGZ如果目標(biāo)系統(tǒng)

14、是基于普通文件的應(yīng)用系統(tǒng),在數(shù)據(jù)項和數(shù)據(jù)流全部定義后,就可以定義數(shù)據(jù)文件了。但是在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,定義數(shù)據(jù)庫文件不屬于分析階段的任務(wù)。這是因為在開發(fā)這類系統(tǒng)時,數(shù)據(jù)庫的設(shè)計上升為一項獨立的開發(fā)活動。目標(biāo)系統(tǒng)共需要多少個數(shù)據(jù)庫文件?每個文件怎樣組成?必須推遲到數(shù)據(jù)庫設(shè)計階段方能最后確定。這也是開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)不同于開發(fā)傳統(tǒng)文件應(yīng)用系統(tǒng)的一個特點。還需指出的是,由于數(shù)據(jù)庫文件暫不能確定,已定義的數(shù)據(jù)項和數(shù)據(jù)流也可以在以后的設(shè)計階段出現(xiàn)增刪。功能分析功能分析的任務(wù)是弄清用戶對目標(biāo)系統(tǒng)數(shù)據(jù)處理功能所提出的需求。用戶對本例提出的功能需求可歸納為下列4個方面:1登記功能:用于把各種手填單據(jù)中的數(shù)據(jù)及時

15、登記到系統(tǒng)將要定義的數(shù)據(jù)庫文件中。由于庫文件要等數(shù)據(jù)庫設(shè)計好后才能確定,故此項功能也須隨后再定。2開修車發(fā)票:根據(jù)修理單記載的修理小時和零件用量記載的耗用零件,按規(guī)定的算式計算出修理費和零件費,然后打印出發(fā)票。不難看出,發(fā)票包含的信息幾乎取自所有數(shù)據(jù)文件,所以這是一項涉及面很廣的功能。3打印報表:包括2種月報表(零件耗用和工資津貼)和一種季報表(零件訂貨)。4查詢統(tǒng)計:滿足對各種數(shù)據(jù)的查詢、統(tǒng)計和分析等需求。如前所述,為了簡化所討論的問題,這總分的功能從略了。至此,除個別問題暫時不能確定外,已經(jīng)基本上完成了對“汽車修理管理信息系統(tǒng)”的需求分析。數(shù)據(jù)庫設(shè)計在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,數(shù)據(jù)由DBMS進(jìn)行獨

16、立的管理,對程序的依賴大為減小。因此,數(shù)據(jù)庫的設(shè)計也上升為一項獨立的開發(fā)活動,成為在數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)中最受關(guān)心的中心問題。以下將介紹數(shù)據(jù)庫設(shè)計所包含的工作內(nèi)容、指導(dǎo)原則與設(shè)計過程。一、數(shù)據(jù)庫的分級結(jié)構(gòu)與設(shè)計過程1SPARC分級結(jié)構(gòu)SPARC是美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)下屬的標(biāo)準(zhǔn)規(guī)劃和要求委員會的縮寫。1975年,該委員會對數(shù)據(jù)庫結(jié)構(gòu)提出了一個標(biāo)準(zhǔn)模型。這一模型將數(shù)據(jù)庫劃分為內(nèi)模式、概念模式和外模式三級,被稱為SPARC分級模型。下圖給出了這一模型的分級結(jié)構(gòu)及各級之間的聯(lián)系。應(yīng)用程序外模式A應(yīng)用程序應(yīng)用程序用戶視圖外模式B (用戶級邏輯數(shù) 據(jù)庫) (外部/概念映射)DBMS 概 念 模 式

17、 (概念/內(nèi)部映射)模內(nèi)式對于上圖給出的三層模式,現(xiàn)分述如下:(1) 內(nèi)模式(internal schema) 即存儲模式。它是當(dāng)數(shù)據(jù)庫在外存儲器上存儲時,對它的物理結(jié)構(gòu)的描述。早期的數(shù)據(jù)庫都建立在大、中型計算機(jī)上,其內(nèi)模式通常由系統(tǒng)程序員設(shè)計,由他來確定所有數(shù)據(jù)庫文件與索引文件的物理結(jié)構(gòu)。所以內(nèi)模式有時也稱為系統(tǒng)程序員視圖(view),表明它是系統(tǒng)程序員觀點下的數(shù)據(jù)庫。(2) 概念模式(conceptual schema) 它是對數(shù)據(jù)庫整體邏輯結(jié)構(gòu)的描述。規(guī)模較大的數(shù)據(jù)庫都設(shè)有數(shù)據(jù)庫管理員(DataBase Administrator),簡稱DBA由他們來統(tǒng)一管理對數(shù)據(jù)庫的定義、使用與維護(hù),

18、他們對數(shù)據(jù)庫的全局結(jié)構(gòu)必須有清楚的了解。所以這一模式有時也稱為DBA視圖,表明它是DBA觀點下的數(shù)據(jù)庫。(3) 外模式(external schema) 數(shù)據(jù)共享是數(shù)據(jù)庫的一大特點。一個大型數(shù)據(jù)庫通常擁有許多用戶。對某一特定的用戶面議,他可能僅對其中的一部分?jǐn)?shù)據(jù)感興趣,不需要訪問庫中所有的數(shù)據(jù),也不必了解數(shù)據(jù)庫的全局結(jié)構(gòu)。以大型企業(yè)的管理信息系統(tǒng)為例,在它的數(shù)據(jù)庫中,可能包括生產(chǎn)、供銷、財務(wù)、人事等內(nèi)容廣泛的數(shù)據(jù)庫文件。外模式的作用就是用來定義滿足不同用戶(例生產(chǎn)、供銷、財務(wù)、人事等處、科)需要的數(shù)據(jù)庫。一個數(shù)據(jù)庫只能有一個概念模式,但卻允許有多個外模式,每一個外模式都是概念模式的一個子集,包

19、含了允許某一特定用戶使用的那部分?jǐn)?shù)據(jù)。由于外模式是對應(yīng)于用戶的,是用戶觀點下的數(shù)據(jù)庫,所以有時也稱為用戶視圖。小型數(shù)據(jù)庫可以沒有外模式。此時所有的用戶都直接使用概念模式,或者說取整個概念模式作為自己的外模式。從上面描述可知,所謂三級模式,其實是對同一數(shù)據(jù)庫所作的三種不同的描述。內(nèi)模式是計算機(jī)上實際存在的數(shù)據(jù)庫,即常說的物理數(shù)據(jù)庫。概念模式是對內(nèi)模式的邏輯抽象,外模式則是對概念模式中某個局部的抽象,它們分別對應(yīng)于佤的和用戶級的邏輯數(shù)據(jù)庫。如上圖所示,從一種模式到另一種模式是通過級間“映射(mapping)”實現(xiàn)的。這種映射功能由DBMS自動提供,不需要由用戶進(jìn)行干預(yù)。2數(shù)據(jù)庫的設(shè)計過程數(shù)據(jù)庫的設(shè)

20、計主要是針對上述三種模式的設(shè)計。由于概念模式和外模式所描述的都是數(shù)據(jù)庫的邏輯結(jié)構(gòu),所以傳統(tǒng)的數(shù)據(jù)庫設(shè)計將設(shè)計過程概括為兩大步,即邏輯設(shè)計和物理設(shè)計。當(dāng)然,在邏輯設(shè)計前首先要進(jìn)行系統(tǒng)分析,弄清用戶對系統(tǒng)的需求。但是,傳統(tǒng)的數(shù)據(jù)庫設(shè)計在完成需求分析后,隨即就開始邏輯設(shè)計。設(shè)計人員在滿足系統(tǒng)需求的前提下,要同時考慮選擇數(shù)據(jù)模型(層次、網(wǎng)狀、關(guān)系)、確定存取方法與訪問路徑、提高存取效率等多方面的問題,難免顧此失彼。為此,在“1978新奧爾良數(shù)據(jù)庫設(shè)計小組工作報告”中,數(shù)十位專家一致建議在邏輯設(shè)計階段前增加一個“概念設(shè)計”階段,將設(shè)計全過程擴(kuò)充為四步,如下:第一階段:面向問題第一步:系統(tǒng)的需求分析-弄清

21、系統(tǒng)對信息的需求第二步:概念設(shè)計-確定概念模式第二階段:面向?qū)崿F(xiàn)第三步:邏輯設(shè)計-確定概念模式與外模式(邏輯數(shù)據(jù)庫)第四步:物理設(shè)計-確定內(nèi)模式(物理數(shù)據(jù)庫)這樣,第一階段集中于弄清需要解決的問題,第二階段才考慮怎樣去實現(xiàn),既降低了每一步工作的復(fù)雜性,而且使整個工作顯得更有條理。采用美籍華人陳平山創(chuàng)議的“實體-聯(lián)系模型”(簡稱E-R模型),可將上圖改造為:需 求 說 明 書系統(tǒng)需求分析 E-R 模型概念設(shè)計邏輯數(shù)據(jù)庫結(jié)構(gòu)實現(xiàn)設(shè)計物理數(shù)據(jù)庫結(jié)構(gòu)物理設(shè)計以下對上圖進(jìn)行說明:(1) 需求分析 目的是分析系統(tǒng)的需求。這一步的主要任務(wù)是從數(shù)據(jù)庫的所有用戶那里收集對數(shù)據(jù)的需求和對數(shù)據(jù)處理的需求,并把這些需

22、求寫成用戶各設(shè)計人員都能接受的需求說明書。(2) 概念設(shè)計 目的是將需求說明書中關(guān)于數(shù)據(jù)的需求綜合為一個統(tǒng)一的概念模型。為此,可首先根據(jù)單個應(yīng)用的需求,畫出能反映每一應(yīng)用需求的局部E-R模型。然后把這些E-R圖合并起來,消除冗余和可能存在的矛盾,得出系統(tǒng)的總體E-R模型。(需要重申,概念模型是對用戶需求的客觀反映,并不涉及用什么軟硬件來實現(xiàn)它們。因此,這一步的注意力應(yīng)該集中在怎樣準(zhǔn)確表達(dá)用戶對信息的需求上,暫時不要去考慮怎樣實現(xiàn),以免分散精力。)(3) 實現(xiàn)設(shè)計 其目的是將前一步得出的E-R模型轉(zhuǎn)換為某一特定的DBMS能夠接受的邏輯模式。在這一步中,首先要選擇一種適當(dāng)?shù)臄?shù)據(jù)模型(關(guān)系、網(wǎng)狀、層

23、次)。由于一種特定的DBMS只支持一種數(shù)據(jù)模型,所以DBMS一經(jīng)確定,數(shù)據(jù)模型也就確定了。然后可以就按照相應(yīng)的轉(zhuǎn)換規(guī)則將E-R模型轉(zhuǎn)換為所選的DBMS可以接受的數(shù)據(jù)庫邏輯結(jié)構(gòu)。對于需要外模式的數(shù)據(jù)庫,還應(yīng)利用概念設(shè)計階段得到的局部E-R模型,參照轉(zhuǎn)換規(guī)則設(shè)計出供不同用戶使用的局部邏輯結(jié)構(gòu)。通過轉(zhuǎn)換規(guī)則形成的全局和局部的邏輯模式,還需要運用有關(guān)理論和方法對結(jié)構(gòu)進(jìn)行優(yōu)化,然后再轉(zhuǎn)入物理設(shè)計。(4) 物理設(shè)計 目的在于確定數(shù)據(jù)庫的存儲結(jié)構(gòu)。其主要任務(wù)包括:確定數(shù)據(jù)庫文件和索引文件的記錄格式和物理結(jié)構(gòu),選擇存取方法,決定訪問和外存儲器的分配策略等。由于這些工作都與硬件環(huán)境密切相關(guān),所以物理設(shè)計包含了許

24、多復(fù)雜和細(xì)致的工作。幸運的是,這些工作大部分將由DBMS自動完成,僅有一小部分內(nèi)容需要設(shè)計人員確定。以FOXPRO為例,其物理設(shè)計主要包括確定數(shù)據(jù)庫文件中表的字段類型與長度,決定在哪些字段上建立索引,建立什么樣的索引等,實際上比概念設(shè)計和實現(xiàn)設(shè)計還要簡單。以下是數(shù)據(jù)庫設(shè)計過程各階段工作示意圖: 應(yīng)用1 應(yīng)用2 應(yīng)用n用 戶模式 求用 戶模式 求用 戶模式 求用 戶需 求 應(yīng)用1 應(yīng)用2 : : 局部概 念局部概 念局部概 念邏輯數(shù)據(jù)庫E-R模型庫物理用 戶需 求用 戶需 求 應(yīng)用n數(shù)據(jù)庫概念設(shè)計需求分析結(jié)束后,就可以進(jìn)行數(shù)據(jù)庫概念設(shè)計了。以下根據(jù)上述分析,建立汽車管理信息系統(tǒng)的概念模型。作為預(yù)

25、備知識,下面先對“實體-聯(lián)系”方法作一簡單介紹。1實體-聯(lián)系方法實體-聯(lián)系方法(Entity-relationship approach)簡稱E-R方法,是用E-R圖來描述現(xiàn)實世界中數(shù)據(jù)之間聯(lián)系的有效方法。自1976年P(guān)PSChen提出這一方法以來,E-R圖在設(shè)計數(shù)據(jù)庫中被廣泛應(yīng)用,現(xiàn)已成為概念設(shè)計階段描述數(shù)據(jù)庫概念模型的主要工具。(1)E-R圖的基本成分E-R圖中包含實體、聯(lián)系與屬性三種基本成份?,F(xiàn)分述如下:l 實體 即現(xiàn)實世界中存在的“人”或“物”。例如工廠、工人、產(chǎn)品、零件、訂貨單,都是實體的例子。在數(shù)據(jù)庫中實體常用來表示某類數(shù)據(jù)的集合,其范圍可大可小,例如工人可表示一個車間的工人,也可

26、表示一個工廠的工人。l 表示實體間存在的關(guān)系。例如,廠長領(lǐng)導(dǎo)工廠,工廠雇用工人,工人生產(chǎn)產(chǎn)品,產(chǎn)品使用零件。這里的“領(lǐng)導(dǎo)”、“雇用”、“生產(chǎn)”與“使用”都代表實體之間的聯(lián)系。聯(lián)系又可分為一對一(1:1)、一對多(1:M)、多對多(M:N)等類型。廠長與工廠是一對一的聯(lián)系,工廠與工人是一對多的聯(lián)系,工人與產(chǎn)品是多對多的聯(lián)系,產(chǎn)品與零件也屬于多對多的聯(lián)系。l 屬性 表示實體或聯(lián)系的某種特征。例如,零件可能有編號、名稱、庫存量、價格等屬性;汽車可能有牌號、型號、車主姓名等屬性。值得注意的是聯(lián)系也可以有屬性。如:某種產(chǎn)品使用某種零件的“數(shù)量”,它既非產(chǎn)品的屬性(如果該產(chǎn)品不止使用一種零件),也不能算零

27、件的屬性(因為同一種零件可能用在不同的產(chǎn)品上),只能是產(chǎn)品和零件均相關(guān)的“使用”屬性。當(dāng)然,并不是所有聯(lián)系都必須有屬性。(2)E-R圖在E-R圖中,實體、聯(lián)系與屬性分別用矩形框、菱形框和橢圓框(或圓框)來表示。如下圖示例所示:其中圖1給出了實體之間的聯(lián)系,圖2給出了多個實體之間的聯(lián)系,圖3 給出了實體和聯(lián)系的屬性。現(xiàn)實世界中的任何數(shù)據(jù)集合都可以用E-R圖來表示。修理單零件使用產(chǎn)品廠長生產(chǎn)工人產(chǎn)品1 1 MM雇用領(lǐng)導(dǎo)修理1 MNN修理工工廠汽車工人工廠汽 車零 件車主姓名牌照號 型號價 格庫存量名 稱工 廠使用零件產(chǎn)品數(shù) 量在數(shù)據(jù)庫設(shè)計中,E-R圖常用來表示概念模型,有時亦稱為E-R模型。它直觀

28、易懂,也是設(shè)計人員和用戶之間進(jìn)行溝通的有效工具。2用E-R圖描述概念模型下面以汽車修理管理信息系統(tǒng)為例,說明用E-R方法來建立概念模型的具體步驟。第一步:確定E-R模型應(yīng)含的實體。如前面所指出的,每一實體可用來代表一類數(shù)據(jù)的集合。所以在本例中,可以暫定修理廠原來使用的4種帳冊為模型的第一批實體,并分別取名為“汽車”、“修理工”、“修理單”與“零件”。第二步:建立對應(yīng)于系統(tǒng)單項應(yīng)用的局部E-R模型。這一步的目的是在實體之間建立所需的聯(lián)系。通常的作法是根據(jù)對系統(tǒng)的功能分析首先選出一至數(shù)項有代表性的單項應(yīng)用,建立起相應(yīng)的局部E-R模型。然后在此基礎(chǔ)上逐漸擴(kuò)充,直到在所有實體之間均建立起應(yīng)有的聯(lián)系。就

29、本例來說,在需求中“開修車發(fā)票”是一項有代表性的應(yīng)用。計算修理費要用到修理工的“小時工資”和修理單的“修理小時”,計算零件費用時要用到修理單的“零件用量”和零件的“價格”,而發(fā)票中的“車主名”和“地址”都要用到汽車的信息。一項應(yīng)用涉及到所有4個實體中的數(shù)據(jù)。下圖給出了“開修車發(fā)票”這一單項應(yīng)用的局部E-R模型。為簡明起見,其中每一實體只畫出了在單項應(yīng)用中用到的屬性。修 理汽 車修理工地址牌號車 主 名工號小時工資使 用修理單零 件零件號價格工號編號牌號零件用量修理小時修理項目零件 號第三步:將局部E-R模型綜合為系統(tǒng)的總體E-R模型。如下圖:生產(chǎn)廠型號牌號電話地址姓名工號修理小時工號編號牌號修

30、理單車 主 名進(jìn)廠日期小時工資出生日期地址電話汽 車修 理修理工零件號送修日期零件費使 用修理費零件名零 件完工日期總 計最低庫 存量訂貨量庫存量數(shù)量價格成本修理項目請注意:l 圖中的所有實體全都使用了的屬性集合;l 鑒于一張修理單可能耗用多種零件,“零件用量”不能算作修理單的屬性。所以綜合時從修理單的屬性中刪去了“零件號”與“零件用量”,用加在聯(lián)系“使用”上的屬性“數(shù)量”來替代。第四步:改進(jìn)總體E-R模型。通過綜合得到的初始模型常常存在不完善的地方,需要進(jìn)行改進(jìn)。一個完善的概念模型應(yīng)該具有最小的數(shù)據(jù)冗余。所以這一步的主要目的就是減少冗余,盡可能避免數(shù)據(jù)的重復(fù)存儲。按照這一目標(biāo),本例的初始模型

31、可作如下改進(jìn):l 刪去修理單中的3屬性“零件費”、“修理費”和“總計”。這是因為這3 個屬性數(shù)據(jù)均可從其它數(shù)據(jù)計算得出。通常把這類數(shù)據(jù)稱為“衍生數(shù)據(jù)”或“可導(dǎo)出數(shù)據(jù)”以區(qū)別于不能從推導(dǎo)得到的“基本數(shù)據(jù)”。把它們刪去可以減少冗余。l 將實體“汽車”分解為“汽車”和“車主”兩個實體。這是因為汽車的屬性集中實際上含有汽車與車主兩個方面的信息。如果一個車主送修了多輛汽車,則車主名及其地址與電話就會多次重復(fù)存貯,造成數(shù)據(jù)冗余。分開后的兩個實體可以是:汽車:含屬性牌號、型號和生產(chǎn)廠車主:含屬性車主名、地址和電話經(jīng)過上述改進(jìn),就可以得到本例最終的概念模型。如下圖車 主 名牌號修 理汽 車汽 車價格成本零件名

32、零件號訂貨量最低庫 存量庫存量數(shù)量小時工資進(jìn)廠日期電話地址姓名工號修理小時修理項目工號編號牌號出生日期修理單使 用零 件修 理修理工型號生產(chǎn)廠電話地址送修日期完工日期數(shù)據(jù)庫的特點之一是數(shù)據(jù)的結(jié)構(gòu)化,即不論一個數(shù)據(jù)庫包含多少復(fù)雜的數(shù)據(jù),它們在整體上仍服從于一定的結(jié)構(gòu)形式。上圖所示的概念模型,清楚地表明了各個實體是怎樣通過多種形式的聯(lián)系組合在一起的。這反過來也表明,用E-R圖來描述數(shù)據(jù)間存在著的復(fù)雜聯(lián)系的數(shù)據(jù)庫系統(tǒng),的確是很有效的。3數(shù)據(jù)庫的實現(xiàn)設(shè)計實現(xiàn)設(shè)計的任務(wù)是確定數(shù)據(jù)庫的邏輯結(jié)構(gòu)。前已提到,數(shù)據(jù)庫可區(qū)分為關(guān)系、層次和網(wǎng)狀等模型。大多數(shù)微機(jī)DBMS只支持關(guān)系數(shù)據(jù)模型,所以,我們只討論怎樣把概念

33、模型轉(zhuǎn)換為數(shù)據(jù)庫的關(guān)系模式。關(guān)系規(guī)范化理論是建立關(guān)系模式的指導(dǎo)理論。而模式分解則是優(yōu)化關(guān)系模式時最常用的一種方法?,F(xiàn)結(jié)合上例,分別對這些理論與方法作簡要介紹。31 E-R模型向關(guān)系模式的轉(zhuǎn)換在關(guān)系型數(shù)據(jù)庫中每一數(shù)據(jù)庫文件表示為一個關(guān)系。人E-R模型轉(zhuǎn)換為關(guān)系模式,就是將E-R圖中的所有實體和聯(lián)系都改用關(guān)系來表示。下面仍以汽車修理管理信息系統(tǒng)為例,說明實現(xiàn)這種的具體步驟。(1) 把每一實體轉(zhuǎn)換為一個關(guān)系首先分析實體的屬性集,從中找出關(guān)系的主鍵,然后用關(guān)系式來表示實體。上圖中的5個實體可分別轉(zhuǎn)換為下列的5個關(guān)系。在這些關(guān)系表示式中,下方劃線的屬性表示主鍵。從主鍵出發(fā)的箭頭表示主鍵將決定其它屬性的值

34、,或者說其它屬性對主鍵存在著依賴關(guān)系。實體名:修理工對應(yīng)關(guān)系:修理工(工號,姓名,地址,電話,出生年月,進(jìn)廠日期,小時工資)實體名:汽車對應(yīng)關(guān)系:汽車(牌號,型號,生產(chǎn)廠)實體名:修理單對應(yīng)的關(guān)系:修理單(編號,牌號,工號,修理項目,修理小時,送修日期,完工日期)實體名:零件對應(yīng)的關(guān)系:零件庫存表:(零件號,零件名,成本,價格,庫存量,最小庫存量,訂貨量)實體名:車主對應(yīng)的關(guān)系:車主(車主名,地址,電話)(2) 把每一聯(lián)系也轉(zhuǎn)換為關(guān)系聯(lián)系的情況比較復(fù)雜。例如在E-R模型中,有的聯(lián)系不帶屬性,有的聯(lián)系可能帶一個或者多個屬性。在轉(zhuǎn)換成關(guān)系時,在關(guān)系的屬性集中一般應(yīng)包括聯(lián)系本身的屬性;由它所聯(lián)系的各

35、個實體的主鍵。以上圖中的三個聯(lián)系為例,可分別按下述的步驟進(jìn)行轉(zhuǎn)換:聯(lián)系名:使用所聯(lián)系的實體及其主鍵:修理單(主鍵:編號),零件(主鍵:零件號)對應(yīng)的關(guān)系:零件用量表(編號、零件號,數(shù)量)聯(lián)系名:屬于所聯(lián)系的實體及其主鍵:汽車(主鍵:牌號),車主(車主名)對應(yīng)的關(guān)系:汽車歸屬表(車主名,牌號)一個車主可能僅送修一輛汽車,也可能送修多輛汽車。有了汽車歸屬表,便可知道哪輛汽車是哪一車主送修的,或某一車主共計送修了哪幾輛汽車。由于“屬于”本身不帶屬性,所以對應(yīng)的關(guān)系將僅含兩個屬性-車主名與牌號。它們構(gòu)成新關(guān)系的元組,同時也是新關(guān)系的主鍵。這種由整個元組構(gòu)成的主鍵,在有些文獻(xiàn)中稱為“全鍵”(all ke

36、y)。聯(lián)系名:修理所聯(lián)系的實體及其主鍵:修理單(主鍵:編號),汽車(主鍵:牌號), 修理工(主鍵:工號)對應(yīng)的關(guān)系:修理(編號,牌號,工號,修理項目,修理小時,送修日期,完工日期)上述關(guān)系中式中的后面4項都是“修理”本身的屬性。顯然,這一關(guān)系與前面由實體“修理單”轉(zhuǎn)換得到的關(guān)系是重復(fù)的,只需保留一個就可以了。綜上可知,從5個實體可導(dǎo)出5個關(guān)系,3個聯(lián)系可導(dǎo)出3個關(guān)系,去掉重復(fù)的一個,關(guān)系的總數(shù)為5+3-1=7個(3) 轉(zhuǎn)換結(jié)果的改進(jìn)上述的結(jié)果仍有改進(jìn)的余地。拿“汽車歸屬表”來說,它唯一的作用是建立“汽車”與“車主”的聯(lián)系。如果在“汽車”中附加“車主”的主鍵“車主名”或者在“車主”中附加“汽車”的主鍵“牌號”都能代替“汽車歸屬表”的作用。造成以上差別的原因是車主與汽車間存在著一對多(1:M)的聯(lián)系。一個車主可能送修多輛汽車。把送修汽車的牌號附加到“車主”中,則送修M輛汽車的車主,其全部屬性就會重復(fù)出現(xiàn)M次。由此可見,對于存在1:M聯(lián)系的兩個實體,應(yīng)將處于“1”端的實體(本例中為車主)的主屬性附加到處于“M”端的實體(本例中為汽車)的屬性集中,而不是相反。一般地說,對于類似上述情

溫馨提示

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

評論

0/150

提交評論