元組關(guān)系演算語(yǔ)言ALPHA_第1頁(yè)
元組關(guān)系演算語(yǔ)言ALPHA_第2頁(yè)
元組關(guān)系演算語(yǔ)言ALPHA_第3頁(yè)
元組關(guān)系演算語(yǔ)言ALPHA_第4頁(yè)
元組關(guān)系演算語(yǔ)言ALPHA_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、元組關(guān)系演算語(yǔ)言 ALPHA元組關(guān)系演算1。元組關(guān)系演算概念 在元組關(guān)系演算系統(tǒng)中,稱t|(t) 為元組演算表達(dá)式。其中 t 是元組變量, (t) 為元組關(guān) 系演算公式,簡(jiǎn)稱公式。它由原子公式和運(yùn)算符組成。2。原子公式(1) R(t)R 是關(guān)系名, t 是元組變量。 R(t) 表示 t 是 R 中的元組。 于是, 關(guān)系 R 可表為:t|R(t)(2) Tiujt和u是元組變量,是算術(shù)比較運(yùn)算符。Tiuj表示 元組 t 的第 i 個(gè)分量與元組 u 的第 j 個(gè)分量滿足 比較關(guān)系。例如,t2<u3表示元組t的第2個(gè)分量小于元組 u 的第 3 個(gè)分量 ( 3) tic 或 cti這里 c 是常

2、量 ,該公式表示 t 的第 i 個(gè)分量與常量 c 滿 足比較關(guān)系 。例如 ,t4=3 表示元組 t 的第 4 個(gè)分量等于 3。3。若公式中的一個(gè)元組變量前有 全稱量詞 P (universal quantifier ) 或 存在量詞 v( existential quantifier ), 則稱該變量為約束元組變量,否則稱自由元組變量。4。 公式遞歸定義 定義:(l) 每個(gè)原子公式是公式。(2) 如果 1 和 2 是公式,則 1 A 2, 1 V 2,門(mén) 1 也是公式。表示: 如果1 和2 同時(shí)為真,則 1 A 2 才為真,否則為假; 如果1 和2 中一個(gè)或同時(shí)為真 ,則 1 V 2 為真,僅

3、當(dāng)1 和2 同時(shí)為假時(shí), 1 V 2 才為假;若1 為真,則門(mén) 1 為假。(3) 若 是公式,則 vt() 也是公式。 v t()表示:若有一個(gè)t使為真,則 vt() 為真,否則 vt() 為假。(4) 若 是公式,則 Pt() 也是公式。 P t()表示:如果對(duì)所有t,都使為真,則 Pt()為真,否則 Pt()為假。(5) 在元組演算公式中 , 各種運(yùn)算符的優(yōu)先次序?yàn)?:()>算術(shù)比較運(yùn)算符一 > v > P > n> A > V(6) 有限次地使用上述五條規(guī)則得到的公式是元組關(guān)系演算 公式 ,其他公式不是元組關(guān)系演算公式。5。元組關(guān)系演算表達(dá)式表示關(guān)系代

4、數(shù)的基本運(yùn)算 一個(gè)元組演算表達(dá)式 t|(t) 表示了使 (t) 為真的 元組集合。關(guān)系代數(shù)的運(yùn)算均可以用關(guān)系演算表達(dá)式來(lái)表示 (反之亦然 )。下面用關(guān)系演算表達(dá)式來(lái)表示五種基本運(yùn)算:(1) 并RS=t | R(t) V s(t)(2)差 :RS=t | R(t) An S(t)(3) 笛卡兒積RS=t(n+m)(vu(n)( vv(m)(R(u) A S(v) At1=u1 A A tn=un A tn+1=v1 A A tn+m=vm) 這里 t(n+m) 表示 t 有數(shù)目 (n+m)(4) 投影i1,i2,.,ik=t(k)| (vu)(R(u) At1=ui1 A tk=uik)(5)

5、選擇 :F(R)=t | R(t) A FF 是公式F用ti代替運(yùn)算對(duì)象i得到的等價(jià)公式。例 1 查詢信息系 (IS 系 )全體學(xué)生。SIS=t | Student(t) A t5= IS例 2 查詢年齡小于 20 歲的學(xué)生。S20=t | Student(t) A t4<20例 3 查詢學(xué)生的姓名和所在系。S仁t(2) | (vu)(Student(u) A t1=u2 A t2=u5)6。關(guān)系演算的安全限制上面定義的關(guān)系演算允許出現(xiàn)無(wú)限關(guān)系。例如,t| n R(t)表示所有不屬于 R 的元組 (元組的目數(shù)等于 R 的目數(shù) )。要求出這 些可能的元組是做不到的,所以必須排除這類(lèi)無(wú)意義的

6、表達(dá)式。把不產(chǎn)生無(wú)限關(guān)系的表達(dá)式稱為安全表達(dá)式,所采取的措施稱為安全限制。 安全限制通常是定義一個(gè)有限的符號(hào)集 dom() 。 dom() 一定包括出現(xiàn)在 以及中間結(jié)果和最后結(jié) 果的關(guān)系中的所有符號(hào) (實(shí)際上是各列中值的匯集)。dom() 不必是最小集。當(dāng)滿足下列條件時(shí) ,元組演算表達(dá)式 t|(t) 是安全的: 如果t使(t)為真,則t的每個(gè)分量是 dom() 中的元素。(2) 對(duì)于中每一個(gè)形如 (vu)(W(u) 的子表達(dá)式 ,若 u 使 W(u)為真,則u的每個(gè)分量是dom()中的元素。 對(duì)于中每一個(gè)形如(Pu)(W(u)的子表達(dá)式,若u使W(u)為假,則u的每個(gè)分量必屬于 dom()。換

7、言之, 若u某一分量不屬于 dom(),則 W(u)為真。例4設(shè)有關(guān)系R如圖2.8(a),S=t| n R(t),若不進(jìn)行安全限制, 則可能是一個(gè)無(wú)限關(guān)系。所以定義dom()= A(R)BC(R) =a1,a2,b1,b2,c1,c2則S是dom()中各域值中元素的笛卡兒積與R的差集。結(jié)果如圖2.8(b)。注意,在做笛卡兒積是各個(gè)域中的元素不 能搞混。元組關(guān)系演算語(yǔ)言 ALPHA 元組關(guān)系演算以元組變量作為謂詞變?cè)幕緦?duì)象。一種典 型的元組關(guān)系演算語(yǔ)言是 E.F.Codd 提出 ALPHA 語(yǔ)言, 這一 語(yǔ)言雖然沒(méi)有實(shí)際實(shí)現(xiàn), 但關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) INGRES 所 用的 QUEL 語(yǔ)言是參

8、照 ALPHA 語(yǔ)言研制的,與 ALPHA 十 分類(lèi)似。ALPHA 語(yǔ)言主要有 GET 、PUT 、HOLD 、UPDATE 、DELETE 、 DROP 六條語(yǔ)句,語(yǔ)句的基本格式是:操作語(yǔ)句 工作空間名(表達(dá)式) : 操作條件 其中表達(dá)式用于指定語(yǔ)句的操作對(duì)象,它可以是關(guān)系名或?qū)?性名,一條語(yǔ)句可以同時(shí)操作多個(gè)關(guān)系或多個(gè)屬性。操作條 件是一個(gè)邏輯表達(dá)式,用于將操作對(duì)象限定在滿足條件的元 組中,操作條件可以為空。除此之外,還可以在基本格式的 基礎(chǔ)上加上排序要求,定額要求等。以下仍以 P58 的實(shí)例討論 ALPHA 語(yǔ)言: 1、檢索操作檢索操作用 GET 語(yǔ)句實(shí)現(xiàn)。 (1)簡(jiǎn)單檢索(即不帶 條件

9、的檢索)舉例例 1 查詢所有被選修課程的課程號(hào)碼 GET W (SC.Cno) 這里條件為空,表示沒(méi)有限定條件。 W 為工作空間名。例2 查詢所有學(xué)生的數(shù)據(jù)GET W (Student)(2) 限定的檢索(即帶條件的檢索)舉例例 3 查詢信息系(IS)中年齡小于20歲的學(xué)生的學(xué)號(hào)和年齡GET W (Student.Sno, Student.Sage): Student.Sdept= IS AStudent.Sage<20v (3)帶排序的檢索舉例例 4 查詢計(jì) 算機(jī)科學(xué)系(CS)學(xué)生的學(xué)號(hào)、年齡,并按年齡降序排序GET W (Student.Sno, Student.Sage): Stu

10、dent.Sdept= CS DOWN Student.Sage(4)帶定額的檢索舉例例 5取出一個(gè) 信息系學(xué)生的學(xué)號(hào)GET W (1) (Student.Sno): Student.Sdept=IS所謂帶定額的檢索是指指定檢索出元組的個(gè)數(shù), 方法是在 W 后括號(hào)中加上定額數(shù)量。排序和定額可以一起使用。例 6 查詢信息系年齡最大的三個(gè)學(xué)生的學(xué)號(hào)及其年齡GET W (3) (Student.Sno, Student.Sage): Student.Sdept= IS DOWN Student.Sage(5)用元組變量的檢索詳細(xì)信息因?yàn)樵M變量是在某一關(guān)系范圍內(nèi)變化的,所以元 組變量又稱為范圍變量(

11、Range variable)。元組變量主要有 兩方面的用途: 簡(jiǎn)化關(guān)系名。在處理實(shí)際問(wèn)題時(shí),如果關(guān)系的名字很長(zhǎng), 使用起來(lái)就會(huì)感到不方便,這時(shí)我們可以設(shè)一個(gè)較短名字的 元組變量來(lái)簡(jiǎn)化關(guān)系名。 操作條件中使用量詞時(shí)必須用元組變量。元組變量是動(dòng)態(tài)的概念,一個(gè)關(guān)系可以設(shè)多個(gè)元組變量。例 7 查詢信息系學(xué)生的名字 RANGE Student XGET W (X.Sname): X.Sdept=IS這里元組變量 X 的作用是簡(jiǎn)化關(guān)系名 Student。 (6)用存在量 詞的檢索舉例例 8 查詢選修 2號(hào)課程的學(xué)生名字RANGE SC XGET W (Student.Sname): H X(X.Sno=

12、Student.Sno A X.Cno=2)例9 查詢選修了其直接先行課是6號(hào)課程的課程的學(xué)生學(xué)號(hào)RANGE Course CXGET W (SC.Sno): H CX (CX.Cno=SC.Cno A CX.Pcno=6) 例 10 查詢至少選修一門(mén)其先行課為 6 號(hào)課程的學(xué)生名字 RANGE Course CXSC SCXGET W (Student.Sname): H SCX (SCX.Sno=Student.Sno AH CX (CX.Cno=SC.Cno A CX.Pcno=6) 本例中的元組關(guān)系演算公式可以變換為前束范式( Prenex normal form )的形式:GET W

13、 (Student.Sname): H SCX H CX (SCX.Sno=Student.Sno ACX.Cno=SCX.Cno A CX.Pcno=6)例 8 、例 9 、例 10 中的元組變量都是為存在量詞而設(shè)的。其 中例 10 需要對(duì)兩個(gè)關(guān)系作用存在量詞,所以設(shè)了兩個(gè)元組 變量。 (7) 帶有多個(gè)關(guān)系的表達(dá)式的檢索舉例(1) 上面所舉的各個(gè)例子中,雖然查詢時(shí)可能會(huì)涉及多個(gè)關(guān)系,即公式中可 能涉及多個(gè)關(guān)系,但查詢結(jié)果都只在一個(gè)關(guān)系中,即表達(dá)式 中只有一個(gè)關(guān)系。實(shí)際上表達(dá)式中是可以有多個(gè)關(guān)系的。例 11 查詢成績(jī)?yōu)?90 分以上的學(xué)生名字與課程名字 本查詢所要求的結(jié)果學(xué)生名字和課程名字分別

14、在 Student 和 Course 兩個(gè)關(guān)系中。RANGE SC SCXGET W (Student.Sname, Course.Cname): 3 SCX(SCX.Grade 90 ASCX.Sno=Student.Sno A Course.Cno=SCX.Cno)(8)用全稱量 詞的檢索舉例例 12 查詢不選 1 號(hào)課程的學(xué)生名字RANGE SC SCXGET W (Student.Sname): V SCX(SCX.SnoStudent.Sno V SCX.Cno 1 )本例實(shí)際上也可以用存在量詞來(lái)表示:RANGE SC SCXGET W (Student.Sname): 7 3 SC

15、X (SCX.Sno=Student.Sno ASCX.Cno= 1 )(9)用兩種量詞的檢索舉例例13查詢選修了全部課程的學(xué)生姓名RANGE Course CXSC SCXGET W (Student.Sname): V CX H SCX(SCX.Sno=Student.Sno ASCX.Cno=CX.Cno)(10) 用蘊(yùn)函( Implication )的檢索舉例例 14 查詢最少選修了 95002 學(xué)生所選課程的學(xué)生學(xué)號(hào) 本例題的求解思路是,對(duì)Course中的所有課程,依次檢查每一門(mén)課程,看 95002 是否選修了該課程,如果選修了,則再 看某一個(gè)學(xué)生是否也選修了該門(mén)課。如果對(duì)于 95002 所選的 每門(mén)課程該學(xué)生都選修了,則該學(xué)生為滿足要求的學(xué)生。把 所有這樣的學(xué)生全都找出來(lái)即完成了本題。RANGE Couse CXSC SCXSC SCYGET W (Student.Sno): V CX(H SCX (SCX.Sno=95002 ASCX.Cno=CX.Cno)=> H SCY (SCY.Sno=Student.Sno ASCY.Cno=CX.Cno)(11) 集函數(shù)舉例用戶在使用查詢語(yǔ)言時(shí), 經(jīng)常要作一些簡(jiǎn)單的計(jì)算,例如要求符合某一查詢要求的元 組數(shù),求

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論