1. 程式人生 > >資料庫中的資料表之間的關係

資料庫中的資料表之間的關係

主鍵:能夠唯一表示資料表中的每個記錄的欄位或者欄位的組合就稱為主鍵。一個主鍵是唯一識別一個表的每一行記錄,但這只是其作用的一療分,主鍵的主要作用是將記錄和存放在其他表中的資料進行關聯,在這一點上,主鍵是不同表中各記錄間的簡單指標,主鍵約整就是確定表中的每一條記錄,主鍵不能是空值,唯一約束是用於指定一個或多個列的組合值具有唯一性,以防止在列中輸入重複的值,所以,主鍵的值對使用者而言是沒有什麼意義,並且和它賦予的值也沒有什麼特別聯絡。

外來鍵:

若有兩個表A,B,C是A的主鍵,而B中也有C欄位,則C就是表B的外來鍵,外來鍵約束主要用來維護兩個表之間資料的一致性。

A為基本表,B為資訊表。

在資料庫中,常常不只是一個表,這些表之間也不是相互獨立的,不同的表之間需要建立一種關係,才能將它們的資料相互溝通,而在這個溝通過程中,就需要表中有一個欄位作為標誌,不同的記錄對應的欄位取值不能相同,也不能是空白的,通過這個欄位中不同的值可以區別各條記錄,就像我們區別不同的人,每個人都有名字,但它卻不能作為主鍵,因為人名很容易出現重複,而身份證號是每個人都不同的,所以可以根據它來區別不同的人,資料庫的表中作為主鍵的段段就要像人的身份證號一樣,必須是每個記錄的值都不同,這才能根據主鍵的值來確定不同的記錄。

關係:外來鍵一定是另外某個表的主鍵。

表關係
可以在資料庫關係圖中的表間建立關係以顯示某個表中的列如何連結到另一表中的列

在關係資料庫中,關係能防止冗餘的資料。例如,如果正在設計一個數據庫來跟蹤有關書的資訊,而每本書的資訊(如書名、出版日期和出版商)都儲存在一個名為 titles 的表中。同時還有一些想儲存的有關出版商的資訊,例如出版商的電話號碼、地址和郵政編碼。如果將所有這些資訊都儲存在 titles 表中,則對於某個出版商出版的每本書,出版商的電話號碼將是重複的。

一個更好的解決方案是,單獨在一個名為 publishers 的表中只儲存一次出版商資訊。然後在 titles 表中設定指標,以引用 publishers 表中的項。

若要確保資料同步,可以在 titles 表和 publishers 表之間強制引用完整性

。引用完整性關係能確保某個表中的資訊與另一個表中的資訊相匹配。例如,titles 表中的每個書名必須和 publishers 表的特定出版商相關聯。不能在資料庫中新增資料庫中不存在的出版商的書名。

為更好地理解表關係,請參見:

表關係型別


引用完整性概述
表關係型別
關係是通過匹配鍵列中的資料而工作的,而鍵列通常是兩個表中具有相同名稱的列。在大多數情況下,關係將一個表中為每個行提供唯一識別符號的主鍵與另一個表中外來鍵內的項相匹配。例如,通過在 titles 表的 title_id 列(主鍵)和 sales 表的 title_id 列(外來鍵)之間建立一個關係,可以使銷售額與特定的銷售書名相關聯。

表與表之間存在三種類型的關係。所建立的關係型別取決於相關聯的列是如何定義的。

一對多關係


多對多關係


一對一關係
一對多關係
一對多關係是最常見的關係型別。在這種關係型別中,表 A 中的行可以在表 B 中有許多匹配行,但是表 B 中的行只能在表 A 中有一個匹配行。例如,publishers 表和 titles 表是一對多的關係:每一個出版商可出版許多書,但每一本書只能有一個出版商。

如果在相關列中只有一列是主鍵或具有唯一約束,則建立的是一對多關係。

一對多關係中的主鍵方由一個鍵 符號表示。關係中的外來鍵方由一個無窮大 符號表示。

多對多關係
在多對多關係中,表 A 中的一行可與表 B 中的多行相匹配,反之亦然。通過定義稱為連線表的第三方表建立這樣的關係,該連線表的主鍵包括表 A 和表 B 中的外來鍵。例如,authors 表和 titles 表是多對多關係,該關係通過從這些表中的每個表與 titleauthors 表的一對多關係定義。titleauthors 表的主鍵由 au_id 列(authors 表的主鍵)和 title_id 列(titles 表的主鍵)組成。

一對一關係
在一對一關係中,表 A 中的一行最多隻能與表 B 中的一行相匹配,反之亦然。如果兩個相關列都是主鍵或具有唯一約束,則建立的是一對一關係。

這種關係不常見,因為這種方式的大部分相關資訊都在一個表中。使用一對一關係可以是為了:

分割一個含有許多列的表。


出於安全考慮而隔離表的某一部分。


儲存可以很容易刪除的臨時資料,只需刪除表即可刪除這些資料。


儲存只應用於主表子集的資訊。
一對一關係的主鍵方由鍵 符號表示。外來鍵方也由鍵 符號表示。


候選鍵 (candidate key)
對於表中的每一行具有唯一值的一個列或一組列。每個候選鍵值唯一標識表中的一個行。表可以具有多個候選鍵。表中的一個候選鍵由資料庫設計器指定為表的主鍵,其它候選鍵稱作備用鍵。



---以上內容摘自SQL SERVER 2000的聯機幫助。

若想得到有關更詳細的內容,請參見幫助!