數(shù)據(jù)庫系統(tǒng)概論(王珊_薩師煊)第二章關(guān)系數(shù)據(jù)庫07746_第1頁
數(shù)據(jù)庫系統(tǒng)概論(王珊_薩師煊)第二章關(guān)系數(shù)據(jù)庫07746_第2頁
數(shù)據(jù)庫系統(tǒng)概論(王珊_薩師煊)第二章關(guān)系數(shù)據(jù)庫07746_第3頁
數(shù)據(jù)庫系統(tǒng)概論(王珊_薩師煊)第二章關(guān)系數(shù)據(jù)庫07746_第4頁
數(shù)據(jù)庫系統(tǒng)概論(王珊_薩師煊)第二章關(guān)系數(shù)據(jù)庫07746_第5頁
已閱讀5頁,還剩167頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)概論An Introduction to Database System第二章 關(guān)系數(shù)據(jù)庫An Introduction to Database System關(guān)系數(shù)據(jù)庫簡介提出關(guān)系模型的是美國IBM公司的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)系的BC范式An Introduction to Database S

2、ystem第二章 關(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é)An Introduction to Database System2.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ù)庫An Introduction to Database System 關(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ǔ)上 An Introduction to Database System關(guān)

3、系(續(xù)) 域(Domain) 2. 笛卡爾積(Cartesian Product) 3. 關(guān)系(Relation)An Introduction to Database System 域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)實(shí)數(shù)介于某個(gè)取值范圍的整數(shù)長度指定長度的字符串集合男,女.An Introduction to Database System2. 笛卡爾積(Cartesian Product)笛卡爾積 給定一組域D1,D2,Dn,這些域中可以有相同的。 D1,D2,Dn的笛卡爾積為: D1D2Dn (d1,d2,dn)diDi,i1,2,n所有域的所有取值的一個(gè)組合

4、不能重復(fù)An Introduction to Database System笛卡爾積(續(xù)) 元組(Tuple)笛卡爾積中每一個(gè)元素(d1,d2,dn)叫作一個(gè)n元組(n-tuple)或簡稱元組(Tuple)(張清玫,計(jì)算機(jī)專業(yè),李勇)、(張清玫,計(jì)算機(jī)專業(yè),劉晨)等都是元組 分量(Component)笛卡爾積元素(d1,d2,dn)中的每一個(gè)值di叫作一個(gè)分量張清玫、計(jì)算機(jī)專業(yè)、李勇、劉晨等都是分量 An Introduction to Database System笛卡爾積(續(xù))基數(shù)(Cardinal number)若Di(i1,2,n)為有限集,其基數(shù)為mi(i1,2,n),則D1D2Dn

5、的基數(shù)M為:笛卡爾積的表示方法笛卡爾積可表示為一個(gè)二維表表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域An Introduction to Database System An Introduction to Database System3. 關(guān)系(Relation)1) 關(guān)系D1D2Dn的子集叫作在域D1,D2,Dn上的關(guān)系,表示為 R(D1,D2,Dn) R:關(guān)系名n:關(guān)系的目或度(Degree)An Introduction to Database System關(guān)系(續(xù))2) 元組關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。3) 單元關(guān)系與二元關(guān)系當(dāng)n=1時(shí),稱該關(guān)系為單元關(guān)系(Una

6、ry relation) 或一元關(guān)系 當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系(Binary relation)An Introduction to Database System關(guān)系(續(xù))4) 關(guān)系的表示關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域An Introduction to Database System關(guān)系(續(xù))5)屬性關(guān)系中不同列可以對(duì)應(yīng)相同的域?yàn)榱思右詤^(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性(Attribute)n目關(guān)系必有n個(gè)屬性An Introduction to Database System關(guān)系(續(xù))6) 碼候選碼(Candidate key) 若關(guān)系中的某一屬性組

7、的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼 簡單的情況:候選碼只包含一個(gè)屬性全碼(All-key) 最極端的情況:關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼,稱為全碼(All-key)An Introduction to Database System關(guān)系(續(xù))碼(續(xù))主碼若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primary key)主屬性候選碼的諸屬性稱為主屬性(Prime attribute)不包含在任何侯選碼中的屬性稱為非主屬性( Non-Prime attribute)或非碼屬性(Non-key attribute) An Introduction to Database

8、System關(guān)系(續(xù))D1,D2,Dn的笛卡爾積的某個(gè)子集才有實(shí)際含義例:表2.1 的笛卡爾積沒有實(shí)際意義 取出有實(shí)際意義的元組來構(gòu)造關(guān)系關(guān)系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假設(shè):導(dǎo)師與專業(yè):1:1, 導(dǎo)師與研究生:1:n主碼:POSTGRADUATE(假設(shè)研究生不會(huì)重名) SAP關(guān)系可以包含三個(gè)元組 (張清玫,計(jì)算機(jī)專業(yè),李勇), (張清玫,計(jì)算機(jī)專業(yè),劉晨), (劉逸,信息專業(yè),王敏) An Introduction to Database System關(guān)系(續(xù))7) 三類關(guān)系基本關(guān)系(基本表或基表)實(shí)際存在的表,是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示查詢

9、表查詢結(jié)果對(duì)應(yīng)的表視圖表由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)An Introduction to Database System關(guān)系(續(xù))8)基本關(guān)系的性質(zhì) 列是同質(zhì)的(Homogeneous) 不同的列可出自同一個(gè)域其中的每一列稱為一個(gè)屬性不同的屬性要給予不同的屬性名 列的順序無所謂,,列的次序可以任意交換 任意兩個(gè)元組的候選碼不能相同 行的順序無所謂,行的次序可以任意交換An Introduction to Database System基本關(guān)系的性質(zhì)(續(xù)) 分量必須取原子值這是規(guī)范條件中最基本的一條 表2.3 非規(guī)范化關(guān)系A(chǔ)n Introduction to Dat

10、abase System2.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ù)庫An Introduction to Database System2.1.2 關(guān)系模式1什么是關(guān)系模式2定義關(guān)系模式3. 關(guān)系模式與關(guān)系A(chǔ)n Introduction to Database System1什么是關(guān)系模式關(guān)系模式(Relation Schema)是型關(guān)系是值關(guān)系模式是對(duì)關(guān)系的描述元組集合的結(jié)構(gòu)屬性構(gòu)成屬性來自的域 屬性與域之間的映象關(guān)系元組語義以及完整性約束條件屬性間的數(shù)據(jù)依賴關(guān)系集合An Introduction to Database System2定義關(guān)系模式關(guān)系模式可

11、以形式化地表示為: R(U,D,DOM,F(xiàn))R 關(guān)系名U 組成該關(guān)系的屬性名集合D 屬性組U中屬性所來自的域DOM 屬性向域的映象集合F 屬性間的數(shù)據(jù)依賴關(guān)系集合An Introduction to Database System定義關(guān)系模式 (續(xù))例:導(dǎo)師和研究生出自同一個(gè)域人,取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個(gè)域: DOM(SUPERVISOR-PERSON)= DOM(POSTGRADUATE-PERSON)=PERSONAn Introduction to Database System定義關(guān)系模式 (續(xù))關(guān)系模式通??梢院営洖?R (U) 或 R (

12、A1,A2,An)R: 關(guān)系名A1,A2,An : 屬性名注:域名及屬性向域的映象常常直接說明為 屬性的類型、長度An Introduction to Database System3. 關(guān)系模式與關(guān)系關(guān)系模式對(duì)關(guān)系的描述靜態(tài)的、穩(wěn)定的關(guān)系關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容動(dòng)態(tài)的、隨時(shí)間不斷變化的關(guān)系模式和關(guān)系往往統(tǒng)稱為關(guān)系 通過上下文加以區(qū)別An Introduction to Database System2.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ù)庫An Introduction to Database System2.1.3 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫在一個(gè)給定的

13、應(yīng)用領(lǐng)域中,所有關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫的型與值A(chǔ)n Introduction to Database System2. 關(guān)系數(shù)據(jù)庫的型與值關(guān)系數(shù)據(jù)庫的型: 關(guān)系數(shù)據(jù)庫模式 對(duì)關(guān)系數(shù)據(jù)庫的描述。關(guān)系數(shù)據(jù)庫模式包括若干域的定義在這些域上定義的若干關(guān)系模式關(guān)系數(shù)據(jù)庫的值: 關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,簡稱為關(guān)系數(shù)據(jù)庫An Introduction to Database System第二章 關(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é)An Introduction to Database System基本關(guān)系操

14、作 常用的關(guān)系操作查詢:選擇、投影、連接、除、并、交、差數(shù)據(jù)更新:插入、刪除、修改查詢的表達(dá)能力是其中最主要的部分選擇、投影、并、差、笛卡爾基是5種基本操作 關(guān)系操作的特點(diǎn)集合操作方式:操作的對(duì)象和結(jié)果都是集合,一次一集合的方式An Introduction to Database System2.2.2 關(guān)系數(shù)據(jù)庫語言的分類 關(guān)系代數(shù)語言用對(duì)關(guān)系的運(yùn)算來表達(dá)查詢要求代表:ISBL關(guān)系演算語言:用謂詞來表達(dá)查詢要求元組關(guān)系演算語言謂詞變元的基本對(duì)象是元組變量代表:APLHA, QUEL域關(guān)系演算語言 謂詞變元的基本對(duì)象是域變量代表:QBE具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言代表:SQL(Str

15、uctured Query Language) An Introduction to Database System第二章 關(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é)An Introduction to Database System2.3 關(guān)系的完整性2.3.1 關(guān)系的三類完整性約束2.3.2 實(shí)體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.1 關(guān)系的三類完整性約束實(shí)體完整性和參照完整性: 關(guān)系模型必須滿足的完整性約束條件 稱

16、為關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持用戶定義的完整性: 應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束 An Introduction to Database System2.3 關(guān)系的完整性關(guān)系的三類完整性約束2.3.2 實(shí)體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.2 實(shí)體完整性規(guī)則2.1 實(shí)體完整性規(guī)則(Entity Integrity) 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值 例:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRAD

17、UATE:主碼(假設(shè)研究生不會(huì)重名)不能取空值A(chǔ)n Introduction to Database System實(shí)體完整性(續(xù))實(shí)體完整性規(guī)則的說明(1) 實(shí)體完整性規(guī)則是針對(duì)基本關(guān)系而言的。一個(gè)基本表通常對(duì)應(yīng)現(xiàn) 實(shí)世界的一個(gè)實(shí)體集。(2) 現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí)。(3) 關(guān)系模型中以主碼作為唯一性標(biāo)識(shí)。(4) 主碼中的屬性即主屬性不能取空值。主屬性取空值,就說明存在某個(gè)不可標(biāo)識(shí)的實(shí)體,即存在不可區(qū)分的實(shí)體,這與第(2)點(diǎn)相矛盾,因此這個(gè)規(guī)則稱為實(shí)體完整性An Introduction to Database System實(shí)體完整性(續(xù))注意實(shí)體完整性規(guī)則規(guī)定基

18、本關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。例: 選修(學(xué)號(hào),課程號(hào),成績) “學(xué)號(hào)、課程號(hào)”為主碼, 則學(xué)號(hào)和課程號(hào)兩個(gè)屬性都不能取空值A(chǔ)n Introduction to Database System關(guān)系的完整性關(guān)系的三類完整性約束2.3.2 實(shí)體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.3 參照完整性1. 關(guān)系間的引用2. 外碼3. 參照完整性規(guī)則An Introduction to Database System1. 關(guān)系間的引用在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描 述的

19、,因此可能存在著關(guān)系與關(guān)系間的引用。例1 學(xué)生實(shí)體、專業(yè)實(shí)體學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡) 專業(yè)(專業(yè)號(hào),專業(yè)名)主碼主碼學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號(hào)”。 學(xué)生關(guān)系中的“專業(yè)號(hào)”值必須是確實(shí)存在的專業(yè)的專業(yè)號(hào) ,即專業(yè) 關(guān)系中有該專業(yè)的記錄。An Introduction to Database System關(guān)系間的引用(續(xù))例2 學(xué)生、課程、學(xué)生與課程之間的多對(duì)多聯(lián)系 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡) 課程(課程號(hào),課程名,學(xué)分) 選修(學(xué)號(hào),課程號(hào),成績)An Introduction to Database System關(guān)系間的引用(續(xù))例3 學(xué)生實(shí)體及其內(nèi)部的一對(duì)

20、多聯(lián)系 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長)“學(xué)號(hào)”是主碼,“班長”是外碼,它引用了本關(guān)系的“學(xué)號(hào)” “班長” 必須是確實(shí)存在的學(xué)生的學(xué)號(hào) An Introduction to Database System2外碼(Foreign Key)設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對(duì)應(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)An Introduction to Database Sys

21、tem外碼(續(xù))例1:學(xué)生關(guān)系的“專業(yè)號(hào)與專業(yè)關(guān)系的主碼“專業(yè)號(hào)”相對(duì)應(yīng)“專業(yè)號(hào)”屬性是學(xué)生關(guān)系的外碼專業(yè)關(guān)系是被參照關(guān)系,學(xué)生關(guān)系為參照關(guān)系 An Introduction to Database System外碼(續(xù))例2: 選修關(guān)系的“學(xué)號(hào)” 與學(xué)生關(guān)系的主碼“學(xué)號(hào)”相對(duì)應(yīng) 選修關(guān)系的“課程號(hào)”與課程關(guān)系的主碼“課程號(hào)”相對(duì)應(yīng)“學(xué)號(hào)”和“課程號(hào)”是選修關(guān)系的外碼學(xué)生關(guān)系和課程關(guān)系均為被參照關(guān)系選修關(guān)系為參照關(guān)系 An Introduction to Database System外碼(續(xù))例3:“班長”與本身的主碼“學(xué)號(hào)”相對(duì)應(yīng)“班長”是外碼學(xué)生關(guān)系既是參照關(guān)系也是被參照關(guān)系 An In

22、troduction to Database System外碼(續(xù))關(guān)系R和S不一定是不同的關(guān)系目標(biāo)關(guān)系S的主碼Ks 和參照關(guān)系的外碼F必須定義在同一個(gè)(或一組)域上外碼并不一定要與相應(yīng)的主碼同名 當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時(shí),往往取相同的名 字,以便于識(shí)別An Introduction to Database System3. 參照完整性規(guī)則規(guī)則2.2 參照完整性規(guī)則 若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值)或者等于S中某個(gè)元組的主碼值A(chǔ)n Intro

23、duction to Database System參照完整性規(guī)則(續(xù))例1:學(xué)生關(guān)系中每個(gè)元組的“專業(yè)號(hào)”屬性只取兩類值:(1)空值,表示尚未給該學(xué)生分配專業(yè)(2)非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的“專業(yè)號(hào)”值,表示該學(xué)生不可能分配一個(gè)不存在的專業(yè)An Introduction to Database System參照完整性規(guī)則(續(xù))例2 :選修(學(xué)號(hào),課程號(hào),成績)“學(xué)號(hào)”和“課程號(hào)”可能的取值 : (1)選修關(guān)系中的主屬性,不能取空值 (2)只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值A(chǔ)n Introduction to Database System參照完整性規(guī)則(續(xù))例3:學(xué)生(學(xué)

24、號(hào),姓名,性別,專業(yè)號(hào),年齡,班長)“班長”屬性值可以取兩類值:(1)空值,表示該學(xué)生所在班級(jí)尚未選出班長(2)非空值,該值必須是本關(guān)系中某個(gè)元組的學(xué)號(hào)值A(chǔ)n Introduction to Database System關(guān)系的完整性(續(xù))關(guān)系的三類完整性約束2.3.2 實(shí)體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.4 用戶定義的完整性針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承

25、擔(dān)這一功能An Introduction to Database System用戶定義的完整性(續(xù))例: 課程(課程號(hào),課程名,學(xué)分)“課程號(hào)”屬性必須取唯一值非主屬性“課程名”也不能取空值“學(xué)分”屬性只能取值1,2,3,4An Introduction to Database System第二章 關(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 小結(jié)An Introduction to Database System 關(guān)系代數(shù) 概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算An Introduction to Database System集

26、合運(yùn)算符-并差交笛卡爾積比較運(yùn)算符 大于大于等于小于小于等于等于不等于運(yùn)算符含義運(yùn)算符含義表2.4 關(guān)系代數(shù)運(yùn)算符 概 述An Introduction to Database System專門的關(guān)系運(yùn)算符 選擇投影連接除邏輯運(yùn)算符 非與或運(yùn)算符含義運(yùn)算符含義表2.4 關(guān)系代數(shù)運(yùn)算符(續(xù)) 概 述(續(xù))An Introduction to Database System 關(guān)系代數(shù) 概述傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算An Introduction to Database System1. 并(Union)R和S具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性)相應(yīng)的屬性取自同一個(gè)域RS 仍為n目關(guān)系,由屬

27、于R或?qū)儆赟的元組組成 RS = t|t Rt S An Introduction to Database System并(續(xù))An Introduction to Database System2. 差(Difference)R和S具有相同的目n相應(yīng)的屬性取自同一個(gè)域R - S 仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成 R -S = t|tRtS An Introduction to Database System差(續(xù))An Introduction to Database System3. 交(Intersection)R和S具有相同的目n相應(yīng)的屬性取自同一個(gè)域RS仍為n目關(guān)系,由

28、既屬于R又屬于S的元組組成 RS = t|t Rt S RS = R (R-S)An Introduction to Database System交 (續(xù))An Introduction to Database System4. 笛卡爾積(Cartesian Product)嚴(yán)格地講應(yīng)該是廣義的笛卡爾積(Extended Cartesian Product) R: n目關(guān)系,k1個(gè)元組S: m目關(guān)系,k2個(gè)元組RS 列:(n+m)列元組的集合元組的前n列是關(guān)系R的一個(gè)元組后m列是關(guān)系S的一個(gè)元組行:k1k2個(gè)元組RS = tr ts |tr R tsS An Introduction to

29、Database System交 (續(xù))An Introduction to Database System 關(guān)系代數(shù)概述傳統(tǒng)的集合運(yùn)算專門的關(guān)系運(yùn)算An Introduction to Database System2.4.2 專門的關(guān)系運(yùn)算先引入幾個(gè)記號(hào) (1) R,tR,tAi 設(shè)關(guān)系模式為R(A1,A2,An) 它的一個(gè)關(guān)系設(shè)為R tR表示t是R的一個(gè)元組 tAi則表示元組t中相應(yīng)于屬性Ai的一個(gè)分量 An Introduction to Database System專門的關(guān)系運(yùn)算(續(xù))(2) A,tA, A 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An

30、中的一部分,則A稱為屬性列或?qū)傩越M。 tA=(tAi1,tAi2,tAik)表示元組t在屬性列A上諸分量的集合。 A則表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的屬性組。 An Introduction to Database System專門的關(guān)系運(yùn)算(續(xù))(3) tr ts R為n目關(guān)系,S為m目關(guān)系。 tr R,tsS, tr ts稱為元組的連接。 tr ts是一個(gè)n + m列的元組,前n個(gè)分量為R中的一個(gè)n元組,后m個(gè)分量為S中的一個(gè)m元組。 An Introduction to Database System專門的關(guān)系運(yùn)算(續(xù))(4)象集Zx 給定一個(gè)關(guān)系R(X,Z),X

31、和Z為屬性組。 當(dāng)tX=x時(shí),x在R中的象集(Images Set)為: Zx=tZ|t R,tX=x 它表示R中屬性組X上值為x的諸元組在Z上分量的集合 An Introduction to Database System專門的關(guān)系運(yùn)算(續(xù))x1在R中的象集 Zx1 =Z1,Z2,Z3,x2在R中的象集 Zx2 =Z2,Z3,x3在R中的象集 Zx3=Z1,Z3象集舉例 An Introduction to Database System專門的關(guān)系運(yùn)算(續(xù))選擇投影連接除An Introduction to Database System專門的關(guān)系運(yùn)算(續(xù))(a) Student4) 學(xué)生-

32、課程數(shù)據(jù)庫: 學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC學(xué)號(hào)Sno姓名Sname性別Ssex年齡Sage所在系Sdept200215121李勇男20CS200215122劉晨女19IS200215123王敏女18MA200215125張立男19ISAn Introduction to Database System專門的關(guān)系運(yùn)算(續(xù))課程號(hào)Cno課程名Cname先行課Cpno學(xué)分Ccredit1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL語言64Course(b)An Introduction to Database System專門的

33、關(guān)系運(yùn)算(續(xù))(c)SC學(xué)號(hào)Sno課程號(hào)Cno成績Grade200215121192200215121285200215121388200215122290200215122380An Introduction to Database System1. 選擇(Selection) 1) 選擇又稱為限制(Restriction)2) 選擇運(yùn)算符的含義在關(guān)系R中選擇滿足給定條件的諸元組 F(R) = t|tRF(t)= 真F:選擇條件,是一個(gè)邏輯表達(dá)式,基本形式為: X1Y1An Introduction to Database System選擇(續(xù))3) 選擇運(yùn)算是從關(guān)系R中選取使邏輯表達(dá)式F為

34、真的元組,是從行的角度進(jìn)行的運(yùn)算An Introduction to Database System選擇(續(xù))例1 查詢信息系(IS系)全體學(xué)生 Sdept = IS (Student)或 5 =IS (Student) 結(jié)果: SnoSnameSsexSageSdept200215122劉晨女19IS200215125張立男19ISAn Introduction to Database System選擇(續(xù))例2 查詢年齡小于20歲的學(xué)生 Sage 20(Student) 或 4 20(Student)結(jié)果: SnoSnameSsexSageSdept200215122劉晨女19IS2002

35、15123王敏女18MA200215125張立男19ISAn Introduction to Database System2. 投影(Projection) 1)投影運(yùn)算符的含義從R中選擇出若干屬性列組成新的關(guān)系 A(R) = tA | t R A:R中的屬性列An Introduction to Database System2. 投影(Projection) 2)投影操作主要是從列的角度進(jìn)行運(yùn)算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)An Introduction to Database System投影(續(xù))例3 查詢學(xué)生的姓名和所在系即求Studen

36、t關(guān)系上學(xué)生姓名和所在系兩個(gè)屬性上的投影 Sname,Sdept(Student)或 2,5(Student)結(jié)果:An Introduction to Database System投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立ISAn Introduction to Database System投影(續(xù))例4 查詢學(xué)生關(guān)系Student中都有哪些系 Sdept(Student)結(jié)果:SdeptCSISMAAn Introduction to Database System3. 連接(Join) 1)連接也稱為連接2)連接運(yùn)算的含義從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的

37、元組 R S = | tr Rts StrAtsB A和B:分別為R和S上度數(shù)相等且可比的屬性組:比較運(yùn)算符連接運(yùn)算從R和S的廣義笛卡爾積RS中選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組 ABtr tsAn Introduction to Database System 連接(續(xù)) 3)兩類常用連接運(yùn)算等值連接(equijoin) 什么是等值連接為“”的連接運(yùn)算稱為等值連接 等值連接的含義從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為: R S = | tr Rts StrA = tsB A=Btr tsAn Introduction

38、to Database System 連接(續(xù)) 自然連接(Natural join) 自然連接是一種特殊的等值連接兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義R和S具有相同的屬性組B R S = | tr Rts StrB = tsB tr tsAn Introduction to Database System連接(續(xù))4)一般的連接操作是從行的角度進(jìn)行運(yùn)算。 自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列的角度進(jìn)行運(yùn)算。 ABRSAn Introduction to Database System連接(續(xù))例5關(guān)系R和關(guān)系S 如下所示:An Intro

39、duction to Database System連接(續(xù))一般連接 R S的結(jié)果如下: CEAn Introduction to Database System連接(續(xù)) 等值連接 R S 的結(jié)果如下:R.B=S.B An Introduction to Database System連接(續(xù)) 自然連接 R S的結(jié)果如下: An Introduction to Database System連接(續(xù))外連接如果把舍棄的元組也保存在結(jié)果關(guān)系中,而在其他屬性上填空值(Null),這種連接就叫做外連接(OUTER JOIN)。左外連接如果只把左邊關(guān)系R中要舍棄的元組保留就叫做左外連接(LEFT

40、 OUTER JOIN或LEFT JOIN)右外連接如果只把右邊關(guān)系S中要舍棄的元組保留就叫做右外連接(RIGHT OUTER JOIN或RIGHT JOIN)。 An Introduction to Database System連接(續(xù))下圖是例5中關(guān)系R和關(guān)系S的外連接 An Introduction to Database System連接(續(xù))圖(b)是例5中關(guān)系R和關(guān)系S的左外連接,圖(c)是右外連接 An Introduction to Database System4. 除(Division) 給定關(guān)系R (X,Y) 和S (Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y

41、可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在 X 屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合,記作: RS = tr X | tr RY (S) Yx Yx:x在R中的象集,x = trXAn Introduction to Database System除(續(xù))2)除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算RSAn Introduction to Database System除(續(xù))例6設(shè)關(guān)系R、S分別為下圖的(a)和(b),RS的結(jié)果為圖(c) An Introduction to Database Syst

42、em分析在關(guān)系R中,A可以取四個(gè)值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 An Introduction to Database System5綜合舉例 以學(xué)生-課程數(shù)據(jù)庫為例 (P56)例7 查詢至少選修1號(hào)課程和3號(hào)課程的學(xué)生號(hào)碼首先建立一個(gè)臨時(shí)關(guān)系K: 然后求:Sno,Cno(SC)K Cno 1

43、3An Introduction to Database System綜合舉例(續(xù))例 7續(xù) Sno,Cno(SC)200215121象集1,2,3200215122象集2,3 K=1,3 于是:Sno,Cno(SC)K=200215121SnoCno20021512112002151212200215121320021512222002151223An Introduction to Database System綜合舉例(續(xù))例 8 查詢選修了2號(hào)課程的學(xué)生的學(xué)號(hào)。 Sno(Cno=2(SC) 200215121,200215122An Introduction to Database S

44、ystem綜合舉例(續(xù))例9 查詢至少選修了一門其直接先行課為5號(hào)課程的 的學(xué)生姓名 Sname(Cpno=5(Course SC Student)或 Sname(Cpno=5(Course) SC Sno,Sname(Student)或 Sname (Sno (Cpno=5 (Course) SC) Sno,Sname (Student) An Introduction to Database System綜合舉例(續(xù))例10 查詢選修了全部課程的學(xué)生號(hào)碼和姓名。 Sno,Cno(SC)Cno(Course) Sno,Sname(Student) An Introduction to Dat

45、abase System小結(jié) 關(guān)系代數(shù)運(yùn)算關(guān)系代數(shù)運(yùn)算并、差、交、笛卡爾積、投影、選擇、連接、除基本運(yùn)算并、差、笛卡爾積、投影、選擇交、連接、除可以用5種基本運(yùn)算來表達(dá) 引進(jìn)它們并不增加語言的能力,但可以簡化表達(dá)An Introduction to Database System小結(jié)(續(xù)) 關(guān)系代數(shù)表達(dá)式關(guān)系代數(shù)運(yùn)算經(jīng)有限次復(fù)合后形成的式子典型關(guān)系代數(shù)語言ISBL(Information System Base Language)由IBM United Kingdom研究中心研制用于PRTV(Peterlee Relational Test Vehicle)實(shí)驗(yàn)系統(tǒng) An Introducti

46、on to Database System第二章 關(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 小結(jié)An Introduction to Database System2.5 關(guān)系演算 關(guān)系演算以數(shù)理邏輯中的謂詞演算為基礎(chǔ)按謂詞變元不同 進(jìn)行分類1.元組關(guān)系演算: 以元組變量作為謂詞變元的基本對(duì)象 元組關(guān)系演算語言ALPHA2.域關(guān)系演算: 以域變量作為謂詞變元的基本對(duì)象 域關(guān)系演算語言QBEAn Introduction to Database System2.5.1 元組關(guān)系演算語言ALPHA由提出INGRES所用的QUEL語

47、言是參照ALPHA語言研制的語句檢索語句GET更新語句PUT,HOLD,UPDATE,DELETE,DROPAn Introduction to Database System一、檢索操作 語句格式: GET工作空間名 (定額)(表達(dá)式1) :操作條件 DOWN/UP 表達(dá)式2定額:規(guī)定檢索的元組個(gè)數(shù)格式: 數(shù)字表達(dá)式1:指定語句的操作對(duì)象格式:關(guān)系名| 關(guān)系名. 屬性名| 元組變量. 屬性名| 集函數(shù) , 操作條件:將操作結(jié)果限定在滿足條件的元組中格式: 邏輯表達(dá)式表達(dá)式2:指定排序方式格式: 關(guān)系名. 屬性名| 元組變量. 屬性名, An Introduction to Database

48、System一、檢索操作 (1)簡單檢索 GET工作空間名 (表達(dá)式1)例1 查詢所有被選修的課程號(hào)碼。 GET W ()例2 查詢所有學(xué)生的數(shù)據(jù)。 GET W (Student)An Introduction to Database System(2)限定的檢索格式 GET工作空間名(表達(dá)式1):操作條件例3查詢信息系(IS)中年齡小于20歲的學(xué)生的學(xué)號(hào)和年齡 GET W (,Student.Sage): =IS Student.Sage19An Introduction to Database System條件查詢(與條件)例4 求計(jì)算機(jī)科學(xué)系年齡大于19歲的學(xué)生的學(xué)號(hào)。方法(1):把兩個(gè)

49、條件寫在同一行上StudentSnoSnameSsexSageSdeptP.20021512119CSAn Introduction to Database System條件查詢(與條件) 方法(2):把兩個(gè)條件寫在不同行上,但使用相同的示例元 素值StudentSnoSnameSsexSageSdeptP.200215121P.20021512119CSAn Introduction to Database System條件查詢(與條件)例5 查詢既選修了1號(hào)課程又選修了2號(hào)課程的學(xué)生的學(xué)號(hào)。 ScSnoCnoGradeP.200215121P.20021512112An Introduct

50、ion to Database System條件查詢(或條件)例6查詢計(jì)算機(jī)科學(xué)系或者年齡大于19歲的學(xué)生的 學(xué)號(hào)。StudentSnoSnameSsexSageSdeptP.200215121P.20021512219CSAn Introduction to Database System條件查詢(多表連接)例7 查詢選修1號(hào)課程的學(xué)生姓名。 StudentSnoSnameSsexSageSdept200215121P.李勇注意:示例元素Sno是連接屬性,其值在兩個(gè)表中要相同。 ScSnoCnoGrade2002151211An Introduction to Database System

51、條件查詢(非條件)例8 查詢未選修1號(hào)課程的學(xué)生姓名 StudentSnoSnameSsexSageSdept200215121P.李勇思路:顯示學(xué)號(hào)為200215121的學(xué)生名字,而該學(xué)生選修1號(hào)課程的情況為假ScSnoCnoGrade2002151211An Introduction to Database System條件查詢(續(xù))例9 查詢有兩個(gè)人以上選修的課程號(hào)。思路:查詢這樣的課程1,它不僅被200215121選修 而且也被另一個(gè)學(xué)生(200215121)選修了ScSnoCnoGrade200215121 200215121P.11An Introduction to Database System3. 聚集函數(shù)常用聚集函數(shù):QBE中的聚集函數(shù) 函數(shù)名功能CNT對(duì)元組計(jì)數(shù)SUM求總和AVG求平均值MAX求最大值MIN求最小值A(chǔ)n Introduction to Database System聚集函數(shù)(續(xù))例10 查詢信息系學(xué)生的平均年齡。 StudentSnoSnameSsexSageSd

溫馨提示

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

評(píng)論

0/150

提交評(píng)論