




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)庫系統(tǒng)概念關系模型第1頁,課件共111頁,創(chuàng)作于2023年2月24七月20232數(shù)據(jù)庫系統(tǒng)概念----關系模型提綱2.1關系數(shù)據(jù)庫的結構2.2關系代數(shù)基本運算2.3附加的關系代數(shù)運算2.4擴展的關系代數(shù)運算2.5空值2.6數(shù)據(jù)庫的修改本章之后講解5.1:元組關系演算Chapter3-4:sql第2頁,課件共111頁,創(chuàng)作于2023年2月24七月20233數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模型回顧E.F.Codd于70年代初提出關系數(shù)據(jù)理論,他因此獲得1981年的ACM圖靈獎關系理論是建立在集合代數(shù)理論基礎上的,有著堅實的數(shù)學基礎早期代表系統(tǒng)SystemR:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商業(yè)數(shù)據(jù)庫系統(tǒng)Oracle,SQLServer,DB2…Access,F(xiàn)oxpro,F(xiàn)oxbase第3頁,課件共111頁,創(chuàng)作于2023年2月24七月20234數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.1關系數(shù)據(jù)結構單一的數(shù)據(jù)結構----關系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示數(shù)據(jù)的邏輯結構----二維表從用戶角度,關系模型中數(shù)據(jù)的邏輯結構是一張二維表第4頁,課件共111頁,創(chuàng)作于2023年2月24七月20235數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.1關系基本概念域(Domain)一組值的集合,這組值具有相同的數(shù)據(jù)類型如整數(shù)的集合、字符串的集合、全體學生的集合笛卡爾積(Car’tesianProduct)一組域D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,…,n}笛卡爾積的每個元素(d1,d2,…,dn)稱作一個n-元組(n-tuple)元組的每一個值di叫做一個分量(component)若Di的基數(shù)為mi,則笛卡爾積的基數(shù)為第5頁,課件共111頁,創(chuàng)作于2023年2月24七月20236數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.1關系基本概念例:設
D1為教師集合(T)={t1,t2} D2為學生集合(S)={s1,s2,s3} D3為課程集合(C)={c1,c2}
則D1×D2×D3是個三元組集合,元組個數(shù)為2×3×2,是所有可能的(教師,學生,課程)元組集合笛卡爾積可表示為二維表的形式TSCt1s1c1t1s1c2t1s2c1………t2s3c2第6頁,課件共111頁,創(chuàng)作于2023年2月24七月20237數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.1關系基本概念關系笛卡爾積D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的關系,用R(D1,D2,…,Dn)表示R是關系的名字,n是關系的度或目關系是笛卡爾積中有意義的子集關系也可以表示為二維表關系TEACH(T,S,C)TSCt1s1c1t1s1c2t1s2c1t2s3c2元組屬性第7頁,課件共111頁,創(chuàng)作于2023年2月24七月20238數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.1關系基本概念關系的性質列是同質的即每一列中的分量來自同一域,是同一類型的數(shù)據(jù)如TEACH(T,S,C)={(t1,s1,c1),(t1,t2,c1)}是錯誤的不同的列可來自同一域,每列必須有不同的屬性名如P={t1,t2,
s1,s2,s3},C={c1,c2},則TEACH不能寫成TEACH(P,P,C),還應寫成TEACH(T,S,C)第8頁,課件共111頁,創(chuàng)作于2023年2月24七月20239數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.1關系基本概念行列的順序無關緊要遵循這一性質的數(shù)據(jù)庫產(chǎn)品(如ORACLE),增加新屬性時,永遠是插至最后一列但也有許多數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質,例如FoxPro仍然區(qū)分了屬性順序任意兩個元組不能完全相同(集合內(nèi)不能有相同的兩個元素)由笛卡爾積的性質決定,但許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質例如,Oracle,F(xiàn)oxPro等都允許關系表中存在兩個完全相同的元組,除非用戶特別定義了相應的約束條件第9頁,課件共111頁,創(chuàng)作于2023年2月24七月202310數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.1關系基本概念每一分量必須是不可再分的數(shù)據(jù)。滿足這一條件的關系稱作滿足第一范式(1NF)的第10頁,課件共111頁,創(chuàng)作于2023年2月24七月202311數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.2數(shù)據(jù)庫模式DBschema關系的模式和實例 關系模式(型),關系(變量),實例(值)表述方式關系模式:S(sno,sname,dept)關系及關系模式:sc∈SC不同關系中屬性名稱相同,用以闡述不同關系的元組之間的聯(lián)系ssccSnoSnameDeptSnoCnoScoreCnoCnameS1甲計S1C180C1DSS2乙軟S1C290C2DBS3丙軟S2C170第11頁,課件共111頁,創(chuàng)作于2023年2月24七月202312數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.2數(shù)據(jù)庫模式關系模式表現(xiàn)了型的概念,它代表著表的框架;關系表現(xiàn)為值的概念,成為關系實例一個關系模式下可以建立多個關系,例如在學生關系的關系模式下,可以為全校所有班級各建一個學生表表是動態(tài)的,是數(shù)據(jù)庫中數(shù)據(jù)的快照關系數(shù)據(jù)庫是關系的集合,其中每個關系都有自己的關系模式
第12頁,課件共111頁,創(chuàng)作于2023年2月24七月202313數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.2模式構造問題S同SC合并為一個表如何?優(yōu)點:表的數(shù)量少缺點:數(shù)據(jù)冗余、被迫引入空值、插入異常、刪除異?!J綐嬙斓姆椒ê驮瓌tSCSnoCnoScoreS1C180S1C290S2C170SSnoSnameS1甲S2乙S3丙S-SCSnoSnameCnoScoreS1甲C180S1甲C290S2乙C170S3丙第13頁,課件共111頁,創(chuàng)作于2023年2月24七月202314數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.2模式構造問題銀行例子第14頁,課件共111頁,創(chuàng)作于2023年2月24七月202315數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.2模式構造問題第15頁,課件共111頁,創(chuàng)作于2023年2月24七月202316數(shù)據(jù)庫系統(tǒng)概念----關系模型其他可能的模式優(yōu)點:表的數(shù)量少缺點:數(shù)據(jù)冗余、被迫引入空值、插入異常、刪除異?!?6頁,課件共111頁,創(chuàng)作于2023年2月24七月202317數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.3碼超碼(superkey)是一個或多個屬性的集合,這些屬性的集合可以使我們在一個關系中唯一地標識一個元組候選碼(CandidateKey)關系中的一個屬性組,其值能唯一標識一個元組。若從屬性組中去掉任何一個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼,如DEPT中的D#,DN都可作為候選碼任何一個候選碼中的屬性稱作主屬性,如SC中的S#,C#第17頁,課件共111頁,創(chuàng)作于2023年2月24七月202318數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.3碼主碼(PrimaryKey)進行數(shù)據(jù)庫設計時,從一個關系的多個候選碼中選定一個作為主碼,如可選定D#作為DEPT的主碼外部碼(ForeignKey)關系R中的一個屬性組,它不是R的碼,但它與另一個關系S的碼相對應,則稱這個屬性組為R的外部碼,如S關系中的D#屬性R是參照關系(ReferencingRelation)S是被參照關系(ReferencedRelation)R通過外碼F參照關系S如何確定超碼按照現(xiàn)實世界語義約束定義碼不能依據(jù)對數(shù)據(jù)的歸納總結定義碼第18頁,課件共111頁,創(chuàng)作于2023年2月24七月202319數(shù)據(jù)庫系統(tǒng)概念----關系模型模式圖schemadiagram模式圖表示各關系模式屬性主碼關系引用第19頁,課件共111頁,創(chuàng)作于2023年2月24七月202320數(shù)據(jù)庫系統(tǒng)概念----關系模型我們常用的例子數(shù)據(jù)結構單一的數(shù)據(jù)結構——關系實體集、聯(lián)系都表示成關系DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL)學生選修屬于系教師工作管理課程先修第20頁,課件共111頁,創(chuàng)作于2023年2月24七月202321數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模型DEANDND#DEPTD#AGESEXSNS#SPC#CREDITCNC#CD#SALPNP#PROFSCOREC#S#SC第21頁,課件共111頁,創(chuàng)作于2023年2月24七月202322數(shù)據(jù)庫系統(tǒng)概念----關系模型例子S#SNAGESD
S#C#G9801張三20D19801C1629805李四21D29801C273
9805C380SSC第22頁,課件共111頁,創(chuàng)作于2023年2月24七月202323數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性實體完整性關系的主碼中的屬性值不能為空值空值:不知道或無意義意義:關系對應到現(xiàn)實世界中的實體集,元組對應到實體,實體是相互可區(qū)分的,通過主碼來唯一標識,若主碼為空,則出現(xiàn)不可標識的實體,這是不容許的第23頁,課件共111頁,創(chuàng)作于2023年2月24七月202324數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性關系模型必須遵守實體完整性規(guī)則的原因實體完整性規(guī)則是針對基本關系而言的。一個基本表通常對應現(xiàn)實世界的一個實體集或多對多聯(lián)系現(xiàn)實世界中的實體和實體間的聯(lián)系都是可區(qū)分的,即它們具有某種唯一性標識相應地,關系模型中以主碼作為唯一性標識主碼中的屬性即主屬性不能取空值空值就是“不知道”或“無意義”的值主屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與實體的可區(qū)分性相矛盾,因此這個規(guī)則稱為實體完整性第24頁,課件共111頁,創(chuàng)作于2023年2月24七月202325數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性注意實體完整性規(guī)則規(guī)定基本關系的所有主屬性都不能取空值例選修(學號,課程號,成績)“學號、課程號”為主碼,則兩個屬性都不能取空值。第25頁,課件共111頁,創(chuàng)作于2023年2月24七月202326數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性參照完整性(ReferentialIntegrity)在關系模型中實體及實體間的聯(lián)系都是用關系來描述的,因此可能存在著關系與關系間的引用例1學生實體、專業(yè)實體以及專業(yè)與學生間的一對多聯(lián)系學生(學號,姓名,性別,院系編號,年齡)專業(yè)(院系編號,專業(yè)名)第26頁,課件共111頁,創(chuàng)作于2023年2月24七月202327數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性參照完整性如果關系R2的外部碼Fk與關系R1的主碼Pk相對應,則R2中的每一個元組的Fk值或者等于R1中某個元組的Pk值,或者為空值意義:如果關系R2的某個元組t2參照了關系R1的某個元組t1,則t1必須存在例如關系S在D#上的取值有兩種可能空值,表示該學生尚未分到任何系中若非空值,則必須是DEPT關系中某個元組的D#值,表示該學生不可能分到一個不存在的系中第27頁,課件共111頁,創(chuàng)作于2023年2月24七月202328數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性第28頁,課件共111頁,創(chuàng)作于2023年2月24七月202329數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性學生、課程、學生與課程之間的多對多聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學分)選修(學號,課程號,成績)第29頁,課件共111頁,創(chuàng)作于2023年2月24七月202330數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性學生實體及其內(nèi)部的領導聯(lián)系(一對多)第30頁,課件共111頁,創(chuàng)作于2023年2月24七月202331數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性用戶定義的完整性用戶針對具體的應用環(huán)境定義的完整性約束條件如S#要求是8位整數(shù),SEX要求取值為“男”或“女”系統(tǒng)支持實體完整性和參照完整性由系統(tǒng)自動支持系統(tǒng)應提供定義和檢驗用戶定義的完整性的機制第31頁,課件共111頁,創(chuàng)作于2023年2月24七月202332數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性課程(課程號,課程名,學分)“課程名”屬性必須取唯一值非主屬性“課程名”也不能取空值“學分”屬性只能取值{1,2,3,4}第32頁,課件共111頁,創(chuàng)作于2023年2月24七月202333數(shù)據(jù)庫系統(tǒng)概念----關系模型關系模式的完整性供應商號供應商名所在城市B01紅星北京S10宇宙上海T20黎明天津Z01立新重慶零件號顏色供應商號010紅B01312白S10201藍T20
今要向關系P中插入新行,新行的值分別列出如下。哪些行能夠插入?A.(‘037’,‘綠’,null)B.(null,‘黃’,‘T20’)C.(‘201’,‘紅’,‘T20’)D.(‘105’,‘藍’,‘B01’)E.(‘101’,‘黃’,‘T11’)零件關系P(主碼是“零件號”,外碼是“供應商號”)供應商關系S(主碼是“供應商號”)第33頁,課件共111頁,創(chuàng)作于2023年2月24七月202334數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.4查詢語言關系操作關系操作是集合操作,操作的對象及結果都是集合,是一次一集合(Set-at-a-time)的方式而非關系型的數(shù)據(jù)操作方式是一次一記錄(Record-at-a-time)關系操作可以用關系代數(shù)和關系演算兩種方式來表示,它們是相互等價的如用關系代數(shù)來表示關系的操作,可以有選擇、投影、連接、除、交、差、并等第34頁,課件共111頁,創(chuàng)作于2023年2月24七月202335數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.4查詢語言關系數(shù)據(jù)語言的特點一體化一般關系系統(tǒng)的數(shù)據(jù)語言都同時具有數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制語言,而不是分為幾個語言。對象單一,都是關系,因此操作符也單一。而非關系型系統(tǒng),如DBTG,有對記錄的操作,有對關系的操作非過程化用戶只需提出“做什么”,無須說明“怎么做”,存取路徑的選擇和操作過程由系統(tǒng)自動完成面向集合的存取方式操作對象是一個或多個關系,結果是一個新的關系(一次一關系)。非關系系統(tǒng)是一次一記錄的方式第35頁,課件共111頁,創(chuàng)作于2023年2月24七月202336數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.4查詢語言抽象的查詢語言關系代數(shù)用對關系的運算來表達查詢,需要指明所用操作關系演算用謂詞來表達查詢,只需描述所需信息的特性元組關系演算謂詞變元的基本對象是元組變量域關系演算謂詞變元的基本對象是域變量第36頁,課件共111頁,創(chuàng)作于2023年2月24七月202337數(shù)據(jù)庫系統(tǒng)概念----關系模型2.1.4查詢語言具體系統(tǒng)中的實際語言SQL介于關系代數(shù)和關系演算之間,由IBM公司在研制SystemR時提出QUEL基于Codd提出的元組關系演算語言ALPHA,在INGRES上實現(xiàn)QBE基于域關系演算,由IBM公司研制第37頁,課件共111頁,創(chuàng)作于2023年2月24七月202338數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2關系代數(shù)運算匯總基本運算一元運算選擇、投影、更名多元運算笛卡兒積、并、集合差其它運算集合交、θ連接、自然連接、除、賦值第38頁,課件共111頁,創(chuàng)作于2023年2月24七月202339數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2關系代數(shù)的一些記號
給定關系模式R(A1,A2,…,An),設R是它的一個具體的關系,tR是關系的一個元組分量設tR,則t[Ai]表示元組t中相應于屬性Ai的一個分量屬性列A={Ai1,Ai2,…,Aik}{A1,A2,…,An},稱A為屬性列A表示{A1,A2,…,An}中去掉A后剩余的屬性組t[A]=(t[Ai1],t[Ai2],…,t[Aik])第39頁,課件共111頁,創(chuàng)作于2023年2月24七月202340數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.1基本運算--選擇運算定義在關系R中選擇滿足給定條件的元組(從行的角度)F(R)={t|tR,F(t)=‘真’}F是選擇的條件,tR,F(xiàn)(t)要么為真,要么為假F的形式:由邏輯運算符連接算術表達式而成
邏輯表達式:,, 算術表達式:XY X,Y是屬性名、常量、或簡單函數(shù) 是比較算符,{,,,,,≠}第40頁,課件共111頁,創(chuàng)作于2023年2月24七月202341數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.1基本運算--選擇運算選擇運算是從行的角度進行的運算σ第41頁,課件共111頁,創(chuàng)作于2023年2月24七月202342數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.1基本運算--選擇運算ABC367257723443RA<5(R)
ABC367257443A<5C=7(R)
ABC367257第42頁,課件共111頁,創(chuàng)作于2023年2月24七月202343數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.1基本運算--選擇運算示例找perridge支行的存款branch_name=‘perridge’(account)找年齡不小于20的男學生AGE≥20∧
SEX=‘male’(S)第43頁,課件共111頁,創(chuàng)作于2023年2月24七月202344數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.1基本運算--選擇運算問題:兩個屬性能否直接比較?第44頁,課件共111頁,創(chuàng)作于2023年2月24七月202345數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.2基本運算--投影定義從關系R中取若干列組成新的關系(從列的角度)A(R)={t[A]|tR},AR投影的結果中要去掉相同的行cbcfedcbaCBABCbcef
R
B,C(R)第45頁,課件共111頁,創(chuàng)作于2023年2月24七月202346數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.2基本運算--投影投影操作主要是從列的角度進行運算π第46頁,課件共111頁,創(chuàng)作于2023年2月24七月202347數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.2基本運算--投影示例給出所有學生的姓名和年齡SN,AGE(S)第47頁,課件共111頁,創(chuàng)作于2023年2月24七月202348數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.2基本運算--投影示例找001號學生所選修的課程號C#(S#=001
(SC))第48頁,課件共111頁,創(chuàng)作于2023年2月24七月202349數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.3基本運算--并運算定義所有至少出現(xiàn)在兩個關系中之一的元組集合RS={r|rRrS}RS兩個關系R和S若進行并運算,則它們必須是相容的:關系R和S必須是同元的,即它們的屬性數(shù)目必須相同對i,R的第i個屬性的域必須和S的第i個屬性的域相同不要求對應列同名第49頁,課件共111頁,創(chuàng)作于2023年2月24七月202350數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.3基本運算--并運算ABC367257723443RABC345723SABC367257723443345R∪S第50頁,課件共111頁,創(chuàng)作于2023年2月24七月202351數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.3基本運算--并運算示例求選修了001號或002號課程的學生號 方案1:∏S#(C#=001∨
C#=002(SC))
方案2:∏S#(C#=001(SC))∪∏S#(C#=002(SC))第51頁,課件共111頁,創(chuàng)作于2023年2月24七月202352數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.4基本運算--差運算定義所有出現(xiàn)在一個關系而不在另一關系中的元組集合RS={r|rRrS}R和S必須是相容的RSSR第52頁,課件共111頁,創(chuàng)作于2023年2月24七月202353數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.4基本運算--差運算ABC367257723443RABC345723SABC367257443R-SABC345S-R第53頁,課件共111頁,創(chuàng)作于2023年2月24七月202354數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.4基本運算--差運算示例求選修了001號而沒有選002號課程的學生號∏S#(C#=001(SC))-∏S#(C#=002(SC))求未選修c1號課程的學生號方案1:∏S#(S)-∏S#(C#=c1(SC))
方案2:∏S#(C#≠c1(SC))哪一個正確?96c2s195c1s290c1s1GC#S#……s3……s2……s1AGESNS#第54頁,課件共111頁,創(chuàng)作于2023年2月24七月202355數(shù)據(jù)庫系統(tǒng)概念----關系模型基本運算的分配律投影和并可以分配
∏pid,name(S∪T)≡∏pid,name(S)∪∏pid,name(T)投影和差不可分配
∏pid,name(S-T)≠∏pid,name(S)-∏pid,name(T)tPidTnoTnamep1t1甲p3t2丙sPidSnoSnamep1s1甲p2s2乙第55頁,課件共111頁,創(chuàng)作于2023年2月24七月202356數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.5基本運算--笛卡爾積運算元組的連串(Concatenation)若r=(r1,…
,rn),s=(s1,…
,sm),則定義r與s的連串為:定義兩個關系R,S,其度分別為n,m,則它們的笛卡爾積是所有這樣的元組集合:元組的前n個分量是R中的一個元組,后m個分量是S中的一個元組RS的度為R與S的度之和,RS的元組個數(shù)為R和S的元組個數(shù)的乘積rs=(r1,…
,rn,s1,…
,sm)RS={rs|rRsS}第56頁,課件共111頁,創(chuàng)作于2023年2月24七月202357數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.5基本運算--笛卡爾積運算運算結果的命名 r.a1關系名前綴的省略不要求同屬性值相同,即允許新元組中s.sno<>sc.sno第57頁,課件共111頁,創(chuàng)作于2023年2月24七月202358數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.5基本運算--笛卡爾積運算AB12rCD10102010EaabbsAB11112222CD1010201010102010Eaabbaabbrx
s第58頁,課件共111頁,創(chuàng)作于2023年2月24七月202359數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.5基本運算--笛卡爾積運算A=C(rxs)rxsA=C(rxs)aab
AB11112222CD1010201010102010EaabbaabbABCDE122102020第59頁,課件共111頁,創(chuàng)作于2023年2月24七月202360數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.5基本運算--笛卡爾積運算求計算機系學生的選課情況
(sno,sname,cno,score)思考:有幾種寫法?哪種效率更高?SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲計S1C180C1DSS2乙軟S1C290C2DBS3丙軟S2C170S4丁計S3C260第60頁,課件共111頁,創(chuàng)作于2023年2月24七月202361數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.6基本運算--更名運算(rename)定義給一個關系表達式賦予名字x(E) 返回表達式E的結果,并把名字x賦給Ex(A1,A2,
,
An
)(E) 返回表達式E的結果,并把名字x賦給E,同時將各屬性更名為A1,A2,
,An
關系被看作一個最小的關系代數(shù)表達式,可以將更名運算施加到關系上,得到具有不同名字的同一關系。這在同一關系多次參與同一運算時很有幫助第61頁,課件共111頁,創(chuàng)作于2023年2月24七月202362數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.6基本運算--更名運算(rename)ABC367257723443RABC345723SR1(R),R2(R–S)R3(x,y,z)(A<5C=7(R)
)第62頁,課件共111頁,創(chuàng)作于2023年2月24七月202363數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.6基本運算--更名運算(rename)示例求數(shù)學成績比王紅同學高的學生89數(shù)學張軍86數(shù)學王紅93物理張軍成績課程姓名∏S.姓名(
R.成績S.成績R.課程=數(shù)學S.課程=數(shù)學R.姓名=王紅
(RS(R)))R86數(shù)學王紅86數(shù)學王紅86數(shù)學王紅R.成績R.課程R.姓名89數(shù)學張軍86數(shù)學王紅93物理張軍S.成績S.課程S.姓名第63頁,課件共111頁,創(chuàng)作于2023年2月24七月202364數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.6基本運算--更名運算(rename)找出所有與smith居住在同一城市同一街道的客戶∏(customer.street=s_add.street
customer.ity=s_add.city(customers_add(street,city)(∏street,city(name=‘smith’(customer)))))第64頁,課件共111頁,創(chuàng)作于2023年2月24七月202365數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2.7關系代數(shù)的形式化定義關系代數(shù)的基本表達式:數(shù)據(jù)庫中的一個關系一個常數(shù)關系關系代數(shù)中的表達式是由更小的子表達式構成的,假設E1和E2是關系代數(shù)表達式,則下列都是關系代數(shù)表達式:E1E2E1-E2E1XE2p(E1)p(E1)x(E1)關系代數(shù)表達式僅限于上述運算的有限次復合第65頁,課件共111頁,創(chuàng)作于2023年2月24七月202366數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2關系代數(shù)查詢實例求未選修c1號課程的學生號方案1:∏S#(S)-∏S#(C#=c1(SC))
方案2:∏S#(C#≠c1(SC))哪一個正確?96c2s195c1s290c1s1GC#S#……s3……s2……s1AGESNS#第66頁,課件共111頁,創(chuàng)作于2023年2月24七月202367數(shù)據(jù)庫系統(tǒng)概念----關系模型求僅選修了c01號課程的學生號選修c01號課程的學生-選c01號課程之外的學生=∏S#(C#=c01(SC))-∏S#(SC-C#=c01(SC))2.2關系代數(shù)查詢實例S#C#SCOREP03C0288P01C0392S#P01P02S#P01P03S#P02第67頁,課件共111頁,創(chuàng)作于2023年2月24七月202368數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2關系代數(shù)基本運算-練習1.求學了c1課程的學生sno,sname2.求沒有學c1課程的學生sno,sname3.求哪些學生沒有學哪些課(sno,cno)SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲計S1C180C1DSS2乙軟S1C290C2DBS3丙軟S2C170S4丁計S3C260第68頁,課件共111頁,創(chuàng)作于2023年2月24七月202369數(shù)據(jù)庫系統(tǒng)概念----關系模型2.2關系代數(shù)基本運算-課外練習1.求學了c1或c2課程的學生sno,sname2.求學了c1和c2課程的學生sno,sname3.求學了c1沒有學c2課程的學生sno,sname4.求只學了c1課程的的學生sno5.求計算機系學生的“DB”成績(sno,sname,score)
請考慮:有幾種寫法?你能不能給出效率最高的寫法?6.求每個學生的單科最高成績以及相應課程號
(sno,max_score,cno)SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲計S1C180C1DSS2乙軟S1C290C2DBS3丙軟S2C170S4丁計S3C260第69頁,課件共111頁,創(chuàng)作于2023年2月24七月202370數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3附加運算為了書寫方便,擴展了若干操作,稱為附加運算附加運算沒有實質地擴展關系代數(shù)的能力附加運算的種類 交(r∩s)
自然連接(rs)
除(r÷s)
賦值運算(←)第70頁,課件共111頁,創(chuàng)作于2023年2月24七月202371數(shù)據(jù)庫系統(tǒng)概念----關系模型定義所有同時出現(xiàn)在兩個關系中的元組集合RS={r|rRrS}交運算可以通過差運算來重寫RS=R(RS)=S(SR)2.3.1交運算RS第71頁,課件共111頁,創(chuàng)作于2023年2月24七月202372數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.1交運算344327752763CBAR327543CBAS327CBAR∩S第72頁,課件共111頁,創(chuàng)作于2023年2月24七月202373數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.1交運算示例求同時選修了001號和002號課程的學生號錯誤的寫法:∏S#(C#=001
C#=002(SC))正確的寫法:∏S#(C#=001(SC))∩∏S#(C#=002(SC))第73頁,課件共111頁,創(chuàng)作于2023年2月24七月202374數(shù)據(jù)庫系統(tǒng)概念----關系模型定義從兩個關系的廣義笛卡兒積中選取給定屬性間滿足一定條件的元組
A,B為R和S上度數(shù)相等且可比的屬性列為算術比較符,為等號時稱為等值連接
RS=r[A]S[B](
R×S)補充--連接ABABRS={rs|rRsSr[A]S[B]}第74頁,課件共111頁,創(chuàng)作于2023年2月24七月202375數(shù)據(jù)庫系統(tǒng)概念----關系模型B<D補充--連接求數(shù)學成績比王紅同學高的學生。987654321CBADE3162ABCDE123311236245662RS
R
S∏S.姓名((課程=數(shù)學姓名=王紅(R))(
課程=數(shù)學S(R)))R.成績<S.成績第75頁,課件共111頁,創(chuàng)作于2023年2月24七月202376數(shù)據(jù)庫系統(tǒng)概念----關系模型定義從兩個關系的廣義笛卡兒積中選取在相同屬性列B上取值相等的元組,并去掉重復的列。自然連接與等值連接的不同自然連接中相等的分量必須是相同的屬性組,并且要在結果中去掉重復的屬性,而等值連接則不必。當R與S無相同屬性時,RS=R×S可交換,可結合ssc≡scs(ssc)c≡s(scc)
2.3.2自然連接RS={rs[B]|rRsSr[B]=S[B]}第76頁,課件共111頁,創(chuàng)作于2023年2月24七月202377數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.2自然連接AB12412CDaababrB13123DaaabbEs11112aaaabABCDErs第77頁,課件共111頁,創(chuàng)作于2023年2月24七月202378數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.2自然連接示例求001號學生所在系的名稱∏DN(S#=001(S)DEPT)987654321CBACD3162
R
SABCD12314562
RS第78頁,課件共111頁,創(chuàng)作于2023年2月24七月202379數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算課程數(shù)學物理=物理李明數(shù)學張軍數(shù)學王紅物理張軍課程姓名姓名張軍第79頁,課件共111頁,創(chuàng)作于2023年2月24七月202380數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算象集(ImageSet)關系R(X,Z),X,Z是屬性組,x是X上的取值,定義x在R中的象集為Zx={t[Z]|tRt[X]=x}
從R中選出在X上取值為x的元組,去掉X上的分量,只留Z上的分量XZ張軍同學所選修的全部課程x=張軍Zx數(shù)學張軍數(shù)學王紅物理張軍課程姓名課程數(shù)學物理第80頁,課件共111頁,創(chuàng)作于2023年2月24七月202381數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算給定關系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。
R÷S={t
[X]|t
R∧∏
Y(S)
Yx} Yx:x在R中的象集,x=t[X]第81頁,課件共111頁,創(chuàng)作于2023年2月24七月202382數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算
做法:逐個考慮選課關系SC中的元組r,求r在姓名SN上的分量x,再求x在選課關系中的象集課程Cx,若Cx包含了所有的課程C,則x是滿足條件的一個元組如何得到選修了全部課程的學生?{x|x=r[SN]rSC
CxC}選修全部課程的學生全部課程x同學所選修的全部課程第82頁,課件共111頁,創(chuàng)作于2023年2月24七月202383數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算除定義R(X,Y)S(Y)={x|x=r[X]rRYxS}R(X,Y)S(Y)={t|tX(R)uS(tuR)}RS=X(R)X(X(R)Y(S)R)第83頁,課件共111頁,創(chuàng)作于2023年2月24七月202384數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算張軍物理數(shù)學課程=物理王紅數(shù)學張軍數(shù)學王紅物理張軍課程姓名王紅張軍姓名沒有選修全部課程的學生所有學生選修全部課程=數(shù)學張軍數(shù)學王紅物理張軍課程姓名物理王紅數(shù)學張軍數(shù)學王紅物理張軍課程姓名姓名王紅姓名王紅姓名王紅=姓名張軍選修了全部課程的學生第84頁,課件共111頁,創(chuàng)作于2023年2月24七月202385數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算ABCDabcdabefabdebcefedcdedefCDcdefABabeddecbbaBAdccbfededcdefecbfebadcbaDCBAR
AB(R)S
AB(R)CD(S)AB(R)CD(S)-RABCDbccdRS=decbbaBAABbc-=第85頁,課件共111頁,創(chuàng)作于2023年2月24七月202386數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算示例求同時選修了001和002號課程的學生號
方案1:∏S#,C#(SC)C#=001
C#=002(C)
方案2:∏S#(SCC#=001
C#=002(C))
哪一個正確?第86頁,課件共111頁,創(chuàng)作于2023年2月24七月202387數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算課程數(shù)學物理=92物理王紅938693成績數(shù)學張軍數(shù)學王紅物理張軍課程姓名課程數(shù)學物理物理王紅數(shù)學張軍數(shù)學王紅物理張軍課程姓名姓名張軍王紅=姓名成績張軍93選修了全部課程并且成績都相同的學生選修了全部課程的學生第87頁,課件共111頁,創(chuàng)作于2023年2月24七月202388數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.3除運算示例,求學了所有課的學生學號:思考1:使用÷,有幾種寫法?思考2:不使用÷,如何書寫?SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲計S1C180C1DSS2乙軟S1C290C2DBS3丙軟S2C170S4丁計S3C260第88頁,課件共111頁,創(chuàng)作于2023年2月24七月202389數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.4賦值運算定義為使查詢表達簡單、清晰,可以將一個復雜的關系代數(shù)表達式分成幾個部分,每一部分都賦予一個臨時關系變量,該變量可被看作關系而在后面的表達式中使用臨時關系變量關系代數(shù)表達式賦值給臨時關系變量只是一種結果的傳遞,而賦值給永久關系則意味著對數(shù)據(jù)庫的修改第89頁,課件共111頁,創(chuàng)作于2023年2月24七月202390數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3.4賦值運算示例RS=X(R)X(X(R)Y(S)R)用賦值重寫為:temp1
X(R)temp2
X(temp1Y(S)R)resulttemp1temp2第90頁,課件共111頁,創(chuàng)作于2023年2月24七月202391數(shù)據(jù)庫系統(tǒng)概念----關系模型2.3附加運算:練習1、求計算機系學生的“DB”成績(sno,sname,score)2、使用÷,求學了s5所學全部課程的學生3、不使用÷,求學了s5所學全部課程的學生SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲計S1C180C1DSS2乙軟S1C290C2DBS3丙軟S2C170S4丁計S3C260第91頁,課件共111頁,創(chuàng)作于2023年2月24七月202392數(shù)據(jù)庫系統(tǒng)概念----關系模型2.5空值,Null空值的語義 不知道或不存在空值的表現(xiàn)參與算術運算:結果為Null參與比較運算:結果為Null參與邏輯運算:
1、Nullortrue=ture 2、Nullandfalse=false 3、其它情況結果為null空值是一種狀態(tài),不是一個明確的值SSnoSnameDeptSageS1甲計20S2乙軟21S3丙軟S4丁20第92頁,課件共111頁,創(chuàng)作于2023年2月24七月202393數(shù)據(jù)庫系統(tǒng)概念----關系模型2.5關系代數(shù)對空值的處理不是總有道理,更多的時候是定義σθ(E)保留使θ確定地為真的元組求20歲的學生求不是20歲的學生ΠA1,A2…(E)元組表現(xiàn)相同(認為表示的語義相同),則保留一個元組求各系年齡分布(dept,sage)∪∩-:與Π的處理原則一致SSnoSnameDeptSageS1甲計20S2乙軟21S3丙軟S4丁軟第93頁,課件共111頁,創(chuàng)作于2023年2月24七月202394數(shù)據(jù)庫系統(tǒng)概念----關系模型2.4擴展的關系代數(shù)關系代數(shù)擴展的幾個運算:廣義投影聚集、分組聚集外連接擴展的關系代數(shù)運算:對關系代數(shù)的查詢能力進行了一些經(jīng)常需要的擴展一般地講,擴展的運算屬于關系代數(shù)嚴格地說,擴展的運算不屬于關系代數(shù)運算第94頁,課件共111頁,創(chuàng)作于2023年2月24七月202395數(shù)據(jù)庫系統(tǒng)概念----關系模型2.4.1廣義投影定義在投影列表中使用算術表達式來對投影進行擴展F1,F2
,…,Fn
(E)F1,F2,…,Fn是算術表達式as更名示例求教工應繳納的所得稅P#
,SAL*5/100
(PROF)R(p#,INCOME-TAX)(P#
,SAL*5/100
(PROF))第95頁,課件共111頁,創(chuàng)作于2023年2月24七月202396數(shù)據(jù)庫系統(tǒng)概念----關系模型2.4.2聚集函數(shù)定義求一組值的統(tǒng)計信息,返回單一值使用聚集的集合可以是多重集,即一個值可以重復出現(xiàn)多次。如果想去除重復值,可以用連接符‘-’將‘distinct’附加在聚集函數(shù)名后,如sum-distinctsum:求和求全體教工的總工資sumSAL((PROF))
求001號學生的總成績sumSCORE(S#=001(SC))第96頁,課件共111頁,創(chuàng)作于2023年2月24七月202397數(shù)據(jù)庫系統(tǒng)概念----關系模型2.4.2聚集函數(shù)avg:求平均求001號同學選修課程的平均成績。avgSCORE(S#=001(SC))count:計數(shù)求001號同學選修的課程數(shù)。countC#(S#=001(SC))
求任課老師的總數(shù)。count-distinctP#(PC)第97頁,課件共111頁,創(chuàng)作于2023年2月24七月202398數(shù)據(jù)庫系統(tǒng)概念----關系模型max:求最大值
min:求最小值求學生選修數(shù)學的最高成績maxSCORE(CN=數(shù)學(C)SC))分組將一個元組集合分為若干個組,在每個分組上使用聚集函數(shù)。屬性下標G
聚集函數(shù)屬性下標(關系)2.4.2聚集函數(shù)對此屬性在每個分組上運用聚集函數(shù)按此屬性上的值對關系分組第98頁,課件共111頁,創(chuàng)作于2023年2月24七月202399數(shù)據(jù)庫系統(tǒng)概念----關系模型2.4.2聚集函數(shù)分組運算G的一般形式G1,G2,...,Gn
G
F1,A1,F2,A2,…,Fm,Am(E)
Gi是用于分組的屬性,F(xiàn)i是聚集函數(shù),Ai是屬性名。
G將E分為若干組,滿足:
1)同一組中所有元組在G1,G2,...,Gn上的值相同。
2)不同組中元組在G1,G2,...,Gn上的值不同。示例求每位學生的總成績和平均成績S#GsumSCORE,avgSCORE(SC)第99頁,課件共111頁,創(chuàng)作于2023年2月24七月2023100數(shù)據(jù)庫系統(tǒng)概念----關系模型RABC77310g
sum(c)(R)sum-C272.4.2聚集函數(shù)第100頁,課件共111頁,創(chuàng)作于2023年2月24七月2023101數(shù)據(jù)庫系統(tǒng)概念----關系模型2.4.2聚集函數(shù)branch-nameaccount-numberbalancePerryridgePerryridgeBrightonBrightonRedwoodA-102A-201A-217A-215A-222400900750750700branch-namebalancePerryridgeBrightonRedwooccountbranch-name
gsum(balance)(account)第101頁,課件共111頁,創(chuàng)作于2023年2月24七月2023102數(shù)據(jù)庫系統(tǒng)概念----關系模型2.4.2聚集函數(shù):G練習1、求學習了5門以上課程的學生學號及課程門數(shù);2、求有5門以上優(yōu)秀課程(≥90)的學生學號;3、求每個學生的單科最高成績及相應科目名稱;4、求最高的學生平均成績;5、求高于平均成績的修課記錄;6、求高于本門課平均成績的修課記錄;SCSnoCnoScoreS1C180S1C290S1C385S2C170S2C380S3C260第102頁,課件共111頁,創(chuàng)作于2023年2月24七月2023103數(shù)據(jù)庫系統(tǒng)概念----
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年高中數(shù)學課時分層作業(yè)14解三角形的實際應用舉例含解析北師大版必修5
- 2024-2025學年高中歷史課時作業(yè)16抗日戰(zhàn)爭新人教版必修1
- 昆曲在當代的繼承與發(fā)展
- 2024-2025學年高中生物課時分層作業(yè)2基因工程的基本操作程序含解析新人教版選修3
- 2025年杯口卷邊機項目投資可行性研究分析報告
- 2025年中國山地自行車市場競爭態(tài)勢及行業(yè)投資潛力預測報告
- 硬脂酸鎂項目可行性研究報告
- 2025年中國銀行中間業(yè)務行業(yè)發(fā)展監(jiān)測及投資規(guī)劃建議報告
- 2024山東建材批發(fā)市場前景及投資研究報告
- 《化妝品穩(wěn)定性試驗規(guī)范》
- 《社區(qū)康復》課件-第四章 腦血管疾病患者的社區(qū)康復實踐
- 生活化教學在小學道德與法治課堂實踐 論文
- 2024年江蘇農(nóng)林職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 腰脊神經(jīng)后支痛課件
- 《商務數(shù)據(jù)分析》 課件 項目一 商務數(shù)據(jù)分析認知
- 加強鍛煉預防疾病主題
- 心衰合并胸腔積液的護理Ppt
- 2023學年、2024學年臨平區(qū)公辦學校校方責任險投保采購項目招標文件
- 物流風險管理與應對策略
- 2024家政行業(yè)現(xiàn)狀分析
評論
0/150
提交評論