




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三部分:設(shè)計(jì)篇主講教師1.第1頁(yè),共134頁(yè)。OOD模型框架從兩個(gè)側(cè)面來(lái)描述人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分問(wèn)題域部分從一個(gè)側(cè)面看:OOD模型包括幾個(gè)主要部分?一個(gè)核心加三個(gè)外圍需 求 模 型輔 助 模 型類(lèi) 圖模 型 規(guī) 約從另一側(cè)面看:OOD模型每個(gè)部分如何用OO概念表達(dá)?采用與OOA相同的概念及模型組織方式回顧2.第2頁(yè),共134頁(yè)。問(wèn)題域部分設(shè)計(jì)輸入OOA模型人機(jī)交互部分設(shè)計(jì)控制驅(qū)動(dòng)部分設(shè)計(jì)數(shù)據(jù)接口部分設(shè)計(jì)構(gòu)件化與系統(tǒng)部署向OOP輸出OOD模型OOD過(guò)程3.第3頁(yè),共134頁(yè)。將OOA模型搬到OOD作為OOD的基礎(chǔ)人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分問(wèn)題域部分OOA模型按編程語(yǔ)言
2、、網(wǎng)絡(luò)、操作系統(tǒng)、復(fù)用支持等實(shí)現(xiàn)條件進(jìn)行必要的調(diào)整11.1 什么是問(wèn)題域部分問(wèn)題域部分是OOD模型的四個(gè)組成部分之一,由來(lái)自問(wèn)題域的對(duì)象構(gòu)成,是在OOA模型基礎(chǔ)上,按照具體的實(shí)現(xiàn)條件進(jìn)行必要的修改、調(diào)整和細(xì)節(jié)補(bǔ)充而得到的。第11章問(wèn)題域部分的設(shè)計(jì)4.第4頁(yè),共134頁(yè)。人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分OOA模型編程語(yǔ)言、網(wǎng)絡(luò)、操作系統(tǒng)、復(fù)用支持等實(shí)現(xiàn)條件OOD過(guò)程從MDA的觀點(diǎn)看問(wèn)題域部分的產(chǎn)生問(wèn)題域部分5.第5頁(yè),共134頁(yè)。11.2 實(shí)現(xiàn)條件對(duì)問(wèn)題域部分的影響編程語(yǔ)言語(yǔ)言的實(shí)現(xiàn)能力硬件、操作系統(tǒng)及網(wǎng)絡(luò)設(shè)施 對(duì)象分布、并發(fā)、通信、性能 復(fù)用支持 根據(jù)復(fù)用支持對(duì)模型做適當(dāng)調(diào)整,以實(shí)現(xiàn)復(fù)用數(shù)
3、據(jù)管理系統(tǒng) 為實(shí)現(xiàn)對(duì)象的持久存儲(chǔ),對(duì)問(wèn)題域部分做某些修改界面支持系統(tǒng)問(wèn)題域部分與人機(jī)界面之間的消息傳輸6.第6頁(yè),共134頁(yè)。設(shè)計(jì)準(zhǔn)備保留OOA文檔復(fù)制OOA文檔,作為OOD的輸入根據(jù)需求的變化和發(fā)現(xiàn)的錯(cuò)誤進(jìn)行修改設(shè)計(jì)內(nèi)容與策略(本節(jié)的重點(diǎn))針對(duì)編程語(yǔ)言支持能力的調(diào)整 增加一般類(lèi)以建立共同協(xié)議 實(shí)現(xiàn)復(fù)用提高性能 為實(shí)現(xiàn)對(duì)象持久存儲(chǔ)所做的修改 完善對(duì)象的細(xì)節(jié) 定義對(duì)象實(shí)例 對(duì)輔助模型、模型規(guī)約的修改和補(bǔ)充建立OOD文檔與OOA文檔的映射11.3 設(shè)計(jì)過(guò)程7.第7頁(yè),共134頁(yè)。1、按編程語(yǔ)言調(diào)整繼承與多態(tài)起因:OOA強(qiáng)調(diào)如實(shí)地反映問(wèn)題域,OOD考慮實(shí)現(xiàn)問(wèn)題,如果語(yǔ)言不支持多繼承或多態(tài),就要進(jìn)行對(duì)
4、模型調(diào)整多繼承模式狹義菱形廣義菱形(1)多繼承化為單繼承8.第8頁(yè),共134頁(yè)。方法1:簡(jiǎn)單轉(zhuǎn)換(a) 一般方法或AC111111BACB1ACB(c) 不合適的例子?職員學(xué)員在職學(xué)員職員學(xué)員在職學(xué)員1111(b) 合適的例子汽車(chē)制冷設(shè)備冷藏車(chē)或111111汽車(chē)制冷設(shè)備冷藏車(chē)汽車(chē)制冷設(shè)備冷藏車(chē)(d) 轉(zhuǎn)換產(chǎn)生信息重復(fù)AABCD?BCD9.第9頁(yè),共134頁(yè)。方法2:重新定義對(duì)象類(lèi),化解多繼承職員學(xué)員在職學(xué)員人員職員身份學(xué)員身份人員10.110.1職員身份學(xué)員身份身份人員10.210.第10頁(yè),共134頁(yè)。不適當(dāng)?shù)姆椒ㄔ黾映绦虼a職員學(xué)員人員在職學(xué)員方法3:保持分類(lèi),剝離多繼承信息職員學(xué)員人員在
5、職學(xué)員職員信息學(xué)員信息1111111111.第11頁(yè),共134頁(yè)。(2)取消多態(tài)性(a)(b)多邊形線條色線型邊數(shù)頂點(diǎn)坐標(biāo)繪圖填充正多邊形*頂點(diǎn)坐標(biāo)*繪圖矩形邊數(shù)*頂點(diǎn)坐標(biāo)*繪圖多邊形線條色線型正多邊形繪圖矩形頂點(diǎn)坐標(biāo)繪圖不規(guī)則多邊形繪圖邊數(shù)頂點(diǎn)坐標(biāo)邊數(shù)頂點(diǎn)坐標(biāo)填充12.第12頁(yè),共134頁(yè)。2、增加一般類(lèi)以建立共同協(xié)議增加根類(lèi):將所有的類(lèi)組織在一起 提供全系統(tǒng)通用的協(xié)議例:提供創(chuàng)建、刪除、復(fù)制等操作增加其他一般類(lèi):提供局部通用的協(xié)議例:提供持久存儲(chǔ)及恢復(fù)功能13.第13頁(yè),共134頁(yè)。 B CE A屬性操作DF1*屬性操作屬性操作屬性操作屬性操作屬性操作例:Object復(fù)用14.第14頁(yè),共
6、134頁(yè)。3、實(shí)現(xiàn)復(fù)用的設(shè)計(jì)策略如果已存在一些可復(fù)用的類(lèi),而且這些類(lèi)既有分析、設(shè)計(jì)時(shí)的定義,又有源程序,那么,復(fù)用這些類(lèi)即可提高開(kāi)發(fā)效率與質(zhì)量。目標(biāo):盡可能使復(fù)用成分增多,新開(kāi)發(fā)的成分減少當(dāng)前所需的類(lèi)的信息比可復(fù)用類(lèi)定義的信息直接復(fù)用 通過(guò)繼承復(fù)用 刪除可復(fù)用類(lèi)的多余信息刪除多余信息,通過(guò)繼承而復(fù)用15.第15頁(yè),共134頁(yè)。例:車(chē)輛序號(hào)顏色式樣出廠年月序號(hào)認(rèn)證車(chē)輛序號(hào)廠商式樣序號(hào)認(rèn)證可復(fù)用的類(lèi)問(wèn)題域部分的類(lèi)復(fù)用車(chē)輛序號(hào)廠商式樣序號(hào)認(rèn)證可復(fù)用的類(lèi)16.第16頁(yè),共134頁(yè)。4、提高性能(1)調(diào)整對(duì)象分布(2)縮短對(duì)象存取時(shí)間設(shè)立緩沖區(qū)甲機(jī)乙機(jī)sendcallcallsend類(lèi)A類(lèi)A類(lèi)B類(lèi)C類(lèi)B
7、類(lèi)C甲機(jī)乙機(jī)17.第17頁(yè),共134頁(yè)。(3)合并通訊頻繁的類(lèi)流速調(diào)節(jié)器指定流速流速調(diào)節(jié) 流速探測(cè)器當(dāng)前流速流速探測(cè)取當(dāng)前流速 流速控制器指定流速當(dāng)前流速流速調(diào)節(jié)流速探測(cè) 合并前合并后(4)增加屬性以減少重復(fù)計(jì)算call18.第18頁(yè),共134頁(yè)。(5)降低算法的計(jì)算復(fù)雜性(6)細(xì)化對(duì)象的分類(lèi) 二次曲線繪圖 二次曲線 拋物線繪圖 雙曲線繪圖 橢圓繪圖 19.第19頁(yè),共134頁(yè)。(7)將復(fù)雜對(duì)象化為整體-部分結(jié)構(gòu) 幀5、為數(shù)據(jù)存儲(chǔ)管理增補(bǔ)屬性與操作在數(shù)據(jù)接口部分設(shè)計(jì)中介紹背景前景顯示顯示1*1120.第20頁(yè),共134頁(yè)。6、完善對(duì)象的細(xì)節(jié)OOD在OOA模型基礎(chǔ)上所做的主要工作,不能用“細(xì)化”
8、二字概括,但細(xì)化是不可缺少的(1)完善與問(wèn)題域有關(guān)的屬性和操作在OOA階段允許不詳盡,OOD必須加以完善(2)解決OOA階段推遲考慮的問(wèn)題,包括:因封裝原則而設(shè)立的對(duì)象操作與OOD模型其他部分有關(guān)的屬性和操作(3)設(shè)計(jì)類(lèi)的每個(gè)操作必要時(shí)用流程圖或者活動(dòng)圖表示(4)設(shè)計(jì)表示關(guān)聯(lián)的屬性區(qū)分多重性的3種情況,決定屬性設(shè)置在哪一端(5)設(shè)計(jì)表示聚合的屬性區(qū)分組合與松散的聚合對(duì)于組合,用嵌套對(duì)象實(shí)現(xiàn)對(duì)于松散的聚合,采用與關(guān)聯(lián)相同的策略21.第21頁(yè),共134頁(yè)。7、定義對(duì)象實(shí)例在邏輯上,一個(gè)類(lèi)的對(duì)象實(shí)例是:?jiǎn)栴}域中所有可用這個(gè)類(lèi)描述的實(shí)際事物在物理上,一個(gè)類(lèi)的對(duì)象實(shí)例可以是:內(nèi)存中的對(duì)象變量文件的一個(gè)記
9、錄,或數(shù)據(jù)庫(kù)表的一個(gè)元組一個(gè)類(lèi)的對(duì)象實(shí)例可以分布到不同的處理機(jī)上對(duì)每一臺(tái)處理機(jī)說(shuō)明在它之上創(chuàng)建的每一個(gè)(或組)內(nèi)存對(duì)象說(shuō)明在它之上保存的外存對(duì)象類(lèi)的對(duì)象實(shí)例說(shuō)明: 處理機(jī):, 內(nèi)存對(duì)象:(n元數(shù)組) 外存對(duì)象:22.第22頁(yè),共134頁(yè)。8、修改或補(bǔ)充輔助模型及模型規(guī)約包圖類(lèi)的增減、拆分、合并以及各個(gè)類(lèi)之間關(guān)系的變化 順序圖操作與消息活動(dòng)圖操作流程其他模型圖狀態(tài)機(jī)圖、定時(shí)圖、交互概覽圖、組合結(jié)構(gòu)圖 模型規(guī)約類(lèi)的屬性、操作及其對(duì)外關(guān)系的修改或細(xì)化 23.第23頁(yè),共134頁(yè)。建立與OOA文檔的映射指出OOA模型中的哪個(gè)(或哪些)類(lèi)演化為OOD模型中的哪個(gè)(或哪些)類(lèi)24.第24頁(yè),共134頁(yè)。1
10、2.1 什么是人機(jī)交互部分人機(jī)交互部分是OOD模型的外圍組成部分之一,是系統(tǒng)中負(fù)責(zé)人機(jī)交互的部分。其中所包含的對(duì)象(稱作界面對(duì)象)構(gòu)成了系統(tǒng)的人機(jī)界面?,F(xiàn)今的系統(tǒng)大多采用圖形方式的人機(jī)界面形象、直觀、易學(xué)、易用,遠(yuǎn)遠(yuǎn)勝于命令行方式的人機(jī)界面,是使軟件系統(tǒng)嬴得廣大用戶的關(guān)鍵因素之一。但開(kāi)發(fā)工作量大,成本高。近30年出現(xiàn)了許多支持圖形用戶界面開(kāi)發(fā)的軟件系統(tǒng),包括:窗口系統(tǒng)(如X Window,News);圖形用戶界面(GUI)(如OSF/Motif,Open Look);可視化開(kāi)發(fā)環(huán)境(如Visual C+,Visual Basic,Delphi)統(tǒng)稱界面支持系統(tǒng)。人機(jī)交互部分既取決于需求,又與界
11、面支持系統(tǒng)密切相關(guān)。第12章人機(jī)交互部分的設(shè)計(jì)25.第25頁(yè),共134頁(yè)。人機(jī)界面的開(kāi)發(fā)不僅是設(shè)計(jì)和實(shí)現(xiàn)問(wèn)題,也包括分析問(wèn)題對(duì)人機(jī)交互需求的分析。人機(jī)界面的開(kāi)發(fā)也不純粹是軟件問(wèn)題,它還需要心理學(xué)、美學(xué)等許多其它學(xué)科的知識(shí)。把人機(jī)交互部分作為系統(tǒng)中一個(gè)獨(dú)立的組成部分進(jìn)行分析和設(shè)計(jì),有利于隔離界面支持系統(tǒng)的變化對(duì)問(wèn)題域部分的影響控制驅(qū)動(dòng)部分問(wèn)題域部分?jǐn)?shù)據(jù)接口部分人機(jī)交互部分 X-Window人機(jī)交互部分 OSF/Motif人機(jī)交互部分 Visual C+26.第26頁(yè),共134頁(yè)。12.2 人機(jī)交互部分的需求分析對(duì)使用系統(tǒng)的人進(jìn)行分析以便設(shè)計(jì)出適合其特點(diǎn)的交互方式和界面表現(xiàn)形式對(duì)人和機(jī)器的交互過(guò)程
12、進(jìn)行分析核心問(wèn)題是人如何命令系統(tǒng),以及系統(tǒng)如何向人提交信息(1)分析與系統(tǒng)交互的人(參與者)人對(duì)界面的需求,不僅在于人機(jī)交互的內(nèi)容,而且在于他們對(duì)界面表現(xiàn)形式、風(fēng)格等方面的愛(ài)好。前者是客觀需求,對(duì)誰(shuí)都一樣后者是主觀需求,因人而異分析工作包括列舉所有的人員參與者調(diào)查研究區(qū)分人員類(lèi)型統(tǒng)計(jì)(或估算)各類(lèi)人員的比例了解使用者的主觀需求27.第27頁(yè),共134頁(yè)。(2)從用況分析人機(jī)交互用況的構(gòu)成參與者的行為和系統(tǒng)行為按時(shí)間順序交替出現(xiàn),左右分明。形成交叉排列的段落。每個(gè)段落至少含有一個(gè)輸入語(yǔ)句或輸出語(yǔ)句;有若干純屬參與者自身或系統(tǒng)自身的行為陳述;可能包含一些控制語(yǔ)句或括號(hào)。抽取方法:刪除所有與輸入、輸
13、出無(wú)關(guān)的語(yǔ)句刪除不再包含任何內(nèi)容的控制語(yǔ)句與括號(hào)剩下的就是對(duì)一項(xiàng)功能的人機(jī)交互描述28.第28頁(yè),共134頁(yè)。收款員收款輸入開(kāi)始本次收款的命令;作好收款準(zhǔn)備,應(yīng)收款總數(shù)置為0,輸出提示信息;for 顧客選購(gòu)的每種商品 do 輸入商品編號(hào); if 此種商品多于一件 then 輸入商品數(shù)量 end if;檢索商品名稱及單價(jià);貨架商品數(shù)減去售出數(shù);if 貨架商品數(shù)低于下限 then 通知供貨員請(qǐng)求上貨end if;計(jì)算本種商品總價(jià)并打印編號(hào)、名稱、數(shù)量、單價(jià)、總價(jià);總價(jià)累加到應(yīng)收款總數(shù);end for;打印應(yīng)收款總數(shù);輸入顧客交來(lái)的款數(shù);計(jì)算應(yīng)找回的款數(shù),打印以上兩個(gè)數(shù)目,收款數(shù)計(jì)入賬冊(cè)。 (b)刪
14、除與輸入輸出無(wú)關(guān)的陳述收款輸入開(kāi)始本次收款的命令;作好收款準(zhǔn)備,應(yīng)收款總數(shù)置為0,輸出提示信息;for 顧客選購(gòu)的每種商品 do 輸入商品編號(hào); if 此種商品多于一件 then 輸入商品數(shù)量 end if;檢索商品名稱及單價(jià);貨架商品數(shù)減去售出數(shù);if 貨架商品數(shù)低于下限 then 通知供貨員請(qǐng)求上貨end if;計(jì)算本種商品總價(jià)并打印編號(hào)、名稱、數(shù)量、單價(jià)、總價(jià);總價(jià)累加到應(yīng)收款總數(shù);end for;打印應(yīng)收款總數(shù);輸入顧客交來(lái)的款數(shù);計(jì)算應(yīng)找回的款數(shù),打印以上兩個(gè)數(shù)目,收款數(shù)計(jì)入賬冊(cè)。 (a)一個(gè)用況的例子收款員收款(人機(jī)交互)輸入開(kāi)始本次收款的命令;輸出提示信息;for 顧客選購(gòu)的每種
15、商品 do 輸入商品編號(hào); if 此種商品多于一件 then 輸入商品數(shù)量 end if;打印商品編號(hào)、名稱、數(shù)量、單價(jià)、總價(jià);end for;打印應(yīng)收款總數(shù)輸入顧客交來(lái)的款數(shù)打印交款數(shù)及找回款數(shù); (c)得到人機(jī)交互描述例:29.第29頁(yè),共134頁(yè)。人機(jī)交互的細(xì)化輸入的細(xì)化輸入步驟的細(xì)化輸入設(shè)備的選擇輸入信息表現(xiàn)形式的選擇輸出的細(xì)化輸出步驟的細(xì)化輸出設(shè)備的選擇輸出信息表現(xiàn)形式的選擇輸入與輸出相比,輸入在人機(jī)交互中起到主導(dǎo)作用一次輸入,廣義地稱為對(duì)系統(tǒng)的一條“命令”30.第30頁(yè),共134頁(yè)。(3)分析處理異常事件的人機(jī)交互(4)命令的組織不受歡迎的命令組織方式:一條命令含有大量的參數(shù)和任選
16、項(xiàng)系統(tǒng)有大量命令,不加任何組織和引導(dǎo)基本命令:使用一項(xiàng)獨(dú)立的系統(tǒng)功能的命令。命令步: 基本命令交互過(guò)程中所包含的具體輸入步驟。高層命令:由其他若干命令組合而成,起組織和引導(dǎo)作用命令的組織措施分解與組合分解:將一條含有許多參數(shù)和選項(xiàng)的命令分解為若干命令步組合:將基本命令組織成高層命令,從高層命令引向基本命令31.第31頁(yè),共134頁(yè)。(c) 半序網(wǎng)狀結(jié)構(gòu)(b) 樹(shù)型結(jié)構(gòu)(a) 線性結(jié)構(gòu)(d) 一般的網(wǎng)狀結(jié)構(gòu)基本命令及其命令步的結(jié)構(gòu)32.第32頁(yè),共134頁(yè)。高層命令的組織結(jié)構(gòu) 33.第33頁(yè),共134頁(yè)。(5)輸出信息的組織結(jié)構(gòu)分析兩層命令之間的輸出信息結(jié)構(gòu)兩層命令反饋信息處理結(jié)果提示信息典型的
17、輸出信息結(jié)構(gòu)反饋信息處理結(jié)果處理結(jié)果提示信息提示信息處理結(jié)果提示信息復(fù)雜的輸出信息結(jié)構(gòu)34.第34頁(yè),共134頁(yè)。12.3 人機(jī)界面的設(shè)計(jì)準(zhǔn)則使用簡(jiǎn)便一致性啟發(fā)性減少人腦記憶的負(fù)擔(dān)減少重復(fù)的輸入容錯(cuò)性及時(shí)反饋其它:藝術(shù)性、趣味性、風(fēng)格、視感35.第35頁(yè),共134頁(yè)。12.4 人機(jī)界面的OO設(shè)計(jì)(1)選擇界面支持系統(tǒng)窗口系統(tǒng):“窗口系統(tǒng)是控制位映像顯示器與輸入設(shè)備的系統(tǒng)軟件,它所管理的資源有屏幕、窗口、像素映像,色彩表、字體、光標(biāo)、圖形資源及輸入設(shè)備?!?例:Smalltalk,Macintosh,X Window 圖形用戶界面(GUI):在窗口系統(tǒng)之上提供了層次更高的界面支持功能,具有特定的
18、視感和風(fēng)格,支持應(yīng)用系統(tǒng)界面開(kāi)發(fā)的系統(tǒng) 。例:OSF/Motif, Open Look 可視化編程環(huán)境:將窗口系統(tǒng)、GUI、可視化開(kāi)發(fā)工具、編程語(yǔ)言以及類(lèi)庫(kù)結(jié)合為一體的可視化開(kāi)發(fā)平臺(tái),支持用戶以“所見(jiàn)即所得”的方式構(gòu)造用戶界面 。例:Visual C+,Delphi,Visual Basic 考慮的因素:硬件、操作系統(tǒng)及編程語(yǔ)言 ,支持級(jí)別 ,風(fēng)格與視感 36.第36頁(yè),共134頁(yè)。(2)根據(jù)人機(jī)交互需求選用界面元素不同的界面支持系統(tǒng)提供不同的界面元素,常用的界面元素例如:窗口、菜單、對(duì)話盒、圖符、滾動(dòng)條等系統(tǒng)的啟動(dòng)選用實(shí)現(xiàn)主界面的界面元素,如框架窗口、對(duì)話框窗口高層命令組織結(jié)構(gòu)的實(shí)現(xiàn)通過(guò)界面
19、元素的構(gòu)造層次體現(xiàn)高層命令的組織結(jié)構(gòu)例如:窗口菜單下級(jí)菜單基本命令的執(zhí)行通過(guò)高層命令引向基本命令例如:窗口菜單菜單選項(xiàng)詳細(xì)交互過(guò)程的輸入與輸出選擇適當(dāng)?shù)慕缑嬖赝瓿擅總€(gè)命令步的輸入與輸出異常命令的輸入使用支持異常命令輸入的界面功能,如鼠標(biāo)右鍵菜單37.第37頁(yè),共134頁(yè)。(3)用OO概念表示界面元素對(duì)象和類(lèi) 盡可能使用界面類(lèi)庫(kù)中提供的可復(fù)用類(lèi)自定義的類(lèi)類(lèi)名屬性操作 類(lèi)名復(fù)用復(fù)用類(lèi)庫(kù)中的類(lèi)屬性與 操作用屬性表示界面對(duì)象的靜態(tài)特征物理特征如:位置、尺寸、顏色、立體效果 邏輯特征聚合、關(guān)聯(lián)用操作表示界面對(duì)象的行為例如:創(chuàng)建、激活、最大化、最小化、移動(dòng)、選中、單擊、雙擊 38.第38頁(yè),共134頁(yè)。
20、整體-部分結(jié)構(gòu)表示界面元素之間的構(gòu)成關(guān)系,例如:窗口 與 其中的菜單、按鈕、圖符、對(duì)話框、滾動(dòng)條表示界面對(duì)象在操作中的邏輯層次反映上、下兩層命令之間的關(guān)系例:框架窗口39.第39頁(yè),共134頁(yè)??蚣艽翱谥鞑藛蜗吕藛我暣肮ぞ邨l滾動(dòng)條按鈕111*1*1112111*40.第40頁(yè),共134頁(yè)。一般-特殊結(jié)構(gòu)表示較一般的界面類(lèi)和較特殊的界面類(lèi)之間的關(guān)系 自定義的類(lèi)之間的一般-特殊關(guān)系用一般-特殊結(jié)構(gòu)特化可復(fù)用類(lèi)CDialog復(fù)用操作屬性對(duì)話框 A41.第41頁(yè),共134頁(yè)。關(guān)聯(lián)表示界面類(lèi)之間一個(gè)有特定意義的關(guān)系,例如:按鈕11對(duì)話框消息 高層命令到低層命令界面對(duì)象之間的消息基本命令的執(zhí)行從界面對(duì)象
21、向功能對(duì)象發(fā)消息 信息輸出從功能對(duì)象向界面對(duì)象發(fā)消息工具條1*42.第42頁(yè),共134頁(yè)。12.5 可視化編程環(huán)境下的人機(jī)界面設(shè)計(jì)(1)問(wèn)題的提出(2)所見(jiàn)即所得的界面開(kāi)發(fā)(3)設(shè)計(jì)的必要性為實(shí)現(xiàn)提供依據(jù)為了滿足人機(jī)交互的需求,人機(jī)界面中要使用哪些界面對(duì)象?交互過(guò)程中的各項(xiàng)輸入和輸出應(yīng)由哪些界面對(duì)象完成?如何通過(guò)界面對(duì)象類(lèi)之間的各種關(guān)系體現(xiàn)人機(jī)交互命令的組織結(jié)構(gòu)與層次?如何通過(guò)界面對(duì)象和功能對(duì)象之間的消息實(shí)現(xiàn)它們之間的動(dòng)態(tài)聯(lián)系?降低失敗的風(fēng)險(xiǎn)設(shè)計(jì)策略需要改進(jìn)類(lèi)庫(kù)的存在以所見(jiàn)即所得的定義界面對(duì)象的各種物理屬性更為直接43.第43頁(yè),共134頁(yè)。(4)基于可視化編程環(huán)境的設(shè)計(jì)策略類(lèi)的設(shè)立首先想到復(fù)
22、用Cdialog復(fù)用CMysystemDig CEdit 復(fù)用通過(guò)繼承復(fù)用直接復(fù)用44.第44頁(yè),共134頁(yè)。屬性忽略物理特征,著重表示邏輯特征設(shè)計(jì)階段不必關(guān)心描述界面物理特征的屬性諸如:大小、形狀、位置、顏色、邊框、底紋、圖案式樣、三維效果等,由實(shí)現(xiàn)人員去自主處理效果更好,效率更高以主要精力定義描述界面邏輯特征的屬性表現(xiàn)命令的組織結(jié)構(gòu)的屬性、例如:菜單類(lèi)的每個(gè)選項(xiàng)表示什么命令表現(xiàn)界面元素之間組成關(guān)系和關(guān)聯(lián)的屬性例如:對(duì)話框中包含哪些控件45.第45頁(yè),共134頁(yè)。CMysystemDig SetDlgItemText 操作顯式地表示從高層類(lèi)繼承的操作例:CDialog復(fù)用46.第46頁(yè),共1
23、34頁(yè)。整體-部分結(jié)構(gòu)表現(xiàn)界面的組織結(jié)構(gòu)和命令層次通過(guò)整體-部分結(jié)構(gòu)表現(xiàn)界面對(duì)象之間的組成關(guān)系和人機(jī)交互命令的層次關(guān)系與采用其它界面支持系統(tǒng)的策略相同區(qū)分界面對(duì)象的普通屬性和它的部分對(duì)象有些組成部分被作為對(duì)象的一個(gè)普通屬性例如下拉菜單的選項(xiàng),窗口的邊框有些組成部分則被作為一個(gè)部分對(duì)象例如對(duì)話框的一個(gè)下拉菜單或按鈕區(qū)分兩種情況的依據(jù)環(huán)境類(lèi)庫(kù)有沒(méi)有給出這種組成部分的類(lèi)定義47.第47頁(yè),共134頁(yè)。一般-特殊結(jié)構(gòu)多從可復(fù)用類(lèi)直接繼承例:對(duì)話框復(fù)用對(duì)話框 A對(duì)話框 B編輯框復(fù)用按鈕復(fù)用1311 普通策略21對(duì)話框復(fù)用 對(duì)話框 A 對(duì)話框 B編輯框復(fù)用按鈕復(fù)用11151113直接繼承可復(fù)用類(lèi)的策略48
24、.第48頁(yè),共134頁(yè)。消息忽略自動(dòng)實(shí)現(xiàn)的消息注意需要編程實(shí)現(xiàn)的消息1、界面對(duì)象接收到一個(gè)操作事件,通過(guò)它的一個(gè)操作向處理該事件的功能對(duì)象所發(fā)送的消息。2、從功能對(duì)象向完成其輸入/輸出的界面對(duì)象發(fā)送的消息。3、其它:凡是需要通過(guò)手工編程來(lái)實(shí)現(xiàn)的消息,都要在設(shè)計(jì)中加以表示。49.第49頁(yè),共134頁(yè)。13.1 什么是控制驅(qū)動(dòng)部分控制驅(qū)動(dòng)部分是OOD模型的外圍組成部分之一,由系統(tǒng)中全體主動(dòng)類(lèi)構(gòu)成。這些主動(dòng)類(lèi)描述了整個(gè)系統(tǒng)中所有的主動(dòng)對(duì)象,每個(gè)主動(dòng)對(duì)象是系統(tǒng)中一個(gè)控制流的驅(qū)動(dòng)者。 控制流(control flow)進(jìn)程(process)和線程(thread)的總稱有多個(gè)控制流并發(fā)執(zhí)行的系統(tǒng)稱作并發(fā)系
25、統(tǒng)(多任務(wù)系統(tǒng))第13章 控制驅(qū)動(dòng)部分的設(shè)計(jì)50.第50頁(yè),共134頁(yè)。為什么需要控制驅(qū)動(dòng)部分并發(fā)行為是現(xiàn)實(shí)中固有的當(dāng)前大量的系統(tǒng)都是并發(fā)系統(tǒng)(多任務(wù)系統(tǒng)),例如:外圍設(shè)備與主機(jī)并發(fā)工作的系統(tǒng)有多個(gè)窗口進(jìn)行人機(jī)交互的系統(tǒng)多用戶系統(tǒng)多個(gè)子系統(tǒng)并發(fā)工作的系統(tǒng)單處理機(jī)上的多任務(wù)系統(tǒng)多處理機(jī)系統(tǒng)多任務(wù)的設(shè)置描述問(wèn)題域固有的并發(fā)行為表達(dá)實(shí)現(xiàn)所需的設(shè)計(jì)決策隔離硬件、操作系統(tǒng)、網(wǎng)絡(luò)的變化對(duì)整個(gè)系統(tǒng)的影響51.第51頁(yè),共134頁(yè)。13.2 相關(guān)技術(shù)問(wèn)題(1)由系統(tǒng)總體方案決定的實(shí)現(xiàn)條件:計(jì)算機(jī)硬件性能、容量和CPU數(shù)目操作系統(tǒng)對(duì)并發(fā)和通訊的支持網(wǎng)絡(luò)方案網(wǎng)絡(luò)軟硬件設(shè)施、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、通訊速率、網(wǎng)絡(luò)協(xié)議等軟件體
26、系結(jié)構(gòu)(詳后)編程語(yǔ)言對(duì)進(jìn)程和線程的描述能力其它商品軟件如數(shù)據(jù)管理系統(tǒng)、界面支持系統(tǒng)、構(gòu)件庫(kù)等對(duì)共享和并發(fā)訪問(wèn)的支持52.第52頁(yè),共134頁(yè)。(2)軟件體系結(jié)構(gòu)抽象地說(shuō),軟件體系結(jié)構(gòu)描述了構(gòu)成系統(tǒng)的元素、這些元素之間的相互作用、指導(dǎo)其組合的模式以及對(duì)這些模式的約束 Mary Shaw 幾種典型的軟件體系結(jié)構(gòu)風(fēng)格管道與過(guò)濾器風(fēng)格(pipe and filter style)數(shù)據(jù)抽象風(fēng)格(data abstraction style)面向?qū)ο箫L(fēng)格(object-oriented style)隱式調(diào)用風(fēng)格(implicit invocation style)層次風(fēng)格(layered style)倉(cāng)
27、庫(kù)風(fēng)格(repository style)黑板風(fēng)格(blackboard style)解釋器模型(interpreter model)進(jìn)程控制風(fēng)格(process control style)客戶-服務(wù)器風(fēng)格(client-server style) 53.第53頁(yè),共134頁(yè)。主機(jī)+仿真終端體系結(jié)構(gòu)文件共享體系結(jié)構(gòu)客戶-服務(wù)器體系結(jié)構(gòu)二層客戶-服務(wù)器體系結(jié)構(gòu)三層客戶-服務(wù)器體系結(jié)構(gòu)對(duì)等式客戶-服務(wù)器體系結(jié)構(gòu)瘦客戶-服務(wù)器體系結(jié)構(gòu)瀏覽器-服務(wù)器體系結(jié)構(gòu)(3)分布式系統(tǒng)的體系結(jié)構(gòu)風(fēng)格54.第54頁(yè),共134頁(yè)。進(jìn)程(process)概念出現(xiàn)之前,并發(fā)程序設(shè)計(jì)困難重重主要原因:并發(fā)行為彼此交織,理
28、不出頭緒與時(shí)間有關(guān)的錯(cuò)誤不可重現(xiàn)進(jìn)程概念的提出使這個(gè)問(wèn)題得到根本解決進(jìn)程的全稱是順序進(jìn)程(sequential process),其基本思想是把并發(fā)程序分解成一些順序執(zhí)行的進(jìn)程,使得:每個(gè)進(jìn)程內(nèi)部不再包含并發(fā)行為所以叫做順序進(jìn)程,其設(shè)計(jì)避免了并發(fā)問(wèn)題多個(gè)進(jìn)程之間是并發(fā)(異步)執(zhí)行的所以能夠構(gòu)成并發(fā)程序(4)系統(tǒng)的并發(fā)性55.第55頁(yè),共134頁(yè)。線程(Thread )由于并行計(jì)算的需要,要求人為地在順序程序內(nèi)部定義和識(shí)別可并發(fā)執(zhí)行的單位。因此后來(lái)的操作系統(tǒng)大多支持線程概念。線程與進(jìn)程的區(qū)別:進(jìn)程既是處理機(jī)分配單位,也是存儲(chǔ)空間、設(shè)備等資源的分配單位(重量級(jí)的控制流);線程只是處理機(jī)分配單位(輕
29、量級(jí)的控制流) ;一個(gè)進(jìn)程可以包含多個(gè)線程,也可以是單線程的??刂屏魇沁M(jìn)程和線程的總稱。56.第56頁(yè),共134頁(yè)。應(yīng)用系統(tǒng)的并發(fā)性從網(wǎng)絡(luò)、硬件平臺(tái)的角度看:分布在不同計(jì)算機(jī)上的進(jìn)程之間的并發(fā)在多CPU的計(jì)算機(jī)上運(yùn)行的進(jìn)程或線程之間的并發(fā)在一個(gè)CPU上運(yùn)行的多個(gè)進(jìn)程或線程之間的并發(fā)從應(yīng)用系統(tǒng)的需求看:需要跨地域進(jìn)行業(yè)務(wù)處理的系統(tǒng)需要同時(shí)使用多臺(tái)計(jì)算機(jī)或多個(gè)CPU進(jìn)行處理的系統(tǒng)需要同時(shí)供多個(gè)用戶或操作者使用的系統(tǒng)需要在同一時(shí)間執(zhí)行多項(xiàng)功能的系統(tǒng)需要與系統(tǒng)外部多個(gè)參與者同時(shí)進(jìn)行交互的系統(tǒng)57.第57頁(yè),共134頁(yè)。處理應(yīng)用系統(tǒng)并發(fā)性的例子見(jiàn)教材節(jié)例1 例758.第58頁(yè),共134頁(yè)。例5:用多進(jìn)程
30、實(shí)現(xiàn)遙感信息的輸入、處理和顯示輸入進(jìn)程操作數(shù)據(jù)數(shù)據(jù)處理進(jìn)程操作數(shù)據(jù)顯示進(jìn)程操作數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)IPCIPC數(shù)據(jù)數(shù)據(jù)顯示屏地面接收設(shè)備輸入輸出遙感信息處理系統(tǒng)59.第59頁(yè),共134頁(yè)。例6:用多線程實(shí)現(xiàn)遙感信息的輸入、處理和顯示輸入線程數(shù)據(jù)處理線程顯示線程數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)輸入輸出地面接收設(shè)備顯示屏遙感信息處理進(jìn)程60.第60頁(yè),共134頁(yè)。業(yè)務(wù)處理進(jìn)程 1操作輸入線程數(shù)據(jù)處理線程顯示線程遙感信息處理進(jìn)程數(shù)據(jù)數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)數(shù)據(jù)業(yè)務(wù)處理進(jìn)程 n操作數(shù)據(jù)IPC/RPC例7:同時(shí)采用多進(jìn)程和多線程 61.第61頁(yè),共134頁(yè)。13.3 如何設(shè)計(jì)控制驅(qū)動(dòng)部分(1)選擇軟件體系結(jié)構(gòu)風(fēng)格二層客戶-服務(wù)器體
31、系結(jié)構(gòu)(數(shù)據(jù))服務(wù)器客戶機(jī)三層客戶-服務(wù)器體系結(jié)構(gòu)數(shù)據(jù)服務(wù)器應(yīng)用服務(wù)器客戶機(jī) 62.第62頁(yè),共134頁(yè)??紤]分布方案之前,暫時(shí)將系統(tǒng)看作集中式的確定分布方案之后,將對(duì)象分布到各個(gè)處理機(jī)上以每臺(tái)處理機(jī)上的類(lèi)作為一個(gè)包集中式類(lèi)圖分布到不同結(jié)點(diǎn)上結(jié)點(diǎn)A包A結(jié)點(diǎn)B包B結(jié)點(diǎn)C包C(2)確定系統(tǒng)分布方案63.第63頁(yè),共134頁(yè)。系統(tǒng)分布 包括功能分布和數(shù)據(jù)分布在面向?qū)ο蟮南到y(tǒng)中都體現(xiàn)于對(duì)象分布原則:減少遠(yuǎn)程傳輸,便于管理對(duì)象分布軟件體系結(jié)構(gòu)系統(tǒng)功能在哪些結(jié)點(diǎn)提供數(shù)據(jù)在哪些結(jié)點(diǎn)長(zhǎng)期存儲(chǔ)管理,在哪些結(jié)點(diǎn)臨時(shí)使用參照用況 把合作緊密的對(duì)象盡可能分布在同一結(jié)點(diǎn)追蹤消息 把一個(gè)控制流經(jīng)歷的對(duì)象分布在同一結(jié)點(diǎn)64
32、.第64頁(yè),共134頁(yè)。分布在每個(gè)結(jié)點(diǎn)上的對(duì)象,都需要相應(yīng)的類(lèi)來(lái)創(chuàng)建(1)如果一個(gè)類(lèi)只需要在一個(gè)結(jié)點(diǎn)上創(chuàng)建對(duì)象實(shí)例把這個(gè)類(lèi)分布在該結(jié)點(diǎn)上(2)如果一個(gè)類(lèi)需要在多個(gè)結(jié)點(diǎn)上創(chuàng)建對(duì)象實(shí)例把這個(gè)類(lèi)分布到每個(gè)需要?jiǎng)?chuàng)建其實(shí)例的結(jié)點(diǎn)上其中一個(gè)作為正本,其他作為副本類(lèi)的分布:根據(jù)對(duì)象分布的需要65.第65頁(yè),共134頁(yè)。(a) 一個(gè)集中式類(lèi)圖1*ABCDEFG*1服務(wù)器HIJABCDEFG*1(b) 服務(wù)器包1*副本DHIJ副本A客戶機(jī)(c) 客戶機(jī)包(第一種策略)(d) 客戶機(jī)包(第二種策略)1*副本DHIJ客戶機(jī)callcallcall例66.第66頁(yè),共134頁(yè)。13.3.3 識(shí)別控制流(1)以結(jié)點(diǎn)為單
33、位識(shí)別控制流不同結(jié)點(diǎn)上程序的并發(fā)問(wèn)題已經(jīng)解決考慮在每個(gè)結(jié)點(diǎn)上運(yùn)行的程序還需要如何并發(fā) (2)從用戶需求出發(fā)認(rèn)識(shí)控制流有哪些任務(wù)必須在同一臺(tái)計(jì)算機(jī)上并發(fā)執(zhí)行 (3)從用況認(rèn)識(shí)控制流 關(guān)注描述如下三類(lèi)功能的用況要求與其他功能同時(shí)執(zhí)行的功能用戶隨時(shí)要求執(zhí)行 的功能處理系統(tǒng)異常事件功能(4)參照OOA模型中的主動(dòng)對(duì)象(5)為改善性能而增設(shè)的控制流高優(yōu)先級(jí)任務(wù)、低優(yōu)先級(jí)任務(wù)、緊急任務(wù)(6)實(shí)現(xiàn)并行計(jì)算的控制流(線程)(7)實(shí)現(xiàn)結(jié)點(diǎn)之間通訊的控制流(進(jìn)程)(8)對(duì)其它控制流進(jìn)行協(xié)調(diào)的控制流67.第67頁(yè),共134頁(yè)。active 類(lèi) 名UML1的主動(dòng)類(lèi)表示法類(lèi) 名process類(lèi) 名thread類(lèi) 名UM
34、L2的主動(dòng)類(lèi)表示法13.3.4 用主動(dòng)對(duì)象表示控制流控制流是主動(dòng)對(duì)象中一個(gè)主動(dòng)操作的一次執(zhí)行。其間可能要調(diào)用其他對(duì)象的操作,后者又可能調(diào)用另外一些對(duì)象的操作,這就是一個(gè)控制流的運(yùn)行軌跡。 問(wèn)題:一個(gè)主動(dòng)類(lèi)可以有多個(gè)主動(dòng)操作和若干被動(dòng)操作,這種表示法不能顯式地表示哪個(gè)(哪些)操作是主動(dòng)操作。68.第68頁(yè),共134頁(yè)。用關(guān)鍵詞表示主動(dòng)操作類(lèi)名進(jìn)程操作名() 線程操作名() 線程操作名()操作名()active類(lèi)名進(jìn)程操作名() 線程操作名() 線程操作名()操作名()69.第69頁(yè),共134頁(yè)。顯示地表示由進(jìn)程創(chuàng)建線程類(lèi)B線程 T1create create 類(lèi)C線程 T2類(lèi)A進(jìn)程 P70.第7
35、0頁(yè),共134頁(yè)。把控制驅(qū)動(dòng)部分看成一個(gè)包其中包含了系統(tǒng)中全部主動(dòng)類(lèi)可以從多種觀點(diǎn)把OOD模型劃分成包人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分問(wèn)題域部分問(wèn)題域部分控制驅(qū)動(dòng)部分人機(jī)交互部分?jǐn)?shù)據(jù)接口部分按OOD模型的四個(gè)組成部分按分布的結(jié)點(diǎn)數(shù)據(jù)服務(wù)器應(yīng)用服務(wù)器客戶機(jī)按子系統(tǒng)技術(shù)部財(cái)物部營(yíng)業(yè)部人事部71.第71頁(yè),共134頁(yè)。主動(dòng)對(duì)象屬于控制驅(qū)動(dòng)部分,也可以同時(shí)屬于其他部分因?yàn)镺OD模型的各個(gè)部分可以交叉例:訂單系統(tǒng)中營(yíng)業(yè)員對(duì)象可以有不同的設(shè)計(jì)方案人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分問(wèn)題域部分營(yíng)業(yè)員active營(yíng)業(yè)員進(jìn)程營(yíng)業(yè)員窗口callcall方案1:無(wú)交叉72.第72頁(yè),共134頁(yè)。人機(jī)交互部分?jǐn)?shù)據(jù)
36、接口部分控制驅(qū)動(dòng)部分問(wèn)題域部分進(jìn)程營(yíng)業(yè)員營(yíng)業(yè)員窗口call方案2:?jiǎn)栴}域部分和控制驅(qū)動(dòng)部分交叉73.第73頁(yè),共134頁(yè)。方案3:?jiǎn)栴}域部分和人機(jī)交互部分交叉人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分問(wèn)題域部分營(yíng)業(yè)員callactive營(yíng)業(yè)員進(jìn)程74.第74頁(yè),共134頁(yè)。人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分問(wèn)題域部分方案4:?jiǎn)栴}域部分、人機(jī)交互部分、控制驅(qū)動(dòng)部分都交叉active營(yíng)業(yè)員提問(wèn):1、還有沒(méi)有其他方案?2、是否違背了隔離對(duì)問(wèn)題域部分影響的初衷?75.第75頁(yè),共134頁(yè)。數(shù)據(jù)接口部分是OOD模型中負(fù)責(zé)與具體的數(shù)據(jù)管理系統(tǒng)銜接的外圍組成部分,它為系統(tǒng)中需要長(zhǎng)久存儲(chǔ)的對(duì)象提供了在選定的數(shù)據(jù)管
37、理系統(tǒng)中進(jìn)行數(shù)據(jù)存儲(chǔ)與恢復(fù)的功能。 問(wèn)題范圍:對(duì)象在永久性存儲(chǔ)介質(zhì)上的存儲(chǔ)只須存儲(chǔ)對(duì)象的屬性部分可能只有一部分對(duì)象需要長(zhǎng)久存儲(chǔ)11.1 什么是數(shù)據(jù)接口部分大部分實(shí)用的系統(tǒng)都要處理數(shù)據(jù)的持久存儲(chǔ)問(wèn)題 數(shù)據(jù)保存于永久性存儲(chǔ)介質(zhì)在數(shù)據(jù)管理系統(tǒng)的支持下實(shí)現(xiàn)其存儲(chǔ)、檢索和維護(hù) 在面向?qū)ο蟮南到y(tǒng)中,數(shù)據(jù)的存儲(chǔ)表現(xiàn)為對(duì)象存儲(chǔ) 第14章數(shù)據(jù)接口部分的設(shè)計(jì)76.第76頁(yè),共134頁(yè)。不同的數(shù)據(jù)管理系統(tǒng):文件系統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)面向?qū)ο蟮臄?shù)據(jù)庫(kù)管理系統(tǒng)各有不同的數(shù)據(jù)定義方式和數(shù)據(jù)操縱方式針對(duì)不同的數(shù)據(jù)管理系統(tǒng),需要做不同設(shè)計(jì) 根據(jù)所選用的數(shù)據(jù)管理系統(tǒng)特點(diǎn),設(shè)計(jì)一些專門(mén)處理其它對(duì)象的持久存儲(chǔ)問(wèn)題的對(duì)象組織成一個(gè)
38、獨(dú)立的組成部分 數(shù)據(jù)接口部分77.第77頁(yè),共134頁(yè)。優(yōu)點(diǎn):集中解決對(duì)象存儲(chǔ)問(wèn)題隔離數(shù)據(jù)管理系統(tǒng)對(duì)其它部分的影響選用不同的數(shù)據(jù)管理系統(tǒng)時(shí),問(wèn)題域部分變化較少人機(jī)交互部分控制驅(qū)動(dòng)部分問(wèn)題域部分?jǐn)?shù)據(jù)接口部分文件系統(tǒng)數(shù)據(jù)接口部分文件系統(tǒng)數(shù)據(jù)接口部分關(guān)系型DBMS數(shù)據(jù)接口部分OO-DBMS78.第78頁(yè),共134頁(yè)。14.2 數(shù)據(jù)管理系統(tǒng)及其選擇數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、檢索、管理與維護(hù)的系統(tǒng)包括文件系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)兩大類(lèi)文件系統(tǒng) file system 關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng) RDBMS面向?qū)ο蟮臄?shù)據(jù)庫(kù)管理系統(tǒng) OODBMS79.第79頁(yè),共134頁(yè)。(一)文件系統(tǒng) 通常是操作系統(tǒng)的一部分管理外
39、存空間的文件數(shù)據(jù)提供存儲(chǔ)、檢索、更新、共享和保護(hù)等功能文件結(jié)構(gòu)物理結(jié)構(gòu)文件數(shù)據(jù)在存儲(chǔ)空間的存放方法和組織關(guān)系 邏輯結(jié)構(gòu)呈現(xiàn)給用戶的文件結(jié)構(gòu)如流式結(jié)構(gòu)、記錄式結(jié)構(gòu) 等文件系統(tǒng)提供的支持在人機(jī)界面上進(jìn)行操作的系統(tǒng)命令在程序中使用的廣義指令創(chuàng)建、刪除、打開(kāi)、關(guān)閉、讀、寫(xiě)、控制等 編程語(yǔ)言可以提供更方便的文件定義與使用方式 80.第80頁(yè),共134頁(yè)。優(yōu)點(diǎn):廉價(jià),容易學(xué)習(xí)和掌握,對(duì)數(shù)據(jù)類(lèi)型沒(méi)有限制 缺點(diǎn):功能貧乏、低級(jí)不容易體現(xiàn)數(shù)據(jù)之間的關(guān)系只能按地址或者記錄讀寫(xiě),不能按屬性進(jìn)行數(shù)據(jù)檢索與更新缺少數(shù)據(jù)完整性支持?jǐn)?shù)據(jù)共享支持薄弱文件系統(tǒng)的優(yōu)缺點(diǎn) 81.第81頁(yè),共134頁(yè)。(二)數(shù)據(jù)庫(kù)管理系統(tǒng) 數(shù)據(jù)庫(kù):
40、長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織、可共享的數(shù)據(jù)集合。其中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。 數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS) :用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)的軟件。它對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性數(shù)據(jù)模型:描述如何在數(shù)據(jù)庫(kù)中定義數(shù)據(jù)及其操作,內(nèi)容包括:實(shí)體及實(shí)體間聯(lián)系的數(shù)據(jù)結(jié)構(gòu)描述,對(duì)數(shù)據(jù)的操作,完整性約束不同的數(shù)據(jù)庫(kù)基于不同的數(shù)據(jù)模型網(wǎng)狀數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)面向?qū)ο蟮臄?shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)基于網(wǎng)狀數(shù)據(jù)模型基于層次數(shù)據(jù)模型基于關(guān)系數(shù)據(jù)模型基于面向?qū)ο髷?shù)據(jù)模型82.第82頁(yè),共134頁(yè)。1、關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) RDBM
41、S關(guān)系模型給定一組域D1,D2,Dn其笛卡爾積D1D2Dn的一個(gè)子集就是一個(gè)關(guān)系,又稱二維表 基本要求:關(guān)系的每個(gè)屬性必須是原子的 數(shù)據(jù)的組織:用二維表組織各類(lèi)數(shù)據(jù)既可存放描述實(shí)體自身特征的數(shù)據(jù)也可存放描述實(shí)體之間聯(lián)系的數(shù)據(jù)每一列稱作一個(gè)屬性每一行稱作一個(gè)元組數(shù)據(jù)的運(yùn)算:提供并、交、差等集合運(yùn)算以及選取、投影、聯(lián)結(jié)等操作 83.第83頁(yè),共134頁(yè)。關(guān)系數(shù)據(jù)庫(kù)術(shù)語(yǔ)對(duì)照數(shù)據(jù)庫(kù)專業(yè)術(shù)語(yǔ)開(kāi)發(fā)者的習(xí)慣術(shù)語(yǔ)用戶習(xí)慣術(shù)語(yǔ)關(guān)系relation文件file表table元組tuple記錄record行row屬性attribute字段,域field列column84.第84頁(yè),共134頁(yè)。2、面向?qū)ο髷?shù)據(jù)庫(kù)管理系
42、統(tǒng) OODBMS采用面向?qū)ο髷?shù)據(jù)模型的數(shù)據(jù)庫(kù)管理系統(tǒng) 背景:越來(lái)越多的系統(tǒng)用OO技術(shù)開(kāi)發(fā)(采用OO數(shù)據(jù)模型) RDBMS的局限性(采用關(guān)系數(shù)據(jù)模型) 不能直接、有效地組織和存儲(chǔ)對(duì)象數(shù)據(jù),需要對(duì)數(shù)據(jù)模式進(jìn)行轉(zhuǎn)換,并提供相應(yīng)的接口因此出現(xiàn)了面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)OODBMSOODBMS的特征:是面向?qū)ο蟮模褐С謱?duì)象、類(lèi)、對(duì)象標(biāo)識(shí)、對(duì)象的屬性與操作、封裝、繼承、聚合、關(guān)聯(lián)、多態(tài)等OO概念。具有數(shù)據(jù)庫(kù)管理系統(tǒng)的功能:數(shù)據(jù)定義與操縱語(yǔ)言、完整性保障、安全機(jī)制,并發(fā)控制、故障恢復(fù)、事務(wù)運(yùn)行管理、可擴(kuò)充85.第85頁(yè),共134頁(yè)。三種類(lèi)型的OODBMS產(chǎn)品1)在OOPL基礎(chǔ)上增加數(shù)據(jù)庫(kù)管理系統(tǒng)的功能例如:G
43、emStone 和 ObjectStore2)對(duì)RDBMS進(jìn)行擴(kuò)充,使之支持面向?qū)ο髷?shù)據(jù)模型并向用戶提供面向?qū)ο蟮膽?yīng)用程序接口例如:Iris 和 POSTGRES3)“全新的”O(jiān)ODBMS即按照面向?qū)ο髷?shù)據(jù)模型進(jìn)行全新的設(shè)計(jì) 例如:O2 和 DAMOKLES 目前狀況:理論和技術(shù)上都有待完善86.第86頁(yè),共134頁(yè)。(三)數(shù)據(jù)管理系統(tǒng)的選擇理論上OODBMS最適合用OO方法開(kāi)發(fā)的系統(tǒng)實(shí)際上要權(quán)衡技術(shù)和非技術(shù)兩方面的因素非技術(shù)因素與項(xiàng)目的成本、工期、風(fēng)險(xiǎn)、宏觀計(jì)劃有關(guān)的問(wèn)題 產(chǎn)品的成熟性和先進(jìn)性 價(jià)格開(kāi)發(fā)隊(duì)伍的技術(shù)背景 與其它系統(tǒng)的關(guān)系 87.第87頁(yè),共134頁(yè)。技術(shù)因素考慮各種數(shù)據(jù)管理系統(tǒng)
44、適應(yīng)哪些情況,不適應(yīng)哪些情況 文件系統(tǒng)的適應(yīng)性優(yōu)點(diǎn):可儲(chǔ)任何類(lèi)型的數(shù)據(jù),包括具有復(fù)雜內(nèi)部結(jié)構(gòu)的數(shù)據(jù)和圖形、圖象、視頻、音頻等多媒體數(shù)據(jù)。以類(lèi)和對(duì)象的形式定義的數(shù)據(jù)都可以用文件存儲(chǔ) 適應(yīng):數(shù)據(jù)類(lèi)型復(fù)雜,但對(duì)數(shù)據(jù)存取、數(shù)據(jù)共享、數(shù)據(jù)完整性維護(hù)、故障恢復(fù)、事務(wù)處理等功能要求不高的應(yīng)用系統(tǒng);缺點(diǎn):操作低級(jí);數(shù)據(jù)操縱功能貧乏;缺少數(shù)據(jù)完整性支持;缺少多用戶及多應(yīng)用共享、故障恢復(fù)、事務(wù)處理等功能不適應(yīng):數(shù)據(jù)操縱復(fù)雜、多樣,數(shù)據(jù)共享及數(shù)完整性維護(hù)要求較高的系統(tǒng)。 88.第88頁(yè),共134頁(yè)。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的適應(yīng)性優(yōu)點(diǎn):對(duì)數(shù)據(jù)存取、數(shù)據(jù)共享、數(shù)據(jù)完整性維護(hù)、故障恢復(fù)、事務(wù)處理等功能提供強(qiáng)有力的支持適應(yīng):對(duì)
45、這些功能要求較高的應(yīng)用系統(tǒng),以及需大量保存和管理各類(lèi)實(shí)體之間關(guān)系信息的應(yīng)用系統(tǒng)問(wèn)題:關(guān)系數(shù)據(jù)模型對(duì)數(shù)據(jù)模式的限制較多 當(dāng)對(duì)象的內(nèi)部結(jié)構(gòu)較為復(fù)雜時(shí),就不能直接地與關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)模式相匹配,需要經(jīng)過(guò)轉(zhuǎn)換更不適合圖形、圖象、音頻、視頻等多媒體數(shù)據(jù) 和 經(jīng)過(guò)壓縮處理的數(shù)據(jù) 文件系統(tǒng)和RDBMS的優(yōu)點(diǎn)和缺點(diǎn)形成了明顯對(duì)照但是對(duì)二者的選擇卻未必互相排斥,有時(shí)它們是互補(bǔ)的。某些應(yīng)用系統(tǒng)可能同時(shí)采用RDBMS和文件系統(tǒng),分別存儲(chǔ)各自所適合的數(shù)據(jù)。 89.第89頁(yè),共134頁(yè)。面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)的適應(yīng)性從純技術(shù)的角度看,對(duì)用OO方法開(kāi)發(fā)的系統(tǒng)采用OODBMS是最合理的選擇,幾乎沒(méi)有不適合的情況。如果某些項(xiàng)
46、目不適合,主要是由于非技術(shù)因素,而不是技術(shù)因素 各種OODBMS采用的對(duì)象模型多少有些差異,與用戶選用的OOA&D方法及OOPL中的匹配程度不盡一致,功能也各有區(qū)別,對(duì)不同的應(yīng)用系統(tǒng)有不同的適應(yīng)性 90.第90頁(yè),共134頁(yè)。14.3 對(duì)象存儲(chǔ)方案和數(shù)據(jù)接口的設(shè)計(jì)策略 針對(duì)三種數(shù)據(jù)管理系統(tǒng)文件系統(tǒng)RDBMSOODBMS對(duì)象存儲(chǔ)方案如何把對(duì)象映射到數(shù)據(jù)管理系統(tǒng)數(shù)據(jù)接口部分的設(shè)計(jì)策略如何設(shè)計(jì)數(shù)據(jù)接口部分的對(duì)象類(lèi)分別討論如何對(duì)問(wèn)題域部分做必要的修改91.第91頁(yè),共134頁(yè)。(一)針對(duì)文件系統(tǒng)的設(shè)計(jì) 應(yīng)用系統(tǒng)數(shù)據(jù)接口文件系統(tǒng)對(duì)象對(duì)象對(duì)象1、對(duì)象在內(nèi)存空間和文件空間的映像如何看待用文件系統(tǒng)存儲(chǔ)對(duì)象應(yīng)用
47、系統(tǒng)仍然是面向?qū)ο蟮闹皇怯梦募到y(tǒng)存儲(chǔ)對(duì)象的數(shù)據(jù)92.第92頁(yè),共134頁(yè)。從應(yīng)用系統(tǒng)的對(duì)象到文件記錄的不同映射方式類(lèi)A對(duì)象1數(shù)據(jù)接口實(shí)例化記錄1記錄2記錄n對(duì)象2對(duì)象n內(nèi)存空間文件系統(tǒng)文件A一一對(duì)應(yīng)的映射方式類(lèi)A數(shù)據(jù)接口實(shí)例化記錄1記錄2記錄n對(duì)象內(nèi)存空間文件系統(tǒng)文件A非一一對(duì)應(yīng)的映射方式93.第93頁(yè),共134頁(yè)。2、對(duì)象在文件中的存放策略 1)基本策略把由每個(gè)類(lèi)直接定義、需要持久存儲(chǔ)的全部對(duì)象實(shí)例存放在一個(gè)文件中;每個(gè)對(duì)象實(shí)例的全部屬性作為一個(gè)存儲(chǔ)單元,占用該文件的一個(gè)記錄。 如何理解“由一個(gè)類(lèi)直接定義的”對(duì)象實(shí)例另一種策略一個(gè)結(jié)構(gòu)用一個(gè)文件浪費(fèi)空間模糊了對(duì)象分類(lèi)關(guān)系使操作復(fù)雜化 人員姓
48、名教職工職稱專業(yè)研究生學(xué)號(hào)班級(jí)專業(yè)在職研究生在職單位 例:94.第94頁(yè),共134頁(yè)。2)提高檢索效率 在對(duì)象和文件記錄之間建立有規(guī)律的映射關(guān)系對(duì)象名或關(guān)鍵字呈線性規(guī)律 按對(duì)象名或關(guān)鍵字的順序形成文件記錄給出對(duì)象名稱或關(guān)鍵字,快速地計(jì)算出它的存放位置 對(duì)象名稱或關(guān)鍵字可以比較和排序 按關(guān)鍵字順序安排記錄,檢索時(shí)采用折半查找法建立按對(duì)象名稱或者按關(guān)鍵字排序的索引表,通過(guò)該表中的記錄指針找到相應(yīng)的記錄其他措施如散列表、倒排表、二叉排序樹(shù)等等95.第95頁(yè),共134頁(yè)。3、設(shè)計(jì)數(shù)據(jù)接口部分的對(duì)象類(lèi) 對(duì)象存取器對(duì)象存儲(chǔ)對(duì)象恢復(fù)類(lèi)名-文件名對(duì)照表 負(fù)責(zé)對(duì)象的存儲(chǔ)與恢復(fù)換算型對(duì)象存取器*對(duì)象存儲(chǔ)*對(duì)象恢復(fù)
49、查找型對(duì)象存取器*對(duì)象存儲(chǔ)*對(duì)象恢復(fù)索引型對(duì)象存取器*對(duì)象存儲(chǔ)*對(duì)象恢復(fù)索引表查記錄指針文件記錄索引特殊類(lèi)提供不同的查找功能96.第96頁(yè),共134頁(yè)。4、問(wèn)題域部分的修改 類(lèi)B 類(lèi)D 問(wèn)題域部分?jǐn)?shù)據(jù)接口部分類(lèi)A類(lèi)C對(duì)象存取器 每個(gè)持久對(duì)象類(lèi)都要增加請(qǐng)求存儲(chǔ)和恢復(fù)所需的屬性和操作,以便向數(shù)據(jù)接口部分發(fā)出請(qǐng)求類(lèi)名 請(qǐng)求保存請(qǐng)求恢復(fù) 類(lèi)名 請(qǐng)求保存請(qǐng)求恢復(fù) 類(lèi)名 請(qǐng)求保存請(qǐng)求恢復(fù) 持久對(duì)象請(qǐng)求保存請(qǐng)求恢復(fù) 類(lèi)名 增加一個(gè)一般類(lèi)來(lái)定義它們,作為共同協(xié)議,供所有的持久對(duì)象類(lèi)繼承 97.第97頁(yè),共134頁(yè)。(二)針對(duì)RDBMS的設(shè)計(jì) 應(yīng)用系統(tǒng)數(shù)據(jù)接口RDBMS對(duì)象對(duì)象對(duì)象1、對(duì)象及其對(duì)數(shù)據(jù)庫(kù)的使用如何
50、看待用 RDBMS存儲(chǔ)對(duì)象應(yīng)用系統(tǒng)仍然是面向?qū)ο蟮闹皇怯藐P(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)對(duì)象的數(shù)據(jù)關(guān)系數(shù)據(jù)庫(kù)98.第98頁(yè),共134頁(yè)。從應(yīng)用系統(tǒng)的對(duì)象到數(shù)據(jù)庫(kù)表元組的不同映射方式類(lèi)A對(duì)象1實(shí)例化元組1元組2元組n對(duì)象2對(duì)象n內(nèi)存空間數(shù)據(jù)庫(kù)表A一一對(duì)應(yīng)的映射方式數(shù)據(jù)接口RDBMS類(lèi)A數(shù)據(jù)接口實(shí)例化元組1元組2元組n對(duì)象內(nèi)存空間數(shù)據(jù)庫(kù)表A非一一對(duì)應(yīng)的映射方式RDBMS99.第99頁(yè),共134頁(yè)。使用RDBMS和使用文件系統(tǒng)的不同(1)系統(tǒng)以不同方式使用數(shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)對(duì)象 或 使用其普通數(shù)據(jù)原因:數(shù)據(jù)庫(kù)的共享性 (2)可能需要數(shù)據(jù)格式轉(zhuǎn)換原因:關(guān)系數(shù)據(jù)庫(kù)對(duì)規(guī)范化的要求 對(duì)象從數(shù)據(jù)庫(kù)獲得其他數(shù)據(jù)關(guān)系數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)
51、對(duì)象數(shù)據(jù)接口對(duì)象RDBMS對(duì)象對(duì)象保存與恢復(fù)100.第100頁(yè),共134頁(yè)。2、對(duì)象在數(shù)據(jù)庫(kù)中的存放策略對(duì)象數(shù)據(jù)的規(guī)范化修改類(lèi)圖確定關(guān)鍵字從類(lèi)圖映射到數(shù)據(jù)庫(kù)表類(lèi)表類(lèi)的屬性表的屬性對(duì)象實(shí)例行對(duì)一般-特殊結(jié)構(gòu)、整體-部分結(jié)構(gòu)、關(guān)聯(lián)等OO概念的處理101.第101頁(yè),共134頁(yè)。第一范式(1NF):關(guān)系(表)的每個(gè)屬性都必須是原子的。就是說(shuō),關(guān)系的每個(gè)屬性都是單值的,它不再包含內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。第二范式(2NF):如果一個(gè)關(guān)系的所有非關(guān)鍵字屬性都只能依賴整個(gè)關(guān)鍵字(而不是依賴關(guān)鍵字的一部分屬性),則該關(guān)系在第二范式中。第三范式(3NF):如果一個(gè)關(guān)系在第二范式中,而且沒(méi)有傳遞依賴,則該關(guān)系在第三范式中
52、。Boyce-Codd范式(BCNF):如果一個(gè)關(guān)系的每個(gè)決定因素都是候選關(guān)鍵字,則該關(guān)系在BCNF中。第四范式(4NF):如果一個(gè)關(guān)系在BCNF中,而且沒(méi)有多值依賴,則該關(guān)系在第四范式中。1)對(duì)象數(shù)據(jù)的規(guī)范化關(guān)系數(shù)據(jù)庫(kù)要求存入其中的數(shù)據(jù)符合一定的規(guī)范,并且用范式衡量規(guī)范化程度的高低。 是由關(guān)系數(shù)據(jù)模型決定的,是對(duì)一個(gè)關(guān)系的起碼要求 主要為了解決關(guān)系中的函數(shù)依賴帶來(lái)的更新異常問(wèn)題。也可以減少數(shù)據(jù)冗余,但更新異常問(wèn)題更為重要 主要為了減少數(shù)據(jù)冗余102.第102頁(yè),共134頁(yè)。未必規(guī)范化程度越高越好規(guī)范化的代價(jià)響系統(tǒng)的可理解性,增加了多表查詢和連接操作面向?qū)ο蠓椒ㄅc關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化目標(biāo)既有相違
53、的一面,又有相符的一面 以對(duì)象為中心組織數(shù)據(jù)與操作,恰恰有助于達(dá)到第2NF、3NF、BCNF和4NF要求的條件 對(duì)象的數(shù)據(jù)結(jié)構(gòu)常常連1NF的要求都不能滿足 例如“通信地址”屬性103.第103頁(yè),共134頁(yè)。HOUSING(SID,Building,F(xiàn)ee)Key:SIDFunctional Dependencies: BuildingFee SIDBuildingFee100Randolph1200150Ingersoll1100200Randolph1200250Pitkin1100300Randolph1200SID Building Fee例1:一個(gè)不滿足3NF的關(guān)系及其規(guī)范化 STU
54、-HOUSING(SID,Building)Key:SID SID Building100Randolph150Ingersoll200Randolph250Pitkin300RandolphBLDG-FEE(Building,F(xiàn)ee)Key:Building Building FeeRandolph1200Ingersoll1100Pitkin1100從面向?qū)ο蟮挠^點(diǎn)看應(yīng)該定義“學(xué)生”和“建筑物”兩個(gè)類(lèi)恰好與規(guī)范化要求吻合學(xué)生住所建筑物房費(fèi)分析原因:把描述不同事物的數(shù)據(jù)組織在一起摘自:施伯樂(lè)等 譯,美 David M. Kroenke 著. 數(shù)據(jù)庫(kù)處理. 北京:電子工業(yè)出版社,1998104
55、.第104頁(yè),共134頁(yè)。例2:一個(gè)不滿足4NF的關(guān)系及其規(guī)范化 STUDENT(SID,Major,Activity)Key:(SID,Major,Activity) SID Major Activity100MusicSwimming100AccountingSwimming100MusicTennis100AccountingTennis150MathJoggingSTU-MAJOR(SID,Major)Key:(SID,Major) SID Major 100Music100Accounting150MathSTU-ACT(SID,Activity)Key:(SID,Activity)
56、 SID Activity100Skiing100Swimming100Tennis150Jogging105.第105頁(yè),共134頁(yè)。SIDMajor1111*課程學(xué)生活動(dòng)學(xué)生-課程學(xué)生-活動(dòng)SIDActivity*課程學(xué)生活動(dòng)用面向?qū)ο蠓椒ǖ玫降姆诸?lèi)有三類(lèi)對(duì)象化解多對(duì)多關(guān)聯(lián)之后的結(jié)果為什么多出來(lái)3個(gè)類(lèi)?106.第106頁(yè),共134頁(yè)。用面向?qū)ο蠓椒ㄎ茨鼙苊夂瘮?shù)依賴的例子職工職工編號(hào)月工資所得稅 可以不通過(guò)規(guī)范化解決問(wèn)題討論為什么107.第107頁(yè),共134頁(yè)。規(guī)范化的兩種策略保持類(lèi)圖,對(duì)表規(guī)范化缺點(diǎn)是對(duì)象的存儲(chǔ)與恢復(fù)必須經(jīng)過(guò)數(shù)據(jù)格式的轉(zhuǎn)換 修改類(lèi)圖對(duì)問(wèn)題域的映射可能不像規(guī)范化之前那么直接。
57、但是這個(gè)問(wèn)題并不嚴(yán)重 利大于弊采用第二種策略按規(guī)范化的要求修改類(lèi)圖中的類(lèi)作為問(wèn)題域部分的設(shè)計(jì)內(nèi)容之一2)修改類(lèi)圖108.第108頁(yè),共134頁(yè)。3)確定關(guān)鍵字 用較少的屬性作關(guān)鍵字,將為含關(guān)鍵字的操作帶來(lái)方便 常用的技巧引入編號(hào)最終效果:經(jīng)過(guò)必要的規(guī)范化處理和關(guān)鍵字處理之后,得到一個(gè)符合數(shù)據(jù)庫(kù)設(shè)計(jì)要求的類(lèi)圖,其中每個(gè)需要映射到數(shù)據(jù)庫(kù)表的類(lèi),都滿足如下條件:至少滿足第一范式滿足所期望的更高范式有一組屬性被確定為關(guān)鍵字109.第109頁(yè),共134頁(yè)。4)從類(lèi)圖到數(shù)據(jù)庫(kù)的映射(1)映射策略概要對(duì)每個(gè)要在數(shù)據(jù)庫(kù)中存儲(chǔ)對(duì)象實(shí)例的類(lèi),都建立一個(gè)數(shù)據(jù)庫(kù)表類(lèi)的每個(gè)屬性(包括從所有祖先繼承來(lái)的屬性)都對(duì)應(yīng)表的一
58、個(gè)屬性(列)名稱、數(shù)據(jù)類(lèi)型完全相同其中一組屬性被確定為關(guān)鍵字類(lèi)的每個(gè)對(duì)象實(shí)例將對(duì)應(yīng)表的一個(gè)元組(行)110.第110頁(yè),共134頁(yè)。(2)對(duì)OO概念的處理對(duì)一般-特殊結(jié)構(gòu)的處理抽象類(lèi)不對(duì)應(yīng)數(shù)據(jù)庫(kù)表特殊類(lèi)包括自己定義的和繼承來(lái)的所有屬性人員姓名出生年月教職工職稱從事專業(yè)研究生學(xué)號(hào)班級(jí)攻讀專業(yè)在職研究生在職單位 例:5個(gè)屬性4個(gè)屬性8個(gè)屬性不建表111.第111頁(yè),共134頁(yè)。在關(guān)聯(lián)連接線一端的類(lèi)中定義一個(gè)(或一組)屬性,表明另一端類(lèi)的哪個(gè)對(duì)象實(shí)例與本端的對(duì)象實(shí)例相關(guān)聯(lián)該屬性(屬性組)應(yīng)該和另一端的關(guān)鍵字相同如果另一端的關(guān)鍵字包含多個(gè)屬性,本端也要定義同樣的多個(gè)屬性在對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中,一個(gè)表以該屬
59、性(或?qū)傩越M)作為外鍵,另一個(gè)表以它作為主鍵,使前者的元組通過(guò)其屬性值指向后者的元組 對(duì)關(guān)聯(lián)的處理一對(duì)一的關(guān)聯(lián) AB0.11從B端指向A端,則B表的外鍵對(duì)有些元組可能是空值(NULL)從A端指向B端則不存在這一問(wèn)題 表A表B112.第112頁(yè),共134頁(yè)。一對(duì)多的關(guān)聯(lián)從多重性約束為“m”的一端指向多重性約束為 “1”的一端 AB1*映射為數(shù)據(jù)庫(kù)表后,A表以B表的主鍵作為自己的外鍵表A表B113.第113頁(yè),共134頁(yè)。多對(duì)多的關(guān)聯(lián)AB*先在類(lèi)圖中化為兩個(gè)一對(duì)多的關(guān)聯(lián)AC11B*114.第114頁(yè),共134頁(yè)。多對(duì)多的關(guān)聯(lián)AB*先在類(lèi)圖中化為兩個(gè)一對(duì)多的關(guān)聯(lián)AC11B*C表含有兩個(gè)外鍵,一個(gè)是A
60、的主鍵,一個(gè)是B的主鍵然后將每個(gè)類(lèi)映射到一個(gè)數(shù)據(jù)庫(kù)表表A表B115.第115頁(yè),共134頁(yè)。對(duì)象類(lèi)轉(zhuǎn)化為數(shù)據(jù)庫(kù)表的三種情況:表中只包含描述本類(lèi)事物自身特征的屬性表中既包含描述本類(lèi)事物自身特征的屬性,也包含作為外鍵指向另一個(gè)表的元組的屬性表中只包含作為外鍵指向其它表的元組的屬性 116.第116頁(yè),共134頁(yè)。對(duì)整體-部分結(jié)構(gòu)的處理分為緊密、固定的方式 和 松散、靈活的方式二者的區(qū)別將通過(guò)數(shù)據(jù)庫(kù)表的設(shè)計(jì)體現(xiàn)出來(lái) 緊密、固定方式:把部分對(duì)象類(lèi)的屬性合并到整體對(duì)象類(lèi)中松散、靈活方式:整體對(duì)象類(lèi)和部分對(duì)象類(lèi)分別建立一個(gè)表通過(guò)外鍵表現(xiàn)整體部分關(guān)系117.第117頁(yè),共134頁(yè)。A1B1A0.1B1A*B
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國(guó)無(wú)紡布面罩行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)旋轉(zhuǎn)液壓過(guò)濾器行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析研究報(bào)告
- 2025-2030中國(guó)新能源物流車(chē)行業(yè)深度調(diào)研及投資前景預(yù)測(cè)研究報(bào)告
- 2025-2030中國(guó)文胸行業(yè)市場(chǎng)深度調(diào)研與發(fā)展策略研究報(bào)告
- 2025-2030中國(guó)數(shù)據(jù)線行業(yè)市場(chǎng)發(fā)展分析及投資前景預(yù)測(cè)研究報(bào)告
- 2025-2030中國(guó)數(shù)字雜貨銷(xiāo)售行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030中國(guó)數(shù)字化校園建設(shè)行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 2025-2030中國(guó)救生浮具行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 2025-2030中國(guó)撅嘴行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)接觸網(wǎng)作業(yè)車(chē)行業(yè)競(jìng)爭(zhēng)策略分析與項(xiàng)目投資專項(xiàng)咨詢報(bào)告
- 基坑工程施工驗(yàn)收記錄表
- FZ∕T 62044-2021 抗菌清潔巾
- DB33∕T 628.1-2021 交通建設(shè)工程工程量清單計(jì)價(jià)規(guī)范 第1部分:公路工程
- 《今天我當(dāng)小法官》教學(xué)設(shè)計(jì)和反思-精選文檔
- 食品添加劑歐盟編碼純中文版
- 德馬格及科尼電動(dòng)葫蘆培訓(xùn)
- 質(zhì)量部人員崗位技能矩陣圖
- 腕踝針護(hù)理培訓(xùn)PART
- 瀝青項(xiàng)目運(yùn)營(yíng)方案參考范文
- 海天注塑機(jī)技術(shù)參數(shù)表
- 機(jī)電一體化技術(shù)專業(yè)實(shí)踐教學(xué)評(píng)價(jià)體系
評(píng)論
0/150
提交評(píng)論