再論元組關(guān)系演算與SQL

再論元組關(guān)系演算與SQL

ID:41489425

大?。?3.50 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-08-26

再論元組關(guān)系演算與SQL_第1頁(yè)
再論元組關(guān)系演算與SQL_第2頁(yè)
再論元組關(guān)系演算與SQL_第3頁(yè)
資源描述:

《再論元組關(guān)系演算與SQL》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、再論元組關(guān)系演算與SQL摘?要 針對(duì)一些文獻(xiàn)存在的問(wèn)題,本文指明了特性謂詞在元組關(guān)系演算中的表達(dá)形式,給出了含量詞的元組關(guān)系演算表達(dá)式到SQL語(yǔ)句的轉(zhuǎn)化過(guò)程,并通過(guò)具體實(shí)例加以說(shuō)明。???關(guān)鍵詞 元組關(guān)系演算;特性謂詞;全稱量詞;存在量詞;SQL?1 引言???20世紀(jì)60年代誕生的數(shù)據(jù)庫(kù)技術(shù),經(jīng)過(guò)近半個(gè)世紀(jì)的發(fā)展,形成了堅(jiān)實(shí)的理論基礎(chǔ)、成熟的商業(yè)產(chǎn)品和廣泛的應(yīng)用領(lǐng)域。E.FCodd提出的關(guān)系數(shù)據(jù)模型為當(dāng)今主流的數(shù)據(jù)庫(kù)管理系統(tǒng)提供了堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)。關(guān)系數(shù)據(jù)模型有三種等價(jià)的操作語(yǔ)言:關(guān)系代數(shù)、SQL、關(guān)系演算(元組關(guān)系演算和域關(guān)系演算),它們的非過(guò)程化程度依次遞增,主要應(yīng)用領(lǐng)域也不同。S

2、QL是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言,關(guān)系代數(shù)和關(guān)系演算是它的理論基礎(chǔ)。大多商用的DBMS先把用戶提交的SQL查詢轉(zhuǎn)化成等價(jià)的擴(kuò)展關(guān)系代數(shù)表達(dá)式,在執(zhí)行之前需要根據(jù)等價(jià)規(guī)則對(duì)其優(yōu)化[9]。關(guān)系演算是以數(shù)理邏輯中的謂詞演算為中心的,按謂詞變?cè)牟煌?,分為元組關(guān)系演算和域關(guān)系演算。在實(shí)際應(yīng)用中,元組關(guān)系演算通常用來(lái)輔助生成帶量詞的SQL語(yǔ)句[3][4][6],域關(guān)系演算以著名的QBE為代表,直觀易學(xué),適合于非專業(yè)人員使用,目前在ACCESS、PowerBuilder的查詢生成器中有類似的應(yīng)用。???將用戶提出的查詢要求轉(zhuǎn)化為可執(zhí)行的SQL語(yǔ)句,是一個(gè)非形式化描述向形式化規(guī)范轉(zhuǎn)變的過(guò)程,完全借助計(jì)算機(jī)

3、來(lái)實(shí)現(xiàn)是非常困難的,一般由專業(yè)技術(shù)人員根據(jù)經(jīng)驗(yàn)來(lái)完成。SQL語(yǔ)言是非過(guò)程化的,與常用的過(guò)程化的命令式語(yǔ)言有很大的區(qū)別。用戶要完成一個(gè)查詢,只需要用SQL語(yǔ)言提出要求,無(wú)須指明怎么做。在實(shí)際應(yīng)用中,用戶往往提出含有“全部”、“至少”等條件的查詢,它們不容易采用SQL表達(dá),這時(shí)可求助于元組關(guān)系演算,大致過(guò)程為:①寫出查詢的元組關(guān)系演算表達(dá)式;②根據(jù)等價(jià)轉(zhuǎn)化規(guī)則得到不含全稱量詞的元組關(guān)系演算表達(dá)式;③將元組關(guān)系演算表達(dá)式轉(zhuǎn)化為SQL語(yǔ)句。迄今為止,國(guó)內(nèi)外有很多文獻(xiàn)和書籍都討論過(guò)相關(guān)的內(nèi)容,然而有些理論細(xì)節(jié)并沒有詳細(xì)解釋,在一定程度上妨礙了人們對(duì)數(shù)據(jù)庫(kù)知識(shí)的理解和應(yīng)用,產(chǎn)生了一些錯(cuò)誤[1][2

4、][5]。本文將就這一問(wèn)題進(jìn)行討論。2 元組關(guān)系演算與SQL???確定一個(gè)元組關(guān)系演算表達(dá)式,首先要分析需要使用的關(guān)系模式,確定相互之間的參照完整性約束。在特殊情況下,一個(gè)關(guān)系模式還有可能使用多次,則可通過(guò)引入不同的元組變量來(lái)區(qū)分。其次,將賦值和限定條件加入到元組關(guān)系演算表達(dá)式中。關(guān)于限定條件如何表示這一問(wèn)題,很多數(shù)據(jù)庫(kù)教材和文獻(xiàn)中并沒有仔細(xì)討論,結(jié)果產(chǎn)生了一些問(wèn)題。???在謂詞邏輯中,全總個(gè)體域包含了所有個(gè)體變?cè)乃袀€(gè)體域,它統(tǒng)一了個(gè)體變?cè)娜≈捣秶?,但不同論述?duì)象需用不同的特性謂詞加以再刻畫[8]。對(duì)于全稱量詞,特性謂詞作為蘊(yùn)涵式的前件加入;對(duì)于存在量詞,特性謂詞作為合取項(xiàng)加入。

5、在元組關(guān)系演算表達(dá)式中,元組的限定條件即是特性謂詞,書寫時(shí)也必須遵循上述兩條基本規(guī)則。在文獻(xiàn)[1]、[2]、[5]中,對(duì)于全稱量詞,均將限定條件作為合取項(xiàng),這樣造成元組關(guān)系演算表達(dá)式的語(yǔ)義不符合查詢要求,無(wú)法表示正確的查詢結(jié)果。我們經(jīng)常會(huì)遇到這樣的情況:對(duì)于同一個(gè)查詢,從不同的角度理解,可以寫出不同的元組關(guān)系演算表達(dá)式。假定有兩個(gè)不同的表達(dá)式A和B,且A是正確的,那么根據(jù)謂詞邏輯的完備性,如果由A無(wú)法通過(guò)推理規(guī)則得到B,則A與B的語(yǔ)義不同,那么B一定是一個(gè)錯(cuò)誤的表達(dá)式。這種方法通常被用來(lái)判斷一個(gè)元組關(guān)系演算表達(dá)式是否正確。???在上述分析的基礎(chǔ)上,對(duì)于含“全部”、“至少”等條件的查詢,

6、從分析入手,得到元組關(guān)系演算表達(dá)式,再轉(zhuǎn)化為SQL語(yǔ)句,一般要經(jīng)歷下面三個(gè)過(guò)程:???根據(jù)查詢的語(yǔ)義,以元組變量為主導(dǎo),寫出一個(gè)“規(guī)范”的元組關(guān)系演算表達(dá)式。這里所謂的“規(guī)范”,是指針對(duì)每個(gè)元組變量,其后的原子公式均以關(guān)系模式、限定條件和賦值的順序出現(xiàn),在最大的限度上保證量詞轄域收縮到最小情況。特別需要注意的是限定條件(關(guān)系模式也可認(rèn)為是一種特殊的限定條件)針對(duì)全稱量詞和存在量詞的不同表示方法。???將元組關(guān)系演算表達(dá)式中的全稱量詞?全部轉(zhuǎn)化為存在量詞?。因?yàn)樵赟QL語(yǔ)言中不存在全稱量詞,只有與存在量詞對(duì)應(yīng)的EXISTS謂詞,需要使用下列的等價(jià)式將元組關(guān)系演算表達(dá)式中的全稱量詞轉(zhuǎn)化為存

7、在量詞。??????將元組關(guān)系演算表達(dá)式轉(zhuǎn)化為SQL語(yǔ)句,處理的過(guò)程由外向內(nèi),依次為:???(1)將最外層的?、本層的限定條件和最后的賦值部分轉(zhuǎn)換為SELECT、FROM、WHERE子句。???(2)內(nèi)層的?、本層的限定條件轉(zhuǎn)化為SELECT、FROM、WHERE子句,此子查詢作為EXISTS謂詞的條件加入到上一層SQL語(yǔ)句的WHERE子句中。???注意:由于帶有EXISTS謂詞的子查詢只產(chǎn)生邏輯真假值,不返回任何數(shù)據(jù),因此內(nèi)層的SQL語(yǔ)句的目

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

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

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