一節(jié)授課順序_第1頁(yè)
一節(jié)授課順序_第2頁(yè)
一節(jié)授課順序_第3頁(yè)
一節(jié)授課順序_第4頁(yè)
一節(jié)授課順序_第5頁(yè)
已閱讀5頁(yè),還剩38頁(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)介

授課順序:5授課學(xué)時(shí):2學(xué)時(shí)教學(xué)方式:講授基本要求:掌握關(guān)系代數(shù)除法運(yùn)算和關(guān)系演算的概念、關(guān)系演算的使用及關(guān)系演算與關(guān)系代數(shù)之間的關(guān)系2/5/202314.除法(Division)除法運(yùn)算是二目運(yùn)算,設(shè)有關(guān)系R(X,Y)與關(guān)系S(Y,Z),其中X,Y,Z為屬性集合,R中的Y與S中的Y可以有不同的屬性名,但對(duì)應(yīng)屬性必須出自相同的域。關(guān)系R除以關(guān)系S所得的商是一個(gè)新關(guān)系P(X),P是R中滿足下列條件的元組在X上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:R÷S={tr[X]|tr∈R∧Πy(S)Yx}其中,結(jié)果只包含X屬性中的分量,Yx為x在R中的象集,x=tr[X]。除法運(yùn)算為非基本運(yùn)算,可以表示為:R÷S=Πx(R)-Πx(Πx(R)×S-R)2/5/20232例2.11已知關(guān)系R和S,如圖2.11(a),(b)所示,則R÷S如圖(c)所示。與除法的定義相對(duì)應(yīng),本題中X={A,B}={(a1,b2),(a2,b4),(a3,b5)},Y={C,D}={(c3,d5),(c4,d6)},Z={F}={f3,f4}。其中,元組在X上各個(gè)分量值的象集分別為:(a1,b2)的象集為{(c3,d5),(c4,d6)}(a2,b4)的象集為{(c1,d3)}(a3,b5)的象集為{(c2,d8)}S在Y上的投影為{(c3,d5),(c4,d6)}顯然只有(a1,b2)的象集包含S在Y上的投影,所以R÷S={(a1,b2)}2/5/20233

R

SR÷S

ABCD

CDF

ABa1b2c3d5

c3d5f3

a1b2a1b2c4d6

c4d6f4

a2b4c1d3

a3b5c2d8

(a)

(b)

(c)圖2.112/5/202341.先把關(guān)系R和S分成兩個(gè)屬性組R(X,Y),S(Y,Z)2.計(jì)算X中每一條記錄t所包含Y上的象集T3.判定T是否包含∏Y(S)4.若是,t就是我們所求的記錄5.循環(huán),直到把R中記錄求完。2/5/20235例:2.6.1

RABCa1b1c1a2b1c1a1b2c1a1b2c2a2b1c2a1b2c3a1b2c4a1b1c5Cc1ABa1b1a2b1a1b2Cc1c2ABa1b2a2b1Cc1c2c3c4ABa1b2SS2S3TT2T3T:=RST2:=RS2T3:=RS32/5/20236除法運(yùn)算同時(shí)從行和列的角度進(jìn)行運(yùn)算,適合于包含“全部”之類的短語(yǔ)的查詢。例2.12查詢選修了全部課程的學(xué)生學(xué)號(hào)和姓名。ΠSNO,CNO(SC)÷ΠCNO(C)ΠSNO,SN(S)∞2/5/20237關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的,通過(guò)謂詞形式來(lái)表示查詢表達(dá)式。根據(jù)謂詞變?cè)牟煌?,可將關(guān)系演算分為元組關(guān)系演算和域關(guān)系演算。2.6.1元組關(guān)系演算語(yǔ)言元組關(guān)系演算是以元組變量作為謂詞變?cè)幕緦?duì)象。元組關(guān)系演算語(yǔ)言的典型代表是E.F.Codd提出的ALPHA語(yǔ)言,這種語(yǔ)言雖然沒(méi)有實(shí)際實(shí)現(xiàn),但較有名氣。這里主要介紹ALPHA語(yǔ)言2.6關(guān)系演算

2/5/2023ALPHA語(yǔ)言ALPHA語(yǔ)言是以謂詞公式來(lái)定義查詢要求的。在謂詞公式中存在客體變?cè)@里稱為元組變量。元組變量是一個(gè)變量,其變化范圍為某一個(gè)命名的關(guān)系。ALPHA語(yǔ)言的基本格式是:<操作符><工作空間名>(<表達(dá)式>)[:<操作條件>][DOWN(UP)屬性]操作符有GET(檢索),PUT(寫),HOLD(讀),UPDATE(修改),DELETE(刪除記錄),DROP(刪除表)等多種。工作空間是指內(nèi)存空間,可以用一個(gè)字母表示,通常用W表示,也可以用別的字母表示。工作空間是用戶與系統(tǒng)的通信區(qū)。表達(dá)式用于指定操作對(duì)象,它可以是關(guān)系名或?qū)傩悦?,一條操作語(yǔ)句可以同時(shí)對(duì)多個(gè)關(guān)系或多個(gè)屬性進(jìn)行操作。2/5/20239操作條件是用謂詞公式表示的邏輯表達(dá)式,只有滿足此條件的元組才能進(jìn)行操作,這是一個(gè)可選項(xiàng),缺省時(shí)表示無(wú)條件執(zhí)行操作符規(guī)定的操作。除此之外,還可以在基本格式上加上排序要求,定額要求等。下面以教學(xué)數(shù)據(jù)庫(kù)(圖1.12)為例,說(shuō)明ALPHA語(yǔ)言的使用。

1.數(shù)據(jù)查詢(1)簡(jiǎn)單查詢例查詢所有學(xué)生的數(shù)據(jù)。GETW(S)GET語(yǔ)句的作用是把數(shù)據(jù)庫(kù)中的學(xué)生關(guān)系S的數(shù)據(jù)讀入內(nèi)存空間W,。冒號(hào)后面的操作條件缺省,表示無(wú)條件查詢。2/5/202310例2.13查詢所有被選修的課程號(hào)碼。GETW(SC.CNO)(2)條件查詢由冒號(hào)后面的邏輯表達(dá)式給出查詢條件,在表達(dá)式中可以使用如下三類運(yùn)算符:①

比較運(yùn)算符:>,≥,<,≤,=等于,≠;②邏輯運(yùn)算符:∧(與),∨(或),┐(非)③表示執(zhí)行次序的括號(hào):()其中,比較運(yùn)算符的優(yōu)先級(jí)高于邏輯運(yùn)算符,可以使用()改變它們的優(yōu)先級(jí)。2/5/202311例2.14查詢計(jì)算機(jī)系工資高于1000元的教師的姓名和工資。GETW(T.TN,T.SAL):T.DEPT=’計(jì)算機(jī)’∧T.SAL>1000(3)排序查詢例2.15查詢S3同學(xué)所選課程號(hào)及成績(jī),并按成績(jī)降序排列。GETW(SC.CNO,SC.SCORE):SC.SNO=’S3’DOWNSC.SCOREDOWN表示降序,后面緊跟排序的屬性名。升序排列時(shí)使用UP。2/5/202312(4)定額查詢例2.15查詢一名男教師的教師號(hào)和姓名。GETW(1)(T.TNO,T.TN):T.SEX=’男’所謂的定額查詢就是通過(guò)在W后面的括號(hào)中加上定額數(shù)量,限定查詢出元組的個(gè)數(shù)。這里(1)表示查詢結(jié)果中男教師的個(gè)數(shù),取出教師表中第一個(gè)男教師的教師號(hào)和姓名。排序和定額查詢可以一起使用。例2.16查詢一名男教師的教師號(hào)和姓名,并使他的年齡最小。GETW(1)(T.TNO,T.TN):T.SEX=’男’UPT.AGE此語(yǔ)句的執(zhí)行過(guò)程為:先查詢所有男教師的教師號(hào)和姓名,再按照年齡由小到大排序,然后找出第一位,也就是年齡最小的男教師。2/5/202313(5)帶元組變量的查詢所謂的元組關(guān)系演算就是以元組變量作為謂詞變?cè)幕緦?duì)象,在關(guān)系演算的查詢操作時(shí),可以在相應(yīng)的關(guān)系上定義元組變量。元組變量代表關(guān)系中的元組,其取值是在所定義的關(guān)系范圍內(nèi)變化,所以也稱作范圍變量RangeVariable,一個(gè)關(guān)系可以設(shè)多個(gè)元組變量。例2.17查詢S3同學(xué)所選課程號(hào)。RANGESCXGETW(X.CNO):X.SNO=’S3’使用RANGE來(lái)說(shuō)明元組變量,X為關(guān)系SC上的元組變量。如果關(guān)系的名字很長(zhǎng),使用起來(lái)不方便,這時(shí)可以設(shè)一個(gè)名字較短的元組變量來(lái)代替關(guān)系名,簡(jiǎn)化關(guān)系名,使操作更加方便。2/5/202314(6)帶存在量詞的查詢例2.18查詢S3同學(xué)所選課程名。RANGESCXGETW(C.CN):X(C.CNO=X.CNO∧X.SNO=’S3’)注意:操作條件中使用量詞時(shí)必須用元組變量。例2.19查詢至少選修一門其課時(shí)數(shù)為80的課程的學(xué)生的姓名。RANGECCXSCSCXGET W(S.SN):SCX(SCX.SNO=S.SNO∧CX(CX.CNO=SCX.CNO∧CX.CT=80))2/5/202315此查詢涉及三個(gè)關(guān)系,需要對(duì)兩個(gè)關(guān)系(C和SC)作用存在量詞,所以用了兩個(gè)元組變量。此語(yǔ)句的執(zhí)行過(guò)程為:先查詢課時(shí)數(shù)為80的課程號(hào),再根據(jù)找到的課程號(hào)在關(guān)系SC中查詢其對(duì)應(yīng)的學(xué)號(hào),然后根據(jù)為些學(xué)號(hào)在關(guān)系S中找到對(duì)應(yīng)的學(xué)生姓名。例2.20查詢選修全部課程的學(xué)生姓名。RANGECCXSCSCXGET W(S.SN):CXSCX(SCX.SNO=S.SNO∧CX.CNO=SCX.CNO)2/5/202316(7)庫(kù)函數(shù)查詢庫(kù)函數(shù)也稱集函數(shù)。用戶在使用查詢語(yǔ)言時(shí),經(jīng)常要作一些簡(jiǎn)單的運(yùn)算。例如要統(tǒng)計(jì)某個(gè)關(guān)系中符合某一條件的元組數(shù),或某些元組在某個(gè)屬性上分量的和、平均值等等。在關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言中提供了有關(guān)這類運(yùn)算的標(biāo)準(zhǔn)函數(shù),增強(qiáng)了基本檢索能力。常用的庫(kù)函數(shù)下表所示函數(shù)名稱功能AVG按列計(jì)算平均值TOTAL按列計(jì)算值的總和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值計(jì)算元組個(gè)數(shù)2/5/202317例2.21求學(xué)號(hào)為S1學(xué)生的平均分。GETW(AVG(SC.SCORE):S.SNO=’S1’例2.22求學(xué)校共有多少個(gè)系GETW(COUNT(S.DEPT))COUNT函數(shù)自動(dòng)消去重復(fù)行,可計(jì)算字段“DEPT“不同值的數(shù)目。2.數(shù)據(jù)更新更新操作包括修改、插入和刪除。(1)修改修改操作使用UPDATE語(yǔ)句實(shí)現(xiàn),具體操作分為以下三步:2/5/202318①讀數(shù)據(jù):使用HOLD語(yǔ)句將要修改的元組從數(shù)據(jù)庫(kù)中讀到工作空間中;②修改:利用宿主語(yǔ)言修改工作空間中元組的屬性;③送回:使用UPDATE語(yǔ)句將修改后的元組送回?cái)?shù)據(jù)庫(kù)中。這里HOLD語(yǔ)句是帶上并發(fā)控制的GET語(yǔ)句。例2.23把劉偉教師轉(zhuǎn)到信息系。HOLDW(T.DEPT):T.TN=‘劉偉’MOVE’信息’TOW.DEPTUPDATEW在ALPHA語(yǔ)言中,不允許修改關(guān)系的主碼,例如不能使用UPDATE語(yǔ)句修改教師表T中的教師號(hào)。如果要修改主碼,應(yīng)該先使用刪除操作刪除該元組,再插入一條具有新主碼值的元組。2/5/202319(2)插入插入操作使用PUT語(yǔ)句實(shí)現(xiàn),具體操作分為以下兩步:①建立新元組:利用宿主語(yǔ)言在工作空間中建立新元組;②寫數(shù)據(jù):使用PUT語(yǔ)句將元組寫入到指定的關(guān)系中。例2.24在SC表中插入一條選課記錄(S6,C1,85)。MOVES6TOW.SNOMOVEC1TOW.CNOMOVE85TOW.SCOREPUTW(SC)2/5/202320PUT語(yǔ)句的作用是把工作空間W中的數(shù)據(jù)寫到數(shù)據(jù)庫(kù)中,此例即把已經(jīng)在工作空間建立的一條選課記錄寫入到選課關(guān)系SC中。注意:PUT語(yǔ)句只能對(duì)一個(gè)關(guān)系進(jìn)行操作,在插入操作時(shí),拒絕接受主碼相同的元組。(3)刪除ALPHA語(yǔ)言中的刪除操作不但可以刪除關(guān)系中的一些元組,還可以刪除一個(gè)關(guān)系。刪除操作使用DELETE語(yǔ)句實(shí)現(xiàn),具體操作分為以下兩步:①讀數(shù)據(jù):使用HOLD語(yǔ)句將要?jiǎng)h除的元組從數(shù)據(jù)庫(kù)中讀到工作空間中;②刪除:使用DELETE語(yǔ)句刪除該元組。2/5/202321例2.25刪除學(xué)號(hào)為S6的學(xué)生的信息。HOLDW(S):S.SNO=‘S6’DELETEW例2.26刪除全部學(xué)生的信息。HOLDW(S)DELETEW2/5/2023222.5.2域關(guān)系演算語(yǔ)言QBE域關(guān)系演算是關(guān)系演算的另一種形式。域關(guān)系演算是以元組變量的分量即域變量作為謂詞變?cè)幕緦?duì)象。域關(guān)系演算語(yǔ)言的典型代表是1975年由IBM公司約克城高級(jí)研究試驗(yàn)室的M.M.Zloof提出的QBE語(yǔ)言,該語(yǔ)言于1978年在IBM370上實(shí)現(xiàn)。2/5/202323QBE是QueryByExample的縮寫,也稱為示例查詢,它是一種很有特色的屏幕編輯語(yǔ)言,其特點(diǎn)如下:(1)以表格形式進(jìn)行操作每一個(gè)操作都由一個(gè)或幾個(gè)表格組成,每一個(gè)表格都顯示在終端的屏幕上,用戶通過(guò)終端屏幕編輯程序以填寫表格的方式構(gòu)造查詢要求,查詢結(jié)果也以表格的形式顯示出來(lái),所以它具有直觀和可對(duì)話的特點(diǎn)。(2)通過(guò)例子進(jìn)行查詢通過(guò)使用一些實(shí)例,使該語(yǔ)言更易于為用戶接受和掌握。(3)查詢順序自由當(dāng)有多個(gè)查詢條件時(shí),不要求使用者按照固定的思路和方式進(jìn)行查詢,使用更加方便。2/5/202324使用QBE語(yǔ)言的步驟:(1)用戶根據(jù)要求向系統(tǒng)申請(qǐng)一張或幾張表格,顯示在終端上;(2)用戶在空白表格的左上角的一欄內(nèi)輸入關(guān)系名;(3)系統(tǒng)根據(jù)用戶輸入的關(guān)系名,將在第一行從左至右自動(dòng)填寫各個(gè)屬性名;(4)用戶在關(guān)系名或?qū)傩悦路降囊桓駜?nèi)填寫相應(yīng)的操作命令,操作命令包括:P.(打印或顯示)、U.(修改)、I.(插入)、D.(刪除)。如果要打印或顯示整個(gè)元組時(shí),應(yīng)將“P”填在關(guān)系名的下方,如果只需打印或顯示某一屬性,應(yīng)將“P”填在相應(yīng)屬性名的下方。2/5/202325表格形式如表2.2所示表2.2QBE操作框架表關(guān)系名屬性1屬性2…屬性n操作命令屬性值或查詢條件屬性值或查詢條件…屬性值或查詢條件2/5/20232數(shù)據(jù)查詢1.簡(jiǎn)單查詢例2.33顯示全部學(xué)生的信息。方法一:將P.填在關(guān)系名的下方方法二:將“P”填在各個(gè)屬性名的下方SSNOSNSEXAGEDEPTP.

SSNOSNSEXAGEDEPT

P.趙亦P.女P.17P.計(jì)算機(jī)P.950012/5/202327注意:只有目標(biāo)屬性包括所有的屬性時(shí),將P.填在關(guān)系名的下方。這種語(yǔ)言之所以稱為示例查詢,就是在操作中采取“示例”的方法,凡用作示例的元素,其下方均加下劃線。如上例中的“趙亦”、“女”等均為示例元素,即域變量。示例元素是所給域中可能的一個(gè)值,而不必是查詢結(jié)果中的元素。比如用作示例的學(xué)生姓名,可以不是學(xué)生表中的學(xué)生,只要給出任意一個(gè)學(xué)生名即可。2/5/2023282.條件查詢例2.34查詢所有女學(xué)生的姓名。目標(biāo)屬性只有姓名,所以將P.填在關(guān)系名的下方。查詢條件中可以使用比較運(yùn)算符>,≥,<,≤,=和≠,其中=可以省略。本例的查詢條件是SEX=‘女’,“=”被省略。SSNOSNSEXAGEDEPT

P.趙亦女

2/5/202329例2.35查詢年齡大于18歲的女學(xué)生的姓名。本例的查詢條件是AGE>18和SEX=‘女’兩個(gè)條件的“與”。在QBE中,表示兩個(gè)條件的“與”有兩種方法:方法一:把兩個(gè)條件寫在同一行上:方法二:把兩個(gè)條件寫在不同行上,但必須使用相同的示例元素SSNOSNSEXAGEDEPT

P.趙亦女>18

SSNOSNSEXAGEDEPT

P.趙亦女

P.趙亦

>18

2/5/202330例2.36查詢既選修了C1號(hào)課程又選修了C2號(hào)課程的學(xué)生的學(xué)號(hào)。本例的查詢條件是CNO=‘C1’和CNO=‘C2’兩個(gè)條件的“與”,但兩個(gè)條件涉及同一屬性CNO,則必須把兩個(gè)條件寫在不同行上,且使用相同的示例元素。例2.37查詢年齡大于18歲或者女學(xué)生的姓名。本例的查詢條件是AGE>18和SEX=‘女’兩個(gè)條件的“或”。在QBE中,表示兩個(gè)條件的“或”,要把兩個(gè)條件寫在不同行上,且必須使用不同的示例元素。SSNOSNSEXAGEDEPT

P.趙亦女

P.錢爾

>18

2/5/202331例2.38查詢選修C1號(hào)課程學(xué)生的姓名。本查詢涉及兩個(gè)關(guān)系:S和SC,這兩個(gè)關(guān)系具有公共的屬性SNO,SNO作為連接屬性,把具有相同的SNO值的兩個(gè)關(guān)系連接起來(lái),SNO在兩個(gè)表中的值要相同。SSNOSNSEXAGEDEPT

S1P.趙亦

SCSNOCNOSCORE

S1C1

2/5/202332例2.39查詢未選修C1號(hào)課程學(xué)生的姓名。查詢條件中的“未選修”需使用邏輯非來(lái)表示。QBE中的邏輯非運(yùn)算符為┐,填寫在關(guān)系名下方。如果S1同學(xué)選修C1號(hào)課程的情況為假,則符合查詢的條件,顯示S1同學(xué)的學(xué)號(hào),然后再查詢其他同學(xué)。SSNOSNSEXAGEDEPT

S1P.趙亦

SCSNOCNOSCORE┐S1C1

2/5/2023334.庫(kù)函數(shù)查詢同ALPHA語(yǔ)言類似,QBE語(yǔ)言也提供了一些有關(guān)運(yùn)算的標(biāo)準(zhǔn)函數(shù),以方便用戶。QBE常用的庫(kù)函數(shù)如表2.2所示表2.2QBE常用的庫(kù)函數(shù)及其功能函數(shù)名稱功能AVG按列計(jì)算平均值SUM按列計(jì)算值的總和MAX求一列中的最大值MIN求一列中的最小值CNT按列值計(jì)算元組個(gè)數(shù)2/5/2023343.排序查詢例2.39查詢?nèi)w女教師的教師號(hào)和姓名,要求查詢結(jié)果按工資升序排列,工資相同者按年齡降序排列。對(duì)查詢結(jié)果按照某個(gè)屬性值升序排列時(shí),則在相應(yīng)的屬性下方填入“AO”,降序排列時(shí),填入“DO”。如果按照多個(gè)屬性值同時(shí)排序,則用“AO(i)”或“DO(i)”表示,其中I為排序的優(yōu)先級(jí),I值越小,優(yōu)先級(jí)越高。TTNOTNSEXAGEDEPTPROFSALCOMMDEPT

p.S1P.趙亦女DO(2)

AO(1)

2/5/202335例2.40求學(xué)號(hào)為S1學(xué)生的平均分。SCSNOCNOSCORE

S1

P.AVG.ALL2/5/20233數(shù)據(jù)更新1.修改修改的命令為U.例2.41把劉偉教師轉(zhuǎn)到信息系。TTNOTNSEXAGEDEPTPROFSALCOMMDEPTU.

劉偉

信息2/5/2023372.插入插入的命令為I.例2.42在SC表中插入一條選課記錄(S6,C1)。注意:新插入的元組必須具有主碼值,其他屬性值可以為空,如本例中的SCORE為空。SCSNOCNOSCOREI.S6C1

2/5/2023383.刪除刪除的命令為D.例2.43刪除S1同學(xué)選修C1課程的信息。SCSNOCNOSCORED.S1C

溫馨提示

  • 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)論