當前位置:首頁 » 操作系統 » 資料庫中的關系代數

資料庫中的關系代數

發布時間: 2023-07-11 01:51:48

1. 資料庫的關系代數問題

[例]設教學資料庫中有3個關系:
學生關系S(SNO,SNAME,AGE,SEX)
學習關系SC(SNO,CNO,GRADE)
課程關系C(CNO,CNAME,TEACHER)

下面用關系代數表達式表達每個查詢語句。

(1) 檢索學習課程號為C2的學生學號與成績。
πSNO,GRADE(σ CNO='C2'(SC))

(2) 檢索學習課程號為C2的學生學號與姓名
πSNO,SNAME(σ CNO='C2'(SSC))
由於這個查詢涉及到兩個關系S和SC,因此先對這兩個關系進行自然連接,同一位學生的有關的信息,然後再執行選擇投影操作。

此查詢亦可等價地寫成:
πSNO,SNAME(S)(πSNO(σ CNO='C2'(SC)))
這個表達式中自然連接的右分量為"學了C2課的學生學號的集合"。這個表達式比前一個表達式優化,執行起來要省時間,省空間。

(3)檢索選修課程名為MATHS的學生學號與姓名。
πSNO,SANME(σ CNAME='MATHS'(SSCC))

(4)檢索選修課程號為C2或C4的學生學號。
πSNO(σ CNO='C2'∨CNO='C4'(SC))

(5) 檢索至少選修課程號為C2或C4的學生學號。
π1(σ1=4∧2='C2'∧5='C4'(SC×SC))
這里(SC×SC)表示關系SC自身相乘的乘積操作,其中數字1,2,4,5都為它的結果關系中的屬性序號。
希望能解決您的問題。

2. 關系資料庫中關系代數的基本運算有哪些

投影(projection)
關系R的投影運算是從R中選擇某些屬性的所有值組成的新關系。換言之,投影運算的結果是一個表的垂直方向的子集。關系R的投影運算記為:πA(R)。其中,A為R的一組屬性列。投影的結果將消除重復的元組。
選擇(selection)
關系R的選擇運算是從關系R中選擇滿足指定條件(用F表示)的元組構成的新關系。換言之,選擇運算的結果是一個表的水平方向的子集。關系R的選擇運算記為:σF(R)。
其中,F是包括屬性名的邏輯表達式,運算符有算術比較運算符:<,≤,>,≥,=,≠,和邏輯運算符:¬¬┐,∨,∧(非、或、與)。
連接(join)
連接運算是關系的二目運算。關系R與關系S的連接運算是從兩個關系的廣義笛卡爾積中選取屬性間滿足一定條件(稱為連接條件,記為AθB)的元組形成一個新關系。
除(divide)
設關系R的屬性可以分成互不相交的兩組,用X、Y表示(X∩Y為空集,X∪Y為R的全部屬性),則關系R可以表示為:R(X,Y)。

3. 資料庫關系代數

因為存在操作符和操作數,操作數為表,操作符為交、並等;
關系代數有分為基於集合的關系代數和基於包的關系代數;
關系代數的基本操作:並、選擇、投影、笛卡爾積、差、重命名;
基本操作的意思是其他的操作符可以通過基本操作推出;
注意:如果我們使用並、交、差運算,必須保證R和S的屬性集合是相同的,當然如果不同,也可以通過重命名操作;

4. 關系資料庫關系代數表達式怎麼寫

一、關系代數的9種操作:

關系代數中包括了:並、交、差、乘、選擇、投影、聯接、除、自然聯接等操作。

五個基本操作:
並(∪)、差(-)、笛卡爾積(×)、投影(σ)、選擇(π)

四個組合操作:
交(∩)、聯接(等值聯接)、自然聯接(R S)、除法(÷)
注2:等值連接表示先做笛卡爾積(×)之後,對相應列進行選擇或等值關聯後的結果(僅篩選行、不篩選列)
注2:自然連接表示兩個關系中若有相同名稱的屬性,則自動作為關聯條件,且僅列出一列

二、關系代數表達式:

由關系代數運算經有限次復合而成的式子稱為關系代數表達式。這種表達式的運算結果仍然是一個關系。可以用關系代數表達式表示對資料庫的查詢和更新操作。

三、舉例說明:

設教學資料庫中有3個關系:
學生關系S(SNO, SNAME,AGE,SEX)
學習關系SC(SNO,CNO,GRADE)
課程關系C(CNO,CNAME,TEACHER)

(1) 檢索學習課程號為C2的學生學號與成績
------------------------------------
SELECT SNO,GRADE
FROM SC
WHERE CNO='C2'
------------------------------------
π SNO, GRADE (σ CNO='C2' (SC))
************************************

(2) 檢索學習課程號為C2的學生學號與姓名
------------------------------------
SELECT SC.SNO,S.SNAME
FROM SC,S
WHERE SC.SNO=S.SNO
AND SC.CNO='C2'
------------------------------------
π SNO,SNAME (σ CNO='C2' (S SC))
此查詢涉及S和SC,先進行自然連接,然後再執行選擇投影操作。
----
π SNO,SNAME (S) (π SNO (σ CNO='C2' (SC)))
自然連接的右分量為"學了C2課的學生學號的集合"。
此表達式比前一個表達式優化,執行起來要省時間、省空間。
************************************

(3) 檢索選修課程名為MATHS的學生學號與姓名
------------------------------------
SELECT SC.SNO,S.SNAME
FROM SC,S,C
WHERE SC.SNO=S.SNO
AND SC.CNO=C.CNO
AND C.CNAME='MATHS'
------------------------------------
π SNO, SANME (σ CNAME='MATHS' (S SC C))
************************************

(4) 檢索選修課程號為C2或C4的學生學號
------------------------------------
SELECT SNO
FROM SC
WHERE CNO='C2'
OR CNO='C4'
------------------------------------
π SNO (σ CNO='C2'∨CNO='C4' (SC))
************************************

(5) 檢索至少選修課程號為C2或C4的學生學號
------------------------------------
SELECT SA.SNO
FROM SC AS SA,SC AS SB
WHERE SA.SNO=SB.SNO
AND SA.CNO='C2'
AND SB.CNO='C4'
------------------------------------
π 1 (σ 1=4∧2='C2'∧5='C4' (SC×SC))
************************************

(6) 檢索不學C2課的學生姓名與年齡
------------------------------------
SELECT SNAME,AGE
FROM S
MINUS
SELECT S.SNAME,S.AGE
FROM SC,S
WHERE SC.SNO=S.SNO
AND SC.CNO='C2'
(Oracle)
------------------------------------
π SNAME, AGE (S)-π SNAME, AGE (σ CNO='C2' (S SC))
************************************

(7) 檢索學習全部課程的學生姓名
------------------------------------

5. 關系資料庫中關系代數的基本運算有哪些

五種基本操作:並,差,積,選擇,投影;構成關系代數完備的操作集。其他非基本操作:可以用以上五種基本操作合成的所有操作。並(U)、交(⌒)、投影(π)選擇(σ)和笛卡兒積(×)。

傳統的集合運算:

1、並(UNION)設有兩個關系R和S,它們具有相同的結構。R和S的並是由屬於R或屬於S的元組組成的集合,運算符為∪。記為T=R∪S。

2、差(DIFFERENCE)R和S的差是由屬於R但不屬於S的元組組成的集合,運算符為-。記為T=R-S。

3、交(INTERSCTION)R和S的交是由既屬於R又屬於S的元組組成的集合,運算符為∩。記為T=R∩S。R∩S=R-(R-S)。

(5)資料庫中的關系代數擴展閱讀:

在資料庫世界裡,後關系資料庫仍舊泰然自若,保持其本色。

在現代IT界,SQL和XML已經成為資料庫的非常重要組成部分,這二者成為資料庫系統結構組成部分的歷史也很長久了,至於開始的時間我也很難記得了。

在60年代末和70年代初,出現了具備靈活欄位長度、嵌套表格、鬆散數據類型選擇的資料庫構架,這樣的資料庫系統不僅受市場歡迎,也得到大家的青睞。這些早期的資料庫系統雖然缺乏像XML一樣的標記功能,但是它們在實際工作中卻表現出和XML極為類似的功能。

描述這些資料庫系統的術語是「後關系」或者「多值」,它們沒有SQL關系資料庫知名,是因為這些資料庫系統缺乏許多新聞的宣傳度,我們很容易把它認為是一個實驗而已,然後這些實驗在人們的印象中就會半途而廢了,最終慢慢的消失。

6. 《資料庫原理》知識點之關系代數運算

2.2.1 關系代數的五個基本操作

考核要求:達到「簡單應用」

層次知識點:五個基本操作的含義和運算應用

(1)並(∪):兩個關系需有相同的關系模式,並的對象是元組,由兩個關系所有元組構成。

RUS≡{t| t∈R ∨t∈S}

(2) 差(-):同樣,兩個關系有相同的模式,R和S的差是由屬於R但不屬於S的元組構成的集合。

R-S≡{t| t∈R ∧t 不屬於S}

(3)笛卡爾陵爛拿積(×):對兩個關系R和S進行操作,產生的關系中元組個數為兩個關系中元組個數之積。

R×S≡{t| t= tr,ts>∧tr∈R∧ts ∈S}

(4) 投影(σ):對關系進行垂直分割,消去某些列,並重新安排列的順序。

(5) 選擇(π):根據某些條件關系尺搭作水平分割,即選擇符合條件的元組。

2.2.2 關系代數的四個組合操作

考核要求:達到「簡單應用」

層次知識點:四個組合操作的含義和運算應用

(1)交(∩):R和S的交是由既屬於R又屬於S的元組構成的集合。

(2)聯接:包括θ(算術比較符)聯接和F(公式)聯接。

選擇R×S中滿足iθ(r+j)或F條件的元組構成的集合;

概念上比較難理解,關鍵理解運算實例等值聯接(θ為等號「=」的聯接)。

(3)自然聯接(RS):在R×S中,選擇R和S公共屬性值均相等的元組,並去掉R×S中重復的公共屬性列。 如果兩個關系沒有公共屬性,則自然聯接就轉化為笛卡爾積。

(4)除法(÷):首先除法的結果中元數為兩個元數的差, R÷S的操作思路如下——把S看作一個塊,如果R中相同屬性集中的元組有相同的塊, 且除去此塊後留下的相應元組均相同,那麼可以得到一條元組, 所有這些元組的集合就是除法的結果

對於上述的五個基本操作和四個組合操歷友作,應當從實際運算方面進行理解和運用。

應用舉例

2.2.3 關系代數表達式及應用

考核要求:達到「簡單應用」

層次知識點:關系代數表達式的應用

本節的內容是有關實際應用,應該多看例題,多做習題,必須達到以下要求: 能夠根據給出的關系代數表達式計算關系值,也能夠根據相應查詢要求列出關系表達式。

(1)在列關系表達式時,通常有以下形式:

π……(σ……(R×S))或者π……(σ……(RS))

首先把查詢涉及到的關系取來,執行笛卡爾積或自然聯接操作得到一張大的表格,然後對大表格執行水平分割(選擇)和垂直分割(投影)操作。

(2)當查詢涉及到否定或全部的邏輯時,往往要用到差或除法操作。

關系代數表達式舉例

2.2.4 擴充的關系代數操作

考核要求:達到「識記」

層次知識點:了解「外聯接」和「外部並」的含義

注意:(1)「外聯接」、「左外聯接」、「右外聯接」和「自然連接」的差異。

(2)「外部並」和「並」的差異

7. 資料庫系統原理之關系代數

關系代數基於集合(關系),定義了一系列對集合(關系)對操作。如並,差,笛卡爾積,選擇,更名,投影等基本操作,以及基於基本操作推導出來的擴展操作。
關系代數作用於一個或多個關系,然後產生一個新的關系。可以將關系代數理解為函數,接受一個關系輸入,返回一個新對關系。舉個例子,我們將並操作命名為 Union ,那麼並操作可以表示為:

對於其他對操作如差操作,選擇操作等,都有相應對數學符號進行表示,但在中輸入這些符號比較困難,再加上我學習關系代數是了解基本的概念知識,這里就不使用數學符號表示了,而是以文字代替。
關系代數定義了基於集合(關系)的操作,其是 SQL 的重要基礎(另一個重要基礎是關系演算),了解了關系代數的概念以及各個操作要達到的目的之後,對 SQL 中對一些概念也會更加清晰,如連接操作。
本文首先介紹關系代數中的基礎操作,再介紹擴展操作。

關系代數的基礎操作有:並,差,笛卡爾積,選擇,更名,投影等。有些操作如並,差等要求參與運算的關系需要具備並相容性。所謂並相容性,就是兩個關系的屬性數目(度)相同,並且每個度所在的域相同。
如 R(學生,學號,地址) 和 S(課程,課程號) 兩個關系由於度和屬性所在的域不相同,因此不具備並相容性,也就無法進行並,差等操作。
相應的, R2(學生,學號,地址) 和 S(教師,教師號,地址) 由於度和屬性所在的域相同,因此具備並相容性。

並操作就是將兩個關系合並為一個關系,在合並時去掉重復的元組。為什麼要去掉重復項呢?這是集合的特質,集合要求不能有重復項。
R 並 S 和 S 並 R 得到的結果是一樣的,即並操作滿足交換律。
舉個例子,有兩個關系 R(學生) 和 S(教師):

這兩個關系進行並操作的結果為:

差操作用來選擇出現在一個關系但並未出在另一個關系中的元組。
還是以上面兩個關系 R(學生) 和 S(教師) 為例,R 差 S 的結果為:

S 差 R 的結果為:

其中元組 T(Jerry,2,澳大利亞) 在兩個關系中都出現,是兩個關系的交集。因此差操作就是從一個關系中去除和另一個關系的交集所得到的集合。
差操作不滿足交換律。

笛卡爾積用來將兩個關系連接起來,笛卡爾積的結果將兩個關系中所有可能的元組組合起來。假設關系 R 的元組數目為 M,度數為 I,關系 S 的元組數目為 N,度數為 J,那麼 R 和 S 進行笛卡爾積運算得到的新關系的元組數目為 M * N,度數為 I + J。
舉個例子,有兩個關系 R(學生) 和 S(課程) :

那麼對 R 和 S 進行笛卡爾積的結果為:

笛卡爾積用來將兩個關系連接在一起,獲取所有可能的結果,其是連接操作的基礎。

選擇操作就是從一個關系中,選擇出滿足條件的元組。
如從上面的學生表中,選擇出學號大於等於 2 的學生,結果為:

選擇條件由與或非邏輯表達式構成。

投影操作是從給定的關系中,選擇出某些屬性屬性構成新的關系。如從學生表中投影出一個新的關系 R(姓名,地址) :

關系代數常用的擴展操作有交操作,Theta 連接操作,自然連接操作,外連接操作,除操作等。擴展操作可以由基礎操作推導而來。

交操作用來從兩個關系中,選擇出同時存在於兩個關系中的元組。如上面 R(學生) 和 S(教師) 進行交操作的結果為:

Theta 連接操作會從兩個關系的笛卡爾積中,選擇出某個條件的元組,並去掉重復項。例如在上面笛卡爾積例子,選擇出課程號不為 c1 並且學號不為 s1 的元組:

連接操作一般和投影操作配合使用,比如從上面的結果集中投影出 R(姓名,課程) :

Theta 連接操作中有個特殊的操作,叫做等值連接,即選擇條件為判斷是否相等。

自然連接可以認為是一種特殊的等值連接,其要求兩個關系具有相同的屬性,並且判斷條件為兩個關系中的某兩個相同屬性的值相等。
自然連接是最常用的連接操作。
假如有兩個關系 R(學生 ) 和 S(班級) :

對這兩個關系進行自然連接的結果為:

外連接就是在自然連接的結果集中,將空值元組和沒有匹配到的元素放入到結果集中。
假如有兩個關系 R(學生 ) 和 S(班級) :

首先對這兩個關系進行自然連接:

我們在自然連接的結果集中,機上空值元組和沒有匹配到的元組:

以上就是外連接的結果,也叫做全外連接:保證兩端的元素不丟失。對應的,還有左外連接和右外連接,左外連接會保證左側的元素不丟失,右外連接會保證右側的元素不丟失。
因此上面兩個進行左外連接的結果為:

進行右外連接的結果為:

除操作是對兩個關系進行「除法」操作,要求「除數」關系是「被除數」關系的真子集。除操作會從「被除數」關系中,選擇出一個新的關系,設為 N,N 也是 「被除數」關系的真子集。N 需要滿足一個條件:
N 和「除數」關系的笛卡爾積是「被除數」關系的最大真子集。
好繞啊···
我們還是直接看例子吧。
假設有兩個關系: R(A1,A2,A3) 和 S(A3) :

對 R 和 S 進行除操作,得到的結果為:

如果 S 關系為:

那麼對 R 和 S 進行除操作的結果為:

從上面的例子來看,除操作適用於「滿足全部····」的查詢。舉個例子,從學生表中查詢選擇了所有課程或者選擇了軟體測試和軟體工程這兩門課程的學生。
假設存在一個關系 R(學生) 和 S(課程) :

現在我們要查詢選擇了軟體測試這門課的所有學生,則被除數關系為 R(學生) ,除數關系為:

對兩個關系進行除操作,得到的結果為:

如果我們只需要獲取學生的姓名,不需要學號這一列,那麼可以再對結果集進行投影操作:

本文介紹了關系代數以及關系代數中常用的基礎操作和擴展操作,基礎操作包括並,差,笛卡爾積,選擇,投影,更名等,某些基礎要做要求兩個參與運算的關系具有並相容性。擴展操作可以由基礎操作推導而來,可以完成更復雜的操作。
關系代數是 SQL 語言的基礎,SQL 語言是在關系代數上的一層封裝,目的是方便程序員使用。
關系代數的操作接受一個或多個關系作為輸入,再輸出一個新的關系,不同的關系操作可以進行相互的組合。例如可以先進行選擇操作再進行投影操作,先進行自然連接操作再進行選擇操作等等。根據不同的需求需要靈活的組合這些操作。

完。

8. 關系資料庫中關系代數的基本運算有哪些

基本的關系代數運算:選擇、投影、並、集合差、笛卡爾積和更名運算,其中選擇、投影、更名為一元運算,另外三個對兩個關系進行運算,所以為二元運算;
附加的關系代數運算:集合交∩、自然連接運算、賦值運算、外連接運算(左外連接、右外連接、全外連接);
擴展的關系代數運算:廣義投影、聚集(常用聚集函數:sum,avg,min,max)。

熱點內容
編程貓被盜 發布:2025-03-17 12:02:18 瀏覽:130
海關鎖密碼箱如何設置新密碼 發布:2025-03-17 11:53:50 瀏覽:559
農業卡號的密碼在哪裡改 發布:2025-03-17 11:48:57 瀏覽:965
楊瀾超級訪問 發布:2025-03-17 11:47:17 瀏覽:237
資料庫無損連接 發布:2025-03-17 11:47:16 瀏覽:13
memcachephp類 發布:2025-03-17 11:40:04 瀏覽:829
哈夫曼編碼演算法實現 發布:2025-03-17 11:23:31 瀏覽:385
錄音機可以存儲信息嗎 發布:2025-03-17 11:13:32 瀏覽:174
郵件伺服器php 發布:2025-03-17 11:09:42 瀏覽:479
心跳包源碼 發布:2025-03-17 11:03:29 瀏覽:799