天天看點

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

本節書摘來自華章計算機《資料庫技術原理與應用教程(第2版)》一書中的第3章,第3.4節,作者 徐潔磐 操鳳萍,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

概念世界是一個較為抽象化的世界,它給出了資料的概念化結構。概念世界一般用概念模型表示。本書選用e-r模型表示概念世界。

e-r模型(entityrelationship model)又稱實體聯系模型,它于1976年由peter chen首先提出。它用于将現實世界的要求轉化成實體、聯系、屬性等幾個基本概念以及它們間的兩種基本關系,并且用一種較為簡單的圖表示。這種圖稱為e-r圖(entity-relationship diagram),該圖簡單明了,易于使用,是以很受歡迎。

實體是概念世界中的基本機關,它們是客觀存在的且又能互相差別的事物,現實世界中的事物可以抽象成為實體。凡是有共性的實體可組成一個集合稱為實體集(entity set)。例如,學生張三、李四是實體,而他們又均是學生,進而組成一個實體集。

2.屬性(attribute)

現實世界中的事物均有一些特性,這些特性可以用屬性這個概念表示。屬性刻畫了實體的特征,它一般由屬性名、屬性型和屬性值組成。其中,屬性名是屬性辨別,而屬性的型與值則給出屬性的類型與取值。屬性的取值有一定範圍,而這個範圍稱為屬性域(domain)。一個實體往往有若幹個屬性,如實體張三的屬性可以有姓名、性别、年齡等。

3.聯系(relationship)

現實世界中事物間的關聯稱為聯系。在概念世界中,聯系反映了實體集間的一定關系,如醫生與病人這兩個實體集間有治療關系,官、兵間有上司關系,旅客與列工廠中的房間有乘坐關系。

(1)一個聯系中實體集的個數可分為以下幾種:

1)兩個實體集間的聯系。這是一種最為常見的聯系,前面舉的例子均屬兩個實體集間的聯系。

2)多個實體集間的聯系。這種聯系包括三個實體集間的聯系以及三個以上實體集間的聯系。例如,工廠、産品、使用者這三個實體集間存在着工廠提供産品為使用者服務的聯系。

3)一個實體集内部的聯系。一個實體集内往往有若幹個實體,它們間的聯系稱為實體集内部的聯系。例如,某機關職工這個實體集内部有上下級聯系,因為某人(如科長)既可以是一些人的下級(如處長),也可以是另一些人的上級(如大學室内的科員)。

(2)實體集間聯系的個數可以分為以下幾種:

1)實體集間單個聯系:如實體集教師與學生間的教學聯系。

2)實體集間多個聯系:如實體集軍官與士兵實體集,軍官與士兵間的上下級聯系,也有“老鄉”間聯系。

(3)實體集間的聯系實際上是函數關系,這種函數關系有下面幾種:(以兩個實體集為例)

1)一一對應(one to one)的函數關系:這種函數關系是常見的函數關系之一,它可以記為1∶1。例如,學校與校長間具有互相的一一對應關系。

2)一多對應(one to many)或多一對應(many to one)函數關系:這兩種函數關系實際上是同一種類型,它們可以記為1∶m或m∶1。例如,學生與其宿舍房間的聯系是多一對應函數關系(反之則為一多對應函數關系),即多個學生對應一個房間。

3)多多對應(many to many)函數關系:這是一種較為複雜的函數關系,可記為m∶n。例如,教師與學生這兩個實體集間的教學的聯系是多多對應函數關系。因為一個教師可以教授多個學生,而一個學生又可以受教于多個教師。

以上四種函數關系可用圖3-2表示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

e-r模型由實體、屬性、聯系三個基本概念組成,這三個基本概念之間有下面兩種關系。

實體是概念世界中的基本機關,屬性附屬于實體,它本身并不構成獨立機關。一個實體可以有若幹個屬性,實體以及它的所有屬性構成了實體的一個完整描述,是以實體與屬性間有一定聯接關系。例如,在人事檔案中,每個職工(實體)可以有編号、姓名、性别、年齡、籍貫、政治面貌等若幹屬性,它們組成了一個職工(實體)的完整描述。

實體有型與值之别,一個實體的所有屬性組合構成了這個實體的型(如表3-1中人事檔案中的實體,它的型是“編号、姓名、性别、年齡、籍貫、政治面貌”等的組合),而實體中屬性值的組合(如表3-1中的“138,徐英健,女,18,浙江,團員”)則構成了這個實體的值。

相同型的實體構成實體集。實體集由實體集名、實體型和實體值三部分組成。一般來說,一個實體集名可有一個實體型與多個實體值。例如,表3-1是一個實體集,它有一個實體集名“人事檔案簡表”,并有一個實體型(編号、姓名、性别、年齡、籍貫及政治面貌)以及五個實體值,分别是表中的五行。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

聯系也可以有屬性,聯系和它的所有屬性構成了聯系的一個完整描述,是以,聯系與屬性間也有聯接關系。例如,教師與學生兩個實體集間的教學聯系可附有屬性“課程号”、“教室号”。

一般而言,實體集間無法建立直接關系,它隻能通過聯系才能建立起聯接關系。例如,教師與學生之間無法直接建立關系,隻有通過“教學”聯系才能建立互相之間的關系。

上面所述的兩個聯接關系建立的實體(集)、屬性、聯系三者的關系可用表3-2表示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

e-r模型可以用一種非常直覺的圖示形式表示,這種圖稱為e-r圖。在e-r圖中,我們分别用不同的圖形表示e-r模型中的三個概念與兩個聯接關系。

1)實體集表示法。在e-r圖中用矩形表示實體集,在矩形内寫上該實體集之名。實體集學生(student)、課程(course)可用圖3-3表示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

2)屬性表示法。在e-r圖中用橢圓形表示屬性,在橢圓形内寫上屬性名。“學生”實體有屬性學号(sno)、姓名(sn)、年齡(sa)及系别(sd),可以用圖3-4表示。

3)聯系表示法。在e-r圖中用菱形表示聯系,在菱形内寫上聯系名。例如,學生與課程間的“修讀”聯系sc可用圖3-5表示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

三個基本概念間的聯接關系也可用圖形表示。

1)實體集(聯系)與屬性間的聯接關系。屬性依附于實體集,是以,它們之間有聯接關系。在e-r圖中,這種關系可用聯接這兩個圖形間的無向線段表示(一般情況下可用直線)。例如,實體集student有屬性sno(學号)、sn(學生姓名)及sa(學生年齡);實體集course有屬性cno(課程号)、cn(課程名)及pno(預修課号),圖3-6表示了它們之間的聯接。

屬性依附于聯系,它們間也有聯接關系,是以也可用無向線段表示。例如,“修讀”聯系sc可與學生的課程成績屬性g建立聯接,如圖3-7所示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

2)實體集與聯系間的聯接關系。在e-r圖中,實體集與聯系間的聯接關系可用聯接這兩個圖形間的無向線段表示。例如,實體集student與聯系sc間有聯接關系,實體集course與聯系sc間也有聯接關系,是以它們間可用無向線段相聯,如圖3-8所示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

有時為了進一步刻畫實體間的函數關系,還可線上段邊上注明其對應的函數關系,如1∶1、1∶n、n∶m等。例如,student與course間有多多對應函數關系,此時可以用圖3-9表示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

實體集與聯系間的聯接可以有多種,上面所舉例子均是兩個實體集間聯系(即二進制聯系),也可以有多個實體集間聯系(即多元聯系)。例如,工廠、産品與使用者間的聯系fpu是一種三元聯系,可用圖3-10表示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

一個實體集内部的聯系,如某公司職工(employee)與上下級管理(manage)間的聯系,可用圖3-11a表示。

實體集間可有多種聯系,如教師(t)與學生(s)之間可以有教與學(e)聯系,也可有上司與被上司(c)間的聯系,可用圖3-11b表示。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

用矩形、橢圓形、菱形以及按一定要求互相間相聯接的線段構成了一個完整的e-r圖。

【例3.1】前面所述的實體集student、course、它們的屬性和它們間聯系sc以及附屬于sc的屬性g,構成了一個有關學生、課程以及他們的成績和他們間的聯系的概念模型。圖3-12給出了該模型的e-r圖。

《資料庫技術原理與應用教程(第2版)》——3.4 概念世界與概念模型

e-r模型中的三個基本概念以及它們間的兩種基本關系能将現實世界中錯綜複雜的現象抽象成簡單明了的幾個概念及關系,具有極強的概括性,是以,e-r模型目前已成為表示概念世界的有力工具。