關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)

關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)

ID:39408022

大?。?7.00 KB

頁數(shù):11頁

時間:2019-07-02

關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)_第1頁
關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)_第2頁
關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)_第3頁
關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)_第4頁
關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)_第5頁
資源描述:

《關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)178福建電腦2009年第11期關(guān)系代數(shù)中交運(yùn)算與差運(yùn)算的SQL語句實(shí)現(xiàn)李國雁.李奇(河南商業(yè)高等專科學(xué)校計算機(jī)應(yīng)用系河南鄭州450045)【摘要】:關(guān)系代數(shù)是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達(dá)方式,是結(jié)構(gòu)化查詢語言SQL的重要理論基礎(chǔ).然而關(guān)系代數(shù)8種常用運(yùn)算中的交運(yùn)算,差運(yùn)算和除運(yùn)算.在SQL中沒有提供專門的運(yùn)算符加以實(shí)現(xiàn),不利于初學(xué)者更好的理解關(guān)系代數(shù)和SQL之間的關(guān)系.本文針對這一現(xiàn)狀,對交運(yùn)算,差運(yùn)算在SQL中的實(shí)現(xiàn)方法進(jìn)行探討.【關(guān)鍵詞】:關(guān)系代數(shù);交運(yùn)算;差運(yùn)算;SQL語句1,引言1970年E.F.Codd提出了關(guān)系模型的概念

2、【JI.奠定了關(guān)系模型的理論基礎(chǔ).為當(dāng)今主流的關(guān)系數(shù)據(jù)庫管理系統(tǒng)提供了堅實(shí)的數(shù)學(xué)基礎(chǔ).1974年.E.F.Codd又聯(lián)合RayBoyce,DonCham.bedin等人里程碑式地提出了SOL(StrueturedQueryLanguage)it~言.并在上世紀(jì)80年代提出了全關(guān)系系統(tǒng)的12條準(zhǔn)則目.關(guān)系數(shù)據(jù)庫技術(shù).經(jīng)過近半個世紀(jì)的發(fā)展,形成了堅實(shí)的理論基礎(chǔ),成熟的商業(yè)產(chǎn)品和廣泛的應(yīng)用領(lǐng)域關(guān)系數(shù)據(jù)模型有三種等價的操縱語言:關(guān)系代數(shù),關(guān)系演算和SQL,其中SOL是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,關(guān)系代數(shù)和關(guān)系演算是它的理論基礎(chǔ).關(guān)系代數(shù)是一種抽象的查詢語言.用對關(guān)系的運(yùn)算來表達(dá)查詢.作為研

3、究關(guān)系數(shù)據(jù)語言的數(shù)學(xué)工具.大多商用的DBMS先把用戶提交的sgL查詢轉(zhuǎn)化成等價的擴(kuò)展關(guān)系代數(shù)表達(dá)式.在執(zhí)行之前需要根據(jù)等價規(guī)則對其優(yōu)化1”3141.因此更好的理解二者之間的關(guān)系對于SOL語句的執(zhí)行效率.乃至數(shù)據(jù)庫應(yīng)用系統(tǒng)的運(yùn)行效率有著重要幫助但是關(guān)系代數(shù)中的交運(yùn)算和差運(yùn)算在大多DBMS中沒有對應(yīng)的運(yùn)算符.用SQT.語句表達(dá)包含這兩種運(yùn)算含義的查詢對初學(xué)者而言成為了難題而目前的文獻(xiàn)跚也只是從某一角度介紹一種轉(zhuǎn)換方法.無法使讀者從多角度深人思考二者之間的關(guān)系.本文將通過介紹交運(yùn)算和差運(yùn)算的不同實(shí)現(xiàn)方法解決這一問題2,交運(yùn)算的sQr.語句實(shí)現(xiàn)2.1交運(yùn)算的定義:關(guān)系R與關(guān)系S的交由

4、既屬于R又屬于S的元組組成.其結(jié)果關(guān)系仍為n目關(guān)系.記作:RNS=ftft∈1tAtES}.用sOL語句實(shí)現(xiàn)交運(yùn)算的核心在于如何找到兩個關(guān)系中相同的元組(即兩個關(guān)系均包含的元組),下面介紹4種方法:2.2方法一:利用交運(yùn)算的定義這種方法根據(jù)交運(yùn)算的定義.通過直接比較兩個關(guān)系中元組各個屬性值是否相同.判斷這條元組是否同時出現(xiàn)在兩個關(guān)系中,SOL語句如下:SekctR.A,R.BFromR.SWhereR.A=S.AandR.B=S.B(A.B為屬性集1例1:若關(guān)系R和S為如表1.1和表1.2所示的2元關(guān)系.表1.1關(guān)系R表1.2關(guān)系s則根據(jù)方法一,R和S求交集的SQL語句可寫成

5、如下形式:SelectR.A,R.BfromR.SWhereR.A=S.AandR.B=S.B2.3方法二:利用并運(yùn)算這種方法先對兩個關(guān)系求并集.如果并的結(jié)果中出現(xiàn)兩條重復(fù)的元組,說明這條元組是兩個關(guān)系均包含的.SQT.語句如下:Select?from(SelectfromRUnionallSelectfromS1Groupby關(guān)鍵字Havingeounl()=2則根據(jù)方法二.例l中R和S求交集的SQL語句可寫成如下形式:Selectfrom(SelectfromRUnionallSelectfromS1GroupbyA.BHavingeotlnt(,=22.4方法三:利用i

6、n謂詞這種方法利用嵌套查詢的方式判斷哪些元組兩個關(guān)系均包含.SQL語句如下:SELECTFROMRWHEREB:取值1andAIN(SELECTAFROMSWHEREB=取值21則根據(jù)方法三.例l中R和S求交集的sQL語句可寫成如下形式:SELECTFROblRWHEREAIN(SELECTAILIONSWHERER.B---S.B)2.5方法四:使用EXI謂詞這種方法利用帶有EXISTS謂詞的嵌套查詢.判斷關(guān)系R中的元組是否在關(guān)系S中也存在.SQL語句如下:Sdect’FromRWhereExists(Sel~tFromSWhereR.A--S.AandR.B=S.B,則根

7、據(jù)方法四.例1中R和S求交集的SQL語句可寫成如下形式:Select?fromRWhere’Exists(Select’FromSWhereR.A--S.AandR.B--S.B13,差運(yùn)算的SQL語句實(shí)現(xiàn)3.1差運(yùn)算的定義:關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成,其結(jié)果關(guān)系仍為n目關(guān)系.記作:R—S={tlt∈RAtSl.用SQL語句實(shí)現(xiàn)交運(yùn)算的核心在于如何找到那些只在一個關(guān)系中出現(xiàn)的元組,下面介紹3種方法:3.2方法一:利用差運(yùn)算定義這種方法根據(jù)交運(yùn)算的定義.利用嵌套判斷哪些元組是R中包

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。