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

下載本文檔

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

文檔簡介

2.1.1數(shù)據(jù)模型的定義和基本要求1、數(shù)據(jù)模型的定義模型是現(xiàn)實世界特征的模擬和抽象。數(shù)據(jù)模型是現(xiàn)實世界數(shù)據(jù)特征的模擬和抽象。必須事先把具體事物及其聯(lián)系轉(zhuǎn)換(即數(shù)字化)成計算機能夠存儲和處理的數(shù)據(jù)。轉(zhuǎn)換后的數(shù)據(jù)不僅要反映數(shù)據(jù)本身的內(nèi)容,而且還要反映數(shù)據(jù)之間的聯(lián)系。2、數(shù)據(jù)模型的基本要求數(shù)據(jù)模型應(yīng)滿足三方面要求:一是比較真實的模擬現(xiàn)實世界;二是容易被人理解;三是便于在計算機上實現(xiàn)。

2.1.2數(shù)據(jù)模型的三個層次

要把現(xiàn)實世界中的客觀事物及其聯(lián)系轉(zhuǎn)換成能被計算機存儲和處理的數(shù)據(jù),就要對現(xiàn)實世界進行抽象建立起相應(yīng)的數(shù)據(jù)模型。但這種抽象轉(zhuǎn)換不是一步完成的,而是根據(jù)數(shù)據(jù)模型應(yīng)用的目的不同分步實現(xiàn)的。每一步得到的數(shù)據(jù)模型分屬于三個不同的層次,它們分別是概念模型、邏輯模型和物理模型。

概念模型(信息模型):按用戶的觀點對數(shù)據(jù)和信息建模,是現(xiàn)實世界的第一層抽象,是信息世界中數(shù)據(jù)特征的描述,它概念簡單、清晰,易于用戶理解,且不依賴于具體的計算機系統(tǒng)邏輯模型:按計算機的觀點對數(shù)據(jù)建模,是現(xiàn)實世界的第二層抽象,它有嚴格的形式化定義,便于在計算機系統(tǒng)中實現(xiàn)。

2.1.2數(shù)據(jù)模型的三個層次

物理模型是對數(shù)據(jù)最底層的抽象,描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法,在磁盤或磁帶上的存儲方式和存取方法。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)和核心。邏輯模型、物理模型現(xiàn)實世界轉(zhuǎn)換人腦的認識與抽象機器世界概念模型信息世界現(xiàn)實世界概念模型數(shù)據(jù)庫設(shè)計人員完成概念模型邏輯模型數(shù)據(jù)庫設(shè)計人員完成邏輯模型物理模型由DBMS完成

2.1.3數(shù)據(jù)模型的三個組成要素一般來說,數(shù)據(jù)模型是嚴格定義的一組概念的集合,這些概念精確地描述了系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件,因此,數(shù)據(jù)模型通常是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束條件這三個要素組成的。

數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)模型中最重要的方面,是數(shù)據(jù)對象及它們之間關(guān)系的描述,反映了系統(tǒng)的靜態(tài)特性。數(shù)據(jù)操作:對數(shù)據(jù)對象允許操作的集合,有檢索和更新兩大類,反映了系統(tǒng)的動態(tài)特性。完整性約束條件:完整性規(guī)則的集合,給出模型中的數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,限制數(shù)據(jù)的狀態(tài)及狀態(tài)的變化,確保數(shù)據(jù)的正確、有效、相容。

2.2.1信息世界中的基本概念

概念模型也稱信息模型,是按用戶的觀點對數(shù)據(jù)和信息建模,是對現(xiàn)實世界的第一層抽象,是信息世界中數(shù)據(jù)特征的描述。它一方面具有較強的語義表達能力,能夠方便、直接地表達應(yīng)用所涉及到的現(xiàn)實世界中的各種語義知識,另一方面它概念簡單、清晰,易于用戶理解,且不依賴于具體的計算機系統(tǒng)。概念模型主要用于數(shù)據(jù)庫設(shè)計,是用戶與數(shù)據(jù)庫設(shè)計人員之間進行交流的橋梁。

(1)實體(Entity)是現(xiàn)實世界中客觀存在并可相互區(qū)分的事物的抽象。它可以是具體的,也可以是抽象的。例如學(xué)生、書、專業(yè)、課程等。(2)屬性(Attribute)是實體某一方面特性的抽象。一個實體可以由多個屬性來刻畫。例如,書實體可以由書號、書名、作者、價格、出版社、出版日期等屬性組成。

2.2.1信息世界中的基本概念

(3)碼(Key)是唯一標識實體的屬性或?qū)傩约?。例如:書號?4)域(Domain)是一組具有相同數(shù)據(jù)類型的值的集合,屬性的取值范圍來自某個域。

(5)實體型(EntityType),同類實體必須具有相同的特征,即相同的屬性。描述同類實體的方法是實體型,它由實體名和屬性名集合組成。例如:實體“書”的實體型可表示為:書(書號,書名,作者,價格,出版社,出版日期)。(6)實體集(EntitySet)是同型實體的集合。

2.2.2實體間的聯(lián)系在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。(1)一對一聯(lián)系有兩個實體集A和B。如果任一個實體集中的每個實體最多與另一個實體集中的一個實體有聯(lián)系,則稱實體集A和實體集B具有一對一聯(lián)系,記為1:1。例如,學(xué)校里的學(xué)院與院長(如圖2.2(a)所示)、班級與班長之間都具有一對一聯(lián)系。注意,一對一聯(lián)系不同于數(shù)學(xué)中的一一對應(yīng)關(guān)系。某班級的班長可以是空缺的,還沒有選出班長。

2.2.2實體間的聯(lián)系(2)一對多聯(lián)系有兩個實體集A和B。如果實體集A中的每個實體可與實體集B中的多個(可0個)實體有聯(lián)系;反之,實體集B中的每個實體最多可與實體集A中的一個實體有聯(lián)系,則稱實體集A和實體集B具有一對多聯(lián)系,記為1:n。例如,學(xué)校里的學(xué)院與專業(yè)、專業(yè)與學(xué)生(如圖2.2(b)所示)之間都具有一對多聯(lián)系。圖2.2(a)圖2.2(b)圖2.2(c)

2.2.2實體間的聯(lián)系(3)多對多聯(lián)系有兩個實體集A和B。如果任一個實體集中的每個實體可與另一個實體集中的多個(可0個)實體有聯(lián)系,則稱實體集A和實體集B具有多對多聯(lián)系,記為m:n。例如,學(xué)校里的學(xué)生與課程(如圖2.2(c)所示)、商店里的營業(yè)員與顧客之間都具有多對多聯(lián)系。

要特別說明的是:上面僅僅列出了實體集之間最常見的聯(lián)系,事實上,兩個實體集之間可以存在一種以上的聯(lián)系;兩個以上的實體集之間可以存在聯(lián)系;同一個實體集內(nèi)的各個實體之間也可以存在聯(lián)系。

2.2.3概念模型的表示方法——E-R圖

表示概念模型的方法很多,其中最常用的方法是1976年由P.P.S.Chen提出的實體-聯(lián)系方法(E-R方法)。E-R方法用E-R圖來表示概念模型,這種概念模型也稱E-R模型。E-R圖中的基本圖素有:(1)矩形框:表示實體型,框中寫實體名。(2)菱形框:表示實體之間的聯(lián)系,框中寫聯(lián)系名。(3)橢圓形框:表示實體的屬性或聯(lián)系的屬性,框中寫屬性名。(4)直線:連接與此聯(lián)系相關(guān)的實體、連接實體與屬性、連接聯(lián)系與屬性。

2.2.3概念模型的表示方法——E-R圖

畫E-R圖的步驟:(1)確定實體(2)確定各實體的屬性(3)確定實體之間的聯(lián)系(4)確定各聯(lián)系的屬性

成績?nèi)谓倘掌谡n程專業(yè)學(xué)生教師屬于授課選修nmmnn1選修日期評價學(xué)分學(xué)時課程名課程號課程課程類型

2.3.1層次模型邏輯模型有:層次、網(wǎng)狀、關(guān)系、面向?qū)ο?、對象關(guān)系等在層次模型中表示實體以及實體之間聯(lián)系的數(shù)據(jù)結(jié)構(gòu)是有向樹結(jié)構(gòu)。樹中所有父子結(jié)點之間的聯(lián)系都為一對多的聯(lián)系。層次模型的特點是實體之間的聯(lián)系通過指針來實現(xiàn)。優(yōu)點是查詢效率比關(guān)系模型高,且不低于網(wǎng)狀模型,其數(shù)據(jù)結(jié)構(gòu)比較簡單、直觀、容易理解。缺點是表示多對多的聯(lián)系不方便(必須通過輔助手段),查找時必須通過雙親結(jié)點,使操作趨于過程化,編寫應(yīng)用程序比較復(fù)雜。

學(xué)院專業(yè)學(xué)生信息計算機通信電子張王徐朱趙錢孫李陳楊

2.3.2網(wǎng)狀模型在網(wǎng)狀模型中表示實體以及實體之間聯(lián)系的數(shù)據(jù)結(jié)構(gòu)是有向圖結(jié)構(gòu)。有向圖中結(jié)點之間的聯(lián)系都是一對多的聯(lián)系,因此實體之間一個多對多的聯(lián)系必須通過轉(zhuǎn)換用實體之間兩個一對多的聯(lián)系來表示。

網(wǎng)狀模型中實體之間的聯(lián)系也是通過指針來實現(xiàn)的,因此查詢效率較高。另外,由于它的數(shù)據(jù)結(jié)構(gòu)是圖結(jié)構(gòu),所以多對多的聯(lián)系也較容易實現(xiàn)。網(wǎng)狀模型的缺點是數(shù)據(jù)結(jié)構(gòu)復(fù)雜,編程也復(fù)雜。

S2C1S2C2S1C2S1C1S2S1C2C1學(xué)生選修課程

2.3.3關(guān)系模型關(guān)系模型是建立在嚴格的數(shù)學(xué)概念基礎(chǔ)上的,數(shù)據(jù)結(jié)構(gòu)是一張二維表,實體以及實體之間的聯(lián)系都用二維表表示。二維表在關(guān)系模型中稱為關(guān)系(Relation),對關(guān)系的描述稱為關(guān)系模式(RelationSchema)。例如:學(xué)生(學(xué)號,姓名,性別,年齡,家庭地址,聯(lián)系電話)課程(課程號,課程名,課程類型,學(xué)時,學(xué)分)選修(學(xué)號,課程號,選修日期,成績)關(guān)系模型的優(yōu)點是:①有嚴格的理論基礎(chǔ),概念單一;②數(shù)據(jù)結(jié)構(gòu)簡單、清晰、用戶易理解;③存取路徑對用戶透明,程序與數(shù)據(jù)的獨立性高,易于應(yīng)用程序的編寫和維護。關(guān)系模型的缺點主要是查詢效率不如非關(guān)系模型,DBMS的開發(fā)難度高。

2.4關(guān)系模型開創(chuàng)者或奠基人:IBM公司的研究員E.F.Codd1970年的著名論文:“ARelationalModelofDataforSharedDataBanks”1981年的實驗系統(tǒng):IBM公司的SystemR、加州大學(xué)柏克利分校的INGRES目前的商品化系統(tǒng):Oracle、MySQL、SQLServer、PostgreSQL、Db2、Access、SQLite等關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)關(guān)系模型:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束

2.4.1關(guān)系數(shù)據(jù)結(jié)構(gòu)在關(guān)系模型中,現(xiàn)實世界中實體以及實體之間的各種聯(lián)系均用單一的結(jié)構(gòu)類型,即關(guān)系來表示。下面從集合論角度給出關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義。1、域(Domain)是一組具有相同數(shù)據(jù)類型的值的集合。域中所包含的值的個數(shù)稱為域的基數(shù),常用字母m表示。例如,有下列集合:

D1={張敏,孫陽,李麗},表示姓名的集合,其基數(shù)m1=3;

D2={男,女},表示性別的集合,其基數(shù)m2=2;

D3={計算機,通信},表示專業(yè)的集合,其基數(shù)m3=2。

2、笛卡爾積(CartesianProduct)是域上的一種集合運算,這些域可以完全不同,也可以部分或全部相同。定義為:

D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di

,i=1,2,…,n}

2.4.1關(guān)系數(shù)據(jù)結(jié)構(gòu)(1)元組(Tuple):(d1,d2,…,dn)(2)分量:din(3)笛卡爾積基數(shù)M

:M=∏mi

i=1

例如,對于前面給出的姓名,性別,專業(yè)三個域,其笛卡爾積的基數(shù)為3×2×2=12,如表2.1所示。

3、關(guān)系(Relation):D1×D2×…×Dn的任一有意義的子集稱為域D1,D2,…,Dn上的關(guān)系,表示為:

R(D1,D2,…,Dn)

其中:R為關(guān)系名、n為關(guān)系的度(或目)、Di為域

關(guān)系是值域笛卡爾積的一個有限子集,關(guān)系中的每個元素就是元組,通常用t表示,t∈R表示t是R中的元組。

2.4.1關(guān)系數(shù)據(jù)結(jié)構(gòu)通俗地講,關(guān)系是一張二維表,行對應(yīng)元組,列對應(yīng)域。由于域可以相同,必須對每列起一個唯一的名字,稱為屬性。關(guān)系可以有三種類型:基本關(guān)系(通常又稱為基本表或基表)、查詢表和視圖表。關(guān)系有如下性質(zhì):(1)每一列中的分量(也稱為屬性值)的類型必須相同,即來自同一個域;(2)不同的列可出自同一個域,其中的每一列稱為一個屬性,屬性名必須各不相同;(3)列的順序無所謂,即列的次序可以任意交換;(4)行的順序無所謂,即行的次序可以任意交換;(5)任意兩個元組不能完全相同,即不能有重復(fù)的元組,因為關(guān)系是元組的集合;(6)每一個分量必須是不可分的,即不允許“表中套表”。

2.4.1關(guān)系數(shù)據(jù)結(jié)構(gòu)4、關(guān)系模式對關(guān)系的描述稱為關(guān)系模式:R(U,D,DOM,F)

通常簡記為:R(U)或R(A1,A2,…,An)

其中:R為關(guān)系名A1,A2,…,An

為屬性名關(guān)系模式是型,是相對穩(wěn)定的,是靜態(tài)的

關(guān)系是值,是相對易動的,是動態(tài)的5、關(guān)系數(shù)據(jù)庫在關(guān)系數(shù)據(jù)庫中,實體及實體間的聯(lián)系都用關(guān)系表示。如:學(xué)生(學(xué)號,姓名,性別,……)描述實體課程(課程號,課程名,……) 描述實體學(xué)生選課(學(xué)號,課程號,……)描述實體之間的聯(lián)系關(guān)系數(shù)據(jù)庫也有型和值之分

型:關(guān)系數(shù)據(jù)庫模式,包括若干域的定義及若干關(guān)系模式

值:若干關(guān)系的集合,通常就稱為關(guān)系數(shù)據(jù)庫

2.4.2關(guān)系的完整性

關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,這些約束條件實際上是現(xiàn)實世界的要求。關(guān)系模型中有三類完整性約束,包括實體完整性、參照完整性和用戶定義的完整性。其中實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個不變性,應(yīng)該由關(guān)系數(shù)據(jù)庫系統(tǒng)自動支持。1、碼及其相關(guān)概念(1)超碼:在一個關(guān)系中,若一個屬性或?qū)傩越M的值能夠唯一標識關(guān)系中的一個元組。但是它所包含的屬性可能有多余的。如超碼:(學(xué)號,性別)(2)候選碼:在一個關(guān)系中,如果一個屬性或?qū)傩越M的值能夠唯一標識關(guān)系中的一個元組而不含有多余的屬性。如:學(xué)號(3)主碼:在一個關(guān)系中,候選碼可以有多個,被選定的這個候選碼稱為主碼。

2.4.2關(guān)系的完整性

(4)主屬性和非主(碼)屬性候選碼中的諸屬性稱為主屬性不包含在任何候選碼中的屬性稱為非主(碼)屬性

(5)全碼在最極端的情況下,關(guān)系模式的所有屬性是這個關(guān)系模式的候選碼,稱為全碼(All-Key)。

2.4.2關(guān)系的完整性

2、實體完整性實體完整性規(guī)則:若屬性A是基本關(guān)系R主碼中的屬性,則屬性A不能取“空值”。

所謂空值就是“不知道”或“無意義”的值例如,在關(guān)系“選修(學(xué)號,課程號,選修日期,成績)”中,(學(xué)號,課程號,選修日期)為主碼,則這三個屬性都不能取空值。

實體完整性規(guī)則說明:(1)實體完整性規(guī)則是針對基本關(guān)系而言的。(2)現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標識。在關(guān)系模型中以候選碼作為唯一性標識,如果主屬性取“空值”,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,與前面的假設(shè)矛盾。

2.4.2關(guān)系的完整性

3、參照完整性現(xiàn)實世界中的實體之間往往存在錯綜復(fù)雜的聯(lián)系,數(shù)據(jù)庫就是要描述這些聯(lián)系。首先,我們來看幾個例子:專業(yè)(專業(yè)號,專業(yè)名,創(chuàng)辦日期,所屬學(xué)院)學(xué)生(學(xué)號,姓名,性別,年齡,專業(yè)號,班長)課程(課程號,課程名,課程類型,學(xué)時,學(xué)分)選修(學(xué)號,課程號,選修日期,成績)顯然

(1)學(xué)生關(guān)系中的專業(yè)號必須是確實存在的專業(yè)的專業(yè)號

(2)選修關(guān)系中的學(xué)號必須是確實存在的學(xué)生的學(xué)號,

課程號必須是確實存在的課程的課程號

(3)學(xué)生關(guān)系中的班長必須是確實存在的學(xué)生的學(xué)號

2.4.2關(guān)系的完整性

外碼定義:設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是R的外碼。R稱為參照關(guān)系,S稱為被參照關(guān)系。

注意:R和S可以是同一個關(guān)系。例如:專業(yè)(專業(yè)號,專業(yè)名,創(chuàng)辦日期,所屬學(xué)院)學(xué)生(學(xué)號,姓名,性別,年齡,專業(yè)號,班長)課程(課程號,課程名,課程類型,學(xué)時,學(xué)分)選修(學(xué)號,課程號,選修日期,成績)參照完整性規(guī)則:若屬性F是關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng),則對于R中每個元組在F上的值必須為:或者取空值,或者等于S中某個元組的主碼值參照完整性規(guī)則的語義:例如對于學(xué)生關(guān)系中的專業(yè)號而言,專業(yè)號取空值表示該生還沒有確定專業(yè),如專業(yè)號取非空值表示該專業(yè)是專業(yè)關(guān)系中確實存在的。注意;①R和S可以是同一個關(guān)系②有時外碼不能取空值

藍色的屬性為外碼

2.4.2關(guān)系的完整性

4、用戶定義的完整性用戶定義的完整性是針對某一具體的關(guān)系數(shù)據(jù)庫的約束條件,它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如:工人的姓名不能取空值;工人的性別必須為男或女;男工人年齡的取值范圍在16~60之間;工人的工齡≤工人的年齡-16(16周歲是勞動法規(guī)定的最低就業(yè)年齡)。RDBMS應(yīng)提供定義和檢測這類完整性的機制,以便用統(tǒng)一的系統(tǒng)方法來處理,而不要由應(yīng)用程序自己來處理。

2.4.3關(guān)系操作的特點與分類

1、操作:1)插入、刪除、修改

2)查詢:選擇、投影、連接、除、并、差、交、笛卡爾積(黃色的是基本操作)2、特點:1)關(guān)系操作采用集合的操作方式,操作的對象和結(jié)果是集合

2)高度的非過程化3、分類:

關(guān)系代數(shù) ISBL

元組關(guān)系演算 ALPHA關(guān)系演算 域關(guān)系演算 QBE具有關(guān)系代數(shù)及關(guān)系演算雙重特點SQL語言

2.5關(guān)系代數(shù)任何一種運算,運算對象、運算符、運算結(jié)果是運算的三大要素。關(guān)系代數(shù)的運算對象是關(guān)系,運算結(jié)果也是關(guān)系,而運算符有以下四類:集合運算符:∪,∩,-,×專門的關(guān)系運算符:σ,π,∞,÷比較運算符:>,≥,<,≤,=,≠邏輯運算符:∧,∨,﹁注意:集合運算符和專門的關(guān)系運算符是主運算符,而比較運算符和邏輯運算符是用來輔助專門的關(guān)系運算符進行操作的。八種主運算符中,并、差、廣義笛卡爾積、選擇和投影五種運算是基本運算

2.5.1傳統(tǒng)的集合運算除廣義笛卡爾積外,參加運算的兩個關(guān)系R和S必須是相容的,即關(guān)系R和S具有相同的目n(屬性個數(shù)相同),且相應(yīng)的屬性取自同一個域。1、并

R∪S={t|t∈R∨t∈S}

2、差

R?S={t|t∈R∧t?S}

3、交

R∩S={t|t∈R∧t∈S}

R∩S=R?(R?S)或R∩S=S?(S?R)

4、廣義笛卡爾積

R×S={trts|tr∈R∧ts∈S}

ABC

ABC

DEb2za5x7cb8yd3y4aa5xb2z6d關(guān)系R關(guān)系S關(guān)系TABCb2zb8ya5xd3y

R∪SABCb2za5x

R∩SABCb8y

R-SABCDEa5x7ca5x4aa5x6dd3y7cd3y4ad3y6db2z7cb2z4ab2z6d

S×T

2.5.2專門的關(guān)系運算1、選擇(Selection)

:在水平方向選擇滿足條件的元組

σF(R)={t|t∈R∧F(t)='真'}

其中F為選擇條件,它是由常量、變量、函數(shù)、屬性名、算術(shù)運算符、比較運算符和邏輯運算符組成的邏輯表達式。2、投影(Projection)

:在垂直方向上選取所需要的屬性

πA(R)={t[A]|tR}其中A為R中屬性列

注意:選擇是從水平(行)方向上分割關(guān)系,而投影是從垂直(列)方向上分割關(guān)系A(chǔ)BCb2zb8ya5x關(guān)系R

ABCb2zσA='b'∧B=2(R)

ABb2b8a5πA,B(R)

AbaπA(R)

注意:投影以后要取消重復(fù)的元組

2.5.2專門的關(guān)系運算3、連接(Join)

:把兩個關(guān)系連接成一個關(guān)系

R∞S={trts|trR∧tsS∧tr[A]θts[B]} AθB

其中A和B分別為R和S上度數(shù)相等且是可比的屬性組。θ是比較運算符,它可以是>、≥、<、≤、=、≠中任何一種。

等值連接即上式中θ取=與笛卡爾積的關(guān)系:R∞

S=σAθB(R×S) AθB自然連接:R∞S={trts[B]|trR∧tsS∧tr[B]=ts[B]}與等值連接的區(qū)別:(1)被連接的兩關(guān)系在比較的分量上有相同的屬性名(2)結(jié)果關(guān)系中要去掉重復(fù)的屬性

2.5.2專門的關(guān)系運算連接運算舉例當(dāng)兩關(guān)系中相同的屬性有一個以上時,自然連接運算時必須要保證對應(yīng)屬性的分量的值都相等

ABC

AD

R.ABCS.ADa3xa2a3xc5b6yc5a3xd7d9zd7b6yd7關(guān)系R關(guān)系SR∞S

B<DR.ABCS.ADa3xa2d9zd7

等值連接

R∞S

R.A=S.A

ABCDa3x2d9z7

自然連接

R∞S

ABC

BCDEa1b1c2b1c2d1e1a2b2c1b3c1d2e2a3b3c3b3c3d3e3a4b3c5b2c2d4e4a5b4c1b3c1d5e5

關(guān)系R

關(guān)系SABCDEa1b1c2d1e1a3b3c3d3e3

自然連接

R∞S

2.5.2專門的關(guān)系運算4、除(Division)

給定一個關(guān)系R(X,Z),其中X和Z為屬性組。當(dāng)t[X]=x時,值x在R中的象集定義為:

Zx={t[Z]|t∈R∧t[X]=x}x1在R中的象集Zx1={(z1),(z2),(z3)}x2在R中的象集Zx2={(z1),(z2)}x3在R中的象集Zx3={(z2),(z3)}

給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。

R÷S={tr[X]|tr∈R∧Yx?πY(S)}

除運算同時從行和列的角度進行運算,適合包含“對于所有的,全部的”要求的查詢。結(jié)果:R中X屬性上的投影。X

Z

x1z1 x1z2 x1z3 x2z1 x2z2 x3z2 x3z3關(guān)系R

2.5.2專門的關(guān)系運算除運算舉例:屬性組X為單個屬性A屬性組X為多個屬性

關(guān)系的除運算不是關(guān)系代數(shù)的基本運算R(X,Y)÷S(Y,Z)=πX(R)-πX(πX(R)×πY(S)-R)

ABC

BCDa1b1c2b1c2d1a2b3c7b2c1d1a3b4c6b2c3d2a1b2c3關(guān)系Sa4b6c6a2b2c3A

a1b2c1a1

關(guān)系R

R÷SAEBC

BCDa1e1b1c2b1c2d1a2e2b1c2b2c3d2a3e1b4c6關(guān)系Sa1e2b2c3a4e4b6c6a2e2b2c3AEa1e1b2c1a2e2

關(guān)系R

R÷S

2.5.3擴展的關(guān)系代數(shù)運算介紹另外幾個關(guān)系代數(shù)運算,它們可以實現(xiàn)一些不能用關(guān)系代數(shù)的基本運算來表達的查詢(外連接除外),這些運算被稱為擴展的關(guān)系代數(shù)運算。

1、外連接(OuterJoin)

外連接運算也可以用關(guān)系代數(shù)基本運算的復(fù)合形式來表示

如:RS=(RS)∪(R–πX(RS))×{(null,…,null)}ABC

ADa3xa2b6yc5d9zd7關(guān)系R關(guān)系SABCD

ABCD

ABCDa3x2a3x2a3x2d9z7d9z7d9z7b6ynullcnullnull5b6ynullcnullnull5

左外連接右外連接全外連接

RSRSRS

2.5.3擴展的關(guān)系代數(shù)運算2、廣義投影(GeneralizedProjection)廣義投影允許在投影列表中使用算術(shù)運算和字符串運算等來對投影進行擴展。廣義投影運算形式為:

πF1,F2,…,Fn(E)

其中E是任意關(guān)系代數(shù)表達式,而Fi每一個都可以是表達式

ABG

A ax32 aX37ay20 aY25ay45 aY50ax58 aX63bx27 bX32by52 bY57cx34 cX39cx43 cX48cy40 cY45

關(guān)系RπA,upper(B),G+5(R)

結(jié)果關(guān)系中的第2列和第3列沒有名字,可以用“as列名”的形式給列命名,如:πA,upper(B)asupper_B,G+5asGadd5(R)

2.5.3擴展的關(guān)系代數(shù)運算3、聚集(Aggregation)

聚集運算允許對屬性值的集合使用聚集函數(shù)進行分類統(tǒng)計,形式為:

G1,G2,…,GngF1(A1),F2(A2),…,Fn(An)(E)

其中符號g是字母G的書寫體(讀作“書寫體G”)作為聚集運算符,E是任意關(guān)系代數(shù)表達式,而G1,G2,…,Gn是用于分組的一系列屬性,每個Fi是一個聚集函數(shù),每個Ai是一個屬性名。

一組結(jié)果中只有一個元組(g1,g2,…,gn,a1,a2,…,an),其中對每個i,ai是將聚集函數(shù)Fi作用于該組的屬性Ai上所得到的結(jié)果。作為聚集運算的特例,屬性列G1,G2,…,Gn可以是空的,在這種情況下,相當(dāng)于沒有分組,結(jié)果關(guān)系肯定只有一個元組(即一行)。

聚集函數(shù) 功能

count(屬性列) 統(tǒng)計一列中值的個數(shù)

sum(屬性列) 計算一列中值的總和

avg(屬性列) 計算一列中值的平均值

max(屬性列) 求一列中值的最大值

min(屬性列) 求一列中值的最小值

2.5.3擴展的關(guān)系代數(shù)運算聚集運算舉例有時,在計算聚集函數(shù)前必須去除重復(fù)值,這時仍然可以使用前面的函數(shù)名,但要用連字符將“distinct”附加在函數(shù)名后,如count-distinct。表達式gcount-distinct(A)(R)的結(jié)果關(guān)系是{(3)}ABGax32ay20ay45ax58bx27by52cx34cx43cy

溫馨提示

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

評論

0/150

提交評論