CH04 關聯模式

4-2 關聯模式的觀念

以下表格為關聯模式理論和實務所使用的同義詞:

 理論 實體
 關聯Relation資料表、表格Table
 序列值Tuple列Row、記錄Record
 屬性Attribute行Column、欄位Field


一個關聯的定義稱為關聯綱目(Relation schema),與關聯相關的定義如下:
  1. 一個資料庫(Database)是由數個關聯(Relation)所成的集合
  2. 一個資料庫綱目(Database schema)是由數個關聯綱目所成的集合
  3. 一個關聯必須對應一個關聯綱目,一個關聯綱目包括一個關聯名稱及數個屬性的定義
  4. 一個屬性包括一個屬性名稱和一個定義域
  5. 一個關聯是由數筆n-序列值(n-tuple)所成的集合,其中n為該關聯之關聯綱目的屬性個數
  6. 一筆序列值記載一串屬性值
  7. 每一個屬性值都是簡單且單值


4-3 關聯模式的限制

一旦關聯綱目定義好之後,就可以在相對應的關聯加入一些序列值,然而這些序列值必須滿足某些限制(Constraint),我們稱該資料庫是一致性(Consistent)。以下描述關聯模式裡的各種限制:
  • 定義域限制(Domain constraint) => 指的是資料庫裡每一個關聯的每一筆序列值的每一屬性值必須是該屬性定義域裡的單一值。比如說,Id的定義域為E9999999,若有一比序列值為的Id屬性值為E123F456則違反定義域限制規則。
  • 關聯鍵限制(Key constraint) => 指的就是資料庫的裡一關聯,沒有任兩個序列值的關聯鍵值是相同的。在了解關聯鍵(Key)之前則必須先了解何謂超級鍵(Super)
  1. 一個關聯的超級鍵是由該關聯的1或多個屬性所組成,且沒有任何兩筆序列值的屬性值完全相同。
  2. 一個關聯的關聯鍵是該關聯的一個最小超級鍵,也就是說,它的任何子集合都不再是超級鍵。
則關聯中最具識別意義的屬性稱為主鍵(Primary key),其它的關聯鍵則稱為次要鍵(Alternate key or Secondary key)。通常主鍵之下會以畫一底線來表示
  • 實體完整限制(Entity integrity constraint) => 指的就是資料庫每一關聯裡每一筆序列值的主鍵值均不得為空值(Null),否則無法得知其相關的屬性值到底是描述哪一個實體。
  • 參考完整限制(Referential integrity constraint) => 關聯模式裡最重要的一種限制,各個關聯看似獨立,其實彼此之間可能存在著關係。外部鍵(Foreign key)意指它所參考到外部關聯的屬性為主鍵。則圖形表示法是用箭頭指向所參考到關聯綱目的主鍵。其參考完整限制指的就是序列值裡的外部鍵值,可以是空值(Null),但如果不是空值,則該值必須存在於其所參考的關聯之主鍵值裡。
  • 語意完整限制(Semantic integrity constraint) => 有些時候可能需要設定一些額外的限制,比如說,交易總金額不得少於100元時才可以付帳,或者信用卡到期日必須超過交易日六個月以上等特殊限制。除非這些限制相當固定,否則許多程式設計師寧可將這些限制用程式語法的方式來表達,以增加彈性。
在關聯模式裡,所謂更新(Update)資料庫,包括以下三種運算:
  1. 新增(Insert)一筆序列值。
  2. 刪除(Delete)一筆序列值。
  3. 修改(Modify)一筆序列值裡的某個屬性值。
不管是何種運算,都不可以違反任何關聯資料庫裡所設定的限制,也就是說,如果資料庫在更新前是一致的,則更新後也必須是一致的。





Comments