ER模型 全程 entity-relationship data model, 作為一種通用的模型,可以用來表述一個數據庫的邏輯結構,構成一個ER模型的概念有三個:entity sets, relationship sets and attributes.
在介紹entity sets之前我們得先把entity的概念弄清楚,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)這樣一對對的有序集合構成的。
extra concept:
recursive relationship set:當一個ES(entity set,以后都做此稱呼)不止一次的參與進一個RS(同理)的時候,那這個RS就被成為recursive relationship set,FE,有一個表courses,我想弄一個prerequisite courses of a course的relation,那么關系就是
(e1,e2|e1,e2都屬於courses).
descriptive attributes:是關系本身的屬性,也就是說每個關系都有一個,這個屬性是對於關系本身的補充,個人理解是因為只能對於關系記錄這個屬性所以不會放在entity的attributes里,一個例子就是學生上了某門課,而他在這門課上獲得的績點就是對於學生-課程關系的descriptive attributes.
大部分的函數是二元的(binary relationship set)
關系的元數被稱為degree.
Attributes詳解:
每一種attribute都有它自己的domain(這個是基礎就不多講了)
從數學語言上來講,attribute就是一種將它所對應的entity映射到對應domain的函數。
對於ER模型里的attribute來講有以下類型:
simple and composite 類型:到現在為止我們討論過的基本都是simple類型,即是:對於一個attribute它的組成部分唯一,但是還有一個類型被稱為composite attribute,就是由其他子屬性構成的屬性,比如說地址,就可以細分成省市區,這樣能方便我們更好的管理數據。
多值類型:一個事物擁有多個值,比如說一個人可能有多個電話號碼也可能沒有電話號碼。
派生類型(derived value):里面的值並沒有本身的獨立性,而是從其他的屬性中派生出來的屬性。
無法定義的值:NULL.