版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
4數(shù)據(jù)建模
本章針對(duì)系統(tǒng)中的數(shù)據(jù)建模進(jìn)行專門分析。主要介紹數(shù)據(jù)模型的概念、E-R圖的用法及UML用于數(shù)據(jù)建模階段的規(guī)范。4.1數(shù)據(jù)模型
4.2實(shí)體關(guān)系(E-R)模型
4.3UML用于數(shù)據(jù)建模階段的規(guī)范
4.4教務(wù)管理系統(tǒng)分析示例
4.5實(shí)體關(guān)系圖的驗(yàn)證
本章導(dǎo)讀本章目錄4.1數(shù)據(jù)模型 4.1.1基于記錄的邏輯模型 4.1.2基于對(duì)象的邏輯模型 4.2實(shí)體關(guān)系(E-R)模型 4.2.1實(shí)體之間的基本關(guān)系 4.2.2實(shí)體關(guān)系圖 4.3UML用于數(shù)據(jù)建模階段的規(guī)范 4.3.1實(shí)體的表示(類的表示)4.3.2聯(lián)系的表示 4.3.3數(shù)據(jù)字典和元數(shù)據(jù)的表示 4.4教務(wù)管理系統(tǒng)分析示例4.4.1示例分析 4.4.2示例的物理模型 4.5實(shí)體關(guān)系圖的驗(yàn)證本章小結(jié)習(xí)題 §4.1數(shù)據(jù)模型數(shù)據(jù)模型(DataModel)是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,是用來描述數(shù)據(jù)的一組概念和定義,是建立數(shù)據(jù)庫的基礎(chǔ)。通常需要描述數(shù)據(jù)的組織結(jié)構(gòu)、對(duì)數(shù)據(jù)的操作和數(shù)據(jù)的完整性約束。數(shù)據(jù)模型大體上可以分為兩大類:(1)基于記錄的邏輯模型常見的有:層次模型、網(wǎng)狀模型和關(guān)系模型。它們都是以數(shù)據(jù)記錄和數(shù)據(jù)項(xiàng)作為基本數(shù)據(jù)結(jié)構(gòu)的。(2)基于對(duì)象的邏輯模型常見的有:實(shí)體聯(lián)系模型(E-R模型)和面向?qū)ο髷?shù)據(jù)模型等。
§4.1數(shù)據(jù)模型4.1.1基于紀(jì)錄的邏輯模型1層次數(shù)據(jù)模型2網(wǎng)狀數(shù)據(jù)模型3關(guān)系數(shù)據(jù)模型4.1.2基于對(duì)象的邏輯模型1對(duì)象和對(duì)象標(biāo)識(shí)符2屬性和方法3封裝和消息傳遞4類和實(shí)例5類層次結(jié)構(gòu)和繼承6持久性和版本7多態(tài)、重載、重定義與動(dòng)態(tài)聯(lián)編8與關(guān)系數(shù)據(jù)模型的比較§4.1.1基于紀(jì)錄的邏輯模型一、層次數(shù)據(jù)模型
1.基本概念和結(jié)構(gòu)
層次模型是按照層次結(jié)構(gòu)的形式組織數(shù)據(jù)庫中數(shù)據(jù)的數(shù)據(jù)模型,即用樹型結(jié)構(gòu)表示實(shí)體集與實(shí)體集之間的聯(lián)系。其中用結(jié)點(diǎn)表示實(shí)體集,結(jié)點(diǎn)之間聯(lián)系的基本方式是1:n。
層次數(shù)據(jù)模型是一棵樹,其數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)為:①在每棵樹中僅有根結(jié)點(diǎn)無雙親。②除根結(jié)點(diǎn)外的任何結(jié)點(diǎn)有且僅有一個(gè)雙親結(jié)點(diǎn),但可以有任意個(gè)子女結(jié)點(diǎn)。③樹中無子女的結(jié)點(diǎn)稱為葉結(jié)點(diǎn)?!?.1.1基于紀(jì)錄的邏輯模型一、層次數(shù)據(jù)模型
2.?dāng)?shù)據(jù)操作1)查詢操作在層次數(shù)據(jù)模型中,若要查找一個(gè)記錄,須從根結(jié)點(diǎn)開始,按給定條件沿一個(gè)層次路徑查找所需要的記錄。2)更新操作層次數(shù)據(jù)模型的更新操作包括數(shù)據(jù)插入、數(shù)據(jù)刪除和數(shù)據(jù)修改?!?.1.1基于紀(jì)錄的邏輯模型一、層次數(shù)據(jù)模型3.?dāng)?shù)據(jù)約束(1)除了根結(jié)點(diǎn)外,任何其他結(jié)點(diǎn)不能離開其雙親結(jié)點(diǎn)而孤立存在。這條約束表明了在插入一個(gè)子女記錄時(shí),必須與一個(gè)約束雙親記錄相聯(lián)系,否則不能插入;在刪除一個(gè)記錄時(shí),其子女記錄也將自動(dòng)被刪除。這一約束為數(shù)據(jù)操作造成了不便。(2)層次數(shù)據(jù)模型所體現(xiàn)的記錄之間的聯(lián)系只限于二元1:n或1:1的聯(lián)系,這約束了用層次模型描述現(xiàn)實(shí)世界的能力。對(duì)于現(xiàn)實(shí)世界中存在的二元m:n聯(lián)系和多元m:n:p等復(fù)雜聯(lián)系,就不能用層次模型直接進(jìn)行表達(dá)了。例如,學(xué)生記錄型和課程記錄型是一個(gè)m:n聯(lián)系,將無法用層次模型直接表達(dá)學(xué)生與課程之間的多對(duì)多聯(lián)系。如圖所示?!?.1.1基于紀(jì)錄的邏輯模型一、層次數(shù)據(jù)模型
4.層次數(shù)據(jù)模型的優(yōu)缺點(diǎn)層次數(shù)據(jù)模型的優(yōu)點(diǎn)主要有:(1)層次模型結(jié)構(gòu)簡單、層次分明,便于在計(jì)算機(jī)內(nèi)實(shí)現(xiàn)。(2)在層次結(jié)構(gòu)中,從根結(jié)點(diǎn)到樹中任一結(jié)點(diǎn)均存在一條唯一的層次路徑,這為有效地進(jìn)行數(shù)據(jù)操縱提供了條件。(3)在層次結(jié)構(gòu)中除根結(jié)點(diǎn)外所有結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn),故實(shí)體集之間的聯(lián)系可用雙親結(jié)點(diǎn)唯一地表示,因此層次模型DBMS對(duì)層次結(jié)構(gòu)的數(shù)據(jù)有較高的處理效率。(4)層次數(shù)據(jù)模型提供了良好的完整性支持。
層次數(shù)據(jù)模型的缺點(diǎn)主要有:(1)層次數(shù)據(jù)模型缺乏直接表達(dá)現(xiàn)實(shí)世界中非層次型結(jié)構(gòu)的復(fù)雜聯(lián)系,如多對(duì)多聯(lián)系。(2)對(duì)插入或刪除操作有較多的限制。(3)查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)?!?.1.1基于紀(jì)錄的邏輯模型二、網(wǎng)狀數(shù)據(jù)模型
1.基本概念和結(jié)構(gòu)
1)記錄與數(shù)據(jù)項(xiàng)(DataItems)
與層次數(shù)據(jù)模型類似,在網(wǎng)狀數(shù)據(jù)模型中,也是以記錄為數(shù)據(jù)的存儲(chǔ)單位。記錄包含若干數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)相當(dāng)于字段,但與層次數(shù)據(jù)模型中的字段不同,網(wǎng)狀數(shù)據(jù)模型中的數(shù)據(jù)項(xiàng)不一定是簡單的數(shù)據(jù)類型,也可以是多值的和復(fù)合的數(shù)據(jù)。2)系(Set)在網(wǎng)狀數(shù)據(jù)模型中,數(shù)據(jù)間的聯(lián)系用系表示。系代表了兩記錄之間的1:n聯(lián)系,系用一條弧表示,箭頭指向“n”方。“1”方的記錄稱首記錄,“n”方的記錄稱屬記錄。如圖所示是簡單的網(wǎng)狀結(jié)構(gòu)的例子?!?.1.1基于紀(jì)錄的邏輯模型二、網(wǎng)狀數(shù)據(jù)模型
1.基本概念和結(jié)構(gòu)
3)系型(1)單屬系型單屬系型由主記錄型和單一的屬記錄型組成。例如,班級(jí)記錄型和學(xué)生記錄型組成的班級(jí)-學(xué)生系是單屬系型。如圖所示。(2)多屬系型多屬系型中包含三個(gè)以上記錄型,其中一個(gè)為首記錄型,其余為屬記錄型。例如,在學(xué)校中有教師和職工,他們有不同的記錄結(jié)構(gòu),可形成兩個(gè)記錄類型。當(dāng)建立一個(gè)學(xué)校――教職工系型時(shí),可將教師記錄型和職工記錄型作為學(xué)校的兩個(gè)屬記錄型。如圖4.8所示。(3)奇異系型奇異系型是一種只有屬記錄型而無首記錄型的一種特殊系型。例如,一個(gè)單位的所有部門可以組成一個(gè)無首記錄型的奇異系型。如圖所示?!?.1.1基于紀(jì)錄的邏輯模型二、網(wǎng)狀數(shù)據(jù)模型
1.基本概念和結(jié)構(gòu)
4)聯(lián)系記錄對(duì)于二元m:n聯(lián)系和多元m:n:p聯(lián)系也不能直接用系來表示,而是采用聯(lián)系記錄這個(gè)輔助數(shù)據(jù)結(jié)構(gòu)來將實(shí)體集間的m:n聯(lián)系轉(zhuǎn)換成兩個(gè)1:n聯(lián)系?!?.1.1基于紀(jì)錄的邏輯模型二、網(wǎng)狀數(shù)據(jù)模型
1.基本概念和結(jié)構(gòu)2.?dāng)?shù)據(jù)操作1)查詢操作查詢操作主要是通過查找語句FIND和取數(shù)語句GET配合使用實(shí)現(xiàn)的。FIND語句主要是查找定位數(shù)據(jù)庫中滿足條件的記錄為當(dāng)前記錄。GET語句主要是將當(dāng)前記錄取出來供應(yīng)用程序使用。2)更新操作網(wǎng)狀數(shù)據(jù)模型的更新操作分為對(duì)記錄的更新和對(duì)系的更新兩類。§4.1.1基于紀(jì)錄的邏輯模型二、網(wǎng)狀數(shù)據(jù)模型
1.基本概念和結(jié)構(gòu)2.?dāng)?shù)據(jù)操作3.?dāng)?shù)據(jù)約束(1)一個(gè)記錄值不能出現(xiàn)在同一個(gè)系型的多個(gè)系值中。(2)一個(gè)記錄型不能同時(shí)為同一個(gè)系的首記錄和屬記錄。(3)任一個(gè)系值有且僅有一個(gè)首記錄值,但可以有任意個(gè)屬記錄值。(4)每個(gè)系型有且僅有一個(gè)首記錄型,但可以有多個(gè)屬記錄型,且屬記錄型必須至少有一個(gè)。§4.1.1基于紀(jì)錄的邏輯模型二、網(wǎng)狀數(shù)據(jù)模型
1.基本概念和結(jié)構(gòu)2.?dāng)?shù)據(jù)操作3.?dāng)?shù)據(jù)約束4.網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點(diǎn)網(wǎng)狀數(shù)據(jù)模型的優(yōu)點(diǎn)主要有:(1)能夠更為直接地描述現(xiàn)實(shí)世界。(2)具有存取效率高等良好性能。
網(wǎng)狀數(shù)據(jù)模型的缺點(diǎn)主要有:(1)數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,不便于終端用戶掌握。(2)其數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操作語言(DML)較為復(fù)雜,用戶掌握使用較為困難。(3)數(shù)據(jù)獨(dú)立性較差?!?.1.1基于紀(jì)錄的邏輯模型三、關(guān)系數(shù)據(jù)模型
1.基本概念1)屬性和域在現(xiàn)實(shí)世界中,要描述一個(gè)事物,常常取其若干特征來表示,這些特征稱為屬性。例如,大學(xué)生可用姓名、學(xué)號(hào)、性別、系別等屬性來描述。每個(gè)屬性對(duì)應(yīng)一個(gè)值的集合,作為其可以取值的范圍,稱為屬性的域。例如姓名的域是所有合法姓名的集合;性別的域是{男,女}等。2)關(guān)系和元組一個(gè)對(duì)象可以用一個(gè)或多個(gè)關(guān)系來表示。關(guān)系就是定義在它的所有屬性域上的多元關(guān)系。設(shè)有關(guān)系R,它有屬性A1、A2、…、An,其對(duì)應(yīng)的域分別為D1、D2、…、Dn,則關(guān)系R可表示為:
R=(A1/D1,A2/D2,…,An/Dn)或R=(A1,A2,…,An)
元組是關(guān)系中各個(gè)屬性的一個(gè)取值的集合。3)鍵關(guān)系中的某一屬性或?qū)傩越M的值唯一地決定其他所有屬性的值,也就是唯一決定一個(gè)元組,而其任何真子集無此性質(zhì),則稱這個(gè)屬性或?qū)傩越M為該關(guān)系的候選鍵,簡稱鍵?!?.1.1基于紀(jì)錄的邏輯模型三、關(guān)系數(shù)據(jù)模型
1.基本概念2.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)1)關(guān)系數(shù)據(jù)模型的描述功能(1)用二維表格表示實(shí)體集及其屬性(2)用二維表描述實(shí)體集間的聯(lián)系§4.1.1基于紀(jì)錄的邏輯模型三、關(guān)系數(shù)據(jù)模型
1.基本概念2.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)1)關(guān)系數(shù)據(jù)模型的描述功能
2)關(guān)系的性質(zhì)關(guān)系是一個(gè)簡單的二維表,其主要性質(zhì)為:(1)關(guān)系是一個(gè)二維表,表中的每一行對(duì)應(yīng)一個(gè)元組,表中的每一列有一個(gè)屬性名且對(duì)應(yīng)一個(gè)域。(2)列是同質(zhì)的,即每一列的值來自同一域。(3)關(guān)系中的每一個(gè)屬性是不可再分解的,即所有域都應(yīng)是原子數(shù)據(jù)的集合。(4)關(guān)系中任意兩個(gè)元組不能完全相同。(5)關(guān)系中行的排列順序、列的排列順序是無關(guān)緊要的。(6)每個(gè)關(guān)系都由關(guān)鍵字的屬性集唯一標(biāo)識(shí)各個(gè)元組?!?.1.1基于紀(jì)錄的邏輯模型三、關(guān)系數(shù)據(jù)模型
1.基本概念2.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)1)關(guān)系數(shù)據(jù)模型的描述功能
2)關(guān)系的性質(zhì)3)關(guān)系模式關(guān)系模式是關(guān)系中信息內(nèi)容結(jié)構(gòu)的描述。它包括關(guān)系名、屬性名、每個(gè)屬性列的取值集合、數(shù)據(jù)完整性約束條件以及各屬性間固有的數(shù)據(jù)依賴關(guān)系等??梢员硎緸椋篟(U,D,DOM,I,∑)其中:R為關(guān)系名;U為組成關(guān)系的全部屬性的集合;D是U中屬性取值的值域;DOM是屬性列到域的映射,即DOM:U→D;I是一組完整性約束條件;∑是屬性集間的一組數(shù)據(jù)依賴。通常,可用R(U)來簡化地表示關(guān)系模式。例如,描述大學(xué)生的關(guān)系模式表示為:STUDENT(學(xué)號(hào),姓名,性別,年齡,所在系,籍貫,入學(xué)年份)§4.1.1基于紀(jì)錄的邏輯模型三、關(guān)系數(shù)據(jù)模型
1.基本概念2.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)3.?dāng)?shù)據(jù)操作1)關(guān)系代數(shù)關(guān)系代數(shù)由一組以關(guān)系作為運(yùn)算對(duì)象的特定的關(guān)系運(yùn)算所組成,用戶通過這組運(yùn)算對(duì)一個(gè)或多個(gè)關(guān)系進(jìn)行“組合”與“分割”,從而得到所需要的新關(guān)系。關(guān)系代數(shù)又分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。(1)傳統(tǒng)的集合運(yùn)算主要包括并運(yùn)算、差運(yùn)算、交運(yùn)算和笛卡兒乘積運(yùn)算等。(2)專門的關(guān)系運(yùn)算包括選擇運(yùn)算、投影運(yùn)算、連接運(yùn)算、自然連接運(yùn)算、半連接運(yùn)算、自然半連接運(yùn)算和除運(yùn)算等。其中:{σ,Π,∪,-,×}五種運(yùn)算為關(guān)系代數(shù)的基本運(yùn)算,組成了一個(gè)完備的操作集,任何其他關(guān)系代數(shù)操作都可以用這五種操作來表示。2)關(guān)系演算除了用關(guān)系代數(shù)表示關(guān)系操作外,還可以用謂詞演算來表達(dá)關(guān)系的操作,稱為關(guān)系演算。關(guān)系演算又可分為元組關(guān)系演算和域關(guān)系演算。§4.1.1基于紀(jì)錄的邏輯模型三、關(guān)系數(shù)據(jù)模型
1.基本概念2.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)3.?dāng)?shù)據(jù)操作4.?dāng)?shù)據(jù)約束1)域完整性約束域完整性約束限定了屬性值的取值范圍,并由語義決定一個(gè)屬性值是否允許為空值NULL。2)實(shí)體完整性約束每個(gè)關(guān)系應(yīng)有一個(gè)主鍵,每個(gè)元組的主鍵的值應(yīng)是唯一的。主鍵的值不能為NULL,否則無法區(qū)分和識(shí)別元組。3)參照完整性約束參照完整性約束是不同關(guān)系間的約束,當(dāng)存在關(guān)系間的引用時(shí),要求不能引用不存在的元組?!?.1.1基于紀(jì)錄的邏輯模型三、關(guān)系數(shù)據(jù)模型
1.基本概念2.關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)3.?dāng)?shù)據(jù)操作4.?dāng)?shù)據(jù)約束5.關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)關(guān)系數(shù)據(jù)模型的優(yōu)點(diǎn)主要有:(1)關(guān)系數(shù)據(jù)模型有堅(jiān)實(shí)的理論基礎(chǔ)。(2)在關(guān)系數(shù)據(jù)模型中,二維表不僅能表示實(shí)體集,而且能方便地表示實(shí)體集間的聯(lián)系。(3)關(guān)系數(shù)據(jù)模型中數(shù)據(jù)的表示方法統(tǒng)一、簡單,便于計(jì)算機(jī)實(shí)現(xiàn),便于用戶使用。(4)數(shù)據(jù)獨(dú)立性高。關(guān)系數(shù)據(jù)模型的缺點(diǎn)主要有:(1)關(guān)系數(shù)據(jù)模型的查詢效率常常不如非關(guān)系數(shù)據(jù)模型。(2)關(guān)系數(shù)據(jù)模型等傳統(tǒng)數(shù)據(jù)模型還存在不能以自然的方式表示實(shí)體集間的聯(lián)系、語義信息不足、數(shù)據(jù)類型過少等弱點(diǎn)。§4.1.2基于對(duì)象的邏輯模型一、對(duì)象和對(duì)象標(biāo)識(shí)符1.對(duì)象在面向?qū)ο髷?shù)據(jù)模型中,所有現(xiàn)實(shí)世界中的實(shí)體都模擬為對(duì)象,小至一個(gè)整數(shù)、字符串,大至一個(gè)公司、一部電影,都可以看成對(duì)象。
2.對(duì)象標(biāo)識(shí)符在OO數(shù)據(jù)模型中,每個(gè)對(duì)象都有一個(gè)系統(tǒng)內(nèi)唯一不變的標(biāo)識(shí)符,稱為對(duì)象標(biāo)識(shí)符(OID)。OID一般是由系統(tǒng)產(chǎn)生,用戶不得修改。OID是區(qū)別對(duì)象的唯一標(biāo)志,與對(duì)象的屬性值無關(guān)。(1)如果兩對(duì)象的屬性值和方法一樣,但OID不同,則仍認(rèn)為是兩個(gè)“相等”而不同的對(duì)象。(2)如果一個(gè)對(duì)象的屬性值修改了,只要其標(biāo)識(shí)符不變,則仍認(rèn)為是同一對(duì)象。因此,OID可看成是對(duì)象的替身,以構(gòu)造更復(fù)雜的對(duì)象?!?.1.2基于對(duì)象的邏輯模型二、屬性和方法1.屬性每個(gè)對(duì)象包含若干屬性,用以描述對(duì)象的狀態(tài)、組成和特性。屬性也是對(duì)象,它又可能包含其他對(duì)象作為其屬性。這種遞歸引用對(duì)象的過程可以繼續(xù)下去,從而組成各種復(fù)雜的對(duì)象。2.方法
除了屬性外,對(duì)象還包含若干方法,用以描述對(duì)象的行為特性。方法又稱為操作,它可以改變對(duì)象的狀態(tài),對(duì)對(duì)象進(jìn)行各種數(shù)據(jù)庫操作。方法的定義與表示包含兩個(gè)部分:一是方法的接口,說明方法的名稱、參數(shù)和結(jié)果的類型;二是方法的實(shí)現(xiàn)部分,是用程序編寫的一個(gè)過程,以實(shí)現(xiàn)方法的功能。
一個(gè)對(duì)象一般是由一組屬性、一組方法,再冠以一個(gè)OID組成。§4.1.2基于對(duì)象的邏輯模型三、封裝和消息傳遞
1.封裝在OO數(shù)據(jù)模型中,系統(tǒng)把一個(gè)對(duì)象的屬性和方法封裝成一個(gè)整體,如圖所示。對(duì)象的封裝性體現(xiàn)在以下幾個(gè)方面:(1)對(duì)象具有清晰的邊界;(2)對(duì)象具有統(tǒng)一的外部接口;(3)對(duì)象的內(nèi)部實(shí)現(xiàn)是不公開的。對(duì)象標(biāo)示符屬性1…屬性n方法1…方法m2.消息傳遞
對(duì)象是封裝的,對(duì)象與外界、對(duì)象與對(duì)象之間的通信一般只能借助于消息。通過把消息傳送給對(duì)象,調(diào)用對(duì)象的相應(yīng)方法,以進(jìn)行相應(yīng)的操作,再以消息形式返回操作的結(jié)果。這種通信機(jī)制稱為消息傳遞。消息一般由操作者、接收者、操作參數(shù)三個(gè)部分組成。對(duì)象、消息之間的關(guān)系如圖所示。§4.1.2基于對(duì)象的邏輯模型四、類和實(shí)例1.類類是具有共同屬性和方法的對(duì)象的集合,這些屬性和方法可以在類中統(tǒng)一說明。同類對(duì)象在數(shù)據(jù)結(jié)構(gòu)和操作性質(zhì)方面具有共性。例如,大學(xué)生、研究生是一些有共同性質(zhì)有對(duì)象,可能抽象為一個(gè)學(xué)生類。如圖所示。2.實(shí)例類中每個(gè)對(duì)象稱為該類的一個(gè)實(shí)例。同一個(gè)類中對(duì)象的屬性名雖然是相同的,但這些屬性的取值會(huì)因各個(gè)實(shí)例而異。如圖所示。研究生
學(xué)生
本科生
S1程宏19計(jì)算機(jī)系類類的實(shí)例§4.1.2基于對(duì)象的邏輯模型五、類層次結(jié)構(gòu)和繼承
1.類層次結(jié)構(gòu)
在類層次結(jié)構(gòu)中,一個(gè)類的下層可以是多個(gè)子類;一個(gè)類的上層也可以有多個(gè)超類。如圖所示是一個(gè)學(xué)校類層次結(jié)構(gòu)的例子。
2.繼承
在類繼承時(shí),可能發(fā)生屬性名和方法名的同名沖突,包括各超類之間的沖突和子類與超類之間的沖突。如圖所示。
§4.1.2基于對(duì)象的邏輯模型六、持久性和版本
1.持久性持久性是指對(duì)象的生存期超過所屬程序的執(zhí)行期。即當(dāng)一個(gè)程序在執(zhí)行過程中產(chǎn)生了一個(gè)持久性的對(duì)象,則在程序執(zhí)行結(jié)束后,此對(duì)象依然存在。持久性程序設(shè)計(jì)為面向?qū)ο髷?shù)據(jù)庫、計(jì)算機(jī)輔助軟件工程(CASE)等提供了支持。2.版本由于每個(gè)對(duì)象都包含一組屬性并具有相應(yīng)的屬性值,當(dāng)為屬性指定一組新值時(shí),就建立了一個(gè)新的版本。因此,同一對(duì)象可產(chǎn)生多個(gè)不同的版本。對(duì)象的版本概念為CAD/CAM、工程數(shù)據(jù)庫、OODB、多媒體數(shù)據(jù)庫、CASE技術(shù)提供了重要支持。§4.1.2基于對(duì)象的邏輯模型七、多態(tài)、重載、重定義與動(dòng)態(tài)聯(lián)編
1.多態(tài)(一名多義)類的方法有相同的接口表示,但允許有不同的多種內(nèi)部實(shí)現(xiàn),這種情況稱為方法的多態(tài)。2.重載(一名多用)在類繼承結(jié)構(gòu)中子類繼承超類的方法,這種繼承往往有多態(tài)性,即子類僅繼承超類的接口表示,但它用自己的實(shí)現(xiàn)手段,這種情況稱為方法重載。3.重定義子類屬性、方法可以替換成與超類不一致的能力稱為重定義功能。便于提高屬性、方法的靈活性。4.動(dòng)態(tài)聯(lián)編方法的多態(tài)性和方法重載在計(jì)算機(jī)中采用動(dòng)態(tài)聯(lián)編的方法來實(shí)現(xiàn),即在應(yīng)用程序執(zhí)行到一定階段后才與方法聯(lián)編。§4.1.2基于對(duì)象的邏輯模型八、與關(guān)系數(shù)據(jù)模型的比較
(1)在關(guān)系數(shù)據(jù)模型中的基本數(shù)據(jù)結(jié)構(gòu)是表,這相當(dāng)于OO數(shù)據(jù)模型中的類;而關(guān)系中的數(shù)據(jù)元組相當(dāng)于OO數(shù)據(jù)模型中的實(shí)例。(2)在關(guān)系數(shù)據(jù)模型中,對(duì)數(shù)據(jù)庫的操作都?xì)w結(jié)為對(duì)關(guān)系的運(yùn)算,而在OO數(shù)據(jù)模型中,對(duì)類層次結(jié)構(gòu)的操作分為兩部分:一是封裝在類內(nèi)的操作即方法;二是類間相互溝通的操作即消息。(3)在關(guān)系數(shù)據(jù)模型中有域、實(shí)體和參照完整性約束,完整性約束條件可以用邏輯公式表示,稱為完整性約束方法。在OO數(shù)據(jù)模型中這些用于約束的公式可以用方法或消息表示,稱為完整性約束消息。
§4.2實(shí)體關(guān)系(E-R)模型
4.2.1實(shí)體之間的基本關(guān)系
1一對(duì)一的關(guān)系(簡記為1:1)
2一對(duì)多的關(guān)系(簡記為1:n)
3多對(duì)多的關(guān)系(簡記為m:n)
4.2.2實(shí)體關(guān)系圖
1E-R圖中的基本元素及其符號(hào)表示
2E-R圖的繪制方法§4.2.1實(shí)體之間的基本關(guān)系一、一對(duì)一的關(guān)系(簡記為1:1)
定義:假設(shè)有實(shí)體E1和實(shí)體E2,從實(shí)體E1中任取一個(gè)元素,一定能在實(shí)體E2中找到一個(gè)元素與之對(duì)應(yīng);反之,從實(shí)體E2中任取一個(gè)元素,也一定能在實(shí)體E1中找到一個(gè)元素對(duì)應(yīng),則稱實(shí)體E1與實(shí)體E2存在一對(duì)一的關(guān)系。例如,對(duì)于某一次乘車來說,“乘客”實(shí)體與“座位”實(shí)體之間就存在一對(duì)一的聯(lián)系。如圖所示?!?.2.1實(shí)體之間的基本關(guān)系二、一對(duì)多的關(guān)系(簡記為1:n)
定義:假設(shè)有實(shí)體E1和實(shí)體E2,從實(shí)體E1中任取一個(gè)元素,可在實(shí)體E2中找到多個(gè)元素與之對(duì)應(yīng);反之,從實(shí)體E2中任取一個(gè)元素,只能在實(shí)體E1中找到一個(gè)元素與之對(duì)應(yīng),則稱實(shí)體E1與實(shí)體E2存在一對(duì)多的關(guān)系。例如,“車間”實(shí)體與“工人”實(shí)體之間就是一對(duì)多的關(guān)系。如圖所示?!?.2.1實(shí)體之間的基本關(guān)系三、多對(duì)多的關(guān)系(簡記為m:n)
定義:假設(shè)有實(shí)體E1和實(shí)體E2,從實(shí)體E1中任取一個(gè)元素,可在實(shí)體E2中找到多個(gè)元素與之對(duì)應(yīng);反之,從實(shí)體E2中任取一個(gè)元素,在實(shí)體E1中也可找到多個(gè)元素與之對(duì)應(yīng),則稱實(shí)體E1與實(shí)體E2存在多對(duì)多的關(guān)系。
例如,“學(xué)生”實(shí)體與“課程”實(shí)體之間的聯(lián)系就是多對(duì)多的關(guān)系。如圖所示?!?.2.2實(shí)體關(guān)系圖
描述實(shí)體之間關(guān)系常用的方法是E-R圖法(entity-relationapproach),即用E-R圖來描述系統(tǒng)中各實(shí)體之間的關(guān)系。我們常把E-R圖稱作實(shí)體關(guān)系模型,是今后數(shù)據(jù)存儲(chǔ)設(shè)計(jì)的基礎(chǔ)。如圖所示。(a)實(shí)體的表示(b)聯(lián)系的表示(c)屬性的表示§4.2.2實(shí)體關(guān)系圖學(xué)生與課程聯(lián)系的E-R圖§4.2.2實(shí)體關(guān)系圖生產(chǎn)管理系統(tǒng)的總E-R圖§4.3UML用于數(shù)據(jù)建模階段的規(guī)范
UML作為一種統(tǒng)一的軟件建模語言,具有廣泛的建模能力。UML立足于對(duì)事物實(shí)體、事物性質(zhì)、事物結(jié)構(gòu)、事物關(guān)系、事物狀態(tài)、事物動(dòng)態(tài)變化過程的全程描述和反映。作為一種建模語言,UML有嚴(yán)密的語法、語義規(guī)范。UML采用一組圖形符號(hào)來描述各原件模型,這些圖形符號(hào)具有簡單、直觀、規(guī)范的特點(diǎn)。4.3.1實(shí)體的表示(類的表示)
4.3.2聯(lián)系的表示
1關(guān)聯(lián)
2泛化關(guān)系
3依賴關(guān)系
4細(xì)化關(guān)系
5對(duì)象圖
4.3.3數(shù)據(jù)字典和元數(shù)據(jù)的表示
1數(shù)據(jù)字典的表示
2元數(shù)據(jù)的表示§4.3.1實(shí)體的表示(類的表示)
類名屬性:類型操作在UML中,類的可視化表示為一個(gè)劃分成3個(gè)格子的長方形,如圖所示。(1)類的名稱
每個(gè)類都必須有一個(gè)名字,用來區(qū)分于其他的類。一般而言,類的名字是名詞,路徑名字是在類名前加包含類的包名。(2)類的屬性
屬性用來描述該類的對(duì)象所具有的特征,該項(xiàng)可省略。
屬性類型表示該屬性的種類,它可以是基本數(shù)據(jù)類型,例如整數(shù)、實(shí)數(shù)、布爾型等,也可以是用戶自定義的類型。每條屬性可以包括屬性的可見性、屬性名稱、類型、缺省值和約束特性。UML描述屬性的語法格式為:[可見性]屬性名[多重性][:類型名][=初值][{約束特性}]其中,可見性表示該屬性對(duì)類以外的元素是否可見,它又分為3種:①公有屬性:能夠被系統(tǒng)中其他任何操作查看、使用和修改,用“+”號(hào)表示。②私有屬性:僅在類內(nèi)部可見,只有類內(nèi)部的操作才能存取該屬性,并且該屬性也不能被其子類使用,用“-”號(hào)表示。③保護(hù)屬性:供類中的操作存取,并且該屬性也能被其子類使用,用“#”號(hào)表示。發(fā)貨單+日期:Date=當(dāng)天日期+客戶名:String-客戶地址:String+貨物名稱:String-管理員:String=SYSTEM-貨物數(shù)量:Integer+取發(fā)貨日期():Date§4.3.1實(shí)體的表示(類的表示)
(3)類的操作對(duì)數(shù)據(jù)的具體處理方法的描述則放在操作部分,操作說明了該類能做些什么工作。操作通常稱為函數(shù),它是類的一個(gè)組成部分,只能作用于該類的對(duì)象上。一個(gè)類可以有任意數(shù)目的操作,也可以沒有操作。每種操作由操作名、參數(shù)表、返回值類型等部分構(gòu)成。標(biāo)準(zhǔn)語法格式為:[可見性]操作名[(參數(shù)表)]:[返回值類型][{約束特性}]其中,可見性與屬性的可見性相同。參數(shù)表由多個(gè)參數(shù)構(gòu)成,參數(shù)的語法格式為:參數(shù)名:參數(shù)類型名=缺省值返回值類型:表示操作返回的結(jié)果類型。約束特性主要有查詢、順序、監(jiān)護(hù)和并發(fā)?!?.3.2聯(lián)系的表示
在UML中,類之間的關(guān)系通常有關(guān)聯(lián)、聚集、泛化、依賴和細(xì)化。一、關(guān)聯(lián)關(guān)聯(lián)表示兩個(gè)類之間存在某種語義上的聯(lián)系。在UML中,關(guān)聯(lián)用一根連接類的實(shí)線表示。關(guān)聯(lián)關(guān)系一般都是雙向的,即關(guān)聯(lián)的對(duì)象雙方彼此都能與對(duì)方通信,稱做雙向關(guān)聯(lián)。如果類與類之間的關(guān)聯(lián)是單向的,表示該關(guān)聯(lián)單方向被使用。為了避免混淆,在名字的前面或后面帶一個(gè)表示關(guān)聯(lián)方向的黑三角,黑三角的尖角指明這個(gè)關(guān)聯(lián)只能用在尖角所指的類上。如圖所示的是一種單向關(guān)聯(lián),意思是“某用戶擁有口令”。用戶口令
擁有0..*§4.3.2聯(lián)系的表示
一、關(guān)聯(lián)1.關(guān)聯(lián)的角色關(guān)聯(lián)兩頭的類以某種角色參與關(guān)聯(lián),如圖所示。“公司”以“雇主”的角色、“人”以“雇員”的角色參與的“工作合同”關(guān)聯(lián)?!肮椭鳌焙汀肮蛦T”稱為角色名。如果在關(guān)聯(lián)上沒有標(biāo)出角色名,則隱含地用類的名稱作為角色名。角色還具有多重性,表示可以有多少個(gè)對(duì)象參與該關(guān)聯(lián)。在圖中,雇員只能與一個(gè)雇主簽訂工作合同,表示為“1”;雇主可以和多個(gè)雇員簽訂工作合同,表示為“*”?!?.3.2聯(lián)系的表示
一、關(guān)聯(lián)1.關(guān)聯(lián)的角色2.關(guān)聯(lián)類
在有些情況下,關(guān)聯(lián)不僅需要一個(gè)名稱,而且還需要設(shè)置一些屬性、操作以及其他特征,此時(shí)可引入一個(gè)關(guān)聯(lián)類來記錄。關(guān)聯(lián)類通過一根虛線與關(guān)聯(lián)連接。關(guān)聯(lián)類的表示如圖所示?!?.3.2聯(lián)系的表示
一、關(guān)聯(lián)1.關(guān)聯(lián)的角色2.關(guān)聯(lián)類
3.整體-部分關(guān)聯(lián)
在UML中,整體-部分關(guān)聯(lián)有兩種特殊的表示法:組合和聚集。(1)組合關(guān)聯(lián)表示整體擁有各部分,部分與整體共存,如整體不存在了,部分也會(huì)隨之消失。例如,一篇論文由摘要、關(guān)鍵字、正文和參考文獻(xiàn)組成。(2)聚集是一種特殊形式的關(guān)聯(lián),它也表示類之間的整體-部分關(guān)聯(lián),但主要強(qiáng)調(diào)組/成員的關(guān)聯(lián)。例如部門和職工之間是聚集關(guān)系。
§4.3.2聯(lián)系的表示
二、泛化關(guān)系
在UML中,泛化關(guān)系指出類之間“一般與特殊”的關(guān)系,它是通用元素與具體元素之間的一種分類關(guān)系,如圖(a)所示。一般類描述了多個(gè)具體類的共性,一般類又稱為父類,通過特化得到子類。在UML中,泛化表示為一頭為空心三角形的連線。三角形的尖對(duì)著一般類,父類與子類之間可構(gòu)成類的分層結(jié)構(gòu),如圖(b)所示為一個(gè)分層繼承類圖的實(shí)例?!?.3.2聯(lián)系的表示
三、依賴關(guān)系
用帶箭頭的虛線連接有依賴關(guān)系的兩個(gè)類,箭頭指向獨(dú)立的類。如圖所示為類的依賴關(guān)系,類B是獨(dú)立的,類A以某種方式依賴于類B,如果類B改變了,將影響依賴于它的類A中的元素。
四、細(xì)化關(guān)系當(dāng)對(duì)同一事物在不同抽象層次上描述時(shí),這些描述之間具有細(xì)化關(guān)系。如圖所示,表示了類的細(xì)化關(guān)系,類B進(jìn)一步細(xì)化后得到類A,類A細(xì)化了類B,稱為類B與類A具有細(xì)化關(guān)系,用由A指向B的虛線級(jí)空心三角形表示。細(xì)化主要用于表示類的模型之間的相關(guān)性,常用于跟蹤模型的演變。
§4.3.2聯(lián)系的表示
五、對(duì)象圖
類圖表示類以及類與類之間的關(guān)系,對(duì)象是類的實(shí)例,因此對(duì)象圖可以看做是類圖的一個(gè)實(shí)例,對(duì)象之間的鏈?zhǔn)穷愔g的關(guān)聯(lián)實(shí)例。在UML中,對(duì)象與類的圖形表示相似,主要差別在于對(duì)象的名字下面要加下劃線,鏈的圖形表示與關(guān)聯(lián)相似。對(duì)象圖常用于表示復(fù)雜的類圖的一個(gè)實(shí)例。如圖所示為一個(gè)類圖和一個(gè)對(duì)象圖,其中對(duì)象圖是類圖的實(shí)例?!?.3.3數(shù)據(jù)字典和元數(shù)據(jù)的表示
一、數(shù)據(jù)字典的表示
數(shù)據(jù)字典(DataDictionary,DD)是用來定義數(shù)據(jù)流圖中的各個(gè)成分的具體含義,它以一種準(zhǔn)確的、無二義性的說明
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年離婚債務(wù)處理與子女撫養(yǎng)及財(cái)產(chǎn)分配協(xié)議范本15篇
- 2025版礦石運(yùn)輸合同環(huán)境保護(hù)與可持續(xù)發(fā)展協(xié)議3篇
- 2024年中國運(yùn)動(dòng)式丁字褲市場調(diào)查研究報(bào)告
- 2025版住宅室內(nèi)水電改造及安全檢測服務(wù)協(xié)議
- 2024年船舶涂料維修專業(yè)承包合同
- 二零二五年度10kv變配電工程節(jié)能評(píng)估合同2篇
- 二零二五年度合同管理培訓(xùn)課程教材供應(yīng)合同3篇
- 2024年砌體工程勞務(wù)分包合同協(xié)議工程質(zhì)量保證措施
- 2024年跨境商品代購協(xié)議模板版B版
- 二零二五年度辦公樓木地板翻新與維修合同范本22篇
- 搶工措施方案
- 數(shù)值分析上機(jī)題(matlab版)(東南大學(xué))
- 93江蘇省宿遷市泗洪縣2023-2024學(xué)年八年級(jí)上學(xué)期期末英語試題()
- 教學(xué)能力大賽決賽獲獎(jiǎng)-教學(xué)實(shí)施報(bào)告-(完整圖文版)
- 亞朵酒店管理手冊(cè)
- 高一期末家長會(huì)課件
- 2024年航空職業(yè)技能鑒定考試-航空乘務(wù)員危險(xiǎn)品歷年考試高頻考點(diǎn)試題附帶答案
- 醫(yī)院禁毒行動(dòng)方案
- 設(shè)立影視服務(wù)公司商業(yè)計(jì)劃書
- 《流行性腦脊髓膜炎》課件
- 學(xué)生公寓物業(yè)服務(wù)方案投標(biāo)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論