n元關係

n元關係

設A1,A2,…,An是集合,把A1×A2×…×An的任意子集R都稱為A1,A2,…,An間的n元關係(n-ary relation),從定義可以看出,A1,A2,…,An間的n元關係R⊆A1× A2×…× An。n元關係在關係資料庫系統中有著廣泛的套用。

定義

n元關係 n元關係
n元關係 n元關係
n元關係 n元關係
n元關係 n元關係
n元關係 n元關係
n元關係 n元關係

定義1 設 是集合,則稱笛卡兒積 的子集為 n元 關係,即 。 為n元關係R的 ,n叫作它的 。若 稱 為 n元組(n-tuple)。

舉例分析

n元關係 n元關係

例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。

表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元關係的主要運算有 選擇投影連線,這些運算是所有關係運算的基礎,在關係資料庫理論中占有重要的地位。

選擇

n元關係 n元關係

定義2 選擇 表示選擇R中的一些滿足F的元組組成一個新的關係。即

n元關係 n元關係

例3 若n元關係R由表1所示,則

S(R)表示選擇車種為“普通快車”的元組,結果如表2所示。

表2 普通快車車次表
車次車種起點站終點站發車時間
5104普通快車溫州杭州7:20
5056普通快車溫州南京16:40

S(R)表示選擇起點站為溫州,終點站為杭州的所有元組,結果如表3所示。

表3 起點站為溫州,終點站為杭州的車次表
車次車種起點站終點站發車時間
5104普通快車溫州杭州7:20

投影

n元關係 n元關係
n元關係 n元關係
n元關係 n元關係

定義3 投影 是將n元組 映射到m元組 其中m≤n。

n元關係 n元關係

即投影運算是保留指定的m列,刪除n-m列。

例4 若n元關係R由表1所示,則P(R)表示保留第1,3,4列,結果如表4所示。

表4 只保留第1,3,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:

n元關係 n元關係
n元關係 n元關係

其中,記錄表示R中的記錄與S中的記錄連線而成,去掉重複的屬性。

相關詞條

相關搜尋

熱門詞條

聯絡我們