1. 程式人生 > >CS3402 Lecture 4

CS3402 Lecture 4

概念 都是 在線 但是 一次 keys 區分 離散 const

entity-relationship data model用來表述一個數據庫的邏輯結構

構成一個ER模型的概念有三個:entity sets, relationship sets, attributes.

entity,原意是主題,在數據庫裏指代的就是數據庫的表明的一個在真實世界裏可以從其他實體中區分出來的一個對象。這個對象可以是抽象的,也可以是具體的,比如說大學裏的某個人,也可以是一節課。一個entity必然有著一系列的屬性,而在此之中的一些屬性能夠獨一無二的把它指代的對象給區分出來,比如說每個人都有的身份證號之類的

而entity sets就是具有相同屬性的entity的集合,註意這裏的相同指的是他們都能被一個屬性的集合給描述,這裏就要講到屬性,屬性(attribute)是指被每個entity所擁有的可描述的形狀,而每一個entity的屬性都有它們自己的值

而relationship就有點像離散裏學到過的函數。不過這裏的結合不再是映射,而是一個集合的形式,一個假設E為一個entity set,e為一個entity,那麽relationship就是由(e1,e2,e3,e4…en|e1屬於E1,e2屬於E2….en屬於En)這樣一對對的有序集合構成的

一個ER模型必然需要對於其內容做出約束,mapping cardinality 和 participation constraints 和 keys

mapping cardinality類型:

第一類:one to one,假設ES(entity set) L,R,那麽對於L裏的一個entity a來說,R中有且只有一個b是和它有聯系的,對於b來說vice versa.

第二類:one to many,接上文來說,L中的a可以於R中多個元素有聯系,但是R中的一個元素只能和L中的一個產生聯系。

同理,還有many to many & many to one

participation constraints

  對於一個ES和一個RS來說,如果ES中每一個entity都在這個R中出現過一次,那麽ES對於RS的關系就是total participation 如果有些entity沒有出現在RS中,那麽就是partial participation.

keys:

  因為這個是數據庫的基本概念就不怎麽多講了,值得一提的是關系也可以通過主鍵的並集來描述,設RS,R為(e1,e2,e3…en|e1<-E1,e2<-E2,e3<-E3…en<-En(<-此處為屬於的意思)),那麽描述這個關系的主鍵就是(primary key(E1)+primary key(E2)…+primary key(En)).如果關系有describe attributes,那麽就是(primary key(E1)+primary key(E2)…+primary key(En)+set of describe attributes).

矩形:代表ES,上面記名字下面記屬性,主鍵被畫上下劃線。

棱形:代表RS,一般用線鏈接兩個及以上矩形

ES到RS的雙劃線:代表ES對於這個集合的participation狀態是total participation.

用虛線鏈接到棱形的未劃分矩形:代表關系的describe attribute。

關於棱形到兩邊ES的箭頭:

如果兩邊都有箭頭,那代表這兩個是one2one的映射關系

如果只有一邊有箭頭,那代表有箭頭的一邊到沒有箭頭的一邊是one2many的關系

如果兩邊都沒有箭頭,那代表雙方都是many2many的關系。

除此以外還有一個標註rule的方法,就是在ES到RS的線上表區間,區間代表用這條線與rs相連的ES中的一個元素能和另外一邊的多少個元素產生聯系,0-*就是0到無窮多個,依此類推。

自身與自身產生映射的時候在線上標註映射出來的屬性名稱。

CS3402 Lecture 4