[1031 - 資料庫管理概論] Chapter 3 The Enhance E-R Model

Course Point
  1. E-R model 的原始觀念
    1. Entity —CH2
    2. Attribute —CH2
    3. Relationship —CH1
  2. Enhance entity-relationship model (EER model) : 原始的E-R model加上新的塑模觀念。
    Supertype (父型態) : 表示一般性的屬性,每個Entity Type 都有,較廣義。
    Subtype ( 子型態) : 表示特殊性的屬性,不是所有Entity Type都有的屬性,或是與子型態之Entity Type之間有特殊關係的Entity Type之屬性。子型態為父型態的子集合。
    e.g. 車子為父類別,廂型車、運動車,小客車為子型態。
    與父型態有特殊關係的為父型態,與子型態有特殊關係的為子型態。
  3. Attribute Inheritance (屬性繼承) : 子型態的instance及屬性、關係也是父型態的instance及屬性、關係。但父型態的不一定是子型態的。
  4. 發展出Supertype與Subtype的方法
    1. Generalization (一般化) : bottom-up process (由下往上,由特殊的Entity types一般化後定義出一般的Entity type)。
      例如 : 從CAR, TRUCK, MOTOCYCLE Entity type找出這三個一般的Entity type的共通屬性,定義為VEGICLE Entity type—supertype,而有留下其特殊的屬性之Entity types則成為Subtypes,若沒有特殊屬性的Entity type則不會畫在圖上。
    2. Specialization (特殊化) : up-bottom process (由上往下,由一般的Entity types特殊化後定義出特殊的Entity type)。
      例如 : PART (零件) Entity type的屬性中有一些屬性不是所有零件都有的,則將此Entity type特殊化,產生subtypes。
      多值屬性用一個Associative跟Entity type的關係來表示較有效率且不會confuse。
  5. 在畫Supertype與Subtype時要注意的地方
    1. Completeness constraint (完整性限制) : 探討一個Supertype是否必須至少屬於一個Subtype。
      1. Total specialization rule : Supertype的每個instance都必須至少屬於一個Subtype。例如 : 病人必須屬於門診病人或住院病人,Supertype到圓圈圈之線條以雙線條表示。
      2. Partial specialization rule (部分性限制) : Supertype有些instance可以不屬於任何一個Subtype。例如 : 車子可以為卡車 or 廂型車,也可以都不是,Supertype到圈圈之線條以單線條表示。
    2. Disjointness comstraint (互斥性限制) : 探討一個Supertype是否能夠同時屬於兩個(或以上)之Subtype。
      透過 Subtype discriminator (子型態鑑別器) 值來判斷。
      1. Disjoint rule : 一個Supertype不能同時屬於兩個(或以上)之Subtype (Subtype沒有交集,為Sample屬性),符號以圈圈中標示’d’。例如 : 病人只能是門診病人或住院病人。
        在Supertype到圈圈的線上寫上Subtype discriminator的簡單屬性名稱,在圈圈到Subtype的線上寫上Subtype discriminator的屬性值來表示Supertype的instance是屬於哪一個Subtype。
      2. Overlap rule : 一個Supertype可能同時屬於兩個(或以上)之Subtype (Subtype有交集,),符號以圈圈中標示’o’。例如 : 零件可以是購買來的或是自行製造來的。
        在Supertype 到圈圈的線上寫上Subtype discriminator的組合屬性名稱,在圈圈到Subtype的線上寫上各自的值。
    3. 若Subtype也有其Subtype則會形成一個Supertype/Subtype的hierarchy (階層)
      階層的最頂端為Root
      Subtype可以繼承所有與其有關連的Supertype。(可以繼承其Supertype的Supertye的屬性)
  6. 若Entity太大(Entity type太多)則可以利用Entity Clustering(個體群集)的方式來呈現。
    將Entity之間的關係組成一個抽象Entity type (Entity Cluster,個體群組)。
  7. 套裝資料模型
    1. Universal data model : 一般化的通用的模型。
  8. 松古家具行的ERD




如果有多對多,則需新增一個Relation,有敘述的為主方;無告知基數的話,最小基數為0最大為多。
Relationship 為動詞,Relation為單數名詞。

留言