版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫原理總結(jié)ppt課件現(xiàn)在是1頁\一共有111頁\編輯于星期五課程考核方式課程性質(zhì):學位課,48學時考核方式和比重平時成績,20%作業(yè),出勤,網(wǎng)教測試題附加作業(yè),<=5分閉卷考試,80%現(xiàn)在是2頁\一共有111頁\編輯于星期五3考試題型填空題(每空1分,共計20分)判斷題(每題1分,共計10分)選擇題(每題1分,共計15分)簡答題(每題5分,共計15分)綜合題(共計20分)設(shè)計題(共計20分)現(xiàn)在是3頁\一共有111頁\編輯于星期五4內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是4頁\一共有111頁\編輯于星期五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)現(xiàn)在是5頁\一共有111頁\編輯于星期五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ù)獨立性高減少數(shù)據(jù)冗余數(shù)據(jù)共享統(tǒng)一的數(shù)據(jù)保護功能現(xiàn)在是6頁\一共有111頁\編輯于星期五7第1章數(shù)據(jù)庫系統(tǒng)引論2.什么是數(shù)據(jù)庫數(shù)據(jù)庫(DataBase,DB)是長期存儲在計算機內(nèi)、有組織的數(shù)據(jù)集合,它根據(jù)數(shù)據(jù)間的聯(lián)系組織在一起,具有較高的數(shù)據(jù)獨立性,較少數(shù)據(jù)冗余,能夠為各種用戶共享它需要由一個軟件系統(tǒng)統(tǒng)一管理,這個軟件系統(tǒng)稱為數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)對數(shù)據(jù)提供存儲、管理和應(yīng)用的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)現(xiàn)在是7頁\一共有111頁\編輯于星期五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ù)模型最主要的部分現(xiàn)在是8頁\一共有111頁\編輯于星期五94數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的三級模式,外模式:是模式的子集,是用戶的數(shù)據(jù)視圖。模式(也稱邏輯模式):是全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,獨立于應(yīng)用程序和物理存儲內(nèi)模式:是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方法現(xiàn)在是9頁\一共有111頁\編輯于星期五104數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)三級模式結(jié)構(gòu)的二級映像目的:實現(xiàn)三個模式的聯(lián)系和轉(zhuǎn)換,外模式/模式映像一個模式對應(yīng)多個外模式,當模式結(jié)構(gòu)改變,則只要修改外模式與模式間的映像關(guān)系,而不必修改外模式中的局部邏輯結(jié)構(gòu),因而相應(yīng)的應(yīng)用程序亦可不必修改,實現(xiàn)了數(shù)據(jù)的邏輯獨立性模式/內(nèi)模式映像一個模式對應(yīng)一個內(nèi)模式。當數(shù)據(jù)庫的物理存儲結(jié)構(gòu)改變時,僅需要修改模式與內(nèi)模式間的映像關(guān)系,而可以使模式保持不變,從而使應(yīng)用程序保持不變,提供了數(shù)據(jù)的物理獨立性
現(xiàn)在是10頁\一共有111頁\編輯于星期五5.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫的定義功能數(shù)據(jù)庫的操縱功能數(shù)據(jù)庫的保護功能數(shù)據(jù)庫維護功能11現(xiàn)在是11頁\一共有111頁\編輯于星期五12內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是12頁\一共有111頁\編輯于星期五13第2章數(shù)據(jù)模型1.E-R概念模型2.層次數(shù)據(jù)模型3.網(wǎng)狀數(shù)據(jù)模型4.關(guān)系數(shù)據(jù)模型現(xiàn)在是13頁\一共有111頁\編輯于星期五14第2章數(shù)據(jù)模型數(shù)據(jù)模型是數(shù)據(jù)庫研究的一個核心問題。概念模型,按用戶的觀點來對數(shù)據(jù)和信息建模。不涉及信息在計算機中如何表示;如實體-聯(lián)系模型邏輯模型按計算機系統(tǒng)的觀點對數(shù)據(jù)建模主要包括網(wǎng)狀模型、層次模型、關(guān)系模型、面向?qū)ο竽P?、對象關(guān)系模型等物理模型它描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法,在磁盤或磁帶上的存儲方式和存取方法現(xiàn)在是14頁\一共有111頁\編輯于星期五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)系現(xiàn)在是15頁\一共有111頁\編輯于星期五161.E-R概念模型概念模型的表示方法很多,最著名的是實體聯(lián)系模型,它由E-R圖來表示。E-R圖三個基本成分:實體、屬性和聯(lián)系(1)實體:用矩形表示,矩形框內(nèi)寫明實體名。(2)屬性:用橢圓形表示(3)聯(lián)系:實體之間的聯(lián)系用菱形框表示,n學時數(shù)課程課程號課程名m選課姓名性別年齡成績學生學號現(xiàn)在是16頁\一共有111頁\編輯于星期五172.層次模型層次數(shù)據(jù)模型(hierarchicaldatamodel)是較早用于數(shù)據(jù)庫技術(shù)的一種數(shù)據(jù)模型,它是按層次結(jié)構(gòu)來組織數(shù)據(jù)的。3.網(wǎng)狀數(shù)據(jù)模型網(wǎng)狀模型的結(jié)點間的聯(lián)系可以是任意的,任何二個結(jié)點間都能發(fā)生聯(lián)系,更適于描述客觀世界。將層次模型中對結(jié)點的限制去掉后就成為網(wǎng)狀模型。現(xiàn)在是17頁\一共有111頁\編輯于星期五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)鍵是一個或多個屬性組成的,能夠唯一標識一個元組。一個關(guān)系中可能有多組屬性都能夠起到標識元組的作用。因而,一個關(guān)系中可能有多個鍵.選擇其中的一個作為主鍵,其余為候選鍵現(xiàn)在是18頁\一共有111頁\編輯于星期五19內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是19頁\一共有111頁\編輯于星期五20第3章關(guān)系數(shù)據(jù)庫1.關(guān)系模型的基本概念2.關(guān)系代數(shù)3.關(guān)系演算域關(guān)系演算元組關(guān)系演算現(xiàn)在是20頁\一共有111頁\編輯于星期五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}所有域的所有值的一個組合,不能重復定義3.2D1×D2×…×Dn的任一個子集稱為D1,D2,…,Dn上的一個關(guān)系。n叫做關(guān)系的目或度(degree)現(xiàn)在是21頁\一共有111頁\編輯于星期五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)不同的列可以有相同的域,每一列稱為屬性,用屬性名標識。(3)列的次序是無關(guān)緊要的。(4)元組的每個分量是原子的,是不可分的數(shù)據(jù)項(5)元組的次序是無關(guān)緊要的。(6)各個元組是不同的,即關(guān)系中不允許出現(xiàn)重復元組現(xiàn)在是22頁\一共有111頁\編輯于星期五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)系的運算現(xiàn)在是23頁\一共有111頁\編輯于星期五242.關(guān)系代數(shù)關(guān)系代數(shù)運算的分類:傳統(tǒng)的集合運算并、差、交、笛卡爾積專門的關(guān)系運算選擇、投影、連接、除不僅涉及行運算,也涉及列運算,這種運算是為數(shù)據(jù)庫的應(yīng)用而引進的特殊運算。關(guān)系代數(shù)中五種基本運算并、差、笛卡爾積、投影、選擇交、連接、除法可以用5種基本運算來表達引進它們并不增加語言的能力,但可以簡化表達現(xiàn)在是24頁\一共有111頁\編輯于星期五252.關(guān)系代數(shù)集合運算是二個關(guān)系間的運算,運算結(jié)果生成一個新關(guā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}現(xiàn)在是25頁\一共有111頁\編輯于星期五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)
選擇運算是關(guān)系上的一元運算,是從關(guān)系中選擇滿足一定條件的元組子集F(R)={tt∈Rt(F)}現(xiàn)在是26頁\一共有111頁\編輯于星期五272.關(guān)系代數(shù)x(R)從R中選擇出若干屬性列組成新的關(guān)系
條件連接是將二個關(guān)系中滿足連接條件的元組拼接起來形成新元組的集合,也叫θ連接自然連接是在兩個關(guān)系共同屬性上的等值連接它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復的屬性列去掉現(xiàn)在是27頁\一共有111頁\編輯于星期五28內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是28頁\一共有111頁\編輯于星期五29第4章關(guān)系數(shù)據(jù)庫標準語言SQL結(jié)構(gòu)化查詢語言SQL(StructuredQueryLanguage)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,是一個通用的、功能極強的關(guān)系數(shù)據(jù)庫語言,是關(guān)系數(shù)據(jù)庫的標準語言SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體,充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的特點和優(yōu)點現(xiàn)在是29頁\一共有111頁\編輯于星期五30第4章關(guān)系數(shù)據(jù)庫標準語言SQL1.數(shù)據(jù)定義:create2.數(shù)據(jù)查詢:select3.數(shù)據(jù)更新:insertupdatedelete4.SQL中的視圖5.SQL的數(shù)據(jù)控制6.嵌入式SQL現(xiàn)在是30頁\一共有111頁\編輯于星期五31第4章關(guān)系數(shù)據(jù)庫標準語言SQLSQL的數(shù)據(jù)定義功能主要包括表、視圖、索引和數(shù)據(jù)庫模式的定義表的定義、刪除與修改CREATETABLE、ALTERTABLE、DROPTABLE現(xiàn)在是31頁\一共有111頁\編輯于星期五32第4章關(guān)系數(shù)據(jù)庫標準語言SQL索引類型:依據(jù)索引的順序和數(shù)據(jù)庫的物理存儲順序是否相同,索引分為兩類:聚簇索引、非聚簇索引唯一索引、組合索引等數(shù)據(jù)查詢單表查詢、連接查詢(外連接)、嵌套查詢、集合查詢現(xiàn)在是32頁\一共有111頁\編輯于星期五332.數(shù)據(jù)查詢語句格式SELECT[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>]…FROM
<表名或視圖名>[,<表名或視圖名>]…[WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];SELECT子句:指定要顯示的屬性列FROM子句:指定查詢對象(基本表或視圖)WHERE子句:指定查詢條件
GROUPBY子句:對查詢結(jié)果按指定列的值分組,該屬性列值相等的元組為一個組。通常會在每組中作用集函數(shù)。HAVING短語:篩選出只有滿足指定條件的組ORDERBY子句:對查詢結(jié)果表按指定列值的升序或降序排序現(xiàn)在是33頁\一共有111頁\編輯于星期五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短語在計算時要取消指定列中的重復值A(chǔ)LL短語:不取消重復值;ALL為缺省值現(xiàn)在是34頁\一共有111頁\編輯于星期五35對查詢結(jié)果分組GROUPBY
細化集函數(shù)的作用對象沒有分組時,集函數(shù)將作用于整個查詢結(jié)果有分組時,集函數(shù)將作用于每個組分組方法按指定的一列或多列值分組,值相等的為一組使用GROUPBY子句后,SELECT子句的<目標列表達式>中只能出現(xiàn)分組屬性和集函數(shù)使用HAVING短語篩選最終輸出結(jié)果只有滿足HAVING短語指定條件的組才輸出現(xiàn)在是35頁\一共有111頁\編輯于星期五36對查詢結(jié)果分組SELECTproductid,orderid,quantityFROMorderhistSELECTproductid, SUM(quantity)AStotal_quantityFROMorderhistGROUPBYproductidHAVINGSUM(quantity)>=30productidtotal_quantity235345productidorderidquantity11511102110222531153230現(xiàn)在是36頁\一共有111頁\編輯于星期五373.數(shù)據(jù)更新插入數(shù)據(jù)(1)插入單個元組語句格式INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]
VALUES(<常量1>[,<常量2>]…)(2)插入子查詢結(jié)果語句格式INSERTINTO<表名>[(<列1>[,<列2>,])]<SELECT語句>;現(xiàn)在是37頁\一共有111頁\編輯于星期五383.數(shù)據(jù)更新修改數(shù)據(jù)UPDATE<表名>
SET列名1=<表達式1>[,列名2=<表達式2>][WHERE<條件表達式>];刪除數(shù)據(jù)DELETEFROM<表名>[WHERE<條件>];現(xiàn)在是38頁\一共有111頁\編輯于星期五394.SQL中的視圖視圖是建立在一個或多個基本表上的虛表。視圖提供了用戶從不同角度觀察數(shù)據(jù)庫的方法。視圖的定義
CREATEVIEW<視圖名>[(<列名>[,<列名>]…)]
AS<SELECT語句>[WITHCHECKOPTION];WITHCHECKOPTION表示通過視圖進行增刪改操作時,不得破壞視圖定義中子查詢中的條件表達式視圖的刪除DROPVIEW<視圖名>;該語句從數(shù)據(jù)字典中刪除指定的視圖定義現(xiàn)在是39頁\一共有111頁\編輯于星期五404.SQL中的視圖更新視圖可以通過視圖插入、刪除和修改數(shù)據(jù),對視圖的更新最終要轉(zhuǎn)換成對基本表的更新DBMS實現(xiàn)視圖查詢的方法實體化視圖、視圖消解法視圖的更新操作有些可以執(zhí)行;有些不能執(zhí)行,即不能轉(zhuǎn)換為對基本表的對應(yīng)操作。視圖的優(yōu)點(1)視圖提供了邏輯數(shù)據(jù)獨立性(2)簡化了用戶視圖(3)視圖使用戶以不同角度看待相同的數(shù)。(4)視圖提供了安全保護功能現(xiàn)在是40頁\一共有111頁\編輯于星期五41第4章關(guān)系數(shù)據(jù)庫標準語言SQL5.SQL的數(shù)據(jù)控制授權(quán)語句GRANT回收語句REVOKE具有授予權(quán)的用戶可以通過回收語句REVOKE將所授予的權(quán)限回收。
6.嵌入式SQLSQL語言提供了兩種使用方式:交互式SQL、嵌入式SQL嵌入式SQL引入了游標機制協(xié)調(diào)面向集合和面向記錄兩種不同的處理方式
現(xiàn)在是41頁\一共有111頁\編輯于星期五42內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是42頁\一共有111頁\編輯于星期五43第5章查詢處理和查詢優(yōu)化1.查詢處理2.查詢優(yōu)化3.代數(shù)優(yōu)化4.基于存取路徑的優(yōu)化5.基于代價估算的優(yōu)化現(xiàn)在是43頁\一共有111頁\編輯于星期五44執(zhí)行查詢操作的基本算法查詢處理過程包括:查詢分析查詢檢查查詢優(yōu)化查詢執(zhí)行現(xiàn)在是44頁\一共有111頁\編輯于星期五45執(zhí)行查詢操作的基本算法(1)選擇操作的實現(xiàn) 順序掃描方法二分查找法使用索引(或散列)的掃描方法(2)連接操作的實現(xiàn)嵌套循環(huán)法索引嵌套循環(huán)法排序合并法散列連接法現(xiàn)在是45頁\一共有111頁\編輯于星期五462.查詢優(yōu)化查詢優(yōu)化的總目標選擇有效策略使查詢代價最小(實際上是較小)(1)代數(shù)優(yōu)化是關(guān)系代數(shù)表達式的優(yōu)化,即按照一定的規(guī)則改變代數(shù)表達式中操作的次序和組合,使查詢執(zhí)行更高效。不涉及底層的存取路徑(2)基于存取路徑的優(yōu)化合理選擇各種操作的存取路徑以獲得優(yōu)化效果,需要考慮數(shù)據(jù)的物理組織和訪問路徑,以及底層操作算法的選擇,涉及數(shù)據(jù)文件的組織方法、數(shù)據(jù)值的分布情況等,也稱為物理優(yōu)化(3)基于代價估算的優(yōu)化對于多個可選的查詢策略通過估算執(zhí)行策略的代價,從中選擇代價最小的作為執(zhí)行策略現(xiàn)在是46頁\一共有111頁\編輯于星期五472023/4/203.代數(shù)優(yōu)化代數(shù)優(yōu)化策略(1)在關(guān)系代數(shù)表達式中盡可能早地執(zhí)行選擇操作,這是最重要、最基本的一條(2)投影運算和選擇運算同時進行(3)將投影運算與其前面或后面的雙目運算結(jié)合(4)把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來成為一個連接運算(5)找出公共子表達式現(xiàn)在是47頁\一共有111頁\編輯于星期五483.代數(shù)優(yōu)化代數(shù)優(yōu)化算法遵循代數(shù)優(yōu)化的啟發(fā)式規(guī)則,應(yīng)用關(guān)系代數(shù)等價變換公式來優(yōu)化關(guān)系表達式的算法(1)把形如σF1∧F2∧…∧Fn(E)變換為σF1(σF2(…(σFn(E))…))(2)對每一個選擇,盡可能把它移到樹的葉端(3)對每一個投影,盡可能把它移向樹的葉端(4)利用等價變換規(guī)則把選擇和投影的串接合并,使多個選擇或投影能同時執(zhí)行,或在一次掃描中全部完成(5)把語法樹的內(nèi)節(jié)點分組。每一雙目運算和它所有的直接祖先為一組?,F(xiàn)在是48頁\一共有111頁\編輯于星期五49SELECTCnameFROMSt,Course,SCWHERESt.Sno=SC.SnoANDSC.Cno=Course.CnoANDSt.Sdept=’IS’ПSname(σStudent.Sno=SC.Sno∧Course.Cno=SC.Cno∧Student.Dept='計算機學院'∧Course.Cname='DataBase'((Student×SC)×Course))
現(xiàn)在是49頁\一共有111頁\編輯于星期五50現(xiàn)在是50頁\一共有111頁\編輯于星期五51內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是51頁\一共有111頁\編輯于星期五52第6章數(shù)據(jù)庫的安全性數(shù)據(jù)庫中所采用的安全性方法和技術(shù)1.用戶標識與鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份。用戶進入系統(tǒng)時,由系統(tǒng)進行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)最外層的安全保護措施2.存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)?,F(xiàn)在是52頁\一共有111頁\編輯于星期五53第6章數(shù)據(jù)庫的安全性3.視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護4.數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容5.數(shù)據(jù)庫審計:數(shù)據(jù)庫審計可以作為預防手段,建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA可以利用審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等現(xiàn)在是53頁\一共有111頁\編輯于星期五542.存取控制(1)自主存取控制DAC主體是指一個提出請求或要求的實體,主體可以是DBMS所管理的實際用戶,或其它任何代表用戶行為的進程、作業(yè)和程序。客體是接受其他實體訪問的被動實體,是受主體操縱,客體可以是文件、記錄、視圖等??刂撇呗允侵黧w對客體的操作行為集和約束條件集,即主體對客體的訪問規(guī)則集。通過SQL的GRANT語句和REVOKE語句實現(xiàn)現(xiàn)在是54頁\一共有111頁\編輯于星期五552.存取控制(2)強制存取控制MAC每一個數(shù)據(jù)對象被標以一定的密級,每一個用戶也被授予某一個級別的許可證。對于任意一個對象,具有合法許可證的用戶才可以存取強制存取控制規(guī)則:1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應(yīng)的客體;2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應(yīng)的客體。規(guī)則修正:主體的許可證級別<=客體的密級主體能寫客體現(xiàn)在是55頁\一共有111頁\編輯于星期五56內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是56頁\一共有111頁\編輯于星期五57第7章數(shù)據(jù)庫的完整性數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和相容性為維護數(shù)據(jù)庫的完整性,DBMS必須提供哪些功能?提供定義完整性約束條件的機制提供完整性檢查的方法違約處理即如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性完整性約束條件的作用對象可以是:關(guān)系、元組和屬性(列)現(xiàn)在是57頁\一共有111頁\編輯于星期五581.實體完整性約束實體完整性是指主鍵的值不能為空或部分為空如果一個元組的鍵為空值,或部分為空,該元組將不能表示任何實體,因而無意義通過對主鍵值的約束實現(xiàn)實體完整性CREATETABLEStudent(SnoCHAR(8)PRIMARYKEY,
SnameCHAR(20)NOTNULL,
SsexCHAR(2),
SageSMALLINT,
SdeptCHAR(20))CREATETABLESC(SnoCHAR(8),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno))現(xiàn)在是58頁\一共有111頁\編輯于星期五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))現(xiàn)在是59頁\一共有111頁\編輯于星期五60可能破壞參照完整性的情況及違約處理參照完整性違約處理拒絕執(zhí)行(NOACTION)級聯(lián)操作(CASCADE)設(shè)置為空值(SET-NULL)現(xiàn)在是60頁\一共有111頁\編輯于星期五613.用戶定義的完整性用戶定義的完整性反映應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束,用戶定義后由系統(tǒng)支持在關(guān)系數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)完整性控制策略包括規(guī)則、默認值、約束、觸發(fā)器和存儲過程等。通常屬性上的約束條件包括唯一約束(UNIQUE)非空約束(NOTNULL)默認值約束(DEFAULT)檢查約束(CHECK)現(xiàn)在是61頁\一共有111頁\編輯于星期五第7章數(shù)據(jù)庫的完整性表的設(shè)計要體現(xiàn)完整性約束的實現(xiàn)實體完整性的體現(xiàn)是主鍵約束;外鍵約束是參照完整性的體現(xiàn);默認值和唯一等是用戶定義完整性的體現(xiàn)現(xiàn)在是62頁\一共有111頁\編輯于星期五634.觸發(fā)器觸發(fā)器是用戶定義在關(guān)系數(shù)據(jù)表上的一類由事件驅(qū)動的特殊過程,用編程的方法實現(xiàn)復雜的業(yè)務(wù)規(guī)則觸發(fā)器工作過程Inserted表存放insert或update語句執(zhí)行過程中,插入到觸發(fā)表中的新數(shù)據(jù)行的副本.因此inserted表中的行是和觸發(fā)表中的新數(shù)據(jù)行相同.Deleted表存放delete或update語句執(zhí)行過程中,從觸發(fā)表中刪除的舊數(shù)據(jù)行的副本。因此,deleted表和觸發(fā)表不會有相同的行.現(xiàn)在是63頁\一共有111頁\編輯于星期五64內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是64頁\一共有111頁\編輯于星期五65第8章數(shù)據(jù)庫恢復技術(shù)1.事務(wù)的基本概念2.故障種類3.數(shù)據(jù)庫恢復技術(shù)4.檢查點恢復技術(shù)5.數(shù)據(jù)庫恢復策略現(xiàn)在是65頁\一共有111頁\編輯于星期五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é)果有任何影響現(xiàn)在是66頁\一共有111頁\編輯于星期五672.故障種類數(shù)據(jù)庫系統(tǒng)可能發(fā)生的故障大致分為以下幾類:系統(tǒng)故障整個系統(tǒng)的正常運行突然被破壞、所有正在運行的事務(wù)都非正常終止、內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失、外部存儲設(shè)備上的數(shù)據(jù)未受影響事務(wù)內(nèi)部的故障某個事務(wù)在運行過程中由于種種原因未運行至正常終止點就夭折了介質(zhì)故障其它原因現(xiàn)在是67頁\一共有111頁\編輯于星期五683.數(shù)據(jù)庫恢復技術(shù)數(shù)據(jù)恢復的基本原理數(shù)據(jù)冗余:利用存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)重建數(shù)據(jù)庫中已被破壞或不正確的那部分數(shù)據(jù)建立冗余數(shù)據(jù)最常用的技術(shù)是數(shù)據(jù)轉(zhuǎn)儲和登記日志文件通常在一個數(shù)據(jù)庫系統(tǒng)中,兩種方法一起使用恢復子系統(tǒng)的功能是利用冗余數(shù)據(jù),再根據(jù)故障的類型采取相應(yīng)的恢復措施,保證故障發(fā)生后,能把數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)恢復到某種邏輯一致的狀態(tài)現(xiàn)在是68頁\一共有111頁\編輯于星期五693.數(shù)據(jù)庫恢復技術(shù)恢復中經(jīng)常使用的技術(shù)數(shù)據(jù)庫轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲海量轉(zhuǎn)儲和增量轉(zhuǎn)儲基于日志的恢復技術(shù)寫日志文件的兩條原則:登記的次序嚴格按并行事務(wù)執(zhí)行的時間次序;必須先寫日志文件,后寫數(shù)據(jù)庫Redo技術(shù):重作已提交的事務(wù)Undo技術(shù):對沒有提交的事務(wù)執(zhí)行Undo,將被修改的數(shù)據(jù)項恢復到事務(wù)開始前的狀態(tài)現(xiàn)在是69頁\一共有111頁\編輯于星期五703.數(shù)據(jù)庫恢復技術(shù)提高恢復效率的技術(shù)檢查點技術(shù)鏡像技術(shù)現(xiàn)在是70頁\一共有111頁\編輯于星期五714.數(shù)據(jù)庫恢復策略事務(wù)故障的恢復利用日志文件撤銷事務(wù)對數(shù)據(jù)的更改,系統(tǒng)回滾到事務(wù)執(zhí)行前的狀態(tài)。當事務(wù)故障發(fā)生時,系統(tǒng)反向掃描日志文件,并執(zhí)行逆向操作,將更新前的數(shù)據(jù)寫入數(shù)據(jù)庫介質(zhì)故障的恢復首先根據(jù)后備副本重建數(shù)據(jù)庫,然后利用運行日志重做該副本備份后已完成的所有事務(wù)現(xiàn)在是71頁\一共有111頁\編輯于星期五72系統(tǒng)故障的恢復步驟(1)正向掃描日志文件(即從頭掃描日志文件)Redo隊列:在故障發(fā)生前已經(jīng)提交的事務(wù)Undo隊列:故障發(fā)生時尚未完成的事務(wù)(2)對Undo隊列事務(wù)進行UNDO處理反向掃描日志文件,對每個UNDO事務(wù)的更新操作執(zhí)行逆操作(3)對Redo隊列事務(wù)進行REDO處理正向掃描日志文件,對每個REDO事務(wù)重新執(zhí)行登記的操作現(xiàn)在是72頁\一共有111頁\編輯于星期五73檢查點的恢復技術(shù)檢查點技術(shù)可以提高系統(tǒng)故障恢復的效率,數(shù)據(jù)庫恢復時,利用檢查點能判定哪些事務(wù)是正常結(jié)束的,從而確定恢復哪些數(shù)據(jù)以及如何進行恢復檢查點記錄的內(nèi)容1.建立檢查點時刻所有正在執(zhí)行的事務(wù)清單2.這些事務(wù)最近一個日志記錄的地址寫檢查點的步驟:把日志緩沖區(qū)中的內(nèi)容寫入日志文件;在日志文件中寫入一個檢查點記錄;把數(shù)據(jù)庫緩沖區(qū)的內(nèi)容寫入數(shù)據(jù)庫;把檢查點記錄在日志文件中的地址寫入重啟動文件現(xiàn)在是73頁\一共有111頁\編輯于星期五74檢查點的恢復技術(shù)利用檢查點的恢復步驟(1)從重啟動文件中找到最后一個檢查點記錄;(2)得到檢查點時刻的事務(wù)清單,暫時放入Undo隊列(3)從檢查點開始正向掃描日志文件,如有新開始的事務(wù),暫時放入Undo隊列;如有提交事務(wù)Tj,把Tj從Undo隊列移到REDO隊列(4)對Undo隊列事務(wù)進行UNDO處理;對Redo隊列事務(wù)進行REDO處理?,F(xiàn)在是74頁\一共有111頁\編輯于星期五75內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是75頁\一共有111頁\編輯于星期五76第9章并發(fā)控制并發(fā)操作帶來的數(shù)據(jù)不一致性丟失修改(lostupdate)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導致T1的修改被丟失。不可重復讀(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ù)恢復原值,T2讀到的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的技術(shù)是封鎖技術(shù)?,F(xiàn)在是76頁\一共有111頁\編輯于星期五771.并發(fā)調(diào)度的可串行性定義9.1多個事務(wù)的并發(fā)執(zhí)行是正確的,當且僅當并發(fā)執(zhí)行的結(jié)果與這些事務(wù)按某一串行順序執(zhí)行的結(jié)果相同,這種調(diào)度策略被稱為可串行化調(diào)度。可串行化是并發(fā)事務(wù)正確調(diào)度的準則。定義9.2如果一個調(diào)度S能通過一系列非沖突操作執(zhí)行順序的交換變成調(diào)度S1,則稱調(diào)度S和S1
沖突等價沖突操作是指不同的事務(wù)對同一個數(shù)據(jù)的讀寫操作和寫寫操作,其他操作是不沖突操作不同事務(wù)的沖突操作和同一事務(wù)的兩個操作不能交換現(xiàn)在是77頁\一共有111頁\編輯于星期五78調(diào)度的沖突等價性可串行化調(diào)度的充分條件:一個調(diào)度S在保證沖突操作的次序不變的情況下,通過交換兩個事務(wù)不沖突操作的次序得到另一個串行調(diào)度S’,
則調(diào)度S為可串行化的調(diào)度現(xiàn)在是78頁\一共有111頁\編輯于星期五792023/4/209.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)現(xiàn)在是79頁\一共有111頁\編輯于星期五802023/4/209.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)度現(xiàn)在是80頁\一共有111頁\編輯于星期五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上的鎖現(xiàn)在是81頁\一共有111頁\編輯于星期五822.基于封鎖的并發(fā)控制技術(shù)封鎖協(xié)議在給數(shù)據(jù)對象加鎖時,要考慮何時請求鎖、持有鎖的時間和何時釋放等,要遵從一定規(guī)則。這些規(guī)則被稱為封鎖協(xié)議一級封鎖協(xié)議事務(wù)T在修改數(shù)據(jù)A前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放可以避免丟失修改不能保證可重復讀和不讀“臟”數(shù)據(jù)現(xiàn)在是82頁\一共有111頁\編輯于星期五832.基于封鎖的并發(fā)控制技術(shù)二級封鎖協(xié)議規(guī)定:在一級封鎖協(xié)議基礎(chǔ)上,事務(wù)T在讀數(shù)據(jù)A之前必須先對其加S鎖,讀完后即可釋放S鎖可以避免:丟失修改、讀“臟”數(shù)據(jù)。不能保證避免不可重復讀的問題三級封鎖協(xié)議在二級封鎖協(xié)議基礎(chǔ)上,某一事務(wù)施加的S鎖要保持到該事務(wù)結(jié)束時才釋放。三級封鎖協(xié)議可防止丟失修改、讀臟數(shù)據(jù)和不可重復讀現(xiàn)在是83頁\一共有111頁\編輯于星期五842.基于封鎖的并發(fā)控制技術(shù)三級協(xié)議的主要區(qū)別什么操作需要申請封鎖何時釋放鎖(即持鎖時間)現(xiàn)在是84頁\一共有111頁\編輯于星期五852.基于封鎖的并發(fā)控制技術(shù)封鎖技術(shù)可以有效地解決并行操作的一致性問題,但也帶來一些新的問題:活鎖:指某個事務(wù)由于請求封鎖,但總也得不到鎖而長時間處于等待狀態(tài)避免方法:采用先來先服務(wù)的策略當多個事務(wù)請求封鎖同一數(shù)據(jù)對象時,按請求封鎖的先后次序?qū)@些事務(wù)排隊該數(shù)據(jù)對象上的鎖一旦釋放,首先批準申請隊列中第一個事務(wù)獲得鎖。現(xiàn)在是85頁\一共有111頁\編輯于星期五862.基于封鎖的并發(fā)控制技術(shù)封鎖技術(shù)可以有效地解決并行操作的一致性問題,但也帶來一些新的問題(續(xù))死鎖:指在同時處于等待狀態(tài)的兩上或多個事務(wù)中相互封鎖了對方請求的資源,使得沒有任何一個事物可以獲得足夠的資源運行完畢,而永遠等待下去預防死鎖方法:一次封鎖法允許死鎖發(fā)生,一旦檢測到死鎖,解除死鎖的方法:選擇一個處理死鎖代價最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有的鎖,使其它事務(wù)能繼續(xù)運行下去現(xiàn)在是86頁\一共有111頁\編輯于星期五87兩階段封鎖協(xié)議兩階段封鎖協(xié)議(Two-PhaseLocking,簡稱2PL)是最常用的一種封鎖協(xié)議,理論上證明使用兩段封鎖協(xié)議產(chǎn)生的是可串行化調(diào)度是指所有事務(wù)必須分兩個階段對數(shù)據(jù)項加鎖和解鎖第一階段是獲得封鎖,也稱為擴展階段。在這階段,事務(wù)可以申請獲得任何數(shù)據(jù)項上的任何類型的鎖,但是不能釋放任何鎖第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務(wù)可以釋放任何數(shù)據(jù)項上的任何類型的鎖,但是不能再申請任何鎖。兩階段封鎖協(xié)議可以保證并發(fā)事務(wù)執(zhí)行的可串行化,現(xiàn)在是87頁\一共有111頁\編輯于星期五883.多粒度封鎖多粒度封鎖:在一個系統(tǒng)中同時支持多種封鎖粒度供不同的事務(wù)選擇引進意向鎖(intentionlock)目的提高對某個數(shù)據(jù)對象加鎖時系統(tǒng)的檢查效率什么是意向鎖對任一結(jié)點加基本鎖,必須先對它的上層結(jié)點加意向鎖現(xiàn)在是88頁\一共有111頁\編輯于星期五89常用意向鎖意向共享鎖(IS鎖)如果對一個數(shù)據(jù)對象加IS鎖,表示它的后裔結(jié)點擬(意向)加S鎖。例:要對某個元組加S鎖,則要先對關(guān)系和數(shù)據(jù)庫加IS鎖意向排它鎖(IX鎖)如果對一個數(shù)據(jù)對象加IX鎖,表示它的后裔結(jié)點擬(意向)加X鎖。例:要對某個元組加X鎖,先要對關(guān)系和數(shù)據(jù)庫加IX鎖共享意向排它鎖(SIX鎖)如果對一個數(shù)據(jù)對象加SIX鎖,表示對它加S鎖,再加IX鎖,即SIX=S+IX。例:對某個表加SIX鎖,則表示該事務(wù)要讀整個表(所以要對該表加S鎖),同時會更新個別元組(所以要對該表加IX鎖)現(xiàn)在是89頁\一共有111頁\編輯于星期五90內(nèi)容第1章 數(shù)據(jù)庫系統(tǒng)引論第2章 數(shù)據(jù)模型第3章 關(guān)系數(shù)據(jù)庫第4章 關(guān)系數(shù)據(jù)庫標準語言SQL第5章 查詢處理和查詢優(yōu)化第6章 數(shù)據(jù)庫的安全性第7章 數(shù)據(jù)庫的完整性第8章 數(shù)據(jù)庫恢復技術(shù)第9章 并發(fā)控制第10章關(guān)系數(shù)據(jù)庫設(shè)計理論第11章數(shù)據(jù)庫設(shè)計第12章數(shù)據(jù)庫編程現(xiàn)在是90頁\一共有111頁\編輯于星期五91第10章關(guān)系數(shù)據(jù)庫設(shè)計理論關(guān)系模型的存儲異常數(shù)據(jù)冗余大量的數(shù)據(jù)冗余不僅造成存儲空間的浪費,而且存在著潛在的數(shù)據(jù)不一致。插入異常刪除異常更新異常現(xiàn)在是91頁\一共有111頁\編輯于星期五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ù)依賴現(xiàn)在是92頁\一共有111頁\編輯于星期五93函數(shù)依賴的蘊涵性若關(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邏輯蘊涵FDX→Y,或稱X→Y邏輯蘊涵于F。記為F|=X→Y。定義10.6設(shè)函數(shù)依賴集F,所有被F邏輯蘊涵的函數(shù)依賴稱為F的閉包,記為F+。F+={X→Y|所有F蘊涵的FDX→Y}定義10.8設(shè)關(guān)系模式R(U,F),U={A1,A2,…,An},XU。所有用公理推出的函數(shù)依賴X→Ai中Ai的屬性集合稱屬性集X對于F的屬性閉包,記為XF+?,F(xiàn)在是93頁\一共有111頁\編輯于星期五942.函數(shù)依賴公理Armstrong公理系統(tǒng)就是一個有效而完備的公理系統(tǒng),是模式分解算法的理論基礎(chǔ)從一組函數(shù)依賴求得蘊含的函數(shù)依賴求給定關(guān)系模式的關(guān)鍵字現(xiàn)在是94頁\一共有111頁\編輯于星期五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現(xiàn)在是95頁\一共有111頁\編輯于星期五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)現(xiàn)在是96頁\一共有111頁\編輯于星期五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}現(xiàn)在是97頁\一共有111頁\編輯于星期五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?,F(xiàn)在是98頁\一共有111頁\編輯于星期五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ù)依賴中,每個決定因素都包含侯選鍵多值依賴定義現(xiàn)在是99頁\一共有111頁\編輯于星期五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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年藍碳交易平臺系統(tǒng)開發(fā)合同
- 2026年在線論壇商業(yè)合作合同
- 沙鋼集團設(shè)備工程師技能考核題集含答案
- 軟件測試團隊長的日常管理策略與面試技巧
- 教育機構(gòu)市場部經(jīng)理招聘面試問題集
- 實戰(zhàn)案例翻譯審校面試題分析
- 行測數(shù)據(jù)分析面試題及備考策略含答案
- 2026年車隊管理服務(wù)合同
- 京東金融產(chǎn)品專員面試問題集
- 稅務(wù)顧問專業(yè)能力考試題庫
- 污水站衛(wèi)生管理制度
- 護理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
- 2025廣西專業(yè)技術(shù)人員公需科目培訓考試答案
- 網(wǎng)絡(luò)故障模擬與處理能力測試試題及答案
- 2025至2030中國聚四氟乙烯(PTFE)行業(yè)經(jīng)營狀況及投融資動態(tài)研究報告
- 教育、科技、人才一體化發(fā)展
- 營銷與客戶關(guān)系管理-深度研究
- 耐壓試驗操作人員崗位職責
- 2020-2021學年廣東省廣州市黃埔區(qū)二年級(上)期末數(shù)學試卷
- 財政部政府采購法律法規(guī)與政策學習知識考試題庫(附答案)
- 長鑫存儲在線測評題
評論
0/150
提交評論