![數(shù)據(jù)庫原理復(fù)習(xí)資料整理_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/6514a553-fcf5-40a9-9442-4e03df42a611/6514a553-fcf5-40a9-9442-4e03df42a6111.gif)
![數(shù)據(jù)庫原理復(fù)習(xí)資料整理_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/6514a553-fcf5-40a9-9442-4e03df42a611/6514a553-fcf5-40a9-9442-4e03df42a6112.gif)
![數(shù)據(jù)庫原理復(fù)習(xí)資料整理_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/6514a553-fcf5-40a9-9442-4e03df42a611/6514a553-fcf5-40a9-9442-4e03df42a6113.gif)
![數(shù)據(jù)庫原理復(fù)習(xí)資料整理_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/6514a553-fcf5-40a9-9442-4e03df42a611/6514a553-fcf5-40a9-9442-4e03df42a6114.gif)
![數(shù)據(jù)庫原理復(fù)習(xí)資料整理_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/6514a553-fcf5-40a9-9442-4e03df42a611/6514a553-fcf5-40a9-9442-4e03df42a6115.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 第一章1.四大基本概念: 數(shù)據(jù):數(shù)據(jù)庫中存儲(chǔ)的基本對(duì)象,它是描述事物的符號(hào)記錄。種類有:文字、圖形、圖象、聲音等。特點(diǎn)是:數(shù)據(jù)與其語義是不可分的。數(shù)據(jù)庫:(Database,簡(jiǎn)稱DB)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)集合。其特點(diǎn)是:數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存;可為各種用戶共享;冗余度較小;數(shù)據(jù)獨(dú)立性較高;易擴(kuò)展。(特點(diǎn):永久存儲(chǔ)、有組織、可共享)數(shù)據(jù)庫管理系統(tǒng):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫管理系統(tǒng)的主要功能:數(shù)據(jù)定義功能; 數(shù)據(jù)組織、存儲(chǔ)和管理; 數(shù)據(jù)操縱功能;數(shù)據(jù)庫的事物管理和運(yùn)行管理; 數(shù)據(jù)庫的建立和維護(hù)功能; 其
2、他功能。數(shù)據(jù)庫系統(tǒng):是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)。一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員(和用戶)構(gòu)成。在不引起混淆的情況下常常把數(shù)據(jù)庫系統(tǒng)簡(jiǎn)稱為數(shù)據(jù)庫。2. 數(shù)據(jù)管理技術(shù)的三個(gè)階段及其特點(diǎn)人工管理階段: 特點(diǎn):1、數(shù)據(jù)不保存。 2、沒有軟件系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行管理。 3、這一時(shí)期沒有文件的概念,數(shù)據(jù)的組織方式必須由程序員自行設(shè)計(jì)。 4、一組數(shù)據(jù)對(duì)應(yīng)一組程序,數(shù)據(jù)是不共享的。 5、數(shù)據(jù)不具有獨(dú)立性,當(dāng)數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時(shí),應(yīng)用程序要變化。文件系統(tǒng)階段: 特點(diǎn):1、數(shù)據(jù)可以長(zhǎng)期保存。 2、由文件系統(tǒng)管理數(shù)據(jù)。 3、數(shù)據(jù)共享性差, 冗余度大文件是面向應(yīng)用的。 4、數(shù)據(jù)
3、獨(dú)立性差是不具有彈性的無結(jié)構(gòu)的數(shù)據(jù)集合,文件之間是孤立的,不能反映事物間聯(lián)系。數(shù)據(jù)庫系統(tǒng)階段: 特點(diǎn):數(shù)據(jù)的管理者:DBMS 數(shù)據(jù)面向的對(duì)象:現(xiàn)實(shí)世界 數(shù)據(jù)的共享程度:共享性高 數(shù)據(jù)的獨(dú)立性:高度的物理獨(dú)立性和一定的邏輯獨(dú)立性 數(shù)據(jù)的結(jié)構(gòu)化:整體結(jié)構(gòu)化 數(shù)據(jù)控制能力:由DBMS統(tǒng)一管理和控制3、 數(shù)據(jù)庫系統(tǒng)的特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化;數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充;數(shù)據(jù)獨(dú)立性高;數(shù)據(jù)有DBMS統(tǒng)一管理和控制。4、 數(shù)據(jù)模型的組成要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束。 數(shù)據(jù)結(jié)構(gòu)是對(duì)系統(tǒng)靜態(tài)特性的描述。 數(shù)據(jù)操作是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。5、 概念模型: 基本概念:實(shí)體:客觀存在并可相互區(qū)別的事物稱為實(shí)體
4、。 屬性:實(shí)體所具有的某一特性稱為屬性。 碼:唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。 域:屬性的取值范圍稱為該屬性的域。 實(shí)體型:具有相同屬性的實(shí)體具有的共同的特征和性質(zhì),即: 用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體 。 實(shí)體集:同型實(shí)體的集合稱為實(shí)體集。 聯(lián)系:現(xiàn)實(shí)世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實(shí)體(型)內(nèi)部的聯(lián)系 和實(shí)體(型)之間的聯(lián)系。 概念模型的表示方法:實(shí)體聯(lián)系方法,用E-R圖來描述。 E-R圖: 實(shí)體型:矩形表示,矩形框內(nèi)寫明實(shí)體名。 屬性:橢圓表示,用無向邊將其與相應(yīng)實(shí)體連接起來。 聯(lián)系:菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁
5、標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)。聯(lián)系可以有屬性。6、關(guān)系模型:在用戶觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。關(guān)系模型中的基本概念:關(guān)系(Relation):一個(gè)關(guān)系通常對(duì)應(yīng)一張表; 元組(Tuple):表中的一行即為一個(gè)元組; 屬性(Attribute):表中的一列即為一個(gè)屬性,給每一個(gè)屬性起一個(gè)名稱即屬性名; 主碼(Key):表中的某個(gè)屬性組,它可以唯一確定一個(gè)元組; 域(Domain):屬性的取值范圍; 分量:元組中的一個(gè)屬性值; 關(guān)系模式:對(duì)關(guān)系的描述,一般表示為: 關(guān)系名(屬性1,屬性2,屬性n)關(guān)系模型中,
6、實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來表示。例學(xué)生、課程、學(xué)生與課程之間的多對(duì)多聯(lián)系:學(xué)生(學(xué)號(hào),姓名,年齡,性別,系號(hào),年級(jí))課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件。最基本的規(guī)范條件:關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng)。關(guān)系模型的優(yōu)缺點(diǎn):優(yōu)點(diǎn):建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上。概念單一。數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰,用戶易懂易用關(guān)系模型的存取路徑對(duì)用戶透明。缺點(diǎn)存取路徑對(duì)用戶透明導(dǎo)致查詢效率往往不如非關(guān)系數(shù)據(jù)模型7、 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式 數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級(jí)構(gòu)成。 模式(邏輯模式),是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯
7、結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。 一個(gè)數(shù)據(jù)庫只有一個(gè)模式。 定義模式時(shí)不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求 外模式(子模式 Subschema)或用戶模式,是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的表述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。 外模式通常是模式的子集,一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式。 外模式是保證數(shù)據(jù)庫安全性的一個(gè)有力措施。每個(gè)用戶只能看見和訪問所對(duì)應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)是不可見的。 內(nèi)模式(存儲(chǔ)模式Storage Schema),是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)
8、據(jù)庫內(nèi)部的表示方式。 一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。8、 數(shù)據(jù)庫的二級(jí)映像功能:數(shù)據(jù)庫管理系統(tǒng)在三級(jí)模式之間提供了兩層映象:外模式/模式映象、模式/內(nèi)模式映象。 外模式/模式映象 定義外模式與模式之間的對(duì)應(yīng)關(guān)系 每一個(gè)外模式都對(duì)應(yīng)一個(gè)外模式模式映象 映象定義通常包含在各自外模式的描述中 外模式/模式映象如何保證數(shù)據(jù)的邏輯獨(dú)立性? 當(dāng)模式改變時(shí),數(shù)據(jù)庫管理員修改有關(guān)的外模式模式映象,使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性。 模式/內(nèi)模式映象 模式內(nèi)模式映象定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。 數(shù)據(jù)庫中模
9、式內(nèi)模式映象是唯一的 該映象定義通常包含在模式描述中 模式/內(nèi)模式映象如何保保證數(shù)據(jù)的物理獨(dú)立性?當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變了(例如選用了另一種存儲(chǔ)結(jié)構(gòu)),數(shù)據(jù)庫管理員修改模式內(nèi)模式映象,使模式保持不變。應(yīng)用程序不受影響。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。9、數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理員構(gòu)成。第四章1、 安全性級(jí)別 TCSEC將系統(tǒng)劃分為四組(ABCD)七個(gè)等級(jí),依次是D、C1、C2、B1、B2、B3、A1。 D級(jí):是最低級(jí)別。將一切不符合更高標(biāo)準(zhǔn)的系統(tǒng)均歸于D組。如DOS實(shí)操作系統(tǒng)中安全標(biāo)準(zhǔn)為D級(jí)的典型例子。 C1級(jí):非常初級(jí)的
10、自主安全保護(hù)。能夠?qū)崿F(xiàn)對(duì)用戶和數(shù)據(jù)的分離,進(jìn)行自主存取控制(DAC),保護(hù)或限制用戶權(quán)限的傳播。 C2級(jí):安全產(chǎn)品的最低檔次。提供受控的存取保護(hù),將C1級(jí)的DAC進(jìn)一步細(xì)化,以個(gè)人身份注冊(cè)負(fù)責(zé),并實(shí)施審計(jì)和資源隔離。達(dá)到C2級(jí)的產(chǎn)品在其名稱中往往不突出“安全”(Security)這一特色。 B1級(jí):標(biāo)記安全保護(hù)?!鞍踩?Security)或“可信的”(Trusted)產(chǎn)品。對(duì)系統(tǒng)的數(shù)據(jù)加以標(biāo)記,對(duì)標(biāo)記的主體和客體實(shí)施強(qiáng)制存取控制(MAC)、審計(jì)等安全機(jī)制。 B2級(jí):結(jié)構(gòu)化保護(hù)。建立形式化的安全策略模型并對(duì)系統(tǒng)內(nèi)的所有主體和客體實(shí)施DAC和MAC。經(jīng)過認(rèn)證的B2級(jí)以上的安全系統(tǒng)非常稀少。 B3
11、級(jí):安全域。 A1級(jí):驗(yàn)證設(shè)計(jì),即提供B3級(jí)保護(hù)的同時(shí)給出系統(tǒng)的形式化設(shè)計(jì)說明和驗(yàn)證以確信各安全保護(hù)真正實(shí)現(xiàn)。2、 數(shù)據(jù)庫安全性控制方法:3、用戶標(biāo)識(shí)與鑒別 是系統(tǒng)提供的最外層安全保護(hù)措施。 用戶標(biāo)識(shí):用一個(gè)用戶名或用戶標(biāo)識(shí)號(hào)來標(biāo)明用戶身份。 口令:系統(tǒng)核對(duì)口令以鑒別用戶身份。 基本方法 系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份; 系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識(shí); 每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)核對(duì)用戶提供的身份標(biāo)識(shí); 通過鑒定后才提供機(jī)器使用權(quán)。 用戶標(biāo)識(shí)和鑒定可以重復(fù)多次 該方法簡(jiǎn)單易行,但用戶名和口令容易被人竊取。4、 存取控制 存取控制機(jī)制的組成: 定義存?。ㄓ脩簦?quán)限 檢查存取
12、權(quán)限 定義存取權(quán)限:指定哪些用戶可以對(duì)數(shù)據(jù)對(duì)象進(jìn)行哪些操作。 檢查存取權(quán)限:檢查操作請(qǐng)求是否超出了定義的權(quán)限。 常用存取控制: 自主存取控制(DAC):C2級(jí),非常靈活。 同一用戶對(duì)于不同的數(shù)據(jù)對(duì)象有不同的存取權(quán)限 不同的用戶對(duì)同一對(duì)象也有不同的權(quán)限 用戶還可將其擁有的存取權(quán)限轉(zhuǎn)授給其他用戶 強(qiáng)制存取控制(MAC): B1級(jí),比較嚴(yán)格。 每一個(gè)數(shù)據(jù)對(duì)象被標(biāo)以一定的密級(jí) 每一個(gè)用戶也被授予某一個(gè)級(jí)別的許可證 對(duì)于任意一個(gè)對(duì)象,只有具有合法許可證的用戶才可以存取5、 用戶權(quán)限有數(shù)據(jù)庫對(duì)象和操作類型兩個(gè)要素組成。6、 自主存取控制(DAC)方法 主要通過SQL提供的grant語句和revoke語句來
13、實(shí)現(xiàn)。 授權(quán):定義存取權(quán)限成為授權(quán)。 GRANT語句的一般格式: GRANT <權(quán)限>,<權(quán)限>. ON <對(duì)象類型> <對(duì)象名> TO <用戶>,<用戶>. WITH GRANT OPTION;GRANT功能(作用):將對(duì)指定操作對(duì)象的指定操作權(quán)限授予指定的用戶。發(fā)出GRANT語句的對(duì)象:DBA(數(shù)據(jù)庫管理員),數(shù)據(jù)庫對(duì)象創(chuàng)建者,已經(jīng)擁有該權(quán)限的用戶。DBA擁有對(duì)數(shù)據(jù)庫所有對(duì)象的所有權(quán)限, 用戶對(duì)自己建立的基本表和視圖擁有全部的操作權(quán)限。接受權(quán)限的用戶:一個(gè)或多個(gè)具體用戶,或PUBLIC,即全體用戶。WITH GRANT
14、 OPTION:獲得某種權(quán)限的用戶還可以把這種權(quán)限再授予別的用戶。若沒有指定該語句,則用戶只能使用該權(quán)限,不能傳播該權(quán)限。 例1 把查詢Student表權(quán)限授給用戶U1 GRANT SELECT(INSERT/UPDATE(Sno)) 或者為 ALL PRIVILEGES(全部操作權(quán)限) ON TABLE Student TO U1;或者 TO U1,U2,U3;或者 TO PUBLIC; 例2 把對(duì)表SC的insert權(quán)限授予U5,并允許將此權(quán)限在授予其他用戶。 GRANT INSERT ON SC TO U5 WITH GRANT OPTION;執(zhí)行例2后,U5不僅擁有了對(duì)表SC的INSE
15、RT權(quán)限,還可以傳播此權(quán)限:U5 可以將此權(quán)限授予U6(即有U5發(fā)出下列語句) GRANT INSERT ON SC TO U6 WITH GRANT OPTION; REVOKE(回收) REVOKE語句的一般格式為: REVOKE <權(quán)限>,<權(quán)限>. ON <對(duì)象類型> <對(duì)象名> FROM <用戶>,<用戶>.CASCADE|RESTRICT; REVOKE語句功能:從指定用戶那里收回對(duì)指定對(duì)象的指定權(quán)限 CASCADE:聯(lián)級(jí)回收 例 把用戶U4修改學(xué)生學(xué)號(hào)的權(quán)限收回REVOKE UPDATE(Sno)ON TAB
16、LE Student FROM U4;或者為 PUBLIC 例 把用戶U5對(duì)SC表的INSERT權(quán)限收回REVOKE INSERT ON TABLE SC FROM U5 CASCADE;/直接或間接從U5得到的insert權(quán)限也將被回收 注:系統(tǒng)不同,缺省回收不同,有的是缺省為CASCADE,有的為RESTRICT7、 強(qiáng)制存取控制(MAC)方法 在MAC中,DBMS所管理的全部實(shí)體被分為主體和客體兩大類。 主體是系統(tǒng)中的活動(dòng)實(shí)體,既包括DBMS所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。 客體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的,包括文件、基表、索引、視圖等等。 對(duì)于主體和客體,DBMS為它們
17、每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label)。 敏感度標(biāo)記被分成若干級(jí)別,通常為:絕密(Top Secret)、機(jī)密(Secret)、可信(Confidential)、公開(Public)等。 主體的敏感度標(biāo)記被稱為許可證級(jí)別,客體的敏感度標(biāo)記稱為密級(jí)。 當(dāng)某一用戶(或一主體)以標(biāo)記label注冊(cè)入系統(tǒng)時(shí),系統(tǒng)要求他對(duì)任何客體的存取必須遵循如下規(guī)則: (1)僅當(dāng)主體的許可證級(jí)別大于或等于客體的密級(jí)時(shí),該主體才能讀取相應(yīng)的客體; (2)僅當(dāng)主體的許可證級(jí)別等于客體的密級(jí)時(shí),該主體才能寫相應(yīng)的客體。 第五章1、 數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。2、 完整性控制機(jī)制:(1)提供定義完整性月
18、數(shù)條件的機(jī)制 (2)提供完整性檢查的方法 (3)違約處理3、 實(shí)體完整性定義:PRIMARY KEY定義,表級(jí)完整性約束或列級(jí)完整性約束。 實(shí)體完整性:主屬性不能為空。 例:CREATE TABLE Student (Sno CHAR(5) PRIMARY KEY, /*在列級(jí)定義主碼*/ Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15); CREATE TABLE Student (Sno CHAR(5) , Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sd
19、ept CHAR(15), PRIMARY KEY (Sno) /*在表級(jí)定義主碼*/ ); CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno) /*一組屬性為主碼,只能在表級(jí)定義主碼*/ );4、實(shí)體完整性檢查和違約處理 按照實(shí)體完整性規(guī)則,系統(tǒng)自動(dòng)檢查:1)主碼值是否唯一。2)主碼各屬性是否為空。5、 參照完整性定義:創(chuàng)建表時(shí),FOREIGN KEY定義。 參照完整性:外碼取值為空或者等于相對(duì)應(yīng)的主碼的某個(gè)元祖的值。 例: CREATE TABL
20、E SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, Primary key (Sno, Cno) foreign key (Sno) references Student(Sno), foreign key (Cno) references Course(Cno) );6、實(shí)現(xiàn)參照完整性要考慮的幾個(gè)問題: 1)外碼能否接受空值問題2) 在被參照關(guān)系中刪除元組的問題3)在參照關(guān)系中插入元組時(shí)的問題4)修改關(guān)系中主碼的問題 1) 外碼能否接受空值問題 在實(shí)現(xiàn)參照完整性時(shí),系統(tǒng)除了應(yīng)該提供定義外碼的機(jī)制,還應(yīng)提供定義外碼列是否允許空值的機(jī)制。 例1:學(xué)生(學(xué)號(hào),
21、姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)在學(xué)生關(guān)系中的專業(yè)號(hào)列可以取空值。 例2:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào) ,課程號(hào),成績(jī))選修關(guān)系中的學(xué)號(hào)列不能取空值。 2)在被參照關(guān)系中刪除元組的問題 一般地,當(dāng)刪除被參照關(guān)系的某個(gè)元組,而參照關(guān)系存在若干元組,其外碼值與被參照關(guān)系刪除元組的主碼值相同,這時(shí)可有三種不同的策略: (1) 級(jí)聯(lián)刪除(CASCADES) (2) 受限刪除(RESTRICTED) 僅當(dāng)參照關(guān)系中沒有任何元組的外碼值與被參照關(guān)系中要?jiǎng)h除元組的主碼值相同時(shí),系統(tǒng)才執(zhí)行刪除操作,否則拒絕此刪除操作。 (3) 置空值刪除(NUL
22、LIFIES) 刪除被參照關(guān)系的元組,并將參照關(guān)系中相應(yīng)元組的外碼值置空值。 這三種處理方法,哪一種是正確的,要依應(yīng)用環(huán)境的語義來定 3)在參照關(guān)系中插入元組時(shí)的問題 一般地,當(dāng)參照關(guān)系插入某個(gè)元組,而被參照關(guān)系不存在相應(yīng)的元組,其主碼值與參照關(guān)系插入元組的外碼值相同,這時(shí)可有以下策略: (1)受限插入 僅當(dāng)被參照關(guān)系中存在相應(yīng)的元組,其主碼值與參照關(guān)系插入元組的外碼值相同時(shí),系統(tǒng)才執(zhí)行插入操作,否則拒絕此操作。 (2)遞歸插入 首先向被參照關(guān)系中插入相應(yīng)的元組,其主碼值等于參照關(guān)系插入元組的外碼值,然后向參照關(guān)系插入元組。 4) 修改關(guān)系中主碼的問題(1) 不允許修改主碼 在有些RDBMS中
23、,修改關(guān)系主碼的操作是不允許的。 (2) 允許修改主碼 在有些RDBMS中,允許修改關(guān)系主碼,但必須保證主碼的唯一性和非空,否則拒絕修改。 若修改的是被參照關(guān)系,則與刪除類似,有三種策略: 級(jí)聯(lián)修改:修改被參照關(guān)系主碼值的同時(shí),修改參照關(guān)系中相應(yīng)的外碼值。 受限修改:拒絕此修改操作。只當(dāng)參照關(guān)系中沒有任何元組的外碼值等于被參照關(guān)系中某個(gè)元組的主碼值時(shí),才能被修改。 置空值修改:修改被參照關(guān)系主碼值的同時(shí),將參照關(guān)系中相應(yīng)的外碼值置為空值。例: CREATE TABLE SC( Sno CHAR(5) NOT NULL, Cno CHAR(3) NOT NULL, Grade SMALLINT,
24、 Primary key (Sno, Cno) foreign key (Sno) references Student(Sno), ON DELETE CASCADE 級(jí)連刪除 ON UPDATE CASCADE, 級(jí)連更新 foreign key (Cno) references Course(Cno) ON DELETE CASCADE ON UPDATE CASCADE);7、用戶定義的完整性:元組上的約束條件的定義。列值非空(NOT NULL) 列值唯一(UNIQUE) CHECK短語 例: CREATE TABLE Student (Sno CHAR(5) , Sname CHAR
25、(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15), PRIMARY KEY (Sno) CHECK (Ssex=女 OR Sname NOT LIKE Ms.%) );8、完整性約束命名子句CREATE TABLE Student (Sno NUMERIC(6) CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Ssex CHAR(2) CONSTRAINT C3 CHECK(Ssex IN (男,女), C
26、ONSTRAINT C4 PRIMARY KEY (Sno) ); 注:C1、C2、C3、C4為約束名 constraint為定義約束名的關(guān)鍵字 修改表中的完整性限制 ALTER TABLE Student DROP CONSTRAINT C4; ALTER TABLE Student ADD CONSTRAINT C1 CHECK(Sno BETWEEN AND );第九章1、 RDBMS查詢處理的4個(gè)階段:查詢分析,查詢檢查,查詢優(yōu)化和查詢執(zhí)行。2、 集中式數(shù)據(jù)庫中 查詢總代價(jià)=磁盤存取塊數(shù)(I/O代價(jià))+處理機(jī)時(shí)間(CPU代價(jià))+內(nèi)存代價(jià) 在集中式數(shù)據(jù)庫中I/O代價(jià)是最主要的。 分布式數(shù)
27、據(jù)庫中 查詢總代價(jià)=I/O代價(jià)+CPU代價(jià)+內(nèi)存代價(jià)+通信代價(jià)3、 查詢優(yōu)化的總目標(biāo):(1)選擇有效的策略(2)求得給定關(guān)系表達(dá)式的值(3)使得查詢 代價(jià)最小(實(shí)際上是較小) 4、 代數(shù)優(yōu)化 常用的等價(jià)變換規(guī)則: (1) 連接、笛卡爾積交換律 設(shè)E1和E2是關(guān)系代數(shù)表達(dá)式,F(xiàn)是連接運(yùn)算的條件,則有 (2)連接、笛卡爾積的結(jié)合律 設(shè)E1,E2,E3是關(guān)系代數(shù)表達(dá)式,F(xiàn)1和F2是連接運(yùn)算的條件,則有 (3) 投影的串接定律 這里,E是關(guān)系代數(shù)表達(dá)式,Ai(i=1,2,n),Bj(j=1,2,m)是屬性名且A1,A2,An構(gòu)成B1,B2,Bm的子集。(4) 選擇的串接定律 這里,E是關(guān)系代數(shù)表達(dá)式,
28、F1、F2是選擇條件。選擇的串接律說明選擇條件可以合并。這樣一次就可檢查全部條件。(5) 選擇與投影操作的交換律 選擇條件F只涉及屬性A1,An。若F中有不屬于A1,An的屬性B1,Bm則有更一般的規(guī)則: (6) 選擇與笛卡爾積的交換律如果F中涉及的屬性都是E1中的屬性,則 如果F=F1F2,并且F1只涉及E1中的屬性,F(xiàn)2只涉及E2中的屬性,則由上面的等價(jià)變換規(guī)則1,4,6可推出: 若F1只涉及E1中的屬性,F(xiàn)2涉及E1和E2兩者的屬性,則仍有 它使部分選擇在笛卡爾積前先做。 (7) 選擇與并的分配律設(shè)E=E1E2,E1,E2有相同的屬性名,則 F(E1E2)F(E1)F(E2)(8) 選擇
29、與差運(yùn)算的分配律若E1與E2有相同的屬性名,則 F(E1-E2)F(E1)-F(E2)(9) 選擇對(duì)自然連接的分配律 F(E1 E2)F(E1) F(E2) F只涉及E1與E2的公共屬性 (10) 投影與笛卡爾積的分配律設(shè)E1和E2是兩個(gè)關(guān)系表達(dá)式,A1,An是E1的屬性,B1,Bm是E2的屬性,則 (11) 投影與并的分配律設(shè)E1和E2有相同的屬性名,則 5、 查詢樹的啟發(fā)式優(yōu)化 1. 選擇運(yùn)算應(yīng)盡可能先做。在優(yōu)化策略中這是最重要、最基本的一條 2. 把投影運(yùn)算和選擇運(yùn)算同時(shí)進(jìn)行 3. 把投影同其前或其后的雙目運(yùn)算結(jié)合起來 4. 把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來成為一個(gè)連接運(yùn)算
30、5. 找出公共子表達(dá)式6、 查詢優(yōu)化樹的示例 例3 求選修了2號(hào)課程的學(xué)生姓名。用SQL表達(dá): SELECT Student.Sname FROM Student,SC WHERE Student.Sno=SC.Sno AND SC.Cno=2; 把SQL語句轉(zhuǎn)換成查詢樹,如下圖所示 為了使用關(guān)系代數(shù)表達(dá)式的優(yōu)化法,假設(shè)內(nèi)部表示是關(guān)系代數(shù)語法樹,則上面的查詢樹如下圖所示。 對(duì)查詢樹進(jìn)行優(yōu)化如下圖第十章1、 事務(wù):是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位。2、 事務(wù)的四大特點(diǎn):原子性(Atomicity)一致性(Consistency)隔離性(Iso
31、lation)持續(xù)性(Durability )。3、 事務(wù)是恢復(fù)和并發(fā)控制的基本單位。4、 四大類故障:事務(wù)內(nèi)部的故障、系統(tǒng)故障、介質(zhì)故障、計(jì)算機(jī)病毒5、 恢復(fù)機(jī)制涉及的兩個(gè)關(guān)鍵問題:第一,如何建立冗余數(shù)據(jù);第二,如何利用這些冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫恢復(fù)。6、 建立冗余數(shù)據(jù)值常用的技術(shù)是:數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件。7、 數(shù)據(jù)轉(zhuǎn)儲(chǔ)分類 靜態(tài)轉(zhuǎn)儲(chǔ):在系統(tǒng)中無運(yùn)行事務(wù)是進(jìn)行的轉(zhuǎn)儲(chǔ)操作。簡(jiǎn)單,但會(huì)降低數(shù)據(jù)庫的可用性。 動(dòng)態(tài)轉(zhuǎn)儲(chǔ):轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫進(jìn)行存取或修改。即轉(zhuǎn)儲(chǔ)和用戶事務(wù)可以并發(fā)執(zhí)行。 優(yōu)點(diǎn):不用等待正在運(yùn)行的用戶事務(wù)結(jié)束,不會(huì)影響新事務(wù)的運(yùn)行。 缺點(diǎn):不能保證副本中的數(shù)據(jù)正確有效。 海量轉(zhuǎn)儲(chǔ):每次轉(zhuǎn)
32、儲(chǔ)全部數(shù)據(jù)庫。 增量轉(zhuǎn)儲(chǔ):每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過的數(shù)據(jù)。8、 日志文件:用來記錄事務(wù)對(duì)數(shù)據(jù)庫的更新操作的文件。 登記日志文件時(shí)必須遵循的兩條原則:(1)登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間次序。(2)必須先寫日志文件,在寫數(shù)據(jù)庫。9、 事務(wù)故障的回復(fù)(由系統(tǒng)自動(dòng)完成) 步驟:(1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。 (2)對(duì)該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”(Befor Image, BI)寫入數(shù)據(jù)庫。 插入操作, “更新前的值”為空,則相當(dāng)于做刪除操作 刪除操作,“更新后的值”為空,則相當(dāng)于做插入操作 若是修改操作,則用BI(Bef
33、ore Image) 代替 AI(After Image) (3) 繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理。 (4)如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)就完成了。10、 系統(tǒng)故障的回復(fù)(由系統(tǒng)在重新啟動(dòng)時(shí)自動(dòng)完成) 步驟:(1)正向掃描日志文件(即從頭掃描日志文件) Redo隊(duì)列: 在故障發(fā)生前已經(jīng)提交的事務(wù) T1, T3, T8. Undo隊(duì)列:故障發(fā)生時(shí)尚未完成的事務(wù) T2, T4, T5, T6, T7, T9 . (2)對(duì)Undo隊(duì)列事務(wù)進(jìn)行UNDO處理。反向掃描日志文件,對(duì)每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操作。 T2, T4, T5, T6, T
34、7, T9 (3)對(duì)Redo隊(duì)列事務(wù)進(jìn)行REDO處理。正向掃描日志文件,對(duì)每個(gè)REDO事務(wù)重新執(zhí)行登記的操作。 T1, T3, T8.11、 介質(zhì)故障的回復(fù) 步驟:(1)裝入最新的后備數(shù)據(jù)庫副本,使數(shù)據(jù)庫恢復(fù)到最近一次轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。(對(duì)于靜態(tài)轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫副本,裝入后數(shù)據(jù)庫即處于一致性狀態(tài)。對(duì)于動(dòng)態(tài)轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫副本,還須同時(shí)裝入轉(zhuǎn)儲(chǔ)時(shí)刻的日志文件副本,利用與恢復(fù)系統(tǒng)故障相同的方法(即REDO+UNDO),才能將數(shù)據(jù)庫恢復(fù)到一致性狀態(tài)。) (2)裝入有關(guān)的日志文件副本,重做已完成的事務(wù)。首先掃描日志文件,找出故障發(fā)生時(shí)已提交的事務(wù)的標(biāo)識(shí),將其記入重做隊(duì)列。然后正向掃描日志文件,對(duì)重做隊(duì)列中的
35、所有事務(wù)進(jìn)行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。第十一章1、 多事務(wù)執(zhí)行方式 串行執(zhí)行、交叉并發(fā)方式、同時(shí)并發(fā)方式2、為什么要進(jìn)行并發(fā)控制?當(dāng)多個(gè)用戶并發(fā)地存取數(shù)據(jù)庫時(shí)就會(huì)產(chǎn)生多個(gè)事務(wù)同時(shí)存取同一數(shù)據(jù)的情況。若對(duì)并發(fā)操作不加控制就可能會(huì)存取和存儲(chǔ)不正確的數(shù)據(jù),破壞是事務(wù)的一致性和數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機(jī)制。3、 數(shù)據(jù)庫管理系統(tǒng)中并發(fā)控制機(jī)制的責(zé)任:保證事務(wù)的隔離性和一致性,DBMS需要對(duì)并發(fā)操作進(jìn)行正確調(diào)度。4、 并發(fā)操作帶來的數(shù)據(jù)不一致性主要有:丟失修改、不可重復(fù)讀、讀“臟”數(shù)據(jù)。5、 并發(fā)控制技術(shù):封鎖。 6、 基本的封鎖類型有兩種:排它鎖(寫鎖、
36、X鎖),共享鎖(讀鎖、S鎖)。7、 封鎖類型的相容矩陣:Y=Yes,相容的請(qǐng)求N=No,不相容的請(qǐng)求 T1 T2XS-XNNYSNYY-YYY 8、 三級(jí)封鎖協(xié)議: 1級(jí)封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X鎖,直到事務(wù)結(jié)束才釋放。 正常結(jié)束(COMMIT) 非正常結(jié)束(ROLLBACK) 1級(jí)封鎖協(xié)議可防止丟失修改 在1級(jí)封鎖協(xié)議中,如果是讀數(shù)據(jù),不需要加鎖的,所以它不能保證可重 復(fù)讀和不讀“臟”數(shù)據(jù)。 2級(jí)封鎖協(xié)議:1級(jí)封鎖協(xié)議+事務(wù)T在讀取數(shù)據(jù)R前必須先加S鎖,讀完后即可釋放S 鎖。 2級(jí)封鎖協(xié)議可以防止丟失修改和讀“臟”數(shù)據(jù)。 在2級(jí)封鎖協(xié)議中,由于讀完數(shù)據(jù)后即可釋放S鎖,所以
37、它不能保證可重復(fù)讀。 3級(jí)封鎖協(xié)議:1級(jí)封鎖協(xié)議 + 事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,直到事務(wù) 結(jié)束才釋放。 3級(jí)封鎖協(xié)議可防止丟失修改、讀臟數(shù)據(jù)和不可重復(fù)讀。 三級(jí)封鎖協(xié)議總結(jié): 9、活鎖:某個(gè)事務(wù)永遠(yuǎn)處于等待狀態(tài)。 避免活鎖的簡(jiǎn)單方法是采用先來先服務(wù)的策略。10、死鎖:多個(gè)事務(wù)同時(shí)處于等待狀態(tài)。每個(gè)事務(wù)都在等待其它事務(wù)釋放鎖使其能夠繼續(xù)執(zhí)行,從而出現(xiàn)多個(gè)事務(wù)互相等待的僵局,每個(gè)事務(wù)永遠(yuǎn)不能結(jié)束。11、死鎖的預(yù)防:不易實(shí)現(xiàn),故DBMS在解決死鎖問題上普遍采用診斷并解除死鎖的方法1)一次封鎖法:要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。一次封鎖法存在的問題:降
38、低并發(fā)度、擴(kuò)大封鎖范圍。將以后要用到的全部數(shù)據(jù)加鎖,勢(shì)必?cái)U(kuò)大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。2)順序封鎖法:順序封鎖法是預(yù)先對(duì)數(shù)據(jù)對(duì)象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。順序封鎖法存在的問題:維護(hù)成本高。數(shù)據(jù)庫系統(tǒng)中可封鎖的數(shù)據(jù)對(duì)象極其眾多,并且隨數(shù)據(jù)的插入、刪除等操作而不斷地變化,要維護(hù)這樣極多而且變化的資源的封鎖順序非常困難,成本很高。12、 死鎖診斷與解除 死鎖診斷方法: 1)超時(shí)法:如果一個(gè)事務(wù)的等待時(shí)間超過了規(guī)定的時(shí)限,就認(rèn)為發(fā)生了死鎖。 優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單 缺點(diǎn):有可能誤判死鎖。時(shí)限若設(shè)置得太長(zhǎng),死鎖發(fā)生后不能及時(shí)發(fā)現(xiàn)。 2)等待圖法:用事務(wù)等待圖動(dòng)態(tài)反映所有事務(wù)的等待情況。 事務(wù)等待圖是一個(gè)有向圖G=(T,U) T為結(jié)點(diǎn)的集合,每個(gè)結(jié)點(diǎn)表示正運(yùn)行的事務(wù) U為邊的集合,每條邊表示事務(wù)等待的情況 若T1等待T2,則T1,T2之間劃一條有向邊,從T1指向T2 并發(fā)控制子系統(tǒng)周期性地(比如每隔1 min)檢測(cè)事務(wù)等待圖,如果發(fā)現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程質(zhì)量與安全綜合監(jiān)測(cè)服務(wù)合同
- 個(gè)人聘用合同范本模板
- 農(nóng)村建房建設(shè)合同范例
- 喪葬用品轉(zhuǎn)讓合同范例
- 企劃合同范本
- 食堂服務(wù)外包合同范本
- 燃?xì)馐┕わL(fēng)險(xiǎn)以及管控措施
- 2025年度婚慶婚禮現(xiàn)場(chǎng)娛樂活動(dòng)策劃合同
- 工廠內(nèi)部承包合同范本
- 黑龍江申論真題2021年(鄉(xiāng)鎮(zhèn))
- 山體排險(xiǎn)合同模板
- 醫(yī)保專(兼)職管理人員的勞動(dòng)合同(2篇)
- 特殊感染手術(shù)的配合與術(shù)后處理課件
- 檢驗(yàn)科生物安全工作總結(jié)
- 《ESPEN重癥病人營(yíng)養(yǎng)指南(2023版)》解讀課件
- 《金屬與石材幕墻工程技術(shù)規(guī)范》jgj1332001-2021112401384
- 即時(shí)通訊系統(tǒng)建設(shè)方案
- 2024年山東省聊城市東昌府區(qū)小升初英語試卷
- 《堅(jiān)毅:釋放激情與堅(jiān)持的力量》隨筆
- 區(qū)塊鏈應(yīng)用操作員技能大賽考試題庫大全-下(多選、判斷題)
評(píng)論
0/150
提交評(píng)論