sql資料庫關係代數表示式舉例問題

2021-04-23 23:46:25 字數 5443 閱讀 9592

1樓:匿名使用者

括號裡面的s▷◁sc表示的是自然連線,當查詢的選擇條件涉及的屬性和查詢結果要求的屬性不在同一張表裡的時候,這時就需要使用連線查詢將條件和結果關聯起來。

關係代數與sql語句的關係舉例說明

2樓:雲南新華電腦學校

sql語句用法及關係代數運算是資料庫原理課中的重點和難點內容,關係代數是一種抽象數學語言,是關係資料操縱語言的一種傳統表達方式.sql是業界公認的一種結構化的查詢語言,雖然各類資料庫管理系統中sql語言有不同語法結構,但差別不大,且已形成了關聯式資料庫的國際標準語言.

幫幫忙啊 寫出sql和關係代數表示式啊 謝謝啦 急!!!! 20

3樓:匿名使用者

對不起啊同學,我完全沒看懂。。。。。。。o(╯□╰)o 看樓下的吧

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

4樓:仁昌居士

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

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

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

5樓:哈工大威海校區

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

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

五個基本操作:

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

四個組合操作:

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

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

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

二、關係代數表示式:

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

三、舉例說明:

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

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

學習關係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) 檢索學習全部課程的學生姓名

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

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

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

π sno, cno (sc)÷π cno (c)

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

π sname (s (π sno,cno (sc)÷π cno (c)))

再關聯s表取出sname

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

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

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

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

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

π sno,cno (sc)÷ π cno (σ 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 cno='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#,cname,teacher)

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

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

sql資料庫中關係代數的除運算怎麼理解?

6樓:阿冬

簡單的說就是查詢在被除數中能夠完全覆蓋除數的部分。

7樓:匿名使用者

r(a,b)/s(b)

將被除關係r按照除s不包含的屬性a進行分組,檢視每個分組a,如果分組a中包含的b屬性值能夠覆蓋s中的b屬性值,則該分組符合查詢條件。

sql語句表示關係代數表示式,急! 30

8樓:匿名使用者

public void testlogin() {

system.out.println("executing login scenario");

資料庫關係代數表示式的問題,第四問和第五問,那幾個數字代表什

這個表示格表的列。其中1 5表示篩選出第一列與第五列中相等的行。記得采納哦 資料庫關係代數表示式的問題,第四問和第五問,不明白什麼意思,求解答。20 給你答案其實是在害你,給你知識點,如果還不會再來問我 線性代數的學習切入點 線性方程組。換言之,可以把線性代數看作是在研究線性方程組這一物件的過程中建...

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

1 並 兩個關係需有相同的關係模式,並的物件是元組,由兩個關係所有元組構成。rus 2 差 答 同樣,兩個關係有相同的模式,r和s的差是由屬於r但不屬於s的元組構成的集合。r s 3 笛卡爾積 對兩個關係r和s進行操作,產生的關係中元組個數為兩個關係中元組個數之積。r s 4 投影 對關係進行垂直分...

描述關係代數與資料庫查詢語言的關係

第一類是用對關係的運算來表達查詢的方式,稱為關係代數。第二類是用謂詞來表達查詢要求的方式稱為關係演算。關係演算又可按謂詞變元的基本物件是元組變數還是域變數分為元組關係演算和域關係演算兩種。這三種運算在表達能力上可互相轉換。實際的查詢語言要求能提供其中任何一種語言所能實現的功能。但實際上有些資料庫語言...