數(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)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

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

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)系組合提出背景:有時(shí)從實(shí)體集和聯(lián)系轉(zhuǎn)化而來的關(guān)系不一定是最優(yōu)的。如果存在E到F的多對一聯(lián)系R,則按照前面講的轉(zhuǎn)化規(guī)則直接轉(zhuǎn)化后關(guān)系模式E(由實(shí)體集轉(zhuǎn)化)和R(由聯(lián)系轉(zhuǎn)化)都含有實(shí)體集E的鍵屬性,這是E和R合并的基礎(chǔ);關(guān)系模式E中還包含實(shí)體集E的非鍵屬性,關(guān)系模式R中包含F(xiàn)的鍵屬性和聯(lián)系R中的所有屬性,這是E和R合并時(shí)要分別保留的內(nèi)容;但由于是多對一,所以E的鍵屬性就能確定以上屬性,所以兩個(gè)關(guān)系的元組合并時(shí)不會冗余。Page47E和R的組合組合后的模式包括E的所有屬性、F的鍵屬性和R的所有屬性;根據(jù)多對一定義,E中實(shí)體e可能找不到相連的F的實(shí)體,這種情況下用空值。例:Drinkers(name,addr)andFavorite(drinker,beer)combinetomakeDrinker1(name,addr,favBeer)注意其中的Favorite(drinker,beer)是聯(lián)系關(guān)系而不是實(shí)體集關(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論