140 likes | 251 Views
候選鍵、主鍵及外來鍵. 補充說明 3.2.1, 4.2, 4.3. 主鍵 (Primary Key). 關聯表中用來區別值組的識別值。 每一個值組的主鍵值在關聯表中都是唯一的。 主鍵是由屬性的子集所構成,所以可能是一個屬性,也可能是整個屬性集。 一個關聯表的主鍵只能有一個。. Bookstores. Orders. Books. 候選鍵 (Candidate Keys). 每一個值組的主鍵值在關聯表中都是唯一的,而關聯表的主鍵是由屬性集的子集所構成。 在一個關聯表中符合此條件的屬性子集可能有好幾個,這些屬性子集稱之為「候選鍵」。
E N D
候選鍵、主鍵及外來鍵 補充說明 3.2.1, 4.2, 4.3 Hue-Ling Chen
主鍵 (Primary Key) • 關聯表中用來區別值組的識別值。 • 每一個值組的主鍵值在關聯表中都是唯一的。 • 主鍵是由屬性的子集所構成,所以可能是一個屬性,也可能是整個屬性集。 • 一個關聯表的主鍵只能有一個。 Hue-Ling Chen
Bookstores Orders Books Hue-Ling Chen
候選鍵 (Candidate Keys) • 每一個值組的主鍵值在關聯表中都是唯一的,而關聯表的主鍵是由屬性集的子集所構成。 • 在一個關聯表中符合此條件的屬性子集可能有好幾個,這些屬性子集稱之為「候選鍵」。 • 主鍵是由一堆候選鍵中所選擇出來的。 Hue-Ling Chen
成為候選鍵的屬性子集 K 的兩個條件 • 唯一性:在一個關聯表中絕對不會有兩個值組的屬性子集 K 具有相同的值。 • 最小性:屬性子集 K 是滿足唯一性的最小屬性子集。也就是,屬性子集 K 若是去除其中一個數性將會違反唯一性。所以,如果屬性子集 K 只含一個一個屬性的話,則一定符合此特性。 • 候選鍵存在的原因:唯一可以用來定位到單一值組的方式。 Hue-Ling Chen
如何挑選主鍵 • 選擇永不會變更其值的屬性。 • 確保不會是虛值的屬性。 • 不要用會造成困惑的編號鍵值。 • 盡量以單一的屬性來代表整筆值組。 • 由數個候選鍵中明確地選擇其中一個來當主鍵時,則剩下的候選鍵便稱為「替代鍵」。 Hue-Ling Chen
外來鍵 (Foreign Keys) • 一個在 R2 中的外來鍵 FK 是由 R2 屬性集的子集合所構成,而且合乎下面兩點: • FK 中的每個屬性值不是全為虛值,就是全非虛值。 Hue-Ling Chen
補充說明 1. • 若外來鍵所參考到之候選鍵為複合(單一)屬性的話,則該外來鍵也一定是複合(單一)屬性,而且兩者的各個相對屬性之值域也都要一樣,但屬性名稱可以不一樣。 Hue-Ling Chen
外來鍵參考到不是候選鍵的鍵值 錯誤,有兩個 manager 的 是相同的姓名 Hue-Ling Chen
外來鍵參考到不是候選鍵的鍵值 錯誤,A1 是有管理者的,只是沒有填姓名 Hue-Ling Chen
外來鍵要參考到候選鍵 Hue-Ling Chen
定義 4.1 • 存在某個關聯表 R1,其候選鍵為 CK 使得具有非虛值的 FK 屬性質與 R1 中的某個值組的 CK 屬性值完全相等。(注意:R1 與 R2 可以是同一個關聯表) Hue-Ling Chen
補充說明 2. • 外來鍵與它所參考的屬性可以是同一個關聯表。 Hue-Ling Chen
外來鍵與參考的候選鍵都在同一個關聯表 Hue-Ling Chen