官术网_书友最值得收藏!

項目1.2 構建E-R概念模型

模型,特別是具體的實物模型,人們并不陌生。例如,一張地圖、一組建筑設計沙盤、一架精致的航模飛機,都是具體的模型。模型是對現實世界特征的模擬和抽象。數據模型也是一種模型,它是對現實世界數據特征的抽象,是對客觀事物及其聯系的數據描述,是對現實世界(存在于人腦之外的客觀世界)的模擬。在數據庫中用數據模型來抽象、表示和處理現實世界中的數據和信息。

數據模型主要可分為三種類型:概念模型、邏輯模型和物理模型。概念模型是按用戶的觀點來對數據和信息建模,主要用于數據庫設計;邏輯模型是按計算機系統的觀點對數據進行建模,主要用于DBMS的實現;物理模型是對數據最底層的抽象,它描述數據在磁盤上的存儲方式和存取方法。

要將現實世界轉變為機器能夠識別的形式,必須經過兩次抽象,即先使用某種概念模型為客觀事物建立概念級的模型,將現實世界抽象為信息世界,再把概念模型轉變為計算機上某一DBMS支持的邏輯模型,將信息世界轉變為機器世界,如圖1-3所示。

1 構建ER概念模型

圖1-3 數據的轉換

概念模型用于信息世界的建模,是現實世界到信息世界的第一層抽象,是數據庫設計人員進行數據庫設計的有力工具,也是數據庫設計人員和用戶之間進行交流的語言。因此,概念模型一方面應該具有較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識,另一方面,它還應該簡單、清晰、易于理解。

概念模型的表示方法很多,其中最為著名、最為常用的是P.P.S.Chen于1976年提出的實體-聯系方法(Entity-Relationship Approach)。該方法用E-R圖(實體-聯系圖)來描述現實世界的概念模型,E-R方法也稱為E-R概念模型。下面介紹E-R概念模型中涉及的主要概念及E-R圖的繪制方法。

任務1.2.1 認識實體

客觀存在并可以相互區分的事物叫實體。從具體的人、物、事件到抽象的狀態與概念,都可以用實體抽象地表示。例如,在學校里,一個學生、一個教師、一門課程都可稱為實體。同類的多個實體可以構成實體集,如多個學生實體可構成學生實體集。在不引起混淆的情況下,本書有時用實體來表示實體集的概念。

例1-1】 在教學管理系統所描述的數據內容中,有哪些可作為實體?

分析:在該教學管理系統中,作為具體存在的人(如:學生、教師)和作為抽象的概念(如:學院、課程等)都應視為實體。

任務1.2.2 理解屬性

屬性是實體所具有的某些特性,通過屬性對實體進行刻畫。實體由屬性組成。一個實體本身具有很多屬性,能夠唯一標識實體的屬性稱為該實體的鍵。例如,學號是學生實體的鍵,每個學生都有一個屬于自己的學號,通過學號可以唯一確定是哪位學生,在一個學校里,不可能有兩個學生具有相同的學號。實體由哪些屬性組成取決于人們所關心的內容。例如,高校學生實體可由學號、姓名、年齡、性別、籍貫、專業和學院等組成,常表示為:學生(學號、姓名、年齡、性別、籍貫、專業、學院編號)。有了這個表示后,將(“2019130143”“馬力華”“19”“男”“重慶”“信息安全”“01”)這些屬性值組合起來用于表示馬力華這個學生。

例1-2】 教學管理系統中各實體分別有哪些屬性?

分析:可根據問題描述和對用戶調研獲取的信息,總結出各實體的屬性集合。

學院(學院編號、學院名稱、學院院長、辦公室、辦公電話)

學生(學號、姓名、年齡、性別、籍貫、專業、學院編號)

教師(教工號、姓名、性別、職稱、專業方向)

課程(課程號、課程名、學時數、學分、教材)

任務1.2.3 判別聯系的類型

現實世界中的事物之間是有聯系的,這些聯系必然要在信息世界加以反映。例如,教師實體與學生實體之間存在著教和學的聯系。實體之間的聯系可分為以下三類。

1.一對一聯系(1:1)

設有兩個實體集A和B。如果A中至多有一個實體與B中的一個實體有聯系,且B中至多有一個實體與A中的一個實體有聯系,則稱A和B之間存在一對一聯系,記作1:1。例如,看電影時,觀眾和座位之間就是一對一聯系,因為一個人只能坐一個座位,一個座位只能由一個人來坐。

2.一對多聯系(1:n

設有兩個實體集A和B。如果A中的一個實體與B中的若干實體有聯系,但B中每個實體只與A中的一個實體相聯系,則稱A和B之間存在一對多聯系,記作1:n。例如,班級與學生之間是一對多聯系,因為一個班中可以有若干學生,但一個學生只能屬于一個班。

3.多對多聯系(m:n

設有兩個實體集A和B。如果A中的一個實體與B中的若干實體相聯系,且B中每個實體也與A中的多個實體相聯系,則稱A和B之間存在多對多聯系,記作m:n。例如,學生與課程之間是多對多聯系,因為一個學生可以選修若干課程,一門課程可以被若干學生選修。

例1-3】 指出教學管理系統中學院和教師、學院和學生、學院和課程、教師和學生、學生和課程、教師和課程等實體間各種聯系的類型。

分析:一個學院有多個教師,但一個教師只能屬于一個學院,所以,學院和教師是(1:n);同理,學院和學生是(1:n);一個學院可開設多門課程,一門課程只能由一個學院開設,所以,學院和課程是(1:n);一位教師可同時輔導多個學生,而一個學生在某一個時間只能由一位教師輔導,所以,教師和學生是(1:n);一個學生可以選修多門課程,一門課程可以被多個學院選修,所以,學生和課程是(m:n);一位教師可以講授多門課程,一門課程可以被多位教師講授,所以,教師和課程是(m:n)。

【課堂實踐1】

判斷下列實體間聯系的類型。

1)班級和正班長2)班級和班委3)班級和學生4)供應商和商品

5)商店和顧客6)工廠和產品7)出版社和作者8)商品和超市

任務1.2.4 繪制E-R圖

E-R圖(實體-聯系圖)是抽象描述現實世界的有力工具。它通過繪圖將實體及實體間的聯系刻畫出來,為客觀事物建立概念模型。

1.建立實體聯系圖的步驟

下面以某高校的教學管理系統為例,說明E-R圖的繪制方法。

第1步:確定現實系統可能包含的實體。

為簡單起見,假設該教學管理系統所涉及的實體有學院、教師、學生、課程。

第2步:確定每個實體的屬性,特別要注明每個實體的鍵。

鍵是一個實體的屬性集合中可唯一確定具體個體的某一個或幾個屬性的集合。教學信息管理系統的實體包含的屬性和鍵如下。

1)對學院實體,屬性有學院編號、學院名稱、院長、辦公室、辦公電話,其中學院編號是鍵。

2)對教師實體,屬性有教工號、姓名、性別、年齡、職稱、專業方向,其中教工號是鍵。

3)對學生實體,屬性有學號、姓名、性別、年齡、籍貫、專業、學院編號,其中學號是鍵。

4)對課程實體,屬性有課程號、課程名、學時、學分、教材,其中課程號是鍵。

第3步:確定實體之間可能存在的聯系,并結合實際情況給每個聯系命名。

教學管理系統中各實體之間存在如下聯系。

1)一位教師可以講授多門課程,一門課程可以被多位教師講授,這里將教師與課程之間的聯系命名為“講授”。

2)一個學生可以選修多門課程,一門課程可以被多位學生選修。這里將學生與課程之間的聯系命名為“選修”。

3)在某個時間和地點,一位教師可指導多位學生,但每個學生在某個時間和地點只能被一位教師指導。這里把教師和學生之間的聯系命名為“指導”。

4)一個學院有多名教師,一個教師歸屬于一個學院。這里將學院與教師之間的聯系命名為“聘用”。

5)一個學院錄取多名學生,一個學生歸屬于一個學院。這里將學院與學生之間的聯系命名為“錄取”。

6)一個學院開設多門課程,一門課程由一個學院管理。這里將學院與課程之間的聯系命名為“開課”。

在對聯系進行命名時,一般使用動詞,當使用該動詞連接兩邊的實體時,通常能表達一個符合邏輯的且比較完整的意思。例如,使用動詞“講授”為教師與課程的聯系命名,且教師“講授”課程是一個符合邏輯的完整句子。這也是判斷實體之間是否有聯系和對聯系命名是否恰當的簡單標準。

第4步:確定每個聯系的種類和可能有的屬性。

有時為了更好地刻畫聯系的某些特性,需要對聯系指定屬性。根據教學管理系統中實體間的聯系情況,可以確定以下聯系的類型。

1)教師和課程之間的“講授”是m:n聯系。

2)學生和課程之間的“選修”是m:n聯系。為了更好地刻畫選修的結果,為“選修”聯系指定成績屬性。

3)教師和學生之間的“指導”是1:n聯系。為了更好地刻畫指導的環境因素,為“指導”聯系指定時間和地點屬性。

4)學院與教師之間的“聘用”為1:n聯系。為了說明聘用的關系,為“聘用”聯系指定條件、年限屬性。

5)學院與學生之間的“錄取”為1:n聯系。為了明確錄取的時間和年級,為“錄取”聯系指定時間、年級屬性。

6)學院和課程之間的“開課”為1:n聯系。

第5步:繪制E-R圖,建立概念模型,完成現實世界到信息世界的第一次抽象。

2.繪制E-R圖的方法

在E-R圖中有如下規定。

1)用長方形表示實體,在框內寫上實體名。

2)用橢圓形表示實體的屬性,并用下畫線標注實體的鍵,用無向邊把實體與其屬性連接起來。

例如:學院、教師、學生、課程四個實體及屬性可以表示成如圖1-4所示的形式。

3)用菱形表示實體之間的聯系,菱形內寫上聯系名。用無向邊把菱形與有關的實體連接,在無向邊旁標上聯系的類型。若實體之間的聯系也有屬性(實體以外的屬性),則把屬性和菱形也用無向邊連接起來。

例如,圖1-5是教學管理中教師、學生、課程三個實體的E-R圖(為了使圖形簡潔,這里未將學院實體表達在里面)。

4)如果實體的屬性太多,為了使E-R圖更清楚明了,可以在E-R圖中只繪制實體之間的聯系,如圖1-6所示,而將實體及屬性放到另一幅圖中表示,如圖1-4所示。這樣,教學管理的E-R圖則由圖1-4和圖1-6組成。

圖1-4 E-R圖中實體及屬性的表示

圖1-5 教學管理E-R圖

圖1-6 實體聯系E-R圖

3.注意事項

在建立實體-聯系模型時,應注意以下幾個問題。

1)實體-聯系模型要全面正確地刻畫客觀事物,各類命名要清楚明了,易于理解。

2)實體中的鍵應注意確保唯一性,即作為鍵的屬性應該是能夠唯一識別實體的屬性(不一定是單個屬性,也可以是某幾個屬性的組合)。

3)實體間的聯系常常通過實體中某些屬性的關系來表達,因此在選擇組成實體的屬性時,應考慮到如何更好地實現實體間的聯系。

4)有些屬性是通過實體間的聯系反映出來的,如選修中的分數屬性,對這些屬性應特別注意,因為它們經常是在將概念模型向邏輯模型轉換時的重要數據項。

5)前面給出的教學管理例子中,聯系都是存在于兩個實體之間的,且實體之間只存在一種聯系,這是最簡單的情況。實際中,聯系可能存在于多個實體之間,實體之間可能有多種聯系。

6)E-R概念模型具有客觀性和主觀性兩重含義。E-R概念模型是在客觀事物或系統的基礎上形成的,在某種程度上反映了客觀現實,反映了用戶的需求,因此E-R概念模型具有客觀性。但E-R概念模型又不等同于客觀事物本身,它往往反映事物的某一方面,至于選取哪個方面或哪些屬性以及如何表達則取決于觀察者本身的目的與狀態。從這個意義上說,E-R概念模型又具有主觀性。

【課堂實踐2】

1)在如圖1-6所示的E-R圖中加入學院實體,添加聘用、開課、錄取三個聯系,并注明屬性和聯系類型。

2)設有商店和顧客兩個實體。商店有屬性:商店編號、商店名、地址、電話。顧客有屬性:顧客編號、姓名、地址、年齡、性別。假設一個商店有多個顧客購物,一個顧客可以到多個商店購物,顧客每一次去商店購物有消費金額和日期。試繪制E-R圖,并注明屬性和聯系類型。

主站蜘蛛池模板: 禹州市| 剑川县| 东至县| 苍溪县| 三台县| 小金县| 宜章县| 宾阳县| 页游| 贵定县| 扬州市| 广宗县| 呼伦贝尔市| 札达县| 汾阳市| 南皮县| 南溪县| 沙洋县| 左贡县| 怀来县| 民丰县| 祁连县| 上饶市| 卓资县| 包头市| 乐山市| 沾化县| 当雄县| 兖州市| 根河市| 罗甸县| 南康市| 青海省| 武胜县| 昆明市| 西乡县| 原平市| 建始县| 万盛区| 武定县| 靖边县|