關(guān)系數(shù)據(jù)庫關(guān)系代數(shù)運算_第1頁
關(guān)系數(shù)據(jù)庫關(guān)系代數(shù)運算_第2頁
關(guān)系數(shù)據(jù)庫關(guān)系代數(shù)運算_第3頁
關(guān)系數(shù)據(jù)庫關(guān)系代數(shù)運算_第4頁
關(guān)系數(shù)據(jù)庫關(guān)系代數(shù)運算_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

關(guān)于關(guān)系數(shù)據(jù)庫關(guān)系代數(shù)運算第一頁,共八十一頁,編輯于2023年,星期日學(xué)習(xí)要點關(guān)系模型關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系完整性關(guān)系代數(shù)關(guān)系演算第二頁,共八十一頁,編輯于2023年,星期日序言值得記住的1970年,E.F.Codd提出關(guān)系數(shù)據(jù)庫理論基礎(chǔ)E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970關(guān)系數(shù)據(jù)庫試驗系統(tǒng)SystemR,INGRES關(guān)系數(shù)據(jù)庫應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫中的數(shù)據(jù),80年代后成為最重要、最流行的數(shù)據(jù)庫系統(tǒng)典型實驗系統(tǒng)SystemR,UniversityINGRES典型商用系統(tǒng)ORACLE,SYBASE,INFORMIX,DB2,INGRES第三頁,共八十一頁,編輯于2023年,星期日2.1關(guān)系模型概述關(guān)系模型由以下三部分組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系(一張二維表)關(guān)系操作:查詢操作選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)更新操作增加(Insert)、刪除(Delete)、修改(Update)關(guān)系完整性約束實體完整性、參照完整性、用戶定義完整性關(guān)系的兩個不變性,由系統(tǒng)自動支持由應(yīng)用語義約束第四頁,共八十一頁,編輯于2023年,星期日關(guān)系語言關(guān)系操作特點操作對象和結(jié)果都是集合高度非過程化的語言,不必借助循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作,能嵌入高級語言中使用關(guān)系數(shù)據(jù)語言關(guān)系代數(shù)語言關(guān)系演算語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言元組關(guān)系演算語言域關(guān)系演算語言例如ISBL例如APLHA,QUEL例如QBE例如SQL三種語言在表達能力上完全等價第五頁,共八十一頁,編輯于2023年,星期日關(guān)系模型語言關(guān)系代數(shù)語言把關(guān)系當(dāng)作集合,用集合運算和特殊的關(guān)系運算來表達查詢要求和條件是一種抽象的查詢語言關(guān)系演算語言用謂詞來表達查詢要求和條件謂詞變元的基本對象可以是元組變量或域變量,故可分為元組關(guān)系演算和域關(guān)系演算兩類是一種抽象的查詢語言SQL介于關(guān)系代數(shù)和關(guān)系演算之間集DDL、DML和DCL一身的關(guān)系數(shù)據(jù)語言第六頁,共八十一頁,編輯于2023年,星期日2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義關(guān)系模型建立在集合代數(shù)基礎(chǔ)上,從集合論角度討論關(guān)系的形式化定義定義1:域(Domain)-形式化表示為D一組具有相同數(shù)據(jù)類型的值的集合,如整數(shù)、實數(shù)等。定義2:笛卡爾積(CartesianProduct)P47一組域D1,D2,…Dn的笛卡爾積(d1,d2,d3,…dn)稱為一個元組,di稱為一個分量,集合中唯一元素的數(shù)量是集合的基數(shù)

若Di的基數(shù)為Mi,則笛卡爾集的基數(shù)M為第七頁,共八十一頁,編輯于2023年,星期日笛卡爾積計算實例例1:D1={甲,乙},D2={1,2},D3={a,b,c}1)D1,D2,D3基數(shù)分別是多少?2)D1×D2=?(基數(shù)?)3)D1×D2×D3=?(基數(shù)?)笛卡爾集可表示為一個二維表請將例子表示為二維表第八頁,共八十一頁,編輯于2023年,星期日例2.已知三個域D1=導(dǎo)師集合={張清正,劉逸}D2=專業(yè)集合={計算機,信息}D3=學(xué)生集合={李勇,劉晨,王敏}計算思考1)基數(shù)?2)計算D1×D2×D3=?基數(shù)?3)計算結(jié)果中的元組有無實際意義?導(dǎo)師專業(yè)研究生張清正計算機李勇張清正計算機劉晨張清正計算機王敏張清正信息李勇張清正信息劉晨張清正信息王敏劉逸計算機李勇劉逸計算機劉晨劉逸計算機王敏劉逸信息李勇劉逸信息劉晨劉逸信息王敏D1,D2,D3的笛卡爾積(上圖)第九頁,共八十一頁,編輯于2023年,星期日關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義

定義3:關(guān)系D1×D2×···×Dn的子集叫做在D1,D2,…,Dn上的關(guān)系,表示為R(D1,D2,…,Dn)n:關(guān)系的度或目,表的列數(shù),一般稱n元關(guān)系相關(guān)術(shù)語候選碼:能夠唯一標識一個元組的屬性組一個關(guān)系可以有多個候選碼主碼:一個關(guān)系中選定的一個候選碼主屬性:主碼的各個屬性非主屬性(非碼屬性):不包含在任何候選碼中的屬性全碼:若關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼請舉例第十頁,共八十一頁,編輯于2023年,星期日三類關(guān)系基本關(guān)系(基本表或基表)實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示查詢表查詢結(jié)果對應(yīng)的表視圖表由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)第十一頁,共八十一頁,編輯于2023年,星期日例.已知三個域D1=導(dǎo)師集合S={張清正,劉逸}D2=專業(yè)集合SP={計算機,信息}D3=學(xué)生集合P={李勇,劉晨,王敏}計算思考從笛卡爾集中取出一個子集,選擇有意義的結(jié)果組成關(guān)系R=(導(dǎo)師,專業(yè),研究生)一個研究生只能有一個專業(yè),如李勇和王敏是計算機專業(yè)、劉晨是信息專業(yè)導(dǎo)師S專業(yè)SP研究生P張清正計算機李勇張清正計算機劉晨張清正計算機王敏張清正信息李勇張清正信息劉晨張清正信息王敏劉逸計算機李勇劉逸計算機劉晨劉逸計算機王敏劉逸信息李勇劉逸信息劉晨劉逸信息王敏D1,D2,D3的笛卡爾積(上圖)現(xiàn)在導(dǎo)師與研究生是什么關(guān)系?限定一個學(xué)生只能有一個導(dǎo)師,如張是計算機導(dǎo)師,劉是信息專業(yè)導(dǎo)師現(xiàn)在導(dǎo)師與研究生是什么關(guān)系?第十二頁,共八十一頁,編輯于2023年,星期日關(guān)系關(guān)系的限定及擴充關(guān)系數(shù)據(jù)中的關(guān)系是有限集合為關(guān)系的每一列附以屬性名以取消關(guān)系元組的有序性關(guān)系的性質(zhì)列同質(zhì),即每一列是同一類型的數(shù)據(jù)不同的列可出自同一個域,每一列為一個屬性,不同的屬性被賦予不同的屬性名列的次序可以任意交換任意兩個元組不能完全相同行的次序可以任意交換分量必須取原子值,即不可再分在許多實際關(guān)系數(shù)據(jù)庫產(chǎn)品中,基本表并不完全具有這六條性質(zhì)。第十三頁,共八十一頁,編輯于2023年,星期日舉例列的順序無所謂,次序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),增加新屬性時,永遠是插至最后一列但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了屬性順序任意兩個元組不能完全相同,由笛卡爾積的性質(zhì)決定但許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如Oracle,F(xiàn)oxPro等都允許關(guān)系表中存在兩個完全相同的元組,除非用戶特別定義了相應(yīng)的約束條件第十四頁,共八十一頁,編輯于2023年,星期日舉例行的順序無所謂,行的次序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),插入一個元組時永遠插至最后一行但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了元組的順序第十五頁,共八十一頁,編輯于2023年,星期日關(guān)系模式關(guān)系模式是對關(guān)系的描述,形式化表示為R(U,D,dom,F)U:組成該關(guān)系的屬性名集合D:屬性組U中屬性所來自的域dom:屬性向域的映象集合,如屬性的類型、長度F:屬性間數(shù)據(jù)的依賴關(guān)系集合★可簡記為R(U)或R(A1,A2,…,An),其中Ai為屬性名關(guān)系模式與關(guān)系關(guān)系模式是型,是對關(guān)系的描述,是靜態(tài)的,穩(wěn)定的關(guān)系是值,由賦予它的元組語義來確定的,是動態(tài)的,不斷變化的,是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容★實際應(yīng)用中常常將關(guān)系模式和關(guān)系都稱為關(guān)系第十六頁,共八十一頁,編輯于2023年,星期日關(guān)系數(shù)據(jù)庫在給定應(yīng)用領(lǐng)域中,所有表示實體及實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(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ù)庫第十七頁,共八十一頁,編輯于2023年,星期日課堂思考給出導(dǎo)師、學(xué)生、專業(yè)三個實體可能組成的關(guān)系數(shù)據(jù)庫及其概念模型(ER圖)第十八頁,共八十一頁,編輯于2023年,星期日2.3關(guān)系的完整性實體完整性參照完整性用戶定義完整性

關(guān)系模型必須滿足,稱為關(guān)系的不變性由關(guān)系數(shù)據(jù)庫系統(tǒng)自動支持第十九頁,共八十一頁,編輯于2023年,星期日實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值說明:基本關(guān)系的所有主屬性不能取空值,而不僅是主碼整體不能取空值依據(jù):現(xiàn)實世界的實體是唯一可分的例:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)第二十頁,共八十一頁,編輯于2023年,星期日參照完整性關(guān)系間的引用外碼參照完整性規(guī)則第二十一頁,共八十一頁,編輯于2023年,星期日關(guān)系間的引用在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,因此可能存在著關(guān)系與關(guān)系間的引用例1學(xué)生實體、專業(yè)實體以及專業(yè)與學(xué)生間的一對多聯(lián)系學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)第二十二頁,共八十一頁,編輯于2023年,星期日關(guān)系間的引用例2學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)第二十三頁,共八十一頁,編輯于2023年,星期日關(guān)系間的引用例3學(xué)生實體及其內(nèi)部的領(lǐng)導(dǎo)聯(lián)系(一對多)

學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)第二十四頁,共八十一頁,編輯于2023年,星期日外碼(ForeignKey)外碼設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼被參照關(guān)系ReferencedRelation或:目標關(guān)系TargetRelation參照關(guān)系ReferencingRelation基本關(guān)系R(F,…)基本關(guān)系S(Ks,…)FKr第二十五頁,共八十一頁,編輯于2023年,星期日外碼說明關(guān)系R和S不一定是不同的關(guān)系目標關(guān)系S的主碼Ks和參照關(guān)系的外碼F必須定義在同一個(或一組)域上關(guān)于取名外碼并不一定要與相應(yīng)的主碼同名當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時,往往取相同的名字,以便于識別第二十六頁,共八十一頁,編輯于2023年,星期日例1:學(xué)生實體與專業(yè)實體間的關(guān)系:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)外碼例2:學(xué)生,課程,學(xué)生與課程之間的多對多聯(lián)系:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)學(xué)生關(guān)系專業(yè)關(guān)系專業(yè)號學(xué)生關(guān)系選修關(guān)系課程關(guān)系學(xué)號課程號參照完整性舉例主碼?外碼?關(guān)系參照圖參照關(guān)系被參照關(guān)系參照關(guān)系被參照關(guān)系被參照關(guān)系關(guān)系參照圖第二十七頁,共八十一頁,編輯于2023年,星期日參照完整性舉例例3:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)被參照關(guān)系參照關(guān)系外碼第二十八頁,共八十一頁,編輯于2023年,星期日參照完整性規(guī)則已知基本關(guān)系R的外碼F(與基本關(guān)系S的主碼Ks相對應(yīng)),每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值。基本關(guān)系R(F,…)基本關(guān)系S(Ks,…)FKr第二十九頁,共八十一頁,編輯于2023年,星期日參照完整性規(guī)則舉例“專業(yè)號”屬性只取下面兩類值:空值,表示尚未給該學(xué)生分配專業(yè)非空值,這時該值必須是專業(yè)關(guān)系中某個元組的“專業(yè)號”值,表示該學(xué)生不可能分配到一個不存在的專業(yè)中“學(xué)號”和“課程號”是選修關(guān)系中的主屬性,按照實體完整性和參照完整性規(guī)則,它們只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)選修(學(xué)號,課程號,成績)第三十頁,共八十一頁,編輯于2023年,星期日參照完整性規(guī)則舉例“班長”屬性值可以取兩類值:空值,表示該學(xué)生所在班級尚未選出班長,或該學(xué)生本人即是班長;非空值,這時該值必須是本關(guān)系中某個元組的學(xué)號值學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)第三十一頁,共八十一頁,編輯于2023年,星期日用戶定義的完整性用戶定義的完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能第三十二頁,共八十一頁,編輯于2023年,星期日用戶定義的完整性舉例“課程名”屬性必須取唯一值非主屬性“課程名”也不能取空值“學(xué)分”屬性只能取值{1,2,3,4}其它成績:0-100之間身份證位數(shù)、身份證和生日對應(yīng)關(guān)系課程(課程號,課程名,學(xué)分)第三十三頁,共八十一頁,編輯于2023年,星期日2.4關(guān)系代數(shù)關(guān)系代數(shù)語言用傳統(tǒng)的集合運算和專門的關(guān)系運算來表達查詢的抽象語言關(guān)系代數(shù)運算符關(guān)系代數(shù)表達式關(guān)系代數(shù)中有限次運算復(fù)合后形成的式子運算符含義運算符含義集合運算符并差交廣義笛卡爾積比較運算符>>=<<==大于大于等于小于小于等于等于不等于專門的關(guān)系運算符選擇投影連接除邏輯運算符非與或第三十四頁,共八十一頁,編輯于2023年,星期日表示記號R,tR,t[Ai],A,t[A],A設(shè)關(guān)系模式為R(A1,A2,…,An),它的一個關(guān)系設(shè)為RtR表示t是R的一個元組t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個分量若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}后剩余的屬性組第三十五頁,共八十一頁,編輯于2023年,星期日傳統(tǒng)的集合運算若R和S是同類關(guān)系(即它們都具有n個屬性且相應(yīng)屬性取自同一個域),則可進行并、差、交運算對兩者進行集合運算之前,要對兩者的屬性列進行排序,保證兩個關(guān)系的屬性順序相同由屬于R或?qū)儆赟的元組組成由屬于R而不屬于S的元組組成由既屬于R又屬于S的元組組成RS第三十六頁,共八十一頁,編輯于2023年,星期日表示記號trtsR為n目關(guān)系,S為m目關(guān)系trR,tsS,trts稱為元組的連接。它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組第三十七頁,共八十一頁,編輯于2023年,星期日廣義笛卡爾積R×S,其關(guān)系模式是R和S的模式的并集,是R和S的元組以所有可能的方式組合起來。當(dāng)R和S有同名的屬性,至少要為其中一個屬性重新命名。數(shù)學(xué)描述:若關(guān)系R有k1個元組n個屬性,關(guān)系S有k2個元組m個屬性,則兩個關(guān)系的廣義笛卡爾積有k1*k2個元組n+m個屬性(前n個屬性來自于R,后m個屬性來自于S)廣義笛卡爾積和笛卡爾積的關(guān)系?運算對象?什么情況下二者等價?第三十八頁,共八十一頁,編輯于2023年,星期日RSABCa1b1c1a1b2c2a2b2c1a1b3c2RSABCa1b2c2a2b2c1R-SABCa1b1c1RS

R.AR.BR.CS.AS.BS.Ca1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1ABCa1b1c1a1b2c2a2b2c1RABCa1b2c2a1b3c2a2b2c1S第三十九頁,共八十一頁,編輯于2023年,星期日例子:學(xué)生—課程數(shù)據(jù)庫例:包括S,C,SC三個關(guān)系用此例講解專門的關(guān)系運算S(Sno,Sname,Sex,Sage,Sdept)C(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)第四十頁,共八十一頁,編輯于2023年,星期日

SnoSnameSsexSageSdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS

SCnoCnameCpqoCcredit1數(shù)據(jù)庫542數(shù)學(xué)2信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27Pascal語言64CSnoCnoGrade9500119295001285950013889500229095002380SC第四十一頁,共八十一頁,編輯于2023年,星期日專門的關(guān)系運算投影:該運算作用于關(guān)系R將產(chǎn)生一個新關(guān)系S,S只具有R的某幾個屬性列選擇:該運算作用于關(guān)系R也將產(chǎn)生一個新關(guān)系S,S的元組集合是R的一個滿足某條件C的子集自然連接:其關(guān)系模式是R和S模式的并集。假設(shè)A1、A2、……An是R和S的模式中的公共屬性,那么如果R的元組r和S的元組s在這些屬性上取值都相同,r和s組合而成的元組就歸入該自然連接中θ連接(包含等值連接):先將R和S笛卡兒積,然后從R×S的元組中選擇滿足條件θ的元組集合第四十二頁,共八十一頁,編輯于2023年,星期日專門的關(guān)系運算:選擇記號:tR表示t是R的一個元組選擇:從關(guān)系R中選取使邏輯表達式F為真的元組,行選。記作邏輯表達式F由邏輯運算符連接算術(shù)表達式邏輯運算符:算術(shù)表達式:基本形式為“X1Y1”表示比較運算符(>,≥,<,≤,=或<>)X1,Y1是屬性名或常量或簡單函數(shù),屬性名可以用它的序號來代替例子:F=Sage<20或F=4<20S(Sno,Sname,Sex,Sage,Sdept)第四十三頁,共八十一頁,編輯于2023年,星期日選擇運算舉例選擇運算是從行的角度進行的運算σ學(xué)號Sno姓名Sname性別Ssex年齡Sage系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19ISSnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS查詢信息系(IS系)全體學(xué)生σSdept

='IS'(Student)σ5='IS'(Student)第四十四頁,共八十一頁,編輯于2023年,星期日選擇運算例查詢年齡小于20歲的學(xué)生:

Sdept<20(Student)或

4<20(Student)課堂練習(xí):1)查詢CS系的所有女生2)查詢先行課代號為6的所有課程SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS第四十五頁,共八十一頁,編輯于2023年,星期日關(guān)系代數(shù):投影定義:從關(guān)系R中選擇若干屬性列組成新的關(guān)系,列選其中

表示元組t中相應(yīng)于屬性Ai的一個分量。第四十六頁,共八十一頁,編輯于2023年,星期日投影(Projection)投影操作主要是從列的角度進行運算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)π第四十七頁,共八十一頁,編輯于2023年,星期日投影運算例查詢學(xué)生的姓名和所在系:

Sname,Sdept(Student)或2,5(Student)查詢學(xué)生關(guān)系S中有哪些系:

Sdept(Student)或5(Student)SnameSdept李勇CS劉晨IS王敏MA張立ISSdeptCSISMA第四十八頁,共八十一頁,編輯于2023年,星期日關(guān)系代數(shù):連接連接從關(guān)系R和S的笛卡爾積中選取屬性間滿足條件的元組其中A和B分別是關(guān)系R和S上可比的屬性組,是比較運算符等值連接從關(guān)系R和S的笛卡爾積中選取A,B屬性值相等的元組自然連接特殊的等值連接,R和S具有相同的屬性組B,在結(jié)果中去掉重復(fù)的屬性列第四十九頁,共八十一頁,編輯于2023年,星期日連接一般的連接操作是從行的角度進行運算自然連接還需要取消重復(fù)列,所以是同時從行和列的角度進行運算

AθBRS第五十頁,共八十一頁,編輯于2023年,星期日ABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52SAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310R

C<E

SAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32等值連接ABCEa1b153a1b267a2b3810a2b382自然連接R

R.B=S.B

SR

S連接運算例第五十一頁,共八十一頁,編輯于2023年,星期日連接運算例選修課程號為1的學(xué)生的完整信息(包括姓名、系、成績等)R=SSCS(Sno,Sname,Sex,Sage,Sdept)SC(Sno,Cno,Grade)R(Sno,Sname,Sex,Sage,Sdept,Cno,Grade)第五十二頁,共八十一頁,編輯于2023年,星期日表示記號:象集Zx給定一個關(guān)系R(X,Z),X和Z為屬性組當(dāng)t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|tR,t[X]=x}

ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1R它表示R中屬性組X上值為x的諸元組在Z上分量的集合。例子:a1的象集為{(b1,c2),(b2,c3),(b2,c1)}第五十三頁,共八十一頁,編輯于2023年,星期日關(guān)系代數(shù):除R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集元組在X上分量值x的象集Yx包含S在Y上的投影第五十四頁,共八十一頁,編輯于2023年,星期日除除操作是同時從行和列角度進行運算÷RS第五十五頁,共八十一頁,編輯于2023年,星期日4)除運算例設(shè)有如圖的關(guān)系R和SABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCD

b1c2d1b2c1d1b2c3d2Aa1RSRS則RS結(jié)果如下.a(chǎn)1的象集為{(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}第五十六頁,共八十一頁,編輯于2023年,星期日例子選修了1號課程的學(xué)生學(xué)號?Sno(σCno=‘1’(SC))至少選修了1號和3號課程的學(xué)生學(xué)號??SC(Sno,Cno,Grade)C(Cno,Cname,Cpno,Ccredit)第五十七頁,共八十一頁,編輯于2023年,星期日查詢至少選修1號課程和3號課程的學(xué)生號碼解:先建一臨時關(guān)系K:求:Sno,Cno(SC)K結(jié)果為:{95001}Cno

1

3SC(Sno,Cno,Grade)(Sno,Cno)第五十八頁,共八十一頁,編輯于2023年,星期日思考選擇、投影、除、連接等關(guān)系運算能做什么事情?它們分別能解決什么樣的查詢問題?請分別舉例說明?在實際問題中,如何復(fù)合使用?第五十九頁,共八十一頁,編輯于2023年,星期日關(guān)系代數(shù):綜合應(yīng)用1)查詢選修了2號課程的學(xué)生的學(xué)號2)查詢至少選修了一門其直接先行課為5號課程的學(xué)生姓名3)查詢選修了全部課程的學(xué)生號碼和姓名請給出對應(yīng)含義和查詢答案:第六十頁,共八十一頁,編輯于2023年,星期日解:πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname(πSno(σCpno='5'(Course)SC)πSno,Sname(Student))

1)查詢選修了2號課程的學(xué)生的學(xué)號解:Sno(

Cno=‘2’(SC))={95001,95002}2)查詢至少選修了一門其直接先行課為5號課程的學(xué)生姓名第六十一頁,共八十一頁,編輯于2023年,星期日3)查詢選修了全部課程的學(xué)生號碼和姓名解:Sno,Cno(SC)Cno(Course)Sno,Sname(Student)例子和思考問題:查詢選修了2號課程的學(xué)生的姓名?查詢至少選修了一門其直接先行課為數(shù)據(jù)結(jié)構(gòu)的學(xué)生姓名?還有沒有其它答案?第六十二頁,共八十一頁,編輯于2023年,星期日補充已知學(xué)生選課數(shù)據(jù)庫模式:Student(Sno,Sname,Sage,Sdept)Course(Cno,Cname)SC(Sno,Cno,Score)用關(guān)系代數(shù)進行如下查詢:計算機系有不及格課程的學(xué)生名單學(xué)生張林的“數(shù)據(jù)庫原理”成績第六十三頁,共八十一頁,編輯于2023年,星期日關(guān)系代數(shù)小結(jié)總結(jié)關(guān)系代數(shù)運算五種基本運算:并、差、交、笛卡爾積、選擇、投影其余運算可有以上五種基本運算來表達第六十四頁,共八十一頁,編輯于2023年,星期日練習(xí)圖書館管理數(shù)據(jù)庫讀者(讀者編號,姓名,單位)圖書(書號,書名,作者,出版社,單價,類型)借閱記錄(讀者編號,書號,借閱日期,應(yīng)還日期)還書記錄(讀者編號,書號,歸還日期)用關(guān)系代數(shù)描述以下查詢要求查詢“人民郵電出版社”出版的所有圖書的相關(guān)信息查詢單價在15元以上的書名和作者查詢8號讀者2003年3月10日所借圖書的相關(guān)信息查詢超期歸還圖書的讀者姓名和單位查詢借閱過《天龍八部》的讀者的信息查詢借閱過“金庸”所有著作的讀者的姓名查詢沒有借閱過任何圖書的讀者的姓名第六十五頁,共八十一頁,編輯于2023年,星期日2.5關(guān)系演算關(guān)系演算語言以元組變量或域(屬性)變量作為謂詞變元的基本對象來表達查詢的語言分類:元組關(guān)系演算語言域關(guān)系演算語言第六十六頁,共八十一頁,編輯于2023年,星期日2.5.1元組關(guān)系演算元組演算表達式{t|(t)},含義是使(t)為真的元組集合。其中t是元組變量,(t)是元組關(guān)系演算公式,由原子公式和運算符組成。原子公式可以是:第六十七頁,共八十一頁,編輯于2023年,星期日用關(guān)系演算表達式表示五種基本運算第六十八頁,共八十一頁,編輯于2023年,星期日元組關(guān)系演算實例查詢IS系學(xué)生信息查詢年齡小于20歲的學(xué)生查詢學(xué)生的姓名和所在系第六十九頁,共八十一頁,編輯于2023年,星期日2.5.2域關(guān)系演算域演算表達式含義是所有使得為真的那些t1,t2,…,tk組成的元組集合,其中t1,t2,…,tk分別是域變量或常量,R(t1,t2,…,tk)表示由分量t1,t2,…,tk組成的元組屬于關(guān)系R原子公式可以是第七十頁,共八十一頁,編輯于2023年,星期日域關(guān)系演算實例查詢IS系學(xué)生的名字與系名查詢20歲以上學(xué)生的學(xué)號與姓名第七十一頁,共八十一頁,編輯于2023年,星期日

以元組變量作為謂詞變元的基本對象基本格式:操作語句工作空間名(表達式):操作條件其中:表達式用于指定操作的對象,可以為關(guān)系名或?qū)傩悦?/p>

操作條件為一個邏輯表達式

操作語句為GET(查詢),PUT(插入),HOLD(讀?。?UPDATE(修改),DELETE(刪除),DROP(刪除視圖)等例:以學(xué)生-選課數(shù)據(jù)庫為例

.檢索:查詢信息系中年齡小于20歲的學(xué)生的學(xué)號及年齡GETW(Student.Sno,Student.Sage):Student.Sdept=‘IS’Student.Sage<20工作空間名2.5.3元組關(guān)系演算語言ALPHA第七十二頁,共八十一頁,編輯于2023年,星期日查詢信息系年齡最大的三個學(xué)生的學(xué)號及年齡,結(jié)果按年齡降序排列GETW(3)(Student.Sno,Student.Sage):Student.Sdept=‘IS’DOWNStudent.Sage定額:用以規(guī)定檢索出的元組個數(shù).用元組變量的檢索:查詢信息系中年齡小于20歲的學(xué)生的學(xué)號及年齡RANGESCXGETW(X.Sno,X.Sage):X.Sdept=‘IS’X.Sage<20可簡化關(guān)系名操作條件有量詞時必用查詢成績?yōu)?0分以上的學(xué)生名字與課程名字RANGESCSCXGETW(Student.Sname,Course.Cname):SCX(SCX.Grade90

SCX.Sno=Student.SnoCourse.Cno=SCX.Cno)第七十三頁,共八十一頁,編輯于2023年,星期日.用集函數(shù)的查詢:用標準函數(shù)庫提供的函數(shù)如:COUNT,TOTAL,MAX,MIN,AVG查詢信息系學(xué)生的平均年齡GetW(AVG(Student.Sage):Student.Sdept=‘IS’).修改操作:

步驟:先用HOLD將要修改的元組從數(shù)據(jù)庫讀入工作空間用宿主語言修改其屬性用UPDATE將修改后的元組送回數(shù)據(jù)庫中

注:涉及多個關(guān)系,則多次重復(fù)以上三步

示例:把95007學(xué)生從計算機科學(xué)系轉(zhuǎn)到信息系HOLDW(Student.Sno,Student.Sdept):Student.Sno=‘95007’MOVE‘IS’TOW.SdeptUPDATEW第七十四頁,共八十一頁,編輯于2023年,星期日.插入操作:

步驟:用宿主語句在工作空間中建立新的元組用PUT將該元組存入指定的關(guān)系中

注:PUT只對一個關(guān)系操作,即PUT后的表達式必為單個關(guān)系

示例:新開設(shè)一門2個學(xué)分的課程“系統(tǒng)結(jié)構(gòu)”,課程號為8,先行課程號為6,插入該元組MOVE‘8’TOW.CnoMOVE‘系統(tǒng)結(jié)構(gòu)’TOW.CpnoMOVE‘2’TOW.CcreditPUTW(Course)第七十五頁,共八十一頁,編輯于2023年,星期日.刪除操作:步驟:先用HOLD將要修改的元組從數(shù)據(jù)庫讀入工作空間用DELETE將該元組刪除

注:要注意保證參照完整性

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論