[1031 - 資料庫管理概論] Chapter 4 Database design

Course Point
  1. 資料庫建置的第一個步驟為概念資料塑模:產生概念資料模型(E-R model),了解使用者的需求。
  2. 邏輯資料庫設計 : 將概念資料模型(如E-R model)轉為特定資料庫技術的邏輯資料模型,為資料庫建置的第二個步驟。
    由於index table 中的資料已經被排序過了,因此可以採用「二元搜尋法」,排序速度以及搜尋速度會變快。
    由Schema (綱要) 來描述資料庫的結構。(Table name, Attribute, Primary key, Foreign key)。
  3. 關聯式資料庫重要的觀念 (Rlational data modeling)
    1. Data structure (資料庫的結構) : Data are organized in the form of table, with rows and column.
      Relation ≡ Table : 為有名字的二維資料表格,其包含有名字的欄位(屬性)、且任意個數的紀錄,為關聯式資料庫的唯一一種資料結構。
      由schema描述。
      結構包含Relation的名字、屬性、PK、FK。
      使用者看到的都是表格,利用表格來呈現資料,將表格視為集合來進行處理。
      當要操作資料時,便是針對表格去執行以集合理論為基礎的數學運算,而其執行結果還是表格。
    2. Data manipulation(如何處理資料) ex. 使用SQL language.
    3. Data integrity(資料的正確性)。
    4. Primary key : 能夠為一識別一筆紀錄,以底線表示。
    5. Composite key : primary key由一個以上的屬性組成則稱Composite key。
    6. Foreign key : 是A relation的attrinute,同時也是B relation 的 primary key,以虛線(dashed underline)表示。
    7. E-R Model 可有多值屬性,但Relational data model 不允許。
    8. 每個Database 的 Table name 為 unique name。
    9. 每個attribute在同個Table的名字都為 unique name。
    10. column or row的順序不重要 (不影響整筆記錄的意義)。
      (p.212補充)
    11. Candidate key (候選鍵) : 可以識別一筆row的資料,但若為複合鍵的情況下,Candidate key的所有屬性都不能是redundancy (也就是不能有屬性是刪除後對於Candidate key識別一筆row資料沒有影響);Candidate key 一定是 Determinant,但Determinant不一定是Candidate key。
  4. Constraint (限制)
    1. Integrity constraint (正確性限制) : 限制 relational data model 能接受的值或動作。
    2. Domain constraint : 限制可接受值之範圍。
    3. Entity integrity : primary key cann’t be NULL.
    4. Referential integrity : foreign key must be a primary key in another table.
  5. 將 E-R Diagrams 轉為 Relational data schema。
    (1) 一對一:將弱式Entity的Attribute新增到其中一個Relation要用最有效率的那個(通常是放到最小基數最小的那個,盡量不要出現有欄位會有NULL的情況),不產生新Relationship。
(2) 一對多:將其中一個Relationship 的PK放到另一個Relationship當FK。
(3) 多對多:產生新Relationship,包含兩個PK當作CK,並包含弱式Entity的Attribute。
  1. 多元關係(父子型態):
    (1 )將Associative作為一個Relationship,並將可以為一識別屬性的屬性加上其他Relationship的PK,成為CK。
    (2) 將所有弱式Entity加上父Entity的PK成為新的Relationship。

  2. Unary relationship(只有一個Entity type)的Relationship的情況下:
    (1) 一對一 與 一對多 : 不新增其他relationship,但可能會新增屬性。
    > Foreign key 和Primaray key 的屬性可以相同,但名稱是不同的。
    (2) 多對多:會新增一個Reationship並且包含弱式Entity的Attribute,而與原來Ralationship而來的PK加上多加的新PK組成的CK,多加的PK需思考一下為何。(下圖新增的PK為component item,概念為一個Item可能為一個item或多個item組成)
  3. Normalization : 將有問題的Table拆成沒問題的多個小表格;將Determinant變成PK或CK。
    正規化後,所有的功能相依都不可以消失!
    (1) First normal form (1NF) : 不可以有空值、多值屬性,一定要有PK且不能重複出現。
    (2) Second normal form (2NF) : 只有PK能決定唯一識別一個值(把與主鍵部分功能相依的部分獨立為一個Table)。
    > Functional dependency(功能相依) : A→B (B相依於A),A能夠識別唯一一個B值,B值由A決定,也就是知道A值就能知道B值。
    > Partial functional dependencies(部分功能相依):不是所有PK的屬性決定唯一值。
    (3) Third normal form (3NF) : 將非PK值卻能決定唯一值之Determinant (決定者)拆出去成為另一個table的PK(不能有Transitive dependency 間接功能相依)。

留言