官术网_书友最值得收藏!

2.1 關系

關系數據模型中,無論是實體還是實體間的聯系均由單一的數據結構—關系來表示。在實際的關系型數據庫中的關系也被稱為表。一個關系型數據庫就是由若干個表組成的。

關系的每一行對應一條記錄,也稱為元組;每一列對應一個屬性。關系簡記為

R(A1, A2,…, An)

其中,R是關系名,A1, A2,…, An是屬性名。

同一關系中的屬性不能同名,且所有屬性是不可再分的簡單屬性。每一個屬性中各分量的數據類型相同,屬性的取值范圍稱為域。屬性之間的排列順序可以是任意的。元組的順序可以是任意的,但不允許兩個元組完全相同。

能夠唯一標識一個元組的屬性或屬性集稱為關系的鍵(Key),又稱碼、關鍵字。鍵分為超鍵、候選鍵、主鍵、外鍵。

1. 超鍵

超鍵(Super Key)是一個或多個屬性的集合,這些屬性可以在一個關系中唯一地標識一個元組。如果K是一個超鍵,那么所有包含K的集合也是超鍵。

2. 候選鍵

超鍵的范圍如果太廣,其中某些屬性對于標識元組是無用處的。候選鍵(Candidate Key)是指能夠唯一標識一個元組的最小屬性集,即候選鍵是沒有多余屬性的超鍵。候選鍵中的屬性稱為主屬性(Prime Attribute),不包含在任何候選鍵中的屬性稱為非主屬性(Non_prime Attribute)。

3. 主鍵

如果一個關系有多個候選鍵,則選定其中一個作為主鍵(Primary Key)。例如,對于關系student(SID, name, gender, college)而言,如果所有學生不重名,SID、name都是該關系的候選鍵,也都是主屬性,可以任選一個作為主鍵。包含SID或name的屬性集都是超鍵。如果有學生重名,則name無法唯一標識一個元組,即根據name的值無法唯一確定一個學生,該關系的候選鍵和主鍵都是SID。

4. 外鍵

設屬性F是關系R的一個屬性,但不是關系R的主鍵,并對應著關系S的主鍵K,如圖2-1所示。F在R中的取值要參照關系S中K的取值,稱關系R為參照關系(Referencing Relation)或從表。關系S為被參照關系(Referenced Relation)或主表,并稱F是關系R的外鍵(Foreign Key)。關系R和S不一定是不同的關系,但是K與F的域相同。

圖2-1 外鍵參照主表的主鍵

例如,關系salebill(number, CID, BID, payamount, saledate)的主鍵是number,CID不是關系salebill的鍵,而是關系card的主鍵。因此關系salebill是從表,card是主表,CID是關系salebill的外鍵。我們只能使用有效的校園卡消費,salebill中CID的取值只能是關系card中存在的CID值。

主站蜘蛛池模板: 开远市| 张掖市| 剑阁县| 肥东县| 玉田县| 甘肃省| 波密县| 奎屯市| 江城| 游戏| 通州区| 蛟河市| 定兴县| 屏边| 蒙自县| 长汀县| 广安市| 南昌市| 镇沅| 沾益县| 东乡族自治县| 长丰县| 台北县| 汝城县| 德化县| 宁河县| 花垣县| 保定市| 陇西县| 大竹县| 海原县| 罗田县| 贺兰县| 岳阳县| 鄂温| 郯城县| 抚顺市| 年辖:市辖区| 从江县| 包头市| 山西省|