數(shù)據(jù)庫系統(tǒng)概論完整總結(jié)_第1頁
數(shù)據(jù)庫系統(tǒng)概論完整總結(jié)_第2頁
數(shù)據(jù)庫系統(tǒng)概論完整總結(jié)_第3頁
數(shù)據(jù)庫系統(tǒng)概論完整總結(jié)_第4頁
數(shù)據(jù)庫系統(tǒng)概論完整總結(jié)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第1章緒論(理論)

DBMS數(shù)據(jù)庫管理系統(tǒng)

DBS數(shù)據(jù)庫系統(tǒng)

DDL數(shù)據(jù)定義功能

DML數(shù)據(jù)操縱功能一一查詢,插入,刪除,修改等基本操作

DBA數(shù)據(jù)庫管理員

DB數(shù)據(jù)庫

1.試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。

答:

(1)數(shù)據(jù)(Data):描述事物的符號記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有數(shù)字、文字、圖形、圖

像、聲音、正文等。數(shù)據(jù)與其語義是不可分的。解析在現(xiàn)代計(jì)算機(jī)系統(tǒng)中數(shù)據(jù)的概念是廣義

的。早期的計(jì)算機(jī)系統(tǒng)主要用于科學(xué)計(jì)算,處理的數(shù)據(jù)是整數(shù)、實(shí)數(shù)、浮點(diǎn)數(shù)等傳統(tǒng)數(shù)學(xué)中

的數(shù)據(jù)?,F(xiàn)代計(jì)算機(jī)能存儲和處理的對象十分廣泛,表示這些對象的數(shù)據(jù)也越來越復(fù)雜。數(shù)

據(jù)與其語義是不可分的。500這個(gè)數(shù)字可以表示一件物品的價(jià)格是500元,也可以表示一

個(gè)學(xué)術(shù)會議參加的人數(shù)有500人,還可以表示一袋奶粉重500克。

(2)數(shù)據(jù)庫(DataBase,簡稱DB):數(shù)據(jù)庫是長期儲存在計(jì)算機(jī)內(nèi)的、有組織的、可

共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、

較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。(數(shù)據(jù)+結(jié)構(gòu))

(3)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡稱DBS):最大的概念。數(shù)據(jù)庫系統(tǒng)是指在計(jì)

算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、

應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員構(gòu)成。解析數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫是兩個(gè)概念。數(shù)據(jù)庫系統(tǒng)是一個(gè)人

一機(jī)系統(tǒng),數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的一個(gè)組成部分。但是在日常工作中人們常常把數(shù)據(jù)庫系統(tǒng)

簡稱為數(shù)據(jù)庫。希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據(jù)庫系統(tǒng)”和“數(shù)據(jù)庫”,

不要引起混淆。

(4)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementsytem,簡稱DBMs):數(shù)據(jù)庫管理系統(tǒng)是

位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。DBMS的主要功能包括數(shù)據(jù)定義功能、數(shù)

據(jù)操縱功能、數(shù)據(jù)庫的運(yùn)行管理功能、數(shù)據(jù)庫的建立和維護(hù)功能。解析DBMS是一個(gè)大型

的復(fù)雜的軟件系統(tǒng),是計(jì)算機(jī)中的基礎(chǔ)軟件。目前,專門研制DBMS的廠商及其研制的

DBMS產(chǎn)品很多。著名的有美國IBM公司的DBZ關(guān)系數(shù)據(jù)庫管理系統(tǒng)和IMS層次數(shù)據(jù)

庫管理系統(tǒng)、美國Oracle公司的orade關(guān)系數(shù)據(jù)庫管理系統(tǒng)、s油ase公司的s油ase

關(guān)系數(shù)據(jù)庫管理系統(tǒng)、美國微軟公司的SQLServe,關(guān)系數(shù)據(jù)庫管理系統(tǒng)等。

5.試述數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。

答:

(1)數(shù)據(jù)結(jié)構(gòu)化:數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也

是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。解析注意這里的“整體’夕兩個(gè)字。在數(shù)據(jù)庫系統(tǒng)中,

數(shù)據(jù)不再針對某一個(gè)應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化。

(2)數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充:數(shù)據(jù)庫的數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整

個(gè)系統(tǒng),因此可以被多個(gè)用戶、多個(gè)應(yīng)用以多種不同的語言共享使用。由于數(shù)據(jù)面向整個(gè)系

統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)

據(jù)庫系統(tǒng)彈性大,易于擴(kuò)充。解析數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間,同時(shí)還

能夠避免數(shù)據(jù)之間的不相容性與不一致性。

(3)數(shù)據(jù)獨(dú)立性高:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)庫管

理系統(tǒng)的模式結(jié)構(gòu)和二級映像功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨(dú)立性和邏輯獨(dú)

立性。邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的。物理獨(dú)立性是指

用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的。

(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制:數(shù)據(jù)庫的共享是并發(fā)的共享,即多個(gè)用戶可以同

時(shí)存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時(shí)存取數(shù)據(jù)庫中同一個(gè)數(shù)據(jù)。為此,DBMS必須提供統(tǒng)

一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護(hù)、數(shù)據(jù)的完整性檢查、并發(fā)控制和數(shù)據(jù)庫恢復(fù)。

6.數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?

答:

(1)數(shù)據(jù)庫定義功能;

(2)數(shù)據(jù)存取功能;

(3)數(shù)據(jù)庫運(yùn)行管理;

(4)數(shù)據(jù)庫的建立和維護(hù)功能。

8.試述概念模型的作用。

答:

概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次,按用戶的觀點(diǎn)來對數(shù)據(jù)和信息建

模。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計(jì)人

員進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言。

9/理解/定義并解釋概念模型中以下術(shù)語:實(shí)體,實(shí)體型,實(shí)體集,屬性,碼、實(shí)體聯(lián)系

圖(E-R圖)

答:

實(shí)體:客觀存在并可以相互區(qū)分的事物叫實(shí)體。實(shí)體型:具有相同屬性的實(shí)體具有相同的特

征和性質(zhì),用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體,稱為實(shí)體型。實(shí)體集:同型實(shí)

體的集合稱為實(shí)體集。屬性:實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來刻畫。碼:

惟一標(biāo)識實(shí)體的屬性集稱為碼。實(shí)體聯(lián)系圖(E—R圖):提供了表示實(shí)體型、屬性和聯(lián)

系的方法:?實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名;?MB:用橢圓形表示,并

用無向邊將其與相應(yīng)的實(shí)體連接起來;?鰥:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用

無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。

注意:E-R圖的說明要用兩句話。

E-R圖:實(shí)體聯(lián)系的方法。

18.試述關(guān)系模型的概念,定義并解釋以下術(shù)語:域,元組,主碼

答:

(3)域:屬性的取值范圍;(4)元組:表中的一行即為一個(gè)元組;(5)主碼:表中

的某個(gè)屬性組,它可以惟一確定一個(gè)元組;

19.試述關(guān)系數(shù)據(jù)庫的特點(diǎn)。

答:

關(guān)系數(shù)據(jù)模型具有下列優(yōu)點(diǎn):(1)關(guān)系模型與非關(guān)系模型不同,它是建立在嚴(yán)格的數(shù)學(xué)概

念的基礎(chǔ)上的。(2)關(guān)系模型的概念單一,無論實(shí)體還是實(shí)體之間的聯(lián)系都用關(guān)系表示,

操作的對象和操作的結(jié)果都是關(guān)系,所以其數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。(3)

關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡化

了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。當(dāng)然,關(guān)系數(shù)據(jù)模型也有缺點(diǎn),其中最主要的缺

點(diǎn)是,由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。因此為了提高性能,

必須對用戶的查詢請求進(jìn)行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度。

20.試述數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu),這種結(jié)構(gòu)的優(yōu)點(diǎn)是什么?

答:

數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。(參見書上圖1.29)外模式,

亦稱子模式或用戶模式,是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局

部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏

輯表示。模式,亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶

的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)。外模式涉及的是數(shù)據(jù)的局部邏輯結(jié)構(gòu),

通常是模式的子集。內(nèi)模式,亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)部的表示,即對數(shù)據(jù)的

物理結(jié)構(gòu)和存儲方式的描述。數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個(gè)抽象級別,它把數(shù)據(jù)的

具體組織留給DBMS管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的

表示和存儲。為了能夠在內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在這三級模式

之間提供了兩層映像:外模式/模式映像和模式/內(nèi)模式映像。正是這兩層映像保證了數(shù)據(jù)

庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。

21.定義并解釋以下術(shù)語:模式、外模式、內(nèi)模式、DDL、DML

答:

模式、外模式、內(nèi)模式,亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是

所有用戶的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)。外模式涉及的是數(shù)據(jù)的局部

邏輯結(jié)構(gòu),通常是模式的子集。內(nèi)模式,亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)部的表示,

即對數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式的描述。DDL:數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫模式、

外模式、內(nèi)模式的語言。DML:數(shù)據(jù)操縱語言,用來對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢、插入、

刪除和修改的語句.

22.什么叫數(shù)據(jù)與程序的物理獨(dú)立性?什么叫數(shù)據(jù)與程序的邏輯獨(dú)立性?為什么數(shù)據(jù)庫系

統(tǒng)具有數(shù)據(jù)與程序的獨(dú)立性?

答:

數(shù)據(jù)與程序的邏輯獨(dú)立性:當(dāng)模式改變時(shí)(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)

類型等),由數(shù)據(jù)庫管理員對各個(gè)外模式/模式的映像做相應(yīng)改變,可以使外模式保持不變。

應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)

立性,簡稱數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)與程序的物理獨(dú)立性:當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了,由

數(shù)據(jù)庫管理員對模式/內(nèi)模式映像做相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必

改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡稱數(shù)據(jù)的物理獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)在三級模

式之間提供的兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立

性。

23.試述數(shù)據(jù)庫系統(tǒng)的組成。

答:

數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和

用戶構(gòu)成。

24.DBA的職責(zé)是什么?

答:

負(fù)責(zé)全面地管理和控制數(shù)據(jù)庫系統(tǒng)。具體職責(zé)包括:①決定數(shù)據(jù)庫的信息內(nèi)容和結(jié)構(gòu);②

決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略;③定義數(shù)據(jù)的安全性要求和完整性約束條件;④監(jiān)

督和控制數(shù)據(jù)庫的使用和運(yùn)行;⑤改進(jìn)和重組數(shù)據(jù)庫系統(tǒng)。25.系統(tǒng)分析員、數(shù)據(jù)庫設(shè)

計(jì)人員、應(yīng)用程序員的職責(zé)是什么?答系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,系

統(tǒng)分析員要和用戶及DBA相結(jié)合,確定系統(tǒng)的硬件、軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概

要設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)人員負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定、數(shù)據(jù)庫各級模式的設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)人

員必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。在很多情況下,數(shù)據(jù)庫設(shè)計(jì)人

員就由數(shù)據(jù)庫管理員擔(dān)任。應(yīng)用程序員負(fù)責(zé)設(shè)計(jì)和編寫應(yīng)用系統(tǒng)的程序模塊,并進(jìn)行調(diào)試和

安裝。

關(guān)系數(shù)據(jù)模型的優(yōu)缺點(diǎn)?

1)關(guān)系模型與格式化模型不同,他是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的。

2)關(guān)系模型的概念單一。

3)關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性,更好的安全保密性,

也簡化了程序員的工作。

25.數(shù)據(jù)庫管理員的職責(zé)(DBA):決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu);決定數(shù)據(jù)庫的存儲結(jié)構(gòu)

和存儲策略;定義數(shù)據(jù)的安全性要求和完整性約束條件;監(jiān)控?cái)?shù)據(jù)庫的使用和運(yùn)行;數(shù)據(jù)庫

的改進(jìn)和重組重構(gòu)。

系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)劃說明,和用戶相結(jié)合,確定系統(tǒng)的硬件配置。

數(shù)據(jù)庫設(shè)計(jì)人員負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定,數(shù)據(jù)庫各級模式的設(shè)計(jì)。

應(yīng)用程序員負(fù)責(zé)設(shè)計(jì)和編寫應(yīng)用系統(tǒng)的程序模塊,調(diào)試,安裝。

關(guān)系模型要求關(guān)系必須是規(guī)范化的。其中最基本的一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng)

1NF.

表約束的聲明與列的定義無關(guān),可以適用于表中一個(gè)以上的列。

當(dāng)一個(gè)約束中必須包含一個(gè)以上的列時(shí),必須使用表約束。

邏輯模型:包括層次模型,網(wǎng)狀模型,(前兩個(gè)非關(guān)系數(shù)據(jù)庫)關(guān)系模型,面向?qū)ο竽P停?/p>

對象關(guān)系模型。

層次模型特點(diǎn):任何一個(gè)給定的記錄值只有按其路徑查看時(shí),才能顯出他的全部意義,沒有

一個(gè)子女記錄值能夠脫離雙親記錄獨(dú)立存在。網(wǎng)狀數(shù)據(jù)模型特點(diǎn):允許一個(gè)以上的節(jié)點(diǎn)無雙

親;一個(gè)節(jié)點(diǎn)可以有多余一個(gè)的雙親。

數(shù)據(jù)模型組成要素:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操作,完整性約束。

數(shù)據(jù)庫系統(tǒng)的組成:硬件平臺及數(shù)據(jù)庫。軟件,人員。

數(shù)據(jù)管理技術(shù)經(jīng)歷了人工管理,文件系統(tǒng),數(shù)據(jù)庫系統(tǒng)3個(gè)階段。

概念模型的一種表示方法:E-R,ER提供了表示實(shí)體型,屬性和聯(lián)系的方法。(三要素)

數(shù)據(jù)庫,是存放數(shù)據(jù)的倉庫。是長期儲存在計(jì)算機(jī)內(nèi),有組織的,可共享的大量數(shù)據(jù)的集合。

第2章關(guān)系數(shù)據(jù)庫(關(guān)系代數(shù),理論)

RDBMS關(guān)系數(shù)據(jù)庫

2.試述關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類。

答:

關(guān)系語言是一種高度非過程化的語言。

關(guān)系數(shù)據(jù)語言可以分為三類:關(guān)系代數(shù)語言。關(guān)系演算語言:元組關(guān)系演算語言和域

關(guān)系演算語言。SQL:具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言。

這些關(guān)系數(shù)據(jù)語言的共同特點(diǎn)是,語言具有完備的表達(dá)能力(至少有5鐘表達(dá)運(yùn)算),

是非過程化的集合操作語言(只要寫命令,中間流程不用管),功能強(qiáng),能夠嵌入高級語言

中使用。

4.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?

什么情況下才可以為空?

答:實(shí)體完整性規(guī)則是指若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。

若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和

S不一定是不同的關(guān)系),則對于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬

性值均為空值);或者等于S中某個(gè)元組的主碼值。即屬性F本身不是主屬性,則可以取空

值,否則不能取空值。

6.試述等值連接與自然連接的區(qū)別和聯(lián)系。

與等值連接的區(qū)別:

1)被連接的兩關(guān)系有若干相同的屬性名

2)結(jié)果中去掉重復(fù)屬性

7.關(guān)系代數(shù)的基本運(yùn)算有哪些?如何用這些基本運(yùn)算來表示其他運(yùn)算?

答:

并、差、笛卡爾積、投影(列)和選擇(行)5種運(yùn)算為基本的運(yùn)算。其他3種運(yùn)算,即交、

連接和除(”至少“),均可以用這5種基本運(yùn)算來表達(dá)。

1)并:RS結(jié)果屬于R或?qū)儆赟

2)2)交:RS結(jié)果同時(shí)屬于R和S

3)差:R-S結(jié)果屬于R而不屬于S

外碼對被參照關(guān)系有何影響?

1)修改主碼時(shí),要考慮如下問題:

如該主碼值被外碼使用了不能修改自動更改外碼

2)刪除元組

如該元組的主碼值被外碼使用了不能刪除自動刪除

關(guān)系操作的特點(diǎn):是集合操作方式,即操作的對象和結(jié)果都是集合。

關(guān)系模型中有三類完整性約束:實(shí)體完整性,參照完整性,(前兩個(gè)必須滿足)用戶定義的

完整性。實(shí)體完整性是通過主碼(PRIMARYKEY)的定義來實(shí)現(xiàn)的。一旦某個(gè)屬性或?qū)傩?/p>

組被定義為主碼,該主碼的每個(gè)屬性就不能為空值,并且在表中不能出現(xiàn)主碼值完全相同的

兩個(gè)記錄。

定義方法:

CREATETABLEStudentinfo

StudentIDchar(8)PRIMARYKEY,

StudentNamevarchar(lO),

StudentSexbit

);

CREATETABLEStudentinfo

StudentIDchar(8),

StudentNamevarchar(10),

StudentSexbit,

PRIMARYKEY(StudentlD)

);

如果表的主碼只含有單個(gè)屬性,上面的兩種方法都可以使用。如果主碼由多個(gè)屬性組成,

只能使用第二種方法。

除了主碼,SQL提供了類似候選碼的說明方法,使用關(guān)鍵字UNIQUE定義(與候選碼不

同的是:定義為UNIQUE的屬性可以定義為空值,但只能有一個(gè)記錄該屬性的值為NULL),

說明該屬性(或?qū)傩越M)的值不能重復(fù)。

一個(gè)表中只能有一個(gè)主碼,但可以有多個(gè)"UNIQUE”定義。

參照完整性規(guī)則:或者取控制,或者等于另一個(gè)表的主碼值,不能為空。

當(dāng)用戶的操作違反了參照完整性規(guī)則時(shí),SQL提供了兩種可選方案供數(shù)據(jù)庫實(shí)現(xiàn)者使用:

RESTRICT(限制策略);CASCADE(級聯(lián)策略);定義方法:foreignkey(sno)referencesstu(sno)

用戶自定義:是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件。反應(yīng)某一具體應(yīng)用中所涉及的必須滿

足的要求。

主屬性:候選碼中出現(xiàn)的都是主屬性。復(fù)合主碼也是。主屬性不為空。

關(guān)系可以有三種類型:基本關(guān)系(基表),查詢表(查詢結(jié)果表)和視圖表(虛表)。

基本關(guān)系6條特質(zhì):列是同質(zhì)的,同一類型的;不同列可能出自同一個(gè)域(取值范圍),所

以屬性名要不同;列的順序和行的順序任意;任意兩個(gè)遠(yuǎn)足的候選碼不能相同;分量必須是

原子值(每個(gè)屬性不可再分)。

關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)穩(wěn)定,而關(guān)系是動態(tài)的,隨時(shí)間

變化的。

關(guān)系數(shù)據(jù)庫系統(tǒng)與非關(guān)系數(shù)據(jù)庫系統(tǒng)的區(qū)別是:關(guān)系系統(tǒng)只有”表“這一種數(shù)據(jù)結(jié)構(gòu),而

非關(guān)系數(shù)據(jù)庫系統(tǒng)還有其他數(shù)據(jù)結(jié)構(gòu),以及對這些數(shù)據(jù)結(jié)構(gòu)的操作。

專門的關(guān)系運(yùn)算有:選擇,投影,連接,除運(yùn)算。

傳統(tǒng)的集合運(yùn)算是,并,交,差,笛卡爾積。

第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL(寫語句)

Createdatabase學(xué)生on加條件;//on可以省略

Dropdatabase學(xué)生;

Createtablestudent

(snochar(9)primarykey,

Snamechar(20)notnullunique,

Ssexchar(2)check(ssexin(,man\,female,)),

Sagesmallintnutnull,

Sdeptchar(20)foreignkeyreferencescourse(sdept),

Check(sage>16),

Primarykey(sno)〃表級

ConstraintPK_S(主碼名,一定要用constraint)primarykey(sno),

Foreignkey(sno)referencesstudent(cname),〃注:參照表和被參照表可以是同一個(gè)表

Foreignkey(sjdjd,saa)references...);〃多個(gè)選擇,最后加分號

Altertablestudentaddaddresschar(4);〃列,數(shù)據(jù)類型,約束

Altertablestudentaltercolumnaddresschar(5);〃歹!J名,數(shù)據(jù)類型

Altertablestudentdropcolumnaddress;//約束

Altertablestudentaddprimarykey(sno)"/添力口屬性

Droptablestudent;

CreateuniqueindexindexstudentOnstudent(sno);

CreateuniqueindexindexstudentOnstudent(snoASC,snameDESC);

Dropindexstudentindex

Selectdistinctsno,sname//distinct,top,grade-l,Lower(sname)/jt^:

Fromstudent/viewl〃視圖或表

Where..//!=,<>,not>,NOTIN,NOTLIKE,ISNOTNULL,ANY,ALL,MAX,MIN,

EXISTS,between,in,notlike(_%),isnull

Groupby..Having..//groupby后面出現(xiàn)的,一定要輸出

Orderby..ASC/DESC;

Fromstudentjoinsconstudent.sno=sc.sno;

和自身連接時(shí),把student看做,first,second,first.sno,secondsno;

連接條件:=,>,<,>=,<=,!=,<>

Selectsname

Fromstudent

Wherenotexists

(selecr*fromscwheresno=student.snoANDcno=,l,);〃必須先和student連

接,才能判斷student里面是否有符合條件的eno.

Union或

Intersect范圍小

Except除了,減去,差

以上必須列數(shù)相同,對應(yīng)的數(shù)據(jù)類型相同

Insertintostudent(sno9sname9ssex)

Vahies('1212','kjh'36');

Updatestudent〃修改數(shù)據(jù)

Setsage=sage+l

Wheresno=,lll,;

DeleteFromstudent〃刪除數(shù)據(jù)

Wheresno=,lll,;

DeleteFromstudent;〃刪除全部

Createviewvl可以取列名,v2(sno,sname,grade)

AS

Selectsno,sname,sageFromstudentWheresdept=,cs,;

如果加withcheckoption意味著:當(dāng)對vl進(jìn)行數(shù)據(jù)操作時(shí)(update,insert),更改的行要滿

足謂語條件,就是select...

Dropviewvl

SelectsnoFromvlWheregrade>60〃視圖可以當(dāng)作表來用

Updatevl

Setsno='2222‘

Wheresname二'手術(shù)';

Insertintovl

Values(4Yl\,r)

DeleteFromvlWhere..〃刪除視圖里面信息

1.試述sQL語言的特點(diǎn)。

答:

(1)綜合統(tǒng)一。sQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL

的功能于一體。

(2)高度非過程化。用sQL語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無需指明“怎么做”,

因此無需了解存取路徑,存取路徑的選擇以及sQL語句的操作過程由系統(tǒng)自動完成。

(3)面向集合的操作方式。sQL語言采用集合操作方式,不僅操作對象、查找結(jié)果可以是

元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。

(4)以同一種語法結(jié)構(gòu)提供兩種使用方式。sQL語言既是獨(dú)立語言,又是嵌入式語言。作

為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式;作為嵌入式語言,它能夠嵌入到高

級語言程序中,供程序員設(shè)計(jì)程序時(shí)使用。

(5)語言簡捷,易學(xué)易用。

2.試述sQL的定義功能。

sQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。SQL語言使用CREATETABLE

語句建立基本表,ALTERTABLE語句修改基本表定義,DROPTABLE語句刪除基本表;

使用CREATEINDEX語句建立索引,DROPINDEX語句刪除索引;使用CREATEVIEW

語句建立視圖,DROPVIEW語句刪除視圖。

SQL功能?

答:

數(shù)據(jù)查詢select

DDL數(shù)據(jù)定義createdropalter

DML數(shù)據(jù)操縱insertupdatedelete

DCL數(shù)據(jù)控制grantrevoke

6.什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?

基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就對應(yīng)一個(gè)表。視圖是從一個(gè)或幾個(gè)基本

表導(dǎo)出的表。視圖本身不獨(dú)立存儲在數(shù)據(jù)庫中,是一個(gè)虛表。即數(shù)據(jù)庫中只存放視圖的定義

而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。視圖在概念上與基本表

等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。

7.試述視圖的優(yōu)點(diǎn)即作用。

(1)視圖能夠簡化用戶的操作;(2)視圖使用戶能以多種角度看待同一數(shù)據(jù);(3)視

圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性(基本表數(shù)據(jù)發(fā)生變化,視圖數(shù)據(jù)隨之改變);

(4)視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。

(5)適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢

8.所有的視圖是否都可以更新?為什么?

答:

不是。視圖是不實(shí)際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更新。

因?yàn)橛行┮晥D的更新不能惟一有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所有的視

圖都是可更新的.

9.哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。

答:基本表的行列子集視圖一般是可更新的。若視圖的屬性來自集函數(shù)、表達(dá)式,則該視圖

肯定是不可以更新的。

兩個(gè)以上基本表,就是用過連接的基本表不能更新;

字段為聚集函數(shù),不能更新;

字段為常數(shù)或表達(dá)式,不能insert,update,可以delete

Groupby不能更新

有distinct不能更新

嵌套查詢中,內(nèi)外表同一個(gè)視圖,不能更新

從不允許更新的視圖中衍生的視圖也不能更新

10.試述某個(gè)你熟悉的實(shí)際系統(tǒng)中對視圖更新的規(guī)定。

答VFP

II.

視圖規(guī)定:若視圖是由兩個(gè)以上的基本表到處的,則此視圖不能更改。

若視圖字段來自表達(dá)式或常數(shù),不能對視圖進(jìn)行insert,update,允許delete。

視圖來自聚集函數(shù),groupby.,有distinct短語,有嵌套查詢,都不能更改。

視圖定義不能更新,就不能更新。

12.視圖的作用:

視圖能夠簡化用戶的操作。

視圖使用戶能以多種角度看待同一數(shù)據(jù)。

視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性。

視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。

適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢。

SQL(structuredquerylanguage)結(jié)構(gòu)化查詢語言可以分為:數(shù)據(jù)定義,數(shù)據(jù)查詢,數(shù)據(jù)更

新,詩句控制四大部分。

用戶自定義一般是:notnull,unique(可以為空一次),default(直接加默認(rèn)值),check。

數(shù)據(jù)類型:

decimalP|Q]共P位Q位小數(shù)

Char(N)長度為N的定長字符串VARCHAR(N)變長字符串。

INT長整數(shù)(INTEGER)-2A31~2A31-1SMALLINT-2A15~2A15-1TINYINT0-255

DATETIME日期時(shí)間

ALTERTABLE是修改表結(jié)構(gòu),不是數(shù)據(jù)。

建立索引是加快查詢速度的有效手段。Createindex..on..

聚簇索引:索引項(xiàng)的順序與表中記錄的物理順序一致的索引組織。

通配符:在模糊查詢中,“\”為換碼字符,在換碼字符后的一個(gè)字符是通配符(%一)為普

通字符。

Orderbysno,cno.

第4章數(shù)據(jù)庫安全性(理論+授權(quán)語句)

一)grant/revoke/createview授權(quán)/回收/對視圖的權(quán)限操作

Grantselect,update(sno)〃把student表的查詢權(quán)限和修改sno的權(quán)限給User4

Ontablestudent

ToUser4

(Withgrantoption);//添加這句話,user4就可以把得到的權(quán)限再給別人

Grantallprivileges

Ontablestudent,course

ToUserl,User2;〃把student,course的所有權(quán)限給ul,u2

Revokeupdate(sno)

Ontablestudent

Fromulcascade;〃授權(quán)時(shí)有withgrantoption,收回時(shí)加cascade

Createviewv1(sno,eno,grade)

As

Selectsno,eno,gradeFromscwheregrade>60;利用視圖實(shí)現(xiàn)安全性的方法P145

Grantselect,update(grade)

Onvl

Toul;

sp_addloginiloginame,/passwd'建立新用戶,使用戶得以進(jìn)入SQL

sp_grantDbAccessmary授予訪問數(shù)據(jù)庫的權(quán)利

sp_droplogin'用戶名'從Sql-server中刪除一個(gè)用戶

sp_revokedbaccess'用戶名'從數(shù)據(jù)庫中刪除一個(gè)用戶,必須指定數(shù)據(jù)庫

Update對列操作

Insert對行操作,必須有主碼

理論

1.什么是數(shù)據(jù)庫的安全性?

答:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。

2.數(shù)據(jù)庫安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?

答:安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問題。只是在數(shù)據(jù)庫系

統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。

系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一。

數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相

互支持的,

計(jì)算機(jī)系統(tǒng)三類安全性:

答:技術(shù)安全類,管理安全類,政策法律類。(本書討論)技術(shù)安全:指計(jì)算機(jī)系統(tǒng)中采

用具有一定安全性的硬件,軟件來實(shí)現(xiàn)對計(jì)算機(jī)系統(tǒng)所存數(shù)據(jù)的安全保護(hù),當(dāng)計(jì)算機(jī)系統(tǒng)收

到無意或惡意的攻擊時(shí)能仍保證系統(tǒng)正常運(yùn)行,并且數(shù)據(jù)不丟失,泄露。管理安全:由于管

理不善導(dǎo)致計(jì)算機(jī)設(shè)備和數(shù)據(jù)介質(zhì)的物理破壞等。政策法律:政府部門建立的有關(guān)計(jì)算機(jī)犯

罪等的法律法規(guī)。

5.試述實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。5種

答:

(1)(普遍使用)用戶標(biāo)識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或

身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)。

(2)(授權(quán))存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)

據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如CZ級中的自主存取控制(DAC),B1級中

的強(qiáng)制存取控制(MAC)。

(3)視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶

隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護(hù)。

(4)審計(jì):建立審計(jì)日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計(jì)日志中,DBA

可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、

時(shí)間和內(nèi)容等。

(5)數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲

知數(shù)據(jù)的內(nèi)容。

最重要的是存取控制技術(shù),視圖,審計(jì)。自主存取控制是通過grant,revoke實(shí)現(xiàn)的;對數(shù)據(jù)

庫模式的授權(quán)是創(chuàng)建用戶時(shí)通過createuser實(shí)現(xiàn)。

6.什么是數(shù)據(jù)庫中的自主存取控制方法和強(qiáng)制存取控制方法?

答:

自主存取控制方法(DAC):定義各個(gè)用戶對不同數(shù)據(jù)對象的存取權(quán)限。當(dāng)用戶對數(shù)據(jù)庫訪

問時(shí)首先檢查用戶的存取權(quán)限。防止不合法用戶對數(shù)據(jù)庫的存取。Grant,revoke

強(qiáng)制存取控制方法(MAC):(了解)每一個(gè)數(shù)據(jù)對象被(強(qiáng)制地)標(biāo)以一定的密級,每一

個(gè)用戶也被(強(qiáng)制地)授予某一個(gè)級別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級別的用戶

才能存取某一個(gè)密級的數(shù)據(jù)對象。

7.SQL語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?

答:SQL中的自主存取控制是通過GRANT語句和REVOKE語句來實(shí)現(xiàn)的。

10.為什么強(qiáng)制存取控制提供了更高級別的數(shù)據(jù)庫安全性?

答:

強(qiáng)制存取控制(MAC)是對數(shù)據(jù)本身進(jìn)行密級標(biāo)記,無論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)

是一個(gè)不可分的整體,只有符合密級標(biāo)記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級別

的安全性。

強(qiáng)制存儲控制規(guī)則中,敏感度標(biāo)記為:絕密,機(jī)密,可信,公開。遵循規(guī)則為:a主體

許可級別大于或等于客體密級時(shí),該主體能讀取相應(yīng)客體;b許可證級別等于客體級別時(shí),

才能寫相應(yīng)客體,必須相等。

(主體:實(shí)際用戶??腕w:被動實(shí)體,即文件,基表,索引,視圖等。)

13.什么是數(shù)據(jù)庫的審計(jì)功能,為什么要提供審計(jì)功能?

答:審計(jì)功能是指DBMS的審計(jì)模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時(shí)把所有操作自動記錄

到系統(tǒng)的審計(jì)日志中。

因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用

數(shù)據(jù)庫的審計(jì)功能,DBA可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事

件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。

加密的方法主要有兩種:替換方法;使用密鑰將明文轉(zhuǎn)換成密文的一個(gè)字符。

置換方法:將明文字符按照不同順序重新排列。

兩種方法一起用,安全程度很高,單獨(dú)用安全不高。

安全標(biāo)準(zhǔn)中,最有影響的是TESEC和CC。

數(shù)據(jù)庫角色是一組權(quán)限的集合,用較色可以簡化授權(quán)過程。Createrole

授予insert權(quán)限時(shí),注意,是插入行,并且,一定要包含主碼,否則用戶會被拒絕。

第5章數(shù)據(jù)庫完整性

修改表中的完整性限制:

Altertablestudent

Dropconstraintsno刪除sno的限制

Addconstraintenocheck(...)

1什么是數(shù)據(jù)庫的完整性?

答:

數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。

2.數(shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和聯(lián)系?

答:

數(shù)據(jù)的完整性和安全性是兩個(gè)不同的概念,但是有一定的聯(lián)系。前者是為了防止數(shù)據(jù)庫中存

在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出,即所謂垃圾進(jìn)垃圾出(Garba:eIn

Garba:eout)所造成的無效操作和錯誤結(jié)果。后者是保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的

存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是

不合語義的數(shù)據(jù)。

3.什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?

完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該滿足的語義約束條件。一般可以分為六類:靜態(tài)列

級約束、靜態(tài)元組約束、靜態(tài)關(guān)系約束、動態(tài)列級約束、動態(tài)元組約束、動態(tài)關(guān)系約束。靜

態(tài)列級約束是對一個(gè)列的取值域的說明,包括以下幾個(gè)方面:(1)對數(shù)據(jù)類型的約束,包

括數(shù)據(jù)的類型、長度、單位、精度等;(2)對數(shù)據(jù)格式的約束;(3)對取值范圍或取

值集合的約束;(4)對空值的約束;(5)其他約束。靜態(tài)元組約束就是規(guī)定組成一個(gè)

元組的各個(gè)列之間的約束關(guān)系,靜態(tài)元組約束只局限在單個(gè)元組上。靜態(tài)關(guān)系約束是在一個(gè)

關(guān)系的各個(gè)元組之間或者若干關(guān)系之間常常存在各種聯(lián)系或約束。

常見的靜態(tài)關(guān)系約束有:(1)實(shí)體完整性約束;(2)參照完整性約束;(3)函數(shù)依賴

約束。

動態(tài)列級約束是修改列定義或列值時(shí)應(yīng)滿足的約束條件,包括下面兩方面:(1)修改列定

義時(shí)的約束;(2)修改列值時(shí)的約束。動態(tài)元組約束是指修改某個(gè)元組的值時(shí)需要參照

其舊值,并且新舊值之間需要滿足某種約束條件。動態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上

的限制條件,例如事務(wù)一致性、原子性等約束條件。

4.DBMS的完整性控制機(jī)制應(yīng)具有哪些功能?

答:

DBMS的完整性控制機(jī)制應(yīng)具有三個(gè)方面的功能:(1)定義功能,即提供定義完整性約

束條件的機(jī)制;(2)檢查功能,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件;

(3)違約處理:如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動

作來保證數(shù)據(jù)的完整性。

5.RDBMS在實(shí)現(xiàn)參照完整性時(shí)需要考慮哪些方面?

RDBMs在實(shí)現(xiàn)參照完整性時(shí)需要考慮以下幾個(gè)方面:(1)外碼是否可以接受空值。(2)

冊1除被參照關(guān)系的元組時(shí)的考慮,這時(shí)系統(tǒng)可能采取的作法有三種:1)級聯(lián)刪除

(CASCADES);2)受限刪除(RESTRICTED);3)置空值刪除(NULLIFIES)。(3)

在參照關(guān)系中插入元組時(shí)的問題,這時(shí)系統(tǒng)可能采取的作法有:1)受限插入;2)遞歸

插入。(4)修改關(guān)系中主碼的問題。一般是不能用UPDATE語句修改關(guān)系主碼的。如果

需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中。如果允

許修改主碼,首先要保證主碼的惟一性和非空,否則拒絕修改。然后要區(qū)分是參照關(guān)系還是

被參照關(guān)系。

7.關(guān)系系統(tǒng)中,當(dāng)操作違反實(shí)體完整性、參照完整性和用戶定義的完整性約束條件時(shí),

一般是如何分別進(jìn)行處理的?

處.

i—I?

對于違反實(shí)體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進(jìn)行處理。而對

于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時(shí)要根據(jù)應(yīng)用語義執(zhí)行一些附加的

操作,以保證數(shù)據(jù)庫的正確性。

實(shí)體完整性就是定義主碼,并且主碼唯一,不為空,否則拒絕插入或修改。

數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。

數(shù)據(jù)庫完整性的定義一般由DDL語句來實(shí)現(xiàn)。

第6章關(guān)系數(shù)據(jù)庫理論

1.理解并給出下列范式的定義:

范式:符合某一種級別的關(guān)系模式的集合。

1NF:若關(guān)系模式R的每一個(gè)分量是不可再分的數(shù)據(jù)項(xiàng),則關(guān)系模式R屬于第一范式(1NF)。

2NF:若關(guān)系模式RG1NF,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則關(guān)系模式RC2NF。

(即1NF消除了非主屬性對碼的部分函數(shù)依賴則成為2NF)。

3NF:主屬性一非主屬性X—非主屬性

BCNF滿足下列條件:

所有非主屬性對每一個(gè)碼都是完全函數(shù)依賴(碼一>非主屬性,完全函數(shù)依賴)。

沒有任何屬性完全函數(shù)依賴于非碼屬性(左邊只能是碼)。

所有主屬性對每一個(gè)不包含它的碼,也是完全函數(shù)依賴(碼一>主屬性,完全函數(shù)

依賴。前提不包含在碼里)

判斷范式:

碼為單個(gè)屬性,一定屬于2NF

沒有部分函數(shù)依賴,屬于2NF

沒有傳遞函數(shù)依賴,屬于3NF

關(guān)系的所有函數(shù)依賴XY,X都為碼,屬于BCNF

什么是規(guī)范化,為何要規(guī)范化,如何規(guī)范化?

一個(gè)低一級范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級范式的關(guān)系模式的集

合,這個(gè)過程就叫規(guī)范化。模式分解是方法。因?yàn)橐粋€(gè)不好的關(guān)系存在數(shù)據(jù)冗余,刪除異常,

插入異常,更新異常等問題,為了改造這個(gè)不好的關(guān)系,才引入規(guī)范化。

什么叫函數(shù)依賴,部分函數(shù)依賴、完全函數(shù)依賴?

A.設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是屬性集U的子集。若對于R(U)的任意一

個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,

則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作X9Y。(即只要X上的屬性值相等,Y上的值

一定相等。

BX)YX,子集!玲丫則稱Y對X完全函數(shù)依賴。

若XTY,X子集一>Y則稱Y對X部分函數(shù)依賴。注:主屬性一〉非主屬性之間,

如果主屬性一主屬性,則不算是部分函數(shù)依賴。

4.1NF缺點(diǎn)?

數(shù)據(jù)冗余大

修改麻煩

插入異常

刪除異常

12.下面的結(jié)論哪些是正確的?哪些是錯誤的?對于錯誤的請給一個(gè)反例說明之。

(1)任何一個(gè)二目關(guān)系是屬于3NF。

答:正確。因?yàn)殛P(guān)系模式中只有兩個(gè)屬性,所以無傳遞。

(2)任何一個(gè)二目關(guān)系是屬于BCNF.

答:正確。按BCNF的定義,若X玲Y,且Y不是X的子集時(shí),每個(gè)決定因素都包含碼,

對于二目關(guān)系決定因素必然包含碼。詳細(xì)證明如下:(任何二元關(guān)系模式必定是

BCNF)。

證明:設(shè)R為一個(gè)二目關(guān)系R(A1,A2),則屬性Al和A2之間可能存在以下幾種依

賴關(guān)系:

A、A19A2,但A29A1,則關(guān)系R的碼為A1,決定因素都包含碼,所以,R是BCNF。

B、A1-?A2,A2玲Al,則關(guān)系R的碼為A2,所以決定因素都包含碼,R是BCNF。

包含碼。R是BCNF。C、R的碼為(Al,A2)(即AlfA2,A2玲A1),決定因素都

(3)任何一個(gè)二目關(guān)系是屬于4NF.

答:正確。因?yàn)橹挥袃蓚€(gè)屬性,所以無非平凡的多值依賴。

補(bǔ)充:

不滿足第一范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。

不好的關(guān)系模式存在的問題:數(shù)據(jù)冗余太大,更新異常,插入異常,刪除異常。

X—Y:X的一個(gè)值對應(yīng)Y的唯一具體值。

函數(shù)依賴方法:1)找碼

2)考察每一個(gè)屬性能否決定其他屬性

非平凡函數(shù)依賴:X-Y兩者唯一相對

平凡函數(shù)依賴:X—YY包含在X中間

范式:衡量一個(gè)關(guān)系好壞的登記,等級越低問題越多

一個(gè)關(guān)系模式不屬于2NF存在問題:插入異常,刪除異常,修改復(fù)雜。

第7章數(shù)據(jù)庫設(shè)計(jì)

1.試述數(shù)據(jù)庫設(shè)計(jì)步驟過程。

答:數(shù)據(jù)庫設(shè)計(jì)過程的六個(gè)階段:(1)需求分析;(2)概念結(jié)構(gòu)設(shè)計(jì)(E-R);(3)

邏輯結(jié)構(gòu)設(shè)計(jì)(關(guān)系模型);(4)數(shù)據(jù)庫物理設(shè)計(jì)(存儲,內(nèi)模式);(5)數(shù)據(jù)庫實(shí)施;

(6)數(shù)據(jù)庫運(yùn)行和維護(hù)。

需求分析和概念設(shè)計(jì)可以獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng)進(jìn)行。

2.試述數(shù)據(jù)庫設(shè)計(jì)過程各個(gè)階段上的設(shè)計(jì)描述。

答:各階段的設(shè)計(jì)要點(diǎn)如下:(1)需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。

(2)概念結(jié)構(gòu)設(shè)計(jì):通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS

的概念模型。(3)邏輯結(jié)構(gòu)設(shè)計(jì):將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并

對其進(jìn)行優(yōu)化。(4)數(shù)據(jù)庫物理設(shè)計(jì):為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理

結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。(5)數(shù)據(jù)庫實(shí)施:設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)

語言、工具及宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,

組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。(6)數(shù)據(jù)庫運(yùn)行和維護(hù):在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中對其

進(jìn)行評價(jià)、調(diào)整與修改。

3.試述數(shù)據(jù)庫設(shè)計(jì)過程中結(jié)構(gòu)設(shè)計(jì)部分形成的數(shù)據(jù)庫模式。

答:數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的不同階段形成數(shù)據(jù)庫的各級模式,即:(1)在概念設(shè)計(jì)階段形成獨(dú)

立于機(jī)器特點(diǎn),獨(dú)立于各個(gè)DBMS產(chǎn)品的概念模式,在本篇中就是E—R圖;(2)

在邏輯設(shè)計(jì)階段將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形

成數(shù)據(jù)庫邏輯模式,然后在基本表的基礎(chǔ)上再建立必要的翅圖(Vi娜),形成數(shù)據(jù)的外模式;

(3)在物理設(shè)計(jì)階段,根據(jù)DBMS特點(diǎn)和處理的需要,進(jìn)行物理存儲安排,建立索引,

形成數(shù)據(jù)庫內(nèi)模式。

4.試述數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)。

答:數(shù)據(jù)庫設(shè)計(jì)既是一項(xiàng)涉及多學(xué)科的綜合性技術(shù)又是一項(xiàng)龐大的工程項(xiàng)目。其主要特點(diǎn)有:

(1)數(shù)據(jù)庫建設(shè)是硬件、軟件和干件(技術(shù)與管理的界面)的結(jié)合。(2)從軟件設(shè)計(jì)的

技術(shù)角度看,數(shù)據(jù)庫設(shè)計(jì)應(yīng)該和應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合,也就是說,整個(gè)設(shè)計(jì)過程中要把結(jié)構(gòu)

(數(shù)據(jù))設(shè)計(jì)和行為(處理)設(shè)計(jì)密切結(jié)合起來。

5.需求分析的方法是什么?需求分析得到的文檔有哪些?

答:SA方法(結(jié)構(gòu)化分析),是從最上層的關(guān)系組織機(jī)構(gòu)入手,自頂向下,逐層分解的方式

分析系統(tǒng)。(宏觀一,微觀)

需求說明書:數(shù)據(jù)流圖,數(shù)據(jù)詞典。

數(shù)據(jù)流四種基本成分:數(shù)據(jù)流:箭頭;加工:圓圈;文件:直線段;原點(diǎn)與終點(diǎn):方

框(一般可以不畫)。

6.數(shù)據(jù)字典的內(nèi)容和作用是什么?

答:數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內(nèi)容通常包括:(1)數(shù)據(jù)項(xiàng)(列

名,屬性);(2)數(shù)據(jù)結(jié)構(gòu)(關(guān)系);(3)數(shù)據(jù)流;(4)數(shù)據(jù)存儲;(5)處理過程

五個(gè)部分。其中數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位,若干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)

字典通過對數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流和數(shù)據(jù)存儲的邏輯內(nèi)容。數(shù)據(jù)字典的作

用:數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進(jìn)行概念設(shè)計(jì)的

基礎(chǔ),并在數(shù)據(jù)庫設(shè)計(jì)過程中不斷修改、充實(shí)、完蓋。

數(shù)據(jù)詞典與數(shù)據(jù)流圖的區(qū)別?

數(shù)據(jù)詞典+數(shù)據(jù)流圖-)系統(tǒng)說明書

數(shù)據(jù)詞典產(chǎn)生于數(shù)據(jù)流圖

7.什么是數(shù)據(jù)庫的概念結(jié)構(gòu)?試述其特點(diǎn)和設(shè)計(jì)策略。

答:概念結(jié)構(gòu)是信息世界的結(jié)構(gòu),即概念模型,其主要特點(diǎn)是:(1)能真實(shí)、充分地反映

現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求,是對現(xiàn)實(shí)世界的一

個(gè)真實(shí)模型;(2)易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見,用戶的積

極參與是數(shù)據(jù)庫設(shè)計(jì)成功的關(guān)鍵;(3)易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易

對概念模型修改和擴(kuò)充;(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)

的設(shè)計(jì)四類方法:1)自頂向下,2)自底向上,(常用)3)逐步擴(kuò)張,4)混合策略,。

概念結(jié)構(gòu)的主要特點(diǎn)和功能?

答:能真實(shí)充分地反應(yīng)顯示世界。

易于理解,與用戶交換意見的工具。

易于更改,當(dāng)應(yīng)用環(huán)境發(fā)生改變時(shí),能對它修改或擴(kuò)充。

易于向關(guān)系,網(wǎng)狀,層次等各種數(shù)據(jù)模型轉(zhuǎn)換。

10.為什么要視圖集成?視圖集成的方法是什么?

答:在對數(shù)據(jù)庫系統(tǒng)進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)時(shí)一般采用自底向上的設(shè)計(jì)方法,把繁雜的大系統(tǒng)分

解子系統(tǒng)。首先設(shè)計(jì)各個(gè)子系統(tǒng)的局部視圖,然后通過視圖集成的方式將各子系統(tǒng)有機(jī)地融

合起來,綜合成一個(gè)系統(tǒng)的總視圖。

11.什么是數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)?

答:數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選

用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。

邏輯結(jié)構(gòu)設(shè)計(jì)三步驟:

概念結(jié)構(gòu)(E-R圖)轉(zhuǎn)化為:網(wǎng)狀、層次、關(guān)系模型

再向特定的DBMS(如Sql-server,Foxpro)轉(zhuǎn)化優(yōu)化(范式)

第10章數(shù)據(jù)庫恢復(fù)技術(shù)

Begintransaction

()

If{}

Commit

Else

Rollback

commit:提交,確認(rèn)更新操作(存儲)

rollback:回滾,放棄從Begin開始的所有SQL語句

Backupdatabaseschooltodisk'd:\temp\xx.bak'海量

Withdifferent表示增量,而增量前必須有海量

Restoredatabaseschoolfromdisk='...'

Withfile=n增量,恢復(fù)到n次備份

BackupLOGtodisk="備份日志文件

數(shù)據(jù)庫恢復(fù):把數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。

數(shù)據(jù)恢復(fù)原理:數(shù)據(jù)冗余

1.試述事務(wù)的概念及事務(wù)的4個(gè)特性。

答:

事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的

工作單位。

事務(wù)具有4個(gè)特性:原子性(Atomicity)、一致性(consistency)、隔離性(Isolation)、

持續(xù)性(Durability)。這4個(gè)特性也簡稱為ACID特性。

原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。

一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。

隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他

并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。

持續(xù)性:持續(xù)性也稱永久性(Perfnanence),指一個(gè)事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改

變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。

事務(wù)可能遭到破壞的因素有:多事務(wù)并行,交叉執(zhí)行;強(qiáng)行停止。

2.為什么事務(wù)非正常結(jié)束時(shí)會影響數(shù)據(jù)庫數(shù)據(jù)的正確性,請列舉一例說明之。

答:

事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)

運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一

部分已寫入物理數(shù)據(jù)庫,這時(shí)數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。

3.恢復(fù)技術(shù):數(shù)據(jù)轉(zhuǎn)儲,登記日志文件。

4.數(shù)據(jù)庫運(yùn)行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破

壞數(shù)據(jù)庫數(shù)據(jù)?

答:

數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:

(1)事務(wù)內(nèi)部的故障;事物未正常結(jié)束,沒到達(dá)commit,rollback(UNDO)

Eg:只把甲帳戶減少錢,乙的帳戶卻沒增加錢。

(2)系統(tǒng)故障;事務(wù)結(jié)束了,已commit,rollback;主要是數(shù)據(jù)緩存造成;這類故障影響正

在運(yùn)行的所有事務(wù),但不破壞數(shù)據(jù)庫。UNDOoREDO

Eg:CPU等硬件錯誤的故障,操作系統(tǒng)故障,DBMS代碼錯誤,系統(tǒng)斷電。

(3)介質(zhì)故障;磁盤故障,徹底壞了;

Eg:磁盤損壞,磁頭碰撞,瞬時(shí)強(qiáng)磁場干擾。

(4)計(jì)算機(jī)病毒。

事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行,不破壞數(shù)據(jù);介質(zhì)故障和計(jì)算機(jī)病毒

破壞數(shù)據(jù)庫數(shù)據(jù)。

5.數(shù)據(jù)庫恢復(fù)的基本技術(shù)有哪些?

答:

數(shù)據(jù)轉(zhuǎn)儲和登錄II志文件是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。

當(dāng)系統(tǒng)運(yùn)行過程中發(fā)生故障,利用轉(zhuǎn)儲的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復(fù)到

故障前的某個(gè)一致性狀態(tài)。

6.數(shù)據(jù)庫轉(zhuǎn)儲的意義是什么?試比較各種數(shù)據(jù)轉(zhuǎn)儲方法。

答:

數(shù)據(jù)轉(zhuǎn)儲是數(shù)據(jù)庫恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲即DBA定期地將數(shù)據(jù)庫復(fù)制到磁

帶或另一個(gè)磁盤上保存起來的過程。當(dāng)數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù)

庫恢復(fù)到轉(zhuǎn)儲時(shí)的狀態(tài)。

靜態(tài)轉(zhuǎn)儲:在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲操作,即等待正運(yùn)行的用戶事務(wù)結(jié)束才能進(jìn)行。

顯然,這會降低數(shù)據(jù)庫的可用性。

動態(tài)轉(zhuǎn)儲(SQL采用):指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進(jìn)行存取或修改。它不用等待正在運(yùn)行的

用戶事務(wù)結(jié)束,也不會影響新事務(wù)的運(yùn)行。但是,轉(zhuǎn)儲結(jié)束時(shí)后援副本上的數(shù)據(jù)并不能保證

正確有效。因?yàn)檗D(zhuǎn)儲期間運(yùn)行的事務(wù)可能修改了某些數(shù)據(jù),使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)

庫的一致版本。為此,必須把轉(zhuǎn)儲期間各事務(wù)對數(shù)據(jù)庫的修改活動登記下來,建立日志文件

(109file)?

海量轉(zhuǎn)儲是指每次轉(zhuǎn)儲全部數(shù)據(jù)庫。

增量轉(zhuǎn)儲則指每次只轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù)。

7.什么是日志文件?為什么要設(shè)立日志文件?

答:

(1)日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。

(2)設(shè)立日志文件的目的作用是:進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù)(事務(wù)未完成);

在動態(tài)轉(zhuǎn)儲中,協(xié)助后備副本進(jìn)行恢復(fù)數(shù)據(jù)庫。

內(nèi)容有:事務(wù)標(biāo)識,操作類型,操作對象,舊值,新值;

8.登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫?(“先寫日志文件”原則)

答:

把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個(gè)修改的日志記錄寫到日志文件中是兩個(gè)不同的

操作。有可能在這兩個(gè)操作之間發(fā)生故障,即這兩個(gè)寫操作只完成了一個(gè)。

如果先寫了數(shù)據(jù)庫修改,而在運(yùn)行記錄中沒有登記這個(gè)修改,則以后就無法恢復(fù)這個(gè)修改了。

如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時(shí)只不過是多執(zhí)行一次UNDO操作,并不會影

響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫

數(shù)據(jù)庫的修改。

9.針對不同的故障,試給出恢復(fù)的策略和方法。(即如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障

的恢復(fù)?介質(zhì)故障恢復(fù)?)

答:

事務(wù)故障的恢復(fù)是由DBMSDBMs執(zhí)行恢復(fù)步驟是:

自動完成的,對用戶是透明的。事務(wù)未完成,undo原值返回

(1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作;

(2)對該事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫;

(3)繼續(xù)反向掃描日志文件,做同樣處理;

(4)如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,該事務(wù)故障的恢復(fù)就完成了。

系統(tǒng)故障的恢復(fù):

自動完成,找標(biāo)志commit的事務(wù)redo,rollback的事務(wù)undo舊值。

系統(tǒng)故障可能會造成數(shù)據(jù)庫處于不一致狀態(tài):一是未完成事務(wù)對數(shù)據(jù)庫的更新可能已寫入數(shù)

據(jù)庫;二是已提交事務(wù)對數(shù)據(jù)庫的更新可能還留在緩沖區(qū),沒來得及寫入數(shù)據(jù)庫。因此恢復(fù)

操作就是要撤銷(UNDO)故障發(fā)生時(shí)未完成的事務(wù),重做(REDO)已完成的事務(wù)。

系統(tǒng)的恢復(fù)步驟是:

(1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù)隊(duì)列(REDO隊(duì)列)和未完成

的事務(wù)隊(duì)列(uNDO隊(duì)列)。

(2)對撤銷隊(duì)列中的各個(gè)事務(wù)進(jìn)行UNDO處理。

進(jìn)行UNDO處理的方法是,反向掃描日志文件,對每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操

作,即將日志記錄中“更新前的值”BeforeImage)寫入數(shù)據(jù)庫。(3)對重做隊(duì)列中的各

個(gè)事務(wù)進(jìn)行REDO處理。

進(jìn)行REDO處理的方法是:正向掃描日志文件,對每個(gè)REDO

溫馨提示

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

評論

0/150

提交評論