定義
定義1 設 是集合,則稱笛卡兒積 的子集為 n元 關係,即 。 為n元關係R的 域,n叫作它的 階。若 稱 為 n元組(n-tuple)。
舉例分析
例1設R是由3元組(a,b,c)構成的關係,其中a,b,c是滿足a<6<c的整數,那么(1,2,3)∈ R,但(1,3,2) R,這個關係的階為3,它的3個域都為整數集合。
例2 設R是由4元組(N,S,D,T)構成的表示火車班次的關係。其中N是車次號,S是始點站,D是終點站,T是發車時間。例如:5108次從溫州到杭州,發車時間為22:40,則(5108,溫州,杭州,22:40)屬於R,這個關係的階是4,它的域是車次號的集合、城市的集合、時間的集合。
關係數據模型在資料庫技術中占據重要的地位,現在商品化的資料庫系統幾乎都是基於關係數據模型的。
在關係數據模型中,資料庫由表構成,表由記錄組成,這些記錄是由欄位構成的n元組的數據項。例:表示車次信息的列車時刻表可以由包含車次、車種、始點站、終點站、發車時間等欄位構成,關係數據模型把下列時刻表表示成一個n元關係,則車次信息記錄可被表示成形如車次、車種、起點站、終點站、發車時間的5元組。例現有6條記錄的樣本:
(5104,普通快車,溫州,杭州,7:20);
(K102,快速列車,溫州,北京,8:00);
(5056,普通快車,溫州,南京,16:40);
(T746,直通特快,寧波,上海,15:10);
(Z10,直達快車,杭州,北京,18:03);
(5152,臨時客車,上海,阜陽,0:14)。
則通常將這些記錄的集合用一張二維表給出,見表1。
車次 | 車種 | 起點站 | 終點站 | 發車時間 |
5104 | 普通快車 | 溫州 | 杭州 | 7:20 |
K102 | 快速列車 | 溫州 | 北京 | 8:00 |
5056 | 普通快車 | 溫州 | 南京 | 16:40 |
T746 | 直通特快 | 寧波 | 上海 | 15:10 |
Z10 | 直達快車 | 杭州 | 北京 | 18:03 |
5152 | 臨時客車 | 上海 | 阜陽 | 0:14 |
n元關係表示成一張二維表,表的每行對應一個 n元組。表的每列對應一個 域。由於域可以相同(如上表的第3,4列),為了加以區分,必須對每列起一個名字,稱為 屬性。n元關係必有n種屬性。
若關係中的某屬性組的值能唯一地標識一個元組,則稱該屬性組為 候選碼。若一個關係有多個候選碼,則選定其中一個為主碼。
例如,表1的n元關係,若是不增加n元組的情況下,屬性車次可以作為 主碼。屬性組(起點站,終點站)也可以作為主碼,因為表中沒有二個元組該屬性組的值是相同的。若再增加一些元組。如(5108,普通快車,溫州,杭州,10:40),則該屬性組不可以作為主碼,此時只能選擇車次作為主碼,因為車次總是唯一的。
n元關係的運算
可以用各種n元關係上的運算構造新的n元關係,n元關係的主要運算有 選擇、 投影、 連線,這些運算是所有關係運算的基礎,在關係資料庫理論中占有重要的地位。
選擇
定義2 選擇 表示選擇R中的一些滿足F的元組組成一個新的關係。即
例3 若n元關係R由表1所示,則
S(R)表示選擇車種為“普通快車”的元組,結果如表2所示。
車次 | 車種 | 起點站 | 終點站 | 發車時間 |
5104 | 普通快車 | 溫州 | 杭州 | 7:20 |
5056 | 普通快車 | 溫州 | 南京 | 16:40 |
S(R)表示選擇起點站為溫州,終點站為杭州的所有元組,結果如表3所示。
車次 | 車種 | 起點站 | 終點站 | 發車時間 |
5104 | 普通快車 | 溫州 | 杭州 | 7:20 |
投影
定義3 投影 是將n元組 映射到m元組 其中m≤n。
即投影運算是保留指定的m列,刪除n-m列。
例4 若n元關係R由表1所示,則P(R)表示保留第1,3,4列,結果如表4所示。
車次 | 起點站 | 終點站 |
5104 | 溫州 | 杭州 |
K102 | 溫州 | 北京 |
5056 | 溫州 | 南京 |
T746 | 寧波 | 上海 |
Z10 | 杭州 | 北京 |
5152 | 上海 | 阜陽 |
當一個投影被施用到一個關係上時,有可能使表中的行變少。當關係中的某些n元組在投影的m個屬性中對應的每個屬性的值都相同,而只在被投影刪除的屬性中有不同的值時,就會出現這種情況。
例5 在表1所示的關係中增加一個元組(5108,普通快車,溫州,杭州,10:40),此時對關係做P(R)投影操作,則僅得到含有6個元組的關係,而不是含有7個元組的關係。
連線
定義4 設R是m階關係,S是n階關係,兩個關係的連線操作J(R,S)將生成一個不超過m+n階的新關係,其每個元組的屬性分別來自於R的屬性和S的屬性,且滿足條件F:
其中,記錄表示R中的記錄與S中的記錄連線而成,去掉重複的屬性。