關(guān)系代數(shù)和數(shù)據(jù)依賴概念_第1頁
關(guān)系代數(shù)和數(shù)據(jù)依賴概念_第2頁
關(guān)系代數(shù)和數(shù)據(jù)依賴概念_第3頁
關(guān)系代數(shù)和數(shù)據(jù)依賴概念_第4頁
關(guān)系代數(shù)和數(shù)據(jù)依賴概念_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二講關(guān)系代數(shù)和數(shù)據(jù)依賴概念1關(guān)系代數(shù)1970年IBM公司的E.F.Cood博士在論文“一個通用關(guān)系式數(shù)據(jù)庫系統(tǒng)的模型”中首先提出了關(guān)系模型,它提供了格式化數(shù)據(jù)庫系統(tǒng)難以做到的數(shù)據(jù)獨(dú)立性和數(shù)據(jù)相容性。此模型后來又由Codd加以改進(jìn),被許多人認(rèn)為是一切數(shù)據(jù)庫系統(tǒng)的未來。關(guān)系數(shù)據(jù)庫之所以發(fā)展如此之快,因?yàn)殛P(guān)系數(shù)據(jù)庫的模型簡明,便于用戶理解使用方便等等特點(diǎn),更重要的是,關(guān)系數(shù)據(jù)庫有著網(wǎng)狀和層次數(shù)據(jù)庫沒有的數(shù)學(xué)基礎(chǔ)----關(guān)系代數(shù),可以利用關(guān)系代數(shù)對表格進(jìn)行任意的分割和組裝,隨機(jī)地產(chǎn)生用戶所需要的各種新表,這為關(guān)系數(shù)據(jù)的發(fā)展提供了基礎(chǔ)和保證。1.1基本概念術(shù)語表17.1關(guān)系模型中的術(shù)語與數(shù)據(jù)世界中的術(shù)語的對應(yīng)關(guān)系關(guān)系模型數(shù)據(jù)世界元組記錄關(guān)系模型數(shù)據(jù)模型屬性數(shù)據(jù)項(xiàng)(字段)屬性值數(shù)據(jù)項(xiàng)的具體取值域數(shù)據(jù)項(xiàng)的取值范圍關(guān)系文件關(guān)系模式記錄型候選關(guān)鍵字候選關(guān)鍵字次關(guān)鍵字次關(guān)鍵字主關(guān)鍵字主關(guān)鍵字定義給定一組集合D1,D2,...,叼,它們可以是相同的,若R是這樣一個有序n元組:{(dlrd2r...rdn)|eDiri=12...』}則稱R是對于這n個集合的一個關(guān)系,并稱集合D1,D2,...,Dn為關(guān)系R的域,稱n為關(guān)系的度。1.2關(guān)系運(yùn)算在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系采用了單一數(shù)據(jù)結(jié)構(gòu)----關(guān)系來表示。對數(shù)據(jù)的操作就是對關(guān)系的運(yùn)算。關(guān)系運(yùn)算的形式可分為兩大類:(1)關(guān)系代數(shù):把關(guān)系看作集合,以關(guān)系為運(yùn)算對象的關(guān)系運(yùn)算。(2)關(guān)系演算:使用數(shù)理邏輯謂詞演算概念的關(guān)系運(yùn)算。并(Union)設(shè)R和S為同類關(guān)系,即具有相同的度和相應(yīng)屬性在相同的域中取值,但并不要求屬性名一致,則關(guān)系R和S的并由屬于R或?qū)儆赟的所有元組構(gòu)成,記作RS。例:

RuSABCabcdafL:bdbSaABCabL:dafcbdRABcbgaABCabL:dafcbdRABcbgadafS設(shè)R和S為同類關(guān)系,則關(guān)系R和S的交由屬于R同時屬于S的所有元組構(gòu)成,記作RS。例:RSABCABcabL:bSadafdafcbd

如sABcdafSQL語句:SelectR.A,R.B,R.CfromR,SwhereR.A=S.AandR.B=S.BandR.C=S.C差(Difference)設(shè)R和S為同類關(guān)系,則關(guān)系R和S的差由屬于R但不屬于S的所有元組構(gòu)成,記作R-S。例:RSABCABcabL:bSadafdafcbdR-SABCabccbd笛卡爾積(CartesianProduct)

設(shè)R為k1元關(guān)系,S為k2元關(guān)系,則關(guān)系R和S的笛卡爾積是一個(k1+k2)元的關(guān)系,其中每個元組的前k1個分量取自R中的一個元組,后k2個分量取自S中的一個元組,記作RxS。例:ABABCDEFabcbgaabcdafdafbgadafdafcbdbgacbddaf(2RXSSQL語句:Select*fromR,S投影(Projection)設(shè)R為k元關(guān)系,yAi2,...,Aim分別是它的第i1,i2,...,im個屬性,則關(guān)系R在Ai1則關(guān)系R在Ai1Ai2Aim上的投影是一個m元關(guān)系,其屬性為、,%,...,氣I,】".,!R)投影的基本思想是從一個關(guān)系中選擇我們需要的屬性成分,并按要求排列組成一個新的關(guān)系,新的關(guān)系的各屬性值來自原來關(guān)系中相應(yīng)的屬性值,并去掉重復(fù)元組。例:對關(guān)系R,做投影兀(R),得3,1歸1曲CACafddL:SQL語句:SelectDistinctC,AfromR選擇(Selection)設(shè)F是一個命名公式,則在關(guān)系R上的F選擇是在R中挑選滿足F的所有元組,組成一個新的關(guān)系,這個新的關(guān)系是R的一個子集,記為:%(R)其中F由下列三部分組成:運(yùn)算對象、算術(shù)比較符、邏輯運(yùn)算符。例:對關(guān)系R,做選擇bE_V區(qū)-f(R),得卬i]=、W]=f(R)ABcabcdafSQL語句:Select*intoR1fromRwhereA='a'orC='f'連接(Join)連接運(yùn)算把兩個關(guān)系的共同的域按某種條件約束結(jié)合在一起形成新的關(guān)系。設(shè)R為匕元關(guān)系,S為k2元關(guān)系,算術(shù)比較符是0。則關(guān)系R的第i列和關(guān)系S的第j列的連接定義為:Rx|Smj]從定義可以看出,連接運(yùn)算是從兩個關(guān)系的笛卡爾積中選取滿足一定連接條件的元組的集合,連接的結(jié)果是一個(k1+k2)元的關(guān)系。也稱為一般連接。例:ABCBABCBCD123232456563SQL語句:(c)Select*fromR,SwhereR.A<S.D(d)Select*fromR,SwhereR.C=S.C自然連接(NaturalJoin)當(dāng)兩個關(guān)系R和S的某些列具有相同的屬性名時,可利用這些同名屬性列總的相同值作為連接條件將兩個關(guān)系連接起來,構(gòu)成自然連接。在連接后的關(guān)系中,不僅含有R與S不同的屬性列,而且含有相同的屬性列,其元組的數(shù)目由相同屬性列中的相同值決定。

設(shè)R是屬性名組為(A1,%,...,Am,...,Aki)的匕元關(guān)系,S是屬性名組為(A,A,...,A,B,...,B)的k元關(guān)系,其中A,A,...,A是同12mm+1k2212m名屬性列,則R和S的自然連接定義為...。進(jìn)行自然連接的步驟如下:(1)計(jì)算RxS;(2)選擇Ai.R=Ai?S的所有元組;(3)去掉重復(fù)屬性。可以看出,如果兩個關(guān)系沒有公共屬性,自然連接就是笛卡爾積。例:17.6R和S的自然連接SQL語句:SelectDistinctR.A,R.B,R.C,S.DfromSQL語句:SelectDistinctR.A,R.B,R.C,S.DfromR,SwhereR.B=S.BandR.C=S.C除(Division)除運(yùn)算是指用一個(m+n)度的關(guān)系R除以一個n度關(guān)系S,運(yùn)算結(jié)果生成一個m元的新關(guān)系。這里R的第(m+i)個屬性和S的第i個屬性(i=1,...,n)必須是在相同的域上定義。當(dāng)把R的前m個屬性看作一個組合屬性x,后n個屬性看成一個組合屬性y,則S也可類似地看成一個組合屬性y。這樣以S中的y

值來對R進(jìn)行分組,當(dāng)組中含有y值時,則組中的x值便構(gòu)成了R除以S的一個元組。R除以S的數(shù)學(xué)表達(dá)式為:R+S=氣(R)-氣(氣(R)xS-R)其中a為關(guān)系R中除去與S關(guān)系相同的其余屬性。例:3)R(WS3)R!S圖17.7除運(yùn)算按公式分解計(jì)算

3)R(WS3)R!S偵R)ABABCDababcddcabefeddL:cddCefedcdedef7ia(R)xS-RABcDdccd而(X(R)必-R)ABdcABabed關(guān)系代數(shù)對數(shù)據(jù)庫的數(shù)據(jù)操作是完備的,利用關(guān)系代數(shù)可以實(shí)現(xiàn)一切數(shù)據(jù)操作。2函數(shù)依賴概念數(shù)據(jù)依賴是通過一個關(guān)系中數(shù)據(jù)間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系,是現(xiàn)實(shí)世界屬性間相互關(guān)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì)。數(shù)據(jù)依賴中最重要的是函數(shù)依賴(FunctionalDependency)。2.1函數(shù)依賴定義:設(shè)有一關(guān)系模式R(A,A,…,A),X和Y均為(A,A,…,A)的子集,12n12n對于R的值r來說,當(dāng)其中任意兩個元組u,v中對應(yīng)于X的那些屬性分量的值均相等時,則有u,v中對應(yīng)于Y的那些屬性分量的值也相等,稱X函數(shù)決定Y,或Y依賴于X,記為X->Y。例:有關(guān)系,學(xué)生(學(xué)號S#,姓名SN,系名SD),子集X(學(xué)號S#),子集Y(系名SD)。每個學(xué)生有唯一的一個學(xué)號,學(xué)生中可以有重名的姓名,每個學(xué)生只能屬于一個系,每個系有唯一的系代號。有此,可以找出學(xué)生關(guān)系模式中存在下列函數(shù)依賴:S#->SN;S#->SD例:有關(guān)系,學(xué)校簡況(學(xué)號S#,系名SD,系主任MN,課程CN,成績G)??蓪懗龊瘮?shù)依賴:S#->SD;SD->MN;S#,CN->G根據(jù)函數(shù)依賴的不同性質(zhì),函數(shù)依賴可分為完全函數(shù)依賴、部分函數(shù)依賴和傳遞函數(shù)依賴。2.2完全函數(shù)依賴對于X的任意一個真子集X’,都有X’不能決定記為X—Y。定義:在R(U)中,如果X->Y,Y,則稱Y對X完全函數(shù)依賴,例:(S#,CN)馬G2.3部分函數(shù)依賴但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)對于X的任意一個真子集X’,都有X’不能決定記為X—Y。但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)例:(S#,CN)馬G,但(S#,CN)二>SD2.4傳遞函數(shù)依賴定義:在R(U)中,當(dāng)且僅當(dāng)X->Y,Y->Z時,稱Z對X傳遞函數(shù)依賴。例:描述學(xué)生(S#)、班級(SB)、輔導(dǎo)員(TN)的關(guān)系U(S#,SB,TN)。一個班有若干學(xué)生,一個學(xué)生只屬于一個班,一個班只有一個輔導(dǎo)員,但一個輔導(dǎo)員負(fù)責(zé)

溫馨提示

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

最新文檔

評論

0/150

提交評論