語(yǔ)法樹學(xué)習(xí)筆記數(shù)據(jù)庫(kù)實(shí)現(xiàn)原理_第1頁(yè)
語(yǔ)法樹學(xué)習(xí)筆記數(shù)據(jù)庫(kù)實(shí)現(xiàn)原理_第2頁(yè)
語(yǔ)法樹學(xué)習(xí)筆記數(shù)據(jù)庫(kù)實(shí)現(xiàn)原理_第3頁(yè)
語(yǔ)法樹學(xué)習(xí)筆記數(shù)據(jù)庫(kù)實(shí)現(xiàn)原理_第4頁(yè)
語(yǔ)法樹學(xué)習(xí)筆記數(shù)據(jù)庫(kù)實(shí)現(xiàn)原理_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

語(yǔ)法樹學(xué)習(xí)?筆記——數(shù)據(jù)庫(kù)實(shí)現(xiàn)?原理5.2寫sql?語(yǔ)句-畫語(yǔ)法樹-邏輯查詢計(jì)?劃-簡(jiǎn)單優(yōu)化(選擇、投影)5.2.1寫sql語(yǔ)?句這部分不是?在這兒學(xué)的?,簡(jiǎn)單說(shuō)說(shuō)吧?,高手略過(guò),挑毛病也可?:舉例:查詢生于1?960年的影星的?名字:SELEC?TnameFROMMovie?StarWHERE?birth?dateLIKE’%1960’Selec?t是查詢語(yǔ)句?開頭的關(guān)鍵?字,永遠(yuǎn)不變,記住即可(別寫錯(cuò)單詞?就行)后面跟著的?是一個(gè)或多?個(gè)屬性名(在數(shù)據(jù)庫(kù)中?叫字段名),此處是影星?數(shù)據(jù)庫(kù)表的?一個(gè)字段“name”,存儲(chǔ)的是影?星的名字。注意:如果這里有?多個(gè)屬性名?,請(qǐng)用逗號(hào)“,”分隔開From也是關(guān)鍵字?,后面跟著的?是數(shù)據(jù)庫(kù)表?名,就是關(guān)系名?(R),也可以有多?個(gè),用逗號(hào)分隔?Where?查詢是條件?部分,后面跟著的?是查詢條件?表達(dá)式,由屬性名、值、運(yùn)算或比較?符號(hào)等組成?。這個(gè)例子的?查詢條件是?:生日(birth?date)屬性值為以?1960結(jié)?尾的那些記?錄,“%”是通配符(通配所有長(zhǎng)?度的字符串?,“_”只通配長(zhǎng)度?為1的字符?串),注意:用通配符時(shí)?一定要用L?ike關(guān)鍵?字哦。如果字段是?日期類型的?,快看SQL?的書吧,要對(duì)準(zhǔn)格式?的!5.2.2畫語(yǔ)法樹先看語(yǔ)法樹?中要用到的?語(yǔ)法:語(yǔ)法類<Attr>,<Rel>和<Value?>(或Patt?ern)比較特殊,因?yàn)樗鼈儾?是通過(guò)語(yǔ)法?規(guī)則定義的,而是通過(guò)它?們所代表的?原子的規(guī)則?來(lái)定義的。–Attr的?子女必須是?符合數(shù)據(jù)庫(kù)?模式中屬性?名的字符串?–Rel的子?女必須是符?合數(shù)據(jù)庫(kù)模?式中關(guān)系名?的字符串–Value?(或Patt?ern)必須是符合?SQL語(yǔ)法?的字符串或?數(shù)值看個(gè)例子吧?:假設(shè)一個(gè)數(shù)?據(jù)庫(kù)中存儲(chǔ)?著學(xué)生和系?院兩個(gè)表如?下:我們想要查?詢到所有具?有四年級(jí)學(xué)?生的系院的?名稱:Selec?tDeptN?amefromDepar?tment?,Stude?ntwhere?Stude?nt.Major?=Depar?tment?.CodeAndStude?nt.Year=4就是讓St?udent?和Depa?rtmen?t兩個(gè)表通?過(guò)“專業(yè)”Major?進(jìn)行等值連?接(join),并限定只返?回Stud?ent中有?四年級(jí)的那?些記錄語(yǔ)法樹如下?:這里只要注?意語(yǔ)法名稱?和畫法即可?。注意:1、在From?List中?的屬性名用?Rel表示?,不要用At?tr,2、如果Fro?mList?中有兩個(gè)以?上的關(guān)系(表)名,則請(qǐng)?jiān)诘诙?個(gè)以后的<Rel>的上層加入?一個(gè)<FromL?ist>!3、條件<Condi?tion>中如果有多?個(gè)條件,請(qǐng)將每個(gè)條?件用多級(jí)<Condi?tion>分層,直到最后細(xì)?化到<Attr>,<Value?>對(duì)應(yīng)的具體?屬性名稱或?值為止。5.2.3邏輯查詢計(jì)?劃樹從語(yǔ)法分析?樹到邏輯查?詢計(jì)劃樹,看一個(gè)簡(jiǎn)單?的情況的圖?例:轉(zhuǎn)換成關(guān)系?代數(shù)的方法?:–直接將所有?“簡(jiǎn)單的”selec?t-from-where?結(jié)構(gòu)轉(zhuǎn)換成?關(guān)系代數(shù),具體地:?如果有一個(gè)?屬于“SFW”成份的<query?>,并且該成份?中的<Condi?tion>沒有子查詢?,則我們可以?用一個(gè)關(guān)系?代數(shù)表達(dá)式?來(lái)替換整個(gè)?成份—selec?t列表、from列?表以及條件?,其中代數(shù)表?達(dá)式自底向?上由以下內(nèi)?容組成:–<FromL?ist>中提及的全?部關(guān)系的積?是以下操作?符的參數(shù):–選擇σC,其中C就是?要被替換成?份中的“condi?tion”表達(dá)式的參?數(shù),同時(shí)選擇又?是下面操作?符的參數(shù)–投影πL,其中L是”SelLi?st”中的屬性列?表。看下面的圖?例琢磨琢磨?:如果涉及到?嵌套查詢,那么有關(guān)如?何從條件中?去除子查詢?的部分大家?就到網(wǎng)上查?找吧,如果知道了?原理也不難?,這里就不研?究了,汗……5.2.4啟發(fā)式優(yōu)化?啟發(fā)式優(yōu)化?的原則:–盡可能地將?選擇條件下?推,盡早執(zhí)行選?擇,使得過(guò)濾后?的中間結(jié)果?盡可能地小?;–用連接(join)替換笛卡爾?積–盡可能下推?投影,在適當(dāng)?shù)奈?置增加投影?操作利用pip?eline?,減少查詢計(jì)?劃的執(zhí)行時(shí)?間看圖例吧:呵呵,上圖不需要?優(yōu)化,按照啟發(fā)式?優(yōu)化的原則?,已經(jīng)是最優(yōu)?了。這個(gè)需要優(yōu)?化:1、用join?替換了笛卡?爾積和選擇?的組合,注意替換的?細(xì)節(jié),選擇的條件?成為了jo?in的條件?,2、下推了投影?,因?yàn)橄旅鎓?rom列表?中的Dep?artme?nt是可以?提前進(jìn)行投?影的(可以減少結(jié)?果集),不過(guò)注意要?將code?一起投影下?來(lái),因?yàn)樵谏蠈?進(jìn)行joi?n時(shí)是需要?code這?個(gè)屬性的,否則將jo?in不出任?何結(jié)果,這個(gè)很重要?,一定要記住?!再看一個(gè)例?子:注意:這個(gè)例子比?上圖多了一?個(gè)下推了選?擇,下推選擇時(shí)?要注意,因?yàn)橹挥蠸?tuden?t有Yea?r(學(xué)年)的屬性,所以,只能下推到?Stude?nt那里,而且因?yàn)镈?epart?ment中?沒有Yea?r屬性,所以Joi?n時(shí)不需要?這個(gè)條件!也就是因?yàn)?以上兩個(gè)原?因

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論