【數(shù)據(jù)庫原理】關(guān)系數(shù)據(jù)庫_第1頁
【數(shù)據(jù)庫原理】關(guān)系數(shù)據(jù)庫_第2頁
【數(shù)據(jù)庫原理】關(guān)系數(shù)據(jù)庫_第3頁
【數(shù)據(jù)庫原理】關(guān)系數(shù)據(jù)庫_第4頁
【數(shù)據(jù)庫原理】關(guān)系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2020/9/7,數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用,機械工業(yè)出版社,第4章 關(guān)系數(shù)據(jù)庫,4.1 關(guān)系模型及其定義 4.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu) 4.1.2 關(guān)系操作概述 4.1.3 關(guān)系的完整性 4.2 關(guān)系代數(shù) 4.2.1 傳統(tǒng)的集合運算 4.2.2 專門的關(guān)系運算 4.2.3 用關(guān)系代數(shù)表示檢索的例子,4.1 關(guān)系模型及其定義,4.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu) 1. 關(guān)系的數(shù)學(xué)定義 1) 域的定義:域是一組具有相同數(shù)據(jù)類型的值的集合。 2) 笛卡兒積(Cartesian Product)的定義:給定一組域D1,D2,Dn,這些域中可以有相同的部分,則笛卡兒積為: D1D2Dn =(d1,d2,dn)di Di,i

2、1,2,n. 其中:每一個元素(d1,d2,dn )稱為一個n元組,簡稱元組。元素中的每一個值di稱作一個分量)。,例如給出三個域: D1 = 姓名 = 王平,李麗,張曉剛; D2 = 性別 = 男,女; D3 = 年齡 = 19,20.,則D1,D2,D3的笛卡兒積為D1D2D3,1. 關(guān)系的數(shù)學(xué)定義,3) 關(guān)系(Relation)的定義:D1 D2 Dn的子集稱作在域D1,D2,Dn上的關(guān)系,表示為: R(D1,D2,Dn).這里:R表示關(guān)系的名字,n是關(guān)系的目或度。,從D1D2D3中取出有用的元組,所構(gòu)造的學(xué)生關(guān)系如表所示,2. 關(guān)系中的基本名詞,1) 元組:關(guān)系表中的每一橫行稱作一個元

3、組,組成元組的元素為分量。2) 屬性:關(guān)系中的每一列稱為一個屬性。3) 候選碼、主碼、全碼:若關(guān)系的候選碼中只包含一個屬性,則稱它為單屬性碼;若候選碼是由多個屬性構(gòu)成的,則稱為它為多屬性碼。若關(guān)系中只有一個候選碼,且這個候選碼中包括全部屬性,則這種候選碼為全碼。4) 主屬性和非主屬性:關(guān)系中,候選碼中的屬性稱為主屬性,不包含在任何候選碼中的屬性稱為非主屬性。,3. 數(shù)據(jù)庫中關(guān)系的類型 1) 基本表:關(guān)系數(shù)據(jù)庫中實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示。2) 視圖表:視圖表是由基本表或其他視圖表導(dǎo)出的表。3) 查詢表:查詢表是指查詢結(jié)果表或查詢中生成的臨時表。4. 數(shù)據(jù)庫中基本關(guān)系的性質(zhì)1) 同一

4、屬性的數(shù)據(jù)具有同質(zhì)性。2) 同一關(guān)系的屬性名具有不能重復(fù)性。3) 關(guān)系中的列位置具有順序無關(guān)性。4) 關(guān)系具有元組無冗余性。5) 關(guān)系中的元組位置具有順序無關(guān)性。6) 關(guān)系中每一個分量都必須是不可分的數(shù)據(jù)項。,5. 關(guān)系模式的定義形式化地表示為:R(U,D,Dom,F(xiàn))其中:R為關(guān)系名,它是關(guān)系的形式化表示;U為組成該關(guān)系的屬性集合;D為屬性組U中屬性所來自的域;Dom為屬性向域的映象的集合;F為屬性間數(shù)據(jù)的依賴關(guān)系集合。關(guān)系模式通??梢院唵斡洖椋篟(U)或 R(A1,A2,An).其中:R為關(guān)系名,A1,A2,An為屬性名。,6. 關(guān)系數(shù)據(jù)庫在某一應(yīng)用領(lǐng)域中,所有實體集及實體之間聯(lián)系所形成關(guān)

5、系的集合就構(gòu)成了一個關(guān)系數(shù)據(jù)庫。,4.1.2 關(guān)系操作概述,1. 關(guān)系操作的基本內(nèi)容 關(guān)系操作包括數(shù)據(jù)查詢、數(shù)據(jù)維護和數(shù)據(jù)控制三大功能:數(shù)據(jù)查詢指數(shù)據(jù)檢索、統(tǒng)計、排序、分組以及用戶對信息的需求等功能;數(shù)據(jù)維護指數(shù)據(jù)增加、刪除、修改等數(shù)據(jù)自身更新的功能;數(shù)據(jù)控制是為了保證數(shù)據(jù)的安全性和完整性而采用的數(shù)據(jù)存取控制及并發(fā)控制等功能。 關(guān)系操作的數(shù)據(jù)查詢和數(shù)據(jù)維護功能使用關(guān)系代數(shù)中的選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)以及廣義笛卡兒積( Extended Cartesian Pr

6、oduct)8種操作。,2. 關(guān)系操作的特點,(1)關(guān)系操作語言操作一體化 具有數(shù)據(jù)定義、查詢、更新和控制一體化的特點,既可以作為宿主語言嵌入到主語言中,又可以作為獨立語言交互使用。 (2) 關(guān)系操作的方式是一次一集合方式 其他系統(tǒng)的操作是一次一記錄方式,而關(guān)系操作的方式則是一次一集合方式。關(guān)系操作數(shù)據(jù)結(jié)構(gòu)單一的特點,能夠使其利用集合運算和關(guān)系規(guī)范化等數(shù)學(xué)理論進(jìn)行優(yōu)化和處理操作,但關(guān)系操作與其他系統(tǒng)配合時需要解決處理方式的矛盾。 (3) 關(guān)系操作語言是高度非過程化的語言 具有強大的表達(dá)能力。用戶使用關(guān)系語言時,只需要指出做什么,而不需要指出怎么做,數(shù)據(jù)存取路徑的選擇、數(shù)據(jù)操作方法的選擇和優(yōu)化都

7、由DBMS自動完成。,3. 關(guān)系操作語言的種類,(1) 關(guān)系代數(shù)語言 用對關(guān)系的運算來表達(dá)查詢要求的語言。 (2) 關(guān)系演算語言 用查詢得到的元組應(yīng)滿足的謂詞條件來表達(dá)查詢要求的語言。關(guān)系演算語言又可以分為元組演算語言和域演算語言兩種:元組演算語言的謂詞變元的基本對象是元組變量,例如APLHA語言;域演算語言的謂詞變元的基本對象是域變量,QBE(Query By Example)是典型的域演算語言。 (3) 基于映象的語言 具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言。SQL是基于映象的語言。SQL包括數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)控制三種功能,具有語言簡潔,易學(xué)易用的特點,它是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言和主流語

8、言。,4.1.3 關(guān)系的完整性,1. 關(guān)系模型的實體完整性(Entity Integrity) 若屬性A是基本關(guān)系R的主屬性,則屬性A的值不能為空值。說明如下:1) 實體完整性能夠保證實體的唯一性。2) 實體完整性能夠保證實體的可區(qū)分性。 2. 關(guān)系模型的參照完整性1) 外碼和參照關(guān)系 設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的主碼(或候選碼)。如果F與基本關(guān)系S的主碼相對應(yīng),則稱F是R的外碼,并稱R為參照關(guān)系,S為被參照關(guān)系或目標(biāo)關(guān)系。,例如,“基層單位數(shù)據(jù)庫”中有“職工”和“部門”兩個關(guān)系,其關(guān)系模式如下: 職工(職工號,姓名,工資,性別,部門號); 部門(部門號,名稱,領(lǐng)導(dǎo)人號).

9、其中:主碼用下劃線標(biāo)出,外碼用曲線標(biāo)出。,再例,在學(xué)生課程庫中,關(guān)系模式表示為: 學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡); 課程(課程號,課程名,學(xué)分); 選修(學(xué)號,課程號,成績).其中:主碼用下劃線標(biāo)出。,2) 參照完整性規(guī)則 若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值。,3 用戶定義的完整性。 用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。,4.2 關(guān)系代數(shù),1) 集合運算符

10、:(并運算),(差運算),(交運算),(廣義笛卡兒積)。 2) 專門的關(guān)系運算符:(選擇),(投影),(連接),(除)。 3) 比較運算符:(大于),(大于等于),(小于),(小于等于),(等于),(不等于)。 4) 邏輯運算符:(非),(與),(或)。,4.2.1 傳統(tǒng)的集合運算,設(shè)關(guān)系R和S具有相同的目n(即兩個關(guān)系都有n個屬性),且相應(yīng)的屬性取自同一個域。1. 并(Union)運算 RS=t| t R t S. R和S并的結(jié)果仍為n目關(guān)系,其數(shù)據(jù)由屬于R或?qū)儆赟的元組組成。2. 差(Difference)運算 R S = t | t R t S. R和S差運算的結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)

11、據(jù)由屬于R而不屬于S的所有元組組成。,3. 交(Intersection)運算 RS = t | tR t S . 運算的結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)據(jù)由既屬于R同時又屬于S的元組組成。交可用差來表示: RS = R(RS) .,4. 笛卡兒積運算 設(shè)n目和m目的關(guān)系R和S,它們的笛卡兒積是一個(n+m)目的元組集合。元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組。若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的廣義笛卡兒積應(yīng)當(dāng)有k1k2個元組。R和S的笛卡兒積表示為: RS = tr ts | tr R ts S .,傳統(tǒng)集合運算的實例,R S RS,RS RS,4.2.2 專門

12、的關(guān)系運算,1. 記號說明(1) 關(guān)系模式、關(guān)系、元組和分量 設(shè)關(guān)系模式為R(A1,A2,An),它的一個關(guān)系設(shè)為R,tR表示t是R的一個元組,t Ai則表示元組t中相對于屬性Ai的一個分量。(2) 域列和域列非 若A = A i1,A i2,A ik,其中A i1,A i2,A ik是A1,A2,An中的一部分,則A稱為屬性列或域列,t A = t Ai1,t A i2,t A ik 表示元組t在屬性列A上諸分量的集合。A則表示 A1,A2 , , An 中去掉 A i1,A i2,A ik后剩余的屬性組,它稱為A的域列非。,(3) 元組連串(Concatenation) 設(shè)R為n目關(guān)系,S

13、為m目關(guān)系,且tr R,tSS,則tr tS 稱為元組的連串。連串是一個(n+m)列的元組,它的前n個分量是R中的一個n元組,后m個分量為S中的一個m元組。,(4) 屬性的象集(Images Set) 給定一個關(guān)系R(X,Z),X和Z為屬性組。定義當(dāng)t X=x時,x在R中的象集為: Zx = t Z | t R,t X = x . 上式表示,x在R中的象集為R中Z屬性對應(yīng)分量的集合,而這些分量所對應(yīng)的元組中的屬性組X上的值應(yīng)為x。,2. 專門關(guān)系運算的定義,(1) 選擇(Selection)運算選擇運算又稱為限制運算。選擇運算指在關(guān)系R中選擇滿足給定條件的元組,記作: F(R)= t | t

14、R F(t)= 真 .其中:F表示選擇條件,是一個邏輯表達(dá)式,取值為“真”或“假”。F由邏輯運算符(非)、(與)和(或)連接各條件表達(dá)式組成。 條件表達(dá)式的基本形式為:X1Y1.其中:是比較運算符,它可以是、中的一種;X1和Y1是屬性名、常量或簡單函數(shù);屬性名也可以用它的序號來代替。,用關(guān)系代數(shù)表示下列操作,設(shè)學(xué)生課程數(shù)據(jù)庫,其關(guān)系模式為: 學(xué)生(學(xué)生,姓名,年齡,所在系); 課程(課程號,課程名,學(xué)分); 選課(學(xué)號,課程號,成績).,【例4-1】用關(guān)系代數(shù)表示在學(xué)生課程數(shù)據(jù)庫中查詢計算機系的全體學(xué)生的操作。 所在系= 計算機系 (學(xué)生),【例4-2】用關(guān)系代數(shù)表示在學(xué)生課程數(shù)據(jù)庫中查詢年齡

15、小于20歲的學(xué)生的操作。 年齡20(學(xué)生),(2) 投影(Projection)運算 關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系,記作: A(R)= t A | t R .,【例4-3】在學(xué)生課程數(shù)據(jù)庫中,查詢學(xué)生的姓名和所在系。 表示為: 姓名,所在系(學(xué)生),(3) 連接運算,連接是從兩個關(guān)系的笛卡兒積中選取屬性間滿足一定條件的元組。記作: R S=tr ts| trR tsS tr Ats B. AB其中:A和B分別為R和S上度數(shù)相等且可比的屬性組,是比較運算符。 等值連接表示為: R S=tr ts| trR tsS tr Ats B. A =B 自然連接是一種特殊的等值連接:

16、 R S=tr ts| trR tsS tr Ats B,【例4-4】設(shè)學(xué)生和選課關(guān)系中的數(shù)據(jù)如下,學(xué)生與選課之間的笛卡兒積、等值連接和自然連接的結(jié)果如表所示。,學(xué)生 選課,學(xué)生選課,學(xué)生 選課 學(xué)生.學(xué)號=選課.學(xué)號,學(xué)生 選課,(4) 除(Division)運算,給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上的分量值x的象集Yx包含S在Y上的投影,即: RS=tr X| t r R Y(S) Yx. 其中的Yx為x在R中的

17、象集,x = trX。關(guān)系除法運算分下面4步進(jìn)行:1) 將被除關(guān)系的屬性分為象集屬性和結(jié)果屬性:與除關(guān)系相同的屬性屬于象集屬性,不相同的屬性屬于結(jié)果屬性。2) 在除關(guān)系中,對與被除關(guān)系相同的屬性(象集屬性)進(jìn)行投影,得到除目標(biāo)數(shù)據(jù)集。3) 將被除關(guān)系分組,原則是,結(jié)果屬性值一樣的元組分為一組。4) 逐一考察每個組,如果它的象集屬性值中包括除目標(biāo)數(shù)據(jù)集,則對應(yīng)的結(jié)果屬性值應(yīng)屬于該除法運算結(jié)果集。,【例4-5】給出選課、選修課和必修課3個關(guān)系,它們的關(guān)系模式為: 選課(學(xué)號,課號,成績);選修課(課號,課名);必修課(課號,課名).,選課必修課 學(xué)號,課號(選課)必修課,4.2.3 用關(guān)系代數(shù)表示檢索的例子,學(xué)生選課庫的關(guān)系模式為: 學(xué)生(學(xué)號,姓名,性別,年齡,所在系); 課程(課程號,課程名,先行課); 選課(學(xué)號,課程號,成績).【例4-6】求選修了課程號為“C2”課程的學(xué)生學(xué)號。 學(xué)號(課程號= C2(選課)【例4-7】求選修了課程號為“C2”課的學(xué)生學(xué)號和姓名。 學(xué)號,姓名(課程號= C2(選課學(xué)生)【例4-8】求沒有選修課程號為“C2”課程的學(xué)生學(xué)號。 學(xué)號(學(xué)生)-學(xué)號(課程號= C2(選課)本題不能寫為: 學(xué)號(課程號 C2(選課),用關(guān)系代數(shù)表示檢索的例子,【例4-9】求既選修“C2”課程,又選修“C3”課程的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論