數(shù)據(jù)庫精品課(僅供個人學(xué)習(xí))第二章【專業(yè)教育】_第1頁
數(shù)據(jù)庫精品課(僅供個人學(xué)習(xí))第二章【專業(yè)教育】_第2頁
數(shù)據(jù)庫精品課(僅供個人學(xué)習(xí))第二章【專業(yè)教育】_第3頁
數(shù)據(jù)庫精品課(僅供個人學(xué)習(xí))第二章【專業(yè)教育】_第4頁
數(shù)據(jù)庫精品課(僅供個人學(xué)習(xí))第二章【專業(yè)教育】_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù) 據(jù) 庫 原 理 Theory of Database 第二章 關(guān)系數(shù)據(jù)庫,1,高等課堂,關(guān)系數(shù)據(jù)庫簡介,提出關(guān)系模型的是美國IBM公司的E.F.Codd 1970年提出關(guān)系數(shù)據(jù)模型 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM,1970 之后,提出了關(guān)系代數(shù)和關(guān)系演算的概念 1972年提出了關(guān)系的第一、第二、第三范式 1974年提出了關(guān)系的BCNF范式,2,高等課堂,第二章 關(guān)系數(shù)據(jù)庫,2.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 2.2 關(guān)系操作 2.3 關(guān)系的

2、完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小結(jié),3,高等課堂,2.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義,2.1.1 關(guān)系 2.1.2 關(guān)系模式 2.1.3 關(guān)系數(shù)據(jù)庫,4,高等課堂,2.1.1 關(guān)系,單一的數(shù)據(jù)結(jié)構(gòu)-關(guān)系 現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示 邏輯結(jié)構(gòu)-二維表 從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表 建立在集合代數(shù)的基礎(chǔ)上,5,高等課堂,關(guān)系(續(xù),域(Domain) 2. 笛卡爾積(Cartesian Product) 3. 關(guān)系(Relation,6,高等課堂,域(Domain,域是一組具有相同數(shù)據(jù)類型的值的集合。 整數(shù) 實(shí)數(shù) 介于某個取值范圍的整數(shù)

3、指定長度的字符串集合 男,女,例,7,高等課堂,2. 笛卡爾積(Cartesian Product,笛卡爾積 給定一組域D1,D2,Dn,這些域中可以有相同的。 D1,D2,Dn的笛卡爾積為: D1D2Dn (d1,d2,dn)diDi,i1,2,n 所有域的所有取值的一個組合,不能重復(fù) 例如:有一組域 D1=導(dǎo)師集合=張清玫、劉逸; D2=專業(yè)集合=計算機(jī)專業(yè)、信息專業(yè); D3=學(xué)生集合=王敏、劉晨、李勇,8,高等課堂,表2.1 D1,D2,D3的笛卡爾積,導(dǎo)師,學(xué)生,專業(yè),張清玫,計算機(jī)專業(yè),李勇,張清玫,張清玫,張清玫,張清玫,張清玫,計算機(jī)專業(yè),計算機(jī)專業(yè),信息專業(yè),信息專業(yè),信息專業(yè)

4、,劉晨,王敏,劉晨,王敏,李勇,劉逸,計算機(jī)專業(yè),計算機(jī)專業(yè),信息專業(yè),信息專業(yè),信息專業(yè),計算機(jī)專業(yè),劉逸,劉逸,劉逸,劉逸,劉逸,劉晨,王敏,李勇,劉晨,王敏,李勇,9,高等課堂,笛卡爾積(續(xù),元組(Tuple) 笛卡爾積中每一個元素(d1,d2,dn)叫作一個n元組或簡稱元組。 例如,(張清玫,計算機(jī)專業(yè),王敏)、 (張清玫,計算機(jī)專業(yè),劉晨)等都是元組。 分量(Component) 笛卡爾積元素(d1,d2,dn)中的每一個值di叫作一個分量。 例如,張清玫、計算機(jī)專業(yè)、劉晨等都是分量,10,高等課堂,笛卡爾積(續(xù),基數(shù)(Cardinal number) 若Di(i1,2,n)為有限集

5、,其基數(shù)為mi(i1,2,n),則D1D2Dn的基數(shù)M為: 笛卡爾積的表示方法 笛卡爾積可表示為一個二維表 表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域,11,高等課堂,3. 關(guān)系(Relation,1) 關(guān)系 D1D2Dn的子集叫作在域D1,D2,Dn上的關(guān)系,表示為 R(D1,D2,Dn) R:關(guān)系名 n:關(guān)系的目或度(Degree) 關(guān)系滿足的條件: 具有實(shí)際意義的子集; 域的順序可以顛倒,12,高等課堂,關(guān)系(續(xù),2) 元組 3) 單元關(guān)系與二元關(guān)系,關(guān)系中的每個元素是關(guān)系中的元組,通常用t表示,當(dāng)n=1時,稱該關(guān)系為單元關(guān)系(Unary relation) 或一元關(guān)系 當(dāng)n=2時,稱

6、該關(guān)系為二元關(guān)系(Binary relation,13,高等課堂,關(guān)系(續(xù),4) 關(guān)系的表示 關(guān)系也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域,域,元組,14,高等課堂,關(guān)系(續(xù),5)屬性 關(guān)系中不同列可以對應(yīng)相同的域 為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute) n目關(guān)系必有n個屬性,15,高等課堂,關(guān)系(續(xù),6) 碼 候選碼 若關(guān)系中的某一最小屬性組能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼。 簡單的情況:候選碼只包含一個屬性 全碼 最極端的情況:關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼,稱為全碼(All-key,16,高等課堂,關(guān)系(續(xù),主碼 若一個關(guān)

7、系有多個候選碼,則選定其中一個為主碼(Primary key) 主屬性 候選碼的諸屬性稱為主屬性(Prime attribute) 不包含在任何侯選碼中的屬性稱為非主屬性(Non-Prime attribute)或非碼屬性(Non-key attribute,17,高等課堂,關(guān)系(續(xù),7) 三類關(guān)系 基本關(guān)系(基本表或基表) 實(shí)際存在的表,是實(shí)際存儲數(shù)據(jù)的表 查詢表 查詢結(jié)果對應(yīng)的表 視圖表 由基本表或其他視圖表導(dǎo)出的表,是虛表, 不實(shí)際存儲數(shù)據(jù),18,高等課堂,關(guān)系(續(xù),8)基本關(guān)系的性質(zhì) 列是同質(zhì)的(Homogeneous) 不同的列可出自同一個域 其中的每一列稱為一個屬性 不同的屬性要給

8、予不同的屬性名 列的順序無所謂(列的次序可以任意交換) 任意兩個元組的候選碼不能相同 行的順序無所謂(行的次序可以任意交換) 分量必須取原子值,19,高等課堂,2.1 關(guān)系數(shù)據(jù)結(jié)構(gòu),2.1.1 關(guān)系 2.1.2 關(guān)系模式 2.1.3 關(guān)系數(shù)據(jù)庫,20,高等課堂,2.1.2 關(guān)系模式,1什么是關(guān)系模式 2定義關(guān)系模式 3. 關(guān)系模式與關(guān)系,21,高等課堂,1什么是關(guān)系模式,關(guān)系模式(Relation Schema)是型 關(guān)系是值 關(guān)系模式是對關(guān)系的描述 元組集合的結(jié)構(gòu) 元組語義以及完整性約束條件 屬性間的數(shù)據(jù)依賴關(guān)系集合,屬性構(gòu)成 屬性來自的域 屬性與域之間的映象關(guān)系,22,高等課堂,2定義關(guān)系

9、模式,關(guān)系模式可以形式化地表示為: R(U,D,DOM,F(xiàn)) R 關(guān)系名 U 組成該關(guān)系的屬性名集合 D 屬性組U中屬性所來自的域 DOM 屬性向域的映像集合 F 屬性間的數(shù)據(jù)依賴關(guān)系集合,23,高等課堂,定義關(guān)系模式 (續(xù),關(guān)系模式通常可以簡記為 R (U) 或 R (A1,A2,An) R:關(guān)系名 A1,A2,An: 屬性名 注:域名及屬性向域的映像常常直接說明為 屬性的類型、長度,24,高等課堂,3. 關(guān)系模式與關(guān)系,關(guān)系模式 對關(guān)系的描述 靜態(tài)的、穩(wěn)定的 關(guān)系 關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容 動態(tài)的、隨時間不斷變化的 關(guān)系模式和關(guān)系往往統(tǒng)稱為關(guān)系,通過上下文加以區(qū)別,25,高等課堂,2

10、.1 關(guān)系數(shù)據(jù)結(jié)構(gòu),2.1.1 關(guān)系 2.1.2 關(guān)系模式 2.1.3 關(guān)系數(shù)據(jù)庫,26,高等課堂,2.1.3 關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫:在一個給定的應(yīng)用領(lǐng)域中,所有關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。 關(guān)系數(shù)據(jù)庫,型,值,27,高等課堂,2. 關(guān)系數(shù)據(jù)庫的型與值,關(guān)系數(shù)據(jù)庫的型:關(guān)系數(shù)據(jù)庫模式 對關(guān)系數(shù)據(jù)庫的描述。 關(guān)系數(shù)據(jù)庫模式包括 若干域的定義 在這些域上定義的若干關(guān)系模式 關(guān)系數(shù)據(jù)庫的值:關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,簡稱為關(guān)系數(shù)據(jù)庫,28,高等課堂,第二章 關(guān)系數(shù)據(jù)庫,2.1 關(guān)系模型概述 2.2 關(guān)系操作 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小結(jié),29,

11、高等課堂,2.2.1基本關(guān)系操作,查詢:并、交、差、笛卡爾積、選擇、投影、連接、除,數(shù)據(jù)更新:插入、刪除、修改,查詢的表達(dá)能力是其中最主要的部分,并、差、笛卡爾積、選擇、投影是5種基本操作,集合操作方式:操作的對象和結(jié)果都是集合, 一次一集合的方式,常用的關(guān)系操作,關(guān)系操作的特點(diǎn),30,高等課堂,2.2.2 關(guān)系數(shù)據(jù)庫語言的分類,關(guān)系代數(shù)語言: 代表:ISBL 關(guān)系演算語言: 元組關(guān)系演算語言 謂詞變元的基本對象是元組變量 代表:ALPHA, QUEL 域關(guān)系演算語言 謂詞變元的基本對象是域變量 代表:QBE 具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言 代表:SQL(Structured Query

12、 Language,用對關(guān)系的運(yùn)算來表達(dá)查詢要求,用謂詞來表達(dá)查詢要求,31,高等課堂,第二章 關(guān)系數(shù)據(jù)庫,2.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 2.2 關(guān)系操作 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小結(jié),32,高等課堂,2.3 關(guān)系的完整性,2.3.1 關(guān)系的三類完整性約束 2.3.2 實(shí)體完整性 2.3.3 參照完整性 2.3.4 用戶定義的完整性,33,高等課堂,2.3.1 關(guān)系的三類完整性約束,實(shí)體完整性和參照完整性: 關(guān)系模型必須滿足的完整性約束條件 稱為關(guān)系的兩個不變性,應(yīng)該由關(guān)系系統(tǒng)自動支持 用戶定義的完整性: 應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域

13、中的語義約束,34,高等課堂,2.3 關(guān)系的完整性,2.3.1關(guān)系的三類完整性約束 2.3.2 實(shí)體完整性 2.3.3 參照完整性 2.3.4 用戶定義的完整性,35,高等課堂,2.3.2 實(shí)體完整性,規(guī)則2.1 實(shí)體完整性規(guī)則(Entity Integrity) 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。 例: student(學(xué)號,姓名,性別,專業(yè),主碼學(xué)號不能取空值,36,高等課堂,實(shí)體完整性(續(xù),實(shí)體完整性規(guī)則的說明 (1)實(shí)體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)現(xiàn)實(shí)世界的一個實(shí)體集。 (2)現(xiàn)實(shí)世界的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。 (3)關(guān)系模型中以

14、主碼作為唯一性標(biāo)識。 (4)主碼中的屬性即主屬性不能取空值。如果主屬性取空值,就說明存在某個不可標(biāo)識的實(shí)體,即存在不可區(qū)分的實(shí)體,這與第(2)點(diǎn)相矛盾,因此這個規(guī)則稱為實(shí)體完整性,37,高等課堂,2.3關(guān)系的完整性,2.3.1關(guān)系的三類完整性約束 2.3.2 實(shí)體完整性 2.3.3 參照完整性 2.3.4 用戶定義的完整性,38,高等課堂,2.3.3 參照完整性,1. 關(guān)系間的引用 2. 外碼 3. 參照完整性規(guī)則,39,高等課堂,1. 關(guān)系間的引用,在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的,因此,可能存在著關(guān)系與關(guān)系間的引用。 例1: 學(xué)生實(shí)體、專業(yè)實(shí)體 學(xué)生(學(xué)號,姓名,性別,專業(yè)

15、號,年齡) 專業(yè)(專業(yè)號,專業(yè)名,學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號”。 學(xué)生關(guān)系中的“專業(yè)號”值必須是確實(shí)存在的專業(yè)的專業(yè)號, 即專業(yè) 關(guān)系中有該專業(yè)的記錄,主碼,主碼,40,高等課堂,關(guān)系間的引用(續(xù),例2: 學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系 學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡) 課程(課程號,課程名,學(xué)分) 選修(學(xué)號,課程號,成績,41,高等課堂,關(guān)系間的引用(續(xù),例3: 學(xué)生實(shí)體及其內(nèi)部的一對多聯(lián)系 學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長,班長” 必須是確實(shí)存在的學(xué)生的學(xué)號,主碼,外碼,引用了本關(guān)系的“學(xué)號,42,高等課堂,2外碼(Foreign Key,設(shè)F是基本關(guān)系

16、R的一個或一組屬性,如果F與基本關(guān) 系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼 基本關(guān)系R稱為參照關(guān)系(Referencing Relation) 基本關(guān)系S稱為被參照關(guān)系(Referenced Relation) 或目標(biāo)關(guān)系(Target Relation)(被引用表,43,高等課堂,外碼(續(xù),例1:學(xué)生關(guān)系專業(yè)關(guān)系的相對應(yīng) 學(xué)生(學(xué)號,專業(yè)號) 專業(yè)(專業(yè)號,,學(xué)生關(guān)系,專業(yè)關(guān)系,專業(yè)號,參照關(guān)系,被參照關(guān)系,學(xué)生關(guān)系的外碼,a,44,高等課堂,外碼(續(xù),選修關(guān)系的“課程號”與課程關(guān)系的主碼“課程號”相對應(yīng),學(xué)生關(guān)系,選修關(guān)系,課程關(guān)系,b,學(xué)號,課程號,被參照關(guān)系,被參照關(guān)系,參照關(guān)

17、系,選修關(guān)系的外碼,選修關(guān)系的外碼,例2,選修關(guān)系的“學(xué)號” 與學(xué)生關(guān)系的主碼“學(xué)號”相對應(yīng),45,高等課堂,外碼(續(xù),例3:“班長”與本身的主碼“學(xué)號”相對應(yīng) “班長”是外碼,參照關(guān)系,被參照關(guān)系,46,高等課堂,3. 參照完整性規(guī)則,規(guī)則2.2 參照完整性規(guī)則 若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為: 或者取空值(F的每個屬性值均為空值) 或者等于S中(被引用表)某個元組的主碼值,47,高等課堂,參照完整性規(guī)則(續(xù),例1:學(xué)生關(guān)系中每個元組的“專業(yè)號”屬性只取兩類值: (1)空值,表示尚未

18、給該學(xué)生分配專業(yè) (2)非空值,這時該值必須是專業(yè)關(guān)系中某個元組的“專業(yè)號”值,表示該學(xué)生不可能分配一個不存在的專業(yè),48,高等課堂,參照完整性規(guī)則(續(xù),例2:選修(學(xué)號,課程號,成績,學(xué)號”和“課程號”可能的取值,1)選修關(guān)系中的主屬性,不能取空值,2)只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值,49,高等課堂,參照完整性規(guī)則(續(xù),例3:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長) “班長”屬性值可以取兩類值: (1)空值,表示該學(xué)生所在班級尚未選出班長 (2)非空值,該值必須是本關(guān)系中某個元組的學(xué)號值,50,高等課堂,關(guān)系的完整性(續(xù),2.3.1關(guān)系的三類完整性約束 2.3.2 實(shí)體完整性 2

19、.3.3 參照完整性 2.3.4 用戶定義的完整性,51,高等課堂,2.3.4 用戶定義的完整性,針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一 具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求,關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以 便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程 序承擔(dān)這一功能,52,高等課堂,用戶定義的完整性(續(xù),例:課程(課程號,課程名,學(xué)分,課程號”屬性必須取唯一值,非主屬性“課程名”也不能取空值,學(xué)分”屬性只能取值1,2,3,4,53,高等課堂,第二章 關(guān)系數(shù)據(jù)庫,2.1 關(guān)系模型概述 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小

20、結(jié),54,高等課堂,2.4 關(guān)系代數(shù),概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算,55,高等課堂,表2.4 關(guān)系代數(shù)運(yùn)算符,概 述,運(yùn)算符,含義,運(yùn)算符,含義,集合運(yùn)算符,比較運(yùn)算符,-,并 差 交 笛卡爾積,大于 大于等于 小于 小于等于 等于 不等于,56,高等課堂,表2.4 關(guān)系代數(shù)運(yùn)算符(續(xù),概 述(續(xù),運(yùn)算符,含義,運(yùn)算符,含義,選擇 投影 連接 除,邏輯運(yùn)算符,專門的關(guān)系運(yùn)算符,非 與 或,57,高等課堂,2.4 關(guān)系代數(shù),概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算,58,高等課堂,1. 并(Union,R和S 具有相同的目n(即兩個關(guān)系都有n個屬性) 相應(yīng)的屬性取自同一個域 RS 仍為n目關(guān)

21、系,由屬于R或?qū)儆赟的元組組成 RS = t|t Rt S,59,高等課堂,并(續(xù),R,A,B,C,a1,a1,a2,b1,b2,b2,c1,c1,c2,S,A,B,C,a1,a1,a2,b2,b3,b2,c2,c1,c2,RS,A,B,C,a1,a1,a2,b2,b1,b2,c1,c1,c2,a1,b3,c2,60,高等課堂,2. 差(Difference,R和S 具有相同的目n 相應(yīng)的屬性取自同一個域 R - S 仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成 R -S = t|tRtS,61,高等課堂,差(續(xù),R,A,B,C,a1,a1,a2,b1,b2,b2,c1,c1,c2,S,A,

22、B,C,a1,a1,a2,b2,b3,b2,c2,c1,c2,R-S,A,B,C,a1,b1,c1,62,高等課堂,3. 交(Intersection,R和S 具有相同的目n 相應(yīng)的屬性取自同一個域 RS 仍為n目關(guān)系,由既屬于R又屬于S的元組組成 RS = t|t Rt S RS = R (R-S,63,高等課堂,交 (續(xù),R,A,B,C,a1,a1,a2,b1,b2,b2,c1,c1,c2,S,A,B,C,a1,a1,a2,b2,b3,b2,c2,c1,c2,RS,A,B,C,a1,a2,b2,b2,c1,c2,64,高等課堂,4. 笛卡爾積(Cartesian Product,嚴(yán)格地講,

23、應(yīng)該是廣義的笛卡爾積 R: n目關(guān)系,k1個元組 S: m目關(guān)系,k2個元組 RS 列:(n+m)列元組的集合 元組的前n列是關(guān)系R的一個元組 后m列是關(guān)系S的一個元組 行:k1k2個元組 RS = tr ts |tr R tsS,65,高等課堂,笛卡爾積(續(xù),R,A,B,C,a1,a1,a2,b1,b2,b2,c1,c1,c2,S,A,B,C,a1,a1,a2,b2,b3,b2,c2,c1,c2,RS,R.A,R.B,R.C,S.A,S.B,S.C,a1,b1,c1,a1,b1,c1,a1,b1,c1,a1,a1,a2,b2,b3,b2,c2,c1,c2,a1,a1,a2,b2,b3,b2,

24、c2,c1,c2,a1,a1,a2,b2,b3,b2,c2,c1,c2,a1,b2,c2,a1,b2,c2,a1,b2,c2,a2,b2,c1,a2,b2,c1,a2,b2,c1,66,高等課堂,2.4 關(guān)系代數(shù),概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算,67,高等課堂,2.4.2 專門的關(guān)系運(yùn)算,先引入幾個記號 (1) R,tR,tAi 設(shè)關(guān)系模式為R(A1,A2,An) 它的一個關(guān)系設(shè)為R tR表示t是R的一個元組 tAi則表示元組t中相應(yīng)于屬性Ai的一個分量,68,高等課堂,專門的關(guān)系運(yùn)算(續(xù),2) A,tA, A 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中

25、的一部分,則A稱為屬性列或?qū)傩越M。 tA=(tAi1,tAi2,tAik)表示元組t在屬性列A上諸分量的集合。 A 則表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的屬性組。 例如:學(xué)生(學(xué)號,姓名,性別,年齡,專業(yè),身高,體重,A,69,高等課堂,專門的關(guān)系運(yùn)算(續(xù),3) tr ts R為n目關(guān)系,S為m目關(guān)系。 tr R,tsS, tr ts稱為元組的連接。 tr ts是一個n + m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組,70,高等課堂,專門的關(guān)系運(yùn)算(續(xù),4)像集Zx 給定一個關(guān)系R(X,Z),X和Z為屬性組。 當(dāng)tX=x時,x在R中的像集(Ima

26、ges Set)為: Zx=tZ|t R,tX=x 它表示R中屬性組X上值為x的諸元組在Z上分量的集合,71,高等課堂,專門的關(guān)系運(yùn)算(續(xù),像集舉例,x1在R中的像集 Zx1 =Z1,Z2,Z3,x2在R中的像集 Zx2 =Z2,Z3,x3在R中的像集 Zx3=Z1,Z3,R,72,高等課堂,專門的關(guān)系運(yùn)算(續(xù),選擇 投影 連接 除,73,高等課堂,專門的關(guān)系運(yùn)算(續(xù),a,Student,學(xué)生-課程數(shù)據(jù)庫: 學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC,74,高等課堂,專門的關(guān)系運(yùn)算(續(xù),Course,b,75,高等課堂,專門的關(guān)系運(yùn)算(續(xù),c,SC,76,高等課堂,1. 選擇(

27、Selection,1) 選擇又稱為限制(Restriction) 2) 選擇運(yùn)算符的含義 在關(guān)系R中選擇滿足給定條件的諸元組 F(R) = t|tRF(t)= 真 F:選擇條件,是一個邏輯表達(dá)式,基本形式為: X1Y1,77,高等課堂,選擇(續(xù),3) 選擇運(yùn)算是從關(guān)系R中選取使邏輯表達(dá)式F為真的元組,是從行的角度進(jìn)行的運(yùn)算,78,高等課堂,選擇(續(xù),例1:查詢信息系(IS系)全體學(xué)生 Sdept = IS (Student) 或5 =IS (Student,查詢結(jié)果為,79,高等課堂,選擇(續(xù),例2:查詢年齡小于20歲的學(xué)生 Sage 20(Student) 或 4 20(Student,查

28、詢結(jié)果為,80,高等課堂,2. 投影(Projection,1)投影運(yùn)算符的含義 從R中選擇出若干屬性列組成新的關(guān)系 A(R) = tA | t R A:R中的屬性列,81,高等課堂,2. 投影(Projection,2)投影操作主要是從列的角度進(jìn)行運(yùn)算,但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行,82,高等課堂,投影(續(xù),例3: 查詢學(xué)生的姓名和所在系 即求Student關(guān)系上學(xué)生姓名和所在系兩個屬性上的投影 Sname,Sdept(Student) 或 2,5(Student,83,高等課堂,投影(續(xù),查詢結(jié)果為,84,高等課堂,投影(續(xù),例4:查詢學(xué)生關(guān)系S

29、tudent中都有哪些系。 即查詢關(guān)系Student上所在系屬性上的投影 Sdept(Student,查詢結(jié)果為,85,高等課堂,3. 連接(Join,連接運(yùn)算從R和S的廣義笛卡爾積RS中選?。≧關(guān)系) 在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較 關(guān)系的元組,1)連接也稱為連接,2)連接運(yùn)算的含義,從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組,R S = | tr Rts StrAtsB,A和B:分別為R和S上度數(shù)相等且可比的屬性組 :比較運(yùn)算符,86,高等課堂,連接(續(xù),3)兩類常用連接運(yùn)算 等值連接(equijoin) 什么是等值連接 為“”的連接運(yùn)算稱為等值連接 等值連接的

30、含義 從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為: R S = | tr Rts StrA = tsB,A=B,87,高等課堂,連接(續(xù),自然連接(Natural join) 自然連接是一種特殊的等值連接 兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組 在結(jié)果中把重復(fù)的屬性列去掉 自然連接的含義 R和S具有相同的屬性組B R S = | tr Rts StrB = tsB,88,高等課堂,連接(續(xù),4)一般的連接操作是從行的角度進(jìn)行運(yùn)算,自然連接還需要取消重復(fù)列,所以是同時從行和列的 角度進(jìn)行運(yùn)算,89,高等課堂,連接(續(xù),例5:關(guān)系R和關(guān)系S 如下所示,R,S,90

31、,高等課堂,連接(續(xù),一般連接 R S的結(jié)果如下,CE,注意:條件為 CE,91,高等課堂,連接(續(xù),等值連接 R S 的結(jié)果如下,92,高等課堂,連接(續(xù),自然連接 R S的結(jié)果如下,93,高等課堂,連接(續(xù),外連接 如果把舍棄的元組也保存在結(jié)果關(guān)系中,而在其他 屬性上填空值(Null),這種連接就叫做外連接 (OUTER JOIN,左外連接 如果只把左邊關(guān)系R中要舍棄的元組保留就叫做左外連接(LEFT OUTER JOIN或LEFT JOIN,右外連接 如果只把右邊關(guān)系S中要舍棄的元組保留就叫做右外連接(RIGHT OUTER JOIN或RIGHT JOIN,94,高等課堂,連接(續(xù),下圖

32、是例5中關(guān)系R和關(guān)系S的外連接,a) 外連接,95,高等課堂,連接(續(xù),圖(b)是例5中關(guān)系R和關(guān)系S的左外連接,b)左外連接,c)右外連接,圖(c)是右外連接,96,高等課堂,4. 除(Division,給定關(guān)系R (X,Y) 和S (Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。 R與S的除運(yùn)算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在 X 屬性列上的投影: 元組在X上分量值x的象集Yx包含S在Y上投影的集合.記作: RS = tr X | tr RY (S) Yx Yx:x在R中的象集,x = trX,97,高等課堂,除(續(xù),2

33、)除操作是同時從行和列角度進(jìn)行運(yùn)算,98,高等課堂,除(續(xù),例6:設(shè)關(guān)系R、S分別為下圖的(a)和(b),RS的結(jié)果為圖(c,R,c,b,R S,S,a,99,高等課堂,分析,在關(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) S在(B,C)上的投影為 (b1,c2),(b2,c1),(b2,c3) 只有a1的象集包含了S在(B,C)屬性組上的投影 所以 RS =a1,100,高等課堂,5綜合舉例,以學(xué)生-課程數(shù)據(jù)庫為例 (P56) 例7:查詢至少選修1號課程和3號課程的學(xué)生號碼 首先建立一個臨時關(guān)系K: 然后求:Sno,Cno(SC)K,101,高等課堂,綜合舉例(續(xù),例 7續(xù) Sno,Cno(SC) 200215121象集1,2,3 200215122象集2,3 K=1,3 于是:Sno,Cno(SC)K= 200215121,102,高等課堂,綜合舉例(續(xù),例 8:查詢選修了2號課程的學(xué)生的學(xué)號。 Sno(Cno=2(SC) 200215121,200215122,103,高等課堂,綜合舉例(續(xù),例9:查詢至少選修了一

溫馨提示

  • 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

提交評論