數(shù)據(jù)庫原理與應用-關系數(shù)據(jù)庫理論_第1頁
數(shù)據(jù)庫原理與應用-關系數(shù)據(jù)庫理論_第2頁
數(shù)據(jù)庫原理與應用-關系數(shù)據(jù)庫理論_第3頁
數(shù)據(jù)庫原理與應用-關系數(shù)據(jù)庫理論_第4頁
數(shù)據(jù)庫原理與應用-關系數(shù)據(jù)庫理論_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章

關系數(shù)據(jù)庫理論回顧什么是數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)?數(shù)據(jù)庫系統(tǒng)的三層結構、三級模式結構、兩級映射、數(shù)據(jù)獨立性在數(shù)據(jù)庫系統(tǒng)中,對現(xiàn)實世界客觀對象的抽象過程中,可建立哪三層模型?數(shù)據(jù)模型的三要素是什么?2回顧概念模型實體、屬性、域、關鍵字、實體型、實體集、聯(lián)系數(shù)據(jù)模型層次、網(wǎng)狀、關系模型組成要素數(shù)據(jù)結構、數(shù)據(jù)操作、完整性約束3案例:教務管理在一個學校中,每個系(DEPT)分為若干個專業(yè)(SP),而每個專業(yè)只屬于一個系。系與教師(TEACHER)、專業(yè)與學生(STUDENT)、專業(yè)與課程(COURSE)之間的聯(lián)系也都類似。學生選修課程,每個學生可選多門課程、每門課程可由多個學生進修。學生選修課程后需要考試,得到一個成績。4層次數(shù)據(jù)模型的數(shù)據(jù)結構

層次模型有且只有一個結點沒有雙親結點,這個結點稱為根結點根以外的其它結點有且只有一個雙親結點5例:層次數(shù)據(jù)模型6層次模型的優(yōu)缺點優(yōu)點層次數(shù)據(jù)模型簡單,對具有一對多的層次關系的部門描述自然、直觀,容易理解性能優(yōu)于關系模型,不低于網(wǎng)狀模型層次數(shù)據(jù)模型提供了良好的完整性支持缺點多對多聯(lián)系表示不自然對插入和刪除操作的限制多查詢子女結點必須通過雙親結點層次命令趨于程序化7網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結構

網(wǎng)狀模型滿足下面兩個條件允許一個以上的結點無雙親;一個結點可以有多于一個的雙親。8例:網(wǎng)狀數(shù)據(jù)模型9例:網(wǎng)狀數(shù)據(jù)模型10網(wǎng)狀模型的優(yōu)缺點優(yōu)點能夠更為直接地描述現(xiàn)實世界,如一個結點可有多個雙親具有良好的性能,存取效率較高缺點結構比較復雜,而且隨著應用環(huán)境的擴大,數(shù)據(jù)庫的結構就變得越來越復雜,不利于最終用戶掌握DDL、DML語言復雜,用戶不容易使用11我們面對的數(shù)據(jù)12我們面對的數(shù)據(jù)13內(nèi)容一、關系模型概述二、關系代數(shù)三、關系演算14關系模型概述系統(tǒng)而嚴格地提出關系模型的是美國IBM公司的E.F.Codd1970年提出關系數(shù)據(jù)模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了關系代數(shù)和關系演算的概念1972年提出了關系的第一、第二、第三范式1974年提出了關系的BC范式15關系數(shù)據(jù)結構關系模型建立在集合代數(shù)的基礎上關系關系模式關系數(shù)據(jù)庫:在某一應用領域中,所有實體集及實體之間聯(lián)系所形成的關系的集合就構成了一個關系數(shù)據(jù)庫。單一的數(shù)據(jù)結構----關系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示數(shù)據(jù)的邏輯結構----二維表從用戶角度,關系模型中數(shù)據(jù)的邏輯結構是一張二維表。16二維表17張山男19張山女19張山男20張山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女20域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例如:整數(shù)實數(shù)介于某個取值范圍的整數(shù)長度指定長度的字符串集合{‘男’,‘女’}介于某個取值范圍的日期18張山男19張山女19張山男20張山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女20笛卡爾積(CartesianProduct)笛卡爾積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di

Di,i=1,2,…,n}元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。表示方法笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。19例:笛卡爾積設D1為學生集合={張山,李斯,王武};D2為性別集合={男,女};D3為年齡集合={19,20}請用二維表的形式表示D1×D2×D3張山男19張山女19張山男20張山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女2020笛卡爾積基數(shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:21關系(Relation)滿足一定語義的D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,表示為

R(D1,D2,…,Dn)其中:R:關系名n:關系的目或度(Degree)22例:關系設D1為學生集合={張山,李斯,王武};

D2為性別集合={男,女};D3為年齡集合={19,20}請用二維表的形式表示關系:學生張山男19張山女19張山男20張山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女20張山女19李斯男20王武男1923關系模型的相關概念實體屬性域關鍵字(碼)實體型實體集概念模型關系模型關系屬性域候選鍵(碼)關系模式關系實例24屬性關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute)。n目關系必有n個屬性。25學生(學號,姓名,性別,年齡)候選鍵候選鍵(Candidatekey)關系中能唯一標志一個元組的最小屬性集。例如:學生(學號,姓名,性別,年齡)26每一個關系都至少存在一個候選鍵。若一個關系有多個候選鍵,可選擇其中的一個作為主鍵。包含候選鍵的屬性集稱為超鍵。若關系只有一個候選鍵,且這個候選鍵包含了關系的所有屬性,稱該候選鍵為全鍵。例:候選鍵課程C教員T參考書B選用章節(jié)物理李勇普通物理學1,2,3,4,7物理李勇光學原理2,3物理王軍普通物理學1,2,3,4,8物理王軍光學原理3數(shù)學劉勇數(shù)學分析1,2,3,4,7數(shù)學劉勇微分方程2,3數(shù)學劉勇高等代數(shù)3,4,7數(shù)學張平數(shù)學分析1,2,3,4,7數(shù)學張平微分方程2,3數(shù)學張平高等代數(shù)3,4,7計算數(shù)學張平數(shù)學分析1,2,3,4,5………………主屬性(PrimeAttribute):構成候選碼的每個屬性稱為主屬性。不包含在任何候選鍵中的屬性稱為非主屬性或非碼屬性。27例:學生選課學生實體和課程實體分別用關系“學生”和“課程”來表示,它們之間的聯(lián)系用關系“選課”來表示。

學生(學號,姓名,性別,出生時間,所在系)

課程(課程編號,課程名,先修課程號)選課(學號,課程編號,成績)28學生選課數(shù)據(jù)庫實例29外鍵(ForeignKey,外碼)若關系R的一個屬性(集)F與關系S的主鍵Ks對應,即關系R中的某個元組的F上的分量值也是關系S中某個元組的Ks上的分量值,則稱該屬性(集)F為關系R的外鍵。R為參照關系(引用關系),S為被參照關系或目標關系。關系R和關系S可以是同一個關系。目標關系的主鍵Ks和參照關系R的外碼F的命名可以不同,但必須定義在同一(或同一組)域上。30關系模式關系的描述稱為關系模式

(RelationSchema)。

R(U,D,Dom,F)R:關系名U:組成該關系的屬性集合D:屬性組U中屬性所來自的域Dom:屬性向域的映像的集合F:屬性間數(shù)據(jù)的依賴關系集合關系模式通??梢院営洖?R(U)或R(A1,A2,…,An)31例:關系模式學生(學號,姓名,性別,年齡,民族,政治面貌)R:學生;U={學號,姓名,性別,年齡,民族,政治面貌}D={整數(shù),字符串}dom(學號)=dom(年齡)=整數(shù)dom(姓名)=dom(性別)=dom(民族)=字符串dom(政治面貌)=字符串32關系模式與關系關系模式對關系的描述靜態(tài)的、穩(wěn)定的關系關系模式在某一時刻的狀態(tài)或內(nèi)容動態(tài)的、隨時間不斷變化的關系模式和關系往往統(tǒng)稱為關系33關系的性質(zhì)元組個數(shù)有限性元組的唯一性元組的次序無關性屬性名唯一性屬性的次序無關性元組分量的原子性分量值域同一性34關系的三類完整性約束實體完整性通常由關系系統(tǒng)自動支持參照完整性早期系統(tǒng)不支持,目前大型系統(tǒng)能自動支持用戶定義的完整性反映應用領域需要遵循的約束條件,體現(xiàn)了具體領域中的語義約束用戶定義后由系統(tǒng)支持35關系的三類完整性約束36實體完整性實體完整性規(guī)則(EntityIntegrity)若屬性A是基本關系R的主屬性,則屬性A不能取空值注意實體完整性規(guī)則規(guī)定基本關系的所有主屬性都不能取空值例如:選修(學號,課程號,成績)中“學號、課程號”為主碼,則兩個屬性都不能取空值。37參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應,則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值。38例:參照完整性規(guī)則學生(學號,姓名,性別,系編號,年齡)系(系編號,系名稱,辦公地點)學生關系中每個元組的“系編號”屬性只取下面兩類值:空值,表示尚未給該學生分配系非空值,這時該值必須是系關系中某個元組的“系編號”值,表示該學生不可能分配到一個不存在的系中39例:用戶定義的完整性例: 課程(課程號,課程名,學分)“課程號”屬性必須取唯一值非主屬性“課程名”也不能取空值“學分”屬性只能取值{1,2,3}40用戶定義的完整性用戶定義的完整性是針對某一具體關系數(shù)據(jù)庫的約束條件,反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。關系模型應提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應用程序承擔這一功能。41常用的關系操作查詢選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改查詢的表達能力是其中最主要的部分42關系數(shù)據(jù)語言的種類關系代數(shù)語言

用對關系的運算來表達查詢要求典型代表:ISBL關系演算語言:用謂詞來表達查詢要求元組關系演算語言域關系演算語言具有關系代數(shù)和關系演算雙重特點的語言典型代表:SQL43關系代數(shù)一種抽象的查詢語言,用對關系的運算來表達查詢要求為關系模型操作提供了一個形式化的基礎,可作為衡量另一種關系模型語言表達能力的尺度。用在RDBMS中,作為實現(xiàn)和優(yōu)化查詢的基礎44關系代數(shù)的三個要素運算對象:代表關系的變量或代表關系實例的常量運算結果:關系運算符:傳統(tǒng)的集合運算:在元組的粒度上運算,包括并、差、交、廣義笛卡爾積專門的關系運算:可在元組與屬性列的粒度上運算,包括投影、選擇、連接、除(比較運算符、邏輯運算符)45關系代數(shù)的運算符46表示記號已知:R(A1,A2,…,An),若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分R,關系設為Rt

R,表示t是R的一個元組t[Ai],表示元組t中相應于屬性Ai的一個分量

A,稱為屬性列或域列t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。47傳統(tǒng)的集合運算R和S:具有相同的目n(即兩個關系都有n個屬性),且相應的屬性取自同一個域并運算(Union)R∪S

仍為n目關系,由屬于R或?qū)儆赟的元組組成

R∪S={t|t

R∨t

S}差運算(Difference)

R-S

仍為n目關系,由屬于R而不屬于S的所有元組組成

R-S={t|t

R∧t

S}交運算(Intersection)R∩S仍為n目關系,由既屬于R又屬于S的元組組成

R∩S={t|t

R∧t

S} R∩S=R–(R-S)48并運算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

49差運算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

50交運算ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

51廣義笛卡爾積R,n目關系,k1個元組S,m目關系,k2個元組R×S

列:(n+m)列的元組的集合元組的前n列是關系R的一個元組后m列是關系S的一個元組行:k1×k2個元組R×S={tr

ts|tr

R∧ts

S}元組的連接。是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。52廣義笛卡爾積ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c153選擇運算(Selection)在關系R中選擇滿足給定條件的諸元組

σF(R)={t|t

R∧F(t)='真'}F:選擇條件,是一個邏輯表達式選擇運算是從行的角度進行的運算σ54例:學生選課學號Sno姓名Sname性別Ssex年齡Sage系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a)Student課程號課程名先行課學分CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學

23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結構746數(shù)據(jù)處理

27PASCAL語言64(b)Course學號課程號成績SnoCnoGrade9500119295001285950013889500229095002380(c)SC55例:選擇運算查詢信息系(IS系)全體學生

σSdept

='IS'(Student)SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS56例:選擇運算查詢年齡小于20歲的學生

σSage

<20(Student)SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS

57投影運算(Projection)從R中選擇出若干屬性列組成新的關系

πA(R)={t[A]|t

R} A:R中的屬性列

投影操作主要是從列的角度進行運算π58例:投影運算查詢學生的姓名和所在系πSname,Sdept(Student)SnameSdept李勇CS劉晨IS王敏MA張立IS59例:投影運算查詢學生關系Student中都有哪些系πSdept(Student)SdeptCSISMA60連接運算(Join)連接也稱為θ連接從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組

RS={trts|tr

R∧ts

S∧tr[A]θts[B]}

AθB

AθBRS61兩類常用連接運算等值連接,從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

RS={|tr

R∧ts

S∧tr[A]=ts[B]}自然連接,兩個關系中進行比較的分量必須是相同的屬性組,在結果中把重復的屬性列去掉。R

S={|tr

R∧ts

S∧tr[B]=ts[B]}A=Btrtstrts62例:連接運算

R

S和等值連接R

SABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSC<ER.B=S.B

63例:連接運算R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E64例:連接運算等值連接R

SR.B=S.BAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32ABCEa1b153a1b267a2b3810a2b382自然連接R

S

65象集Z給定一個關系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|t

R,t[X]=x}

它表示R中屬性組X上值為x的諸元組在Z上分量的集合。66例:象集ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSa1的象集為{(b1,c2),(b2,c3),(b2,c1)}a2的象集為{(b3,c7),(b2,c3)}a3的象集為{(b4,c6)}a4的象集為{(b6,c6)}67除運算(Division)給定關系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={tr[X]|tr

R∧πY(S)

Yx} 68除運算除操作是同時從行和列角度進行運算

÷RS69例:除運算ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSR÷S=?{a1}R÷SAa170例:關系代數(shù)綜合舉例查詢至少選修1號課程和3號課程的學生號碼

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論