2.4.1 關(guān)系代數(shù)表達式的優(yōu)化問題
考核要求:達到“領(lǐng)會”
層次知識點:關(guān)系代數(shù)表達式的優(yōu)化問題
查詢優(yōu)化的目的就是為了系統(tǒng)在執(zhí)行時既省時間又能提高效率。
在關(guān)系代數(shù)運算中,通常是先進行笛卡爾積或聯(lián)接運算,再進行選擇和投影。笛卡爾積或聯(lián)接運算卻往往花費教多的時間。
因此,恰當(dāng)?shù)匕才胚x擇、投影和聯(lián)接的順序直接影響到整個操作所需要的時間和空間。 如何安排若干關(guān)系的運算操作步驟,是查詢優(yōu)化所要考慮的問題。
2.4.2 關(guān)系代數(shù)表達式的等價變換規(guī)則
考核要求:達到“識記”
層次知識點:等價變換規(guī)則
兩個關(guān)系代數(shù)表達式等價是指用同樣的關(guān)系實例代替兩個表達式中相應(yīng)關(guān)系時所得到的結(jié)果是完全一樣的。
等價變換規(guī)則有很多,不要死記,從語義上理解。
其實,只要在前面的學(xué)習(xí)中已經(jīng)掌握關(guān)系運算的真正含義,就可以判斷兩個關(guān)系代數(shù)表達式是否等價。
2.4.3 優(yōu)化的策略
考核要求:達到“領(lǐng)會”
層次知識點:優(yōu)化的策略及其簡單應(yīng)用
優(yōu)化的策略主要有以下幾點:
(1)在關(guān)系代數(shù)表達式中盡可能早地執(zhí)行選擇操作;
(2)把笛卡爾積和隨后的選擇操作合并成F聯(lián)接運算;
(3)同時計算一連串的選擇和投影操作;
(4)保留同一子表達式的結(jié)果;
(5)適當(dāng)對關(guān)系文件進行預(yù)處理 ;
(6)計算表達式之前先估計一下怎么計算合算。
以上優(yōu)化策略要求會簡單應(yīng)用:先做選擇,運用投影去除多余屬性等等。
2.4.4 關(guān)系代數(shù)表達式的優(yōu)化算法
考核要求:達到“簡單應(yīng)用”
層次知識點:語法樹
學(xué)會畫語法樹,并掌握優(yōu)化算法。
舉例
在教學(xué)數(shù)據(jù)庫S、SC、C中,用戶有一查詢語句:檢索女同學(xué)選修課程的課程名和任課教師名。
(1)試寫出該查詢的關(guān)系代數(shù)表達式;
(2)試寫出查詢優(yōu)化的關(guān)系代數(shù)表達式;
(3)畫出該查詢初始的關(guān)系代數(shù)表達式的語法樹;
(4)使用2.4.4節(jié)的優(yōu)化算法,對語法樹進行優(yōu)化,并畫出優(yōu)化后的語法樹。
考核要求:達到“領(lǐng)會”
層次知識點:關(guān)系代數(shù)表達式的優(yōu)化問題
查詢優(yōu)化的目的就是為了系統(tǒng)在執(zhí)行時既省時間又能提高效率。
在關(guān)系代數(shù)運算中,通常是先進行笛卡爾積或聯(lián)接運算,再進行選擇和投影。笛卡爾積或聯(lián)接運算卻往往花費教多的時間。
因此,恰當(dāng)?shù)匕才胚x擇、投影和聯(lián)接的順序直接影響到整個操作所需要的時間和空間。 如何安排若干關(guān)系的運算操作步驟,是查詢優(yōu)化所要考慮的問題。
2.4.2 關(guān)系代數(shù)表達式的等價變換規(guī)則
考核要求:達到“識記”
層次知識點:等價變換規(guī)則
兩個關(guān)系代數(shù)表達式等價是指用同樣的關(guān)系實例代替兩個表達式中相應(yīng)關(guān)系時所得到的結(jié)果是完全一樣的。
等價變換規(guī)則有很多,不要死記,從語義上理解。
其實,只要在前面的學(xué)習(xí)中已經(jīng)掌握關(guān)系運算的真正含義,就可以判斷兩個關(guān)系代數(shù)表達式是否等價。
2.4.3 優(yōu)化的策略
考核要求:達到“領(lǐng)會”
層次知識點:優(yōu)化的策略及其簡單應(yīng)用
優(yōu)化的策略主要有以下幾點:
(1)在關(guān)系代數(shù)表達式中盡可能早地執(zhí)行選擇操作;
(2)把笛卡爾積和隨后的選擇操作合并成F聯(lián)接運算;
(3)同時計算一連串的選擇和投影操作;
(4)保留同一子表達式的結(jié)果;
(5)適當(dāng)對關(guān)系文件進行預(yù)處理 ;
(6)計算表達式之前先估計一下怎么計算合算。
以上優(yōu)化策略要求會簡單應(yīng)用:先做選擇,運用投影去除多余屬性等等。
2.4.4 關(guān)系代數(shù)表達式的優(yōu)化算法
考核要求:達到“簡單應(yīng)用”
層次知識點:語法樹
學(xué)會畫語法樹,并掌握優(yōu)化算法。
舉例
在教學(xué)數(shù)據(jù)庫S、SC、C中,用戶有一查詢語句:檢索女同學(xué)選修課程的課程名和任課教師名。
(1)試寫出該查詢的關(guān)系代數(shù)表達式;
(2)試寫出查詢優(yōu)化的關(guān)系代數(shù)表達式;
(3)畫出該查詢初始的關(guān)系代數(shù)表達式的語法樹;
(4)使用2.4.4節(jié)的優(yōu)化算法,對語法樹進行優(yōu)化,并畫出優(yōu)化后的語法樹。

