![數(shù)據(jù)庫原理總結(jié)詳解_第1頁](http://file4.renrendoc.com/view/cfc2d60f79af8a48e3574c6f2dbbad4c/cfc2d60f79af8a48e3574c6f2dbbad4c1.gif)
![數(shù)據(jù)庫原理總結(jié)詳解_第2頁](http://file4.renrendoc.com/view/cfc2d60f79af8a48e3574c6f2dbbad4c/cfc2d60f79af8a48e3574c6f2dbbad4c2.gif)
![數(shù)據(jù)庫原理總結(jié)詳解_第3頁](http://file4.renrendoc.com/view/cfc2d60f79af8a48e3574c6f2dbbad4c/cfc2d60f79af8a48e3574c6f2dbbad4c3.gif)
![數(shù)據(jù)庫原理總結(jié)詳解_第4頁](http://file4.renrendoc.com/view/cfc2d60f79af8a48e3574c6f2dbbad4c/cfc2d60f79af8a48e3574c6f2dbbad4c4.gif)
![數(shù)據(jù)庫原理總結(jié)詳解_第5頁](http://file4.renrendoc.com/view/cfc2d60f79af8a48e3574c6f2dbbad4c/cfc2d60f79af8a48e3574c6f2dbbad4c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理總結(jié)ppt課件當(dāng)前第1頁\共有111頁\編于星期五\0點(diǎn)課程考核方式課程性質(zhì):學(xué)位課,48學(xué)時考核方式和比重平時成績,20%作業(yè),出勤,網(wǎng)教測試題附加作業(yè),<=5分閉卷考試,80%當(dāng)前第2頁\共有111頁\編于星期五\0點(diǎn)3考試題型填空題(每空1分,共計20分)判斷題(每題1分,共計10分)選擇題(每題1分,共計15分)簡答題(每題5分,共計15分)綜合題(共計20分)設(shè)計題(共計20分)當(dāng)前第3頁\共有111頁\編于星期五\0點(diǎn)4內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第4頁\共有111頁\編于星期五\0點(diǎn)5第1章 數(shù)據(jù)庫系統(tǒng)引論1.數(shù)據(jù)管理技術(shù)的發(fā)展2.數(shù)據(jù)庫基本概念3.數(shù)據(jù)模型4.數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)5.數(shù)據(jù)庫管理系統(tǒng)當(dāng)前第5頁\共有111頁\編于星期五\0點(diǎn)6第1章 數(shù)據(jù)庫系統(tǒng)引論1.數(shù)據(jù)管理技術(shù)的發(fā)展人工管理階段(40年代中--50年代中)文件系統(tǒng)階段(50年代末--60年代中)數(shù)據(jù)庫系統(tǒng)階段(60年代末--現(xiàn)在)數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)獨(dú)立性高減少數(shù)據(jù)冗余數(shù)據(jù)共享統(tǒng)一的數(shù)據(jù)保護(hù)功能當(dāng)前第6頁\共有111頁\編于星期五\0點(diǎn)7第1章數(shù)據(jù)庫系統(tǒng)引論2.什么是數(shù)據(jù)庫數(shù)據(jù)庫(DataBase,DB)是長期存儲在計算機(jī)內(nèi)、有組織的數(shù)據(jù)集合,它根據(jù)數(shù)據(jù)間的聯(lián)系組織在一起,具有較高的數(shù)據(jù)獨(dú)立性,較少數(shù)據(jù)冗余,能夠為各種用戶共享它需要由一個軟件系統(tǒng)統(tǒng)一管理,這個軟件系統(tǒng)稱為數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)對數(shù)據(jù)提供存儲、管理和應(yīng)用的計算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)當(dāng)前第7頁\共有111頁\編于星期五\0點(diǎn)83.數(shù)據(jù)模型數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,用來描述數(shù)據(jù)的一組概念和定義。數(shù)據(jù)模型的三個要素:(1)數(shù)據(jù)結(jié)構(gòu)對數(shù)據(jù)靜態(tài)特性的描述應(yīng)用所涉及的對象和對象具有的特征,對象間的聯(lián)系(2)數(shù)據(jù)操作對數(shù)據(jù)的動態(tài)特性的描述。主要分為更新和檢索兩大類具體包括檢索、插入、刪除、修改等(3)數(shù)據(jù)的完整性約束對數(shù)據(jù)靜態(tài)和動態(tài)特性的限定,反映了數(shù)據(jù)間的制約和依存關(guān)系是區(qū)別數(shù)據(jù)模型最主要的部分當(dāng)前第8頁\共有111頁\編于星期五\0點(diǎn)94數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的三級模式,外模式:是模式的子集,是用戶的數(shù)據(jù)視圖。模式(也稱邏輯模式):是全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,獨(dú)立于應(yīng)用程序和物理存儲內(nèi)模式:是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方法當(dāng)前第9頁\共有111頁\編于星期五\0點(diǎn)104數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)三級模式結(jié)構(gòu)的二級映像目的:實現(xiàn)三個模式的聯(lián)系和轉(zhuǎn)換,外模式/模式映像一個模式對應(yīng)多個外模式,當(dāng)模式結(jié)構(gòu)改變,則只要修改外模式與模式間的映像關(guān)系,而不必修改外模式中的局部邏輯結(jié)構(gòu),因而相應(yīng)的應(yīng)用程序亦可不必修改,實現(xiàn)了數(shù)據(jù)的邏輯獨(dú)立性模式/內(nèi)模式映像一個模式對應(yīng)一個內(nèi)模式。當(dāng)數(shù)據(jù)庫的物理存儲結(jié)構(gòu)改變時,僅需要修改模式與內(nèi)模式間的映像關(guān)系,而可以使模式保持不變,從而使應(yīng)用程序保持不變,提供了數(shù)據(jù)的物理獨(dú)立性
當(dāng)前第10頁\共有111頁\編于星期五\0點(diǎn)5.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫的定義功能數(shù)據(jù)庫的操縱功能數(shù)據(jù)庫的保護(hù)功能數(shù)據(jù)庫維護(hù)功能11當(dāng)前第11頁\共有111頁\編于星期五\0點(diǎn)12內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第12頁\共有111頁\編于星期五\0點(diǎn)13第2章數(shù)據(jù)模型1.E-R概念模型2.層次數(shù)據(jù)模型3.網(wǎng)狀數(shù)據(jù)模型4.關(guān)系數(shù)據(jù)模型當(dāng)前第13頁\共有111頁\編于星期五\0點(diǎn)14第2章數(shù)據(jù)模型數(shù)據(jù)模型是數(shù)據(jù)庫研究的一個核心問題。概念模型,按用戶的觀點(diǎn)來對數(shù)據(jù)和信息建模。不涉及信息在計算機(jī)中如何表示;如實體-聯(lián)系模型邏輯模型按計算機(jī)系統(tǒng)的觀點(diǎn)對數(shù)據(jù)建模主要包括網(wǎng)狀模型、層次模型、關(guān)系模型、面向?qū)ο竽P?、對象關(guān)系模型等物理模型它描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法,在磁盤或磁帶上的存儲方式和存取方法當(dāng)前第14頁\共有111頁\編于星期五\0點(diǎn)151.E-R概念模型(1)實體:客觀存在并可相互區(qū)別的事物稱為實體。(2)屬性:實體所具有的某一特征稱為屬性。(3)聯(lián)系:在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的兩個實體集之間的三類聯(lián)系實體集1聯(lián)系名實體集2111:1聯(lián)系實體集1聯(lián)系名實體集2mnm:n聯(lián)系實體集1聯(lián)系名實體集21n1:n聯(lián)系當(dāng)前第15頁\共有111頁\編于星期五\0點(diǎn)161.E-R概念模型概念模型的表示方法很多,最著名的是實體聯(lián)系模型,它由E-R圖來表示。E-R圖三個基本成分:實體、屬性和聯(lián)系(1)實體:用矩形表示,矩形框內(nèi)寫明實體名。(2)屬性:用橢圓形表示(3)聯(lián)系:實體之間的聯(lián)系用菱形框表示,n學(xué)時數(shù)課程課程號課程名m選課姓名性別年齡成績學(xué)生學(xué)號當(dāng)前第16頁\共有111頁\編于星期五\0點(diǎn)172.層次模型層次數(shù)據(jù)模型(hierarchicaldatamodel)是較早用于數(shù)據(jù)庫技術(shù)的一種數(shù)據(jù)模型,它是按層次結(jié)構(gòu)來組織數(shù)據(jù)的。3.網(wǎng)狀數(shù)據(jù)模型網(wǎng)狀模型的結(jié)點(diǎn)間的聯(lián)系可以是任意的,任何二個結(jié)點(diǎn)間都能發(fā)生聯(lián)系,更適于描述客觀世界。將層次模型中對結(jié)點(diǎn)的限制去掉后就成為網(wǎng)狀模型。當(dāng)前第17頁\共有111頁\編于星期五\0點(diǎn)184.關(guān)系數(shù)據(jù)模型在關(guān)系模型中,基本數(shù)據(jù)結(jié)構(gòu)是二維表(1)關(guān)系(relation)關(guān)系是一張二維表,是由多個行和列組成的。一個關(guān)系可用來描述一個實體集(2)屬性(attribute)(3)域(domain)(4)元組(tuple)(5)鍵(key)鍵是一個或多個屬性組成的,能夠唯一標(biāo)識一個元組。一個關(guān)系中可能有多組屬性都能夠起到標(biāo)識元組的作用。因而,一個關(guān)系中可能有多個鍵.選擇其中的一個作為主鍵,其余為候選鍵當(dāng)前第18頁\共有111頁\編于星期五\0點(diǎn)19內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第19頁\共有111頁\編于星期五\0點(diǎn)20第3章關(guān)系數(shù)據(jù)庫1.關(guān)系模型的基本概念2.關(guān)系代數(shù)3.關(guān)系演算域關(guān)系演算元組關(guān)系演算當(dāng)前第20頁\共有111頁\編于星期五\0點(diǎn)21第3章關(guān)系數(shù)據(jù)庫1.關(guān)系模型的基本概念定義3.1給定一組集合D1,D2,…,Dn,它們可以是相同的。D1,D2,…,Dn的笛卡爾積為:
D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有值的一個組合,不能重復(fù)定義3.2D1×D2×…×Dn的任一個子集稱為D1,D2,…,Dn上的一個關(guān)系。n叫做關(guān)系的目或度(degree)當(dāng)前第21頁\共有111頁\編于星期五\0點(diǎn)221.關(guān)系模型的基本概念無限關(guān)系在數(shù)據(jù)庫中是無意義的,因此限定關(guān)系代數(shù)數(shù)據(jù)模型中的關(guān)系必須是有限集合。關(guān)系數(shù)據(jù)庫中,關(guān)系都是規(guī)范化的,具有如下性質(zhì):(1)每一列中的值是同類型的數(shù)據(jù),來自同一個域(2)不同的列可以有相同的域,每一列稱為屬性,用屬性名標(biāo)識。(3)列的次序是無關(guān)緊要的。(4)元組的每個分量是原子的,是不可分的數(shù)據(jù)項(5)元組的次序是無關(guān)緊要的。(6)各個元組是不同的,即關(guān)系中不允許出現(xiàn)重復(fù)元組當(dāng)前第22頁\共有111頁\編于星期五\0點(diǎn)231.關(guān)系模型的基本概念對關(guān)系結(jié)構(gòu)的描述稱為關(guān)系模式。用如下形式表示:關(guān)系名(屬性名1,屬性名2,…,屬性名n)關(guān)系模型的數(shù)據(jù)完整性約束實體完整性、參照完整性、用戶自定義完整性其中,實體完整性、參照完整性是必須支持的關(guān)系模型的數(shù)據(jù)操縱查詢、插入、刪除和修改操作在關(guān)系數(shù)據(jù)庫系統(tǒng)中,對數(shù)據(jù)的全部操作都可以歸結(jié)為對關(guān)系的運(yùn)算當(dāng)前第23頁\共有111頁\編于星期五\0點(diǎn)242.關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)算的分類:傳統(tǒng)的集合運(yùn)算并、差、交、笛卡爾積專門的關(guān)系運(yùn)算選擇、投影、連接、除不僅涉及行運(yùn)算,也涉及列運(yùn)算,這種運(yùn)算是為數(shù)據(jù)庫的應(yīng)用而引進(jìn)的特殊運(yùn)算。關(guān)系代數(shù)中五種基本運(yùn)算并、差、笛卡爾積、投影、選擇交、連接、除法可以用5種基本運(yùn)算來表達(dá)引進(jìn)它們并不增加語言的能力,但可以簡化表達(dá)當(dāng)前第24頁\共有111頁\編于星期五\0點(diǎn)252.關(guān)系代數(shù)集合運(yùn)算是二個關(guān)系間的運(yùn)算,運(yùn)算結(jié)果生成一個新關(guān)系。其中,并(∪)、交(∩)、差()運(yùn)算要求參加運(yùn)算的二個關(guān)系R和S具有相同的目且其對應(yīng)屬性定義在同一個域上,稱R和S為同類型的關(guān)系R∪S
仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成
R∪S={t|t
R∨tS}R-S
仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成
R-S={t|tR∧tS}當(dāng)前第25頁\共有111頁\編于星期五\0點(diǎn)262.關(guān)系代數(shù)R∩S仍為n目關(guān)系,由既屬于R又屬于S的元組組成
R∩S={t|t
R∧tS} R∩S=R–(R-S)R×S關(guān)系R和S的笛卡爾積為R中所有元組和S中所有元組的拼接。F(R)
選擇運(yùn)算是關(guān)系上的一元運(yùn)算,是從關(guān)系中選擇滿足一定條件的元組子集F(R)={tt∈Rt(F)}當(dāng)前第26頁\共有111頁\編于星期五\0點(diǎn)272.關(guān)系代數(shù)x(R)從R中選擇出若干屬性列組成新的關(guān)系
條件連接是將二個關(guān)系中滿足連接條件的元組拼接起來形成新元組的集合,也叫θ連接自然連接是在兩個關(guān)系共同屬性上的等值連接它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉當(dāng)前第27頁\共有111頁\編于星期五\0點(diǎn)28內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第28頁\共有111頁\編于星期五\0點(diǎn)29第4章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL結(jié)構(gòu)化查詢語言SQL(StructuredQueryLanguage)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,是一個通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體,充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的特點(diǎn)和優(yōu)點(diǎn)當(dāng)前第29頁\共有111頁\編于星期五\0點(diǎn)30第4章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL1.數(shù)據(jù)定義:create2.數(shù)據(jù)查詢:select3.數(shù)據(jù)更新:insertupdatedelete4.SQL中的視圖5.SQL的數(shù)據(jù)控制6.嵌入式SQL當(dāng)前第30頁\共有111頁\編于星期五\0點(diǎn)31第4章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQLSQL的數(shù)據(jù)定義功能主要包括表、視圖、索引和數(shù)據(jù)庫模式的定義表的定義、刪除與修改CREATETABLE、ALTERTABLE、DROPTABLE當(dāng)前第31頁\共有111頁\編于星期五\0點(diǎn)32第4章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL索引類型:依據(jù)索引的順序和數(shù)據(jù)庫的物理存儲順序是否相同,索引分為兩類:聚簇索引、非聚簇索引唯一索引、組合索引等數(shù)據(jù)查詢單表查詢、連接查詢(外連接)、嵌套查詢、集合查詢當(dāng)前第32頁\共有111頁\編于星期五\0點(diǎn)332.數(shù)據(jù)查詢語句格式SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]…FROM
<表名或視圖名>[,<表名或視圖名>]…[WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]];SELECT子句:指定要顯示的屬性列FROM子句:指定查詢對象(基本表或視圖)WHERE子句:指定查詢條件
GROUPBY子句:對查詢結(jié)果按指定列的值分組,該屬性列值相等的元組為一個組。通常會在每組中作用集函數(shù)。HAVING短語:篩選出只有滿足指定條件的組ORDERBY子句:對查詢結(jié)果表按指定列值的升序或降序排序當(dāng)前第33頁\共有111頁\編于星期五\0點(diǎn)34使用集函數(shù)主要集函數(shù)計數(shù)COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<列名>)計算總和SUM([DISTINCT|ALL]<列名>)計算平均值A(chǔ)VG([DISTINCT|ALL]<列名>)求最大值MAX([DISTINCT|ALL]<列名>)求最小值MIN([DISTINCT|ALL]<列名>) DISTINCT短語在計算時要取消指定列中的重復(fù)值A(chǔ)LL短語:不取消重復(fù)值;ALL為缺省值當(dāng)前第34頁\共有111頁\編于星期五\0點(diǎn)35對查詢結(jié)果分組GROUPBY
細(xì)化集函數(shù)的作用對象沒有分組時,集函數(shù)將作用于整個查詢結(jié)果有分組時,集函數(shù)將作用于每個組分組方法按指定的一列或多列值分組,值相等的為一組使用GROUPBY子句后,SELECT子句的<目標(biāo)列表達(dá)式>中只能出現(xiàn)分組屬性和集函數(shù)使用HAVING短語篩選最終輸出結(jié)果只有滿足HAVING短語指定條件的組才輸出當(dāng)前第35頁\共有111頁\編于星期五\0點(diǎn)36對查詢結(jié)果分組SELECTproductid,orderid,quantityFROMorderhistSELECTproductid, SUM(quantity)AStotal_quantityFROMorderhistGROUPBYproductidHAVINGSUM(quantity)>=30productidtotal_quantity235345productidorderidquantity11511102110222531153230當(dāng)前第36頁\共有111頁\編于星期五\0點(diǎn)373.數(shù)據(jù)更新插入數(shù)據(jù)(1)插入單個元組語句格式INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]
VALUES(<常量1>[,<常量2>]…)(2)插入子查詢結(jié)果語句格式INSERTINTO<表名>[(<列1>[,<列2>,])]<SELECT語句>;當(dāng)前第37頁\共有111頁\編于星期五\0點(diǎn)383.數(shù)據(jù)更新修改數(shù)據(jù)UPDATE<表名>
SET列名1=<表達(dá)式1>[,列名2=<表達(dá)式2>][WHERE<條件表達(dá)式>];刪除數(shù)據(jù)DELETEFROM<表名>[WHERE<條件>];當(dāng)前第38頁\共有111頁\編于星期五\0點(diǎn)394.SQL中的視圖視圖是建立在一個或多個基本表上的虛表。視圖提供了用戶從不同角度觀察數(shù)據(jù)庫的方法。視圖的定義
CREATEVIEW<視圖名>[(<列名>[,<列名>]…)]
AS<SELECT語句>[WITHCHECKOPTION];WITHCHECKOPTION表示通過視圖進(jìn)行增刪改操作時,不得破壞視圖定義中子查詢中的條件表達(dá)式視圖的刪除DROPVIEW<視圖名>;該語句從數(shù)據(jù)字典中刪除指定的視圖定義當(dāng)前第39頁\共有111頁\編于星期五\0點(diǎn)404.SQL中的視圖更新視圖可以通過視圖插入、刪除和修改數(shù)據(jù),對視圖的更新最終要轉(zhuǎn)換成對基本表的更新DBMS實現(xiàn)視圖查詢的方法實體化視圖、視圖消解法視圖的更新操作有些可以執(zhí)行;有些不能執(zhí)行,即不能轉(zhuǎn)換為對基本表的對應(yīng)操作。視圖的優(yōu)點(diǎn)(1)視圖提供了邏輯數(shù)據(jù)獨(dú)立性(2)簡化了用戶視圖(3)視圖使用戶以不同角度看待相同的數(shù)。(4)視圖提供了安全保護(hù)功能當(dāng)前第40頁\共有111頁\編于星期五\0點(diǎn)41第4章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL5.SQL的數(shù)據(jù)控制授權(quán)語句GRANT回收語句REVOKE具有授予權(quán)的用戶可以通過回收語句REVOKE將所授予的權(quán)限回收。
6.嵌入式SQLSQL語言提供了兩種使用方式:交互式SQL、嵌入式SQL嵌入式SQL引入了游標(biāo)機(jī)制協(xié)調(diào)面向集合和面向記錄兩種不同的處理方式
當(dāng)前第41頁\共有111頁\編于星期五\0點(diǎn)42內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第42頁\共有111頁\編于星期五\0點(diǎn)43第5章查詢處理和查詢優(yōu)化1.查詢處理2.查詢優(yōu)化3.代數(shù)優(yōu)化4.基于存取路徑的優(yōu)化5.基于代價估算的優(yōu)化當(dāng)前第43頁\共有111頁\編于星期五\0點(diǎn)44執(zhí)行查詢操作的基本算法查詢處理過程包括:查詢分析查詢檢查查詢優(yōu)化查詢執(zhí)行當(dāng)前第44頁\共有111頁\編于星期五\0點(diǎn)45執(zhí)行查詢操作的基本算法(1)選擇操作的實現(xiàn) 順序掃描方法二分查找法使用索引(或散列)的掃描方法(2)連接操作的實現(xiàn)嵌套循環(huán)法索引嵌套循環(huán)法排序合并法散列連接法當(dāng)前第45頁\共有111頁\編于星期五\0點(diǎn)462.查詢優(yōu)化查詢優(yōu)化的總目標(biāo)選擇有效策略使查詢代價最小(實際上是較小)(1)代數(shù)優(yōu)化是關(guān)系代數(shù)表達(dá)式的優(yōu)化,即按照一定的規(guī)則改變代數(shù)表達(dá)式中操作的次序和組合,使查詢執(zhí)行更高效。不涉及底層的存取路徑(2)基于存取路徑的優(yōu)化合理選擇各種操作的存取路徑以獲得優(yōu)化效果,需要考慮數(shù)據(jù)的物理組織和訪問路徑,以及底層操作算法的選擇,涉及數(shù)據(jù)文件的組織方法、數(shù)據(jù)值的分布情況等,也稱為物理優(yōu)化(3)基于代價估算的優(yōu)化對于多個可選的查詢策略通過估算執(zhí)行策略的代價,從中選擇代價最小的作為執(zhí)行策略當(dāng)前第46頁\共有111頁\編于星期五\0點(diǎn)472023/6/163.代數(shù)優(yōu)化代數(shù)優(yōu)化策略(1)在關(guān)系代數(shù)表達(dá)式中盡可能早地執(zhí)行選擇操作,這是最重要、最基本的一條(2)投影運(yùn)算和選擇運(yùn)算同時進(jìn)行(3)將投影運(yùn)算與其前面或后面的雙目運(yùn)算結(jié)合(4)把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來成為一個連接運(yùn)算(5)找出公共子表達(dá)式當(dāng)前第47頁\共有111頁\編于星期五\0點(diǎn)483.代數(shù)優(yōu)化代數(shù)優(yōu)化算法遵循代數(shù)優(yōu)化的啟發(fā)式規(guī)則,應(yīng)用關(guān)系代數(shù)等價變換公式來優(yōu)化關(guān)系表達(dá)式的算法(1)把形如σF1∧F2∧…∧Fn(E)變換為σF1(σF2(…(σFn(E))…))(2)對每一個選擇,盡可能把它移到樹的葉端(3)對每一個投影,盡可能把它移向樹的葉端(4)利用等價變換規(guī)則把選擇和投影的串接合并,使多個選擇或投影能同時執(zhí)行,或在一次掃描中全部完成(5)把語法樹的內(nèi)節(jié)點(diǎn)分組。每一雙目運(yùn)算和它所有的直接祖先為一組。當(dāng)前第48頁\共有111頁\編于星期五\0點(diǎn)49SELECTCnameFROMSt,Course,SCWHERESt.Sno=SC.SnoANDSC.Cno=Course.CnoANDSt.Sdept=’IS’ПSname(σStudent.Sno=SC.Sno∧Course.Cno=SC.Cno∧Student.Dept='計算機(jī)學(xué)院'∧Course.Cname='DataBase'((Student×SC)×Course))
當(dāng)前第49頁\共有111頁\編于星期五\0點(diǎn)50當(dāng)前第50頁\共有111頁\編于星期五\0點(diǎn)51內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第51頁\共有111頁\編于星期五\0點(diǎn)52第6章數(shù)據(jù)庫的安全性數(shù)據(jù)庫中所采用的安全性方法和技術(shù)1.用戶標(biāo)識與鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份。用戶進(jìn)入系統(tǒng)時,由系統(tǒng)進(jìn)行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)最外層的安全保護(hù)措施2.存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。當(dāng)前第52頁\共有111頁\編于星期五\0點(diǎn)53第6章數(shù)據(jù)庫的安全性3.視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護(hù)4.數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容5.數(shù)據(jù)庫審計:數(shù)據(jù)庫審計可以作為預(yù)防手段,建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA可以利用審計跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等當(dāng)前第53頁\共有111頁\編于星期五\0點(diǎn)542.存取控制(1)自主存取控制DAC主體是指一個提出請求或要求的實體,主體可以是DBMS所管理的實際用戶,或其它任何代表用戶行為的進(jìn)程、作業(yè)和程序??腕w是接受其他實體訪問的被動實體,是受主體操縱,客體可以是文件、記錄、視圖等。控制策略是主體對客體的操作行為集和約束條件集,即主體對客體的訪問規(guī)則集。通過SQL的GRANT語句和REVOKE語句實現(xiàn)當(dāng)前第54頁\共有111頁\編于星期五\0點(diǎn)552.存取控制(2)強(qiáng)制存取控制MAC每一個數(shù)據(jù)對象被標(biāo)以一定的密級,每一個用戶也被授予某一個級別的許可證。對于任意一個對象,具有合法許可證的用戶才可以存取強(qiáng)制存取控制規(guī)則:1)僅當(dāng)主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應(yīng)的客體;2)僅當(dāng)主體的許可證級別等于客體的密級時,該主體才能寫相應(yīng)的客體。規(guī)則修正:主體的許可證級別<=客體的密級主體能寫客體當(dāng)前第55頁\共有111頁\編于星期五\0點(diǎn)56內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第56頁\共有111頁\編于星期五\0點(diǎn)57第7章數(shù)據(jù)庫的完整性數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和相容性為維護(hù)數(shù)據(jù)庫的完整性,DBMS必須提供哪些功能?提供定義完整性約束條件的機(jī)制提供完整性檢查的方法違約處理即如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性完整性約束條件的作用對象可以是:關(guān)系、元組和屬性(列)當(dāng)前第57頁\共有111頁\編于星期五\0點(diǎn)581.實體完整性約束實體完整性是指主鍵的值不能為空或部分為空如果一個元組的鍵為空值,或部分為空,該元組將不能表示任何實體,因而無意義通過對主鍵值的約束實現(xiàn)實體完整性CREATETABLEStudent(SnoCHAR(8)PRIMARYKEY,
SnameCHAR(20)NOTNULL,
SsexCHAR(2),
SageSMALLINT,
SdeptCHAR(20))CREATETABLESC(SnoCHAR(8),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno))當(dāng)前第58頁\共有111頁\編于星期五\0點(diǎn)592.參照完整性約束參照完整性約束是對關(guān)系中作為外鍵的值的約束若關(guān)系R1中屬性A定義為外鍵,參照關(guān)系R2中的主鍵,則對于關(guān)系R1中的任一個元組在屬性A上的值或者為空值,或者為另一個關(guān)系R2中某個元組的主鍵的值用FOREIGNKEY短語定義哪些列為外鍵,用REFERENCES短語指明外鍵參照哪些表的主鍵CREATETABLESC(SnoCHAR(8),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
FOREIGNKEY(Sno)REFERENCESStudent(Sno),
FOREIGNKEY(Cno)REFERENCESCourse(Cno))當(dāng)前第59頁\共有111頁\編于星期五\0點(diǎn)60可能破壞參照完整性的情況及違約處理參照完整性違約處理拒絕執(zhí)行(NOACTION)級聯(lián)操作(CASCADE)設(shè)置為空值(SET-NULL)當(dāng)前第60頁\共有111頁\編于星期五\0點(diǎn)613.用戶定義的完整性用戶定義的完整性反映應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束,用戶定義后由系統(tǒng)支持在關(guān)系數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)完整性控制策略包括規(guī)則、默認(rèn)值、約束、觸發(fā)器和存儲過程等。通常屬性上的約束條件包括唯一約束(UNIQUE)非空約束(NOTNULL)默認(rèn)值約束(DEFAULT)檢查約束(CHECK)當(dāng)前第61頁\共有111頁\編于星期五\0點(diǎn)第7章數(shù)據(jù)庫的完整性表的設(shè)計要體現(xiàn)完整性約束的實現(xiàn)實體完整性的體現(xiàn)是主鍵約束;外鍵約束是參照完整性的體現(xiàn);默認(rèn)值和唯一等是用戶定義完整性的體現(xiàn)當(dāng)前第62頁\共有111頁\編于星期五\0點(diǎn)634.觸發(fā)器觸發(fā)器是用戶定義在關(guān)系數(shù)據(jù)表上的一類由事件驅(qū)動的特殊過程,用編程的方法實現(xiàn)復(fù)雜的業(yè)務(wù)規(guī)則觸發(fā)器工作過程Inserted表存放insert或update語句執(zhí)行過程中,插入到觸發(fā)表中的新數(shù)據(jù)行的副本.因此inserted表中的行是和觸發(fā)表中的新數(shù)據(jù)行相同.Deleted表存放delete或update語句執(zhí)行過程中,從觸發(fā)表中刪除的舊數(shù)據(jù)行的副本。因此,deleted表和觸發(fā)表不會有相同的行.當(dāng)前第63頁\共有111頁\編于星期五\0點(diǎn)64內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第64頁\共有111頁\編于星期五\0點(diǎn)65第8章數(shù)據(jù)庫恢復(fù)技術(shù)1.事務(wù)的基本概念2.故障種類3.數(shù)據(jù)庫恢復(fù)技術(shù)4.檢查點(diǎn)恢復(fù)技術(shù)5.數(shù)據(jù)庫恢復(fù)策略當(dāng)前第65頁\共有111頁\編于星期五\0點(diǎn)661.事務(wù)的基本概念事務(wù)(Transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)隔離性:對并發(fā)執(zhí)行而言,一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾持續(xù)性(也稱永久性):一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響當(dāng)前第66頁\共有111頁\編于星期五\0點(diǎn)672.故障種類數(shù)據(jù)庫系統(tǒng)可能發(fā)生的故障大致分為以下幾類:系統(tǒng)故障整個系統(tǒng)的正常運(yùn)行突然被破壞、所有正在運(yùn)行的事務(wù)都非正常終止、內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失、外部存儲設(shè)備上的數(shù)據(jù)未受影響事務(wù)內(nèi)部的故障某個事務(wù)在運(yùn)行過程中由于種種原因未運(yùn)行至正常終止點(diǎn)就夭折了介質(zhì)故障其它原因當(dāng)前第67頁\共有111頁\編于星期五\0點(diǎn)683.數(shù)據(jù)庫恢復(fù)技術(shù)數(shù)據(jù)恢復(fù)的基本原理數(shù)據(jù)冗余:利用存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)重建數(shù)據(jù)庫中已被破壞或不正確的那部分?jǐn)?shù)據(jù)建立冗余數(shù)據(jù)最常用的技術(shù)是數(shù)據(jù)轉(zhuǎn)儲和登記日志文件通常在一個數(shù)據(jù)庫系統(tǒng)中,兩種方法一起使用恢復(fù)子系統(tǒng)的功能是利用冗余數(shù)據(jù),再根據(jù)故障的類型采取相應(yīng)的恢復(fù)措施,保證故障發(fā)生后,能把數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)恢復(fù)到某種邏輯一致的狀態(tài)當(dāng)前第68頁\共有111頁\編于星期五\0點(diǎn)693.數(shù)據(jù)庫恢復(fù)技術(shù)恢復(fù)中經(jīng)常使用的技術(shù)數(shù)據(jù)庫轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲海量轉(zhuǎn)儲和增量轉(zhuǎn)儲基于日志的恢復(fù)技術(shù)寫日志文件的兩條原則:登記的次序嚴(yán)格按并行事務(wù)執(zhí)行的時間次序;必須先寫日志文件,后寫數(shù)據(jù)庫Redo技術(shù):重作已提交的事務(wù)Undo技術(shù):對沒有提交的事務(wù)執(zhí)行Undo,將被修改的數(shù)據(jù)項恢復(fù)到事務(wù)開始前的狀態(tài)當(dāng)前第69頁\共有111頁\編于星期五\0點(diǎn)703.數(shù)據(jù)庫恢復(fù)技術(shù)提高恢復(fù)效率的技術(shù)檢查點(diǎn)技術(shù)鏡像技術(shù)當(dāng)前第70頁\共有111頁\編于星期五\0點(diǎn)714.數(shù)據(jù)庫恢復(fù)策略事務(wù)故障的恢復(fù)利用日志文件撤銷事務(wù)對數(shù)據(jù)的更改,系統(tǒng)回滾到事務(wù)執(zhí)行前的狀態(tài)。當(dāng)事務(wù)故障發(fā)生時,系統(tǒng)反向掃描日志文件,并執(zhí)行逆向操作,將更新前的數(shù)據(jù)寫入數(shù)據(jù)庫介質(zhì)故障的恢復(fù)首先根據(jù)后備副本重建數(shù)據(jù)庫,然后利用運(yùn)行日志重做該副本備份后已完成的所有事務(wù)當(dāng)前第71頁\共有111頁\編于星期五\0點(diǎn)72系統(tǒng)故障的恢復(fù)步驟(1)正向掃描日志文件(即從頭掃描日志文件)Redo隊列:在故障發(fā)生前已經(jīng)提交的事務(wù)Undo隊列:故障發(fā)生時尚未完成的事務(wù)(2)對Undo隊列事務(wù)進(jìn)行UNDO處理反向掃描日志文件,對每個UNDO事務(wù)的更新操作執(zhí)行逆操作(3)對Redo隊列事務(wù)進(jìn)行REDO處理正向掃描日志文件,對每個REDO事務(wù)重新執(zhí)行登記的操作當(dāng)前第72頁\共有111頁\編于星期五\0點(diǎn)73檢查點(diǎn)的恢復(fù)技術(shù)檢查點(diǎn)技術(shù)可以提高系統(tǒng)故障恢復(fù)的效率,數(shù)據(jù)庫恢復(fù)時,利用檢查點(diǎn)能判定哪些事務(wù)是正常結(jié)束的,從而確定恢復(fù)哪些數(shù)據(jù)以及如何進(jìn)行恢復(fù)檢查點(diǎn)記錄的內(nèi)容1.建立檢查點(diǎn)時刻所有正在執(zhí)行的事務(wù)清單2.這些事務(wù)最近一個日志記錄的地址寫檢查點(diǎn)的步驟:把日志緩沖區(qū)中的內(nèi)容寫入日志文件;在日志文件中寫入一個檢查點(diǎn)記錄;把數(shù)據(jù)庫緩沖區(qū)的內(nèi)容寫入數(shù)據(jù)庫;把檢查點(diǎn)記錄在日志文件中的地址寫入重啟動文件當(dāng)前第73頁\共有111頁\編于星期五\0點(diǎn)74檢查點(diǎn)的恢復(fù)技術(shù)利用檢查點(diǎn)的恢復(fù)步驟(1)從重啟動文件中找到最后一個檢查點(diǎn)記錄;(2)得到檢查點(diǎn)時刻的事務(wù)清單,暫時放入Undo隊列(3)從檢查點(diǎn)開始正向掃描日志文件,如有新開始的事務(wù),暫時放入Undo隊列;如有提交事務(wù)Tj,把Tj從Undo隊列移到REDO隊列(4)對Undo隊列事務(wù)進(jìn)行UNDO處理;對Redo隊列事務(wù)進(jìn)行REDO處理。當(dāng)前第74頁\共有111頁\編于星期五\0點(diǎn)75內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第75頁\共有111頁\編于星期五\0點(diǎn)76第9章并發(fā)控制并發(fā)操作帶來的數(shù)據(jù)不一致性丟失修改(lostupdate)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導(dǎo)致T1的修改被丟失。不可重復(fù)讀(non-repeatableread)事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果。讀“臟”數(shù)據(jù)(dirtyread)事務(wù)T1修改某一數(shù)據(jù)并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的技術(shù)是封鎖技術(shù)。當(dāng)前第76頁\共有111頁\編于星期五\0點(diǎn)771.并發(fā)調(diào)度的可串行性定義9.1多個事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)并發(fā)執(zhí)行的結(jié)果與這些事務(wù)按某一串行順序執(zhí)行的結(jié)果相同,這種調(diào)度策略被稱為可串行化調(diào)度??纱谢遣l(fā)事務(wù)正確調(diào)度的準(zhǔn)則。定義9.2如果一個調(diào)度S能通過一系列非沖突操作執(zhí)行順序的交換變成調(diào)度S1,則稱調(diào)度S和S1
沖突等價沖突操作是指不同的事務(wù)對同一個數(shù)據(jù)的讀寫操作和寫寫操作,其他操作是不沖突操作不同事務(wù)的沖突操作和同一事務(wù)的兩個操作不能交換當(dāng)前第77頁\共有111頁\編于星期五\0點(diǎn)78調(diào)度的沖突等價性可串行化調(diào)度的充分條件:一個調(diào)度S在保證沖突操作的次序不變的情況下,通過交換兩個事務(wù)不沖突操作的次序得到另一個串行調(diào)度S’,
則調(diào)度S為可串行化的調(diào)度當(dāng)前第78頁\共有111頁\編于星期五\0點(diǎn)792023/6/169.2.2調(diào)度的沖突等價性【例9-3】證明調(diào)度S是否是可串行化調(diào)度。
S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B)把W2(A)與R1(B)W1(B)交換,得到:
R1(A)W1(A)R2(A)R1(B)W1(B)W2(A)R2(B)W2(B)當(dāng)前第79頁\共有111頁\編于星期五\0點(diǎn)802023/6/169.2.2調(diào)度的沖突等價性【例9-3】證明調(diào)度S是否是可串行化調(diào)度。
S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B)把W2(A)與R1(B)W1(B)交換,得到:
R1(A)W1(A)R2(A)R1(B)W1(B)W2(A)R2(B)W2(B)再把r2(A)與r1(B)w1(B)交換:
L=R1(A)W1(A)R1(B)W1(B)R2(A)W2(A)R2(B)W2(B)因為L等價于一個串行調(diào)度T1,T2所以調(diào)度S是可串行化的調(diào)度當(dāng)前第80頁\共有111頁\編于星期五\0點(diǎn)812.基于封鎖的并發(fā)控制技術(shù)封鎖的類型共享鎖(Sharelock,簡記S鎖,又稱為讀鎖)若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則其它事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖排它鎖(eXclusivelock,簡記X鎖,又稱為寫鎖)若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其它任何事務(wù)都不能再對A加任何類型的鎖,直到T釋放A上的鎖當(dāng)前第81頁\共有111頁\編于星期五\0點(diǎn)822.基于封鎖的并發(fā)控制技術(shù)封鎖協(xié)議在給數(shù)據(jù)對象加鎖時,要考慮何時請求鎖、持有鎖的時間和何時釋放等,要遵從一定規(guī)則。這些規(guī)則被稱為封鎖協(xié)議一級封鎖協(xié)議事務(wù)T在修改數(shù)據(jù)A前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放可以避免丟失修改不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)當(dāng)前第82頁\共有111頁\編于星期五\0點(diǎn)832.基于封鎖的并發(fā)控制技術(shù)二級封鎖協(xié)議規(guī)定:在一級封鎖協(xié)議基礎(chǔ)上,事務(wù)T在讀數(shù)據(jù)A之前必須先對其加S鎖,讀完后即可釋放S鎖可以避免:丟失修改、讀“臟”數(shù)據(jù)。不能保證避免不可重復(fù)讀的問題三級封鎖協(xié)議在二級封鎖協(xié)議基礎(chǔ)上,某一事務(wù)施加的S鎖要保持到該事務(wù)結(jié)束時才釋放。三級封鎖協(xié)議可防止丟失修改、讀臟數(shù)據(jù)和不可重復(fù)讀當(dāng)前第83頁\共有111頁\編于星期五\0點(diǎn)842.基于封鎖的并發(fā)控制技術(shù)三級協(xié)議的主要區(qū)別什么操作需要申請封鎖何時釋放鎖(即持鎖時間)當(dāng)前第84頁\共有111頁\編于星期五\0點(diǎn)852.基于封鎖的并發(fā)控制技術(shù)封鎖技術(shù)可以有效地解決并行操作的一致性問題,但也帶來一些新的問題:活鎖:指某個事務(wù)由于請求封鎖,但總也得不到鎖而長時間處于等待狀態(tài)避免方法:采用先來先服務(wù)的策略當(dāng)多個事務(wù)請求封鎖同一數(shù)據(jù)對象時,按請求封鎖的先后次序?qū)@些事務(wù)排隊該數(shù)據(jù)對象上的鎖一旦釋放,首先批準(zhǔn)申請隊列中第一個事務(wù)獲得鎖。當(dāng)前第85頁\共有111頁\編于星期五\0點(diǎn)862.基于封鎖的并發(fā)控制技術(shù)封鎖技術(shù)可以有效地解決并行操作的一致性問題,但也帶來一些新的問題(續(xù))死鎖:指在同時處于等待狀態(tài)的兩上或多個事務(wù)中相互封鎖了對方請求的資源,使得沒有任何一個事物可以獲得足夠的資源運(yùn)行完畢,而永遠(yuǎn)等待下去預(yù)防死鎖方法:一次封鎖法允許死鎖發(fā)生,一旦檢測到死鎖,解除死鎖的方法:選擇一個處理死鎖代價最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有的鎖,使其它事務(wù)能繼續(xù)運(yùn)行下去當(dāng)前第86頁\共有111頁\編于星期五\0點(diǎn)87兩階段封鎖協(xié)議兩階段封鎖協(xié)議(Two-PhaseLocking,簡稱2PL)是最常用的一種封鎖協(xié)議,理論上證明使用兩段封鎖協(xié)議產(chǎn)生的是可串行化調(diào)度是指所有事務(wù)必須分兩個階段對數(shù)據(jù)項加鎖和解鎖第一階段是獲得封鎖,也稱為擴(kuò)展階段。在這階段,事務(wù)可以申請獲得任何數(shù)據(jù)項上的任何類型的鎖,但是不能釋放任何鎖第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務(wù)可以釋放任何數(shù)據(jù)項上的任何類型的鎖,但是不能再申請任何鎖。兩階段封鎖協(xié)議可以保證并發(fā)事務(wù)執(zhí)行的可串行化,當(dāng)前第87頁\共有111頁\編于星期五\0點(diǎn)883.多粒度封鎖多粒度封鎖:在一個系統(tǒng)中同時支持多種封鎖粒度供不同的事務(wù)選擇引進(jìn)意向鎖(intentionlock)目的提高對某個數(shù)據(jù)對象加鎖時系統(tǒng)的檢查效率什么是意向鎖對任一結(jié)點(diǎn)加基本鎖,必須先對它的上層結(jié)點(diǎn)加意向鎖當(dāng)前第88頁\共有111頁\編于星期五\0點(diǎn)89常用意向鎖意向共享鎖(IS鎖)如果對一個數(shù)據(jù)對象加IS鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加S鎖。例:要對某個元組加S鎖,則要先對關(guān)系和數(shù)據(jù)庫加IS鎖意向排它鎖(IX鎖)如果對一個數(shù)據(jù)對象加IX鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加X鎖。例:要對某個元組加X鎖,先要對關(guān)系和數(shù)據(jù)庫加IX鎖共享意向排它鎖(SIX鎖)如果對一個數(shù)據(jù)對象加SIX鎖,表示對它加S鎖,再加IX鎖,即SIX=S+IX。例:對某個表加SIX鎖,則表示該事務(wù)要讀整個表(所以要對該表加S鎖),同時會更新個別元組(所以要對該表加IX鎖)當(dāng)前第89頁\共有111頁\編于星期五\0點(diǎn)90內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復(fù)技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程當(dāng)前第90頁\共有111頁\編于星期五\0點(diǎn)91第10章關(guān)系數(shù)據(jù)庫設(shè)計理論關(guān)系模型的存儲異常數(shù)據(jù)冗余大量的數(shù)據(jù)冗余不僅造成存儲空間的浪費(fèi),而且存在著潛在的數(shù)據(jù)不一致。插入異常刪除異常更新異常當(dāng)前第91頁\共有111頁\編于星期五\0點(diǎn)92第10章關(guān)系數(shù)據(jù)庫設(shè)計理論1.函數(shù)依賴的定義定義10.1設(shè)關(guān)系模式R(U),X,YU,r是R(U)上的任一關(guān)系。對任意元組t1
、t2r,如果t1、t2在X上的屬性值相等,t1、t2在Y上的屬性值亦相等,則稱X函數(shù)決定Y,或Y函數(shù)依賴于X,記為FDX→Y稱X為決定因素,或稱X為函數(shù)依賴的左部,稱Y為函數(shù)依賴的右部。平凡函數(shù)依賴與非平凡函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴傳遞函數(shù)依賴當(dāng)前第92頁\共有111頁\編于星期五\0點(diǎn)93函數(shù)依賴的蘊(yùn)涵性若關(guān)系模式R上的任一關(guān)系都能滿足一個確定的函數(shù)依賴集F,則稱F為R滿足的函數(shù)依賴集
定義10.5設(shè)函數(shù)依賴集F和關(guān)系模式R(U),屬性集X,YU。如果關(guān)系模式R滿足F,R必定滿足FDX→Y,則稱F邏輯蘊(yùn)涵FDX→Y,或稱X→Y邏輯蘊(yùn)涵于F。記為F|=X→Y。定義10.6設(shè)函數(shù)依賴集F,所有被F邏輯蘊(yùn)涵的函數(shù)依賴稱為F的閉包,記為F+。F+={X→Y|所有F蘊(yùn)涵的FDX→Y}定義10.8設(shè)關(guān)系模式R(U,F),U={A1,A2,…,An},XU。所有用公理推出的函數(shù)依賴X→Ai中Ai的屬性集合稱屬性集X對于F的屬性閉包,記為XF+。當(dāng)前第93頁\共有111頁\編于星期五\0點(diǎn)942.函數(shù)依賴公理Armstrong公理系統(tǒng)就是一個有效而完備的公理系統(tǒng),是模式分解算法的理論基礎(chǔ)從一組函數(shù)依賴求得蘊(yùn)含的函數(shù)依賴求給定關(guān)系模式的關(guān)鍵字當(dāng)前第94頁\共有111頁\編于星期五\0點(diǎn)952.函數(shù)依賴公理Armstrong公理設(shè)關(guān)系模式R(U,F(xiàn)),并且X、Y、Z和W是U的子集A1自反律(Reflexivity)若YXU,則F|=X→Y;A2增廣律(Augmentation)若X→Y且ZU,則F|=XZ→YZ;A3傳遞律(Transitivity)若X→Y,Y→Z,則F|=X→Z.三條很有用的推論:
合成規(guī)則由X→Y,X→Z,則X→YZ分解規(guī)則由X→Y及ZY,則X→Z
偽傳遞規(guī)則由X→Y,YZ→W,則XZ→W當(dāng)前第95頁\共有111頁\編于星期五\0點(diǎn)96求閉包的算法只要F中的函數(shù)依賴的左部屬性包含在中間結(jié)果X(i)中,就可以將沒有出現(xiàn)在X(i)中的右部屬性A并入X(i)中。X→A顯然成立算法10.1計算屬性集X關(guān)于F的閉包X+輸入:模式R的屬性全集U,U上的函數(shù)依賴集F及屬性集X輸出:屬性集X的閉包X+方法:計算X(i)(i=0,1,
)(1)初值X(0)=X,i=0;(2)X(i+1)=X(i)∪Z;其中,屬性集Z={A|存在V→WF,VX(i)且AW而AX(i)}(3)判斷X(i+1)=X(i)或X(i+1)=U是否成立,若成立轉(zhuǎn)(5)(4)i=i+1,轉(zhuǎn)(2);輸出X+的結(jié)果X(i+1)當(dāng)前第96頁\共有111頁\編于星期五\0點(diǎn)97求閉包的算法只要F中的函數(shù)依賴的左部屬性包含在中間結(jié)果X(i)中,就可以將沒有出現(xiàn)在X(i)中的右部屬性A并入X(i)中。X→A顯然成立【例10-1】設(shè)關(guān)系模式R(U,F),U={A,B,C,D,E,G},F={AB→C,BC→D,ACD→B,D→EG,BE→C,CE→AG}。求:(BD)+解:令X={BD}(1)初值(X)(0)={BD}(2)在F中尋找左部是BD子集的函數(shù)依賴,D→EG滿足條件。結(jié)果為:(X)(1)={BDEG}。X(0)
X(1)。在F中繼續(xù)尋找左部是BDEG子集的函數(shù)依賴,得BE→C,C不包含在BDEG中,結(jié)果為(X)(2)={BCDEG}在F中繼續(xù)尋找左部是BCDEG子集的函數(shù)依賴,得:BC→D,CE→AG。這里僅有右部屬性A是未出現(xiàn)在(X)(2)
中的屬性,結(jié)果為(X)(3)={ABCDEG}。X(3)
X(2),雖然F中還有未考察過的函數(shù)依賴,但X(3)
已包含了R中的所有屬性,結(jié)束。輸出結(jié)果:(BD)+={ABCDEG}當(dāng)前第97頁\共有111頁\編于星期五\0點(diǎn)984.關(guān)系模式的規(guī)范化定義10.15如果關(guān)系模式R的每一個屬性對應(yīng)的域值都是不可再分的,則R1NF。定義10.17如果一個關(guān)系模式R1NF,且所有非主屬性都完全依賴于R的每個候選鍵,則R2NF。定義10.18設(shè)R1NF,若在R中沒有非主屬性傳遞依賴于R的候選鍵,則關(guān)系模式R3NF。當(dāng)前第98頁\共有111頁\編于星期五\0點(diǎn)994.關(guān)系模式的規(guī)范化定義10.19若R1NF,而且R中沒有任何屬性傳遞依賴于R中的任一關(guān)鍵字,則RBCNF。定義10.20設(shè)關(guān)系模式R1NF,F(xiàn)是R上的函數(shù)依賴集,對于F中的每一個函數(shù)依賴X→Y,必有X是R的一個候選鍵,則RBCNF如果RBCNF,則R上的每一個函數(shù)依賴中,每個決定因素都包含侯選鍵多值依賴定義當(dāng)前第99頁\共有111頁\編于星期五\0點(diǎn)1004.關(guān)系模式的規(guī)范化關(guān)系模式規(guī)范化的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生交流會策劃方案(8篇)
- 2025年材料用過濾袋合同采購流程
- 2025年醫(yī)用耗材集中采購協(xié)議
- 2025年文物遺址保護(hù)服務(wù)項目規(guī)劃申請報告
- 2025年舞蹈學(xué)校教職員工勞動合同
- 2025年貴金屬靶材項目申請報告模板
- 2025年企業(yè)互助共享協(xié)議
- 2025年單位二手商業(yè)房產(chǎn)出售合同范本
- 2025年公司員工競業(yè)限制協(xié)議范例
- 2025年組合開關(guān)項目提案報告
- 義工財務(wù)管理制度范文
- 西安旅游景點(diǎn)介紹PPT模板(推薦)
- 公司實際經(jīng)營地與公司注冊地不一致的說明
- 電氣控制線路的設(shè)計和元器件選擇
- 貴州省工傷待遇申請表(綜合柜員)
- 《發(fā)展?jié)h語(第二版)中級綜合(Ⅰ)》第8課+課件
- GB/T 18268.1-2010測量、控制和實驗室用的電設(shè)備電磁兼容性要求第1部分:通用要求
- GB 5009.228-2016食品安全國家標(biāo)準(zhǔn)食品中揮發(fā)性鹽基氮的測定
- 多維完美主義量表(HMPS)
- 人教版高一物理必修二第六章《圓周運(yùn)動》課后練習(xí)(有答案解析)
- 并聯(lián)電容器課件
評論
0/150
提交評論