第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)_第1頁
第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)_第2頁
第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)_第3頁
第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)_第4頁
第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)n 掌握關(guān)系數(shù)據(jù)庫的一些基本概念;掌握關(guān)系數(shù)據(jù)庫的一些基本概念;n 掌握常用的關(guān)系代數(shù)運算符及其形式化表示;掌握常用的關(guān)系代數(shù)運算符及其形式化表示;n 能夠利用用關(guān)系代數(shù)表達(dá)式表達(dá)一般的查詢請求;能夠利用用關(guān)系代數(shù)表達(dá)式表達(dá)一般的查詢請求;n 了解關(guān)系代數(shù)表達(dá)式的效率及查詢優(yōu)化的一般方法。了解關(guān)系代數(shù)表達(dá)式的效率及查詢優(yōu)化的一般方法。第第2章章 關(guān)系數(shù)據(jù)庫基礎(chǔ)關(guān)系數(shù)據(jù)庫基礎(chǔ) 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.2 關(guān)系代數(shù)關(guān)系代數(shù)2.3 高效的關(guān)系代數(shù)表達(dá)式與查詢優(yōu)化高效的關(guān)系代數(shù)表達(dá)式與查詢優(yōu)化第第2章章 關(guān)系數(shù)據(jù)庫基礎(chǔ)關(guān)系數(shù)據(jù)庫基礎(chǔ) 2.1 關(guān)系數(shù)據(jù)庫的基

2、本概念關(guān)系數(shù)據(jù)庫的基本概念2.2 關(guān)系代數(shù)關(guān)系代數(shù)2.3 高效的關(guān)系代數(shù)表達(dá)式與查詢優(yōu)化高效的關(guān)系代數(shù)表達(dá)式與查詢優(yōu)化2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念n 關(guān)系數(shù)據(jù)庫采用關(guān)系模型作為數(shù)據(jù)的組織方式,關(guān)關(guān)系數(shù)據(jù)庫采用關(guān)系模型作為數(shù)據(jù)的組織方式,關(guān)系簡單來看,就是一張表格。系簡單來看,就是一張表格。n 關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)為:集合論關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)為:集合論 。n 關(guān)系模型的三要素:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合關(guān)系模型的三要素:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成和關(guān)系完整性約束三部分組成 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形

3、式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義在關(guān)系模型中,無論是實體還是實體之間的聯(lián)系均由單一的結(jié)構(gòu)類型即關(guān)系(表)來表示。姓名姓名性別性別年齡年齡王平王平男男19李偉李偉男男20旺達(dá)旺達(dá)女女19李靜李靜女女20上元上元男男19下下下下男男20微微微微女女19哈哈哈哈女女20域是一組具有相同數(shù)據(jù)類型的值的集合。域是一組具有相同數(shù)據(jù)類型的值的集合。域中所包含的值的個域中所包含的值的個數(shù)稱為域的基數(shù)數(shù)稱為域的基數(shù) 。 例如:例如: 性別域:性別域:男男,女女,基數(shù)為,基數(shù)為2 姓名域:姓名域:王平,李麗,張曉剛王平,李麗,張曉剛; 成績域:成績域:【0-100】2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念

4、2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義域(域( Domain )給定一組域給定一組域D1,D2,Dn,這些域中可以有相同,這些域中可以有相同的部分,則笛卡兒積表示為:的部分,則笛卡兒積表示為: D1D2Dn = (d1,d2,dn)di Di,i1,2,n. 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義笛卡兒積(笛卡兒積(Cartesian Product)例如給出三個域:例如給出三個域:D1 = 姓名姓名 = 王平,李麗王平,李麗; D2 = 性別性別 = 男,男,女女; D3 = 年齡年齡 = 19,20

5、. 則則D1,D2,D3的笛卡兒積為的笛卡兒積為D1D2D3 姓名姓名性別性別年齡年齡王平王平男男19王平王平男男20王平王平女女19王平王平女女20李麗李麗男男19李麗李麗男男20李麗李麗女女19李麗李麗女女202.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義笛卡兒積(笛卡兒積(Cartesian Product)n 元組元組(Tuple)u笛卡爾積中每一行叫作一個笛卡爾積中每一行叫作一個n元組元組(n-tuple)或簡稱)或簡稱元組元組(Tuple)u(王平,男,王平,男,20)、(王平,女,王平,女,20)等都是元組等都是元組

6、n 分量分量(Component)u笛卡爾積元笛卡爾積元組組(d1,d2,dn)中的每一個值)中的每一個值di叫作一個叫作一個分量分量u王平、男、王平、男、 20 、李麗等都是分量、李麗等都是分量 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義笛卡兒積(笛卡兒積(Cartesian Product)D1 D2 Dn的子集稱作在域的子集稱作在域D1,D2,Dn上的關(guān)上的關(guān)系,表示為:系,表示為: R(D1,D2,Dn).這里:這里:R表示關(guān)系的名字,表示關(guān)系的名字,n是關(guān)系的目或度,即屬性的個數(shù)。是關(guān)系的目或度,即屬性的個數(shù)。當(dāng)當(dāng)n=

7、1時,稱該關(guān)系為單元關(guān)系(時,稱該關(guān)系為單元關(guān)系(Unary relation) 或或一元關(guān)系一元關(guān)系 當(dāng)當(dāng)n=2時,稱該關(guān)系為時,稱該關(guān)系為二元關(guān)系二元關(guān)系(Binary relation)2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系(關(guān)系(Relation)姓名姓名性別性別年齡年齡王平王平男男20李麗李麗女女20關(guān)系也是一個二維表,表的每行對應(yīng)一個元關(guān)系也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域組,表的每列對應(yīng)一個域2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)

8、構(gòu)的形式化定義關(guān)系(關(guān)系(Relation)例如:例如: 從從D1D2D3中取出有用的元組,所構(gòu)造的學(xué)中取出有用的元組,所構(gòu)造的學(xué) 生關(guān)系如表所示生關(guān)系如表所示2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系(關(guān)系(Relation)基本關(guān)系具有以下六條性質(zhì):基本關(guān)系具有以下六條性質(zhì): 列是同質(zhì)的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域列是同質(zhì)的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。 不同的列可出自同一個域,其中每一列稱為一個屬性,不同的屬性不同的列可出自同一個域,其中每一列稱為一個屬性,不同的屬性要給予不同的

9、屬性名。要給予不同的屬性名。 列的順序無所謂,即列的次序可以任意交換。列的順序無所謂,即列的次序可以任意交換。 任意兩個元組不能完全相同,在關(guān)系中能唯一地標(biāo)識一個元組的屬任意兩個元組不能完全相同,在關(guān)系中能唯一地標(biāo)識一個元組的屬性或?qū)傩越M稱為關(guān)系的碼(性或?qū)傩越M稱為關(guān)系的碼(Key)。)。 行的順序無所謂,即行的次序可以任意交換。行的順序無所謂,即行的次序可以任意交換。分量必須取原子值,即每一個分量都必須是不可分的數(shù)據(jù)項。分量必須取原子值,即每一個分量都必須是不可分的數(shù)據(jù)項。 n 關(guān)系模式關(guān)系模式是關(guān)系的型,是對關(guān)系的是關(guān)系的型,是對關(guān)系的描述描述, 是是靜態(tài)的靜態(tài)的、穩(wěn)定的穩(wěn)定的n 關(guān)系關(guān)系

10、是關(guān)系模式的是關(guān)系模式的值值,是關(guān)系模式在某一時刻的狀是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容態(tài)或內(nèi)容,是是動態(tài)的動態(tài)的、隨時間不斷變化的、隨時間不斷變化的2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系模式關(guān)系模式關(guān)系模式的定義關(guān)系模式的定義:形式化地表示為:形式化地表示為:R(U,D,Dom,F(xiàn))其中:其中:R為關(guān)系名,它是關(guān)系的形式化表示;為關(guān)系名,它是關(guān)系的形式化表示;U為組成該關(guān)系為組成該關(guān)系的屬性集合;的屬性集合;D為屬性組為屬性組U中屬性所來自的域;中屬性所來自的域;Dom為屬性向為屬性向域的映象的集合;域的映象的集合;F為

11、屬性間數(shù)據(jù)的依賴關(guān)系集合。為屬性間數(shù)據(jù)的依賴關(guān)系集合。關(guān)系模式通??梢院唵斡洖椋宏P(guān)系模式通常可以簡單記為:R(U)或)或 R(A1,A2,An).其中:其中:R為關(guān)系名,為關(guān)系名,A1,A2,An為屬性名。為屬性名。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系模式關(guān)系模式n 在關(guān)系模式中能唯一標(biāo)識一個元組的屬性或?qū)傩越M在關(guān)系模式中能唯一標(biāo)識一個元組的屬性或?qū)傩越M稱為關(guān)系的稱為關(guān)系的超碼超碼(Super Key)。n 在關(guān)系模式中能唯一標(biāo)識一個元組的最小屬性或?qū)僭陉P(guān)系模式中能唯一標(biāo)識一個元組的最小屬性或?qū)傩越M稱為關(guān)系的性組稱為關(guān)

12、系的候選碼候選碼(Candidate Key),即候選碼,即候選碼是最小的超碼,其任何真子集無法唯一標(biāo)識元組。是最小的超碼,其任何真子集無法唯一標(biāo)識元組。n 若一個關(guān)系有多個候選碼,則選定其中一個有代表若一個關(guān)系有多個候選碼,則選定其中一個有代表性的用來標(biāo)識關(guān)系,稱其性的用來標(biāo)識關(guān)系,稱其為主碼為主碼(Primary Key)。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系的碼關(guān)系的碼(Key)定義:某一應(yīng)用領(lǐng)域中,定義:某一應(yīng)用領(lǐng)域中,所有所有實體集及實體之間實體集及實體之間聯(lián)系所形成聯(lián)系所形成關(guān)系的集合關(guān)系的集合就構(gòu)成了一個

13、關(guān)系數(shù)據(jù)庫。就構(gòu)成了一個關(guān)系數(shù)據(jù)庫。n關(guān)系數(shù)據(jù)庫的型關(guān)系數(shù)據(jù)庫的型: 即關(guān)系數(shù)據(jù)庫模式即關(guān)系數(shù)據(jù)庫模式 如何描述關(guān)系數(shù)據(jù)庫:通過若干關(guān)系模式的定義進(jìn)行描述如何描述關(guān)系數(shù)據(jù)庫:通過若干關(guān)系模式的定義進(jìn)行描述.n關(guān)系數(shù)據(jù)庫的值關(guān)系數(shù)據(jù)庫的值: 關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,簡稱為關(guān)系數(shù)據(jù)庫關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,簡稱為關(guān)系數(shù)據(jù)庫 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念例如:學(xué)生選課管理系統(tǒng)XSGL的關(guān)系模式為:1.S(SNO,SNAME,AGE

14、,SEX)2.C(CNO,CNAME,CREDIT, TEACHER)3. SC(SNO,CNO,GRADE)n 關(guān)系操作包括三類:u數(shù)據(jù)查詢: 指數(shù)據(jù)檢索、統(tǒng)計、排序、分組以及用戶對信息的需求等功能;u數(shù)據(jù)維護: 指數(shù)據(jù)增加、刪除、修改等數(shù)據(jù)自身更新的功能;u數(shù)據(jù)控制: 指為了保證數(shù)據(jù)的安全性和完整性而采用的數(shù)據(jù)存取控制及并發(fā)控制等功能。 關(guān)系操作的數(shù)據(jù)查詢和數(shù)據(jù)維護功能使用關(guān)系代數(shù)中的選擇關(guān)系操作的數(shù)據(jù)查詢和數(shù)據(jù)維護功能使用關(guān)系代數(shù)中的選擇(Select)、投影投影(Project)、連接(、連接(Join)、除)、除(Divide)、并()、并(Union)、交)、交(Intersect

15、ion)、差()、差(Difference)以及廣義笛卡兒積)以及廣義笛卡兒積( Extended Cartesian Product)8種操作實現(xiàn)。種操作實現(xiàn)。 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.2 關(guān)系操作關(guān)系操作對關(guān)系進(jìn)行操作時可使用關(guān)系數(shù)據(jù)操作語言。關(guān)對關(guān)系進(jìn)行操作時可使用關(guān)系數(shù)據(jù)操作語言。關(guān)系數(shù)據(jù)操作語言可分為兩大類,一類是抽象的查詢語言,系數(shù)據(jù)操作語言可分為兩大類,一類是抽象的查詢語言,如關(guān)系代數(shù)、關(guān)系演算等,其中關(guān)系代數(shù)用關(guān)系的運算如關(guān)系代數(shù)、關(guān)系演算等,其中關(guān)系代數(shù)用關(guān)系的運算即元組的集合運算來表達(dá)查詢請求,關(guān)系演算用謂詞來即元組的集合運算來表達(dá)查詢請求,

16、關(guān)系演算用謂詞來表達(dá)查詢請求;另一類是關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言表達(dá)查詢請求;另一類是關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL(Structured Query Language,結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言),是一種高度非過程化的語言。是一種高度非過程化的語言。SQL不但具有豐富的查詢不但具有豐富的查詢功能,而且具有數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能,功能,而且具有數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能,是集查詢、數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)控制于一體的關(guān)是集查詢、數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)控制于一體的關(guān)系數(shù)據(jù)語言。系數(shù)據(jù)語言。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.2 關(guān)系操作關(guān)系操作n 關(guān)系模型的完整性是指對

17、關(guān)系的某種約束條件,以保關(guān)系模型的完整性是指對關(guān)系的某種約束條件,以保證只有正確的數(shù)據(jù)才能存入數(shù)據(jù)庫。證只有正確的數(shù)據(jù)才能存入數(shù)據(jù)庫。 n 關(guān)系的完整性分為關(guān)系的完整性分為三類三類: u實體完整性實體完整性u參照完整性參照完整性u用戶定義的完整性用戶定義的完整性其中:其中:實體完整性和參照完整性是實體完整性和參照完整性是關(guān)系模型必須關(guān)系模型必須滿足的完整性約束條件,稱為關(guān)系的兩個滿足的完整性約束條件,稱為關(guān)系的兩個不變性,應(yīng)該由不變性,應(yīng)該由關(guān)系系統(tǒng)自動支持關(guān)系系統(tǒng)自動支持。用戶定義的完整性:由用戶根據(jù)應(yīng)用領(lǐng)域用戶定義的完整性:由用戶根據(jù)應(yīng)用領(lǐng)域的需要,自行定義。體現(xiàn)了具體領(lǐng)域中的的需要,自行

18、定義。體現(xiàn)了具體領(lǐng)域中的語義約束語義約束2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性實體完整性實體完整性(Entity Integrity)若屬性或?qū)傩越MK是關(guān)系R的主碼,則對于每個元組,K的取值唯一,并且K中屬性不能全部或部分取空值,這稱為實體完整性規(guī)則。說明如下:說明如下:1)實體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)現(xiàn))實體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)現(xiàn) 實實世界的一個實體集。世界的一個實體集。2)現(xiàn)實世界中的實體是可區(qū)分的,即它們

19、具有某種唯一性標(biāo)識。)現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。3)關(guān)系模型中以主碼作為唯一性標(biāo)識。)關(guān)系模型中以主碼作為唯一性標(biāo)識。 4) 實體完整性能夠?qū)嶓w完整性能夠保證保證實體的實體的唯一性唯一性。5)實體完整性能夠保證實體的可區(qū)分性。)實體完整性能夠保證實體的可區(qū)分性。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性例如:例如:教學(xué)管理模式:S(SNO,SNAME,AGE,SEX) (學(xué)生關(guān)系)C(CNO,CNAME,CREDIT, TEACHER) (課程關(guān)系)SC(SNO,CNO,GRADE) (選課關(guān)系)n 為什么需要參照完整性:為

20、什么需要參照完整性:在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,因此在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,因此可能存在著關(guān)系與關(guān)系間的引用。可能存在著關(guān)系與關(guān)系間的引用。例如:例如:教學(xué)管理模式:S(SNO,SNAME,AGE,SEX) (學(xué)生關(guān)系)C(CNO,CNAME,CREDIT, TEACHER) (課程關(guān)系)SC(SNO,CNO,GRADE) (選課關(guān)系)2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性參照完整性參照完整性(Referential integrity)n 外碼外碼的概念:的概念:u設(shè)設(shè)F是基本關(guān)系是基本關(guān)系R的一個

21、或一組屬性,但不是關(guān)系的一個或一組屬性,但不是關(guān)系R的主碼。如果的主碼。如果F與基本關(guān)系與基本關(guān)系S的主碼的主碼Ks相對應(yīng),則稱相對應(yīng),則稱F是基本關(guān)系是基本關(guān)系R的的外碼外碼u基本關(guān)系基本關(guān)系R稱稱為為參照關(guān)系參照關(guān)系u基本關(guān)系基本關(guān)系S稱稱為為被參照關(guān)系被參照關(guān)系或或目標(biāo)關(guān)系目標(biāo)關(guān)系u關(guān)系關(guān)系R和和S可能是相同的關(guān)系,即自身參照??赡苁窍嗤年P(guān)系,即自身參照。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性參照完整性參照完整性(Referential integrity)n 例如:例如: 選修關(guān)系的選修關(guān)系的“學(xué)號學(xué)號” 與與學(xué)生關(guān)系學(xué)生關(guān)系的的主碼主碼

22、“學(xué)號學(xué)號”相對應(yīng)相對應(yīng) 選修關(guān)系的選修關(guān)系的“課程號課程號”與與課程關(guān)系課程關(guān)系的的主碼主碼“課程號課程號”相對應(yīng)相對應(yīng)u在在選修關(guān)系中選修關(guān)系中,“學(xué)號學(xué)號”和和“課程號課程號”是選修關(guān)系的是選修關(guān)系的外碼外碼u學(xué)生關(guān)系和課程關(guān)系均為被參照關(guān)系學(xué)生關(guān)系和課程關(guān)系均為被參照關(guān)系u選修關(guān)系為參照關(guān)系選修關(guān)系為參照關(guān)系 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性 若屬性(或?qū)傩越M)若屬性(或?qū)傩越M)F是基本關(guān)系是基本關(guān)系R的的外碼,外碼,它與基本關(guān)它與基本關(guān)系系S的主碼的主碼Ks相對應(yīng)(基本關(guān)系相對應(yīng)(基本關(guān)系R和和S不一定是不同的關(guān)不一定是不同的關(guān)系)

23、,則對于系),則對于R中每個元組在中每個元組在F上的值必須為:上的值必須為:n或者或者取空值取空值(F的每個屬性值均為空值)的每個屬性值均為空值)n或者或者等于等于S中某個元組的中某個元組的主碼主碼Ks值值這一規(guī)則稱為關(guān)系的參照完整性規(guī)則。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性參照完整性參照完整性(Referential integrity)對于上例,按照參照完整性規(guī)則,選課關(guān)系對于上例,按照參照完整性規(guī)則,選課關(guān)系SC中的中的SNO和和CNO只能取被參照關(guān)系只能取被參照關(guān)系S和和C表中已經(jīng)存在的主碼值,因此參照完表中已經(jīng)存在的主碼值,因此參照完整

24、性反映了現(xiàn)實世界中的約束需求。整性反映了現(xiàn)實世界中的約束需求。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性參照完整性參照完整性(Referential integrity)提問: SC中的中的SNO和和CNO可以可以取空值嗎?取空值嗎?n 例如:例如:教學(xué)管理模式作如下修改:n DEPART(DNO,DEAN,LOCATION,DNAME)n S(SNO,SNAME,AGE,SEX, DNO)n C(CNO,CNAME,CREDIT, TEACHER)n SC(SNO,CNO,GRADE)2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的

25、完整性關(guān)系的完整性參照完整性案例參照完整性案例提問:對S表來說,DNO是外碼嗎?其參照關(guān)系是誰?提問:S中的DNO可以取空值嗎?n 針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求n 關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能用程序承擔(dān)這一功能2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性用戶定義的完整性

26、用戶定義的完整性(User-defined integrity)例如:例如:在定義關(guān)系模式時,定義關(guān)系中的每個字段,對在定義關(guān)系模式時,定義關(guān)系中的每個字段,對每個字段必須定義該字段的字段名每個字段必須定義該字段的字段名(年齡年齡),字段類型,字段類型(整型整型),字段寬度字段寬度(2位位),小數(shù)位數(shù),小數(shù)位數(shù)(0位位),經(jīng)過這樣的定義,在給每條,經(jīng)過這樣的定義,在給每條記錄的年齡字段輸入數(shù)據(jù)時,可以輸入兩位整型數(shù)據(jù),這就記錄的年齡字段輸入數(shù)據(jù)時,可以輸入兩位整型數(shù)據(jù),這就是一種約束,如果我們還想進(jìn)一步對數(shù)據(jù)進(jìn)行約束,則需要是一種約束,如果我們還想進(jìn)一步對數(shù)據(jù)進(jìn)行約束,則需要定義一個具體的約束

27、條件定義一個具體的約束條件(可以寫一條規(guī)則可以寫一條規(guī)則)例如:例如:如把年齡限制在如把年齡限制在15歲到歲到25歲之間歲之間(實際上這是學(xué)生實際上這是學(xué)生的實際年齡范圍的實際年齡范圍),以滿足實際數(shù)據(jù)的需要,這就是用戶自定,以滿足實際數(shù)據(jù)的需要,這就是用戶自定義完整性規(guī)則。義完整性規(guī)則。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性用戶定義的完整性用戶定義的完整性(User-defined integrity)n 例如:例如:限定學(xué)生每個學(xué)期最多只能選修限定學(xué)生每個學(xué)期最多只能選修30個學(xué)分。個學(xué)分。n 例如:例如:限定每個學(xué)生最多只能借限定每個學(xué)生最多

28、只能借8本書。本書。n 例如:例如:限定修改成績時,修改后的成績只能比原來限定修改成績時,修改后的成績只能比原來成績高。成績高。2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.1.3 關(guān)系的完整性關(guān)系的完整性 在實際的關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,可以通過多種方式實施這三類完整在實際的關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,可以通過多種方式實施這三類完整性,如主碼約束、唯一性約束可以用來實施實體完整性,外碼約束可以用性,如主碼約束、唯一性約束可以用來實施實體完整性,外碼約束可以用來實施參照完整性,而域類型、取值范圍、觸發(fā)器等可以用來實施用戶自來實施參照完整性,而域類型、取值范圍、觸發(fā)器等可以用來實施用戶自定義完整性

29、。只要用戶在數(shù)據(jù)庫中定義了完整性約束,則在用戶操作數(shù)據(jù)定義完整性。只要用戶在數(shù)據(jù)庫中定義了完整性約束,則在用戶操作數(shù)據(jù)庫時,庫時,DBMS自動會根據(jù)用戶定義的完整性規(guī)則,進(jìn)行數(shù)據(jù)的檢驗。自動會根據(jù)用戶定義的完整性規(guī)則,進(jìn)行數(shù)據(jù)的檢驗。第第2章章 關(guān)系數(shù)據(jù)庫基礎(chǔ)關(guān)系數(shù)據(jù)庫基礎(chǔ) 2.1 關(guān)系數(shù)據(jù)庫的基本概念關(guān)系數(shù)據(jù)庫的基本概念2.2 關(guān)系代數(shù)關(guān)系代數(shù)2.3 高效的關(guān)系代數(shù)表達(dá)式與查詢優(yōu)化高效的關(guān)系代數(shù)表達(dá)式與查詢優(yōu)化什么是關(guān)系代數(shù):什么是關(guān)系代數(shù): 關(guān)系代數(shù)是一種抽象的查詢語言,用對關(guān)系的關(guān)系代數(shù)是一種抽象的查詢語言,用對關(guān)系的運算來表達(dá)查詢,作為研究關(guān)系數(shù)據(jù)語言的數(shù)運算來表達(dá)查詢,作為研究關(guān)系數(shù)

30、據(jù)語言的數(shù)學(xué)工具。學(xué)工具。關(guān)系代數(shù)的關(guān)系代數(shù)的特點特點: 運算對象是關(guān)系,運算結(jié)果亦為關(guān)系。運算對象是關(guān)系,運算結(jié)果亦為關(guān)系。 2.2 關(guān)系代數(shù)關(guān)系代數(shù)集合運算符集合運算符(并運算),(差運算),(并運算),(差運算),(交(交運算),運算),(廣義笛卡兒積)(廣義笛卡兒積)專門的關(guān)系運算符專門的關(guān)系運算符(選擇),(選擇),(投影),(投影), (連接),(連接),(除)(除)比較運算符比較運算符(大于),(大于),(大于等于),(?。ù笥诘扔冢?,(小于),于),(小于等于),(等于),(小于等于),(等于),(不等于)(不等于)邏輯運算符邏輯運算符 (非),(非),(與),(與),(或)。

31、(或)。更名運算符更名運算符 2.2 關(guān)系代數(shù)關(guān)系代數(shù)關(guān)系運算的目的:可以對二維表進(jìn)行任意的分割和組裝,從已有的二維表構(gòu)造出用戶需要的二維表。 2.2.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算并運算并運算2.2 關(guān)系代數(shù)關(guān)系代數(shù) 設(shè)關(guān)系設(shè)關(guān)系R和和S都具有都具有n個屬性,且相應(yīng)的屬性取自同一個域。個屬性,且相應(yīng)的屬性取自同一個域。 RS=t| t R t S.R和和S并的結(jié)果仍為并的結(jié)果仍為n目關(guān)系,其數(shù)據(jù)由屬于目關(guān)系,其數(shù)據(jù)由屬于R或?qū)儆诨驅(qū)儆赟的元組組成。的元組組成。學(xué)號學(xué)號姓名姓名性別性別年齡年齡學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0201李蘭李蘭女女17S0202張娜張

32、娜女女18S0203張偉張偉男男17S0203張偉張偉男男17S0230邵華邵華男男19學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0202張娜張娜女女18S0203張偉張偉男男17S0230邵華邵華男男18關(guān)系關(guān)系R關(guān)系關(guān)系S關(guān)系關(guān)系R S2.2.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算差運算差運算2.2 關(guān)系代數(shù)關(guān)系代數(shù) 設(shè)關(guān)系設(shè)關(guān)系R和和S都具有都具有n個屬性,且相應(yīng)的屬性取自同一個域。個屬性,且相應(yīng)的屬性取自同一個域。 R S = t | t R t S. R和和S差運算的結(jié)果關(guān)系仍為差運算的結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)據(jù)由屬于目關(guān)系,其數(shù)據(jù)由屬于R而不屬于而不屬于S的的所有元組

33、組成。所有元組組成。學(xué)號學(xué)號姓名姓名性別性別年齡年齡學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0201李蘭李蘭女女17S0202張娜張娜女女18S0203張偉張偉男男17S0203張偉張偉男男17S0230邵華邵華男男19關(guān)系關(guān)系R關(guān)系關(guān)系S關(guān)系關(guān)系R -S學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0202張娜張娜女女18 設(shè)關(guān)系設(shè)關(guān)系R和和S都具有都具有n個屬性,且相應(yīng)的屬性取自同一個域。個屬性,且相應(yīng)的屬性取自同一個域。 RS = t | t R t S . 運算的結(jié)果關(guān)系仍為運算的結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)據(jù)由既屬于目關(guān)系,其數(shù)據(jù)由既屬于R同時又屬于同時又屬于S的元的元組組成。

34、交可用差來表示:組組成。交可用差來表示: RS = R(RS) .2.2.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算交運算交運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)學(xué)號學(xué)號姓名姓名性別性別年齡年齡學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0201李蘭李蘭女女17S0202張娜張娜女女18S0203張偉張偉男男17S0203張偉張偉男男17S0230邵華邵華男男19關(guān)系關(guān)系R關(guān)系關(guān)系S關(guān)系關(guān)系R S學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0203張偉張偉男男17R SR SR S2.2 關(guān)系代數(shù)關(guān)系代數(shù)集合運算過程示意圖:2.2.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算廣義笛卡兒積廣義笛

35、卡兒積2.2 關(guān)系代數(shù)關(guān)系代數(shù)設(shè)設(shè)n n目和目和m m目的關(guān)系目的關(guān)系R R和和S S,它們的笛卡兒積是一個(,它們的笛卡兒積是一個(n+mn+m)目的元組集合。)目的元組集合。元組的前元組的前n n列是關(guān)系列是關(guān)系R R的一個元組,后的一個元組,后m m列是關(guān)系列是關(guān)系S S的一個元組。若的一個元組。若R R有有k k1 1個元組,個元組,S S有有k k2 2個元組,則關(guān)系個元組,則關(guān)系R R和關(guān)系和關(guān)系S S的廣義笛卡兒積應(yīng)當(dāng)有的廣義笛卡兒積應(yīng)當(dāng)有k k1 1k k2 2個元組。個元組。R R和和S S的的笛卡兒積表示為:笛卡兒積表示為: R RS S = tr ts | tr = tr

36、 ts | tr R R ts ts S . S .學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17 0203張偉張偉男男17姓名姓名課程名課程名成績成績李蘭李蘭軟件基礎(chǔ)軟件基礎(chǔ)90張娜張娜高等數(shù)學(xué)高等數(shù)學(xué)87學(xué)號學(xué)號姓名姓名性別性別年齡年齡姓名姓名課程名課程名成績成績S0201李蘭李蘭女女17李蘭李蘭軟件基礎(chǔ)軟件基礎(chǔ)90S0201李蘭李蘭女女17張娜張娜高等數(shù)學(xué)高等數(shù)學(xué)87S0203張偉張偉男男17李蘭李蘭軟件基礎(chǔ)軟件基礎(chǔ)90S0203張偉張偉男男17張娜張娜高等數(shù)學(xué)高等數(shù)學(xué)87關(guān)系關(guān)系R關(guān)系關(guān)系S關(guān)系關(guān)系R S選擇操作是從關(guān)系中選擇滿足條件的元組組成一個新選擇操作是從關(guān)系中選擇滿

37、足條件的元組組成一個新關(guān)系,其運算符是關(guān)系,其運算符是“ ”,定義為:,定義為: F(R)=t|tRF(t)真真 學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0202張娜張娜女女18S0203張偉張偉男男17S0230邵華邵華男男18【例例】設(shè)關(guān)系R1是學(xué)生關(guān)系模式上的一個關(guān)系如例2.5中所示,在關(guān)系R1中查找滿足年齡小于等于17的學(xué)生。關(guān)系關(guān)系R1學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0203張偉張偉男男17 年齡年齡17(R1)2.2.2 專門的關(guān)系運算專門的關(guān)系運算選擇運算選擇運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)n 關(guān)系關(guān)系R上的投影是從上的投影是從R中選擇

38、出若干屬性列組成新的關(guān)系,中選擇出若干屬性列組成新的關(guān)系,(從列從列的角度)的角度)記作:記作: A(R)= t A | t R .n 投影操作主要是從列的角度進(jìn)行運算,投影之后不僅取消了原關(guān)投影操作主要是從列的角度進(jìn)行運算,投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(系中的某些列,而且還可能取消某些元組(投影的結(jié)果中要投影的結(jié)果中要去掉去掉相同的行相同的行,這是由關(guān)系的基本性質(zhì)決定的)這是由關(guān)系的基本性質(zhì)決定的)2.2.2 專門的關(guān)系運算專門的關(guān)系運算投影運算投影運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)設(shè)關(guān)系設(shè)關(guān)系R1是學(xué)生關(guān)系模式的一個關(guān)系,在某次查詢中要求查找每是學(xué)生關(guān)系模式的一個關(guān)

39、系,在某次查詢中要求查找每個學(xué)生的姓名和年齡。個學(xué)生的姓名和年齡。 可以使用投影操作可以使用投影操作 R= 姓名,年齡姓名,年齡 (R1)2.2.2 專門的關(guān)系運算專門的關(guān)系運算投影運算投影運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)關(guān)系關(guān)系R1姓名姓名年齡年齡李蘭李蘭17張娜張娜18張偉張偉17邵華邵華18學(xué)號學(xué)號姓名姓名性別性別年齡年齡S0201李蘭李蘭女女17S0202張娜張娜女女18S0203張偉張偉男男17S0230邵華邵華男男18姓名,年齡 (R1)2.2 關(guān)系代數(shù)關(guān)系代數(shù)選擇運算過程示意圖:投影運算過程示意圖:2.2 關(guān)系代數(shù)關(guān)系代數(shù)選擇投影舉例選擇投影舉例 設(shè)學(xué)生選課數(shù)據(jù)庫,其關(guān)系模式為:設(shè)學(xué)

40、生選課數(shù)據(jù)庫,其關(guān)系模式為: 學(xué)生(學(xué)號,姓名,年齡,性別學(xué)生(學(xué)號,姓名,年齡,性別, 所在系);所在系); 課程(課程號,課程名,學(xué)分);課程(課程號,課程名,學(xué)分); 選課(學(xué)號,課程號,成績)選課(學(xué)號,課程號,成績).學(xué)生學(xué)生姓名姓名年齡年齡性別性別所在系所在系20050001王妃王妃19女女計算機計算機20050145李瑞李瑞22男男通信通信20050234蔣正蔣正22男男計算機計算機20050256賈艷賈艷21女女計算機計算機20050165李明李明18男男計算機計算機20052312王蓓王蓓22女女通信通信20041234裴鼎裴鼎21男男計算機計算機2. 2關(guān)系代數(shù)關(guān)系代數(shù)學(xué)生

41、選課關(guān)系數(shù)據(jù)庫學(xué)生選課關(guān)系數(shù)據(jù)庫課程號課程號課程名課程名學(xué)分學(xué)分C01數(shù)據(jù)庫數(shù)據(jù)庫4C02數(shù)學(xué)數(shù)學(xué)2C03信息系統(tǒng)信息系統(tǒng)4C04操作系統(tǒng)操作系統(tǒng)3C05數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)4C06數(shù)據(jù)處理數(shù)據(jù)處理2C07PASCAL語言語言42. 2關(guān)系代數(shù)關(guān)系代數(shù)學(xué)生選課關(guān)系數(shù)據(jù)庫學(xué)生選課關(guān)系數(shù)據(jù)庫學(xué)號學(xué)號課程號課程號成績成績20050001 C018020050234 C016520050001 C028020052312 C029020050234 C0380【例例1】查詢學(xué)生的姓名和所在系。查詢學(xué)生的姓名和所在系。 姓名,所在系姓名,所在系(學(xué)生)(學(xué)生)2. 2關(guān)系代數(shù)關(guān)系代數(shù)投影運算舉例投影運算舉例

42、姓名姓名所在系所在系王妃王妃計算機計算機李瑞李瑞通信通信蔣正蔣正計算機計算機賈艷賈艷計算機計算機李明李明計算機計算機王蓓王蓓通信通信裴鼎裴鼎計算機計算機2. 2關(guān)系代數(shù)關(guān)系代數(shù)投影運算舉例投影運算舉例【例例2】查詢查詢20050001號學(xué)生所選修的課程號號學(xué)生所選修的課程號 課程號課程號( 學(xué)號學(xué)號=20050001(選課選課))學(xué)號學(xué)號課程號課程號成績成績20050001C018020050001C0280課程號課程號C01C02【例例1】求選修了求選修了C01號或號或C02號課程的學(xué)生學(xué)號號課程的學(xué)生學(xué)號方案方案1:學(xué)號學(xué)號( 課程號課程號= C01課程號課程號 = C02(選課選課)方案

43、方案2:學(xué)號學(xué)號( 課程號課程號= C01(選課選課)學(xué)號學(xué)號( 課程號課程號 = C02 (選課選課)2. 2關(guān)系代數(shù)關(guān)系代數(shù)選擇投影運算舉例選擇投影運算舉例R S請同學(xué)們寫出結(jié)果2. 2關(guān)系代數(shù)關(guān)系代數(shù)選擇投影運算舉例選擇投影運算舉例【例例2】求選修了求選修了C01號而沒有選號而沒有選C02號課程的學(xué)生號課程的學(xué)生號號學(xué)號學(xué)號( 課程號課程號= C01(選課選課) 學(xué)號學(xué)號( 課程號課程號 = C02 (選課選課)R S請同學(xué)們寫出結(jié)果【例例3】求同時選修了求同時選修了C01號和號和C02號課程的學(xué)生號號課程的學(xué)生號錯誤的寫法:錯誤的寫法:學(xué)號學(xué)號( 課程號課程號= C01 課程號課程號=

44、 C02(選課選課)正確的寫法:正確的寫法:學(xué)號學(xué)號( 課程號課程號= C01 (選課選課)學(xué)號學(xué)號( 課程號課程號= C02(選課選課)2. 2關(guān)系代數(shù)關(guān)系代數(shù)選擇投影運算舉例選擇投影運算舉例R S請同學(xué)們寫出結(jié)果Why?2.2.3 專門的關(guān)系運算專門的關(guān)系運算連接運算連接運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)(1) 條件連接條件連接(連接連接)n 連接運算的含義連接運算的含義從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 R S = | tr Rts StrAtsB A和和B:分別為分別為R和和S上度數(shù)相等且可比的屬性組上度數(shù)相等且可比的屬性組

45、:比較運算符:比較運算符 u 連接運算從連接運算從R和和S的廣義笛卡爾積的廣義笛卡爾積RS中選?。ㄖ羞x?。≧關(guān)系)關(guān)系)在在A屬性組上的值與(屬性組上的值與(S關(guān)系)在關(guān)系)在B屬性組上值滿足比較關(guān)屬性組上值滿足比較關(guān)系系的元組的元組 ABtr tsn 常用條件連接運算符常用條件連接運算符u等值連接(等值連接(equijoin) 什么是等值連接什么是等值連接 為“”的連接運算稱為等值連接 等值連接的含義等值連接的含義 從關(guān)系R與S的廣義笛卡爾積中選取兩個關(guān)系中A、B屬性值相等的那些元組,即等值連接為: R S = | tr Rts StrA = tsB 2.2 關(guān)系代數(shù)關(guān)系代數(shù)A=Btr ts

46、2.2.3 專門的關(guān)系運算專門的關(guān)系運算連接運算連接運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)(2) 自然連接自然連接u 自然連接是一種特殊的等值連接自然連接是一種特殊的等值連接兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組在結(jié)果中把重復(fù)的屬性列去掉 自然連接的含義自然連接的含義R和和S具有相同的屬性組具有相同的屬性組B R S = | tr Rts StrB = tsB tr tsn 自然連接中相等的分量必須是相同的屬性組,并且自然連接中相等的分量必須是相同的屬性組,并且要在結(jié)果中去掉重復(fù)的屬性,而等值連接則不必。要在結(jié)果中去掉重復(fù)的屬性,而等值連接則不必。n 當(dāng)當(dāng)R與與S無相同屬性時,無相同屬性時,R S

47、RS2.2關(guān)系代數(shù)關(guān)系代數(shù)自然連接與等值連接的區(qū)別自然連接與等值連接的區(qū)別n 對對R和和S做連接運算,相當(dāng)于對兩個關(guān)系進(jìn)行雙重做連接運算,相當(dāng)于對兩個關(guān)系進(jìn)行雙重循環(huán),外循環(huán)為循環(huán),外循環(huán)為R,內(nèi)循環(huán)為,內(nèi)循環(huán)為S,再再對雙循環(huán)結(jié)果對雙循環(huán)結(jié)果按照連接條件進(jìn)行篩選。按照連接條件進(jìn)行篩選。 2.2關(guān)系代數(shù)關(guān)系代數(shù)連接運算意義連接運算意義學(xué)號學(xué)號姓名姓名年齡年齡所在系所在系 學(xué)號學(xué)號課程名課程名成績成績98001張三張三20計算機系計算機系98001數(shù)據(jù)庫數(shù)據(jù)庫6298005李四李四21數(shù)學(xué)系數(shù)學(xué)系98001數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)73 98005微積分微積分80學(xué)生學(xué)生.學(xué)號學(xué)號姓名姓名年齡年齡所在系所

48、在系選課選課.學(xué)號學(xué)號課名課名成績成績980019800198001980059800598005張三張三張三張三張三張三李四李四李四李四李四李四202020212121計算機系計算機系計算機系計算機系計算機系計算機系數(shù)學(xué)系數(shù)學(xué)系數(shù)學(xué)系數(shù)學(xué)系數(shù)學(xué)系數(shù)學(xué)系980019800198005980019800198005數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)微積分微積分?jǐn)?shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)微積分微積分627380627380學(xué)生學(xué)生選課選課 2.2關(guān)系代數(shù)關(guān)系代數(shù)連接運算舉例連接運算舉例學(xué)生學(xué)生.學(xué)學(xué)號號姓名姓名年齡年齡所在系所在系選課選課.學(xué)學(xué)號號課名課名成績成績980019800198005張三張三

49、張三張三李四李四202021計算機系計算機系計算機系計算機系數(shù)學(xué)系數(shù)學(xué)系980019800198005數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)微積分微積分627380 學(xué)生學(xué)生 選課選課 學(xué)生學(xué)生.學(xué)號學(xué)號=選課選課.學(xué)號學(xué)號 2.2關(guān)系代數(shù)關(guān)系代數(shù)連接運算舉例連接運算舉例學(xué)生學(xué)生 選課選課 學(xué)生學(xué)生.學(xué)學(xué)號號姓名姓名年齡年齡所在系所在系課名課名成績成績980019800198005張三張三張三張三李四李四202021計算機系計算機系計算機系計算機系數(shù)學(xué)系數(shù)學(xué)系數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)微積分微積分6273802.2關(guān)系代數(shù)關(guān)系代數(shù)連接運算舉例連接運算舉例2.2關(guān)系代數(shù)關(guān)系代數(shù)連接運算舉例連接運算舉例課

50、程號課程號課程名課程名C01軟件基礎(chǔ)軟件基礎(chǔ)C02C語言語言C03英語英語C04高等數(shù)學(xué)高等數(shù)學(xué)姓名姓名課程號課程號成績成績李蘭李蘭C0190張娜張娜C0387張偉張偉C0276李蘭李蘭C0285張偉張偉C0480CSCC SC提問1:下列語句表示什么含義?課程名(姓名=“李蘭”(C SC)提問2:如何查詢選修“英語”的學(xué)生姓名?課程號課程號課程名課程名姓名姓名成績成績C01軟件基礎(chǔ)軟件基礎(chǔ)李蘭李蘭90C02C語言語言張偉張偉76C02C語言語言李蘭李蘭85C03英語英語張娜張娜87C04高等數(shù)學(xué)高等數(shù)學(xué)張偉張偉80n 給定關(guān)系給定關(guān)系R R ( (X X,Y Y) ) 和和S S ( (Y

51、Y,Z Z) ),其中,其中X X,Y Y,Z Z為屬性組。為屬性組。R R中的中的Y Y與與S S中的中的Y Y可以有不同的屬性名,但必須出自相同的域集??梢杂胁煌膶傩悦仨毘鲎韵嗤挠蚣?。R R與與S S的除運算得到一個新的關(guān)系的除運算得到一個新的關(guān)系P(X)P(X),P P是是R R中滿足下列條件的元組在中滿足下列條件的元組在 X X 屬性列上的投影:屬性列上的投影:元組在元組在X X上分量值上分量值x x的象集的象集Y Yx x包含包含S S在在Y Y上投影的集合,記作:上投影的集合,記作: R RS S = = t tr r X X | | t tr r R RY Y ( (S

52、 S) ) Y Yx x Y Yx x:x x在在R R中的象集,中的象集,x x = = t tr r X X 2.2.4 專門的關(guān)系運算專門的關(guān)系運算除法運算除法運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)除操作可以自動同時從行和列的角度進(jìn)行運算。除操作可以自動同時從行和列的角度進(jìn)行運算。 n 關(guān)系除法運算分下面關(guān)系除法運算分下面4步進(jìn)行:步進(jìn)行:1) 將被除關(guān)系的屬性分為象集屬性和結(jié)果屬性:與除關(guān)系相將被除關(guān)系的屬性分為象集屬性和結(jié)果屬性:與除關(guān)系相同的屬性屬于象集屬性同的屬性屬于象集屬性(Y),不相同的屬性屬于結(jié)果屬性,不相同的屬性屬于結(jié)果屬性(X)。2) 在除關(guān)系中,對與被除關(guān)系相同的屬性在除關(guān)系中

53、,對與被除關(guān)系相同的屬性(Y)(象集屬性)(象集屬性)進(jìn)行投影,得到除目標(biāo)數(shù)據(jù)集。進(jìn)行投影,得到除目標(biāo)數(shù)據(jù)集。3) 將被除關(guān)系按將被除關(guān)系按X分組分組n 4) 逐一考察被除關(guān)系每個組,如果它的象集屬性值中包括除逐一考察被除關(guān)系每個組,如果它的象集屬性值中包括除目標(biāo)數(shù)據(jù)集,則對應(yīng)的目標(biāo)數(shù)據(jù)集,則對應(yīng)的X屬性值應(yīng)屬于該除法運算結(jié)果集。屬性值應(yīng)屬于該除法運算結(jié)果集。除法運算除法運算目的目的:描述全部包含關(guān)系描述全部包含關(guān)系2.2.4 專門的關(guān)系運算專門的關(guān)系運算除法運算除法運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)例例設(shè)關(guān)系設(shè)關(guān)系R、S分別為下圖的分別為下圖的(a)和和(b),RS的結(jié)果為圖的結(jié)果為圖(c) 2.

54、2.4 專門的關(guān)系運算專門的關(guān)系運算除法運算除法運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)n 結(jié)果屬性結(jié)果屬性A ,象集屬性象集屬性 B,C n S在在(B,C)上的投影為上的投影為 (b1,c2),(b2,c1),(b2,c3) n 在關(guān)系在關(guān)系R中,中,A可以取四個值可以取四個值a1,a2,a3,a4 a1的象集為的象集為 (b1,c2),(b2,c3),(b2,c1) a2的象集為的象集為 (b3,c7),(b2,c3) a3的象集為的象集為 (b4,c6) a4的象集為的象集為 (b6,c6)n 只有只有a1的象集包含了的象集包含了S在在(B,C)屬性組上的投影屬性組上的投影 所以所以 RS =a1

55、 2.2.4 專門的關(guān)系運算專門的關(guān)系運算除法運算除法運算2.2 關(guān)系代數(shù)關(guān)系代數(shù)學(xué)號學(xué)號課號課號成績成績 課號課號課名課名S1C1AC2計算機圖計算機圖形學(xué)形學(xué)S1C2B必修課必修課S1C3BS2C1A課號課號課名課名S2C3BC1數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)S3C1BC3操作系統(tǒng)操作系統(tǒng)S3C3B選課選課選修課選修課S4C1AS4C2A學(xué)號學(xué)號成績成績S5C2BS1BS5C3BS4AS5C1AS5B選修課選修課2.2 關(guān)系代數(shù)關(guān)系代數(shù)學(xué)生選課除法運算舉例學(xué)生選課除法運算舉例學(xué)號成績 學(xué)號學(xué)號S3BS1 S2S3S5選課選課必修課必修課 學(xué)號,課號學(xué)號,課號(選課)(選課)必修課必修課 這種除法表示了什

56、么含義呢?選擇了必修課選擇了必修課表中全部課程表中全部課程的同學(xué)的同學(xué)2.2 關(guān)系代數(shù)關(guān)系代數(shù)學(xué)生選課除法運算舉例學(xué)生選課除法運算舉例不僅要求該學(xué)生選修和不僅要求該學(xué)生選修和,還要求兩門課程成績相同。,還要求兩門課程成績相同。n 問題:問題:求同時選修了求同時選修了001和和002號課程的學(xué)生號號課程的學(xué)生號u 方案方案1: Sno,Cno(SC) Cno = 001 Cno= 002 (C)u 方案方案2: S#(SC Cno= 001 Cno = 002(C)u 哪一個正確?哪一個正確?SC:表示選課表表示選課表(sno,cno,grade)C:表示課程表表示課程表(cno,cname,c

57、lassroom)2.2 關(guān)系代數(shù)關(guān)系代數(shù)學(xué)生選課除法運算舉例學(xué)生選課除法運算舉例2.2 關(guān)系代數(shù)關(guān)系代數(shù)2.2.5 關(guān)系代數(shù)運算綜合應(yīng)用實例關(guān)系代數(shù)運算綜合應(yīng)用實例【例例2.12】教學(xué)管理數(shù)據(jù)庫的關(guān)系模式定義如下:教學(xué)管理數(shù)據(jù)庫的關(guān)系模式定義如下:S(SNO,SNAME,AGE,SEX) (學(xué)生關(guān)系學(xué)生關(guān)系)C(CNO,CNAME,CREDIT, TEACHER)(課程關(guān)系課程關(guān)系)SC(SNO,CNO,GRADE) (選課關(guān)系選課關(guān)系) 其中其中SNO,SNAME,AGE,SEX分別為學(xué)生學(xué)號、姓名、年齡分別為學(xué)生學(xué)號、姓名、年齡和性別;和性別;CNO,CNAME,CREDIT和和TEAC

58、HER分別表示課程編號、分別表示課程編號、課程名稱、課程學(xué)分和授課教師;課程名稱、課程學(xué)分和授課教師;GRADE表示成績。表示成績。 n (1)查找選修課程號為)查找選修課程號為C3的學(xué)生學(xué)號和成績的學(xué)生學(xué)號和成績 SNO,GRADE( CNO=C3(SC)n (2)查找選修課程號為)查找選修課程號為C4的學(xué)生學(xué)號和姓名的學(xué)生學(xué)號和姓名 SNO,SNAME( CNO=C4(SSC)n (3)查找選修課程名為)查找選修課程名為”數(shù)學(xué)數(shù)學(xué)”的學(xué)生學(xué)號和姓名的學(xué)生學(xué)號和姓名 SNO,SNAME (CNAME=數(shù)學(xué)數(shù)學(xué)(S SC C)2.2.5 關(guān)系代數(shù)運算綜合應(yīng)用實例關(guān)系代數(shù)運算綜合應(yīng)用實例n(4)

59、查找選修課程號為)查找選修課程號為C1或或C3的學(xué)生學(xué)號的學(xué)生學(xué)號方法一:方法一: SNO ( CNO=C1CNO=C3(SC)方法二:可用集合的并運算完成相同功能,即方法二:可用集合的并運算完成相同功能,即SNO ( CNO=C1 (SC) SNO ( CNO=C3 (SC)n(5)查找同時選修課程號為)查找同時選修課程號為C1和和C3的學(xué)生學(xué)號的學(xué)生學(xué)號 SNO ( CNO=C1 (SC) SNO ( CNO=C3 (SC)n(6)查找不選修課程號為)查找不選修課程號為C2的學(xué)生的姓名的學(xué)生的姓名 SNAME (S) SNAME ( CNO=C2(S SC)2.2.5 關(guān)系代數(shù)運算綜合應(yīng)用

60、實例關(guān)系代數(shù)運算綜合應(yīng)用實例n (7)查找選修所有課程的學(xué)生姓名)查找選修所有課程的學(xué)生姓名 SNAME(S (SNO,CNO(SC)CNO(C)n (8)查找選修了)查找選修了“WANG”開設(shè)的所有課程的學(xué)開設(shè)的所有課程的學(xué)生學(xué)號生學(xué)號 SNO,CNO(SC)CNO( TEACHER=WANG (C)2.2.5 關(guān)系代數(shù)運算綜合應(yīng)用實例關(guān)系代數(shù)運算綜合應(yīng)用實例n 已知:學(xué)生關(guān)系模式已知:學(xué)生關(guān)系模式S(SNO,SNAME,SEX,AGE,DEPT) 選課關(guān)系模式選課關(guān)系模式SC(SNO,CNO,GRADE) 課程關(guān)系模式課程關(guān)系模式C(CNO,CNAME,DEPT,TNAME) u試用關(guān)系代

溫馨提示

  • 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

提交評論