idea查看類(lèi)的繼承關(guān)系 如何將含有繼承關(guān)系的類(lèi)圖映射為關(guān)系數(shù)據(jù)庫(kù)?
如何將含有繼承關(guān)系的類(lèi)圖映射為關(guān)系數(shù)據(jù)庫(kù)?圖書(shū)館。我們通常使用以下兩種方法來(lái)映射繼承關(guān)系:1)將基類(lèi)映射到表,將每個(gè)子類(lèi)映射到表。主鍵在基類(lèi)對(duì)應(yīng)的表中定義,外鍵在子類(lèi)對(duì)應(yīng)的表中定義。2)每個(gè)子類(lèi)映射到
如何將含有繼承關(guān)系的類(lèi)圖映射為關(guān)系數(shù)據(jù)庫(kù)?
圖書(shū)館。我們通常使用以下兩種方法來(lái)映射繼承關(guān)系:
1)將基類(lèi)映射到表,將每個(gè)子類(lèi)映射到表。主鍵在基類(lèi)對(duì)應(yīng)的表中定義,外鍵在子類(lèi)對(duì)應(yīng)的表中定義。
2)每個(gè)子類(lèi)映射到一個(gè)沒(méi)有基類(lèi)表的表。在每個(gè)子類(lèi)的表中包含基類(lèi)的所有屬性。該方法適用于子類(lèi)數(shù)目較少、基類(lèi)屬性相對(duì)較少的情況。
UML類(lèi)圖中類(lèi)之間的6種關(guān)系與區(qū)別?
類(lèi)圖中類(lèi)之間的關(guān)系是一個(gè)復(fù)雜的內(nèi)容。有聯(lián)想、聚合、組合、概括和依賴。關(guān)聯(lián):它是模型元素之間的語(yǔ)義連接,是類(lèi)之間的弱連接。關(guān)聯(lián)可以是定向的、單向的或雙向的??梢詫㈥P(guān)聯(lián)名稱添加到關(guān)聯(lián)以描述其功能。關(guān)聯(lián)兩端的類(lèi)也可以與某些角色一起參與關(guān)聯(lián),這些角色可以具有多重性,表示有多少對(duì)象可以參與關(guān)聯(lián)。關(guān)聯(lián)屬性、操作和其他信息可以由關(guān)聯(lián)類(lèi)進(jìn)一步描述。關(guān)聯(lián)類(lèi)通過(guò)虛線與關(guān)聯(lián)相連接??梢蕴砑右恍┘s束來(lái)增強(qiáng)關(guān)聯(lián)的含義。如下圖所示:聚合是一種特殊的關(guān)聯(lián),表示整體和部分之間的關(guān)系。通常,在定義了一個(gè)整體類(lèi)之后,我們分析了整體類(lèi)的構(gòu)成和結(jié)構(gòu)。從而找出一些組合類(lèi),形成整個(gè)類(lèi)與組合類(lèi)之間的聚合關(guān)系。例如,艦隊(duì)是由一系列船只組成的。在需求描述中,“包含”、“構(gòu)成”、“劃分”等詞通常表示聚合。作文也是一種特殊的聯(lián)想,它也代表了類(lèi)的整體與部分之間的關(guān)系,但作文關(guān)系中的部分與整體具有統(tǒng)一的生命周期。一旦整個(gè)對(duì)象不存在,一些對(duì)象就不存在了。部分客體與整體客體之間存在著生死關(guān)系。聚合與組合的區(qū)別:聚合關(guān)系為has-a關(guān)系,組合關(guān)系為contains-a關(guān)系;聚合關(guān)系表示整體與局部的關(guān)系較弱,而組合關(guān)系較強(qiáng);表示聚合關(guān)系中部分事物的對(duì)象與表示聚合事物的對(duì)象的生存期無(wú)關(guān)。一旦聚合對(duì)象被刪除,表示部分內(nèi)容的對(duì)象就不能被刪除。一旦組合對(duì)象被刪除,代表某些事物的對(duì)象也會(huì)被刪除。泛化定義了一般元素和特殊元素之間的分類(lèi)關(guān)系,也稱為繼承關(guān)系。概括關(guān)系是一種“類(lèi)”關(guān)系,它定義了一般元素和特殊元素之間的分類(lèi)關(guān)系。下圖是泛化關(guān)系的示例。有兩個(gè)元素,修改X的定義可能導(dǎo)致Y的定義,那么Y被認(rèn)為是X相關(guān)的。依賴可以由各種原因引起,例如一個(gè)類(lèi)向另一個(gè)類(lèi)發(fā)送消息,或者一個(gè)類(lèi)是另一個(gè)類(lèi)的數(shù)據(jù)成員類(lèi)型,或者一個(gè)類(lèi)是另一個(gè)類(lèi)操作的參數(shù)類(lèi)型等等。有時(shí)很難區(qū)分依賴和關(guān)聯(lián)。如果類(lèi)A和類(lèi)B是相關(guān)的,那么它們之間一定存在依賴關(guān)系。如果兩個(gè)類(lèi)之間存在關(guān)聯(lián),則不必顯示兩個(gè)類(lèi)之間的依賴關(guān)系。