編程語言中,差、交、並、自然連接、選擇、投影、笛卡爾積分別都是什么運算


交(Intersection):

關系R與關系S的交由既屬於R又屬於S的元組組成,即R與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作:R∩S={t|t∈R ∧ t∈S}

簡單來說,運算結果就是兩或多個實體集所共有的部分

並(Union):

關系R和關系S的並由屬於R或屬於S的元組組成,即R和S的所有元組合並,刪去重復元組,組成一個新關系,其結果仍為n目關系(“n目”指關系模式中屬性的數目為n) 。記作:R∪S={t|t∈R∨t∈S}

簡單來說,運算結果為兩或多個實體集加起來,然后重復的部分只留下一個

差(Difference)

關系R與關系S的差由屬於R而不屬於S的所有元組組成,即R中刪去與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作:R-S={t|t∈R∧┐t∈S}

簡單來說,運算結果為,在表R中去掉表S也有的部分

廣義笛卡爾積(Extended Cartesian Product)

兩個分別為n目和m目關系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合,元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有k1個元組,S有k2個元組,則關系R和關系S的廣義笛卡爾積有k1*k2個元組,記作:R×S={tr⌒ts| tr∈R∧ts∈S}

或記做R×S={(r1,…,rn ,s1,…,sm)∣((r1,…,rn)∈R∧(s1,…,sm)∈S)

r,s為R和S中的相應分量。

簡單來說,就是把R表的第一行與S表第一行組合寫在一起,作為一行。然后把R表的第一行與S表第二行依此寫在一起,作為新一行。以此類推。當S表的每一行都與R表的第一行組合過一次以后,換R表的第二行與S表第一行組合,以此類推,直到R表與S表的每一行都組合過一次,則運算完畢。

如果R表有n行,S表有M行,那么笛卡爾積R×S有n×M行。

選取(Selection)

選取運算是單目運算,是根據一定的條件在給定的關系R中選取若干個元組,組成一個新關系,記作:σF(R)={t|t∈R∧F(t)為真}

其中,σ為選取運算符,F為選取的條件,它由運算對象(屬性名、常數、簡單函數)、算術比較運算符( > ,≥,<,≤,=,≠)和邏輯運算符(∨ ∧ ┐)連接起來的邏輯表達式,結果為邏輯值“真”或“假”。

選取運算實際上是從關系R中選取使邏輯表達式為真的元組,是從行的角度進行的運算。

簡單地說,運算結果就是符合篩選條件的行

選擇是根據給定的條件選擇關系R中的若干元組組成新的關系,是對關系的元組進行篩選。選擇運算示意圖如下:

投影(Projection)

投影運算也是單目運算,關系R上的投影是從R中選擇出若干屬性列,組成新的關系,即對關系在垂直方向進行的運算,從左到右按照指定的若干屬性及順序取出相應列,刪去重復元組。記作:ΠA(R)={t[A]|t∈R}

其中A為R中的屬性列,Π為投影運算符。

從其定義可看出,投影運算是從列的角度進行的運算,這正是選取運算和投影運算的區別所在。選取運算是從關系的水平方向上進行運算的,而投影運算則是從關系的垂直方向上進行的。

簡單地說,就是選取符合篩選條件的列,然后按照你所需要的順序重新排列。

連接(Join)

連接運算是二目運算,是從兩個關系的笛卡爾積中選取滿足連接條件的元組,組成新的關系。

所謂自然連接就是在等值連接的情況下,當連接屬性X與Y具有相同屬性組時,把在連接結果中重復的屬性列去掉。即如果R與S具有相同的屬性組Y,則自然連接可記作:R*S={t r⌒ts |tr∈R∧ts∈S∧tr[Y]=ts[Y]}

自然連接是在廣義笛卡爾積R×S中選出同名屬性上符合相等條件元組,再進行投影,去掉重復的同名屬性,組成新的關系。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM