亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

數(shù)據(jù)庫原理相關(guān)知識(shí)

來源:楊領(lǐng)well 發(fā)布時(shí)間:2019-01-14 15:17:11 閱讀量:1134

數(shù)據(jù)庫原理相關(guān)知識(shí)

made by @楊領(lǐng)well(yanglingwell@sina.com)


一、基礎(chǔ)知識(shí)

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

數(shù)據(jù)結(jié)構(gòu)化 : 這是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。

數(shù)據(jù)的共享性高、冗余度低且易擴(kuò)充 : 數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余, 節(jié)約存儲(chǔ)空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性和不一致性。

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

數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制 : 數(shù)據(jù)的安全性保護(hù)(保護(hù)數(shù)據(jù)以防止不合法使用造成的數(shù)據(jù)泄密和破壞)、數(shù)據(jù)的完整性檢查(數(shù)據(jù)的正確性、有效性、相容性)、并發(fā)控制、數(shù)據(jù)庫恢復(fù)。

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

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

數(shù)據(jù)組織、存儲(chǔ)和管理

數(shù)據(jù)操縱功能

數(shù)據(jù)庫的事務(wù)管理和運(yùn)行管理

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

其他功能

3. 什么叫數(shù)據(jù)與程序的物理獨(dú)立性?什么叫數(shù)據(jù)與程序的邏輯獨(dú)立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨(dú)立性?

物理獨(dú)立性:應(yīng)用程序和數(shù)據(jù)庫中的數(shù)據(jù)的物理存儲(chǔ)是相互獨(dú)立的。

邏輯獨(dú)立性:應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的。數(shù)據(jù)庫的邏輯結(jié)構(gòu)改變時(shí),用戶程序也可以不變。

數(shù)據(jù)與程序的獨(dú)立 把數(shù)據(jù)的定義從程序中分離出去,加上存取數(shù)據(jù)的方法又由于數(shù)據(jù)庫管理系統(tǒng)負(fù)責(zé)提供,從而簡(jiǎn)化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。

4. 簡(jiǎn)述數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)。

數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級(jí)構(gòu)成。


 

* 模式: 也稱邏輯模式或概念模式。是數(shù)據(jù)庫中全體數(shù)據(jù)的的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。定義模式時(shí),不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。一個(gè)數(shù)據(jù)庫只有一個(gè)模式。 

* 外模式:也稱子模式或用戶模式。是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式通常是模式的子集。一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式。同一個(gè)外模式可以為多個(gè)應(yīng)用系統(tǒng)使用,但一個(gè)應(yīng)用程序只能使用一個(gè)外模式。 

* 內(nèi)模式:也稱存儲(chǔ)模式。是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述, 是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的組織方式。一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。


數(shù)據(jù)庫的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性 

1. 外模式/模式映像:對(duì)于每一個(gè)外模式,數(shù)據(jù)庫系統(tǒng)都有一個(gè)外模式/模式映像,它定義了該外模式與模式之間的對(duì)應(yīng)關(guān)系。這些映像定義通常包含在各自外模式的描述中。 

當(dāng)模式改變時(shí),由數(shù)據(jù)庫管理員對(duì)各外模式/模式映像做相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性。 

2. 模式/內(nèi)模式映像: 數(shù)據(jù)庫只有一個(gè)模式,也只有一個(gè)外模式,所有模式/內(nèi)模式映像是唯一的,它定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)(模式?)和存儲(chǔ)結(jié)構(gòu)(內(nèi)模式?)之間的對(duì)應(yīng)關(guān)系。該映像定義在模式描述中。 

當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變時(shí),由數(shù)據(jù)管理員對(duì)模式/內(nèi)模式映像作相應(yīng)的改變,可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨(dú)立性。


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

硬件平臺(tái)及數(shù)據(jù)庫

軟件:數(shù)據(jù)庫管理系統(tǒng)、支持?jǐn)?shù)據(jù)庫管理系統(tǒng)運(yùn)行的操作系統(tǒng)、具有與數(shù)據(jù)庫接口的高級(jí)語言及其編譯系統(tǒng)、以數(shù)據(jù)庫管理系統(tǒng)為核心的應(yīng)用開發(fā)工具、為特定應(yīng)用環(huán)境開發(fā)的數(shù)據(jù)庫應(yīng)用系統(tǒng)。

人員:數(shù)據(jù)庫管理員(DBA)、系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員、應(yīng)用程序員、用戶(end user)。

6. 簡(jiǎn)述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和聯(lián)系。

文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)之間的區(qū)別 

a. 文件系統(tǒng)用文件將數(shù)據(jù)長(zhǎng)期保存在外存上,數(shù)據(jù)庫系統(tǒng)用數(shù)據(jù)庫統(tǒng)一存儲(chǔ)數(shù)據(jù); 

b. 文件系統(tǒng)中的程序和數(shù)據(jù)有一定的聯(lián)系,數(shù)據(jù)庫系統(tǒng)中的程序和數(shù)據(jù)分離; 

c. 文件系統(tǒng)用操作系統(tǒng)中的存取方法對(duì)數(shù)據(jù)進(jìn)行管理,數(shù)據(jù)庫系統(tǒng)用DBMS統(tǒng)一管理和控制數(shù)據(jù); 

d. 文件系統(tǒng)實(shí)現(xiàn)以文件為單位的數(shù)據(jù)共享,數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)以記錄和字段為單位的數(shù)據(jù)共享。

文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)之間的聯(lián)系 

a. 均為數(shù)據(jù)組織的管理技術(shù); 

b. 均由數(shù)據(jù)管理軟件管理數(shù)據(jù),程序與數(shù)據(jù)之間用存取方法進(jìn)行轉(zhuǎn)換; 

c. 數(shù)據(jù)庫系統(tǒng)是在文件系統(tǒng)的基礎(chǔ)上發(fā)展而來的。

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

決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu)。

決定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和存取策略。

定義數(shù)據(jù)的安全性要求和完整性約束。

監(jiān)控?cái)?shù)據(jù)庫的使用和運(yùn)行。

數(shù)據(jù)庫的改進(jìn)和重組、重構(gòu)。

8. 關(guān)系代數(shù)的基本運(yùn)算有哪些 ?

并(union): R ?? S = { t | t ∈∈ R ?? t ∈∈ S }

差(except):R - S = { t | t ∈∈ S ?? t ?? S }

交(intersection):R ?? S = { t ∈∈ R ?? t ∈∈ S }

笛卡爾積(cartesian producr): R ×× S = { trtstrts | trtr ∈∈ R ?? tsts ∈∈ S }

選擇(select)又稱限制(restriction): σFσF(R) = { t | t ∈∈ R ?? F(t) = ‘true’ }

投影(project):ΠAΠA(R) == { t[A] | t ∈∈ R } , 其中,A為R的屬性列。

連接 (join) : 

θθ連接: R ?AθB?AθB S = { trtstrts | tr∈tr∈ R ?ts∈?ts∈ S ?tr?tr[A] θtsθts[B] } 

θθ是比較運(yùn)算符. 

自然連接: R ?? S = { trtstrts[U - B] | tr∈tr∈ R ?ts∈?ts∈ S ?tr?tr[B] = tsts[B] } 

要求R和S中具有相同的屬性組B, U為R和S的全體屬性集合。 要求兩個(gè)關(guān)系進(jìn)行比較的分量必須是同名的屬性組,并在結(jié)果中把重復(fù)的屬性列去掉。

除運(yùn)算(division): R ÷÷ S = { tr[X]tr[X] | tr∈tr∈ R ?ΠY?ΠY(S) ?Yx?Yx },其中 YxYx為xx在R的象集,x=trx=tr[X]。

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

基本表,又稱基本關(guān)系或基表:是實(shí)際存在的表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示。

視圖:是由基本表或其他視圖表導(dǎo)出的表,是虛表。數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對(duì)應(yīng)的數(shù)據(jù)。

基本表和視圖的區(qū)別: 

a. 視圖是已經(jīng)編譯好的sql語句。而表不是; 

b. 視圖沒有實(shí)際的物理記錄。而表有; 

c. 表是內(nèi)容,視圖是窗口; 

d. 表只用物理空間而視圖不占用物理空間,視圖只是邏輯概念的存在,表可以及時(shí)四對(duì)它進(jìn)行修改,但視圖只能有創(chuàng)建的語句來修改; 

e. 表是內(nèi)模式,視圖是外模式; 

f. 視圖是查看數(shù)據(jù)表的一種方法,可以查詢數(shù)據(jù)表中某些字段構(gòu)成的數(shù)據(jù),只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數(shù)據(jù)表,從而不知道表結(jié)構(gòu); 

g. 表屬于全局模式中的表,是實(shí)表;視圖屬于局部模式的表, 是虛表; 

h. 視圖的建立和刪除只影響視圖本身,不影響對(duì)應(yīng)的基本表。

基本表和視圖的聯(lián)系:視圖(view)是在基本表之上建立的表,它的結(jié)構(gòu)(即所定義的列)和內(nèi)容(即所有數(shù)據(jù)行)都來自基本表,它依據(jù)基本表存在而存在。一個(gè)視圖可以對(duì)應(yīng)一個(gè)基本表, 也可以對(duì)應(yīng)多個(gè)基本表。 視圖是基本表的抽象和在邏輯意義上建立的新關(guān)系。 

關(guān)系可以有三種類型:基本關(guān)系(基本表)、查詢表(查詢結(jié)果對(duì)應(yīng)的表)和視圖表。

10. 簡(jiǎn)述視圖的優(yōu)點(diǎn)。

視圖能夠簡(jiǎn)化用戶的操作:通過定義視圖使數(shù)據(jù)庫看起來結(jié)構(gòu)簡(jiǎn)單清晰,并且可以簡(jiǎn)化用戶的數(shù)據(jù)查詢操作。

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

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

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

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

11. 所有的視圖是否都可以更新? 哪類視圖是可以更新的,哪類視圖是不可更新的?

在關(guān)系數(shù)據(jù)庫中,并不是所有的視圖都是可更新的,因?yàn)橛行┮晥D的更新不能唯一有意義地轉(zhuǎn)換成對(duì)相應(yīng)基本表的更新。

一般地,行列子集視圖是可更新的。

若視圖的屬性來自聚集函數(shù)、表達(dá)式,則該視圖肯定是不可以更新的。 

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

若一個(gè)視圖是從單個(gè)基本表導(dǎo)出的,并且只是去掉了基本表的某些行和某些列,但保留了主碼,則稱之為行列子集視圖。

12. 簡(jiǎn)述SQL(Structured Query Language, 結(jié)構(gòu)化查詢語言)的特點(diǎn)。

綜合統(tǒng)一: SQL集數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操縱語言(DML)、數(shù)據(jù)控制語言(DCL)的功能于一體,語言風(fēng)格統(tǒng)一,可以獨(dú)立完成數(shù)據(jù)庫生命周期中的全部活動(dòng)。

高度非過程化。

面向集合的操作方式。

以同一種語法結(jié)構(gòu)提供多種使用方式。

語言簡(jiǎn)潔,易學(xué)易用。

13. 在嵌入式SQL中是如何協(xié)調(diào)SQL語言的集合處理方式和主語言的單記錄處理方式的?

游標(biāo) 是用于協(xié)調(diào)SQL語言的集合處理方式和主語言的單記錄處理方式。

游標(biāo)是系統(tǒng)為用戶開設(shè)的一個(gè)數(shù)據(jù)緩沖區(qū),存放SQL語句的執(zhí)行結(jié)果(多條記錄的集合),用戶可以通過游標(biāo)來逐一獲取記錄并賦值給主變量,交由主語言進(jìn)一步處理。

14. 關(guān)系數(shù)據(jù)庫的完整性規(guī)則有哪幾類?

實(shí)體完整性規(guī)則:若屬性(一個(gè)或一組屬性)A是基本關(guān)系R的主屬性,則A不能取空值(null value)。

參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼 KsKs 相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同關(guān)系),則對(duì)于R中的每個(gè)元組在F上的值必須: 

a. 或者取空值(F的每個(gè)屬性值均為空值); 

b. 或者等于S中某個(gè)元組的主碼值。

用戶定義的完整性規(guī)則:某一具體的實(shí)際數(shù)據(jù)庫的約束條件,由應(yīng)用環(huán)境所決定,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的要求(比如說一個(gè)人的年齡必須要大于零),根據(jù)現(xiàn)實(shí)生活中的一個(gè)實(shí)際情況用戶定義的一個(gè)用戶自定義完整性。 

數(shù)據(jù)庫的完整性(integrity)是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)的正確性是指數(shù)據(jù)是符合現(xiàn)實(shí)世界的語義、反應(yīng)當(dāng)前實(shí)際情況的;數(shù)據(jù)的相容性是指數(shù)據(jù)庫同一對(duì)象在不同關(guān)系表中的數(shù)據(jù)是符合邏輯的。

15. 試述查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中的重要性和可能性。

查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中的重要性: 

a. 關(guān)系系統(tǒng)的查詢優(yōu)化既是關(guān)系數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù),又是關(guān)系系統(tǒng)的優(yōu)點(diǎn)所在。它減輕了用戶選擇存儲(chǔ)路徑的負(fù)擔(dān)。用戶只要提出“干什么”,而不必指出“怎么干”。 

b. 查詢優(yōu)化的優(yōu)點(diǎn)不僅在于用戶不必考慮如何最好地表達(dá)查詢以獲得較高的效率,而且在于系統(tǒng)可以比用戶程序的“優(yōu)化”做的更好。

查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中的可能性: 

a. 優(yōu)化器可以從數(shù)據(jù)字典中獲取許多統(tǒng)計(jì)信息。優(yōu)化器可以根據(jù)這些信息作出正確的估算,選擇高效的執(zhí)行計(jì)劃。 

b. 如果數(shù)據(jù)庫的物理統(tǒng)計(jì)信息改變了,系統(tǒng)可以自動(dòng)對(duì)查詢進(jìn)行重新優(yōu)化以選擇相適應(yīng)的執(zhí)行計(jì)劃。 

d. 優(yōu)化器可以考慮數(shù)十甚至數(shù)百種不同的執(zhí)行計(jì)劃,從中選出較優(yōu)的一個(gè),而程序員一般只能考慮有限的幾種可能性。 

e. 優(yōu)化器中包括了很多復(fù)雜的優(yōu)化技術(shù),這些優(yōu)化技術(shù)往往只有最好的程序員才能掌握。系統(tǒng)的自動(dòng)優(yōu)化相當(dāng)于使得所有人都擁有這些優(yōu)化技術(shù)。

16. 寫出 Armstrong 推理規(guī)則中自反律、增廣律、傳遞律的形式化定義。

設(shè)U為屬性集總體,F(xiàn)是U上的一組函數(shù)依賴,于是有關(guān)系模式R


17. 簡(jiǎn)述日志文件的內(nèi)容。

各個(gè)事務(wù)的開始標(biāo)記。

各個(gè)事務(wù)的結(jié)束。

各個(gè)事務(wù)的所有更新操作。

18. 簡(jiǎn)述 SQL 中的自主存取控制機(jī)制。

數(shù)據(jù)庫管理員擁有對(duì)數(shù)據(jù)庫中所有對(duì)象的所有權(quán)限,并可以根據(jù)實(shí)際情況將不同的權(quán)限授予不同的用戶。

用戶對(duì)自己建立的基本表和視圖擁有全部的操作權(quán)限,并且可以用GRANT語句將某些權(quán)限授予其他用戶。被授權(quán)的用戶如果有“繼續(xù)授權(quán)”的許可,還可以把獲得的權(quán)限再授予其他用戶。

所有授予出去的權(quán)限再必要時(shí)又都可以用REVOKE語句收回。 

grant vt. 承認(rèn);同意;準(zhǔn)許;授予; 

revoke vt. 撤銷,取消;廢除

19. 簡(jiǎn)述數(shù)據(jù)庫中事務(wù)的概念及其性質(zhì)。

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

事務(wù)的性質(zhì):ACID特性。 

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

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

c. 隔離性(Isolation)。一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。 

d. 持續(xù)性(Durability),也稱永久性。 一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。 

事務(wù)是恢復(fù)和并發(fā)控制的基本單位。

20. 簡(jiǎn)述事物的原子性。

事務(wù)是數(shù)據(jù)庫的邏輯工作單元,事務(wù)中包括的諸操作要么都做, 要么都不做,它是一個(gè)不可分割的工作單位。

21. 簡(jiǎn)述并發(fā)操作帶來的三類數(shù)據(jù)不一致性。

丟失修改: 兩個(gè)事務(wù)T1T1和T2T2,讀入同一數(shù)據(jù)并修改,T2T2,提交的結(jié)果破壞了T1T1提交的結(jié)果,導(dǎo)致T1T1的修改被丟失。

不可重復(fù)讀:事務(wù)T1T1讀取數(shù)據(jù)后,事務(wù)T2T2執(zhí)行更新操作,使T1T1無法再現(xiàn)前一次讀取結(jié)果。包括下列三種情況: 

a. 事務(wù)T1T1讀取某一數(shù)據(jù)后,事務(wù)T2T2對(duì)其進(jìn)行了修改,當(dāng)事務(wù)T1T1再次讀取該數(shù)據(jù)時(shí),得到與前一次不同的值。 

b. 事務(wù)T1T1按一定條件從數(shù)據(jù)庫中讀取了某些數(shù)據(jù)記錄后,事務(wù)T2T2刪除了其中部分記錄,當(dāng)T1T1再次按相同條件讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)某些記錄神秘地消失了。 

c. 事務(wù)T1T1按一定條件從數(shù)據(jù)庫中讀取了某些數(shù)據(jù)記錄后,事務(wù)T2T2插入了一些記錄,當(dāng)T1T1再次按相同條件讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)多了一些數(shù)據(jù)。

讀“臟”數(shù)據(jù):事務(wù)T1T1修改某一數(shù)據(jù)并將其寫回磁盤,事務(wù)T2T2讀取同一數(shù)據(jù)后,T1T1由于某種原因被撤銷,這時(shí)被T1T1修改過的數(shù)據(jù)恢復(fù)原值,T2T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2T2讀到的數(shù)據(jù)為“臟”數(shù)據(jù)。

22. 在數(shù)據(jù)庫中為什么要并發(fā)控制?并發(fā)控制技術(shù)可以保證事務(wù)的哪些特征?

數(shù)據(jù)庫需要并發(fā)控制的原因:數(shù)據(jù)庫是共享資源,通常有許多個(gè)事務(wù)同時(shí)在運(yùn)行。當(dāng)多個(gè)事務(wù)并發(fā)地存取數(shù)據(jù)庫時(shí)就會(huì)產(chǎn)生同時(shí)讀取和/或修改同一數(shù)據(jù)的情況。若對(duì)并發(fā)操作不加控制就可能會(huì)存取和存儲(chǔ)不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機(jī)制。

并發(fā)控制技術(shù)保證了并發(fā)事務(wù)的隔離性和一致性。

23. 什么是封鎖?基本的封鎖類型有幾種?

封鎖:事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他事務(wù)就不能更新此數(shù)據(jù)對(duì)象。

基本的封鎖類型: 

a. 排它鎖(exclusive locks, 簡(jiǎn)稱X鎖),又稱寫鎖。若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)都不能再對(duì)A加任何類型的鎖,直到T釋放A上的鎖為止。 

b. 共享鎖(share locks,簡(jiǎn)稱S鎖), 又稱讀鎖。若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對(duì)A加S鎖,而不能加X鎖,直到T釋放A上的S鎖為止。 

exclusive adj. 專用的; 高級(jí)的; 排外的; 單獨(dú)的;

24. 簡(jiǎn)述兩段封鎖協(xié)議的內(nèi)容。

兩段鎖協(xié)議將事務(wù)分為兩個(gè)階段:


擴(kuò)展階段 :獲得封鎖。在這個(gè)階段,事務(wù)可以申請(qǐng)獲得任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但是不能釋放任何鎖。

收縮階段 :釋放封鎖。在這個(gè)階段,事務(wù)可以釋放任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但是不能再申請(qǐng)任何的鎖。

25. 簡(jiǎn)述數(shù)據(jù)庫系統(tǒng)中活鎖和死鎖的含義。避免活鎖的簡(jiǎn)單方法是什么?

活鎖: 如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請(qǐng)求封鎖R,于是T2等待。T3也請(qǐng)求封鎖R,當(dāng)T1釋放了R上的封鎖之后系統(tǒng)首先批準(zhǔn)了T3的請(qǐng)求,T2仍然等待。然后T4又請(qǐng)求封鎖R,當(dāng)T3釋放了R上的封鎖之后系統(tǒng)又批準(zhǔn)了T4的請(qǐng)求,…,T2有可能永遠(yuǎn)等待,這就是活鎖的情形。

死鎖:如果事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1又請(qǐng)求封鎖R2,因T2已封鎖了R2,于是T1等待T2釋放R2上的鎖。接著T2又申請(qǐng)封鎖R1,因T1已封鎖了R1,T2也只能等待T1釋放R1上的鎖。這樣就出現(xiàn)了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個(gè)事務(wù)永遠(yuǎn)不能結(jié)束,形成死鎖。

避免活鎖的簡(jiǎn)單方法是采用先來先服務(wù)的策略。

26. 什么叫做數(shù)據(jù)庫的恢復(fù)?數(shù)據(jù)庫恢復(fù)的基本技術(shù)有哪些?

數(shù)據(jù)庫的恢復(fù):系統(tǒng)具有的把數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到已知的正確狀態(tài)(也稱為一致狀態(tài)或完整狀態(tài))的功能。

數(shù)據(jù)庫恢復(fù)的基本技術(shù): 

a.數(shù)據(jù)轉(zhuǎn)儲(chǔ)。數(shù)據(jù)庫管理員定期地將整個(gè)數(shù)據(jù)庫復(fù)制到磁盤、磁帶或其他存儲(chǔ)介質(zhì)上保存起來,這些備用數(shù)據(jù)稱為后備副本。當(dāng)數(shù)據(jù)遭到破壞后可以將后備副本的數(shù)據(jù)重新裝入。 

b. 登記日志文件。日志文件可以用來進(jìn)行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。(關(guān)于日志文件,詳見第17條)

27. 簡(jiǎn)述數(shù)據(jù)庫系統(tǒng)中可能發(fā)生的故障類型,以及數(shù)據(jù)恢復(fù)方法。

數(shù)據(jù)庫系統(tǒng)中可能發(fā)生的故障類型: 

a. 事務(wù)內(nèi)部的故障。事務(wù)故障意味著事務(wù)沒有達(dá)到預(yù)期的終點(diǎn)(COMMIT或者顯式的ROLLBACK), 因此,數(shù)據(jù)庫可能處于不正確狀態(tài)。 

b. 系統(tǒng)故障。 系統(tǒng)故障是指造成系統(tǒng)停止運(yùn)轉(zhuǎn)的任何事件,使得系統(tǒng)要重新啟動(dòng)。 

c. 介質(zhì)故障。 外存故障破壞數(shù)據(jù)庫或部分?jǐn)?shù)據(jù)庫。 

d. 計(jì)算機(jī)病毒。

數(shù)據(jù)恢復(fù)方法: 

a. 事務(wù)故障的恢復(fù)。 利用日志文件撤銷此事務(wù)已對(duì)數(shù)據(jù)庫進(jìn)行的修改。 

b. 系統(tǒng)故障的恢復(fù)。 撤銷故障發(fā)生時(shí)未完成的事務(wù),重做已完成的事務(wù)。 

c. 介質(zhì)故障的恢復(fù)。 重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。

28. 簡(jiǎn)述“運(yùn)行記錄優(yōu)先原則”。

至少要等相應(yīng)運(yùn)行記錄已經(jīng)寫入日志文件后,才能允許事務(wù)往數(shù)據(jù)庫中寫記錄。

直至事務(wù)的所有 運(yùn)行記錄都已寫入運(yùn)行日志文件后,才允許事務(wù)完成“END TRABSACTION”處理。 

transaction n. 事務(wù),交易,記錄。

29. 簡(jiǎn)述日志文件內(nèi)容及其作用。

日志文件的作用:(日志文件的內(nèi)容見第17條) 

a. 事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)必須用日志文件。(詳見第27條) 

b. 在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,后備副本和日志文件結(jié)合起來才能有效地恢復(fù)數(shù)據(jù)庫。 

c. 在靜態(tài)轉(zhuǎn)儲(chǔ)方式中,也可以建立日志文件,當(dāng)數(shù)據(jù)庫毀壞后可重新裝入后備副本把數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的正確狀態(tài),然后利用日志文件把已完成的事務(wù)進(jìn)行重做處理,對(duì)故障發(fā)生時(shí)尚未完成的事務(wù)進(jìn)行撤銷處理。這樣就不必重新運(yùn)行那些已完成的事務(wù)程序就可把數(shù)據(jù)庫恢復(fù)到故障前某一時(shí)刻的正確狀態(tài)。 

靜態(tài)轉(zhuǎn)儲(chǔ):在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作。即,轉(zhuǎn)儲(chǔ)操作開始的時(shí)刻數(shù)據(jù)庫處于一致性狀態(tài),而轉(zhuǎn)儲(chǔ)期間不允許(或不存在)對(duì)數(shù)據(jù)庫的任何存取、修改活動(dòng)。 

動(dòng)態(tài)轉(zhuǎn)儲(chǔ):轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫進(jìn)行存取或修改。即,轉(zhuǎn)儲(chǔ)和用戶事務(wù)可以并發(fā)執(zhí)行。動(dòng)態(tài)轉(zhuǎn)儲(chǔ)結(jié)束時(shí)后備副本上的數(shù)據(jù)并不能保證正確有效。為此必須把轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫的修改活動(dòng)登記下來,建立日志文件。這樣,后備副本加上日志文件就能把數(shù)據(jù)庫恢復(fù)到某一時(shí)刻的正確狀態(tài)。

30. 簡(jiǎn)述數(shù)據(jù)庫設(shè)計(jì)過程。

需求分析。

概念結(jié)構(gòu)設(shè)計(jì)。

邏輯結(jié)構(gòu)設(shè)計(jì)。

物理結(jié)構(gòu)設(shè)計(jì)。

數(shù)據(jù)庫實(shí)施。

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

31. 需求分析階段的設(shè)計(jì)目標(biāo)是什么?調(diào)查的內(nèi)容是什么?

設(shè)計(jì)目標(biāo): 通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。

調(diào)查內(nèi)容: 

a. 信息要求。 用戶需要從數(shù)據(jù)庫中會(huì)的信息的內(nèi)容和性質(zhì)。 

b. 處理要求。 用戶要完成的數(shù)據(jù)處理功能,對(duì)處理性能的要求。 

c. 安全性與完整性要求。

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

數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中的數(shù)據(jù)的描述,即,元數(shù)據(jù),而不是數(shù)據(jù)本身。 

* 數(shù)據(jù)字典的內(nèi)容: 

a. 數(shù)據(jù)項(xiàng)。 數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單元。數(shù)據(jù)項(xiàng)的描述 = { 數(shù)據(jù)項(xiàng)名, 數(shù)據(jù)項(xiàng)含義說明, 別名, 數(shù)據(jù)類型, 長(zhǎng)度, 取值范圍, 取值含義, 與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系, 數(shù)據(jù)項(xiàng)之間的聯(lián)系 } 

b. 數(shù)據(jù)結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)反應(yīng)了數(shù)據(jù)之間的組合關(guān)系。數(shù)據(jù)結(jié)構(gòu)描述 = { 數(shù)據(jù)結(jié)構(gòu)名, 含義說明, 組成:{ 數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu) } } 

c. 數(shù)據(jù)流。 數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂健?數(shù)據(jù)流描述 = { 數(shù)據(jù)流名, 說明, 數(shù)據(jù)流來源, 數(shù)據(jù)流去向, 組成:{ 數(shù)據(jù)結(jié)構(gòu) }, 平均流量, 高峰期流量 } 

d. 數(shù)據(jù)存儲(chǔ)。 數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。 數(shù)據(jù)存儲(chǔ)描述 = { 數(shù)據(jù)存儲(chǔ)名, 說明, 編號(hào), 輸入的數(shù)據(jù)流, 輸出的數(shù)據(jù)流, 組成: { 數(shù)據(jù)結(jié)構(gòu) }, 數(shù)據(jù)量, 存取頻度, 存取方式 } 

e. 處理過程。 處理過程的具體處理邏輯一般用判定表或判定樹來描述。數(shù)據(jù)字典只需要描述處理過程的說明性信息即可。 處理過程描述 = { 處理過程名, 說明, 輸入:{ 數(shù)據(jù)流 }, 輸出:{ 數(shù)據(jù)流 }, 處理: { 簡(jiǎn)要說明 } } 

* 數(shù)據(jù)字典的作用: 數(shù)據(jù)字典在需求分析階段建立,是下一步進(jìn)行概念設(shè)計(jì)的基礎(chǔ),并在數(shù)據(jù)庫設(shè)計(jì)過程中不斷修改、充實(shí)、完善。


33. 在全局 ER 模型設(shè)計(jì)過程中,需要消除局部 ER 模型之間存在的哪三種沖突?

屬性沖突: 

a. 屬性域沖突。即,屬性值的類型、取值范圍或取值集合不同。 

b. 屬性取值單位沖突。

命名沖突:同名異義或異名同義。

結(jié)構(gòu)沖突: 

a. 同一對(duì)象在不同應(yīng)用中具有不同的抽象。 

b. 同一實(shí)體在不同子系統(tǒng)中的E-R圖中所包含的屬性個(gè)數(shù)和屬性排列次序不完全相同。 

c. 實(shí)體之間的聯(lián)系在不同的E-R圖中為不同的類型。

34. 簡(jiǎn)述數(shù)據(jù)庫完整性和安全性的概念。


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

數(shù)據(jù)完整性:數(shù)據(jù)庫的完整性(integrity)是指數(shù)據(jù)的正確性和相容性。(詳見第14條) 

安全性措施的防范對(duì)象是非法用戶和非法操作, 而完整性措施的防范對(duì)象是不合語義的數(shù)據(jù)。

--------------------- 



標(biāo)簽: 數(shù)據(jù)庫
分享:
評(píng)論:
你還沒有登錄,請(qǐng)先