數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 關(guān)系數(shù)據(jù)庫_第1頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 關(guān)系數(shù)據(jù)庫_第2頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 關(guān)系數(shù)據(jù)庫_第3頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 關(guān)系數(shù)據(jù)庫_第4頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 關(guān)系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章關(guān)系數(shù)據(jù)庫學(xué)習(xí)要點關(guān)系數(shù)據(jù)結(jié)構(gòu)及其形式化定義關(guān)系操作及完整性關(guān)系代數(shù)

運算種類(集合運算、專門運算)考點:掌握如何通過對關(guān)系的運算來表達(dá)和完成查詢要求;對給定實例,應(yīng)確知運算或查詢的結(jié)果。2.1關(guān)系模型概述關(guān)系模型由以下三部分組成關(guān)系數(shù)據(jù)結(jié)構(gòu):關(guān)系(一張二維表)關(guān)系操作:查詢操作(2.2節(jié))選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)更新操作增加(Insert)、刪除(Delete)、修改(Update)關(guān)系完整性約束:(2.3節(jié))實體完整性、參照完整性、用戶定義完整性

由系統(tǒng)自動支持由應(yīng)用環(huán)境中的語義來約束關(guān)系操作特點:操作對象和操作結(jié)果都是集合(統(tǒng)一框架)高度非過程化,不必借助循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作,能嵌入高級語言中使用2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系模型建立在集合代數(shù)基礎(chǔ)上,從集合論角度討論關(guān)系的形式化定義定義1:域(Domain)一組具有相同數(shù)據(jù)類型的值的集合,如整數(shù)、實數(shù)等。形式化表示為D定義2:笛卡爾積(CartesianProduct)P42一組域D1,D2,…Dn的笛卡爾積(d1,d2,d3,…dn)稱為一個元組,di稱為一個分量若Di的基數(shù)(值的個數(shù))為Mi,則笛卡爾集的基數(shù)M為笛卡爾積計算實例例1:D1={甲,乙},D2={1,2},D3={a,b,c}1)D1,D2,D3基數(shù)分別是多少?2)D1×D2=?(基數(shù)?)3)D1×D2×D3=?(基數(shù)?)笛卡爾集可表示為一個二維表表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域請將例子表示為二維表例2.已知三個域D1=導(dǎo)師集合={張清正,劉逸}D2=專業(yè)集合={計算機(jī),信息}D3=學(xué)生集合={李勇,劉晨,王敏}導(dǎo)師專業(yè)研究生張清正計算機(jī)李勇張清正計算機(jī)劉晨張清正計算機(jī)王敏張清正信息李勇張清正信息劉晨張清正信息王敏劉逸計算機(jī)李勇劉逸計算機(jī)劉晨劉逸計算機(jī)王敏劉逸信息李勇劉逸信息劉晨劉逸信息王敏D1,D2,D3的笛卡爾積計算思考1)每個域的基數(shù)?2)計算D1×D2×D3=?基數(shù)?3)計算結(jié)果中的元組有無實際意義?(根據(jù)語義判斷)部分元組不滿足應(yīng)用語義約束關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義

定義3:關(guān)系D1×D2×···×Dn的子集叫做在域D1,D2,…,Dn上的關(guān)系,表示為R(D1,D2,…,Dn)相關(guān)術(shù)語候選碼:能夠唯一標(biāo)識一個元組的屬性組(一個關(guān)系可以有多個候選碼)主碼:一個關(guān)系中選定的一個候選碼主屬性:包含在主碼中的諸屬性非碼屬性:不包含在任何候選碼中的屬性全碼:若關(guān)系模式的所有屬性組成這個關(guān)系模式的候選碼,稱為全碼(如三實體多對多聯(lián)系)n:關(guān)系的度或目,表的列數(shù),一般稱n元關(guān)系。n目關(guān)系對應(yīng)n個屬性例.已知三個域D1=導(dǎo)師集合S={張清正,劉逸}D2=專業(yè)集合SP={計算機(jī),信息}D3=學(xué)生集合P={李勇,劉晨,王敏}計算思考從笛卡爾集中取出一個子集,選擇有意義的元組組成關(guān)系R=(導(dǎo)師,專業(yè),研究生)一個研究生只能有一個專業(yè),如李勇和王敏是計算機(jī)專業(yè)、劉晨是信息專業(yè)導(dǎo)師S專業(yè)SP研究生P張清正計算機(jī)李勇張清正計算機(jī)劉晨張清正計算機(jī)王敏張清正信息李勇張清正信息劉晨張清正信息王敏劉逸計算機(jī)李勇劉逸計算機(jī)劉晨劉逸計算機(jī)王敏劉逸信息李勇劉逸信息劉晨劉逸信息王敏D1,D2,D3的笛卡爾積(上圖)現(xiàn)在導(dǎo)師與研究生是什么關(guān)系?限定一個學(xué)生只能有一個導(dǎo)師,如張是計算機(jī)導(dǎo)師,劉是信息專業(yè)導(dǎo)師現(xiàn)在導(dǎo)師與研究生是什么關(guān)系?關(guān)系關(guān)系的性質(zhì)列同質(zhì),即每一列是同一類型的數(shù)據(jù)不同的列可出自同一個域,每一列為一個屬性,不同的屬性被賦予不同的屬性名列的次序可以任意交換行的次序可以任意交換任意兩個元組不能完全相同分量必須取原子值,即不可再分

基本表(實際存在的表)關(guān)系分類查詢表(查詢結(jié)果對應(yīng)的表)視圖表(由基本表或其他視圖表導(dǎo)出)關(guān)系模式關(guān)系模式是對關(guān)系的描述,形式化表示為R(U,D,dom,F)U:組成該關(guān)系的屬性名集合D:屬性組U中屬性所來自的域dom:屬性向域的映象集合(說明屬性分別出自哪個域)F:屬性間數(shù)據(jù)的依賴關(guān)系集合(第6章數(shù)據(jù)依賴)★可簡記為R(U)或R(A1,A2,…,An),其中Ai為屬性名

關(guān)系模式與關(guān)系關(guān)系模式是型,是對關(guān)系的描述,是靜態(tài)的,穩(wěn)定的。關(guān)系是值,由賦予它的元組語義來確定的,是動態(tài)的,它的不斷變化是由于關(guān)系操作引起關(guān)系是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容★實際應(yīng)用中常常將關(guān)系模式和關(guān)系都稱為關(guān)系2.3關(guān)系的完整性實體完整性參照完整性用戶定義完整性

實體完整性和參照完整性是關(guān)系模型必須滿足的,被稱作關(guān)系的不變性,由關(guān)系數(shù)據(jù)庫系統(tǒng)自動支持★實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值空值:當(dāng)前不知道或是對這個元組不可用的一個屬性

空值不等于零值說明:基本關(guān)系的主碼中的任何屬性都不能取空值,而不僅是主碼整體不能取空值依據(jù):現(xiàn)實世界的實體是唯一可分的例:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)參照完整性外碼定義:設(shè)F是參照關(guān)系R的一個或一組屬性,但不是R的碼,若F與被參照關(guān)系S的主碼相對應(yīng),則稱F是R的外碼(詳細(xì)定義見教材P50)規(guī)則:參照關(guān)系R中每個元組在外碼F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值例1:學(xué)生實體與專業(yè)實體間的關(guān)系:

學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)特征:兩關(guān)系之間存在著屬性的引用,外碼屬于參照關(guān)系關(guān)系參照圖外碼參照關(guān)系被參照關(guān)系例2:學(xué)生,課程,學(xué)生與課程之間的多對多聯(lián)系:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)關(guān)系參照圖

被參照關(guān)系參照關(guān)系學(xué)生關(guān)系專業(yè)關(guān)系專業(yè)號學(xué)生關(guān)系選修關(guān)系課程關(guān)系學(xué)號課程號參照完整性主碼?外碼?同一實體集例3:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)“班長”屬性表示該學(xué)生所在班級的班長的學(xué)號,需是確實存在的學(xué)生學(xué)號當(dāng)某班尚無班長呢?參照關(guān)系被參照關(guān)系外碼用戶定義完整性用戶定義的、具體應(yīng)用中的數(shù)據(jù)必須滿足的約束條件成績:0-100之間身份證、身份證和生日對應(yīng)關(guān)系

2.4關(guān)系代數(shù)關(guān)系代數(shù)語言用傳統(tǒng)的集合運算和專門的關(guān)系運算來表達(dá)查詢的抽象語言關(guān)系代數(shù)運算符關(guān)系代數(shù)表達(dá)式關(guān)系代數(shù)中有限次運算復(fù)合后形成的式子運算符含義運算符含義集合運算符并差交廣義笛卡爾積比較運算符>>=<<==大于大于等于小于小于等于等于不等于專門的關(guān)系運算符選擇投影連接除邏輯運算符非與或傳統(tǒng)的集合運算若R和S是同類關(guān)系(即它們都具有n個屬性且相應(yīng)屬性取自同一個域),則可進(jìn)行并、差、交運算。對兩者進(jìn)行集合運算之前,要對兩者的屬性列進(jìn)行排序,保證兩個關(guān)系的屬性順序相同。由屬于R或?qū)儆赟的元組組成由屬于R而不屬于S的元組組成由既屬于R又屬于S的元組組成表示記號R,t

R,t[Ai],A,t[A],A設(shè)關(guān)系模式為R(A1,A2,…,An),它的一個關(guān)系設(shè)為Rt

R表示t是R的一個元組t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個分量若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組傳統(tǒng)的集合運算廣義笛卡爾積RXS,其關(guān)系模式是R和S的模式的并集,是R和S的元組以所有可能的方式組合起來。當(dāng)R和S有同名的屬性,至少要為其中一個屬性重新命名。數(shù)學(xué)描述:若關(guān)系R有k1個元組n個屬性,關(guān)系S有k2個元組m個屬性,則兩個關(guān)系的廣義笛卡爾積有k1*k2個元組n+m個屬性(前n個屬性來自于R,后m個屬性來自于S)廣義笛卡爾積和笛卡爾積的關(guān)系?面向關(guān)系的運算?面向域的運算?表示記號trtsR為n目關(guān)系,S為m目關(guān)系tr

R,ts

S,trts稱為元組的連接。它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組RSABCa1b1c1a1b2c2a2b2c1a1b3c2RSABCa1b2c2a2b2c1R-SABCa1b1c1RS

R.AR.BR.CS.AS.BS.C

a1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1ABCa1b1c1a1b2c2a2b2c1RABCa1b2c2a1b3c2a2b2c1S例:包括Student,Course,SC三個關(guān)系

Student(Sno,Sname,Sex,Sage,Sdept)

Course(Cno,Cname,Cpno,Ccredit)

SC(Sno,Cno,Grade)

學(xué)生—課程數(shù)據(jù)庫示意專門關(guān)系運算的數(shù)據(jù)庫示例專門的關(guān)系運算選擇投影連接除例:學(xué)生—課程數(shù)據(jù)庫,包括Student,Course,SC三個關(guān)系

SnoSnameSsexSageSdept95001李勇男20

CS

95002劉晨女19IS95003王敏女18MA95004張立男19IS

StudentCnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)2信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27

Pascal語言64CourseSnoCnoGrade9500119295001285950013889500229095002380SC專門的關(guān)系運算:選擇記號:t

R表示t是R的一個元組選擇從關(guān)系R中選取使邏輯表達(dá)式F為真的元組。記作邏輯表達(dá)式F由邏輯運算符連接算術(shù)表達(dá)式,算術(shù)表達(dá)式基本形式為X1

Y1

其中

表示比較運算符,X1,Y1是屬性名或常量或簡單函數(shù),屬性名可以用它的序號來代替.查詢信息系全體學(xué)生:

Sdept=‘IS’(Student)或

5=‘IS’(Student).查詢年齡小于20歲的學(xué)生:

Sage<20(Student)或

4<20(Student)結(jié)果如下:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19ISSnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS1)選擇運算例σ“橫向”操作關(guān)系代數(shù):投影定義:從關(guān)系R中選擇出滿足條件F的若干屬性列并組成新的關(guān)系,列選其中

表示元組t中相應(yīng)于屬性Ai的一個分量。2)投影運算例.查詢學(xué)生的姓名和所在系:

Sname,Sdept(Student)或

2,5(Student).查詢學(xué)生關(guān)系S中有哪些系:

Sdept(Student)或

5(Student)

運算結(jié)果同樣為“關(guān)系”,

故應(yīng)消除結(jié)果中的重復(fù)元組結(jié)果:

SnameSdept

李勇CS劉晨IS王敏MA張立ISSdeptCSISMAπ“縱向”操作關(guān)系代數(shù):連接θ連接從關(guān)系R和S的(廣義)笛卡爾積中選取屬性間滿足條件的元組其中A和B分別是關(guān)系R和S上可比的屬性組,是比較運算符等值連接從關(guān)系R和S的笛卡爾積中選取A,B屬性值相等的元組自然連接特殊的等值連接,R和S具有相同的屬性組B,在結(jié)果中去掉重復(fù)的屬性列連接運算步驟θ連接(包含等值連接):先將R和S做笛卡積,然后從R×S的元組中選擇滿足條件的元組集合。自然連接:假設(shè)A1、A2、……An是R和S的模式中的公共屬性,那么如果R的元組r和S的元組s在這些屬性上取值都相同,r和s組合而成的元組就歸入該自然連接中。一般的連接操作是從行的角度進(jìn)行運算,自然連接還需要取消重復(fù)列,所以是同時從行和列的角度進(jìn)行運算。

AθBRS3)連接運算例.設(shè)有如圖的關(guān)系R和關(guān)系SABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52SAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310R

C<E

SAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32等值連接

ABCE

a1b153a1b267a2b3810a2b382自然連接R

R.B=S.B

SR

S外連接應(yīng)用背景:在連接兩個關(guān)系時,經(jīng)常會出現(xiàn)一個關(guān)系中的某些元組在公共屬性上不存在匹配值,但仍希望這些元組出現(xiàn)在結(jié)果中,就需要外連接。左外連接(RS):將R中所有元組都保留在結(jié)果關(guān)系中,包括那些公共屬性與S不匹配的,此時,結(jié)果關(guān)系中與S相對應(yīng)的非公共屬性均取值為空。右外部連接、全外部連接(略)左外部連接運算例設(shè)有如圖的關(guān)系R和關(guān)系SABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52SABCEa1b153a1b267a2b3810a2b382a2b412Null

R

S相當(dāng)于條件寬松的等值連接預(yù)備知識:象集Zx給定一個關(guān)系R(X,Z),X和Z為屬性組當(dāng)t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|t

R,t[X]=x}

ABC

a1b1c2a2b3c7a3b4c6

a1b2c3a4b6c6a2b2c3

a1b2c1R它表示R中屬性組X上值為x的諸元組在Z上諸分量的集合。對關(guān)系先做選擇t[X]=x運算再投影t[Z]例子:a1的象集為{(b1,c2),(b2,c3),(b2,c1)}關(guān)系代數(shù):除象集是集合,而非關(guān)系關(guān)系代數(shù):除除R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上的投影的集合運算條件:關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組(R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域)4)除運算例設(shè)有如圖的關(guān)系R和SABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCD

b1c2d1

b2c1d1

b2c3d2Aa1RSR

S則R

S結(jié)果如下.

a1的象集為{(b1,c2),(b2,c3),(b2,c1)}

a2的象集為{(b3,c7),(b2,c3)}

a3的象集為{(b4,c6)}

a4的象集為{(b6,c6)}S在(B,C)上的投影組成的集合為{(b1,c2),(b2,c1),(b2,c3)}因只有a1的象集包含了S在(B,C)屬性組上的投影,故R

S={a1}關(guān)系代數(shù)操作小結(jié)(R?S)廣義笛卡兒積(RxS)

關(guān)系R中每個元組與S中每個元組并聯(lián)的結(jié)果Θ連接(RS)

包含R和S的廣義笛卡兒積中所有滿足謂詞F的元組自然連接(RS)

關(guān)系R和S在公共屬性x上的相等連接,結(jié)果

溫馨提示

  • 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

提交評論