《系統(tǒng)設(shè)計》PPT課件
《《系統(tǒng)設(shè)計》PPT課件》由會員分享,可在線閱讀,更多相關(guān)《《系統(tǒng)設(shè)計》PPT課件(183頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第7章 系統(tǒng)設(shè)計,7.1 概述 7.2 系統(tǒng)平臺設(shè)計 7.3 拓?fù)浣Y(jié)構(gòu)和計算模式設(shè)計 7.4 軟件結(jié)構(gòu)設(shè)計 7.5 詳細(xì)設(shè)計 7.6 數(shù)據(jù)庫設(shè)計,7.1 概 述,7.1.1 系統(tǒng)設(shè)計的任務(wù)和特點 在信息系統(tǒng)開發(fā)中,突出信息系統(tǒng)特征的業(yè)務(wù)、管理、決策等因素已經(jīng)在前續(xù)階段中被消融和解決,到了系統(tǒng)設(shè)計階段,信息系統(tǒng)的設(shè)計與一般軟件系統(tǒng)的設(shè)計已經(jīng)沒有太大的區(qū)別,軟件工程對軟件設(shè)計的思想、方法、技術(shù)和過程完全適應(yīng)于信息系統(tǒng)的設(shè)計。因此,信息系統(tǒng)的設(shè)計也就基本等同于軟件系統(tǒng)的設(shè)計。,系統(tǒng)設(shè)計的任務(wù)是,為實現(xiàn)信息系統(tǒng)需求模型所規(guī)定的功能和性能要求,考慮信息系統(tǒng)實現(xiàn)環(huán)境,通過對信息系統(tǒng)分析模型的綜合分
2、析和細(xì)化,確定出信息系統(tǒng)的設(shè)計模型。,與系統(tǒng)分析相比,系統(tǒng)設(shè)計具有以下特點: (1)設(shè)計性。設(shè)計不同于分析,設(shè)計是根據(jù)系統(tǒng)的要求,得出實現(xiàn)系統(tǒng)的方案。所以,系統(tǒng)設(shè)計是根據(jù)需求確定系統(tǒng)方案的過程。 (2) 具體化。相對于系統(tǒng)分析的概念性而言,系統(tǒng)設(shè)計不能停留在概念層次上,必須具體化、細(xì)致化。 (3)復(fù)雜性。系統(tǒng)設(shè)計涉及到具體細(xì)節(jié),工作量大、頭緒繁多,一般要比系統(tǒng)分析多出近乎5倍的工作量,因此,設(shè)計人員必須認(rèn)真對待。 (4)往復(fù)性。一個成熟的設(shè)計方案并不是一次完成的,而需要經(jīng)過多次的迭代反復(fù)才能夠完成。,7.1.2 系統(tǒng)設(shè)計的主要工作 1平臺設(shè)計 2結(jié)構(gòu)設(shè)計 3
3、詳細(xì)設(shè)計 4界面設(shè)計 5數(shù)據(jù)庫設(shè)計,主要工作簡介 1平臺設(shè)計 信息系統(tǒng)平臺是信息系統(tǒng)開發(fā)和運行的環(huán)境,包括網(wǎng)絡(luò)、計算機、相關(guān)設(shè)備、支撐軟件和系統(tǒng)軟件等。平臺設(shè)計需要根據(jù)信息系統(tǒng)設(shè)計要求,通過對技術(shù)和市場的綜合分析,確定出網(wǎng)絡(luò)結(jié)構(gòu)、設(shè)備選型和軟件平臺方案。,2結(jié)構(gòu)設(shè)計 在設(shè)計工作中,需要確定信息系統(tǒng)的拓?fù)浣Y(jié)構(gòu)、計算模式和軟件結(jié)構(gòu)。 3詳細(xì)設(shè)計 詳細(xì)設(shè)計是對軟件結(jié)構(gòu)中確定出的各個子系統(tǒng)內(nèi)部的設(shè)計,需要分析和確定每一個子系統(tǒng)中的用例設(shè)計、設(shè)計類和接口。 4界面設(shè)計 界面設(shè)計是對人和外部系統(tǒng)與信息系統(tǒng)之間交互界面的設(shè)計。它包括輸入界面、輸出界面和混合界面的設(shè)計。,5
4、數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫是信息系統(tǒng)存儲和管理數(shù)據(jù)的主要技術(shù)手段,數(shù)據(jù)庫設(shè)計的任務(wù)是根據(jù)給定的信息系統(tǒng)應(yīng)用需求和系統(tǒng)環(huán)境,設(shè)計出合理的數(shù)據(jù)庫結(jié)構(gòu)。數(shù)據(jù)庫設(shè)計需要經(jīng)過概念設(shè)計、邏輯設(shè)計和物理設(shè)計等步驟。,7.1.3 信息系統(tǒng)設(shè)計模型和軟件模型 信息系統(tǒng)設(shè)計模型是對信息系統(tǒng)設(shè)計方案的抽象描述,它要完整描述信息系統(tǒng)設(shè)計的內(nèi)容,并具有簡明、抽象、概括和規(guī)范等特點。 信息系統(tǒng)設(shè)計模型包括平臺模型、拓?fù)溆嬎隳P停ㄍ負(fù)浣Y(jié)構(gòu)和計算模式)、軟件模型、界面模型和數(shù)據(jù)庫模型等內(nèi)容(見圖7.1)。,圖7.1 信息系統(tǒng)設(shè)計模型,,軟件模型的構(gòu)成見圖7.2。軟件系統(tǒng)是軟件模型的頂層視圖,它由子系統(tǒng)、設(shè)計類、用例
5、設(shè)計和接口構(gòu)成。系統(tǒng)中的絕大部分設(shè)計類和用例設(shè)計均處在子系統(tǒng)中,但對系統(tǒng)具有重要意義的少數(shù)用例設(shè)計和設(shè)計類也可能不包括在子系統(tǒng)中,而直接屬于軟件系統(tǒng)。,圖7.2 軟件模型,,圖7.3 用例設(shè)計到用例分析和用例的跟蹤,,用例設(shè)計包括用例的設(shè)計類圖和交互圖。 設(shè)計類圖反映一個用例中的設(shè)計類所呈現(xiàn)的靜態(tài)結(jié)構(gòu)。與分析類圖相比較,設(shè)計類圖更詳細(xì)、更具體。設(shè)計類圖所反映的設(shè)計類之間的關(guān)系應(yīng)該能夠被所采用的程序設(shè)計語言所支持。 通過交互圖,可描述在實現(xiàn)一個用例過程中各個設(shè)計類之間的消息聯(lián)系過程,接口是設(shè)計類或子系統(tǒng)對外所能夠提供的操作。接口并不涉及到對設(shè)計類或子系統(tǒng)操作的實現(xiàn)。接口也是設(shè)計類或子
6、系統(tǒng)對外所提供的操作視圖,其它設(shè)計類或子系統(tǒng)通過接口來與提供接口的設(shè)計類發(fā)生關(guān)系。接口的實現(xiàn)如圖7.4所示。 (你所知道的軟件接口有哪些?),圖7.4 接口的實現(xiàn),,7.2 系統(tǒng)平臺設(shè)計,7.2.1 網(wǎng)絡(luò)設(shè)計 信息系統(tǒng)一般都是集成式、綜合性系統(tǒng),網(wǎng)絡(luò)把系統(tǒng)的各個部分連接到一起以形成一體化系統(tǒng),網(wǎng)絡(luò)在系統(tǒng)設(shè)計中占有很重要的地位。,網(wǎng)絡(luò)設(shè)計主要包括網(wǎng)絡(luò)需求分析、網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計和網(wǎng)絡(luò)詳細(xì)設(shè)計三部分內(nèi)容。 1. 網(wǎng)絡(luò)需求分析 網(wǎng)絡(luò)需求分析是通過對所開發(fā)的信息系統(tǒng)的規(guī)模、系統(tǒng)所覆蓋業(yè)務(wù)的地域分布、計算機設(shè)備、網(wǎng)絡(luò)服務(wù)等方面需求的分析,為確定網(wǎng)絡(luò)總體結(jié)構(gòu)、網(wǎng)絡(luò)詳細(xì)設(shè)計提供依據(jù)。網(wǎng)絡(luò)需
7、求分析需要調(diào)查和分析以下6方面的內(nèi)容。,1)信息系統(tǒng)的特征對網(wǎng)絡(luò)的需求:辦公自動化系統(tǒng)和CIMS系統(tǒng)對網(wǎng)絡(luò)的結(jié)構(gòu)和布局有不同的要求。 2)信息系統(tǒng)拓?fù)浣Y(jié)構(gòu)和計算模式對網(wǎng)絡(luò)的需求 3)信息系統(tǒng)業(yè)務(wù)所覆蓋的地理分布 4)網(wǎng)絡(luò)服務(wù)需求:數(shù)據(jù)庫訪問方式和數(shù)據(jù)存儲分布模式;文件傳輸和存取需求;電子郵件和遠(yuǎn)程通信需求;企業(yè)網(wǎng)與社會網(wǎng)、因特網(wǎng)的互連需求等。 5)信息類型和信息量 6)性能需求:系統(tǒng)對網(wǎng)絡(luò)的效率、速度、可靠性、安全性等性能要求。,2. 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的主要任務(wù)是根據(jù)網(wǎng)絡(luò)需求分析的結(jié)果,設(shè)計出能夠滿足信息系統(tǒng)需要、結(jié)構(gòu)合理、易于擴充、性能價格比高的
8、系統(tǒng)網(wǎng)絡(luò)總體結(jié)構(gòu)。系統(tǒng)網(wǎng)絡(luò)總體結(jié)構(gòu)可以采用單級、二級和多級結(jié)構(gòu)。,1) 單級結(jié)構(gòu) 對于規(guī)模較小、地域相對集中的小型系統(tǒng),可以采用單級網(wǎng)絡(luò)結(jié)構(gòu)。單級結(jié)構(gòu)一般采用一個小型局域網(wǎng),各部分之間可以采用集線器、網(wǎng)橋連接,如果在局域網(wǎng)中還有異構(gòu)網(wǎng)絡(luò),可以采用網(wǎng)關(guān)。 2) 二級結(jié)構(gòu) 對于分布地域范圍較廣、管理復(fù)雜的中型系統(tǒng),可以采用二級網(wǎng)絡(luò)結(jié)構(gòu)。二級網(wǎng)絡(luò)結(jié)構(gòu)一般由高速主干網(wǎng)和多個局域網(wǎng)構(gòu)成。主干網(wǎng)可以選擇FDDI、交換網(wǎng)、ATM或快速以太網(wǎng)等技術(shù)。,3) 多級結(jié)構(gòu) 對于跨地區(qū)、跨省、跨國的大型或超大型系統(tǒng),則需要采用多級網(wǎng)絡(luò)結(jié)構(gòu)。在多級網(wǎng)絡(luò)結(jié)構(gòu)中,一般頂層采用社會公用網(wǎng)或?qū)S脧V域網(wǎng),
9、二級和三級則為骨干網(wǎng)和主干網(wǎng),最下一級為局域網(wǎng)。,3. 網(wǎng)絡(luò)詳細(xì)設(shè)計 網(wǎng)絡(luò)詳細(xì)設(shè)計包括網(wǎng)絡(luò)節(jié)點設(shè)計、網(wǎng)絡(luò)設(shè)備選型、網(wǎng)絡(luò)布線設(shè)計、網(wǎng)絡(luò)操作系統(tǒng)選擇、網(wǎng)絡(luò)管理設(shè)計等內(nèi)容。 1) 網(wǎng)絡(luò)節(jié)點設(shè)計 網(wǎng)絡(luò)節(jié)點設(shè)計指通過網(wǎng)絡(luò)需求分析,詳細(xì)確定每一個網(wǎng)絡(luò)節(jié)點的具體位置、設(shè)備類型和連網(wǎng)設(shè)備,并繪制出網(wǎng)絡(luò)節(jié)點分布圖,以便根據(jù)網(wǎng)絡(luò)節(jié)點分布圖進行設(shè)備選型和網(wǎng)絡(luò)布線設(shè)計。,2) 網(wǎng)絡(luò)設(shè)備確定及選擇 需要詳細(xì)確定整個網(wǎng)絡(luò)系統(tǒng)所需要的服務(wù)器、路由器、集線器、網(wǎng)關(guān)、網(wǎng)橋、網(wǎng)卡、網(wǎng)線等網(wǎng)絡(luò)設(shè)備。還需要根據(jù)網(wǎng)絡(luò)的功能和性能需求,確定各個網(wǎng)絡(luò)設(shè)備的性能指標(biāo)。例如,服務(wù)器需要多大存儲容量、多高速度;根據(jù)系統(tǒng)的
10、安全性、可靠性要求確定是選擇雙服務(wù)器系統(tǒng)、磁盤鏡像技術(shù),還是采用單服務(wù)器。,3) 網(wǎng)絡(luò)布線設(shè)計 根據(jù)網(wǎng)絡(luò)節(jié)點設(shè)計的結(jié)果和具體地理分布,要進行細(xì)致的網(wǎng)絡(luò)布線設(shè)計。目前網(wǎng)絡(luò)布線一般對網(wǎng)絡(luò)系統(tǒng)、電話系統(tǒng)、監(jiān)控系統(tǒng)采用統(tǒng)一布線方式,這種布線方式叫做結(jié)構(gòu)化布線。結(jié)構(gòu)化布線設(shè)計需要由低層向高層逐層進行布線設(shè)計。首先在辦公室確定網(wǎng)絡(luò)設(shè)備位置和插座位置;再確定每個樓層的水平布線;然后確定樓層的垂直布線;最后確定主干網(wǎng)線的布線。,4) 網(wǎng)絡(luò)操作系統(tǒng)選擇 網(wǎng)絡(luò)操作系統(tǒng)是網(wǎng)絡(luò)的核心軟件。一般在大型網(wǎng)絡(luò)系統(tǒng)中并不一定只選擇一個統(tǒng)一的網(wǎng)絡(luò)操作系統(tǒng)。有時可能會采用多個網(wǎng)絡(luò)操作系統(tǒng)。目前可供選擇的網(wǎng)絡(luò)操作系統(tǒng)有
11、UNIX、Windows NT、NetWare、OS2等,可根據(jù)系統(tǒng)需要進行選擇。 5) 網(wǎng)絡(luò)管理設(shè)計 對網(wǎng)絡(luò)系統(tǒng)需要進行有效管理。一般大型網(wǎng)絡(luò)系統(tǒng)采用一個網(wǎng)絡(luò)管理中心、多個網(wǎng)管分中心的方式。網(wǎng)絡(luò)管理設(shè)計需要確定網(wǎng)絡(luò)管理結(jié)構(gòu)、網(wǎng)絡(luò)管理軟件、網(wǎng)絡(luò)管理職責(zé)和人員等。,7.2.2 物理設(shè)備設(shè)計 除了網(wǎng)絡(luò)系統(tǒng)之外,信息系統(tǒng)還包括大量的計算機和相關(guān)信息設(shè)備等物理設(shè)備,根據(jù)需要正確地選擇物理設(shè)備也是平臺設(shè)計的一個主要內(nèi)容。 1. 物理設(shè)備的基本類型 信息系統(tǒng)的物理設(shè)備一般包括以下類型: 1) 計算機系統(tǒng) 計算機系統(tǒng)有多種形式。按規(guī)模和性能分有巨型機、大型機、中型機
12、、小型機、工作站和微型機;按用途分有通用機和專用機。,2) 相關(guān)I/O設(shè)備 每一個計算機系統(tǒng)都有各自的I/O(輸入/輸出)設(shè)備,除了計算機系統(tǒng)所配置的I/O設(shè)備之外,根據(jù)需要,不同類型的信息系統(tǒng)還需要配置一些特殊的I/O設(shè)備。相關(guān)的I/O設(shè)備有共享打印機、掃描儀、繪圖儀、條碼閱讀器、IC卡讀寫器、磁卡讀寫機、數(shù)字照相機、投影儀、專用鍵盤、聲光傳感器等。 3) 多媒體設(shè)備 多媒體設(shè)備有觸摸屏、圖像攝取儀、聲/視卡、圖像處理卡、音箱、功率放大器、攝像機、錄像機、解壓卡等。,4) 辦公設(shè)備 辦公信息系統(tǒng)還要配置大量的辦公自動化設(shè)備。一般辦公自動化設(shè)備有會議系統(tǒng)、復(fù)印機、碎紙機
13、等。 5) 電源系統(tǒng) 電源系統(tǒng)有不間斷電源、穩(wěn)壓器等。 6) 機房設(shè)備 機房設(shè)備有電力系統(tǒng)、布線系統(tǒng)、安全系統(tǒng)、消防系統(tǒng)、照明設(shè)備、制冷設(shè)備、清潔設(shè)備等。,2. 物理設(shè)備設(shè)計 物理設(shè)備設(shè)計是根據(jù)信息系統(tǒng)的設(shè)計要求,確定信息系統(tǒng)物理設(shè)備方案。所設(shè)計的物理設(shè)備方案在能夠充分滿足信息系統(tǒng)功能需要的前提下,還應(yīng)該滿足系統(tǒng)的效率、可靠性、安全性和適應(yīng)性等性能要求,并具有較高的性價比。,7.2.3 軟件平臺設(shè)計 軟件平臺是信息系統(tǒng)開發(fā)和運行所需的集成軟件系統(tǒng)。設(shè)計和選擇高效、實用、方便、功能齊全的軟件平臺,對信息系統(tǒng)開發(fā)有著十分重要的意義。目前,可供選擇的軟件平臺很多,軟
14、件平臺設(shè)計就需要系統(tǒng)分析員根據(jù)實際開發(fā)的需要,充分考慮各種軟件平臺的性能和適應(yīng)范圍,并結(jié)合開發(fā)隊伍對軟件平臺的使用經(jīng)驗,選擇出有效的軟件平臺。,1. 操作系統(tǒng) 操作系統(tǒng)是計算機系統(tǒng)中最重要的系統(tǒng)軟件。目前主要的大型操作系統(tǒng)有UNIX、Windows NT、OS/2、Macintosh等;在微機上運行的桌面操作系統(tǒng)有Windows 95、Windows 98、Windows ME、Windows XP等。這些操作系統(tǒng)各有其適應(yīng)面和優(yōu)缺點,應(yīng)根據(jù)需要進行選擇。,2. 支撐軟件 支撐軟件是協(xié)助人們開發(fā)和維護軟件的工具和環(huán)境軟件。編輯程序、數(shù)據(jù)庫系統(tǒng)、集成開發(fā)環(huán)境等都屬于支撐型軟件,如Vi
15、sual Basic、Delphi、PowerBuilder、Oracle、Java等。支撐軟件主要包括以下幾方面軟件: 1) 數(shù)據(jù)庫管理系統(tǒng)DBMS 在數(shù)據(jù)庫服務(wù)器上的DBMS對數(shù)據(jù)庫實施集中管理,可以并發(fā)地處理多個客戶機發(fā)來的數(shù)據(jù)處理請求。常見的數(shù)據(jù)庫管理系統(tǒng)有SQL-Server、Oralce、Sybase、Informix、DB2等,系統(tǒng)分析員可以根據(jù)自己的需要進行選擇。,2) 客戶端開發(fā)軟件 客戶端開發(fā)軟件十分豐富,系統(tǒng)開發(fā)人員可以根據(jù)設(shè)計需要進行選擇,選擇客戶端開發(fā)軟件要考慮繼承性。常見的客戶端開發(fā)軟件有PowerBuilder、Visual Basic、Visu
16、al C++、Delphi、Visual Foxpro、Java等。 3) 中間件協(xié)議和軟件 在網(wǎng)絡(luò)設(shè)計中已經(jīng)確定了網(wǎng)絡(luò)操作系統(tǒng)和網(wǎng)絡(luò)傳輸協(xié)議中間件。還要進一步確定的中間件有: (1) 數(shù)據(jù)庫中間件。通過數(shù)據(jù)庫中間件,可允許客戶在異構(gòu)數(shù)據(jù)庫上調(diào)用基于SQL的服務(wù)。數(shù)據(jù)庫中間件有ODBC、DRDA、IDAPI、RDA、ORACLE-GLUE等。,(2) 事務(wù)處理中間件。通過事務(wù)處理中間件,可允許客戶在多個事務(wù)服務(wù)器上調(diào)用服務(wù)。事務(wù)處理監(jiān)視器允許不同的服務(wù)器控制其本地資源,并在需要訪問本地資源時與其它事務(wù)處理監(jiān)視器進行合作。事務(wù)處理監(jiān)視器保證服務(wù)器內(nèi)和服務(wù)器之間的所有活動的完整性
17、。這方面的標(biāo)準(zhǔn)包括TUXEDO的ATMI、ENCINA的RPC和X/Open的TXRPC等。 (3) 群件中間件。通過群件中間件,客戶可以在多個群件服務(wù)器上調(diào)用服務(wù)。目前群件中間件有電子郵件方面的PAPI及Lotus Notes API等。,3. CASE平臺 采用CASE開發(fā)環(huán)境可以保證信息系統(tǒng)開發(fā)質(zhì)量,提高開發(fā)效率,保證文檔的一致性,減輕開發(fā)人員的工作負(fù)擔(dān)。CASE平臺與所支持的系統(tǒng)開發(fā)方法有直接聯(lián)系,有支持結(jié)構(gòu)化方法的CASE、支持原型化方法的CASE、支持OO方法的CASE和支持多種方法的綜合CASE環(huán)境。開發(fā)小組應(yīng)該根據(jù)所采用的開發(fā)方法來選擇合適的CASE環(huán)境。,7.3
18、拓?fù)浣Y(jié)構(gòu)和計算模式設(shè)計,7.3.1 信息系統(tǒng)拓?fù)浣Y(jié)構(gòu)設(shè)計 拓?fù)浣Y(jié)構(gòu)設(shè)計需要確定信息系統(tǒng)的節(jié)點和節(jié)點的結(jié)構(gòu)。節(jié)點是信息系統(tǒng)中一個在邏輯分布上相對獨立的處理實體,一個節(jié)點一般要包括一臺獨立的計算機和外圍設(shè)備。節(jié)點可以是人機交互的客戶機,也可以是業(yè)務(wù)管理、數(shù)據(jù)庫管理、Web管理的服務(wù)器。,在考慮所要設(shè)置的節(jié)點時,同時就要一并考慮該節(jié)點的作用和類型。節(jié)點的類型一般需要根據(jù)采用的計算模式而定。 例如,采用客戶機/服務(wù)器模式中的節(jié)點就有客戶機和服務(wù)器兩種類型,而采用應(yīng)用服務(wù)器模式的系統(tǒng)中,節(jié)點可以分為客戶機、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器這幾種形式。,下面給出書店信息系統(tǒng)分布結(jié)構(gòu)設(shè)計實例。 書店
19、信息系統(tǒng)是一個中小規(guī)模的信息系統(tǒng),業(yè)務(wù)比較簡單,總店分布區(qū)域也不大。經(jīng)過分析,該系統(tǒng)的計算模式采用客戶機/服務(wù)器模式;整個系統(tǒng)設(shè)置七個節(jié)點:計劃采購節(jié)點、書庫節(jié)點、銷售節(jié)點、結(jié)算節(jié)點、事務(wù)處理節(jié)點、系統(tǒng)管理節(jié)點和數(shù)據(jù)庫服務(wù)器節(jié)點。數(shù)據(jù)庫服務(wù)器是中心節(jié)點,所以書店信息系統(tǒng)的拓?fù)浣Y(jié)構(gòu)呈星型結(jié)構(gòu)(見圖7.5)。,圖7.5 書店信息系統(tǒng)拓?fù)浣Y(jié)構(gòu),,7.3.2 信息系統(tǒng)計算模式設(shè)計 選擇哪一種計算模式應(yīng)該根據(jù)應(yīng)用需要而定,不能盲目追求先進和時新。例如,客戶機/服務(wù)器模式可以滿足要求,就不一定要采用應(yīng)用服務(wù)器模式。另外,對于復(fù)雜的大型系統(tǒng),采用某一種計算模式可能并不能滿足應(yīng)用要求,有時需要多種計算模
20、式并存。書店信息系統(tǒng)的計算模式采用客戶機/服務(wù)器模式(見圖7.6)。,圖7.6 書店信息系統(tǒng)計算模式,,7.4 軟件結(jié)構(gòu)設(shè)計,7.4.1 概述 信息系統(tǒng)的軟件結(jié)構(gòu)是由信息系統(tǒng)軟件的各子系統(tǒng)按照確定的關(guān)系構(gòu)成的結(jié)構(gòu)框架。子系統(tǒng)是對軟件分解的一種中間形式,也是組織和描述軟件的一種方法。由多個子系統(tǒng)構(gòu)成信息系統(tǒng)軟件,每一個子系統(tǒng)又包括多個用例設(shè)計、設(shè)計類和接口。,軟件結(jié)構(gòu)設(shè)計是把軟件分解成為多個子系統(tǒng),并確定出由各子系統(tǒng)及其接口構(gòu)成的軟件結(jié)構(gòu)。軟件結(jié)構(gòu)一般呈現(xiàn)出層次結(jié)構(gòu)模式,而且常見為四層結(jié)構(gòu)(見圖7.7)。,圖7.7 軟件系統(tǒng)的四層結(jié)構(gòu)模式,,應(yīng)用層是信息系統(tǒng)軟件所在的層次,它的作用是直接服
21、務(wù)于信息系統(tǒng)的應(yīng)用領(lǐng)域。應(yīng)用層又分為專用應(yīng)用層和通用應(yīng)用層。專用應(yīng)用層中的子系統(tǒng)直接面向具體應(yīng)用;通用應(yīng)用層中的子系統(tǒng)可以被專用應(yīng)用層的多個子系統(tǒng)所引用,具有通用性。在應(yīng)用層中的子系統(tǒng)被稱為應(yīng)用子系統(tǒng)。 中間件層放置支撐系統(tǒng)運行的有關(guān)中間件,像通信工具、數(shù)據(jù)庫引擎、分布對象機制等。 系統(tǒng)軟件層則放置操作系統(tǒng)、低層協(xié)議等系統(tǒng)軟件。在中間件和系統(tǒng)軟件層中的子系統(tǒng)被稱為系統(tǒng)子系統(tǒng)。,7.4.2 應(yīng)用子系統(tǒng)設(shè)計 1識別應(yīng)用子系統(tǒng) 識別應(yīng)用子系統(tǒng)的原型是信息系統(tǒng)邏輯結(jié)構(gòu)中的分析包??梢园堰壿嫿Y(jié)構(gòu)中每一個分析包作為一個初步的應(yīng)用子系統(tǒng),在此基礎(chǔ)上,再對各子系統(tǒng)進行分析和優(yōu)化,以確定
22、應(yīng)用子系統(tǒng)。 例如,圖6.13中的“入庫”和圖6.14中的“售書處理”兩個分析包可以作為被識別的兩個初步應(yīng)用子系統(tǒng),見圖7.8。,圖7.8 設(shè)計模型可以跟蹤到分析模型,,2優(yōu)化應(yīng)用子系統(tǒng) 通過分析包識別出的初步應(yīng)用子系統(tǒng)并不能作為最終確定的應(yīng)用子系統(tǒng),還需要進行優(yōu)化處理。從設(shè)計角度看,進行優(yōu)化的理由有三: 首先,分析包沒有考慮系統(tǒng)的效率、安全性、可靠性、適應(yīng)性等非功能性需求,也沒有考慮系統(tǒng)的實現(xiàn)環(huán)境以及系統(tǒng)的拓?fù)浣Y(jié)構(gòu)和計算模式。 第二,應(yīng)用子系統(tǒng)應(yīng)該具有合適的規(guī)模。如果初步應(yīng)用子系統(tǒng)規(guī)模過大,就需要進行分解。相反,對規(guī)模過小的初步應(yīng)用子系統(tǒng)又要進行合并,使最后所確定的應(yīng)
23、用子系統(tǒng)都具有合適的規(guī)模。,第三,應(yīng)用子系統(tǒng)應(yīng)該具有高內(nèi)聚、低偶合的特性,即子系統(tǒng)內(nèi)部的要素之間的聯(lián)系應(yīng)該盡量地密切,而子系統(tǒng)之間的聯(lián)系盡可能小。 優(yōu)化的具體步驟: 第一,規(guī)模分析。 第二,應(yīng)用分析。 第三,節(jié)點分布分析。,下面我們以圖6.13的“入庫”分析包識別為初步的“入庫”應(yīng)用子系統(tǒng)和圖6.14的“售書處理”分析包識別為初步的“售書處理”應(yīng)用子系統(tǒng)為例,進行分析優(yōu)化。,首先分析“入庫”應(yīng)用子系統(tǒng)。 第一,規(guī)模分析。從圖5.7(a)可以看出,“入庫”分析包可以跟蹤到“編輯入庫信息”、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€用例,它要完成對應(yīng)的三項功能。這樣“入庫”作為一個應(yīng)用子系
24、統(tǒng)規(guī)模過大,應(yīng)該對其進行分解。我們把它分解成為對應(yīng)上述三個功能的“編輯入庫信息”、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€應(yīng)用子系統(tǒng)。 第二,應(yīng)用分析?!熬庉嬋霂煨畔ⅰ?、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€應(yīng)用子系統(tǒng)都屬于專用子系統(tǒng),,它們都要訪問數(shù)據(jù)庫服務(wù)器上的“入庫圖書”數(shù)據(jù)表,應(yīng)該設(shè)置“入庫管理”通用子系統(tǒng)來對數(shù)據(jù)庫進行專門管理。 第三,節(jié)點分布分析。設(shè)計中確定的子系統(tǒng)應(yīng)該在一個節(jié)點上,如果一個子系統(tǒng)可能跨幾個節(jié)點,就需要對該子系統(tǒng)進行分解?!熬庉嬋霂煨畔ⅰ?、“查詢?nèi)霂煨畔ⅰ焙汀拜敵鋈霂煨畔ⅰ比齻€專用子系統(tǒng)處在書庫節(jié)點上,而“入庫管理”通用子系統(tǒng)處在數(shù)據(jù)庫服務(wù)器節(jié)點上。對“入
25、庫”子系統(tǒng)優(yōu)化的結(jié)果如圖7.9所示。,圖7.9 優(yōu)化的“入庫”子系統(tǒng),,圖7.10 優(yōu)化的“售書處理”子系統(tǒng),,7.4.3 系統(tǒng)子系統(tǒng)設(shè)計 軟件結(jié)構(gòu)設(shè)計的第二步工作是確定中間件。中間件設(shè)計與系統(tǒng)的應(yīng)用要求和系統(tǒng)環(huán)境有關(guān)。例如,如果系統(tǒng)采用瀏覽器模式,就需要選擇Web瀏覽器作為中間件;如果系統(tǒng)具有分布處理要求,就需要選擇DCOM、CORBA或Java.rmi等具有分布對象處理能力的中間件。另外,還需要根據(jù)數(shù)據(jù)處理的要求,選擇合適的數(shù)據(jù)庫系統(tǒng)。,軟件結(jié)構(gòu)設(shè)計的第三項工作是確定系統(tǒng)軟件層所采用的軟件系統(tǒng),一般包括操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議等。例如操作系統(tǒng)采用Windows NT,網(wǎng)絡(luò)協(xié)議采用TCP/I
26、P等。 現(xiàn)在我們討論書店圖書管理系統(tǒng)中售書處理部分的軟件結(jié)構(gòu)設(shè)計(見圖7.11)。 在專用層設(shè)置“售書處理”的頂層子系統(tǒng),接下來又分出“開書單”、“出售圖書”、“收書款”三個子系統(tǒng),這三個子系統(tǒng)都處在專用應(yīng)用層。,圖7.11 書店信息系統(tǒng)中“售書處理”的軟件結(jié)構(gòu),,7.4.4 確定子系統(tǒng)間的接口 當(dāng)子系統(tǒng)之間存在依賴關(guān)系時,子系統(tǒng)之間就存在確定接口。子系統(tǒng)接口定義了外部子系統(tǒng)對本子系統(tǒng)可進行的訪問操作集。這些操作由子系統(tǒng)內(nèi)部的類來提供,或著由子系統(tǒng)中的其它子系統(tǒng)提供。 可以通過子系統(tǒng)之間存在的關(guān)系來發(fā)現(xiàn)子系統(tǒng)之間的接口。如果子系統(tǒng)A依賴子系統(tǒng)B,則子系統(tǒng)B應(yīng)該向子系統(tǒng)A
27、提供接口(見圖7.12)。圖7.11售書處理的軟件結(jié)構(gòu)中專用應(yīng)用層和通用應(yīng)用層幾個子系統(tǒng)之間的接口描述見圖7.13。,圖7.12 根據(jù)依賴關(guān)系確定接口,,圖7.13 圖書銷售子系統(tǒng)之間的接口,,7.5 詳細(xì)設(shè)計,詳細(xì)設(shè)計是對軟件結(jié)構(gòu)中已經(jīng)確定的各個子系統(tǒng)內(nèi)部的設(shè)計。詳細(xì)設(shè)計需進行三個主要設(shè)計: 用例設(shè)計、設(shè)計類的設(shè)計和關(guān)系設(shè)計。,7.5.1 用例設(shè)計 1概述 子系統(tǒng)可以跟蹤到分析包,分析包可以跟蹤到用例。圖7.14反映了子系統(tǒng)、分析包和用例的跟蹤關(guān)系。因為一個子系統(tǒng)能夠完成它所跟蹤的用例的功能,所以詳細(xì)設(shè)計的第一項工作便是對子系統(tǒng)所跟蹤的用例進行設(shè)計。 用例設(shè)計包括兩個
28、含義:一是用例設(shè)計的工作,二是描述用例設(shè)計的結(jié)果。,圖7.14 子系統(tǒng)、分析包和用例的對應(yīng)關(guān)系,,2用例設(shè)計的工作 1) 確定設(shè)計類 用例設(shè)計的第一項工作是確定該用例所涉及到的所有設(shè)計類。由用例設(shè)計可以追蹤到用例分析,在對用例分析時,分析員已經(jīng)確定了用例所涉及到的所有概念類。因此,可以把用例分析確定的概念類作為初步設(shè)計類。然后根據(jù)設(shè)計的需要,再對初步設(shè)計類進行分解和調(diào)整,成為最終的設(shè)計類。,2) 設(shè)計類圖 在確定了用例的設(shè)計類之后,接下來應(yīng)該通過類圖反映所提取的各個設(shè)計類之間的相互關(guān)系。因為還沒有對每一個設(shè)計類進行詳細(xì)分析,所以現(xiàn)在所確定的設(shè)計類圖是簡化的設(shè)計類圖。 3
29、) 繪制順序圖 為了完成賦予用例的功能,用例的一次交互處理要通過用例中的各個類中的對象操作的相互配合來完成??梢酝ㄟ^順序圖來反映各個對象之間的消息交互過程。,3用例設(shè)計過程 1) 確定子系統(tǒng)和設(shè)計類 2) 分析用例設(shè)計類圖 3) 繪制順序圖,下面我們以“售書處理”為例,討論用例設(shè)計過程。 1) 確定子系統(tǒng)和設(shè)計類 “售書處理”是一個用例,但該用例被分解成為圖7.10所示的處在三個節(jié)點上的八個子系統(tǒng),即售書節(jié)點上的“售書處理”、“開書單”和“出售圖書”三個子系統(tǒng),結(jié)算節(jié)點上的“收書款”子系統(tǒng),在數(shù)據(jù)庫服務(wù)器上的“書目管理”、“架存圖書管理”、“售出圖書管理”和“職工管理”
30、四個子系統(tǒng)。,在第6.4節(jié)對“售書處理”用例所提取的八個概念類的基礎(chǔ)上,可以確定各個子系統(tǒng)的設(shè)計類?!笆蹠幚怼弊酉到y(tǒng)中有“售書界面”、“產(chǎn)生待售圖書”和“待售圖書”三個設(shè)計類?!伴_書單”子系統(tǒng)的設(shè)計是“開書單”和“打印進程”?!笆諘睢弊酉到y(tǒng)的設(shè)計類是“收款界面”和“收書款”?!俺鍪蹐D書”子系統(tǒng)中有“出售圖書界面”、“出售圖書”和“一致性檢查”三個設(shè)計類。除此之外,在數(shù)據(jù)庫服務(wù)器節(jié)點中,“書目”屬于“書目管理”子系統(tǒng),“架存圖書”屬于“架存圖書管理”子系統(tǒng),“售出圖書”屬于“售出圖書管理”子系統(tǒng),“職工”屬于“職工管理”子系統(tǒng)。,2) 分析用例設(shè)計類圖 通過以上分析,繪制出圖7.15所
31、示的“售書處理”用例設(shè)計類圖。在“售書處理”子系統(tǒng)中,“售書界面”類與“產(chǎn)生待售圖書”控制類之間存在關(guān)聯(lián)關(guān)系。當(dāng)“售書界面”類接收一個要出售圖書的書號和冊數(shù)時,就給“產(chǎn)生待售圖書”類發(fā)送一個消息,啟動“產(chǎn)生待售圖書”類的“產(chǎn)生待售圖書對象”操作,產(chǎn)生一個待售圖書對象,記入“待售圖書”類中。,圖7.15 “售書處理”用例設(shè)計類圖,,書單打印出來后,售書員把書單交給讀者,讀者持書單到收款臺交款。收款員啟動“收款界面”輸入書單上的書單號,“收款界面”把書單號通過消息發(fā)給“收書款”類,該類從“待售圖書”類中取出該書單的圖書信息,并在界面上顯示書款金額,收款員接收讀者書款,并在“待售圖書”類的對應(yīng)對象中
32、把“交款標(biāo)記”設(shè)為“T”。,付款之后,讀者又把書單拿回到售書員面前,“售書界面”類又進入“出售圖書”子系統(tǒng)中的“出售圖書界面”類,由該界面給售書員提供一個出售圖書信息界面。售書員輸入所出售圖書的書單號,然后啟動“出售圖書”類,由該類在“售出圖書”類中建立已售出圖書的對象,而從“待售圖書”類中把對應(yīng)的對象刪除掉。 “書目”類與“架存圖書”和“售出圖書”之間是泛化關(guān)系。,3) 繪制順序圖 由于“售書處理”涉及到四個子系統(tǒng),其彼此控制也具有相對獨立性,因此,下面我們分別繪制“產(chǎn)生待售圖書”、“開書單”、“收書款”和“出售圖書”四個子系統(tǒng)的順序圖。 (1) “產(chǎn)生待售圖書”的順序圖(
33、見圖7.16)。“售書界面”接收售書員輸入的讀者所要購買圖書的書號和冊數(shù),同時給該讀者產(chǎn)生一個書單號。,圖7.16 產(chǎn)生待售圖書順序圖,,(2) “開書單”的順序圖(見圖7.17)。售書員按售書界面上的“開書單”功能按鈕啟動開書單功能?!笆蹠缑妗睂ο蠼o“開書單”子系統(tǒng)的“開書單”類的對象發(fā)送“打印書單”消息,同時把所要打印書單的“書單號”也一并發(fā)送過去?!伴_書單”對象接收到這個消息后,給“售書處理”子系統(tǒng)的“待售圖書”對象發(fā)送“取待售圖書信息”消息,取出對應(yīng)書單號的所有待售圖書信息?!伴_書單”對象根據(jù)取到的信息生成書單,并啟動“打印進程”打印出書單。售書員把打印出來的三聯(lián)書單交給讀者,讓讀者
34、上收款臺交書款。,(3) “收書款”的順序圖(見圖7.18)。收款員接收到讀者拿來的書單,按書單號交給“收款界面”對象,該對象接著給“收書款”對象發(fā)送“收書款”的消息。“收書款”對象接收到這個消息后,給“售書處理”子系統(tǒng)中的“待售圖書”對象發(fā)送消息,取出這個書單號的待售圖書信息,并把“待售圖書”對象中的交款標(biāo)記設(shè)為“T”。付完款之后,收款員自己留存一聯(lián)書單,給另外兩聯(lián)書單上蓋章并交給讀者,收書款結(jié)束。,圖7.17 “開書單”順序圖,,圖7.18 收書款順序圖,,(4) “出售圖書”的順序圖(見圖7.19)?!俺鍪蹐D書界面”對象接收售書員掃描進的書單號,給 “出售圖書”對象發(fā)送“出售圖書”消息。
35、“出售圖書”對象接收到這個消息后,從“待售圖書”類中取出該“書單號”的所有對象,并把這些對象從“待售圖書”類中刪除掉。然后給“架存圖書管理”子系統(tǒng)發(fā)送消息,修改架存圖書數(shù)量。最后通過“售出圖書管理”子系統(tǒng)在售出圖書數(shù)據(jù)表中記錄所售出的圖書數(shù)據(jù)。,圖7.19 “出售圖書”順序圖,,(5) 一致性檢查?!耙恢滦詸z查”的作用是檢查“待售圖書”類中所有無用的對象,并將其刪除掉。“一致性檢查”的順序圖見圖7.20。,圖7.20 “一致性檢查”順序圖,,7.5.2 設(shè)計類的設(shè)計 用例設(shè)計中識別出了大量的設(shè)計類,接下來要詳細(xì)地設(shè)計所識別出來的每一個設(shè)計類。系統(tǒng)分析得出的概念類是設(shè)計類的基礎(chǔ),但設(shè)計類不
36、完全等同于概念類。原因有三:,其一,設(shè)計類是概念類的細(xì)化和分解。在系統(tǒng)分析中確定的一個概念類到系統(tǒng)設(shè)計時,可能對應(yīng)著一個設(shè)計類,也可能被分解成為了多個設(shè)計類。 其二,由于在設(shè)計中要考慮系統(tǒng)的非功能性需求,因此,在設(shè)計時可能會產(chǎn)生出許多為了滿足系統(tǒng)的非功能性需求的新的設(shè)計類,這些類根本沒有對應(yīng)的概念類。 其三,設(shè)計著眼于實現(xiàn)。,所以對設(shè)計類的設(shè)計必須考慮所有實現(xiàn)細(xì)節(jié)。設(shè)計類的設(shè)計工作包括屬性設(shè)計、操作設(shè)計、方法設(shè)計和狀態(tài)設(shè)計。,1不同類型設(shè)計類的設(shè)計 1) 邊界類的設(shè)計 邊界類承擔(dān)信息的輸入和輸出以及信息的界面組織等任務(wù)。邊界類是用戶界面設(shè)計在系統(tǒng)中的實體性體現(xiàn),用戶界面
37、設(shè)計涉及到人機工程、審美和操作方便性等方面的知識和要求(第8章將介紹界面設(shè)計)。邊界類設(shè)計依賴于信息系統(tǒng)所采用的實現(xiàn)環(huán)境和設(shè)計語言。邊界類在可視化的設(shè)計語言中一般表現(xiàn)為框架Form、窗口Windows和控件Controls等形式。,2) 實體類的設(shè)計 實體類的信息一般要在系統(tǒng)中長久存放,因此,實體類的設(shè)計要與數(shù)據(jù)庫技術(shù)或文件技術(shù)聯(lián)系起來。應(yīng)用型軟件幾乎全部采用數(shù)據(jù)庫技術(shù),僅有效率要求極高的系統(tǒng)軟件可能采用文件技術(shù)。信息系統(tǒng)屬于應(yīng)用型系統(tǒng),一般對實體類采用數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫有關(guān)系數(shù)據(jù)庫、對象數(shù)據(jù)庫和對象關(guān)系數(shù)據(jù)庫等形式。最直接的方式是采用面向?qū)ο髷?shù)據(jù)庫,但面向?qū)ο髷?shù)據(jù)庫目前還不夠成熟。,3
38、) 控制類的設(shè)計 控制類為系統(tǒng)的處理邏輯而設(shè)計,具有動態(tài)性。一般根據(jù)以下需要來設(shè)置控制類: 第一,事務(wù)處理。信息系統(tǒng)存在大量的事務(wù)處理,一個用例就是對一個事務(wù)的處理。在處理具體事務(wù)過程中,涉及到邊界類和實體類,而在處理的關(guān)鍵環(huán)節(jié)和交匯點上就應(yīng)該設(shè)置控制類。例如,在“售書處理”中的“產(chǎn)生待售圖書”、“開書單”、“收書款”和“出售圖書”等控制類都是在事務(wù)處理的關(guān)鍵環(huán)節(jié)上設(shè)置的。,第二,性能要求。為了實現(xiàn)系統(tǒng)的效率、可靠性、安全性和適應(yīng)性的要求,需要設(shè)置控制類。例如,“一致性檢查”就是為了正確性要求而設(shè)置的控制類。 第三,分布處理。當(dāng)處理被分布到不同的網(wǎng)絡(luò)節(jié)點上時,在各個節(jié)點上就需
39、要設(shè)置單獨的控制類來實施處理。,2屬性設(shè)計 屬性設(shè)計是對屬性分析的深入和細(xì)化,與屬性分析相比較,屬性設(shè)計應(yīng)該著重強調(diào)以下幾個方面: 第一,補充屬性分析時沒有考慮到的屬性。屬性分析主要反映類的重要屬性,一般不考慮涉及實現(xiàn)細(xì)節(jié)的有關(guān)屬性,到屬性設(shè)計時就要把這些屬性補充全面。 第二,確定屬性的全部內(nèi)容,其中包括屬性名、可視性、范圍、類型、初始值等。 第三,盡量采用信息系統(tǒng)所采用的程序設(shè)計語言的語法規(guī)范來描述。,圖7.15的“產(chǎn)生待售圖書”、“開書單”等控制類沒有屬性,因此,我們僅設(shè)計“書目”、“架存圖書”、“待售圖書”和“售出圖書”這幾個類的屬性。在分析時,已經(jīng)確定的屬性見圖
40、7.21。其中,“書目”類的屬性有書號、書名、作者、出版社編號、單價、出版日期和圖書類別;“架存圖書”的屬性有架位和架存冊數(shù);“待售圖書”的屬性有書單號、銷售冊數(shù)、折扣率、交款標(biāo)記和售書員;“售出圖書”的屬性有售出冊數(shù)、折扣率、售出日期和售書員。對這些類的屬性進行設(shè)計的結(jié)果見圖7.22。,,圖7.21 “書目”等類在分析時確定的屬性,圖7.22 “書目”等類的屬性設(shè)計,,,3操作設(shè)計 操作設(shè)計的任務(wù)是確定各個類應(yīng)該提供的操作。確定類操作的根據(jù)有以下四個方面: (1) 概念類的職責(zé)。概念類職責(zé)定義了該類應(yīng)該具有的功能,類的這些功能就需要分解到各個操作中來實現(xiàn)。 (2) 概念類的
41、非功能性需求。系統(tǒng)的效率、可靠性、安全性等非功能性需求,常常要落實到類的一些操作上來,通過設(shè)置某些操作來實現(xiàn)這些需求。,(3) 設(shè)計類的接口。設(shè)計類的接口是設(shè)計類對外提供的操作功能,這些功能均需要通過設(shè)計類所提供的操作來實現(xiàn)。 (4) 類所參與的用例設(shè)計。一個類可能要參與多個用例設(shè)計,在每一個用例設(shè)計中,該類都起著確定的作用,承擔(dān)著確定的角色,這些作用最終都要落實到類的操作上。這就需要逐一分析類在每一個用例設(shè)計中所承擔(dān)的角色。,對操作的描述應(yīng)該注意以下兩個方面: (1) 詳盡全面。應(yīng)該反映操作名、輸入?yún)?shù)、返回參數(shù)以及可視性。 (2) 盡可能采用所用的編程語言的語法格式來描述,這
42、樣到實現(xiàn)時就無須再進行格式轉(zhuǎn)換。 下面我們討論“售書處理”用例中類的操作設(shè)計。 1) 實體類的操作設(shè)計 “書目”是一個實體類,應(yīng)該設(shè)置write(bookNo, bookInformation)操作給書目對象中寫內(nèi)容,read(bookNo) :bookInformation從給定書號的書目對象中讀書目信息。,圖7.23 “書目”等實體類的操作設(shè)計,,圖7.24 “書目”等實體類的操作設(shè)計,,2) 控制類的操作設(shè)計 “售書處理”用例共涉及到“產(chǎn)生待售圖書”、“開書單”、“收書款”、“出售圖書”和“一致性檢查”等五個控制類,這些控制類全部沒有屬性,僅有操作,下面我們確定這幾
43、個類的操作。,圖7.25 “售書處理” 用例的控制類操作設(shè)計,,4方法設(shè)計 由于操作設(shè)計只確定各個操作的名稱和參數(shù),因此,操作設(shè)計僅是操作的外部特征設(shè)計。每一個操作都需要采用一定的數(shù)據(jù)結(jié)構(gòu)、算法和流程,并采用一段程序代碼來實現(xiàn)。確定操作的內(nèi)部數(shù)據(jù)結(jié)構(gòu)、算法和流程的設(shè)計被稱為方法設(shè)計。 方法設(shè)計包括數(shù)據(jù)結(jié)構(gòu)設(shè)計、算法設(shè)計和流程設(shè)計。方法設(shè)計需要立足于采用的程序設(shè)計語言。數(shù)據(jù)結(jié)構(gòu)設(shè)計應(yīng)該采用所選用的程序設(shè)計語言能夠提供的數(shù)據(jù)結(jié)構(gòu);算法設(shè)計要根據(jù)操作所實現(xiàn)的功能而定;流程設(shè)計的結(jié)果可以用程序流程圖或活動圖來描述。,圖7.26 產(chǎn)生待售圖書流程圖,,5狀態(tài)設(shè)計 對象在其生命周期中,會
44、存在多種狀態(tài),認(rèn)識和識別對象在生命周期中所處的各種狀態(tài),以及狀態(tài)之間的切換條件,是全面把握對象的關(guān)鍵。一般用狀態(tài)圖來描述類中對象的狀態(tài)。圖7.27所示是書店圖書類所處的幾種狀態(tài)。,圖7.27 書店圖書類狀態(tài)圖,,7.5.3 關(guān)系設(shè)計 不同的面向?qū)ο蟪绦蛟O(shè)計語言對關(guān)系的支持程度是不一樣的。 例如,C++支持多重繼承,而Java就不支持多重繼承。有些程序設(shè)計語言支持關(guān)聯(lián),有些不支持關(guān)聯(lián)。本節(jié)主要討論在不過多地考慮程序設(shè)計語言的情況下實現(xiàn)對象關(guān)系的一般方法。,1關(guān)聯(lián)關(guān)系設(shè)計 1) 二元關(guān)聯(lián)的實現(xiàn) 二元關(guān)聯(lián)存在一對一、一對多、多對多三種形式,其關(guān)聯(lián)的實現(xiàn)方法也有差異。,(1) 一對一
45、二元關(guān)聯(lián)。一對一二元關(guān)聯(lián)可通過單向?qū)Ш胶碗p向?qū)Ш絹韺崿F(xiàn)。 單向?qū)Ш健R獙崿F(xiàn)一對一關(guān)聯(lián)的單向?qū)Ш?,可以只在?dǎo)航源的類中增加另一個類的關(guān)鍵屬性。例如,圖7.28(a)描述“系”和“系主任”兩個類是一對一的關(guān)聯(lián)關(guān)系,單向從“系”導(dǎo)航到“系主任”類。在“系”中增加“主任編號”就實現(xiàn)了兩個類之間的單向?qū)Ш?見圖7.28(b))。 雙向?qū)Ш?。一對一關(guān)聯(lián)的雙向?qū)Ш叫枰P(guān)聯(lián)的兩個類中分別增加對方的關(guān)鍵屬性。例如,圖7.29(b)是對圖(a)中雙向?qū)Ш降膶崿F(xiàn)。,圖7.28 一對一關(guān)聯(lián)單向?qū)Ш降膶崿F(xiàn),,圖7.29 一對一關(guān)聯(lián)雙向?qū)Ш降膶崿F(xiàn),,(2) 一對多二元關(guān)聯(lián)。兩個存在一對多關(guān)聯(lián)關(guān)系的類,其導(dǎo)航方
46、向肯定是由多重性為多的類導(dǎo)航到多重性為一的類,而不會相反。在多重性為多的一方類中增加另一個類的關(guān)鍵屬性就實現(xiàn)了關(guān)聯(lián)的導(dǎo)航關(guān)系。例如,圖7.30(b)是對圖(a)中一對多單向?qū)Ш降膶崿F(xiàn)。,圖7.30 一對多關(guān)聯(lián)單向?qū)Ш降膶崿F(xiàn),(3) 多對多二元關(guān)聯(lián)。多對多二元關(guān)聯(lián)的實現(xiàn)需要在兩個類之間增加一個新類,用另外兩個類中的關(guān)鍵屬性作為這個類的屬性。例如,圖7.31(a)中,“課程”和“教師”兩個類之間存在多對多的關(guān)聯(lián)關(guān)系。為了實現(xiàn)這兩個類之間的雙向關(guān)聯(lián),需要在它們之間增加一個“授課”類,并把“課程”和“教師”兩個類的關(guān)鍵屬性“課程編號”和“教師編號”作為“授課”類的屬性。這樣把兩個多對多的二元關(guān)聯(lián)就轉(zhuǎn)化
47、成為三個類中兩兩之間的一對多的關(guān)聯(lián),其導(dǎo)航關(guān)系分別是從“授課”類到另外兩個類(見圖7.31(b))。,圖7.31 多對多關(guān)聯(lián)的實現(xiàn),,(4) 關(guān)聯(lián)類的二元關(guān)聯(lián)。存在關(guān)聯(lián)類的二元關(guān)聯(lián)可以分下面幾種情況分別處理。 多對多關(guān)聯(lián)。存在關(guān)聯(lián)類多對多的二元關(guān)聯(lián),需要轉(zhuǎn)化成為兩個類分別與所關(guān)聯(lián)類的一對多的關(guān)聯(lián),在關(guān)聯(lián)類除了保留原有屬性之外,再增加另外兩個類的關(guān)鍵屬性。圖7.32(a)中,“書店”和“出版社”兩個類之間存在多對多關(guān)聯(lián),它們的關(guān)聯(lián)類是“訂書”。把這個關(guān)聯(lián)分成為圖(b)的兩個一對多的二元關(guān)聯(lián),在“訂書”類中增加“書店編號”和“出版社編號”兩個屬性。,圖7.32 關(guān)聯(lián)類二元多對多關(guān)聯(lián)的實現(xiàn),,
48、 一對多關(guān)聯(lián)。帶有關(guān)聯(lián)類的一對多二元關(guān)聯(lián)實現(xiàn)有如下兩種方法。第一種方法是按照一對多無關(guān)聯(lián)類的方法,先實現(xiàn)兩個類的關(guān)聯(lián)。然后,再建立關(guān)聯(lián)類與多方類的關(guān)聯(lián)。圖7.33(a)中,“系”和“教師”之間存在一對多關(guān)聯(lián),“考核”是關(guān)聯(lián)類。先在“教師”類中增加“系名”屬性,實現(xiàn)“系”和“教師”兩個類的單向關(guān)聯(lián)關(guān)系。再在關(guān)聯(lián)類“考核”中增加“教師編號”屬性,與“教師”類建立起一對一的單向關(guān)聯(lián)(見圖7.33(b))。第二種方法是取消關(guān)聯(lián)類,把關(guān)聯(lián)類中的屬性增加到多重性為多的類中。通過這種方法從圖7.33(a)可以得出圖7.33(c)。把“考核”類中的“考核時間”和“考核結(jié)果”兩個屬性增加到“教師”類中。,圖7.
49、33 關(guān)聯(lián)類二元一對多關(guān)聯(lián)的實現(xiàn),, 一對一關(guān)聯(lián)。實現(xiàn)一對一的有關(guān)聯(lián)類的關(guān)聯(lián)有如下三種方法。 第一種方法是仍然保持這三個類。如果是單向關(guān)聯(lián),則在導(dǎo)航源類中增加導(dǎo)航目標(biāo)類的關(guān)鍵屬性,在關(guān)聯(lián)類中增加導(dǎo)航源的關(guān)鍵屬性。例如,圖7.34(a)中,“系主任”與“系”兩個類之間是一對一的單向?qū)Ш疥P(guān)聯(lián)。實現(xiàn)時,在“系主任”類中增加“系”類的關(guān)鍵屬性“系名”,在關(guān)聯(lián)類“管理”類中增加“系主任”類的關(guān)鍵屬性“主任編號”(見圖7.34(b))。如果是雙向?qū)Ш?,在兩方都增加對方的關(guān)鍵屬性,在關(guān)聯(lián)類中增加其它兩個類任意一個的關(guān)鍵屬性。,第二種辦法是把關(guān)聯(lián)類合并到其中任意一個類中,成為二元無關(guān)聯(lián)類的關(guān)聯(lián),見圖7.
50、34(c)。 第三種辦法是把三個類合成為一個類,見圖7.34(d)。,圖7.34 關(guān)聯(lián)類二元一對一關(guān)聯(lián)的實現(xiàn),,2) 三元關(guān)聯(lián)的實現(xiàn) 我們假定存在關(guān)聯(lián)類,然后討論三元關(guān)聯(lián)的實現(xiàn),這有以下三種方法。 (1) 維持法。該方法是維持三元關(guān)聯(lián)關(guān)系不變,三個存在關(guān)聯(lián)關(guān)系的類保持不變,給關(guān)聯(lián)類中增加其它三個類的關(guān)鍵屬性。例如,圖7.35(a)中,“教師”、“班級”和“課程”存在“授課”的三元關(guān)聯(lián),圖(b)是對圖(a)中這種關(guān)系的實現(xiàn)。,圖7.35 維持法實現(xiàn)三元關(guān)聯(lián),,(2) 降元法。降元法是把三元關(guān)聯(lián)首先轉(zhuǎn)化為三個有關(guān)聯(lián)關(guān)系的類并分別與關(guān)聯(lián)類的二元關(guān)聯(lián),再按二元關(guān)聯(lián)的方法實現(xiàn)其關(guān)聯(lián)關(guān)系
51、。例如,可以把圖7.35(a)的三元關(guān)聯(lián)轉(zhuǎn)化為圖7.36的三個二元關(guān)聯(lián),然后按二元關(guān)聯(lián)的方法實現(xiàn)關(guān)聯(lián)。 (3) 簡并法。在三元關(guān)聯(lián)中,如果其中一個類的多重性為1,其它兩個為多,則可以用簡并法讓這個類與關(guān)聯(lián)類形成二元關(guān)聯(lián),關(guān)聯(lián)性不變。例如,圖7.37(b)是用簡并法對圖7.37(a)的三元關(guān)聯(lián)的實現(xiàn)。,圖7.36 降元法實現(xiàn)三元關(guān)聯(lián),,圖7.37 簡并法實現(xiàn)三元關(guān)聯(lián),,2組成關(guān)系設(shè)計 一般面向?qū)ο蟪绦蛟O(shè)計語言都直接提供對組成關(guān)系的支持。在定義整體類時,把其部分對象作為整體類的成員,這樣就構(gòu)成了整體與部分的組成關(guān)系。因此組成關(guān)系的設(shè)計十分簡單。 3泛化關(guān)系設(shè)計 所有面向?qū)ο?/p>
52、程序設(shè)計語言都提供繼承支持,因此泛化關(guān)系本身就被面向?qū)ο蟪绦蛟O(shè)計語言所支持。但有些語言僅支持單繼承,不支持多繼承,因此,對設(shè)計模型中的多繼承要進行必要處理。一種方法是把多繼承轉(zhuǎn)化成為單繼承,另一種方法是用接口來實現(xiàn)多繼承。下面我們介紹用接口來實現(xiàn)多繼承的方法。,圖7.38是一個多繼承的例子。“汽車”繼承了“陸上交通工具”和“機動交通工具”兩個類(見圖7.38(a))。為了讓“汽車”能夠具有“陸上交通工具”和“機動交通工具”的特性,首先定義“陸上交通工具”和“機動交通工具”的接口,然后在“汽車”類中實現(xiàn)這兩個接口,這樣就讓“汽車”類擁有了“陸上交通工具”和“機動交通工具”的操作(見圖7.38(b
53、))。,圖7.38 接口實現(xiàn)多繼承,,7.5.4 類的優(yōu)化 通過分析和設(shè)計所確定的類還需要進一步地進行優(yōu)化。對類進行優(yōu)化的原則是使類能夠明確地表示事物實體,并具有相對獨立性、一致性和適中的規(guī)模。在數(shù)據(jù)庫設(shè)計中,一般根據(jù)規(guī)范原則檢查關(guān)系的優(yōu)劣,如果一個關(guān)系符合范式規(guī)約,就可以說該關(guān)系是規(guī)范的。否則就需要對該關(guān)系進行優(yōu)化處理,通過對關(guān)系的分解使其滿足范式要求。,規(guī)范的類將滿足三級規(guī)范要求。 一級規(guī)范要求在類中不存在重復(fù)的屬性項; 二級規(guī)范是在滿足一級規(guī)范的基礎(chǔ)上,類中不存在對主鍵屬性部分依賴的屬性; 三級規(guī)范則要求在滿足二級規(guī)范的基礎(chǔ)上,在類中不存在傳遞依賴關(guān)系。 下
54、面我們分三步對由圖7.39“圖書訂單”所產(chǎn)生的“圖書訂單”類(見圖7.40)進行優(yōu)化。,圖7.39 書店信息系統(tǒng)的圖書訂單,,1一級規(guī)范 一級規(guī)范要求在類中不存在重復(fù)的屬性。在類中如果存在重復(fù)的屬性,則需要把所有重復(fù)的屬性從類中抽取出來,構(gòu)成一個新類。在圖7.40“圖書訂單”類中,從“計劃單序號”到“實際到貨日期”8個屬性都是重復(fù)的。為了符合一級規(guī)范的要求,需要把這些屬性從“圖書訂單”類中提取出來,形成新的“訂單圖書”類(見圖7.41)。訂單圖書是本訂單所訂購的圖書,它是圖書訂單的有機構(gòu)成部分,因此,“訂單圖書”類與“圖書訂單”類是組成關(guān)系。在一個訂單中最多可以有20種圖書,多重性標(biāo)為1
55、...20。,圖7.40 初步的“圖書訂單”類,,圖7.41 一級規(guī)范后的“圖書訂單”類,2二級規(guī)范 二級規(guī)范要求在類中不存在部分依賴關(guān)系的屬性,要把不完全依賴關(guān)鍵屬性的非關(guān)鍵屬性從類中提取出來。在圖7.41中,“訂單圖書”類的關(guān)鍵屬性是“訂單號”和“書號”,但是“書名”、“作者”、“單價”三個屬性則僅依賴“書號”關(guān)鍵屬性,存在部分依賴關(guān)系,所以需要進行優(yōu)化。二級規(guī)范后的“圖書訂單”類見圖7.42。,圖7.42 二級規(guī)范后的“圖書訂單”類,,3三級規(guī)范 三級規(guī)范要求消除在類的屬性中存在的傳遞依賴關(guān)系。在“圖書訂單”類中,“出版社編號”依賴“訂單號”,但是從“出版社名稱”到“賬號”6
56、個屬性僅依賴“出版社編號”,并不直接依賴“訂單號”,這是典型的傳遞依賴關(guān)系,需要消除。三級規(guī)范之后的“圖書訂單”類見圖7.43。,圖7.43 三級規(guī)范后的“圖書訂單”類,,4進一步優(yōu)化 圖7.43中“圖書訂單”的屬性仍然偏多,并且“合計”和“總計”兩個屬性屬于派生屬性,可以去掉??梢园褞讉€費用屬性獨立出來形成一個新的“訂單費用”類,作為“圖書訂單”類的部分類。這樣優(yōu)化之后的類圖見圖7.44。,圖7.44 “圖書訂單”優(yōu)化類圖,,7.6 數(shù)據(jù)庫設(shè)計,7.6.1 概述 數(shù)據(jù)庫設(shè)計是指根據(jù)業(yè)務(wù)需求、信息需求和處理需求,確定信息系統(tǒng)中的數(shù)據(jù)庫結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)一致性約束的過程。 數(shù)
57、據(jù)庫結(jié)構(gòu)分外模式、模式和內(nèi)模式三級結(jié)構(gòu)。外模式也稱用戶模式或子模式,是用戶所看到的數(shù)據(jù)視圖。模式是綜合所有外模式得出的一致的公共數(shù)據(jù)視圖。內(nèi)模式描述數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)中的內(nèi)部表示。,數(shù)據(jù)庫設(shè)計的基本過程可分為需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計四個步驟,見圖7.45。 需求分析的主要工作是調(diào)查和分析用戶的業(yè)務(wù)活動、信息和處理的需求,以及各種約束條件,形成數(shù)據(jù)庫設(shè)計的需求說明。在信息系統(tǒng)開發(fā)中,一般并不就數(shù)據(jù)庫設(shè)計專門進行需求分析,而是在業(yè)務(wù)分析(見第4章)和需求分析(見第5章)中進行考慮。,圖7.45 數(shù)據(jù)庫設(shè)計的基本過程,,數(shù)據(jù)庫設(shè)計的方法與信息系統(tǒng)所采用的
58、開發(fā)方法存在著密切的關(guān)系,同時還與所采用的數(shù)據(jù)庫模型(包括層次模型、網(wǎng)狀模型、關(guān)系模型、對象模型等)有關(guān)。由于本教材主要介紹采用面向?qū)ο蠓椒ㄩ_發(fā)信息系統(tǒng),同時考慮到關(guān)系模型是迄今最為成熟的數(shù)據(jù)庫模型,因此,我們主要討論采用面向?qū)ο蠓椒ê完P(guān)系模型的數(shù)據(jù)庫設(shè)計工作。,7.6.2 概念設(shè)計 數(shù)據(jù)庫的概念設(shè)計是針對現(xiàn)實世界,通過對其中信息實體的收集、分類、聚集和概括,建立數(shù)據(jù)庫概念結(jié)構(gòu)的過程。 概念結(jié)構(gòu)也叫概念數(shù)據(jù)模型(Conceptual Data Model),它應(yīng)該反映現(xiàn)實世界中組織的業(yè)務(wù)模式、信息結(jié)構(gòu)、信息間的相互制約關(guān)系,以及對信息存儲、查詢和加工的處理要求等。概念數(shù)據(jù)模型是對數(shù)
59、據(jù)的抽象描述,它應(yīng)該獨立于具體的數(shù)據(jù)處理的細(xì)節(jié)和數(shù)據(jù)庫管理系統(tǒng)。,概念設(shè)計一般分為局部視圖設(shè)計和全局視圖集成兩個步驟。首先從各部門或用戶的角度設(shè)計出反映局部實體聯(lián)系的局部視圖(外模式),然后把各局部視圖集成為能夠反映組織全貌的全局視圖(模式)。 傳統(tǒng)方法通常采用實體聯(lián)系圖(ER圖)作為概念設(shè)計的工具,同時用ER圖描述概念數(shù)據(jù)模型。如果采用UML建模,則可以直接用系統(tǒng)分析和系統(tǒng)設(shè)計得到的類圖作為概念數(shù)據(jù)模型。,下面我們分別介紹采用這兩種方法所進行的概念設(shè)計。 1ER概念設(shè)計 1) 局部視圖設(shè)計 局部視圖設(shè)計也被稱為外模式設(shè)計,其任務(wù)是從用戶角度設(shè)計出能反映局部現(xiàn)實空間數(shù)據(jù)關(guān)
60、系的局部概念結(jié)構(gòu)。 局部視圖設(shè)計的第一步工作是劃分局部視圖的范圍。局部視圖范圍通常是根據(jù)部門、用戶或用戶所處的角度來進行自然劃分。,局部視圖設(shè)計的第二步工作是識別實體. 局部視圖設(shè)計的第三步工作是實體分析。實體分析包括實體屬性分析和實體關(guān)系分析,并用ER圖描述實體-關(guān)系分析的結(jié)果。 在圖7.46中,我們給出書店圖書銷售管理中讀者選書的局部視圖。由讀者從書架的架存圖書中上把自己所需要的圖書選出來,作為待售圖書。架存圖書和待售圖書與書目存在多對一的關(guān)聯(lián)關(guān)系。,圖7.46 讀者選書的ER圖,,2) 全局視圖設(shè)計 全局視圖也被稱為全局概念結(jié)構(gòu),它是完整表示一個信息系統(tǒng)的合理、一
61、致的數(shù)據(jù)庫概念結(jié)構(gòu)。全局視圖設(shè)計需要逐一地把各個局部視圖綜合成為最終的全局視圖。在綜合過程中,需要進一步對實體和關(guān)系是否作為最終數(shù)據(jù)存儲進行確認(rèn),并消除各局部視圖之間存在的沖突,得出合理、一致的全局視圖。,消除沖突之后的全局視圖是概念上不存在矛盾的概念數(shù)據(jù)庫結(jié)構(gòu), 但它并不一定是合理的概念數(shù)據(jù)庫結(jié)構(gòu)。一個好的全局視圖,除了能夠準(zhǔn)確、全面反映用戶的功能需求外,還應(yīng)該滿足實體個數(shù)盡可能少、實體的屬性盡可能少、實體間的聯(lián)系無冗余等條件。為了保證其合理性,還需要對全局視圖進行優(yōu)化。圖7.47給出了書店圖書銷售的全局概念結(jié)構(gòu)。,圖7.47 書店圖書銷售全局概念數(shù)據(jù)庫結(jié)構(gòu)(ER),,2UML概念設(shè)計
62、 UML與ER有本質(zhì)區(qū)別。UML比ER使用范圍要寬廣得多,它是一種標(biāo)準(zhǔn)的建模語言,可被用來進行軟件和信息系統(tǒng)開發(fā)的全過程建模,而ER模型僅用在數(shù)據(jù)庫的概念設(shè)計階段。UML與ER都可以用來建立數(shù)據(jù)庫概念模型,但兩者的機理完全不同。,由于UML基于面向?qū)ο蠓椒?,要保持方法的一致性,最好選擇面向?qū)ο髷?shù)據(jù)庫。但是,面向?qū)ο髷?shù)據(jù)庫目前并沒有成熟的產(chǎn)品,即便是采用面向?qū)ο蠓椒ê铜h(huán)境開發(fā)信息系統(tǒng),仍然需要采用關(guān)系型數(shù)據(jù)庫來存儲和管理數(shù)據(jù)。在此,我們主要討論采用UML建模,用關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫概念設(shè)計,我們簡稱為UML概念設(shè)計。,UML概念設(shè)計的基本工作是從系統(tǒng)分析和系統(tǒng)設(shè)計建立的各種類圖中抽取持久型類,確
63、定持久型類之間的關(guān)系,并用類圖描述這種關(guān)系,把類圖作為數(shù)據(jù)庫概念設(shè)計的結(jié)果。,1) 抽取持久型類 持久型類是指類的完整信息要在數(shù)據(jù)庫中存儲的類。類可以分為界面類、實體類和控制類三種類型。界面類和控制類的信息一般不需要長久存儲,持久型類只可能是實體類。但并不是所有實體類信息都要長久存儲,持久型類只需要從那些信息需要長久存儲的實體類中抽取。,2) 確定類關(guān)系 在系統(tǒng)分析和設(shè)計中,并沒有建立立足于整個信息系統(tǒng)的整體類圖,而只是建立了一個個針對具體用例的類圖。也就是說所提取的持久型類被分散在各個用例類圖之中了。接下來需要對提出的持久型類進行分析,以確定它們相互之間的關(guān)系,建立起反映這些類關(guān)
64、系的類圖。根據(jù)分析,最終確定出書店銷售部分的持久型類關(guān)系,如圖7.48所示。,圖7.48 書店圖書銷售全局概念數(shù)據(jù)庫結(jié)構(gòu)(UML),,7.6.3 邏輯設(shè)計 邏輯設(shè)計是將現(xiàn)實世界的概念數(shù)據(jù)模型設(shè)計成為適應(yīng)于特定數(shù)據(jù)庫管理系統(tǒng)的邏輯數(shù)據(jù)模式。 邏輯數(shù)據(jù)模式也被簡稱為邏輯模型或數(shù)據(jù)模式,關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模式是關(guān)系模式。如果數(shù)據(jù)庫采用關(guān)系數(shù)據(jù)庫,則需要把ER圖或類圖描述的概念數(shù)據(jù)模型轉(zhuǎn)換為等價的關(guān)系模式及其約束。 數(shù)據(jù)庫邏輯設(shè)計的結(jié)果是一組關(guān)聯(lián)的規(guī)范關(guān)系,一系列經(jīng)過結(jié)構(gòu)化的業(yè)務(wù)規(guī)則,以及數(shù)據(jù)庫存取的安全性設(shè)計。,邏輯設(shè)計的基本工作包括: 由概念數(shù)據(jù)模型導(dǎo)出關(guān)系模式; 規(guī)范化關(guān)系模式;
65、 結(jié)構(gòu)化業(yè)務(wù)規(guī)則; 數(shù)據(jù)庫存取安全性設(shè)計。 1由概念數(shù)據(jù)模型導(dǎo)出關(guān)系模式 關(guān)系模式的基本內(nèi)容是一組關(guān)聯(lián)的關(guān)系。概念數(shù)據(jù)模型具有ER圖和類圖兩種形式,下面我們分別介紹這兩種形式向關(guān)系模式的轉(zhuǎn)換。,1) ER圖轉(zhuǎn)換為關(guān)系模式 對于用ER圖描述的概念數(shù)據(jù)模型,再轉(zhuǎn)換為關(guān)系模式時,需要把ER圖中每一個實體或關(guān)系轉(zhuǎn)換為關(guān)系模式中的一個關(guān)系。 例如,可把圖7.47書店圖書銷售的ER圖轉(zhuǎn)換為圖7.49所示的關(guān)系模式。,圖7.49 書店圖書銷售的關(guān)系模式(由ER圖轉(zhuǎn)換而來),,圖書銷售的ER圖中有“書目”、“上架圖書”、“架存圖書”、“待售圖書”、“售出圖書”和“職工”六個實體,把它們轉(zhuǎn)
66、換成為關(guān)系模式中的六個同名的關(guān)系,這六個實體的屬性也轉(zhuǎn)換成為關(guān)系模式中的同名關(guān)系的屬性。其中,“上架圖書”、“架存圖書”、“待售圖書”和“售出圖書”中的“書號”屬性是這幾個關(guān)系的關(guān)鍵屬性,同時又可通過這個屬性與“書目”建立起關(guān)聯(lián)關(guān)系?!吧霞軋D書”、“待售圖書”和“售出圖書”中的“職工編號”屬性與“職工”建立了關(guān)聯(lián)的單向?qū)Ш疥P(guān)系。,2) 類圖轉(zhuǎn)換為關(guān)系模式 如果用類圖描述概念數(shù)據(jù)模型,則需要把類圖中的每一個類轉(zhuǎn)換為一個關(guān)系,類的屬性作為關(guān)系的屬性,在轉(zhuǎn)換時還需要在關(guān)系模式中反映類與類之間的關(guān)系。 (1) 關(guān)聯(lián)關(guān)系的轉(zhuǎn)換。 (2) 組成關(guān)系的轉(zhuǎn)換。 (3) 泛化關(guān)系的轉(zhuǎn)換。,例如,可把圖7.50(a)所示的類圖轉(zhuǎn)換成為圖(b)所示的關(guān)系模式。下面我們分幾種情況討論類之間存在不同關(guān)系時,向關(guān)系模式轉(zhuǎn)換的方法。,圖7.50 一對一關(guān)聯(lián)單向?qū)Ш睫D(zhuǎn)換的關(guān)系模式,,(1) 關(guān)聯(lián)關(guān)系的轉(zhuǎn)換。在7.5.3節(jié)的“關(guān)聯(lián)關(guān)系設(shè)計”中,詳細(xì)討論了對類之間關(guān)聯(lián)關(guān)系的設(shè)計方法。通過關(guān)聯(lián)關(guān)系設(shè)計之后的類圖,所轉(zhuǎn)換而成的關(guān)系模式完全能夠反映類之間所存在的關(guān)聯(lián)關(guān)系。例如,圖7.50(b)的兩個關(guān)系
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級科學(xué)下冊第三單元宇宙5太陽系課件(教科版)
- 餐飲服務(wù)意識
- 第3章 鋼筋和混凝土的材料力學(xué)性能
- 《遠(yuǎn)離有毒物質(zhì)》課件-(市優(yōu))2022年九年級化學(xué)課件
- 綠色發(fā)展答辯
- 師德修養(yǎng)及相關(guān)法律法規(guī)介紹 (2)
- 汽車檢測診斷技術(shù)與設(shè)備第9章-汽車前照燈的檢測與檢測設(shè)備-PPT
- 消費行為與廣告心理專業(yè)基礎(chǔ)知識
- 備戰(zhàn)2010高考課件:2009年全國高考名句名篇默寫匯總
- 信息倫與編碼
- 奔馳傳奇歷史
- 鮑曼不動桿菌專家共識解讀課件
- 衛(wèi)生系統(tǒng)績效評價培訓(xùn)課件
- 高考數(shù)學(xué)二輪復(fù)習(xí)第1部分重點強化專題專題1三角函數(shù)與平面向量突破點1三角函數(shù)問題課件文
- 小兒腹瀉講解匯總