數(shù)據(jù)庫系統(tǒng)原理-第四章高級數(shù)據(jù)庫模型_第1頁
數(shù)據(jù)庫系統(tǒng)原理-第四章高級數(shù)據(jù)庫模型_第2頁
數(shù)據(jù)庫系統(tǒng)原理-第四章高級數(shù)據(jù)庫模型_第3頁
數(shù)據(jù)庫系統(tǒng)原理-第四章高級數(shù)據(jù)庫模型_第4頁
數(shù)據(jù)庫系統(tǒng)原理-第四章高級數(shù)據(jù)庫模型_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第4章高級數(shù)據(jù)庫模型

4.1E/R模型4.2設(shè)計原則4.3E/R模型中的約束4.5從E/R圖到關(guān)系設(shè)計Page1一個新數(shù)據(jù)庫建立過程是從設(shè)計階段開始,提出并回答存儲什么信息,信息元素之間如何關(guān)聯(lián),假定有什么樣的約束,諸如鍵或者參考的完整性,等等。思考高級設(shè)計關(guān)系數(shù)據(jù)庫模式關(guān)系DBMSPage2主要設(shè)計方法:E/RUMLODL:將數(shù)據(jù)庫描述為類與對象的集合。Page34.1E/R模型在實體-聯(lián)系(entity-relationshipmodel,或E/R模型)中,數(shù)據(jù)的結(jié)構(gòu)用圖形化方式表示,即“實體-聯(lián)系圖”。元素類型:實體集屬性聯(lián)系Page44.1.1實體集(1)實體(Entity)

客觀存在并可相互區(qū)別的事物稱為實體,可以是具體的人、事、物或抽象的概念。(2)實體集(EntitySet)

相似實體的集合稱為實體集。實體-聯(lián)系圖中,矩形表示實體集。例4.1考慮電影數(shù)據(jù)庫的設(shè)計。每個電影是實體,所有電影的集合構(gòu)成一個實體集。同樣,影星是實體,影星的集合也是一個實體集。電影公司是實體,電影公司集合是第三個實體集。Page54.1.2屬性實體集中實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。例如,實體集Movies可能有title或length等屬性。屬性用橢圓表示。Page64.1.3聯(lián)系現(xiàn)實世界中事物內(nèi)部或者事物之間的聯(lián)系,在信息世界中反映為實體集內(nèi)部或?qū)嶓w集之間的聯(lián)系。實體集內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系;實體集之間的聯(lián)系通常是指不同實體集之間的聯(lián)系;聯(lián)系用菱形表示。Page74.1.4實體-聯(lián)系圖E/R圖是描述實體集、屬性和聯(lián)系的圖示。圖中每種元素都用節(jié)點表示,并且使用特殊形狀的節(jié)點來表示特定的類別:實體集:用矩形表示屬性:用橢圓表示聯(lián)系:用菱形表示Page8MoviesStarstitleyearlengthfilmtypenameaddressPage9MoviestitleyearlengthfilmtypeStars-inOwnsStarsStudiosnameaddressnameaddressPage104.1.5E/R圖實例數(shù)據(jù)庫實例:用E/R圖描述的數(shù)據(jù)庫包含特定的數(shù)據(jù)。Page114.1.5E/R圖實例對每個實體集,數(shù)據(jù)庫實例有一個特定的有限實體集合。實體集中的每個實體對每個屬性都有特定的值。連接n個實體集E1,E2,…,En的聯(lián)系R的一個實例由元組(e1,e2,…,en)的有限集構(gòu)成,其中每個ei都是從實體集Ei的當(dāng)前實例中選出。這樣的元組集叫做R的聯(lián)系集。Page124.1.5E/R圖實例Movies StarsStarwarsCarriefisherStarwarsMarkHamillMightyducksEmilioEstcvezMightyducksEmilioEstcvezWayne’sworldMikeMeyersPage134.1.6二元E/R聯(lián)系的多樣性實體集A和B的聯(lián)系多樣性:一對一(one-one):實體集中的一個實體最多可以與另一個實體集中的一個實體聯(lián)系。Page144.1.6二元E/R聯(lián)系的多樣性一對多(one-many):實體集中的一個實體最多可以與另一個實體集中的多個實體聯(lián)系。Page154.1.6二元E/R聯(lián)系的多樣性多對多(many-many):實體集中的任意一個實體可以與另一個實體集中的多個實體聯(lián)系。Page164.1.6二元E/R聯(lián)系的多樣性多樣性:1.箭頭可用來表示E/R圖中聯(lián)系的多樣性。2.A到B是多對一聯(lián)系,箭頭指向B。箭頭辨明實體集A中每個實體與實體集中的最多一個實體聯(lián)系。Page174.1.6二元E/R聯(lián)系的多樣性例:假設(shè)一個經(jīng)理只管理一家電影公司,一家電影公司只有一個經(jīng)理,那么經(jīng)理和電影公司之間的聯(lián)系是一對一的,可以用兩個箭頭分別指向兩個實體。關(guān)于箭頭不得不說的話:以后還會有其他形式的箭頭,這里的箭頭暫時都還是指尖箭頭。Page18studiospresidentsRuns4.1.7多路聯(lián)系有時,我們需要描述多于兩個實體集之間的聯(lián)系,通常采用多路聯(lián)系。多路聯(lián)系是由聯(lián)系菱形到它所涉及的每個實體集的連線表示。MoviesStarsStudiosContractsPage194.1.7多路聯(lián)系Contracts是一個多路聯(lián)系(三路聯(lián)系)。這個聯(lián)系可以用一個三元組表示(studio,star,movie)MoviesStarsStudiosContractsPage204.1.8聯(lián)系中的角色Page21如果在一個聯(lián)系中同一個實體集出現(xiàn)兩次或多次,則該實體集與聯(lián)系間的每一條連線命名稱為角色。例4.6分析,一個由實體集Movies和它本身組成的聯(lián)系Sequel-of。例4.7分析,按照教材內(nèi)容理解有箭頭指向和沒有箭頭指向含義的區(qū)別。4.1.11E/R模型中的子類子類=特例實體例如:Cartoons是movies的一種。并不是所有的movie都是cartoon,但有一部分是。Cartoons除了具有movies共同的屬性和聯(lián)系外,還有一個額外的聯(lián)系是voices,它給出了不演定影的配音影星的集合。Page22Isa聯(lián)系連接實體集和它的子類。用三角形表示,邊與子類相連,與此邊相對的一角與父類相連。MoviestitleyearlengthfilmtypeCartoonsisaStarsVoicesPage234.2設(shè)計原則忠實性避免冗余簡單性選擇正確的元素種類Page244.2.1忠實性首要的也是最重要的設(shè)計應(yīng)當(dāng)忠實于應(yīng)用的具體要求實體集和它們的屬性應(yīng)當(dāng)反映現(xiàn)實Page254.2.2避免冗余應(yīng)當(dāng)小心對每件事只說一次。冗余會造成空間浪費(fèi)和更新異常。Page26GooddesignMoviestitleyearlengthfilmtypeOwnsStudiosnameaddressThisdesigngivestheaddressofeachstudioexactlyonce.Page27BaddesignMoviestitleyearlengthstudioOwnsStudiosnameaddressfilmtypeThisdesignstatesthestudioofamovietwice:asanattributeandasarelatedentity.Page28BaddesignMoviestitleyearlengthstudioNamefilmtypestudioAddThisdesignrepeatsthestudio’saddressonceforeachmovieandlosestheaddressiftherearetemporarilynomoviesforastudio.Page294.2.3簡單性除非有絕對需要,不要在你的設(shè)計中添加更多成分。Holding

meanstheownershipofamovie.It’saunnecessaryentitysetwithoutanyattribute.MoviesHoldingStudiosRepresentOwnPage304.2.4選擇正確的聯(lián)系實體集可以用多種聯(lián)系連接起來,如果把每種可能的聯(lián)系加到設(shè)計中,會容易造成冗余、更新異常和刪除異常?!皉ight”?Morereasonable,morenatural,simpler,closertorequirementPage314.2.5選擇正確的元素種類屬性,還是實體集?如果A包含的信息大于其名稱本身,則用實體集如果A對設(shè)計的作用只是其名稱就可實現(xiàn),則用屬性。當(dāng)用屬性可以實現(xiàn)的,盡量不要用實體集。Page32Example:GoodBeersManfsManfBynameManfsdeservestobeanentitysetbecauseofthenonkeyattributeaddr.Beersdeservestobeanentitysetbecauseitisthe“many”ofthemany-onerelationshipManfBaddrPage33Example:GoodBeersnameThereisnoneedtomakethemanufactureranentityset,becausewerecordnothingaboutmanufacturersbesidestheirname.manfPage34Example:BadBeersManfsManfBynameSincethemanufacturerisnothingbutaname,andisnotatthe“many”endofanyrelationship,Page354.3E/R模型中的約束4.3.1E/R模型中的鍵4.3.2E/R模型中鍵的表示4.3.3引用完整性4.3.4度約束Page364.3.1E/R模型中的鍵實體集E的鍵(Key)是由一個或多個屬性的集合K,對來自于E的不同實體e1和e2,他們對鍵K中的屬性沒有完全相同的值。如果K是由多個屬性組成,那么對于e1和e2雖然它們可以部分相同,但絕不會全部相同。Page374.3.2E/R模型中鍵的表示在E/R圖中,一個實體集鍵的屬性用下劃線標(biāo)出。Page38簡單說,引用完整性要求被“引用”的實體必須存在。擴(kuò)展E/R圖中的箭頭標(biāo)記,使用圓箭頭來表示引用完整性。實現(xiàn)過程中保證引用完整性的措施:禁止被引用實體的刪除操作;被引用實體刪除,則同時刪除所有引用它的實體新增實體時,它所引用的實體必須存在引用目標(biāo)變化時,新的引用實體必須存在4.3.3引用完整性Page39引用完整性在ER圖中的表示假設(shè)R是實體集E到F的聯(lián)系,可用圓箭頭指向F表示不僅是多對一或一對一,而且要求與E實體對應(yīng)的F實體必須存在(注意不可空)。P88例4.19。圓箭頭分別表示:每部電影必須被一個已經(jīng)存在的電影公司所擁有;每個經(jīng)理必須經(jīng)營一家已經(jīng)存在的電影公司。注意尖箭頭表示電影公司可以在特定階段沒有經(jīng)理(圓則必有)。教材從另一角度分析:如果刪除箭頭所指實體集中的某個實體,則(從邏輯關(guān)系上分析)聯(lián)系另一方是否也應(yīng)刪除相應(yīng)實體?是則圓否則尖。Page404.3.4度約束在E/R模型中,可以在連接一個聯(lián)系到一個實體的邊上加一個數(shù)字,表示相關(guān)實體集中任一實體可被聯(lián)系到的實體數(shù)目的約束。MoviestitleyearlengthfilmtypeStarsinStarsnameaddress{20-240}<=10Page414.5從E/R圖到關(guān)系設(shè)計實體集到關(guān)系的轉(zhuǎn)化聯(lián)系到關(guān)系的轉(zhuǎn)化關(guān)系組合Page424.5.1實體集到關(guān)系的轉(zhuǎn)化實體集(entityset)->關(guān)系(relation).屬性(attributes)->屬性(attributes)MoviestitleyearlengthfilmtypeStars-inOwnsStarsStudiosnameaddressnameaddressPage43基本規(guī)則對于聯(lián)系R涉及的每一個實體集,它們的鍵屬性或鍵屬性集都是R關(guān)系模式的一部分;如果這個聯(lián)系本身有屬性,則它們也是R關(guān)系中的屬性;如果一個實體集在聯(lián)系中有多個角色,則它的鍵屬性出現(xiàn)的次數(shù)等于角色的次數(shù),轉(zhuǎn)換為關(guān)系時為避免重名需重新命名;如果R本身的屬性和與其相連的實體集的鍵屬性有同名,則要重命名。4.5.2E/R聯(lián)系到關(guān)系的轉(zhuǎn)化Page44幾個例子例4.25和4.26。關(guān)系的屬性是由聯(lián)系相關(guān)的實體集的鍵屬性組成的。

Owns(title,year,studioName)Stars-In(title,year,starName)例4.27。注意多個角色時該實體集的鍵屬性也要出現(xiàn)多次,同時要避免重名。

Contracts(starName,title,year,studioOfStar,producingOfStudio)4.5.2E/R聯(lián)系到關(guān)系的轉(zhuǎn)化Page45Relationship->RelationDrinkersBeersLikesLikes(drinker,beer)FavoriteFavorite(drinker,beer)MarriedhusbandwifeMarried(husband,wife)nameaddrnamemanfBuddies12Buddies(name1,name2)Page464.5.3關(guān)系組合提出背景:有時從實體集和聯(lián)系轉(zhuǎn)化而來的關(guān)系不一定是最優(yōu)的。如果存在E到F的多對一聯(lián)系R,則按照前面講的轉(zhuǎn)化規(guī)則直接轉(zhuǎn)化后關(guān)系模式E(由實體集轉(zhuǎn)化)和R(由聯(lián)系轉(zhuǎn)化)都含有實體集E的鍵屬性,這是E和R合并的基礎(chǔ);關(guān)系模式E中還包含實體集E的非鍵屬性,關(guān)系模式R中包含F(xiàn)的鍵屬性和聯(lián)系R中的所有屬性,這是E和R合并時要分別保留的內(nèi)容;但由于是多對一,所以E的鍵屬性就能確定以上屬性,所以兩個關(guān)系的元組合并時不會冗余。Page47E和R的組合組合后的模式包括E的所有屬性、F的鍵屬性和R的所有屬性;根據(jù)多對一定義,E中實體e可能找不到相連的F的實體,這種情況下用空值。例:Drinkers(name,addr)andFavorite(drinker,beer)combinetomakeDrinker1(name,addr,favBeer)注意其中的Favorite(drinker,beer)是聯(lián)系關(guān)系而不是實體集關(guān)系Page48E到F的多對一聯(lián)系R,E和R合并的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論