版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、數(shù)據(jù)庫系統(tǒng)概論An Introduction to Database System第二章 關系數(shù)據(jù)庫An Introduction to Database System關系數(shù)據(jù)庫簡介提出關系模型的是美國IBM公司的1970年提出關系數(shù)據(jù)模型E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM,1970之后,提出了關系代數(shù)和關系演算的概念1972年提出了關系的第一、第二、第三范式1974年提出了關系的BC范式An Introduction to Database S
2、ystem第二章 關系數(shù)據(jù)庫2.1 關系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2 關系操作2.3 關系的完整性2.4 關系代數(shù)2.5 關系演算2.6 小結(jié)An Introduction to Database System2.1 關系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.1.1 關系2.1.2 關系模式2.1.3 關系數(shù)據(jù)庫An Introduction to Database System 關系單一的數(shù)據(jù)結(jié)構(gòu)-關系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示邏輯結(jié)構(gòu)-二維表 從用戶角度,關系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表建立在集合代數(shù)的基礎上 An Introduction to Database System關
3、系(續(xù)) 域(Domain) 2. 笛卡爾積(Cartesian Product) 3. 關系(Relation)An Introduction to Database System 域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)實數(shù)介于某個取值范圍的整數(shù)長度指定長度的字符串集合男,女.An Introduction to Database System2. 笛卡爾積(Cartesian Product)笛卡爾積 給定一組域D1,D2,Dn,這些域中可以有相同的。 D1,D2,Dn的笛卡爾積為: D1D2Dn (d1,d2,dn)diDi,i1,2,n所有域的所有取值的一個組合
4、不能重復An Introduction to Database System笛卡爾積(續(xù)) 元組(Tuple)笛卡爾積中每一個元素(d1,d2,dn)叫作一個n元組(n-tuple)或簡稱元組(Tuple)(張清玫,計算機專業(yè),李勇)、(張清玫,計算機專業(yè),劉晨)等都是元組 分量(Component)笛卡爾積元素(d1,d2,dn)中的每一個值di叫作一個分量張清玫、計算機專業(yè)、李勇、劉晨等都是分量 An Introduction to Database System笛卡爾積(續(xù))基數(shù)(Cardinal number)若Di(i1,2,n)為有限集,其基數(shù)為mi(i1,2,n),則D1D2Dn
5、的基數(shù)M為:笛卡爾積的表示方法笛卡爾積可表示為一個二維表表中的每行對應一個元組,表中的每列對應一個域An Introduction to Database System An Introduction to Database System3. 關系(Relation)1) 關系D1D2Dn的子集叫作在域D1,D2,Dn上的關系,表示為 R(D1,D2,Dn) R:關系名n:關系的目或度(Degree)An Introduction to Database System關系(續(xù))2) 元組關系中的每個元素是關系中的元組,通常用t表示。3) 單元關系與二元關系當n=1時,稱該關系為單元關系(Una
6、ry relation) 或一元關系 當n=2時,稱該關系為二元關系(Binary relation)An Introduction to Database System關系(續(xù))4) 關系的表示關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域An Introduction to Database System關系(續(xù))5)屬性關系中不同列可以對應相同的域為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute)n目關系必有n個屬性An Introduction to Database System關系(續(xù))6) 碼候選碼(Candidate key) 若關系中的某一屬性組
7、的值能唯一地標識一個元組,則稱該屬性組為候選碼 簡單的情況:候選碼只包含一個屬性全碼(All-key) 最極端的情況:關系模式的所有屬性組是這個關系模式的候選碼,稱為全碼(All-key)An Introduction to Database System關系(續(xù))碼(續(xù))主碼若一個關系有多個候選碼,則選定其中一個為主碼(Primary key)主屬性候選碼的諸屬性稱為主屬性(Prime attribute)不包含在任何侯選碼中的屬性稱為非主屬性( Non-Prime attribute)或非碼屬性(Non-key attribute) An Introduction to Database
8、System關系(續(xù))D1,D2,Dn的笛卡爾積的某個子集才有實際含義例:表2.1 的笛卡爾積沒有實際意義 取出有實際意義的元組來構(gòu)造關系關系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假設:導師與專業(yè):1:1, 導師與研究生:1:n主碼:POSTGRADUATE(假設研究生不會重名) SAP關系可以包含三個元組 (張清玫,計算機專業(yè),李勇), (張清玫,計算機專業(yè),劉晨), (劉逸,信息專業(yè),王敏) An Introduction to Database System關系(續(xù))7) 三類關系基本關系(基本表或基表)實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示查詢
9、表查詢結(jié)果對應的表視圖表由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數(shù)據(jù)An Introduction to Database System關系(續(xù))8)基本關系的性質(zhì) 列是同質(zhì)的(Homogeneous) 不同的列可出自同一個域其中的每一列稱為一個屬性不同的屬性要給予不同的屬性名 列的順序無所謂,,列的次序可以任意交換 任意兩個元組的候選碼不能相同 行的順序無所謂,行的次序可以任意交換An Introduction to Database System基本關系的性質(zhì)(續(xù)) 分量必須取原子值這是規(guī)范條件中最基本的一條 表2.3 非規(guī)范化關系An Introduction to Dat
10、abase System2.1 關系數(shù)據(jù)結(jié)構(gòu)2.1.1 關系2.1.2 關系模式2.1.3 關系數(shù)據(jù)庫An Introduction to Database System2.1.2 關系模式1什么是關系模式2定義關系模式3. 關系模式與關系An Introduction to Database System1什么是關系模式關系模式(Relation Schema)是型關系是值關系模式是對關系的描述元組集合的結(jié)構(gòu)屬性構(gòu)成屬性來自的域 屬性與域之間的映象關系元組語義以及完整性約束條件屬性間的數(shù)據(jù)依賴關系集合An Introduction to Database System2定義關系模式關系模式可
11、以形式化地表示為: R(U,D,DOM,F(xiàn))R 關系名U 組成該關系的屬性名集合D 屬性組U中屬性所來自的域DOM 屬性向域的映象集合F 屬性間的數(shù)據(jù)依賴關系集合An Introduction to Database System定義關系模式 (續(xù))例:導師和研究生出自同一個域人,取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個域: DOM(SUPERVISOR-PERSON)= DOM(POSTGRADUATE-PERSON)=PERSONAn Introduction to Database System定義關系模式 (續(xù))關系模式通常可以簡記為 R (U) 或 R (
12、A1,A2,An)R: 關系名A1,A2,An : 屬性名注:域名及屬性向域的映象常常直接說明為 屬性的類型、長度An Introduction to Database System3. 關系模式與關系關系模式對關系的描述靜態(tài)的、穩(wěn)定的關系關系模式在某一時刻的狀態(tài)或內(nèi)容動態(tài)的、隨時間不斷變化的關系模式和關系往往統(tǒng)稱為關系 通過上下文加以區(qū)別An Introduction to Database System2.1 關系數(shù)據(jù)結(jié)構(gòu)2.1.1 關系2.1.2 關系模式2.1.3 關系數(shù)據(jù)庫An Introduction to Database System2.1.3 關系數(shù)據(jù)庫關系數(shù)據(jù)庫在一個給定的
13、應用領域中,所有關系的集合構(gòu)成一個關系數(shù)據(jù)庫關系數(shù)據(jù)庫的型與值An Introduction to Database System2. 關系數(shù)據(jù)庫的型與值關系數(shù)據(jù)庫的型: 關系數(shù)據(jù)庫模式 對關系數(shù)據(jù)庫的描述。關系數(shù)據(jù)庫模式包括若干域的定義在這些域上定義的若干關系模式關系數(shù)據(jù)庫的值: 關系模式在某一時刻對應的關系的集合,簡稱為關系數(shù)據(jù)庫An Introduction to Database System第二章 關系數(shù)據(jù)庫2.1 關系模型概述2.2 關系操作2.3 關系的完整性2.4 關系代數(shù)2.5 關系演算2.6 小結(jié)An Introduction to Database System基本關系操
14、作 常用的關系操作查詢:選擇、投影、連接、除、并、交、差數(shù)據(jù)更新:插入、刪除、修改查詢的表達能力是其中最主要的部分選擇、投影、并、差、笛卡爾基是5種基本操作 關系操作的特點集合操作方式:操作的對象和結(jié)果都是集合,一次一集合的方式An Introduction to Database System2.2.2 關系數(shù)據(jù)庫語言的分類 關系代數(shù)語言用對關系的運算來表達查詢要求代表:ISBL關系演算語言:用謂詞來表達查詢要求元組關系演算語言謂詞變元的基本對象是元組變量代表:APLHA, QUEL域關系演算語言 謂詞變元的基本對象是域變量代表:QBE具有關系代數(shù)和關系演算雙重特點的語言代表:SQL(Str
15、uctured Query Language) An Introduction to Database System第二章 關系數(shù)據(jù)庫2.1 關系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2 關系操作2.3 關系的完整性2.4 關系代數(shù)2.5 關系演算2.6 小結(jié)An Introduction to Database System2.3 關系的完整性2.3.1 關系的三類完整性約束2.3.2 實體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.1 關系的三類完整性約束實體完整性和參照完整性: 關系模型必須滿足的完整性約束條件 稱
16、為關系的兩個不變性,應該由關系系統(tǒng)自動支持用戶定義的完整性: 應用領域需要遵循的約束條件,體現(xiàn)了具體領域中的語義約束 An Introduction to Database System2.3 關系的完整性關系的三類完整性約束2.3.2 實體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.2 實體完整性規(guī)則2.1 實體完整性規(guī)則(Entity Integrity) 若屬性A是基本關系R的主屬性,則屬性A不能取空值 例:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRAD
17、UATE:主碼(假設研究生不會重名)不能取空值An Introduction to Database System實體完整性(續(xù))實體完整性規(guī)則的說明(1) 實體完整性規(guī)則是針對基本關系而言的。一個基本表通常對應現(xiàn) 實世界的一個實體集。(2) 現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標識。(3) 關系模型中以主碼作為唯一性標識。(4) 主碼中的屬性即主屬性不能取空值。主屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾,因此這個規(guī)則稱為實體完整性An Introduction to Database System實體完整性(續(xù))注意實體完整性規(guī)則規(guī)定基
18、本關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。例: 選修(學號,課程號,成績) “學號、課程號”為主碼, 則學號和課程號兩個屬性都不能取空值An Introduction to Database System關系的完整性關系的三類完整性約束2.3.2 實體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.3 參照完整性1. 關系間的引用2. 外碼3. 參照完整性規(guī)則An Introduction to Database System1. 關系間的引用在關系模型中實體及實體間的聯(lián)系都是用關系來描 述的
19、,因此可能存在著關系與關系間的引用。例1 學生實體、專業(yè)實體學生(學號,姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)號,專業(yè)名)主碼主碼學生關系引用了專業(yè)關系的主碼“專業(yè)號”。 學生關系中的“專業(yè)號”值必須是確實存在的專業(yè)的專業(yè)號 ,即專業(yè) 關系中有該專業(yè)的記錄。An Introduction to Database System關系間的引用(續(xù))例2 學生、課程、學生與課程之間的多對多聯(lián)系 學生(學號,姓名,性別,專業(yè)號,年齡) 課程(課程號,課程名,學分) 選修(學號,課程號,成績)An Introduction to Database System關系間的引用(續(xù))例3 學生實體及其內(nèi)部的一對
20、多聯(lián)系 學生(學號,姓名,性別,專業(yè)號,年齡,班長)“學號”是主碼,“班長”是外碼,它引用了本關系的“學號” “班長” 必須是確實存在的學生的學號 An Introduction to Database System2外碼(Foreign Key)設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼基本關系R稱為參照關系(Referencing Relation)基本關系S稱為被參照關系(Referenced Relation) 或目標關系(Target Relation)An Introduction to Database Sys
21、tem外碼(續(xù))例1:學生關系的“專業(yè)號與專業(yè)關系的主碼“專業(yè)號”相對應“專業(yè)號”屬性是學生關系的外碼專業(yè)關系是被參照關系,學生關系為參照關系 An Introduction to Database System外碼(續(xù))例2: 選修關系的“學號” 與學生關系的主碼“學號”相對應 選修關系的“課程號”與課程關系的主碼“課程號”相對應“學號”和“課程號”是選修關系的外碼學生關系和課程關系均為被參照關系選修關系為參照關系 An Introduction to Database System外碼(續(xù))例3:“班長”與本身的主碼“學號”相對應“班長”是外碼學生關系既是參照關系也是被參照關系 An In
22、troduction to Database System外碼(續(xù))關系R和S不一定是不同的關系目標關系S的主碼Ks 和參照關系的外碼F必須定義在同一個(或一組)域上外碼并不一定要與相應的主碼同名 當外碼與相應的主碼屬于不同關系時,往往取相同的名 字,以便于識別An Introduction to Database System3. 參照完整性規(guī)則規(guī)則2.2 參照完整性規(guī)則 若屬性(或?qū)傩越M)F是基本關系R的外碼它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值An Intro
23、duction to Database System參照完整性規(guī)則(續(xù))例1:學生關系中每個元組的“專業(yè)號”屬性只取兩類值:(1)空值,表示尚未給該學生分配專業(yè)(2)非空值,這時該值必須是專業(yè)關系中某個元組的“專業(yè)號”值,表示該學生不可能分配一個不存在的專業(yè)An Introduction to Database System參照完整性規(guī)則(續(xù))例2 :選修(學號,課程號,成績)“學號”和“課程號”可能的取值 : (1)選修關系中的主屬性,不能取空值 (2)只能取相應被參照關系中已經(jīng)存在的主碼值An Introduction to Database System參照完整性規(guī)則(續(xù))例3:學生(學
24、號,姓名,性別,專業(yè)號,年齡,班長)“班長”屬性值可以取兩類值:(1)空值,表示該學生所在班級尚未選出班長(2)非空值,該值必須是本關系中某個元組的學號值An Introduction to Database System關系的完整性(續(xù))關系的三類完整性約束2.3.2 實體完整性2.3.3 參照完整性2.3.4 用戶定義的完整性An Introduction to Database System2.3.4 用戶定義的完整性針對某一具體關系數(shù)據(jù)庫的約束條件,反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求關系模型應提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應用程序承
25、擔這一功能An Introduction to Database System用戶定義的完整性(續(xù))例: 課程(課程號,課程名,學分)“課程號”屬性必須取唯一值非主屬性“課程名”也不能取空值“學分”屬性只能取值1,2,3,4An Introduction to Database System第二章 關系數(shù)據(jù)庫2.1 關系模型概述2.2 關系數(shù)據(jù)結(jié)構(gòu)2.3 關系的完整性2.4 關系代數(shù)2.5 關系演算2.6 小結(jié)An Introduction to Database System 關系代數(shù) 概述 傳統(tǒng)的集合運算 專門的關系運算An Introduction to Database System集
26、合運算符-并差交笛卡爾積比較運算符 大于大于等于小于小于等于等于不等于運算符含義運算符含義表2.4 關系代數(shù)運算符 概 述An Introduction to Database System專門的關系運算符 選擇投影連接除邏輯運算符 非與或運算符含義運算符含義表2.4 關系代數(shù)運算符(續(xù)) 概 述(續(xù))An Introduction to Database System 關系代數(shù) 概述傳統(tǒng)的集合運算 專門的關系運算An Introduction to Database System1. 并(Union)R和S具有相同的目n(即兩個關系都有n個屬性)相應的屬性取自同一個域RS 仍為n目關系,由屬
27、于R或?qū)儆赟的元組組成 RS = t|t Rt S An Introduction to Database System并(續(xù))An Introduction to Database System2. 差(Difference)R和S具有相同的目n相應的屬性取自同一個域R - S 仍為n目關系,由屬于R而不屬于S的所有元組組成 R -S = t|tRtS An Introduction to Database System差(續(xù))An Introduction to Database System3. 交(Intersection)R和S具有相同的目n相應的屬性取自同一個域RS仍為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)嚴格地講應該是廣義的笛卡爾積(Extended Cartesian Product) R: n目關系,k1個元組S: m目關系,k2個元組RS 列:(n+m)列元組的集合元組的前n列是關系R的一個元組后m列是關系S的一個元組行:k1k2個元組RS = tr ts |tr R tsS An Introduction to
29、Database System交 (續(xù))An Introduction to Database System 關系代數(shù)概述傳統(tǒng)的集合運算專門的關系運算An Introduction to Database System2.4.2 專門的關系運算先引入幾個記號 (1) R,tR,tAi 設關系模式為R(A1,A2,An) 它的一個關系設為R tR表示t是R的一個元組 tAi則表示元組t中相應于屬性Ai的一個分量 An Introduction to Database System專門的關系運算(續(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專門的關系運算(續(xù))(3) tr ts R為n目關系,S為m目關系。 tr R,tsS, tr ts稱為元組的連接。 tr ts是一個n + m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。 An Introduction to Database System專門的關系運算(續(xù))(4)象集Zx 給定一個關系R(X,Z),X
31、和Z為屬性組。 當tX=x時,x在R中的象集(Images Set)為: Zx=tZ|t R,tX=x 它表示R中屬性組X上值為x的諸元組在Z上分量的集合 An Introduction to Database System專門的關系運算(續(xù))x1在R中的象集 Zx1 =Z1,Z2,Z3,x2在R中的象集 Zx2 =Z2,Z3,x3在R中的象集 Zx3=Z1,Z3象集舉例 An Introduction to Database System專門的關系運算(續(xù))選擇投影連接除An Introduction to Database System專門的關系運算(續(xù))(a) Student4) 學生-
32、課程數(shù)據(jù)庫: 學生關系Student、課程關系Course和選修關系SC學號Sno姓名Sname性別Ssex年齡Sage所在系Sdept200215121李勇男20CS200215122劉晨女19IS200215123王敏女18MA200215125張立男19ISAn Introduction to Database System專門的關系運算(續(xù))課程號Cno課程名Cname先行課Cpno學分Ccredit1數(shù)據(jù)庫542數(shù)學23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL語言64Course(b)An Introduction to Database System專門的
33、關系運算(續(xù))(c)SC學號Sno課程號Cno成績Grade200215121192200215121285200215121388200215122290200215122380An Introduction to Database System1. 選擇(Selection) 1) 選擇又稱為限制(Restriction)2) 選擇運算符的含義在關系R中選擇滿足給定條件的諸元組 F(R) = t|tRF(t)= 真F:選擇條件,是一個邏輯表達式,基本形式為: X1Y1An Introduction to Database System選擇(續(xù))3) 選擇運算是從關系R中選取使邏輯表達式F為
34、真的元組,是從行的角度進行的運算An Introduction to Database System選擇(續(xù))例1 查詢信息系(IS系)全體學生 Sdept = IS (Student)或 5 =IS (Student) 結(jié)果: SnoSnameSsexSageSdept200215122劉晨女19IS200215125張立男19ISAn Introduction to Database System選擇(續(xù))例2 查詢年齡小于20歲的學生 Sage 20(Student) 或 4 20(Student)結(jié)果: SnoSnameSsexSageSdept200215122劉晨女19IS2002
35、15123王敏女18MA200215125張立男19ISAn Introduction to Database System2. 投影(Projection) 1)投影運算符的含義從R中選擇出若干屬性列組成新的關系 A(R) = tA | t R A:R中的屬性列An Introduction to Database System2. 投影(Projection) 2)投影操作主要是從列的角度進行運算但投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組(避免重復行)An Introduction to Database System投影(續(xù))例3 查詢學生的姓名和所在系即求Studen
36、t關系上學生姓名和所在系兩個屬性上的投影 Sname,Sdept(Student)或 2,5(Student)結(jié)果:An Introduction to Database System投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立ISAn Introduction to Database System投影(續(xù))例4 查詢學生關系Student中都有哪些系 Sdept(Student)結(jié)果:SdeptCSISMAAn Introduction to Database System3. 連接(Join) 1)連接也稱為連接2)連接運算的含義從兩個關系的笛卡爾積中選取屬性間滿足一定條件的
37、元組 R S = | tr Rts StrAtsB A和B:分別為R和S上度數(shù)相等且可比的屬性組:比較運算符連接運算從R和S的廣義笛卡爾積RS中選?。≧關系)在A屬性組上的值與(S關系)在B屬性組上值滿足比較關系的元組 ABtr tsAn Introduction to Database System 連接(續(xù)) 3)兩類常用連接運算等值連接(equijoin) 什么是等值連接為“”的連接運算稱為等值連接 等值連接的含義從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為: R S = | tr Rts StrA = tsB A=Btr tsAn Introduction
38、to Database System 連接(續(xù)) 自然連接(Natural join) 自然連接是一種特殊的等值連接兩個關系中進行比較的分量必須是相同的屬性組在結(jié)果中把重復的屬性列去掉自然連接的含義R和S具有相同的屬性組B R S = | tr Rts StrB = tsB tr tsAn Introduction to Database System連接(續(xù))4)一般的連接操作是從行的角度進行運算。 自然連接還需要取消重復列,所以是同時從行和列的角度進行運算。 ABRSAn Introduction to Database System連接(續(xù))例5關系R和關系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é)果關系中,而在其他屬性上填空值(Null),這種連接就叫做外連接(OUTER JOIN)。左外連接如果只把左邊關系R中要舍棄的元組保留就叫做左外連接(LEFT
40、 OUTER JOIN或LEFT JOIN)右外連接如果只把右邊關系S中要舍棄的元組保留就叫做右外連接(RIGHT OUTER JOIN或RIGHT JOIN)。 An Introduction to Database System連接(續(xù))下圖是例5中關系R和關系S的外連接 An Introduction to Database System連接(續(xù))圖(b)是例5中關系R和關系S的左外連接,圖(c)是右外連接 An Introduction to Database System4. 除(Division) 給定關系R (X,Y) 和S (Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y
41、可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關系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)除操作是同時從行和列角度進行運算RSAn Introduction to Database System除(續(xù))例6設關系R、S分別為下圖的(a)和(b),RS的結(jié)果為圖(c) An Introduction to Database Syst
42、em分析在關系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 An Introduction to Database System5綜合舉例 以學生-課程數(shù)據(jù)庫為例 (P56)例7 查詢至少選修1號課程和3號課程的學生號碼首先建立一個臨時關系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號課程的學生的學號。 Sno(Cno=2(SC) 200215121,200215122An Introduction to Database S
44、ystem綜合舉例(續(xù))例9 查詢至少選修了一門其直接先行課為5號課程的 的學生姓名 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 查詢選修了全部課程的學生號碼和姓名。 Sno,Cno(SC)Cno(Course) Sno,Sname(Student) An Introduction to Dat
45、abase System小結(jié) 關系代數(shù)運算關系代數(shù)運算并、差、交、笛卡爾積、投影、選擇、連接、除基本運算并、差、笛卡爾積、投影、選擇交、連接、除可以用5種基本運算來表達 引進它們并不增加語言的能力,但可以簡化表達An Introduction to Database System小結(jié)(續(xù)) 關系代數(shù)表達式關系代數(shù)運算經(jīng)有限次復合后形成的式子典型關系代數(shù)語言ISBL(Information System Base Language)由IBM United Kingdom研究中心研制用于PRTV(Peterlee Relational Test Vehicle)實驗系統(tǒng) An Introducti
46、on to Database System第二章 關系數(shù)據(jù)庫2.1 關系模型概述2.2 關系數(shù)據(jù)結(jié)構(gòu)2.3 關系的完整性2.4 關系代數(shù)2.5 關系演算2.6 小結(jié)An Introduction to Database System2.5 關系演算 關系演算以數(shù)理邏輯中的謂詞演算為基礎按謂詞變元不同 進行分類1.元組關系演算: 以元組變量作為謂詞變元的基本對象 元組關系演算語言ALPHA2.域關系演算: 以域變量作為謂詞變元的基本對象 域關系演算語言QBEAn Introduction to Database System2.5.1 元組關系演算語言ALPHA由提出INGRES所用的QUEL語
47、言是參照ALPHA語言研制的語句檢索語句GET更新語句PUT,HOLD,UPDATE,DELETE,DROPAn Introduction to Database System一、檢索操作 語句格式: GET工作空間名 (定額)(表達式1) :操作條件 DOWN/UP 表達式2定額:規(guī)定檢索的元組個數(shù)格式: 數(shù)字表達式1:指定語句的操作對象格式:關系名| 關系名. 屬性名| 元組變量. 屬性名| 集函數(shù) , 操作條件:將操作結(jié)果限定在滿足條件的元組中格式: 邏輯表達式表達式2:指定排序方式格式: 關系名. 屬性名| 元組變量. 屬性名, An Introduction to Database
48、System一、檢索操作 (1)簡單檢索 GET工作空間名 (表達式1)例1 查詢所有被選修的課程號碼。 GET W ()例2 查詢所有學生的數(shù)據(jù)。 GET W (Student)An Introduction to Database System(2)限定的檢索格式 GET工作空間名(表達式1):操作條件例3查詢信息系(IS)中年齡小于20歲的學生的學號和年齡 GET W (,Student.Sage): =IS Student.Sage19An Introduction to Database System條件查詢(與條件)例4 求計算機科學系年齡大于19歲的學生的學號。方法(1):把兩個
49、條件寫在同一行上StudentSnoSnameSsexSageSdeptP.20021512119CSAn Introduction to Database System條件查詢(與條件) 方法(2):把兩個條件寫在不同行上,但使用相同的示例元 素值StudentSnoSnameSsexSageSdeptP.200215121P.20021512119CSAn Introduction to Database System條件查詢(與條件)例5 查詢既選修了1號課程又選修了2號課程的學生的學號。 ScSnoCnoGradeP.200215121P.20021512112An Introduct
50、ion to Database System條件查詢(或條件)例6查詢計算機科學系或者年齡大于19歲的學生的 學號。StudentSnoSnameSsexSageSdeptP.200215121P.20021512219CSAn Introduction to Database System條件查詢(多表連接)例7 查詢選修1號課程的學生姓名。 StudentSnoSnameSsexSageSdept200215121P.李勇注意:示例元素Sno是連接屬性,其值在兩個表中要相同。 ScSnoCnoGrade2002151211An Introduction to Database System
51、條件查詢(非條件)例8 查詢未選修1號課程的學生姓名 StudentSnoSnameSsexSageSdept200215121P.李勇思路:顯示學號為200215121的學生名字,而該學生選修1號課程的情況為假ScSnoCnoGrade2002151211An Introduction to Database System條件查詢(續(xù))例9 查詢有兩個人以上選修的課程號。思路:查詢這樣的課程1,它不僅被200215121選修 而且也被另一個學生(200215121)選修了ScSnoCnoGrade200215121 200215121P.11An Introduction to Database System3. 聚集函數(shù)常用聚集函數(shù):QBE中的聚集函數(shù) 函數(shù)名功能CNT對元組計數(shù)SUM求總和AVG求平均值MAX求最大值MIN求最小值An Introduction to Database System聚集函數(shù)(續(xù))例10 查詢信息系學生的平均年齡。 StudentSnoSnameSsexSageSd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年鏟車操作證發(fā)放協(xié)議2篇
- 2025消防操作保安培訓合同模板
- 二零二五年度大數(shù)據(jù)公司IT人員保密及競業(yè)禁止合同2篇
- 2006年保險合同合同簽收回執(zhí)上內(nèi)容
- 2025欠款合同與借款合同
- 二零二五年度房地產(chǎn)金融產(chǎn)品內(nèi)部認購及投資協(xié)議3篇
- 二零二五年度國際債務重組擔保合同范本3篇
- 2025關于住房委托裝修合同
- 2025投資項目合同范本
- 二零二五年度挖掘機租賃費用結(jié)算規(guī)定3篇
- 變、配電室門禁管理制度
- T-SDEPI 043-2024 土壤有機污染物來源解析主成分分析法技術(shù)指南
- 小學體育期末檢測方案
- 手術(shù)室交接班制度
- 學校廚房設備售后服務方案
- 2024年四川內(nèi)江資中縣人民法院聘用制書記員招聘筆試參考題庫附帶答案詳解
- 3D打印技術(shù)在軍事領域的應用
- 流程圖素材匯總大全
- 智能制造職業(yè)規(guī)劃
- 幼兒戶外游戲活動論文
- 歐姆定律完整版
評論
0/150
提交評論