當前位置:首頁 » 數據倉庫 » 資料庫中用優化的關系表達式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫中用優化的關系表達式

發布時間: 2022-12-21 17:16:53

1. 為什麼sql語言的select命令和關系代數表達式相比,dbms更容易進行優化

關系代數表達式由關系代數操作組合而成。操作中,以笛卡爾積和聯接操作最費時,並生成大量的中間結果。如果直接按表達式書寫的順序執行,必將花費很多時間,並生成大量的中間結果,效率較低。在執行前,由DBMS的查詢子系統先對關系代數表達式進行優化,盡可能先執行選擇和投影操作,以便減少中間結果,並節省時間。

2. 資料庫常用的關系運算是什麼

它們的操作對象只是一個關系,關系資料庫系統有如下特點。聯接運算是二目運算、自然聯接
自然聯接是去掉重復屬性的等值聯接,有些查詢需要幾個基本運算的組合,但它們是另外一個關系的關鍵字。在foxpro中有單獨一條命令join實現兩個關系的聯接運算,則稱為該關系的外關鍵字、傳統的集合運算
1,應當兩兩進行:
sele
1
use
定單
sele
2
use
商品
join
with
a
to
xgx
for
a->。
3、並(union)
設有兩個關系r和s:一類是傳統的集合運算(並,聯接條件中將出現兩個關系中的公共屬性名;=a->,另一類是專門的關系運算(選擇,欄位2。
綜上所述,運算符為∩。
如。由此可見,要經過若干步驟才能完成;定購量
設關系r和s分別有m和n個元組,即二維表的形式、投影、聯接運算
選擇和投影運算都是屬於一目運算。
(3)關系模型有嚴格的數學理論。
(2)關系資料庫系統提供一種完備的高級關系運算。
r∩s=r-(r-s)。
2。
1,是最常用的聯接運算,在關系運算中起著重要作用。
2。在foxpro中短語fields<欄位1。
如果需要兩個以上的關系進行聯接,值為真的元組將被選取;高等教育出版社'。利用關系的這三種專門運算可以方便地構造新的關系、可比的屬性。
在foxpro中的短語for<條件>和while<條件>均相當於選擇運算。如、交等)。
一、差(difference)
r和s的差是由屬於r但不屬於s的元組組成的集合。其中的條件是以邏輯表達式給出的、交(intersction)
r和s的交是由既屬於r又屬於s的元組組成的集合;
and
單價<=20
三。記為t=r∩s。
二,它們具有相同的結構,以便提高查詢效率關系的基本運算有兩類:
(1)資料庫中的全部數據及其相互聯系都被組織成關系:list
for
出版單位='。運算過程是通過聯接條件來控制的,生成的新關系中包含滿足聯接條件的元組,運算符為-:
list
fields
單位、外關鍵字
如果一個關系中的屬性或屬性組並非該關系的關鍵字,則r與s的聯接過程要訪問m×n個元組,姓名
四。
如。聯接是對關系的結合,支持對資料庫的各種操作。這是從列的角度進行的運算,運算符為∪;貨號=貨號
and
庫存量>。記為t=r∪s。它屬於聯接運算的一個特例、選擇運算
從關系中找出滿足給定條件的那些元組稱為選擇、投影運算
從關系模式中挑選若干屬性組成新的關系稱為投影,涉及到聯接的查詢應當考慮優化、聯接等),相當於對關系進行垂直分解,使資料庫的研究建立在比較堅實的數學基礎上,…>相當於投影運算、聯接
聯接是將兩個關系模式通過公共的屬性名拼接成一個更寬的關系模式,或者具有相同語義。r和s的並是由屬於r或屬於s的元組組成的集合。
五。記為t=r-s。這種運算是從水平方向抽取元組,需要兩個關系作為操作對象、差

3. 資料庫 查詢優化

針對問題一:

select s.sname
from sailor s,reserves r,boats b
where r.sid=s.sid and r.bid=b.bid and rating>5 and b.bid=100;

創建視圖
create or replace view reservesview as
select r.day,s.sid,s.sname,b.bid,b.bname
from sailor s,reserves r,boats b
where r.sid=s.sid and r.bid=b.bid and rating>5 and b.bid=100;

針對問題3:
select b.bcolor
from sailor s,reserves r,boats b
where r.sid=s.sid and r.bid=b.bid and s.sname='LUBBLE';

關系表達式你可以根據SQL反推一下。

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. 資料庫系統中的習題,關系代數的表達,6個問題

[例]設教學資料庫中有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都為它的結果關系中的屬性序號。

6. 資料庫的關系代數表達式

資料庫的關系代數表達式是由關系代數運算經有限次復合而成的式子。

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

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

(6)資料庫中用優化的關系表達式擴展閱讀:

關系代數表達式的運算過程是將關系的屬性分為像集屬性和結果屬性兩部分;與關系相同的屬性屬於像集屬性;不相同的屬性屬於結果屬性。在關系中,對像集屬性投影,得到目標數據集。將被關系分組。

分組原則是結果屬性值一樣的元組分為一組。逐一考察每個組,如果它的像集屬性值中包括目標數據集,則對應的結果屬性應屬於該運算結果集。

7. 標題在集中式資料庫的查詢優化中,為什麼說「I/O代價是最主要的」。

因為在查詢優化中需要考慮的主要因素包括I/O代價、CPU代價和通信代價。
查詢優化就是選擇一個高效執行的查詢處理策略。代數優化是指關系代數表達式的優化,即按照一定的規則,改變代數表達式中操作的次序和組合,使查詢執行效率更高。物理優化則是指存取路徑和底層操作演算法的選擇。
查詢優化的總目標是,選擇有效地策略,求得給定關系表達式的值,使得查詢代價最小。因此最為重要。

8. 資料庫中 什麼是表達式 VFP提供了哪幾種類型的表達式

在Visual FoxPro系統中,表達式是由常量、變數、函數及其他數據容器單獨或與運算符組成的有意義的運算式。表達式分為5種類型:
1. 算術表達式
算術表達式又稱數值表達式,其運算對象和運算結果均為數值型數據。
2. 字元表達式
字元表達式是由字元運算符將字元型數據對象連接起來進行運算的式子。其運算對象是字元型數據對象,運算結果是字元常量或邏輯常量。
3. 日期表達式
由日期運算符將一個日期型或日期時間型數據與一個數值型數據連接而成的運算式稱為日期表達式。日期運算符分為「+」和「-」兩種,其作用分別是在日期數據上增加或減少一個天數,在日期時間數據上增加或減少一個秒數。若兩個日期型數據相減,結果為兩日期間的天數差值,兩個日期時間型數據相減,結果為二者之間相差的秒數。
4. 關系表達式
由關系運算符連接兩個同類數據對象進行關系比較的運算式稱為關系表達式。關系表達式的值為邏輯值,關系表達式成立則其值為「真」,否則為「假」。
5. 邏輯表達式
由邏輯運算符將邏輯型數據對象連接而成的式子稱為邏輯表達式。關系表達式的運算對象與運算結果均為邏輯型數據。