數(shù)據(jù)庫E-R模型的知識點是軟件評測師考試的高頻考點,經(jīng)常出現(xiàn)在上午場的客觀選擇題當(dāng)中。在數(shù)據(jù)庫設(shè)計中,常用E-R模型(實體聯(lián)系模型)來描述現(xiàn)實世界到信息世界的問題,它是軟件設(shè)計中的一個重要工具。E-R模型易于用戶理解,是用戶和數(shù)據(jù)庫設(shè)計人員交流的語言。
一、實體
實體是指現(xiàn)實世界中可以區(qū)別于其他對象的“事件”或“物體”。例如,企業(yè)中的每個員工都是一個實體。每個實體有一組特性(屬性)來表示,其中的某一部分屬性可以唯一標(biāo)識實體,如職工實體中的職工號。實體集是具有相同屬性的實體集合。例如,學(xué)校所有教師具有相同的屬性,因此教師的集合可以定義為一個實體集;學(xué)生具有相同的屬性,因此學(xué)生的集合可以定義為另一個實體集。
二、聯(lián)系
兩個不同實體集之間存在一對一、一對多、多對一和多對多的聯(lián)系類型。
(1)一對一:指實體集E1中的一個實體最多 只與實體集E2中的一個實體相聯(lián)系,記為1 : 1。例如一個班級只有一個班主任,一個班主任只屬于一個班級,這種關(guān)系就是一對一。
(2)一對多:表示實體集E1中的一個實體可與實體集E2中的多個實體相聯(lián)系,記為1 : n。例如一個班級可以有多名學(xué)生,一名學(xué)生只能屬于一個班級,班級和學(xué)生之間的關(guān)系就是一對多。
(3)多對一:表示實體集E1中的多個實體可與實體集E2中的一個實體相聯(lián)系,記為n : 1。例如一個班級可以有多名學(xué)生,一名學(xué)生只能屬于一個班級,學(xué)生和班級之間的關(guān)系就是多對一。
(4)多對多:表示實體集E1中的多個實體可與實體集E2中的多個實體相聯(lián)系,記為n :? m。例如一個學(xué)生可以選多門課程,一門課程也可以被多個學(xué)生選擇,學(xué)生和課程之間的關(guān)系就是多對多。
三、實體的屬性
屬性是實體某方面的特性,例如職工實體集具有職工號、姓名、年齡、參加工作時間和通信地址等屬性。每個屬性都有其取值范圍,如職工號為0001~9999的4位整型數(shù),姓名為10位的字符串,年齡的取值范圍為18~60等。E-R 模型中的屬性有如下分類:
(1)簡單屬性:簡單屬性是原子的、不可再分的,例如某人的性別。如果不特別聲明,通常都是指簡單屬性。
(2)復(fù)合屬性:復(fù)合屬性是相對于簡單屬性來說的,復(fù)合屬性可以細(xì)分為更小的部分,即可以劃分為別的屬性,例如通信地址可以進(jìn)一步劃分為省、市、區(qū)和街道等,如果考題考察復(fù)合屬性,一般會特別聲明一下。
(3)單值屬性:指屬性對于一個特定的實體都只有多帶帶的一個值,例如對于一個特定的學(xué)生,在系統(tǒng)中只對應(yīng)一個學(xué)號和身份證號。
(4)多值屬性:多值屬性是相對于單值屬性來說的,在某些特定情況下,一個屬性可以對應(yīng)一組值,例如一個部門可以有多部電話,那么電話的屬性就屬于多值屬性。
(5)NULL屬性:當(dāng)實體在某個屬性上沒有值,或?qū)傩灾滴粗獣r,使用NULL值,表示無意義或不知道。
(6)派生屬性:該屬性可以從其他屬性得出,例如“學(xué)生”實體中有“生日”和“年齡”等屬性,從“生日”可以計算出“年齡”屬性的值,“年齡”屬性就是派生屬性。