2-1個體-關係模式(E-R Model) 2-2關聯式資料模式簡介  
2-3個體-關係模式與關聯式綱要的轉換 2-4關係轉換 2-5擴充性個體-關係模式
   

資料庫系統為了解決真實世界的問題,將真實世界的情況抽象化。而資料模式(Data Model) 是一種抽象化的方法,用以描述真實世界的情況。利用資料模式來將真實世界抽象化成為資料庫結構的性質。而資料庫結構包括了:
 

資料型態(Data Types)

資料關係(Relationships)

整合性限制(Integrity Constraints)

運算(Operations)


而在資料庫領域中,資料模式又因不同的目的與用途而可分為以下幾種:
 

概念性資料模式(Conceptual Data Model)

表示性資料模式(Representational Data Model)

實體資料模式(Physical Data Model)


概念設計是將使用者對資料庫的需求,利用概念綱要表示。常用的概念性設計是使用個體-關係模式(Entities-Relational Model,簡稱E-R Model)為工具。
 

資料庫中的資料描述了真實世界的抽象化情形,每個物件在個體-關係模式中被表示成個體。而依其存在條件又可分為兩類:

弱個體(Weak Entity)

一般個體(Regular Entity)

   

每一個個體都有一些屬性來描述它,而同一類型的個體具有共同的屬性,例如:所有員工都具備員工代碼、姓名、薪資、所屬部門等等屬性。屬性可以是下面的型態:

單一屬性(Single attributes)

多值屬性(Multivalued attributes)

複合屬性(Composite attributes)

衍生屬性(Derived attributes)

虛值(Null Value)屬性

可適用的虛值(Applicable Null Values)

不可適用的虛值(Inapplicable Null Values)

完全不知道的虛值(Totally Unknown)

   

鍵值是用來識別每一個個體的屬性,其屬性是唯一的,兩個不同的個體不可以有相同的鍵值。例如:身份證號碼為人的鍵值。鍵值可能為單一屬性,但有時可能必須結合兩個或兩個以上的屬性才有唯一性存在,因此鍵值可能是複合屬性。
 

關係為不同個體(Entities) 間的一種結合性(Association),定義為參與某一關係的個體型態之個體實例數目。通常我們使用 0,1,N 三個基數來表示。0 表示沒有個體實例參與關係。1 表示一個個體實例參與關係。N 表示有一個以上的個體實例參與關係。在關係中介入的個體稱為該關係的「參與個體」(Participant)。關係中參與個體的個數稱為該關係的階度(Degree)

假設 R,代表一個關係型態(Relationship Type),個體型態(Entity Type) E 為 R 的參與個體。如果 E 中的每一個實例(Instance) 都至少參與 R 中的一個實例時,稱 E 在 R 中的參與是「完全參與」(Total Participation);否則稱之「部份參與」(Partial Participation)

 

兩個個體之間的關係,可依照參與者參與的關係實例數目,可分為:

一對一(One-to-one, 1:1)

一對多(One-to-many, 1:N

多對多(Many-to-many, M:N)



圖 1 完全參與的例子與部份參與的例子(一對一關係)
 


圖 2 一對多的例子
 


圖 3 多對多的例子

以不同的角度來看個體時,一個個體可以再細分為多個不同的型態,稱之子型態(Subtype),而原來的個體型態稱為父型態(Supertype)
 



圖 4 子型態的例子



圖5 員工、部門與專案的個體-關係圖


個體-關係模式可以用“個體-關係圖(E-R Diagram)”來加以完整描述,其規則如下:

個體(Entity)

 

每一個個體以一個矩形代表。若是一般個體(Regular Entity),則以單框矩形表示;若是弱個體(Weak Entity) 則以雙框矩形表示。
 

 

         

一般個體                    弱個體
   

屬性(attribute)

 

每一個屬性以一個橢圖形表示,若為主鍵(Primary Key),則在其屬性名稱下加底線;若為多值屬性(Multivalued),則為雙框圖形。複合屬性(Composite attributes) 與衍生屬性(Derived attributes) 的表示,如下圖所示。
 

 

                                     

一般屬性          
多值屬性
        複合屬性                 
衍生屬性

 

子型態(Subtype) 與父型態(Supertype)

 

子型態與父型態之間以直線連接。
 

 
   

個體與個體之間的關係(Relationship)

 

個體間的關係以菱形表示,若是一般關係則以單框菱形表示;若為弱關係則以雙框菱形表示。
 

 

    

一般關係

弱關係

 

「完全參與」 (Total Participation) 與 「部份參與」(Partial Participation)

 

我們以雙橫線來表示 「完全參與」。若是「部份參與」(Partial Participation)則我們以橫線代替。例如:圖 6 為一對一「完全參與」與「部份參與」E-R 圖,圖 7 為一對多「部份參與」E-R 圖,圖 8 為多對多「完全參與」E-R 圖,圖 9 為多對一「完全參與」與「部份參與」E-R 圖。
 

 


圖 6一對一「完全參與」與「部份參與」E-R 圖
 

 



圖 7 一對多「部份參與」E-R 圖
 

 


圖8多對多「完全參與」E-R 圖

 




圖 9多對一 「完全參與」與「部份參與」E-R 圖
 

要如何將使用者的需求繪製成E-R圖(E-R Diagram)呢?系統開發者通常是以訪談的方式,將問題及需求作成文字型式的記錄。然後再把文字轉成E-R圖通常有以下幾個原則:
 

1. 句子中的「名詞」可對應成「個體」,「動詞」可對應成「關係」,「名詞的集合」可對應成「個體型態」。例如:”供應商 S 供應產品 P”,其中「供應商」和「產品」為名詞,「供應」為動詞,因此可轉成以下的E-R 圖:


 

2. 句子中描寫名詞的「形容詞」或「所有格」可應成個體型的「屬性」。例如:”供應商 S 的名字為華北企業公司」,其中「供應商」為名詞,「的名字」為所有格,,因此這句子可以轉成以下的E-R 圖:

3. 句子中描述動詞的「副詞類」可對應成「關係上的屬性」。例如:”供應商 S 供應數量 Q 的產品 P”,其中「數量」為副詞,因此這句子可以轉成以下的E-R 圖: