數(shù)據(jù)庫原理-第三章-關(guān)系運(yùn)算課件_第1頁
數(shù)據(jù)庫原理-第三章-關(guān)系運(yùn)算課件_第2頁
數(shù)據(jù)庫原理-第三章-關(guān)系運(yùn)算課件_第3頁
數(shù)據(jù)庫原理-第三章-關(guān)系運(yùn)算課件_第4頁
數(shù)據(jù)庫原理-第三章-關(guān)系運(yùn)算課件_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理第三章關(guān)系運(yùn)算1本章內(nèi)容概要關(guān)系數(shù)據(jù)模型關(guān)系數(shù)據(jù)模型定義關(guān)鍵碼和表之間的聯(lián)系關(guān)系模式關(guān)系模型的完整性規(guī)則關(guān)系運(yùn)算關(guān)系查詢語言和關(guān)系運(yùn)算關(guān)系代數(shù)運(yùn)算符的分類傳統(tǒng)的集合運(yùn)算專門的關(guān)系運(yùn)算擴(kuò)充的關(guān)系代數(shù)操作(自學(xué))關(guān)系代數(shù)表達(dá)式的優(yōu)化(自學(xué))關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是通過關(guān)系數(shù)據(jù)模型建立起來的數(shù)據(jù)庫系統(tǒng)。關(guān)系數(shù)據(jù)庫有一個(gè)嚴(yán)密的、能夠數(shù)學(xué)推導(dǎo)的、容易理解的、得到實(shí)踐證明正確的是關(guān)系數(shù)據(jù)模型。

基本概念:利用集合代數(shù)、謂詞演算等抽象的數(shù)學(xué)知識(shí),深刻而透徹地介紹了關(guān)系數(shù)據(jù)結(jié)構(gòu),關(guān)系數(shù)據(jù)庫操作及關(guān)系數(shù)據(jù)庫完整性這關(guān)系數(shù)據(jù)模型的三要素的概念。數(shù)據(jù)模型中的數(shù)據(jù)描述,組成的基本要素.3.1關(guān)系數(shù)據(jù)模型關(guān)系數(shù)據(jù)模型關(guān)系數(shù)據(jù)模型三要素--關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束。1、關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)——關(guān)系結(jié)構(gòu)

關(guān)系模型的數(shù)據(jù)結(jié)構(gòu):非常單一,在用戶看來關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但關(guān)系模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系。2、關(guān)系模型的數(shù)據(jù)操作——關(guān)系操作

關(guān)系模型給出了關(guān)系操作的能力,它利用基于數(shù)學(xué)的方法來表達(dá)關(guān)系操作,關(guān)系模型給出的關(guān)系操作往往不針對具體的RDBMS語言來表述。關(guān)系模型(續(xù))3、關(guān)系的三類完整性約束

關(guān)系模型提供了豐富的完整性控制機(jī)制,允許定義三類完整性:實(shí)體完整性、參照完整性和用戶自定義的完整性。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。用戶自定義的完整性是應(yīng)用領(lǐng)域特殊要求而需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束。3.1.1關(guān)系數(shù)據(jù)模型的定義⒈域(Domain)定義1:

域是一組具有相同數(shù)據(jù)類型的值的集合。又稱為值域(用D表示)。域中所包含的值的個(gè)數(shù)稱為域的基數(shù)(用m表示)。在關(guān)系中就是用域來表示屬性的取值范圍的。

例如,自然數(shù)、整數(shù)、實(shí)數(shù)、長度小于10字節(jié)的字符串集合、1-16之間的整數(shù),它們都是域。

又如,D1={張三,李四}

D1的基數(shù)m1為2

D2={男,女}

D2的基數(shù)m2為2

D3={19,20,21}

D3的基數(shù)m3為3⒉笛卡爾積(CartesianProduct)定義2:給定一組域D1、D2、…、Dn(這些域中可以包含相同的元素,即可以完全不同(也可以部分或全部相同),D1、D2、…、Dn的笛卡爾積為:

D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}

由定義可以看出,笛卡爾積也是一個(gè)集合。其中:

(1)其中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組(n-tuple),或簡稱為元組(Tuple)。但元組不是di的集合,元組由di按序排列而成。

(2)元素中的每一個(gè)值di叫作一個(gè)分量(Component)。分量來自相應(yīng)的域(di∈Di)。(3)若Di(i=1,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)為n個(gè)域的基數(shù)累乘之積(4)笛卡爾積可表示為一個(gè)二維表。表中的每行對應(yīng)一個(gè)元組,表中的每列對應(yīng)一個(gè)域。如上面例子中D1與D2的笛卡爾積:

D1×D2={(張三,男),(張三,女),(李四,男),(李四,女)}可以表示成二維表,如下表2.1所示:姓名性別張三男張三女李四男李四女表3-3笛卡爾積笛卡爾積是個(gè)二維表3、關(guān)系(Relation)關(guān)系是屬性值域的笛卡爾積中有意義的元組的集合定義3:D1×D2×…×Dn的任何一個(gè)子集叫作在域D1,D2,…Dn上的關(guān)系,用R(D1,D2,…Dn)表示。如上例中D1×D2笛卡爾積的子集可以構(gòu)成關(guān)系T1,如下表所示:姓名性別張三男李四女笛卡爾積的子集關(guān)系T1笛卡爾積的二維表關(guān)系T1的二維表表現(xiàn)形式關(guān)系(續(xù))

(1)

R表示關(guān)系的名字,n是關(guān)系的目或度(Degree)。

當(dāng)n=1時(shí),稱為單元關(guān)系。當(dāng)n=2時(shí),稱為二元關(guān)系。

……

當(dāng)n=m時(shí),稱為m元關(guān)系。(2)關(guān)系中的每個(gè)元素是關(guān)系中的元組。

通常用t表示。(3)關(guān)系是笛卡爾積的子集,所以關(guān)系也是一個(gè)二維表。

表的每行對應(yīng)一個(gè)元組,表的每列對應(yīng)一個(gè)域。由于域可以相同,為了加以區(qū)分,必須對每列起一個(gè)唯一的名字,稱為屬性(Attribute)。n目關(guān)系必有n個(gè)屬性。關(guān)系(續(xù)2)對關(guān)系作如下限定和擴(kuò)充:

⑴無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中是無意義的。因此限定關(guān)系數(shù)據(jù)模型中的關(guān)系必須是有限集合。

⑵通過為關(guān)系的每個(gè)列附加一個(gè)屬性名的方法取消關(guān)系元組的有序性。即(d1,d2,…,dj,di…,dn)=(d1,d2,…,di,dj,…,dn)(i,j=1,2…,n)基本關(guān)系具有以下六條性質(zhì):

①列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。②不同的列可出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬性要給予不同的屬性名。關(guān)系(續(xù)3)

③列的順序無所謂,即列的次序可以任意交換。④任意兩個(gè)元組不能完全相同。⑤行的順序無所謂,即行的次序可以任意交換。⑥分量必須取原子值,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。如下兩圖:

課程關(guān)系C(不規(guī)范的關(guān)系)

課程關(guān)系C(規(guī)范的關(guān)系)課程名學(xué)時(shí)理論實(shí)驗(yàn)數(shù)據(jù)庫5220C語言4520數(shù)據(jù)結(jié)構(gòu)5530課程名理論學(xué)時(shí)實(shí)驗(yàn)學(xué)時(shí)數(shù)據(jù)庫5220C語言4520數(shù)據(jù)結(jié)構(gòu)55303.1.2關(guān)鍵碼和表之間的關(guān)系插入鍵的概念:鍵(Key)--關(guān)鍵碼1、超鍵(SuperKey)在一個(gè)關(guān)系中能唯一標(biāo)識(shí)元組的屬性集合例如:屬性集(教師、系別)2、候選鍵(CandidateKey)若關(guān)系中某一屬性組的值能唯一地表示一個(gè)元組,則稱該屬性組為候選鍵。例如:教師編號、身份證號3、主鍵(PrimaryKey)在候選鍵中選中一個(gè)作為主鍵,主鍵帶有主屬性。例如:可選教師號、身份證號均可。4、合成鍵(CompositeKey)由多個(gè)屬性組成的候選鍵。

5、外鍵(ForeignKey)若關(guān)系包含有另一個(gè)關(guān)系R所對應(yīng)的屬性F,則F為R的外鍵,或當(dāng)關(guān)系R1與R2建立聯(lián)系時(shí),R1的屬性A1不是R1的候選鍵,而是R2的候選鍵,則稱A1為R1的外鍵。例如教師編號、系別編號、姓名、年齡、省份證號…例題:設(shè)教學(xué)管理數(shù)據(jù)庫中有5個(gè)關(guān)系如下:

學(xué)生S(SNO,SNAME,AGE,SEX,BPLACE)

課程C(CNO,CNAME,CREDIT)

教師T(TNO,TNAME,AGE,PS)

選課SE(SNO,CNO,GRADE)

任課TE(CNO,TNO,SNUM)

[例1]找出S,SE關(guān)系中的各種關(guān)鍵字。[例2]設(shè)關(guān)系S中有兩個(gè)超鍵BC、C,其中哪個(gè)是候選健、主鍵、復(fù)合鍵。Home關(guān)鍵碼和表之間的關(guān)系(續(xù))3.1.3關(guān)系模式

在數(shù)據(jù)庫中要區(qū)分型和值兩方面。

關(guān)系數(shù)據(jù)庫中,關(guān)系模式是型,關(guān)系是值。關(guān)系模式是對關(guān)系的描述,那么一個(gè)關(guān)系需要描述哪些方面?首先應(yīng)該知道,關(guān)系實(shí)際上是一張二維表,

表的每一行為一個(gè)元組,每一列為一個(gè)屬性。 其次一個(gè)關(guān)系通常是由賦予它的元組語義來確定的。

元組語義實(shí)質(zhì)上是一個(gè)n目謂詞(n是屬性集中屬性的個(gè)數(shù))。關(guān)系模式的關(guān)系在不同的時(shí)刻會(huì)隨著現(xiàn)實(shí)世界的不斷地變化會(huì)有所變化。

現(xiàn)實(shí)世界的許多已有事實(shí)限定了關(guān)系模式,因此所有可能的關(guān)系必須滿足一定的完整性約束條件。關(guān)系模式的形式化表示

一個(gè)關(guān)系模式應(yīng)當(dāng)是一個(gè)5元組。關(guān)系模式(續(xù))定義4:關(guān)系的描述稱為關(guān)系模式(RelationSchema)一個(gè)關(guān)系模式應(yīng)當(dāng)是一個(gè)五元組。

它形式化地表示為:R(U,D,dom,F)。

其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域的集合,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。

關(guān)系模式通常簡記為:R(A1,A2,…,An)或R(U)。其中A1,A2,…,An為屬性名。而域名及屬性向域的映象常常直接說明為屬性的類型、長度。關(guān)系實(shí)際上就是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。

就是說,關(guān)系模式是型,關(guān)系是它的值。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。但在實(shí)際當(dāng)中,常常把關(guān)系模式和關(guān)系統(tǒng)稱為關(guān)系。關(guān)系數(shù)據(jù)庫在一個(gè)給定的現(xiàn)實(shí)世界領(lǐng)域中,所有實(shí)體及實(shí)體之間的聯(lián)系關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系都是用關(guān)系來表示。例如學(xué)生實(shí)體、課程實(shí)體、學(xué)生與課程之間的多對多選課聯(lián)系都可以分別用一個(gè)關(guān)系(或二維表)來表示。關(guān)系數(shù)據(jù)庫也分成型和值。型稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,是關(guān)系模式的集合。值稱為關(guān)系數(shù)據(jù)庫,是關(guān)系的集合。關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫通常統(tǒng)稱為關(guān)系數(shù)據(jù)庫。3.1.4關(guān)系模型的完整性規(guī)則一、實(shí)體完整性規(guī)則(EntityIntegrity)規(guī)則3.14:

若屬性組(或?qū)傩裕㎏是基本關(guān)系R的主碼(或稱主關(guān)鍵字),則所有元組K的取值唯一,并且K中屬性不能全部或部分取空值。二、參照完整性(Referentialintegrity)定義5:設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼(Foreignkey),并稱基本關(guān)系R為參照關(guān)系(Referencingrelation),基本關(guān)系S為被參照關(guān)系(Referencedrelation)或目標(biāo)關(guān)系(Targetrelation)。關(guān)系R和S可能是相同的關(guān)系,即自身參照。關(guān)系模型的完整性規(guī)則(續(xù))規(guī)則3.15參照完整性規(guī)則:

若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S可能是相同的關(guān)系),則對于R中每個(gè)元組在F上的值必須為以下兩種情況,或者取空值(F的每個(gè)屬性值均為空值);或者等于S中某個(gè)元組的主碼值。 例子見教材P37.三、用戶定義的完整性(User-definedintegrity)

用戶定義的完整性就是針對某一具體應(yīng)用的關(guān)系數(shù)據(jù)庫所制定的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如:非空、》0、限定的值域范圍等等。

完整性約束

數(shù)據(jù)做更新操作必須遵守的規(guī)則數(shù)據(jù)做更新操作必須遵守如下4類完整性約束。實(shí)體(EntityIntegrity)約束:主鍵值必須唯一,且不能為空值。參照(ReferentialIntegrity)約束:關(guān)系R1與R2關(guān)聯(lián)時(shí),R2中的外鍵值依賴于R1中的主鍵值。域(DomainIntegrity)約束:對屬性的取值范圍或是否為空值(NULL)。用戶自定義約束:用戶自定義的默認(rèn)值等。3.2關(guān)系運(yùn)算關(guān)系運(yùn)算就是指研究關(guān)系操作的問題關(guān)系查詢語言和關(guān)系運(yùn)算關(guān)系代數(shù)運(yùn)算符及其分類傳統(tǒng)的集合運(yùn)算專門的關(guān)系運(yùn)算關(guān)系代數(shù)表達(dá)式應(yīng)用實(shí)例擴(kuò)充的關(guān)系代數(shù)操作關(guān)系代數(shù)關(guān)系代數(shù)是一種抽象的查詢語言。

用對關(guān)系的運(yùn)算來表達(dá)關(guān)系操作,關(guān)系代數(shù)是研究關(guān)系數(shù)據(jù)操作語言的一種較好的數(shù)學(xué)工具。關(guān)系代數(shù)是E.F.Codd1970年首次提出的,后面一節(jié)的關(guān)系演算是E.F.Codd1972年首次提出的,

1979年E.F.Codd對關(guān)系模型作了擴(kuò)展,討論了關(guān)系代數(shù)中加入空值和外連接的問題。關(guān)系代數(shù)以一個(gè)或兩個(gè)關(guān)系為輸入(或稱為操作對象),產(chǎn)生一個(gè)新的關(guān)系作為其操作結(jié)果。即其運(yùn)算對象是關(guān)系,運(yùn)算結(jié)果亦為關(guān)系。關(guān)系代數(shù)用到的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)比較符和邏輯運(yùn)算符,如表3.6所示。關(guān)系代數(shù)的運(yùn)算符關(guān)系代數(shù)的運(yùn)算符運(yùn)算符含義運(yùn)算符含義集合運(yùn)算符∪∩-×并交差笛卡爾積比較運(yùn)算符>≥<≤=≠大于大于等于小于小于等于等于不等于專門的關(guān)系運(yùn)算符×σ∏÷廣義笛卡爾積選取投影除連接邏輯運(yùn)算符∧∨?與或非關(guān)系代數(shù)運(yùn)算符分類說明比較運(yùn)算符和邏輯運(yùn)算符是用來輔助專門的關(guān)系運(yùn)算符進(jìn)行操作的,所以關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同主要分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算兩類。1.傳統(tǒng)的集合運(yùn)算:包括并、交、差、廣義笛卡爾積四種運(yùn)算。2.專門的關(guān)系運(yùn)算:包括選擇、投影、連接、除等。其中傳統(tǒng)的集合運(yùn)算將關(guān)系看成元組的集合,其運(yùn)算是從關(guān)系的“水平”方向即行的角度來進(jìn)行。而專門的關(guān)系運(yùn)算不僅涉及到行而且涉及到列。3.2.3傳統(tǒng)的集合運(yùn)算

傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,包括并、交、差、廣義笛卡爾積四種運(yùn)算。設(shè)關(guān)系R和關(guān)系S具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性),且相應(yīng)的屬性取自同一個(gè)域,則可定義并、差、交運(yùn)算如下:⒈合并(Union)設(shè)關(guān)系R和關(guān)系S具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的所有元組組成。記作:

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

其結(jié)果關(guān)系仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成。關(guān)系的并操作對應(yīng)于關(guān)系的插入或添加記錄的操作,俗稱“+”操作,是關(guān)系代數(shù)的基本操作。合并(Union)例子編號書名數(shù)量101C語言19102數(shù)據(jù)庫20105操作系統(tǒng)15108匯編語言10編號書名數(shù)量12C語言1913高等數(shù)學(xué)2018外語(四)10編號書名數(shù)量101C語言19102數(shù)據(jù)庫20105操作系統(tǒng)15108匯編語言1012C語言1913高等數(shù)學(xué)2018外語(四)10合并運(yùn)算結(jié)果(C)進(jìn)貨關(guān)系(B)庫存關(guān)系(A)傳統(tǒng)的集合運(yùn)算(續(xù))⒉求差(Difference)

設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成。記作:

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

其結(jié)果關(guān)系仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成。關(guān)系的差操作對應(yīng)于關(guān)系的刪除記錄的操作,俗稱“-”操作,是關(guān)系代數(shù)的基本操作。⒊相交(Intersection)

其結(jié)果關(guān)系仍為n目關(guān)系,由既屬于R又屬于S的元組組成。關(guān)系的交可以用差來表示,

即R∩S=R-(R-S)。

關(guān)系的交操作對應(yīng)于尋找兩關(guān)系共有記錄的操作,是一種關(guān)系查詢操作。關(guān)系的交操作能用差操作來代替,為此不是關(guān)系代數(shù)的基本操作。

合并與相交運(yùn)算都滿足結(jié)合律。但求差運(yùn)算不滿足結(jié)合律。傳統(tǒng)的集合運(yùn)算(續(xù)2)⒋廣義笛卡爾積(ExtendedCartesianProduct)廣義笛卡爾積不要求參加運(yùn)算的兩個(gè)關(guān)系具有相同的目(自然也就不要求來自同樣的域)。

設(shè)R為n目關(guān)系,S為m目關(guān)系,則R和S的廣義笛卡爾積為:R×S={trts|tr∈R∧ts∈S}

tr

ts表示由兩個(gè)元組tr和ts前后有序連接而成的一個(gè)元組。相當(dāng)于是一個(gè)組合的關(guān)系。例子見教材P42傳統(tǒng)的集合運(yùn)算(續(xù)3)任取元組tr和ts,當(dāng)且僅當(dāng)tr屬于R且ts屬于S時(shí),tr和ts的有序連接即為R×S的一個(gè)元組。R和S的廣義笛卡爾積是一個(gè)(n+m)目的關(guān)系。其中任何一個(gè)元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。若R有K1個(gè)元組,S有K2個(gè)元組,則R×S有K1×K2個(gè)元組。實(shí)際操作時(shí),可從R的第一個(gè)元組開始,依次與S的每一個(gè)元組組合,然后,對R的下一個(gè)元組進(jìn)行同樣的操作,直至R的最后一個(gè)元組也進(jìn)行完同樣的操作為止,即可得到R×S的全部元組。傳統(tǒng)的集合運(yùn)算(續(xù)4)下列給出了兩個(gè)關(guān)系R和S,以及它們進(jìn)行并、差、交和笛卡爾積后的結(jié)果關(guān)系。傳統(tǒng)的集合運(yùn)算(續(xù)5)3.2.4專門的關(guān)系運(yùn)算上節(jié)中所講的傳統(tǒng)集合運(yùn)算,只是從行的角度進(jìn)行,而要靈活地實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫的多樣查詢操作,則須引入專門的關(guān)系運(yùn)算。專門的關(guān)系運(yùn)算包括選擇、投影、連接、除等。為了敘述方便,我們先引入幾個(gè)記號。⒈分量:

設(shè)關(guān)系模式為R(A1,A2,…,An)。它的一個(gè)關(guān)系設(shè)為R。t∈R表示t是R的一個(gè)元組。t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個(gè)分量。專門的關(guān)系運(yùn)算(續(xù))⒉屬性列或域列:

若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}后剩余的屬性組。⒊元組的連接:

R為n目關(guān)系,S為m目關(guān)系。tr∈R,ts∈S,tr

ts稱為元組的連接(Concatenation)。它是一個(gè)(n+m)列的元組,前n個(gè)分量為R中的一個(gè)n元組,后m個(gè)分量為S中的一個(gè)m元組。

⒋象集:

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

Zx

={t[Z]|t∈R,t[X]=x}關(guān)系模型的5種基本數(shù)據(jù)操作投影:在一個(gè)關(guān)系內(nèi)選擇屬性。選擇:在一個(gè)關(guān)系內(nèi)選擇元組。連接:是兩個(gè)關(guān)系的合并。插入:在一個(gè)關(guān)系內(nèi)插入新元組。刪除:在一個(gè)關(guān)系內(nèi)刪除元組。專門的關(guān)系運(yùn)算(續(xù)2)專門的關(guān)系運(yùn)算(續(xù)2)一、選擇(Selection)選擇又稱為限制(Restriction)。它是在關(guān)系R中選擇滿足給定條件的諸元組,記作:

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

其中F表示選擇條件,它是一個(gè)邏輯表達(dá)式,取邏輯值“真”或“假”。邏輯表達(dá)式F的基本形式為:

X1θY1[φX2θY2…]專門的關(guān)系運(yùn)算(續(xù)3)

其中θ表示比較運(yùn)算符,它可以是>、≥、<、≤、=或≠。

X1、Y1等是屬性名或常量或簡單函數(shù)。

屬性名也可以用它的序號來代替(如1,2,…)。φ表示邏輯運(yùn)算符,它可以是?、∧或∨。[]表示任選項(xiàng),即[]中的部分可以要也可以不要,…表示上述格式可以重復(fù)下去。例如:設(shè)有一個(gè)學(xué)生-課程關(guān)系數(shù)據(jù)庫,包括學(xué)生關(guān)系Student(說明:CS表示計(jì)算機(jī)系、IS表示信息系、MA表示數(shù)學(xué)系)、課程關(guān)系Course和選修關(guān)系SC。下面通過一些例子將對這三個(gè)關(guān)系進(jìn)行運(yùn)算。

專門的關(guān)系運(yùn)算(續(xù)4)[例1]查詢信息系(CS系)全體學(xué)生。

σ’cs’(Student)[例2]查詢年齡大于19歲的學(xué)生。

σ年齡>=‘19’(Student)二投影(Projection)關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記作:

∏(R)={t[A]|t∈R}

其中A為R中的屬性列。關(guān)系的投影操作對應(yīng)于關(guān)系列的角度進(jìn)行的選取操作(縱向選?。?,也是關(guān)系查詢操作的重要成員之一,是關(guān)系代數(shù)的基本操作。2.4.2專門的關(guān)系運(yùn)算(續(xù)5)[例3]

查詢選修關(guān)系SC在學(xué)號和課程號兩個(gè)屬性上的投影。∏(SC)或∏(SC)[例4]查詢學(xué)生關(guān)系Student中都有哪些系,即是學(xué)生關(guān)系Student在所系屬性上的投影操作。∏(Student)三連接(Join)

連接也稱θ連接,是從兩個(gè)關(guān)系的廣義笛卡爾積中選取滿足某規(guī)定條件的全體元組,形成一個(gè)新的關(guān)系,記為專門的關(guān)系運(yùn)算(續(xù)6)

其中,A是R的屬性組(A1,A2,…,Ak),B是S的屬性組(B1,B2,…,BK)。AθB的實(shí)際形式為

Ai和Bi(i=1,2,…,k)不一定同名,但必須可比。

θi(i=1,2,…,k)∈{>,<,≤,≥,=,≠}。連接運(yùn)算中有兩種最為重要也是最為常用的連接,一種是等值連接(equijoin),另一種是自然連接(Naturaljoin)。專門的關(guān)系運(yùn)算(續(xù)7)

等值連接(equijoin)屬于連接,當(dāng)一個(gè)連接表達(dá)式中,所有的θi都是“=”符時(shí),則稱此連接為等值連接。等值連接是較常用的連接。自然連接(Naturaljoin)是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。即若R和S具有相同的屬性組B,關(guān)系的各種連接,實(shí)際上是在關(guān)系的廣義笛卡爾積的基礎(chǔ)上再組合選擇或投影操作復(fù)合而成的一種查詢操作

專門的關(guān)系運(yùn)算(續(xù)8)四、刪除(Division)

給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:

溫馨提示

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

最新文檔

評論

0/150

提交評論