版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
UML與數(shù)據(jù)庫設計UML模型與數(shù)據(jù)庫設計之間的關(guān)系UML中的類映射為數(shù)據(jù)庫表的策略UML中的類關(guān)系的映射策略在理想情況下,組織對象數(shù)據(jù)庫的最好方式是直接存儲對象及其屬性、行為和關(guān)聯(lián)。這種數(shù)據(jù)庫稱為面向?qū)ο髷?shù)據(jù)庫。面向?qū)ο笮蛿?shù)據(jù)庫管理系統(tǒng)〔ODBMS〕在理論是可用的,但還存在相對有限的有效性等問題,而傳統(tǒng)型的數(shù)據(jù)庫其理論已經(jīng)相當成熟,其性能非??煽坎⑶乙呀?jīng)被廣泛應用。1、UML模型與數(shù)據(jù)庫設計之間的關(guān)系數(shù)據(jù)庫目前面臨的問題數(shù)據(jù)處理中的傳統(tǒng)數(shù)據(jù)庫應用具有簡單數(shù)據(jù)類型相對較少的數(shù)據(jù)類型,第一范式成立近年來復雜數(shù)據(jù)類型越來越重要例如:地址可處理為單個字符串,或者為每個子局部用一單獨的屬性,或者復合屬性(不屬于第一范式)例如:允許直接存儲多值屬性而不是創(chuàng)立單獨的第一范式關(guān)系存儲通常更方便1、UML模型與數(shù)據(jù)庫設計之間的關(guān)系應用CAD,CASE多媒體與圖像數(shù)據(jù)庫文檔/超文本數(shù)據(jù)庫1、UML模型與數(shù)據(jù)庫設計之間的關(guān)系1、UML模型與數(shù)據(jù)庫設計之間的關(guān)系隨著面向?qū)ο蠹夹g(shù)的開展,E-R模型有諸多的局限性;傳統(tǒng)的E-R模型結(jié)構(gòu)簡單,一般只針對數(shù)據(jù)進行建模。隨著數(shù)據(jù)庫規(guī)模的擴大,簡單的E-R模型結(jié)構(gòu)無法清晰地分析和描述問題,導致系統(tǒng)開發(fā)難度系數(shù)增大。把UML與關(guān)系數(shù)據(jù)庫設計相結(jié)合,將數(shù)據(jù)庫設計統(tǒng)一于面向?qū)ο蟮能浖治鲈O計過程中,以提高系統(tǒng)開發(fā)的效率。UML不僅可以完成E-R圖可以做的所有建模工作,而且可以描述其不能表示的關(guān)系。E-R圖表示法存在的問題1、UML模型與數(shù)據(jù)庫設計之間的關(guān)系E-R圖只描述實體之間的關(guān)聯(lián)關(guān)系,而UML對象之間的關(guān)系不僅僅是關(guān)聯(lián)關(guān)系,還有泛化、組合和聚合等更為復雜的描述。由于E-R模型結(jié)構(gòu)與關(guān)系型數(shù)據(jù)結(jié)構(gòu)是同構(gòu)的,所以上述統(tǒng)一建模過程的關(guān)鍵在于將更為復雜的UML數(shù)據(jù)結(jié)構(gòu)如何轉(zhuǎn)化為關(guān)系型數(shù)據(jù)結(jié)構(gòu)。UML在對系統(tǒng)數(shù)據(jù)進行邏輯建模時,一般采用類模式來實現(xiàn)。
類模式是UML建模技術(shù)的核心,數(shù)據(jù)庫的邏輯視圖由UML類圖衍生。基于UML中的類圖生成數(shù)據(jù)庫1、UML模型與數(shù)據(jù)庫設計之間的關(guān)系現(xiàn)在的開發(fā)環(huán)境大多是面向?qū)ο蟮模鎯C制往往是基于功能分解的關(guān)系型數(shù)據(jù)庫,同時在DBMS(DatabaseManagementSystem)支持的數(shù)據(jù)庫模型中,關(guān)系型數(shù)據(jù)庫是最普遍的,目前較為流行的對象關(guān)系數(shù)據(jù)庫模型也是關(guān)系數(shù)據(jù)庫模型的一個擴展。ORACLE8iDB2-52、UML中的類映射為數(shù)據(jù)庫表的策略類圖是面向?qū)ο笙到y(tǒng)的建模中最常見的圖之一。類圖顯示了一組類、接口、協(xié)作以及它們之間的關(guān)系,主要用于對系統(tǒng)靜態(tài)設計視圖建模。其中,類是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心,表示被建模的應用領域中的離散概念,是具有相同結(jié)構(gòu)、行為和關(guān)系的一組對象的描述符號。2、UML中的類映射為數(shù)據(jù)庫表的策略2.1對象標識映射為主鍵設計數(shù)據(jù)庫模型,合理選擇主鍵是一個關(guān)鍵的問題。一般定義主鍵可以有兩種方法:(1)為每個類增加一個對象標識符(OID)屬性,將其映射為數(shù)據(jù)庫中相應類表的主鍵。2、UML中的類映射為數(shù)據(jù)庫表的策略其中<<pk>>(primarykey)表示主鍵。對象標志符作為單獨屬性,所占空間較小而且大小相同,簡化了主鍵選擇方案,使得數(shù)據(jù)庫更新時不會產(chǎn)生完整性問題,同時方便了數(shù)據(jù)庫操作。EmployeeOIDNameSalaryPhone2、UML中的類映射為數(shù)據(jù)庫表的策略(2)根據(jù)客觀事實,將某個屬性或?qū)傩缘慕M合作為主鍵。該主鍵具有實際意義,容易進行維護;缺點在于涉及到外鍵,一旦其他類發(fā)生變化,更改比較困難。2、UML中的類映射為數(shù)據(jù)庫表的策略2.2屬性類型映射為域類的屬性描述了其所有對象共有的特性。屬性的類型可以是根本數(shù)據(jù)類型,如整數(shù)、實數(shù)、布爾型等,也可以是用戶自定義類型。屬性類型對應于數(shù)據(jù)庫中的域,域的使用可使數(shù)據(jù)庫設計更具一致性,優(yōu)化了數(shù)據(jù)庫應用的移植性。一般來說,實現(xiàn)簡單域比較方便,只須定義相應的數(shù)據(jù)類型和空間大小2、UML中的類映射為數(shù)據(jù)庫表的策略2.3類映射為表通常,一個類映射為一張類表,類的屬性映射為表的各列,類的對象那么映射為表中的各個記錄。值得注意的是存在以下兩種特殊情況:(1)類的屬性中某些屬性只是暫時性使用,不需要在數(shù)據(jù)庫中永久保存,那么該類屬性無須映射。(2)類的屬性如果是多值,那么該屬性映射為多個列。另外,由于附加對象標志符OID或附加關(guān)聯(lián)關(guān)系等原因,需要在表中增加一些新的列。3、UML中類關(guān)系的映射策略類圖由一系列類、接口和它們之間的關(guān)系(依賴、泛化、關(guān)聯(lián)和實現(xiàn)等)所組成。在將UML模型向關(guān)系數(shù)據(jù)庫轉(zhuǎn)換時,不僅需要轉(zhuǎn)換模型中的類,還需要轉(zhuǎn)換類與類之間的關(guān)系,例如,關(guān)聯(lián)關(guān)系、泛化關(guān)系等。聚合關(guān)系和組合關(guān)系是特殊的關(guān)聯(lián)。在設計數(shù)據(jù)庫之前,對UML類圖進行簡化,去除一些冗余的關(guān)系。3、UML中類關(guān)系的映射策略3.1關(guān)聯(lián)關(guān)系映射UML中的關(guān)聯(lián)關(guān)系描述了系統(tǒng)中對象或?qū)嵗g的離散連接,是一種結(jié)構(gòu)關(guān)系,規(guī)定了一種事物的對象可以與另一事物的對象相關(guān)聯(lián)。當類參與關(guān)聯(lián)時,類在關(guān)聯(lián)關(guān)系中扮演一個特定的角色。3、UML中類關(guān)系的映射策略(1)一對一關(guān)聯(lián):表示A的一個對象與B的一個對象關(guān)聯(lián)。在這種情況下,可在兩個類中任意選擇一方,在其所對應的類表中添加一個外鍵<<fk>>(foreignkey),指向另一方所對應類表中的主鍵,從而實現(xiàn)兩張類表之間的連接,將關(guān)聯(lián)關(guān)系成功映射到數(shù)據(jù)庫中。需要注意的是,不要在兩個表中均放置對方的主鍵,這樣會造成冗余。AB113、UML中類關(guān)系的映射策略(2)零或一對一關(guān)聯(lián):AB0..1*這說明B的一個對象可與0個或1個A對象發(fā)生關(guān)聯(lián),一般在A類(即對象個數(shù)為零或一的那一方)所對應的表中添加一個外鍵,指向另一方B類所對應的類表中的主鍵,建立兩表之間的連接。3、UML中類關(guān)系的映射策略projectOID(mainKey)Project_NameStartdatecontactpersonOID(foreignKey)contactpersonOID(mainKey)PhoneFaxemail3、UML中類關(guān)系的映射策略(3)一對多關(guān)聯(lián):表示A的一個對象與B的多個對象關(guān)聯(lián),這種關(guān)聯(lián)關(guān)系可以通過在B類(即具有多個對象的類)所對應的類表中增加一個外鍵,指向另一方A類的主鍵,從而建立兩個表之間的關(guān)聯(lián)。AB1*3、UML中類關(guān)系的映射策略projectOID(mainKey)Project_NameStartdateTaskOID(mainKey)Task_nameStartdateenddateprojectOID(foeignKey)3、UML中類關(guān)系的映射策略(4)多對多關(guān)聯(lián):AB**實現(xiàn)多對多關(guān)聯(lián),通常需要建立一個關(guān)聯(lián)表,映射關(guān)聯(lián)對象,從而將多對多關(guān)聯(lián)轉(zhuǎn)化為兩個一對多關(guān)聯(lián)。實現(xiàn)時,在新建的關(guān)聯(lián)表中設置一個對象標志符OID,同時增加兩個外鍵,分別指向初始關(guān)聯(lián)的兩個類對應表的主鍵。3、UML中類關(guān)系的映射策略studentOID(mainKey)student_NameenroldatecourseOID(mainKey)Course_nameTextbookStu&CouOID(mainKey)studentOID(foreignKey)courseOID(foreignKey)3、UML中類關(guān)系的映射策略3.2泛化關(guān)系映射泛化關(guān)系是一種存在于一般元素和特殊元素之間的分類關(guān)系,它只使用在類型上,而不是實例上。在類中,一般元素被稱為超類或父類,而特殊元素被稱為子類。從實現(xiàn)的角度來看,UML的泛化表達了分類與繼承原那么,與面向?qū)ο蟪绦蛟O計語言中的繼承性概念相關(guān)。一個子類繼承超類的全部屬性和方法,一個子類本身又可以有自己的子類,從而構(gòu)成復雜的一般/特殊結(jié)構(gòu)。在關(guān)系數(shù)據(jù)庫模型中沒有直接的方法實現(xiàn)泛化,可以通過3種方法實現(xiàn)其映射。3、UML中類關(guān)系的映射策略(1)類層次映射為單個表通過這種方法,將泛化關(guān)系中所有類都映射在單個表中,所有類的屬性都保存在該表中;同時在表中增加一個對象標志符OID,以及一個對象類型,用以標識角色類型Person_OID(mainKey)objectTYPENamestu_idsalary3、UML中類關(guān)系的映射策略(2)每個子類映射為單張表將超類屬性分別復制到各個子類中,這樣每個子類既包含自身屬性,又包含超類屬性,同時在各個子類中增設各自的對象標志符OID,從而實現(xiàn)映射。在這個過程中,超類不需要參與映射。Stu_OID(mainKey)NameTeacher_OID(mainKey)namesalary3、UML中類關(guān)系的映射策略(3)每個類映射為單張表為每個類都建一張表,但每張表中的對象標志符OID都設為超類的類表中的OID。在子類的類表中,OID既是主鍵又是外鍵,各自屬性不變。person_OID(mainKey)NamePerson_OID(main&ForeignKey)salaryPerson_OID(main&ForeignKey)stu_id3、UML中類關(guān)系的映射策略3.3聚集關(guān)系映射聚集是一種特別類型的關(guān)聯(lián),用于描述“總體到局部”的關(guān)系。在根本的聚集關(guān)系中,局部類的生命周期獨立于整體類的生命周期。屬于“hasa”關(guān)系較弱的情況。將這種關(guān)系映射到關(guān)系數(shù)據(jù)庫中,可分為兩種情況:一種是聚集關(guān)系較為緊密的情況下,可將其映射在一張表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物業(yè)公司保安員夜間值班與休息合同
- 二零二五年度電梯井施工與電梯設備保養(yǎng)合同
- 2025年度幼兒園招生加盟與品牌轉(zhuǎn)讓合作協(xié)議
- 二零二五年度情感關(guān)系建立合同
- 二零二五年度2025年門面房租賃與社區(qū)配套服務合同
- 二零二五年度精裝修公寓房購買與戶外休閑設施使用合同3篇
- 二零二五版奶粉生產(chǎn)廢棄物資源化利用服務合同范本頁22篇
- 2025年度影視基地場地租賃合同及影視制作服務協(xié)議3篇
- 二零二五版電子商務SET協(xié)議安全風險評估與風險控制合同3篇
- 二零二五版淋浴房市場推廣與廣告投放合同3篇
- 城市基礎設施維修計劃
- 2024山西廣播電視臺招聘專業(yè)技術(shù)崗位編制人員20人歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 新材料行業(yè)系列深度報告一:新材料行業(yè)研究框架
- 人教版小學英語各冊單詞表(帶英標)
- 廣東省潮州市潮安區(qū)2023-2024學年六年級上學期期末考試數(shù)學試題
- 鄉(xiāng)村治理中正式制度與非正式制度的關(guān)系解析
- 智能護理:人工智能助力的醫(yī)療創(chuàng)新
- 國家中小學智慧教育平臺培訓專題講座
- 5G+教育5G技術(shù)在智慧校園教育專網(wǎng)系統(tǒng)的應用
- VI設計輔助圖形設計
- 淺談小學勞動教育的開展與探究 論文
評論
0/150
提交評論