資料庫關係代數運算問題,資料庫關係代數運算問題

2021-03-04 08:30:11 字數 6257 閱讀 8558

1樓:匿名使用者

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

rus≡

(2) 差

答(-):同樣,兩個關係有相同的模式,r和s的差是由屬於r但不屬於s的元組構成的集合。

r-s≡

(3)笛卡爾積(×):對兩個關係r和s進行操作,產生的關係中元組個數為兩個關係中元組個數之積。

r×s≡

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

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

2樓:匿名使用者

這個問題一定會涉及到「統計」的問題,而關係代數沒有高階語言中的資料定義,所以關係代數無法解決該問題。

關聯式資料庫中關係代數的基本運算有哪些

3樓:仙人掌的憂傷

五種基本操作:並,差,積,選擇,投影;構成關係代數完備的操作集。其他非基本操作:

可以用以上五種基本操作合成的所有操作。並(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)。

4樓:匿名使用者

投影(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)。

資料庫中的關係代數運算

5樓:壤駟興文韶起

r(x,

y)和s(y,z),

r/s=

如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!

vaela

資料庫基礎問題, 關係代數的基本運算有哪些, 如何用這些基本運算表示其他運算??

6樓:真靈級存在

並、差、笛卡爾積、投影和選擇5種運算為基本的運算。其他3種運算,即交、連線和除,均可以用這5種基本運算來表達。

資料庫的關係代數表示式 100

7樓:仁昌居士

資料庫的關係代數表示式是由關係代數運算經有限次複合而成的式子。

在關係代數運算中,把由並(∪)、差(-)、笛卡爾積(×)、投影(π)、選擇(σ)五個基本操作經過有限次複合的式子稱為關係代數表示式。關係代數表示式的運算結果仍然是一個關係。可以用關係代數表示式表示對資料庫的各種資料查詢和更新操作。

關係代數表示式用到的運算子包括集合運算子、專門的關係運算子、算術比較符和邏輯運算子。和交(∩)、聯接(等值聯接)、自然聯接(rxs)、除法(÷) 四個組合操作。

8樓:哈工大威海校區

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

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

五個基本操作:

並(∪)、差(-)、笛卡爾積(×)、投影(σ)、選擇(π)

四個組合操作:

交(∩)、聯接(等值聯接)、自然聯接(r s)、除法(÷)

注2:等值連線表示先做笛卡爾積(×)之後,對相應列進行選擇或等值關聯後的結果(僅篩選行、不篩選列)

注2:自然連線表示兩個關係中若有相同名稱的屬性,則自動作為關聯條件,且僅列出一列

二、關係代數表示式:

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

三、舉例說明:

設教學資料庫中有3個關係:

學生關係s(sno, sname,age,***)

學習關係sc(sno,**o,grade)

課程關係c(**o,**ame,teacher)

(1) 檢索學習課程號為c2的學生學號與成績

------------------------------------

select sno,grade

from sc

where **o='c2'

------------------------------------

π sno, grade (σ **o='c2' (sc))

************************************

(2) 檢索學習課程號為c2的學生學號與姓名

------------------------------------

select sc.sno,s.sname

from sc,s

where sc.sno=s.sno

and sc.**o='c2'

------------------------------------

π sno,sname (σ **o='c2' (s sc))

此查詢涉及s和sc,先進行自然連線,然後再執行選擇投影操作。

----

π sno,sname (s) (π sno (σ **o='c2' (sc)))

自然連線的右分量為"學了c2課的學生學號的集合"。

此表示式比前一個表示式優化,執行起來要省時間、省空間。

************************************

(3) 檢索選修課程名為maths的學生學號與姓名

------------------------------------

select sc.sno,s.sname

from sc,s,c

where sc.sno=s.sno

and sc.**o=c.**o

and c.**ame='maths'

------------------------------------

π sno, sanme (σ **ame='maths' (s sc c))

************************************

(4) 檢索選修課程號為c2或c4的學生學號

------------------------------------

select sno

from sc

where **o='c2'

or **o='c4'

------------------------------------

π sno (σ **o='c2'∨**o='c4' (sc))

************************************

(5) 檢索至少選修課程號為c2或c4的學生學號

------------------------------------

select sa.sno

from sc as sa,sc as sb

where sa.sno=sb.sno

and sa.**o='c2'

and sb.**o='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.**o='c2'

(oracle)

------------------------------------

π sname, age (s)-π sname, age (σ **o='c2' (s sc))

************************************

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

------------------------------------

這個定義用sql表示比較麻煩,略過

------------------------------------

π sno, **o (sc)÷π **o (c)

先用除法取出選取所有課程的sno集(除法可以理解為一個filter)

π sname (s (π sno,**o (sc)÷π **o (c)))

再關聯s表取出sname

************************************

(8) 檢索所學課程包含s3所學課程的學生學號

------------------------------------

這個定義用sql表示比較麻煩,略過

------------------------------------

π sno,**o (sc)÷ π **o (σ sno='s3' (sc))

同樣運用了除法的特性

************************************

(9) 將新課程元組( 'c10','physics','yu') 插入到關係c中

------------------------------------

insert into c values('c10','physics','yu')

------------------------------------

(c∪ ('c10','physics','yu'))

記住該符號的用法

************************************

(10) 將學號s4選修課程號為c4的成績改為85分

------------------------------------

update sc set grade=85

where sno='s4'

and **o='c4'

------------------------------------

(sc- ('s4','c4',? )∪ ('s4','c4',85))

先用'- '實現delete功能,再用'∪'實現insert功能

注意使用?來表示檢索時忽略該欄位值

************************************

四、關係代數表示式的優化:

目的 :為了系統在執行時既省時間又能提高效率。

基本策略 :先做選擇,運用投影去除多餘屬性等等。

優化演算法 :語法樹( 儘量提前做選擇操作;在每個操作後,應做個投影操作,去掉不用的屬性值)

例如:π sno ,sname (σ grade>60 (s sc)) 進行 優化後轉換為:

π sno ,sname (π sno ,sname (s) π sno (σ grade>60 (sc)))

--即提前做選擇操作;在每個操作後,應做個投影操作,去掉不用的屬性值

又如:s(s#,sname,age,***)

sc(s#,c#,grade)

c(c#,**ame,teacher)

π **ame,teacher (σ ***='女' (s sc c)) 進行 優化後轉換為:

π **ame, teacher (c π c# (π s#,c# (sc) π s# (σ ***='女' (s))))

求高手做一題目資料庫關係代數,急求 資料庫系統中的(關係代數)型別的題。 很重要。謝謝你們了。

1 select t.tname,t.titlefrom t inner join c on t.t c.twhere c.cname 高等數學 2 select dlookup cname c c sc.c as cname from s left join sc on s.s sc.swhere...

資料庫問題

1 select sno 商號 from spj where jno j1 2 select j.jname from spj inner join p on spj.sno p.pno inner join j on spj.jno j.jno where j.city 上海 and p.colo...

oracle資料庫,Oracle新建資料庫

樓主只要新建一個表空間,並把它分配給一個使用者就可以了。確定樓主是以管理員身份登入的 1.首先,建立 新 使用者 create user username identified by password username 新使用者名稱的使用者名稱 password 新使用者的密碼 也可以不建立新使用者...