關(guān)系代數(shù)(不講)_第1頁
關(guān)系代數(shù)(不講)_第2頁
關(guān)系代數(shù)(不講)_第3頁
關(guān)系代數(shù)(不講)_第4頁
關(guān)系代數(shù)(不講)_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 關(guān)系模型及關(guān)系代數(shù)主要內(nèi)容關(guān)系數(shù)據(jù)模型概述關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系的完整性規(guī)則關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操作關(guān)系模型 關(guān)系模型是由以下三部分組成: 關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系,二維表 關(guān)系操作 集合操作,高度非過程化 完整性約束 三類約束關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模型建立在集合代數(shù)的基礎(chǔ)上關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念關(guān)系關(guān)系模式關(guān)系數(shù)據(jù)庫關(guān)系 域(Domain)2. 笛卡爾積(Cartesian Product)3. 關(guān)系(Relation)域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合:整數(shù)實(shí)數(shù)介于某個取值范圍的整數(shù)指定長度的字符串集合是,否介于某個取值范圍的日期新一代數(shù)據(jù)庫數(shù)據(jù)的類型則更復(fù)雜笛卡爾積(Cartesia

2、n Product)給定一組集合D1,D2,,Dn, 則稱 D1D2Dn=(d1,d2,dn)/diDi, i=1,2,n 為這組集合的笛卡爾積例:D1=a1,a2 D2=b1,b2,b3 D1D2=(a1,b1), (a1,b2), (a1,b3), (a2,b1), (a2,b2), (a2,b3)所有域的所有取值的一個組合不能重復(fù)笛卡爾積(續(xù))例 給出三個域: D1=SUPERVISOR = 張清玫,劉逸 D2=SPECIALITY=計算機(jī)專業(yè),信息專業(yè) D3=POSTGRADUATE=李勇,劉晨,王敏則D1,D2,D3的笛卡爾積為:D1D2D3 (張清玫,計算機(jī)專業(yè),李勇),(張清玫,

3、計算機(jī)專業(yè),劉晨), (張清玫,計算機(jī)專業(yè),王敏),(張清玫,信息專業(yè),李勇), (張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏), (劉逸,計算機(jī)專業(yè),李勇),(劉逸,計算機(jī)專業(yè),劉晨), (劉逸,計算機(jī)專業(yè),王敏),(劉逸,信息專業(yè),李勇), (劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏) 笛卡爾積(續(xù))元組(Tuple)笛卡爾積中每一個元素(d1,d2,dn)叫作一個n元組(n-tuple)或簡稱元組。 分量(Component)笛卡爾積元素(d1,d2,dn)中的每一個值di叫作一個分量。 笛卡爾積(續(xù))基數(shù)(Cardinal number)若Di(i1,2,n)為有限集,其

4、基數(shù)為mi(i1,2,n),則D1D2Dn的基數(shù)M為:在上例中,基數(shù):22312,即D1D2D3共有22312個元組笛卡爾積(續(xù))笛卡爾積的表示方法笛卡爾積可表示為一個二維表。表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域。在上例中,12個元組可列成一張二維表 關(guān)系的數(shù)學(xué)描述 設(shè)以D1,D2,Dn表示關(guān)系模型 R(A1,A2,An)的屬性域, 則D=D1D2Dn表示該關(guān)系中所有可能出現(xiàn)的元組, 關(guān)系R通常是笛卡爾積D 的子集. 因此,關(guān)系可以描述為:關(guān)系模型所有屬性域的笛卡爾積的一個子集 n 稱為關(guān)系的目或度關(guān)系(續(xù))注意:關(guān)系是笛卡爾積的有限子集。無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中是無意義的。由于笛卡爾積

5、不滿足交換律,即 (d1,d2,dn )(d2,d1,dn ) 但關(guān)系實(shí)際滿足交換律,即(d1,d2 ,di ,dj ,dn)=(d1,d2 ,dj,di ,dn) (i,j = 1,2,n) 解決方法:為關(guān)系的每個列附加一個屬性名以取消關(guān)系元組的有序性關(guān)系(續(xù))例 在表2.1 的笛卡爾積中取出有實(shí)際意義的元組 來構(gòu)造關(guān)系關(guān)系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假設(shè):導(dǎo)師與專業(yè):1:1,導(dǎo)師與研究生:1:n于是:SAP關(guān)系可以包含三個元組 (張清玫,信息專業(yè),李勇), (張清玫,信息專業(yè),劉晨), (劉逸,信息專業(yè),王敏) 關(guān)系模型術(shù)語(一)關(guān)系(R

6、elation):就是含有有限個不同的行的二維表元組(Tuple):就是二維表中的一行,即表中的記錄 屬性(Attribute):就是為二維表中的一列起的一個名字,用類型和值表征 域(Domain):每個屬性取值的變化范圍關(guān)系模型術(shù)語(二)鍵(Key,又稱碼): 能夠唯一標(biāo)識元組的屬性或?qū)傩越M,稱為關(guān)系模式的鍵。 例如: 學(xué)生關(guān)系中的“學(xué)號”,課程關(guān)系中的“課程號”等候選鍵(Candidate Key):如果一個屬性集能唯一標(biāo)識元組,且又不含有多余屬性,那么這個屬性集稱為候選鍵。主鍵(Primary Key):關(guān)系模式中用戶正在使用的候選鍵關(guān)系的性質(zhì)同一個列中的分量定是來自同一個域不同列可來自

7、同一個域列、行的順序可以交換任意兩個元組不能完全相同每一個分量必須取原子值,即分量值不可再分,也不能有多值三類關(guān)系基本關(guān)系(基本表或基表)實(shí)際存在的表,是實(shí)際存儲數(shù)據(jù)的邏輯表示查詢表查詢結(jié)果對應(yīng)的表視圖表由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實(shí)際存儲的數(shù)據(jù)關(guān)系模式 關(guān)系模式是對關(guān)系的描述 它可以形式化為 R(U,D,dom,F) 通常簡記為 R(U )或 R= (A1, A2, , An ) , 其中A1, A2, , An 為屬性名關(guān)系模式是關(guān)系數(shù)據(jù)庫的型,是靜態(tài)、穩(wěn)定的;而動態(tài)、變化的關(guān)系的具體值由對應(yīng)的二維表來表示。關(guān)系模式和關(guān)系往往統(tǒng)稱為關(guān)系關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是由多個關(guān)系模式組

8、成一個現(xiàn)實(shí)對象的相關(guān)信息被分成若干部分,每個關(guān)系模式描述其中一部分信息關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,即關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫的型與值關(guān)系數(shù)據(jù)庫也有型和值之分:關(guān)系數(shù)據(jù)庫的型稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述若干域的定義在這些域上定義的若干關(guān)系模式關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,通常簡稱為關(guān)系數(shù)據(jù)庫關(guān)系模型的完整性 為了維護(hù)數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性,關(guān)系數(shù)據(jù)庫的數(shù)據(jù)與更新操作必須遵循下列三類完整性規(guī)則 : 實(shí)體完整性規(guī)則(Entity Integrity Rule ) 關(guān)系的主屬性,即主鍵的組成不能有空值(null)。如果出現(xiàn)空值,那么主

9、鍵就無法起到唯一標(biāo)識元組(實(shí)體)的作用。 若所定義的實(shí)體的主鍵為組合屬性,如“學(xué)生-選課”中(學(xué)號,課程號)為主鍵,則該實(shí)體的任一元組中,學(xué)號和課程號這兩個屬性的值均不得為空值,否則就違反了實(shí)體完整性要求。引用完整性規(guī)則(Reference Integrity Rule) 如果關(guān)系 R2的屬性中,包含與另一關(guān)系R1的主鍵相對應(yīng)的屬性集合K ,那么K 則稱為R2的外鍵 對R2每個元組在K上的取值只允許有兩種可能:空值;等于R1的關(guān)系中某個元組的主鍵值. R1與R2不一定是不同的關(guān)系;主鍵與外鍵可以不同名,但是定義在同一值域中 以上兩類規(guī)則是由系統(tǒng)自動支持的,即:在建立關(guān)系(表)時,只要指明了主鍵

10、、外鍵,系統(tǒng)將自動進(jìn)行此類完整性檢查 引用完整性規(guī)則(例子)例1:學(xué)生、課程、學(xué)生選課之間的多對多聯(lián)系可以用以下三個關(guān)系表示:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,類別,學(xué)分)選課(學(xué)號,課程號,成績) 選課關(guān)系分別引用了學(xué)生關(guān)系中的主碼“學(xué)號”和課程關(guān)系的主碼“課程號”。因此,選課中出現(xiàn)的“學(xué)號”和“課程號”的值必須是學(xué)生和課程關(guān)系中確實(shí)存在的值例2:在關(guān)系員工(員工號,姓名,性別,部門號,職務(wù),部門經(jīng)理)中,“員工號”是主鍵,“部門經(jīng)理”表示該員工所在部門經(jīng)理的員工號,它引用了自身關(guān)系“員工號”屬性,所以“部門經(jīng)理”必須是確實(shí)存在的員工的員工號 學(xué)生學(xué)生選課課程 用戶

11、定義的完整性規(guī)則(User-defined Integrity ) 這是針對某一應(yīng)用環(huán)境的完整性約束條件它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)應(yīng)滿足的要求。 系統(tǒng)提供定義和檢驗(yàn)這類規(guī)則的機(jī)制(一般在建立庫表的同時進(jìn)行定義),其目的是用統(tǒng)一的方式由系統(tǒng)來處理它們,不再由應(yīng)用程序來完成這項(xiàng)工作 例如,課程關(guān)系中的“學(xué)分”屬性取值范圍在1-5之間等關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操作關(guān)系數(shù)據(jù)的操作有兩個基本特點(diǎn) 一次操作可存取多個元組,而不是像網(wǎng)狀數(shù)據(jù)庫系統(tǒng)那樣一次操作只能存取一個記錄 語言的非過程化特點(diǎn),即用戶只需告訴做什么而無需告訴怎么去做 關(guān)系數(shù)據(jù)庫系統(tǒng)中將數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)控制(安全保密及完整性控制等)等功

12、能成功地集成到一個語言之中,有力地增強(qiáng)了系統(tǒng)功能和數(shù)據(jù)獨(dú)立性,提高了使用的方便性,簡化了程序設(shè)計 查詢語言( Query Languages ) 查詢語言是用戶用來從數(shù)據(jù)庫中請求獲取信息的語言 查詢語言有“過程化” (procedural)與“非過程化” (non-procedural)兩類 “純”的查詢語言分成: 關(guān)系代數(shù)類(Relational Algebra) 元組關(guān)系演算類( Tuple Relational Calculus) 域關(guān)系演算類( Domain Relational Calculus )“純”的查詢語言為通用商用查詢語言提供基礎(chǔ)關(guān)系代數(shù) 關(guān)系代數(shù)是用對關(guān)系的運(yùn)算來進(jìn)行查詢

13、的方式 關(guān)系代數(shù)可分為: 傳統(tǒng)的集合運(yùn)算:并、差、交、積運(yùn)算 專門的關(guān)系運(yùn)算:選擇、投影、連接、除運(yùn)算 傳統(tǒng)的集合運(yùn)算設(shè)關(guān)系模式相同的關(guān)系R和S 關(guān)系的并:RS=t/tR或tS 關(guān)系的交:RS=t/tR且tS 關(guān)系的差:R-S=t/tR且tS 關(guān)系的笛卡爾積: R x S = t q | t R and q S關(guān)系的差 表示形式為 R-S,定義為 R-S = t | t R and t S 差運(yùn)算必須在兩個相容的關(guān)系之間進(jìn)行R和S必須有相同的元數(shù)R和S屬性的域相同Set Difference Operation ExampleRelations R, S :R S:AB121AB23rsAB1

14、1Cartesian-Product Operation表示形式為R x S ,定義為 R x S = t q | t R and q S 前提假定R和S的屬性集是非重疊的,即 R S = . 如果R和S屬性集有重疊 ,則為了避免混淆,重命名機(jī)制必須使用Cartesian-Product Operation-ExampleRelations r, s:r x s:AB12AB11112222CD 1010201010102010EaabbaabbCD10102010Eaabbrs專門的關(guān)系運(yùn)算選擇運(yùn)算:從一個關(guān)系中選出所有滿足條件的元組 F(R)投影運(yùn)算:從一個關(guān)系屬性中選擇指定屬性,即從一個

15、關(guān)系出發(fā)構(gòu)造其垂直子集的運(yùn)算 A1, A2, ., An(R )條件連接運(yùn)算:從兩個關(guān)系的笛卡爾叉積中選取滿足條件的元組,形成新關(guān)系自然連接(等值連接):當(dāng)條件連接運(yùn)算的條件是“兩個關(guān)系的公共屬性值相等”時進(jìn)行的連接運(yùn)算選擇(SELECT) 選擇運(yùn)算是從指定關(guān)系中選取滿足給定條件的若干元組組成一個新關(guān)系,其形式為: F(R) 其中,F(xiàn) 為條件表達(dá)式,是常數(shù)、屬性名或列號、算術(shù)比較符(、=、)及邏輯運(yùn)算符(、)組成的條件表達(dá)式;R為指定的被運(yùn)算關(guān)系名 選擇(續(xù))3) 選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算 4) 舉例設(shè)有一個學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC

16、。選擇(續(xù))學(xué) 號Sno姓 名Sname性 別Ssex年 齡Sage所 在 系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a) Student選擇(續(xù))(b)Course課程號課程名先行課學(xué)分CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL語言64選擇(續(xù))(c)SC學(xué) 號課 程 號成 績SnoCnoGrade9500119295001285950013889500229095002380選擇(續(xù))例1 查詢信息系(IS系)全體學(xué)生 Sdept = IS

17、 (Student)或 5 =IS (Student)結(jié)果: SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS選擇(續(xù))例2 查詢年齡小于20歲的學(xué)生 Sage 20(Student) 或 4 20(Student)結(jié)果: SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS投影運(yùn)算(PROJECT) 投影運(yùn)算是從指定的關(guān)系中選取指定的若干屬性組成一個新關(guān)系,其形式為: A1, A2, ., An(R ) 其中,R為被運(yùn)算關(guān)系名,A為R屬性系列(A1,A2,Am) 投影(Projection

18、) 2)投影操作主要是從列的角度進(jìn)行運(yùn)算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)投影(續(xù))舉例例3 查詢學(xué)生的姓名和所在系即求Student關(guān)系上學(xué)生姓名和所在系兩個屬性上的投影 Sname,Sdept(Student)或 2,5(Student)結(jié)果:投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立IS投影(續(xù))例4 查詢學(xué)生關(guān)系Student中都有哪些系 Sdept(Student)結(jié)果:SdeptCSISMA連接(Join) 1)連接也稱為連接2)連接運(yùn)算的含義從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 R S = | tr Rts S

19、trAtsB A和B:分別為R和S上度數(shù)相等且可比的屬性組:比較運(yùn)算符連接運(yùn)算從R和S的廣義笛卡爾積RS中,選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組。 ABtr ts 連接(續(xù)) 3)兩類常用連接運(yùn)算-等值連接(equijoin) 什么是等值連接為“”的連接運(yùn)算稱為等值連接 等值連接的含義從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為: R S = | tr Rts StrA = tsB A=Btr ts 連接(續(xù)) 自然連接(Natural join) 什么是自然連接自然連接是一種特殊的等值連接兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬

20、性組在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義R和S具有相同的屬性組B R S = | tr Rts StrB = tsB tr ts連接(續(xù))4)一般的連接操作是從行的角度進(jìn)行運(yùn)算。 自然連接還需要取消重復(fù)列,所以是同時從行和列的角度進(jìn)行運(yùn)算。 ABRS連接(續(xù))5)舉例 例5 ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS連接(續(xù)) R S AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310CE連接(續(xù)) 等值連接 R S R.B=S.BAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32連接(續(xù)) 自然連接 R S ABCEa1b153a1b267a2b3810a2b382Division Operation適用于查詢中包含了“對所有的”這類短語的查詢假設(shè) r 和 s 是分別定義在模式 R和 S上的兩個關(guān)系,其中R和 S分別表示為R = (A1, , Am, B1, , Bn)S = (B1, , Bn)則運(yùn)算 r s 的結(jié)果是一個關(guān)系模式如下的新關(guān)系 R S = (A1, , Am)即r s = t | t R-S(r) u s ( tu r ) 除運(yùn)算用R S表示 Division

溫馨提示

  • 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

提交評論