【文章內(nèi)容簡(jiǎn)介】
出有帳戶或者有貸款的所有客戶。 ?customername (depositor) ? ?customername (borrower) 3 4 4 5 4 3 3 2 7 7 5 2 7 6 3 C B A 3 2 7 5 4 3 C B A S R∪ S 3 4 4 3 2 7 7 5 2 7 6 3 C B A R 設(shè) R和 S為同類關(guān)系,則 R和 S的交運(yùn)算是同屬于 R和 S的元組集,記為 R∩ S。顯然, R∩S與 R, S為同類關(guān)系。 交運(yùn)算 所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合 R?S ={ r | r?R ? r?S } 交運(yùn)算可以通過差運(yùn)算來重寫 R?S = R ? (R ? S) R?S 關(guān)系 R∩ S A B C d a f 關(guān)系 R A B C a b c d a f c b d 關(guān)系 S A B C b g a d a f 3 4 4 3 2 7 7 5 2 7 6 3 C B A R 3 2 7 5 4 3 C B A S 3 2 7 C B A R∩S 設(shè) R和 S為同類關(guān)系,則 R和 S的差是由屬于 R而不屬于 S的所有元組組成的集合,記為 RS。 RS 與 R, S為同類關(guān)系 . 差運(yùn)算 所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合 R?S ={ r | r?R ? r?S } R?S S 關(guān)系 RS A B C a b c c b d 關(guān)系 S A B C b g a d a f 關(guān)系 R A B C a b c d a f c b d 3 4 4 3 2 7 7 5 2 7 6 3 C B A R 3 2 7 5 4 3 C B A S 3 4 4 7 5 2 7 6 3 C B A R- S 5 4 3 C B A S- R 設(shè) R為 m元關(guān)系, T為 n元關(guān)系,則 R和 T的笛卡爾積 R T是一個(gè) ( m+n) 元組集合,其中元組的前 m個(gè)分量是 T的一個(gè)元組,后 n個(gè)分量是 T的一個(gè)元組,則 R T共有 mn個(gè)元組 . 關(guān)系 R A B C a b c d a f 關(guān)系 T D E F g h i j k l 關(guān)系 R T A B C D E F a b c g h i a b c j k l d a f g h I d a f j k l 笛卡爾積 ?元組的連接( Concatenation) 若元組 r = (r1, … , rn), s = (s1 , … , sm), 則定義 r與 s的連接為 : r s = (r1, … , rn, s1 , … , sm) ?定義 兩個(gè)關(guān)系 R, S,其度分別為 n, m,則它們的笛卡爾積是 所有這樣的元組集合:元組的前 n個(gè)分量是 R中的一個(gè)元 組,后 m個(gè)分量是 S中的一個(gè)元組 R?S的度為 R與 S的度之和, R?S的元組個(gè)數(shù)為 R和 S的元 組個(gè)數(shù)的乘積 假設(shè)屬性不相交(即 R ? S = ?) 如果屬性是相交的,則必須重命名。 R?S={ r s | r?R ? s?S } ?由于相同的屬性可能同時(shí)出現(xiàn)在 R和 T中,需要提出一個(gè)命名機(jī)制來區(qū)別這些屬性。 ?采用: 在屬性上附加該屬性所來自的關(guān)系名稱 例: r=borrower loan的關(guān)系模式為 (,name,) 對(duì)那些只在兩個(gè)關(guān)系模式之一出現(xiàn)的屬性,省略關(guān)系名前綴,無歧義。 (customername,branchname,number,account) 貸款信息關(guān)系 loan 例子 branchname loannumber amount Downtown L17 1000 Redwood L23 2021 Perryridge L15 1500 Downtown L14 1500 Mianus L93 500 Round Hill L11 900 Perryridge L16 1300 customername loannumber Jones L17 Smith L23 Hayes L15 Jackson L14 Curry L93 Smith L11 Williams L16 Adams L16 借款關(guān)系 borrower 例子 ?上述命名規(guī)則規(guī)定: 作為笛卡兒積運(yùn)算參數(shù)的關(guān)系名必須不同,這一規(guī)定有時(shí)會(huì)帶來問題。 例如,某個(gè)關(guān)系需要與自身做笛卡兒積 另外在笛卡兒積中使用關(guān)系代數(shù)表達(dá)式的結(jié)果時(shí)也會(huì)產(chǎn)生類似的問題,因?yàn)楸仨毥o關(guān)系一個(gè)名字以引用其屬性。 通過 更名運(yùn)算 避免這樣的問題。 后面介紹 A B ? ? 1 2 r C D ? ? ? ? 10 10 20 10 E a a b b s A B ? ? ? ? ? ? ? ? 1 1 1 1 2 2 2 2 C D ? ? ? ? ? ? ? ? 10 19 20 10 10 10 20 10 E a a b b a a b b r x s 其運(yùn)算結(jié)果是一個(gè)新的關(guān)系 選擇運(yùn)算 ? 在關(guān)系 R中選擇滿足給定條件的元組(從行的角度) ?F(R)={t | t ? R , F(t) = ‘真 ’ } F是選擇條件, ?t ? R, F(t)要么為真,要么為假 專門的關(guān)系運(yùn)算 ?記作: ? F( R ) ; F 稱為選取謂詞。 ?Defined as: ?F(R) = {t | t ? R and F(t)} 其中 F是命題演算公式,可以由與、或、非連接各公式項(xiàng)。 ? (and), ? (or), ? (not