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