- 電子商務數據庫技術(第3版)
- 潘郁
- 2250字
- 2019-12-11 15:42:18
2.2.2 概念數據模型
數據庫設計工作比較復雜,它將現實世界的數據組織成符合具體數據庫管理系統所采取的數據模型,一般情況下不可能一次到位。在實際應用中,很少直接采用傳統數據模型進行數據庫設計。P.P.S.Chen于1976年提出了實體-聯系方法。這種方法簡單、實用,所以得到了非常普遍的應用,也是目前描述概念數據模型最常用的方法。它所使用的工具即為E-R圖。E-R圖所描述的現實世界的信息結構稱為組織模式或企業模式,同時把這種描述結果稱為E-R模型。E-R模型可以進一步轉換為任何一種DBMS所支持的數據模型。因此,提出E-R模型的目的有:①企圖建立一個統一的數據模型,以概括三種傳統數據模型(層次模型、網狀模型和關系模型);②作為三種傳統數據模型之間互相轉換的中間模型;③作為超脫DBMS的一種概念數據模型,以比較自然的方式模擬現實世界。
E-R模型不同于傳統數據模型,它不是面向實現的,而是面向現實世界的。設計E-R模型的出發點是有效和自然地模擬現實世界,而不是首先考慮它在機器中如何實現。
E-R圖具有以下三要素。
(1)實體集。
用矩形框表示,框內標注實體名稱。
(2)屬性。
用橢圓形框表示,并用連線與實體集連接起來。如果屬性較多,為使圖形更加簡明,有時也將實體集與其相應的屬性另外單獨用列表表示。
(3)實體集之間的聯系。
實體集間的聯系用菱形框表示,框內標注聯系名稱,并用連線將菱形框分別與有關實體集相連,并在連線上注明聯系類型。
實體集間的聯系類型是指一個實體集中的每一個實體與另一個實體集中多少個實體存在聯系,并非指一個矩形框通過菱形框與另外幾個矩形框畫連線。
實體集間的聯系雖然復雜,但都可以分解為少數幾個實體集間的聯系,最基本的是兩個實體集間的聯系。聯系抽象化后可以歸結為以下三種類型。
(1)一對一聯系(1:1)。
設A、B為兩個實體集。若A中的每個實體至多和B中的一個實體有聯系,反過來,B中的每個實體至多和A中的一個實體有聯系,則稱A和B是一對一(1:1)聯系。如一個公司只有一個總經理,同時一個總經理不能在其他的公司兼任。注意“至多”一詞的含義,一對一聯系不一定都是一一對應的關系。如圖2.4所示為一對一聯系。

圖2.4 一對一聯系
(2)一對多聯系(1:n)。
如果A中的每個實體可以和B中的幾個實體有聯系,而B中的每個實體至多和A中的一個實體有聯系,那么A對B屬于一對多(1:n)聯系。這類聯系比較普遍,如部門與職工是一對多聯系,因為一個部門有多名職工,而一名職工只在一個部門就職。又如,一個學生只能屬于一個班級,而一個班級有很多個學生。如圖2.5所示為一對多聯系。
一對一聯系可以看作是一對多聯系的一個特殊情況,即n=1時的特例。

圖2.5 一對多聯系
(3)多對多聯系(m:n)。
若A中的每個實體可與B中的多個實體有聯系,反過來,B中的每個實體也可以與A中的多個實體有聯系,則稱A對B或B對A是多對多聯系(m:n)。如研究人員和科研課題之間是多對多聯系:一個人可以參加多個課題,一個課題可以由多個人參加。如圖2.6所示為多對多聯系。

圖2.6 多對多聯系
E-R圖中的聯系類型有遞歸聯系、二元聯系和多元聯系。
(1)遞歸聯系。
遞歸聯系即一個實體集與其本身的聯系。如“機關職工”實體集,某些職工處在領導崗位上,他們與其他的職工是管理與被管理的關系。用E-R圖表示的遞歸關系如圖2.7所示。

圖2.7 遞歸關系
(2)二元聯系。
二元聯系即兩個實體集之間的聯系。圖2.4、圖2.5和圖2.6中的聯系都是二元聯系。
(3)多元聯系。
多元聯系是指三個及以上實體集之間的聯系。例如,一個供應商可以向多個項目提供多種材料,一種材料可以被多個項目使用,由多個供應商提供,一個項目使用由多個供應商提供的各種材料。它們之間的多元聯系如圖2.8所示。

圖2.8 三個實體間的多對多聯系
E-R圖為抽象地描述現實世界提供了一種有力工具,它所表示的概念數據模型是各種數據模型的共同基礎,進行數據庫設計時必然要用到此方法。
繪制E-R圖的具體步驟如下。
步驟一:確定所有的實體集。
步驟二:確定實體集之間的聯系。
步驟三:選擇實體集應包含的屬性。
步驟四:確定實體集的關鍵字,用下劃線在屬性上表明關鍵字的屬性組合。
步驟五:確定聯系的類型,在用連線將表示聯系的菱形框聯系到實體集時,在線旁注明是1或n(多)來表示聯系的類型。
當E-R圖比較復雜、實體集與聯系都較多時,為了簡潔也可以不在同一張圖上畫出屬性,只在一張圖上繪出實體集與聯系的圖形,另外再分別給出每個實體集或聯系的屬性。
怎樣確定實體集、聯系和屬性,沒有一個固定的方法,其取決于數據庫設計人員對于所分析的應用模式中的對象的重要程度的理解。因此,一個數據庫的E-R圖不是唯一的,強調不同的側面,按照不同的理解,可以得到不同的E-R圖。
(1)真實性。
E-R圖是用于描述現實世界的概念數據模型,因此必須真實地反映現實世界,不能無中生有。對于復雜的實體集和聯系,必須先弄清它們的“來龍去脈”,對于它們的屬性也要逐一考察,看是否確有必要考慮這方面的特征,以免給以后的數據庫設計帶來隱患。
(2)簡單性原則。
現實世界是很復雜的,事物之間都是普遍聯系的。但是在繪制E-R圖時需要對客觀現實進行簡化,只對與系統設計目的相關的部分進行建模。
(3)實體集與屬性確定規則。
由于實體集和屬性之間并沒有在形式上的明顯界限,所以在確定實體集或屬性時通常遵循著以下原則。
①作為屬性,不能再具有需要描述的信息,屬性必須是不可再分的數據項,不能包含有其他的屬性。
②屬性不能與其他的實體集具有聯系,在E-R圖中,只有實體集與實體集之間才能有聯系。