《數(shù)據(jù)庫(kù)原理》知識(shí)點(diǎn)之查詢優(yōu)化

字號(hào):

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