1,關(guān)系系統(tǒng)
1.1,最小關(guān)系系統(tǒng),關(guān)系完備系統(tǒng)和全關(guān)系系統(tǒng)
1.2,全關(guān)系系統(tǒng)的12條準(zhǔn)則
2,查詢優(yōu)化
2.1,六大準(zhǔn)則
選擇運(yùn)算要優(yōu)先
連接前要預(yù)處理(建立索引或者關(guān)系排序)
投影選擇同時做
投影雙目相結(jié)合
選擇結(jié)合笛卡爾(組成了一個連接運(yùn)算)
找出公共表達(dá)式
2.2,等價變換規(guī)則(十大變換)
連、笛交換律
連、笛結(jié)合律
投影串接律
選擇串接律
選投交換律
選笛交換律
選并交換律
選差交換律
投笛交換律
投并交換律
2.3,查詢優(yōu)化六步算法
1,利用串接定律把選擇拆單
2,利用4到8的交換律把選擇盡可能移動到樹的葉端
3,將投影用串接定律拆單,并通過投笛交換律和投并交換律盡量移動到葉端
4,利用選投交換律選擇投影變成單個選擇、單個投影或者一個選擇后跟著一個投影。
5,把雙目運(yùn)算符(笛,連,并,差)與父節(jié)點(diǎn)的選擇投影算做一組,如果雙目后代都是單目運(yùn)算符則也并入該組。注意,如果雙目運(yùn)算符是笛卡爾積,但是其后代中的選擇不能與其合并成連接時,那么就不能并為一組。(原書說了半天一個例子也沒舉,這本書經(jīng)常這樣)。
6,生成程序。
說句實話,1、2、3、4四步還可以理解,第5步我是不太理解作者想表達(dá)什么,隨緣吧。
2.4,查詢優(yōu)化一般步驟
生成內(nèi)部表示(生)——>語法書轉(zhuǎn)化為優(yōu)化形式(優(yōu))——>選擇底層存取路徑(選)——>估計代價選最?。ü溃?/p>
課后習(xí)題


解答:
1,最小關(guān)系系統(tǒng):僅支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和三種關(guān)系操作(選擇、投影、連接)。
關(guān)系完備系統(tǒng):支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和所有的關(guān)系操作。
全關(guān)系系統(tǒng):在關(guān)系完備的基礎(chǔ)上,支持域的概念,以及實體完整性和參照完整性。
2,書上原文,懶得抄了。
3,重要性:由于用戶的查詢語句是非過程化的,所以這意味著DBMS可以生成多種方案來完成一次查詢,這些方案的代價各不相同,所以DMBS必須適當(dāng)選擇合理的代價來完成用戶的查詢操作,這直接決定了一個數(shù)據(jù)庫系統(tǒng)的性能。
可能性:關(guān)系表達(dá)式的語義級別很高,使關(guān)系系統(tǒng)可以從關(guān)系表達(dá)式中分析查詢語義,這提供了查詢優(yōu)化的可能性。
4,最終的優(yōu)化就是把Student.Sdept = 'IS'移動到葉子端。
5,參考我前面歸納的六大準(zhǔn)則。
6,參考前面我歸納的一般步驟,即生優(yōu)選估。