




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024江蘇省公務(wù)員考試【申論 A卷、C卷】+2023年【申論B卷】共 3套 真題及答案
- 2025年石頭湯考試試題及答案
- 5年級下冊英語書單詞
- 5年級上冊題目
- 登記注冊 標(biāo)準(zhǔn)化建設(shè)思路
- 地下施工工藝流程
- 不同材料短時(shí)記憶保持量的實(shí)驗(yàn)報(bào)告 - 副本 - 副本
- 2025年陜西青年職業(yè)學(xué)院單招職業(yè)技能考試題庫審定版
- 2025年深圳信息職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫完整版
- 2025年關(guān)于紀(jì)念抗日戰(zhàn)爭勝利72周年的調(diào)查報(bào)告
- 移動政企部年終總結(jié)
- 施工合同協(xié)議書樣本
- 免疫治療超進(jìn)展
- 醫(yī)學(xué)綜合題庫(含答案)
- 人教版化學(xué)九年級下冊全冊綜合考試試題(九年級下學(xué)期期中考試化學(xué)試卷)
- 中考英語高頻語法小專題考點(diǎn)講練系列十五+spend+take+pay+cost+花費(fèi)系列
- 工會一函兩書模板
- 無人機(jī)操作教案
- 四年級語文下冊第六單元【集體備課】(教材解讀+教學(xué)設(shè)計(jì))
- 2024版義務(wù)教育小學(xué)科學(xué)課程標(biāo)準(zhǔn)
- MBTI16種人格類型及其通常具有的特征和職業(yè)傾向
評論
0/150
提交評論