業務主鍵

在關係型資料庫設計中,業務主鍵是一個由以及真實存在於世界中的屬性構成的鍵。舉例來說,一個美國公民的社會安全號碼可以被用作一個業務主鍵。在其他的表達方式中,一個業務主鍵是和行內屬性具有邏輯關係的候選鍵。

優勢

業務主鍵對於邏輯主鍵的主要優勢在於(邏輯主鍵在脫離資料庫環境時沒有任何意義)業務主鍵已經存在,因此沒有必要去添加新的人工的列到定義中。使用業務主鍵(當存在一個可以被識別的業務主鍵時)也會簡化數據的質量:業務主鍵確保了對於每個只會存在唯一一條對應的行;“真相只有一個版本”這點是可以被驗證的,因為業務主鍵是基於對真實世界的觀察結果。

劣勢

選擇業務主鍵的主要不足在於業務主鍵的值可能會發生改變,並且關係型資料庫引擎可能不能夠通過關聯的外鍵來擴散這種改變。舉例來說,如果person_name被用作person表的主鍵。然後一個 person 記錄的 name 由於結婚而發生了改變(在傳統西方國家,女性婚後會改為丈夫的姓),然後所有的一對多的關聯表都因此需要更新。次級的不足在於選擇業務主鍵是在識別主鍵。主鍵必須包含可以唯一識別某一行的屬性。然而,在一張表上創建一個業務主鍵可能是困難的或者會導致更多的約束。舉例來說,如果person_name被用作person表的主鍵,許多 person 可能會使用相同的名字,因此除了第一條記錄以外的數據都會因為重複性被拒絕添加到表中。唯一性約束可以通過添加額外的列(比如street_address)到主鍵中以提高唯一性來克服。

關係模型

關係模型的基本假定是所有數據都表示為數學上的關係,就是說 n個集合的笛卡兒積的一個子集,有關這種數據的推理通過二值(就是說沒有NULL)的謂詞邏輯來進行,這意味著對每個命題都有兩種可能的賦值:要么是真要么是假。數據通過關係演算和關係代數的一種方式來操作。關係模型是採用二維表格結構表達實體類型及實體間聯繫的數據模型.

關係模型允許設計者通過資料庫規範化的提煉,去建立一個信息的一致性的模型。訪問計畫和其他實現與操作細節由DBMS引擎來處理,而不應該反映在邏輯模型中。這與SQL DBMS普遍的實踐是對立的,在它們那裡性能調整經常需要改變邏輯模型。

基本的關係建造塊是域或者叫數據類型。元組是屬性的有序多重集(multiset),屬性是域和值的有序對。關係變數(relvar)是域和名字的有序對(序偶)的集合,它充當關係的表頭(header)。關係是元組的集合。儘管這些關係概念是數學上的定義的,它們可以寬鬆的映射到傳統資料庫概念上。表是關係的公認的可視表示;元組類似於 行的概念。

關係模型的基本原理是信息原理:所有信息都表示為關係中的數據值。所以,關係變數在設計時刻是相互無關聯的;反而,設計者在多個關係變數中使用相同的域,如果一個屬性依賴於另一個屬性,則通過參照完整性來強制這種依賴性。

關係鍵

關係鍵是關係資料庫的重要組成部分。關係鍵是一個表中的一個或幾個屬性,用來標識該表的每一行或與另一個表產生聯繫。

主鍵

主鍵,又稱 主碼(英語:primary key或unique key)。資料庫表中對儲存數據對象予以唯一和完整標識的數據列或屬性的組合。一個數據列只能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。

從技術的角度來看,primary key和unique key有很多相似之處。但還是有以下區別:

作為primary key的域/域組不能為Null。而unique key可以。

在一個表中只能有一個primary key,而多個unique key可以同時存在。

更大的區別在邏輯設計上。primary key一般在邏輯設計中用作記錄標識,這也是設定primary key的本來用意。而unique key只是為了保證域/域組的唯一性

1.

作為primary key的域/域組不能為Null。而unique key可以。

2.

在一個表中只能有一個primary key,而多個unique key可以同時存在。

3.

更大的區別在邏輯設計上。primary key一般在邏輯設計中用作記錄標識,這也是設定primary key的本來用意。而unique key只是為了保證域/域組的唯一性

相關詞條

熱門詞條

聯絡我們