- 21天學通SQL Server
- 秦婧 劉存勇編著
- 1976字
- 2019-03-01 13:16:15
1.4 繪制E-R圖設計數據庫
E-R(Entity-Relationship)圖又叫實體聯系圖、E-R模型,是描述現實世界的概念模型。在關系型數據庫設計之前,首要的任務就是繪制E-R圖。數據庫設計人員一定要根據繪制的E-R圖來完成最后的數據庫設計,這樣才能確保數據庫設計的準確性和完整性。本節就詳細地講解如何繪制E-R圖。
1.4.1 繪制E-R圖的基本要素
在E-R圖中涉及的基本要素有實體,屬性、碼、域、聯系及屬性等,下面就對實體、屬性及關系這三個要素進行詳細說明。
(1)實體(Entity)
實體是客觀存在并可以相互區別的事物。實體既可以是人、物也可以是抽象的概念,比如,一個醫生,一個司機,一本書都可以認為是一個實體。相同類型的實體可以構成一個實體集(Entity Set),比如,某車隊的全體司機就可以構成一個實體集。在E-R圖中實體一般用矩形框表示,矩形框內寫明實體的名稱,例如,表示一個司機的實體,如圖1.1所示。

圖1.1 司機實體的表示
(2)屬性(Attribute)
實體所具有的某一特性都可以稱為一個屬性,一個實體可由若干個屬性組成。在E-R圖中一般用橢圓形表示,并用無向邊將其與相應的實體連接起來,比如圖書的價格、名稱、作者、出版社等信息都可以稱為屬性。例如,給圖1.1所示的司機實體加上姓名、年齡、性別、駕齡、所屬車隊5個屬性,如圖1.2所示。

圖1.2 司機屬性的表示
(3)關系(Relationship)
關系是指信息世界中實體內部或實體之間的聯系。關系分為實體內部關系和實體之間的關系。實體內部關系通常是指組成實體的各屬性之間的關系;實體之間的關系通常是指不同實體集之間的關系。聯系在E-R圖中用菱形框表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上關系的類型。實體之間存在著三種關系類型,分別是1對1、1對多、多對多,它們反映到E-R圖中為相應的關系類型,即1:1、1:N和M:N。
● 1對1(1:1):1對1關系是指對于實體集A與實體集B,A中的每一個實體至多與B中一個實體有關系;反之,在實體集B中的每個實體至多與實體集A中一個實體有關系。比如,給司機分車,“司機”實體和“車”實體之間的關系,每一個司機最多可以分得一個車,同時每一個車最多只能有一個司機來開。用圖形表示如圖1.3所示。

圖1.3 1對1關系
● 1對多(1:N):1對多關系是指實體集A與實體集B中至少有N(N>0)個實體有關系;并且實體集B中每一個實體至多與實體集A中一個實體有關系。比如:“司機”實體和“車隊”實體之間的關系,一個車隊里面有若干個司機,而每一個司機只屬于這一個車隊。用圖形表示如圖1.4所示。

圖1.4 1對多關系
● 多對多(M:N):多對多關系是指實體集A中的每一個實體與實體集B中至少有M(M>0)個實體有關系,并且實體集B中的每一個實體與實體集A中的至少N(N>0)個實體有關系。比如,學生選課,一個學生可以選擇多門課程;同時,一門課程也可以被多個學生選。用圖形表示如圖1.5所示。

圖1.5 多對多聯系
其實,實體之間的這三種關系,不僅對兩個實體有效,也可以表示多個實體之間的關系。
1.4.2 E-R圖繪制實例
繪制一個學生選課系統的E-R圖,在學生選課系統中可以分析出學生、課程、專業、教師四個實體,下面分別繪制每個實體屬性圖并在最后繪制一個整體的E-R圖。
1.學生實體屬性圖
學生實體主要包括學號、姓名、年齡、性別、身份證號、聯系方式、專業7個屬性,實體屬性圖如圖1.6所示。

圖1.6 學生實體屬性圖
2.課程實體屬性圖
課程實體主要包括課程編號、課程名稱、授課時間、授課教師、所屬專業、課程描述6個屬性,實體屬性圖如圖1.7所示。

圖1.7 課程實體屬性圖
3.專業實體屬性圖
專業實體主要包括專業編號、專業名稱兩個屬性,實體屬性圖如圖1.8所示。

圖1.8 專業實體屬性圖
4.教師實體屬性圖
教師實體主要包括教師編號、姓名、年齡、性別、專業、職稱、聯系方式7個屬性,實體屬性圖如圖1.9所示。

圖1.9 教師實體屬性圖
5.學生選課系統E-R圖
在繪制整體的E-R圖之前,要理解學生選課系統的流程。具體流程是由學生查看所有的課程信息,查看自己專業開設的課程及每門課程的授課教師等情況,然后學生根據需要選擇要選修的課程,最后將學生所選修的課程存到學生選課信息表中。那么,上述的四個實體之間是什么關系呢?
● 學生和課程之間的關系是多對多的關系,1門課程可以被多個學生選修,同時,1個學生也可以選修多門課程,但是課程不能重復。
● 教師和課程之間的關系是多對多的關系,1門課程可以有多個教師教,同時,1個老師也可以教多門課程。例如,不同的專業都可以開設計算機基礎課,那么所有專業的計算機基礎課可以是同一個老師教也可以是不同的老師教;同理,1個計算機老師既可以講計算機基礎課也可以講其他的計算機課程。
● 課程和專業之間的關系是多對多的關系,1個專業的課程都由多個課程組成,每1門課程特別是公共課可以屬于多個專業。例如,計算機基礎課可以被多個專業開設。
● 學生和專業之間的關系是多對1的關系,1個學生只能屬于1個專業,而1個專業可以由多個學生組成。
具體的E-R圖,如圖1.10所示。

圖1.10 選課系統的E-R圖