2019 年上半年數據庫系統工程師考試

基礎知識

● 計算機執行程序時,CPU中(1)的內容是一條指令的地址。

(1)A、運算器 B、控制器 C、程序計數器 D、通用寄存器

參考答案:(1)C

● DMA控制方式是在(2)之間直接建立數據通路進行數據的交換處理。

(2)A、CPU與主存 B、CPU與外設

​ C、主存與外設D、外設與外設

參考答案:(2)C

直接主存存取(Direct Memory Access,DMA)是指數據在主存與I/O設備間(即主存與外設之間)直接成塊傳送。
CPU與外設之間是程序直接控制傳送方式。

CPU與主存之間是總線。

● 在計算機的存儲系統中,(3)屬於外存儲器。

(3)A、硬盤 B、寄存器 C、高速緩存 D、內存

參考答案:(3)A

● 某系統由3個部件構成,每個部件的千小時可靠度都爲R,該系統的千小時可靠 度爲(1-(1-R)^2)R,則該系統的構成方式是(4)

(3)A、3個部件串聯 B、3個部件並聯 C、前兩個部件並聯後與第三個部件串聯 D、第一個部件與後兩個部件並聯構成的子系統串聯

參考答案:(4)C

● 令序列X、Y、Z的每個元素都按順序進棧,且每個元素進棧和出棧僅一次。則不 可能得到的出棧序列是(5)

(5) A、 X Y Z B、 X Z Y C、 Z X Y D、 Y Z X

參考答案:(5)C

● 以下關於單鏈表存儲結構特徵的敘述中,不正確的是(6)

(6) A、表中結點所佔用存儲空間的地址不必是連續的

​ B、在表中任意位置進行插入和刪除操作都不用移動元素

​ C、所需空間與結點個數成正比

​ D、可隨機訪問表中的任一結點

參考答案:(6)D

● B-樹是一種平衡的多路查找樹。以下關於B-樹的敘述中,正確的是(7)

(7) A、根結點保存樹中所有關鍵字且有序排列

​ B、從根結點到每個葉結點的路徑長度相同

​ C、所有結點中的子樹指針個數都相同

​ D、所有結點中的關鍵字個數都相同

參考答案:(7)B

B-樹中,所有非終端結點也就是非葉子結點,都會包含關鍵字,A選項錯誤。

B-樹中,所有葉子結點都出現在同一層次上並且不帶信息(可以看作是外部結點或查找失敗的結點),層次相同也就是高度相同,從根結點到每個葉子結點的路徑長度相同,B選項正確。

B-樹中,所有非終端結點包含的關鍵字數量是不確定的,指向的子樹個數也是不確定的,所以C選項和D選項錯誤。

● 對於給定的關鍵字序列{47, 34, 13, 12, 52, 38, 33, 27, 5},若用鏈地址法(拉 鏈法)解決衝突來構造哈希表,且哈希函數爲H(key)=key%11,則(8)

(8) A、哈希地址爲1的鏈表最長

​ B、哈希地址爲6的鏈表最長

​ C、 34和12在同一個鏈表中

​ D、 13和33在同一個鏈表中

參考答案:(8)C

鏈地址法(拉鍊法):在查找表的每一個記錄中增加一個鏈域,鏈域中存放下一個具有相同哈希函數值的記錄的存儲地址。即利用鏈域將發生衝突的記錄鏈接在一個鏈表裏。
本題對於給定的關鍵字序列{47, 34, 13, 12, 52, 38, 33, 27, 5},哈希函數爲H(key)=key%11,則其哈希值分別爲{3, 1, 2, 1, 8, 5, 0, 5, 5}
可以看到哈希地址爲5的衝突最多,其對應的鏈表最長,A選項和B選項錯誤。
34和12的哈希值都爲1,放在同一個鏈表中,C選項正確。
13的哈希值爲2,33的哈希值爲0,不在同一個鏈表中,D選項錯誤。

● 某有向圖G的鄰接表如下圖所示,可看出該圖中存在弧<v2, v3>,而不存在從頂點 V1出發的弧。以下關於圖G的敘述中,錯誤的是(9)

img

(9) A、 G中存在迴路

​ B、 G中每個頂點的入度都爲1

​ C、 G的鄰接矩陣是對稱的

​ D、不存在弧<v3, v1>

參考答案:(9)C

● 已知有序數組a的前10000個元素是隨機整數,現需查找某個整數是否在該數組中。以下方法中,(10)的查找效率最高。

(10) A、二分查找法B、順序查找法

​ C、逆序查找法D、哈希查找法

參考答案:(10)A

● 下列攻擊行爲中,(11)屬於被動攻擊行爲。

(11) A、僞造 B、竊聽 C、 DD0S攻擊 D、篡改消息

參考答案:(11)B

(12)防火牆是內部網和外部網的隔離點,它可對應用層的通信數據流進行監控和過濾。

(12) A、包過濾 B、應用級網關 C、數據庫 D、 WEB

參考答案:(12)B

防火牆技術可分爲網絡級防火牆和應用級防火牆兩類。網絡級防火牆用來防止整個網絡出現外來非法的入侵。例如,分組過濾和授權服務器就屬於這一類。前者檢查所有流入本網絡的信息,然後拒絕不符合事先制訂好的一套準則的數據,而後者則是檢查用戶的登錄是否合法;應用級防火牆是從應用程序來進行接入控制,通常使用應用網關或代理服務器來區分各種應用。例如,可以只允許WWW應用,而阻止FTP應用。

題目中要求對應用層的通信數據流進行監控與過濾,這個要求使用包過濾防火牆是做不到的,必須使用應用層的防火牆——應用級網關。

(13)並不能減少和防範計算機病毒。

(13) A、安裝、升級殺毒軟件 B、下載安裝系統補丁

​ C、定期備份數據文件 D、避免U盤交叉使用

參考答案:(13)C

● 下述協議中與安全電子郵箱服務無關的是(14)

(14) A、 SSL B、 HTTPS C、 MIME D、 PGP

參考答案:(14)C

MIME它是一個互聯網標準,擴展了電子郵件標準,使其能夠支持,與安全無關。與安全電子郵件相關的是S/MIME安全多用途互聯網郵件擴展協議。
A選項SSL和B選項HTTPS涉及到郵件傳輸過程的安全,D選項PGP(全稱:Pretty Good Privacy,優良保密協議),是一套用於信息加密、驗證的應用程序,可用於加密電子郵件內容。

● 在(15)校驗方法中,採用模2運算來構造校驗位。

(15) A、水平奇偶 B、垂直奇偶 C、海明碼 D、循環冗餘

參考答案:(15)D

循環冗餘校驗CRC使用模二除法來構造校驗位。

(16)是構成我國保護計算機軟件著作權的兩個基本法律文件。單個自然人的軟件著作權保護期爲(17)

(16) A、《軟件法》和《計算機軟件保護條例》

​ B、《中華人民共和國著作權法》和《中華人民共和國版權法》

​ C、《中華人民共和國著作權法》和《計算機軟件保護條例》

​ D、《軟件法》和《中華人民共和國著作權法》

(17) A、50年 B、自然人終生及其死亡後50年 C、永久限制 D、自然人終生

參考答案:(16)C(17)B

第一空,保護軟著權的基本法律文件是《中華人民共和國著作權法》和《計算機軟件保護條例》;第二空對於自然人的著作權除了身份權以外,保護期限爲作者終生及其死後50年。題幹並不嚴謹。

● 在Windows系統中,磁盤碎片整理程序可以分析本地卷,以及合併捲上的可用空間使其成爲連續的空閒區域,從而使系統可以更高效地訪問(18)

(18) A、內存儲器 B、高速緩存存儲器 C、文件或文件夾 D、磁盤空閒區

參考答案:(18)C

合併文件和文件夾的過程稱爲碎片整理。

● 某文件系統採用位示圖(bitmap)記錄磁盤的使用情況。若計算機系統的字長爲64 位,磁盤的容量爲1024GB,物理塊的大小爲4MB, 那麼位示圖的大小需要(19)個字。

(19) A、 1200 B、 2400 C、 4096 D、 9600

參考答案:(19)C

計算機字長爲64位,那麼利用位示圖表示時每個字能夠表示64個物理塊的存儲情況;磁盤的容量爲1024GB,物理塊的大小爲4MB,則共有1024GB/4MB=1024*1024/4 =(256*1024)個物理塊。(注意單位轉換)
256*1024個物理塊,每64個物理塊佔用一個字,所以需要256*1024/64=4096個字。

● 某系統中有一個緩衝區,進程P1不斷地生產產品送入緩衝區,進程P2不斷地從緩衝區中取出產品消費,用P、V操作實現進程間的同步模型如下圖所示。假設信號量S1 的初值爲1,信號量S2的初值爲0,那麼a、b、c處應分別填(20)

img

(20) A、V(S2)、P(S1)、V(S1)

​ B、V(S2)、P(S2)、V(S1)

​ C、P(S2)、V(S1)、V(S2)

​ D、P(S2)、V(S2)、V(S1)

參考答案:(20)B

S2初值爲0,表示的是產品資源。 S1 初值爲1,表示的是緩衝區空間資源。

根據圖示,P1進程完成之後會放入緩衝區一個產品,下一步是通知P2消費者可以取產品,因此a空填寫V(S2); P2 消費者取產品前需要檢查是否有產品,因此b填寫P(S2);P2取走產品後,緩衝區空閒,可以通知生產者繼續生產產品,因此c空填寫V(S1)。

● 設備驅動程序是直接與(21)打交道的軟件模塊。

(21) A、應用程序 B、數據庫 C、編譯程序 D、硬件

參考答案:(21)D

● 以下關於編譯和解釋的敘述中,正確的爲(22)

① 編譯是將高級語言源代碼轉換成目標代碼的過程

② 解釋是將高級語言源代碼轉換爲目標代碼的過程

③ 在編譯方式下,用戶程序運行的速度更快

④ 在解釋方式下,用戶程序運行的速度更快

(22) A、①③ B、①④ C、②③ D、②④

參考答案:(22)D

兩種語言處理程序的根本區別是:在編譯方式下,機器上運行的是與源碼程序等價的目標程序,源程序和編譯程序都不再參與目標程序的執行過程,程序運行速度快;而在解釋方式下,解釋程序和源程序(或其某種等價表示)要參與到程序的運行過程中,運行程序的控制權在解釋程序,邊解釋邊執行,程序運行速度慢。

●函數調用和返回控制是用(23)實現的。

(23) A、哈希表 B、符號表 C、棧 D、優先隊列

參考答案:(23)C

●通用的高級程序設計語言一般都會提供描述數據、運算、控制和數據傳輸的語言成分,其中,控制包括順序、(24)和循環結構。

(24) A、選擇 B、遞歸 C、遞推 D、函數

參考答案:(24)A

●以下關於系統原型的敘述中,不正確的是(25)

(25) A、可以幫助導出系統需求並驗證需求的有效性

​ B、可以用來探索特殊的軟件解決方案

​ C、可以用來指導代碼優化5

​ D、可以用來支持用戶界面設計

參考答案:(25)C

1、原型方法適用於用戶需求不清、需求經常變化的情況,可以幫助導出系統需求並驗證需求的有效性;
2、探索型原型的目的是弄清目標的要求,確定所希望的特性,並探討多種方案的可行性,可以用來探索特殊的軟件解決方案;
3、原型法能夠迅速地開發出一個讓用戶看得見的系統框架,可以用來支持用戶界面設計。
原型法不能用來指導代碼優化。

●已知模塊A給模塊B傳遞數據結構X,則這兩個模塊的耦合類型爲(26)

(26) A、數據耦合B、公共耦合C、外部耦合D、標記耦合

參考答案:(26)D

數據耦合:一個模塊訪問另一個模塊時,彼此之間是通過簡單數據參數(不是控制參數、公共數據結構或外部變量)來交換輸入、輸出信息的。
標記耦合 :一組模塊通過參數表傳遞記錄信息,就是標記耦合。這個記錄是某一數據結構的子結構,而不是簡單變量。本題描述的是標記耦合。
公共耦合:若一組模塊都訪問同一個公共數據環境,則它們之間的耦合就稱爲公共耦合。公共的數據環境可以是全局數據結構、共享的通信區、內存的公共覆蓋區等。
外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之爲外部耦合。

●以下關於軟件測試的敘述中,正確的是(27)

(27) A、軟件測試的目的是爲了證明軟件是正確的

​ B、軟件測試是爲了發現軟件中的錯誤

​ C、軟件測試在軟件實現之後開始,在軟件交付之前完成

​ D、如果對軟件進行了充分的測試,那麼交付時軟件就不存在問題了

參考答案:(27)B

●數據流圖建模應遵循(28)的原則。

(28)A、自頂向下、從具體到抽象

​ B、自頂向下、從抽象到具體

​ C、自底向上、從具體到抽象

​ D、自底向上、從抽象到具體

參考答案:(28)B

數據流圖是結構化分析的工具,結構化方法就是採用自頂向下逐層分解的思想進行分析建模的。隨着分解層次的增加,抽象的級別也越來越低,即越來越接近問題的解。數據流圖建模應遵循:自頂向下、從抽象到具體的原則。

●瀏覽器開啓了無痕瀏覽模式後,(29)依然會被保存下來。

(29)A、瀏覽歷史 B、搜索歷史 C、已下載文件 D、臨時文件

參考答案:(29)C

無痕瀏覽是指不留下上網瀏覽記錄的互聯網瀏覽方式。在隱私瀏覽過程中,瀏覽器不會保存任何瀏覽歷史、搜索歷史、下載歷史、表單歷史、Cookie或Internet臨時文件。

●下列網絡互連設備中,工作在物理層的是(30)

(30)A、交換機 B、集線器 C、路由器 D、網橋

參考答案:(30)B

物理設備 OSI模型 傳輸的數據單位 主要功能
中繼器 物理層 位(比特流) 實現局域網網段互連的,用於擴展局域網網段的長度
集線器 物理層 位(比特流) 多路中繼器
網橋 數據鏈路層 連接兩個不同的網段,對幀進行過濾與轉發
二層交換機 數據鏈路層 多端口網橋,按物理地址對幀進行數據轉發
三層交換機 數據鏈路層/網絡層 幀/數據包 在二層交換機的基礎上增加了部分網絡層的功能
路由器 網絡層 數據包 連接不同的子網,根據IP地址進行路由選擇與數據的分組交換
網關 應用層 報文 進行協議轉換,可以使不同類型的網絡系統之間進行通信

●當出現網絡故障時,一般應首先檢查(31)

(31)A、系統病毒 B、路由配置 C、物理連通器 D、主機故障

參考答案:(31)C

●TCP和UDP協議均提供了 (32)能力。

(32)A、連接管理 B、差錯校驗和重傳 C、流量控制 D、端口尋址

參考答案:(32)D

TCP和UDP均提供了端口尋址功能。連接管理、差錯校驗和重傳以及流量控制均爲TCP的功能。
UDP是一種不可靠的、無連接的協議,沒有連接管理能力,不負責重新發送丟失或出錯的數據消息,也沒有流量控制的功能。

●數據模型的三要素中不包括(33)

(33)A、數據結構 B、數據類型 C、數據操作 D、數據約束

參考答案:(33)D

數據模型的三要素中包括數據結構、數據操作和數據約束。

●某本科髙校新建教務管理系統,支撐各學院正常的教學教務管理工作。經過初步分析,系統中包含的實體有學院、教師、學生、課程等。考慮需要將本科學生的考試成績 及時通報給學生家長,新增家長實體;考慮到夜大、網絡教育學生管理方式的不同,需要 額外的管理數據,新增進修學生實體:規定一個學生可以選擇多門課程,每門課程可以被 多名學生選修;一個教師可以教授多門課程,一門課程只能被一名教師講授。(34)實體 之間爲多對多聯繫,(35)屬於弱實體對強實體的依賴聯繫。

(34)A、學生、學院 B、教師、學院 C、學生、課程 D、教師、課程

(35)A、家長、學生 B、學生、教師 C、學生、學院 D、教師、學院

參考答案:(34)C(35)A

●給定關係模式如下,學生(學號,姓名,專業),課程(課程號,課程名稱),選課(學 號,課程號,成績)。查詢所有學生的選課情況的操作是(36);查詢所有課程的選修情況的操作是(37)

(36)A、學生JOIN選課 B、學生LEFT JOIN選課

​ C、學生RIGHT JOIN選課 D、學生FULL JOIN選課

(37)A、選課JOIN課程 B、選課LEFT JOIN課程

​ C、選課RIGHT JOIN課程D、選課FULL JOIN課程

參考答案:(36)B(37)C

●關係代數表達式的查詢優化中,下列說法錯誤的是(38)

(38)A、提早執行選擇運算

​ B、合併乘積與其後的選擇運算爲連接運算

​ C、如投影運算前後存在其它的二目運算,應優先處理投影運算

​ D、存儲公共的子表達式,避免重新計算

參考答案:(38)C

如投影運算前後存在其它的二目運算,應結合起來以避免重複掃描

●給定關係R(A,B, C,D)與S(C,D, E,F),則R x S與R▷◁S操作結果的屬性個數分別爲(39);與表達式π2,3,4(δ2<5(R▷◁S))等價的SQL語句如下:

SELECT R. B, R. C, R. D FROM R, S WHERE (40)

(39)A、 8, 6 B、 6, 6 C、 8, 8 D、 7, 6

(40)A、 R. OS. C OR R. D=S. D OR R. B<S. C

​ B、 R. C=S. C OR R. D=S. D OR R. B<S. E

​ C、 R. C=S. C AND R. D=S. D AND R. B<S. C

​ D、 R. C=S. C AND R. D=S. D AND R. B<S. E

參考答案:(39)A(40)D

●某企業人事管理系統中有如下關係模式,員工表Emp(eno, ename, age, sal, dname),屬性分別表示員工號、員工姓名、年齡、工資和部門名稱;部門表Dept(dnatne,phone),屬性分別表示部門名稱和聯繫電話。需要查詢其它部門比銷售部門(Sales)所有員工年齡都要小的員工姓名及年齡,對應的SQL語句如下:

SELECT ename, age FROM Emp

WHERE age (41)

(SELECT age FROM Emp WHERE dname=, Sales’ ) AND (42)

(41)A、<ALL B、<ANY C、IN D、EXISTS

(42)A、dname=’Sales’ B、dname<>’Sales’ C、dname<’Sales’ D、dname>’Sales’

參考答案:(41)A(42)B

● 對分組查詢結果講行篩選的是(43),其條件表達式中可以使用聚集函數。

(43)A、 WHERE 子句 B、 GROUP BY 子句

​ C、 HAVING 子句 D、 ORDER BY 子句

參考答案:(43)C

● 授權語句GRANT中,以下關於WITH GRANT OPTION子句的敘述中,正確的是(44)

(44)A、用於指明該授權語句將權限賦給全體用戶

​ B、用於指明授權語句中,該用戶獲得的具體權限類型

​ C、用於指明授權語句中,獲得授權的具體用戶是誰

​ D、用於指明獲得權限的用戶還可以將該權限賦給其他用戶

參考答案:(44)D

● 以下有關觸發器的敘述中,不正確的是(45)

(45)A、觸發器可以執行約束、完整性檢查

​ B、觸發器中不能包含事務控制語句

​ C、觸發器不能像存儲過程一樣,被直接調用執行

​ D、觸發器不能在臨時表上創建,也不能引用臨時表

參考答案:(45)B

觸發器不能在臨時表上創建,但可以引用臨時表。

● 以下關於最小函數依賴集的說法中,不正確的是(46)

(46)A、不含傳遞依賴 B、不含部分依賴 C、每個函數依賴的右部都是單屬性 D、每個函數依賴的左部都是單屬性

參考答案:(46)D

最小函數依賴集左側沒有冗餘的屬性,右側只有一個屬性

● 對於關係模式R (X, Y, Z, W),下面有關函數依賴的結論中錯誤的是(47)

(47)A、若 X→Y, WY→Z,則 WX→Z B、若 XY→Z,則 X→Z

​ C、若 X→Y,Y→Z,則 X→Z D、若 X→YZ,則 X→Z

參考答案:(47)B

● 關係模式R<{A, B, C}, {AC-B, B-C}>的候選碼之一是(48);由於該模式存在主屬性對碼的部分函數依賴,其規範化程度最高屬於(49)

(48)A、A B、AB C、ABC D、以上都不是

(49)A、INF B、2NF C、3NF D、BCNF

參考答案:(48)B(49)C

本題候選碼爲AB和AC兩個。
主屬性爲ABC,沒有非主屬性,所以不存在非主屬性對碼的部分函數依賴和傳遞函數依賴,至少滿足3NF,又因爲存在主屬性對碼的部分函數依賴,因此不滿足BCNF。

● 將一個關係r分解成兩個關係rl和r2,再將分解之後的兩個關係rl和r2進行自然連接,得到的結果如果比原關係r記錄多,則稱這種分解爲(50)

(50)A、保持函數依賴的分解 B、不保持函數依賴的分解

​ C、無損連接的分解 D、有損連接的分解

參考答案:(50)D

無損連接分解:指將一個關係模式分解成若干個關係模式後,通過自然連接和投影等運算仍能還原到原來的關係模式,本題題幹描述與之相悖,因此,是有損分解。

● 用於提交和回滾事務的語句爲(51)

(51)A、END TRANSACTION 和 ROLLBACK TRANSACTION

​ B、COMMIT TRANSACTION 和 ROLLBACK TRANSACTION

​ C、SAVE TRANSACTION 和 ROLLUP TRANSACTION

​ D、COMMIT TRANSACTION 和 ROLLUP TRANSACTION

參考答案:(51)B

● 併發操作可能帶來的數據不一致性有(52),解決的辦法是併發控制,主要技術是(53)

(52)A、丟失修改、不可重複讀、讀髒數據

​ B、丟失修改、死鎖、故障

​ C、丟失修改、不可重複讀、冗餘

​ D、故障、死鎖、冗餘

(53)A、加密 B、封鎖 C、轉儲 D、審計

參考答案:(52)A(53)B

● 如果事務T獲得了數據項R上的共享鎖,則T對R(54)

(54)A、只能讀不能寫 B、只能寫不能讀

​ C、即可讀又可寫 D、不能讀不能寫

參考答案:(54)A

● 將具有特定功能的一段SQL語句(多於一條)在數據庫服務器上進行預先定義並編譯,以供應用程序調用,該段SQL程序可被定義爲(55)

(55)A、事務 B、觸發器 C、視圖 D、存儲過程

參考答案:(55)D

● 下面說法錯誤的是(56)。

(56)A、存儲過程中可以包含流程控制

​ B、存儲過程被編譯後保存在數據庫中

​ C、用戶執行SELECT語句時可以激活觸發器

​ D、觸發器由觸發事件激活,並由數據庫服務器自動執行

參考答案:(56)C

觸發器是存儲在服務器中的程序單元,當數據庫中某些事件發生時(比如insert\update\delete),數據庫自動啓動觸發器,執行觸發器中的相應操作。

● 數據庫系統應該定期備份,如果備份過程中仍有更新事務在運行,則備份結果是不一致的,這種備份稱爲(57)

(57)A、動態備份 B、靜態備份 C、增量備份 D、日誌備份

參考答案:(57)A

冷備份也稱爲靜態備份,是將數據庫正常關閉,在停止狀態下,將數據庫的文件全部備份(複製)下來。
熱備份也稱爲動態備份,是利用備份軟件,在數據庫正常運行的狀態下,將數據庫中的數據文件備份出來。
完全備份:備份所有數據
差量備份:僅備份上一次完全備份之後變化的數據
增量備份:備份上一次備份之後變化的數據

● 關於日誌文件,下列說法錯誤的是(58)

(58) A、保存了更新前的數據 B、保存了更新後的數據

​ C、無需其它文件可恢復事務故障 D、無需其它文件可恢復介質故障

參考答案:(58)D

介質故障(稱爲硬件故障)
是指外存故障,例如磁盤損壞、磁頭碰撞,瞬時強磁場干擾等
這類故障將破壞數據庫或部分數據庫,並影響正在存取這部分數據的所有事務,日誌文件也被破壞
恢復步驟:
①裝入最新的數據庫後備副本,使數據庫恢復到最近一次轉儲時的一致性狀態。
②轉入相應的日誌文件副本,重做已完成的事務
介質故障的恢復需要DBA的介入,具體的恢復操作仍由DBMS完成。
恢復過程:
①DBA只需要重裝最近轉儲的數據庫副本和有關的各日誌文件副本。
②然後執行系統提供的恢復命令。

● 如果某一事務程序的運行導致服務器重新啓動,這類故障屬於系統故障,恢復過程中需要根據日誌進行的操作爲(59)

(59)A、 UNDO B、 UNDO 和 REDO

​ C、 REDO D、 ROLLBACK

參考答案:(59)B

系統故障恢復需要撤銷故障發生時未完成的事務(UNDO),重做已經完成的事務(REDO)。

● 下面說法中錯誤的是(60)

(60)A、併發事務如果不加控制,可能會破壞事務的隔離性

​ B、可串行化調度是正確的調度

​ C、兩段鎖協議能夠保證可串行化調度

​ D、兩段鎖協議能夠確保不會產生死鎖

參考答案:(60)D

● 在設計關係模式時,有時爲了提高數據操作的性能,會故意增加冗餘數據,使得 關係模式不滿足3NF或BCNF,這種方法稱之爲反規範化,下列不屬於反規範化手段的是(61)

(61)A、合併模式 B、增加冗餘屬性

​ C、創建視圖 D、增加派生屬性

參考答案:(61)C

反規範化常見手段:
增加派生性冗餘列、增加冗餘列、重新組表、分割表。

● 在索引改進中,一般的調整原則是:當(62)是性能瓶頸時,則在關係上建立索引;當(63)是性能瓶頸時,則考慮刪除某些索引;管理人員經常會將有利於大多數據查詢的所以設爲(64)

(62)A、查詢 B、更新 C、排序 D、分組計算

(63)A、查詢 B、更新 C、排序 D、分組計算

(64)A、樹索引 B、位圖索引C、散列索引 D、聚族索引

參考答案:(62)A(63)B(64)D

● 在數據庫系統運行中,經常會找出頻繁執行的SQL語句進行優化。常見的優化策略有:儘可能減少多表查詢或建立(65);用帶(66)的條件子句等價替換OR子句; 只檢索需要的屬性列等。

(65)A、視圖 B、物化視圖 C、外鍵約束 D、臨時表

(66)A、IN B、EXISTS C、UNION D、AND

參考答案:(65)B(66)A

常見的優化策略:

儘可能地減少多表查詢或建立物化視圖

以不相關子查詢替代相關子查詢

只檢索需要的列

用帶IN的條件子句等價替換OR子句

● 以下有關數據庫審計的敘述中,錯誤的是(67)

(67)A、審計記錄數據庫資源和權限的使用情況

​ B、審計可以防止對數據庫的非法修改

​ C、審計操作會影響系統性能

​ D、審計跟蹤信息會擴大對存儲空間的要求

參考答案:(67)B

審計是一種DBMS工具,審計的工作是記錄和追蹤,不能防止對數據庫的非法修改。

●以下關於大數據的敘述中,錯誤的是(68)

(68)A、大數據的數據量巨大 B、結構化數據不屬於大數據

​ C、大數據具有快變性 D、大數據具有價值

參考答案:(68)B

(69)不是目前NoSQL數據庫產品的數據模型。

(69)A、圖模型 B、文檔模型 C、鍵值存儲模型 D、層次模型

參考答案:(69)D

● 以下關於NoSQL數據庫的說法中,正確的是(70)

(70) A、NoSQL數據庫保證BASE特性

​ B、NoSQL數據庫保證ACID特性

​ C、各種NoSQL數據庫具有統一的架構

​ D、NoSQL數據庫經常使用JOIN操作

參考答案:(70)A

NoSQL數據庫保證的是BASE特性,而不是ACID特性

● The entity-relationship (E-R) data model is based on a perception of a real world that consists of a collection of basic objects, called (71),and of relationships among these objects. An entity is a “thing” or “object” in the real world that is distinguishable from other objects. Entities are described in a database by a set of (72) . A relationship is an association among several entities. The set of all entities of the same type and the set of all relationships of the same type are termed an entity set and relationship set, respectively. The overall logical structure (schema) of a database can be expressed graphically by an E-R diagram, which is built up from the following components: (73) represent entity set, (74) represent attributes, etc. In addition to entities and relations, the E-R model represents certain(75) to which the contents of a database must conform. The entity-relationship model is widely used in database design.

(71)A、 data B、 things C、 entities D、 objects

(72)A、 keys B、 attributes C、records D、 Rows

(73)A、 rectangles B、 ellipses C、 diamonds D、 lines

(74)A、 rectangles B、 ellipses C、 diamonds D、 lines

(75)A、 things B、 objects C、 conditions D、 constrains

參考答案:(71)C (72)B (73)A (74)B(75)D

實體-關係(E-R)數據模型基於對現實世界的感知而言,該現實世界由一組基本對象(稱爲實體)和這些對象之間的關係組成。實體是現實世界中與其他對象相區別的“事務”或“對象”。實體在數據庫中由一組屬性描述。關係是幾個實體之間的關聯。同一類型的所有實體的集合和同一類型的所有關係的集合分別稱爲實體集和關係集。數據庫的總體邏輯結構(設計)可以用E-R圖圖形化表示,E-R圖由以下組件組成:矩形表示實體集,橢圓表示屬性等。除了實體和關係之外,E-R模型還表示數據庫內容必須符合的某些約束。E-R模型在數據庫設計中得到了廣泛的應用。

應用技術

試題一:閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。

【說明】

學校欲開發一學生跟蹤系統,以更自動化、更全面地對學生在校情況(到課情況和健康狀態等相關信息)進行管理和追蹤,使家長能及時瞭解子女的到課情況和健康狀態,並在有健康問題時及時與醫護機構對接。該系統的主要功能是:

(1)採集學生狀態。通過學生卡傳感器,採集學生心率、體溫(攝氏度)等健康指標及其所在位置等信息並記錄。每張學生卡有唯一的標識(ID)與一個學生對應。

(2)健康狀態告警。在學生健康狀態出現向題時,系統向班主任、家長和醫護機構健康服務系統發出健康狀態警告,由醫護機構健康服務系統通知相關醫生進行處理。

(3)到課檢查。綜合比對學生狀態、課表以及所處校園場所之間的信息對學生到課情況進行判定。對曠課學生,向其家長和班主任發送曠課警告。

(4)在校情況彙總。定期彙總在校情況,並將報告發送給家長和班主任。

(5)家長註冊。家長註冊使用該系統,指定自己子女,經學校管理人員審覈後,向 家長髮送註冊結果。

(6)基礎信息管理。學校管理人員對學生及其所用學生卡和班主任、課表(班級、 上課時間及場所等)、校園場所(名稱和所在位置區域)等基礎信息進行管理,對家長註冊申請進行審覈,將家長ID加入學生信息記錄中使家長與其子女進行關聯,一個學生至少有一個家長,可以有多個家長。課表信息包括班級、班主任、時間和位置等。

現採用結構化方法對學生跟蹤系統進行分析與設計,獲得如圖1-1所示的上下文數據流圖和圖1-2所示的0層數據流圖。

img

問題內容:

【問題1】(5分)

使用說明中的詞語,給出圖1-1中的實體E1〜E5的名稱。

參考答案:E1:學生 E2:學校管理人員 E3:班主任 E4:家長 E5: 醫護機構健康服務系統

根據題幹描述,與P5採集學生狀態相關的是實體E1即學生;與P5家長註冊相關的是實體E4 即家長;與P4彙總在校情況相關的是實體 E4家長與實體E3,即班主任;與P2健康狀態告警相關是實體E3班主任、 E4家長,以及 E5即醫護機構健康服務系統;與P6基礎信息管理相關的是實體E2即學校管理人員。

【問題2】(4分)

使用說明中的詞語,給出圖1-2中的數據存儲D1〜D4的名稱。

參考答案:D1:學生狀態信息表 D2:學生基礎信息表 D3:校園場所信息表 D4:課表

“通過學生卡傳感器,採集學生心率、體溫(攝氏度)等健康指標及其所在位置等信息並記錄”記錄學生狀態信息,即D1學生狀態記錄表;

“學校管理人員對學生及其所用學生卡和班主任、課表(班級、 上課時間及場所等)、校園場所(名稱和所在位置區域)等基礎信息進行管理”,即D4課表信息記錄,D3校園場所記錄,D2學生基礎信息記錄。

【問題3】(3分)

根據說明和圖中術語,補充圖1-2中缺失的數據流及其起點和終點(三條即可)。

參考答案:

數據流 起點 終點
課表信息 D4 P3
校園場所信息 D3 P3
關聯家長 ID P6 D2

綜合題幹分析,“到課檢查。綜合比對學生狀態、課表以及所處校園場所之間的信息對學生到課情況進行判定。對曠課學生,向其家長和班主任發送曠課警告。”P3到課檢查缺失2條數據流入,分別是課表信息、校園場所信息,起點分別是 D4 、D3,終點是P3。

“對家長註冊申請進行審覈,更新家長狀態,將家長ID加入學生信息記錄中使家長與其子女進行關聯”此處缺失數據流,家長ID,起點爲P6,終點爲D2。

【問題4】(3分)

根據說明中術語,說明圖1-1中數據流“學生狀態”和“學生信息”的組成。

參考答案:

學生狀態:學生卡ID、學生心率、體溫(攝氏度)等健康指標及其所在位置等信息

學生信息:學生ID、學生卡ID、家長ID、班主任ID、班級

試題二:閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。

【說明】

某創業孵化基地管理若干孵化公司和創業公司,爲規範管理創業項目投資業務,需要開發一個信息系統。請根據下述需求描述完成該系統的數據庫設計。

【需求描述】

(1)記錄孵化公司和創業公司的信息。孵化公司信息包括公司代碼、公司名稱、法人代表名稱、註冊地址和一個電話;創業公司信息包括公司代碼、公司名稱和一個電話。 孵化公司和創業公司的公司代碼編碼不同。

(2)統一管理孵化公司和創業公司的員工。員工信息包括工號、身份證號、姓名、 性別、所屬公司代碼和一個手機號,工號唯一隻每位員工。

(3)記錄投資方信息,投資方信息包括投資方編號、投資方名稱和一個電話。

(4)投資方和創業公司之間依靠孵化公司牽線建立創業項目合作關係,具體實施由孵化公司的一位員工負責協調投資方和創業公司的一個創業項目。一個創業項目只屬於一個創業公司,但可以接受若干投資方的投資。創業項目信息包括項目編號、創業公司代碼、 投資方編號和孵化公司員工工號。

【概念模型設計】

根據需求階段收集的信息,設計的實體聯繫圖(不完整)如圖2-1所示。

img

【邏輯結構設計】

根據概念模型設計階段完成的實體聯繫圖,得出如下關係模式(不完整):

孵化公司(公司代碼,公司名稱,法人代表名稱,註冊地址,電話)

創業公司(公司代碼,公司名稱,電話)

員工(工量,身份證號,姓名,性別,(a),手機號)

投資方(投資方編號、投資方名稱,電話)

項目(項目編號,創業公司代碼,(b),孵化公司員工工號)

問題內容:

【問題1】(5分)

根據問題描述,補充圖2-1的實體聯繫圖。

參考答案:

(1)根據題幹描述,“統一管理孵化公司和創業公司的員工”,圖示給出孵化公司與員工1:*的聯繫,需要補充創業公司與員工1:*的聯繫;
(2)根據題幹描述,“具體實施由孵化公司的一位員工負責協調投資方和創業公司的一個創業項目。”這裏有一個三元聯繫,聯繫的實體應該是員工、投資方和創業公司,這個聯繫就是圖示中的“項目”,三方之間爲1:*:1聯繫。

【問題2】(4分)

補充邏輯結構設計結果中的(a)、(b)兩處空缺及完整性約束關係。

參考答案:

(a)公司代碼

(b)投資方編號

完整性約束

(a)主鍵:工號 外鍵:公司代碼

(b)主鍵:項目編號 外鍵:投資方編號、創業公司代碼、孵化公司員工工號

根據題幹描述“創業項目信息包括項目編號、創業公司代碼、投資方編號和孵化公司員工工號。”結合關係模式:
項目(項目編號,創業公司代碼,(b),孵化公司員工工號) ,缺少的部分爲投資方編號。根據一般情況,這裏的項目編號是針對單個項目而來,又因爲“具體實施由孵化公司的一位員工負責協調投資方和創業公司的一個創業項目。一個創業項目只屬於一個創業公司,但可以接受若干投資方的投資。” 所以本關係中每個創業項目只對應一個創業公司,一個員工協調,但可以對應多個投資方,因此項目關係的主鍵爲(項目編號,投資方編號)組合鍵。創業公司代碼是創業公司主鍵,投資方編號是投資方主鍵,孵化公司員工工號是員工主鍵,因此本關係存在投資方編號、創業公司編號、孵化公司員工工號三個外鍵。

【問題3】(6分)

若創業項目的信息還需要包括投資額和投資時間,那麼:

(1)是否需要增加新的實體來存儲投資額和投資時間?

(2)如果增加新的實體,請給出新實體的關係模式,並對圖2-1進行補充。如果不需 要增加新的實體,請將“投資額”和“投資時間”兩個屬性補充並連線到圖2-1合適的對象上,並對變化的關係模式進行修改。

參考答案:

關係本身可以具有屬性,根據題目要求,創業項目的信息還需要包括投資額和投資時間,這些內容可以直接添加到項目關係上,本題項目關係主鍵爲(項目編號,投資方)組合鍵,可以據此添加投資額和投資時間,因此不需要增加實體,可以直接在項目關係模式中增加這2個屬性即可。

試題三:閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。

【說明】

某快遞公司對每個發出的快遞進行跟蹤管理,需要建立一個快遞跟蹤管理系統,對該公司承接的快遞業務進行有效管理。

【需求描述】

1.公司在每個城市的每個街道都設有快遞站點。這些站點負責快遞的接收和投遞。站點信息包括站點地址、站點名稱、責任人、一部聯繫電話、開始營業時間、結束營業時間。 每個站點每天的營業時間相同。每個站點只能有一個責任人。

2.系統內需記錄快遞員、發件人的基本信息。這些信息包括姓名、身份證號、一個聯繫地址、一部聯繫電話。快遞站點的責任人由快遞員兼任,且每個快遞站點只有一個責任人。每個快遞員只負責一個快遞站點的攬件和快遞派送業務。發件人和快遞員需實名認證。

3.快遞需要提供詳實的信息,包括髮件人姓名、身份證號、一部發件人電話號碼、發件人地址、收件站點、收件人姓名、收件地址、一部收件人電話、投遞時間、物品類別、 物品名稱及物品價值。每個發件人和收件人在系統裏只能登記一個電話和地址。

4.每個快遞員接手一份快遞後,需在系統中錄入每個快遞的當前狀態信息,包括當前位置、收到時間、當前快遞員和上一段快遞員。狀態信息包括待攬件、投遞中、已簽收。 如果快遞己簽收,應記錄簽收人姓名及一個聯繫電話。每個快遞在一個站點只能對應一個負責的快遞員。

注:試題不需要考慮快遞退回的相關問題。

【邏輯結構設計】

根據上訴需求需求,設計出如下關係模式:

快遞(快遞編號,收件人姓名,收件地址編號,收件人電話,投遞時間,物品類別,物品名稱,物品價值),其中收件地址編號是地址實體的地址編號。

快遞員(姓名,身份證號,電話號碼,聯繫地址編號,工作站點編號)

快遞站點(站點編號,站點名稱,責任人編號,站點地址編號,開始營業時間,聯繫電話,結束營業時間)。責任人編號是負責該站點的快遞員的身份證號。

地址(地址編號,所在省,所在市,所在街道,其他),其他信息是需補充的地址信息。

快遞投遞(快遞編號,快遞員編號,發件人姓名,發件人身份證號,發件人電話號碼, 發件人地址編號),其中發件人地址編號爲發件人地址的地址編號,攬件站點編號爲接收該快遞的站點編號。

快遞跟蹤(快遞編號,當前負責人編號,前一負責人編號,當前狀態,收到時間, 當前站點編號)。

快遞簽收(快遞編號,簽收人姓名,簽收人聯繫電話)。

問題內容:

根據以上描述,回答下列問題:

【問題1】(6分)

對關係“快遞投遞”,請回答以下問題:

(1) 列舉出所有候選鍵。

(2) 它是否爲3NF,用100字以內文字簡要敘述理由。

(3) 將其分解爲BCNF,分解後的關係名依次爲:快遞投遞1,快遞投遞2,…,並 用下劃線標示分解後各關係模式的主鍵。

參考答案:

候選鍵:快遞編號

不是3NF,快遞投遞關係模式存在非主屬性對碼“快遞編號”的傳遞函數依賴,如快遞編號→發件人身份證號,發件人身份證號→(發件人姓名,發件人電話號碼,發件人地址編號);

快遞投遞1(發件人身份證號,發件人姓名,發件人電話號碼,發件人地址編號)
快遞投遞2(快遞編號,快遞員編號,發件人身份證號)

【問題2】(6分)

對關係“快遞跟蹤”,請回以下問題:

(1) 列舉出所有候選鍵。

(2) 它是否爲2NF,用100字以內文字簡要敘述理由。

(3) 將其分解爲BCNF,分解後的關係名依次爲:快遞跟蹤1,快遞跟蹤2,…,並 用下劃線標示分解後各關係模式的主鍵。

參考答案:

候選鍵:(快遞編號,當前負責人編號)

不是2NF,快遞追蹤關係模式存在非主屬性對碼的部分函數依賴,如當前負責人編號→當前站點編號

快遞追蹤1(快遞編號,當前快遞員編號,前一負責人編號,當前狀態,收到時間)
快遞追蹤2(當前快遞員編號,當前站點編號)

其實'當前站點編號'已經在站點信息中出現,並可以通過當前負責人編號查詢,無需再用關係模式處理。

【問題3】(3分)

快遞公司會根據快遞物品和距離收取快遞費,每件快遞需由發件人或收件人支付快遞費給公司。同一個發件人同時發起多個快遞,必須分別支付。快遞公司提供預支付和到付兩種支付方式。爲了統計快遞費的支付情況(詳細金額和時間),試增加“快遞費支付”關係模式,用100字以內文字簡要敘述解決方案。

參考答案:

快遞費支付(支付編號,快遞編號,支付方式,支付金額,支付時間,快遞員編號,支付人身份證號,支付狀態)

根據題幹要求,同一個發件人需要對多個快遞分別支付,因此需要記錄快遞編號; 快遞公司提供預支付和到付兩種支付方式,因此需要記錄支付方式;題幹指出統計快遞費支付情況(詳細金額和時間),因此需要記錄支付金額和支付時間;對於支付過程,應該由發件人或收件人支付給公司,可以理解爲實際操作是公司快遞員收取,因此需要記錄支付人身份證號,收費人編號(或快遞員編號),爲了方便統計,還可以增加支付編號,支付狀態等屬性。

試題四:閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應欄內。

【說明】

某學生信息管理系統的部分數據庫關係模式如下:

學生:Student ( stuno, stuname, stuage, stusex, schno),各屬性分別表示學生的學號、姓名、年齡、性 別,以及學生所屬學院的編號;

學院:School ( schno, schname, schstunum ),各屬性分別表示學院的編號、名稱及學生人數;

俱樂部:Club (clubno,clubname, clubyear, clubloc ),各屬性分別表示俱樂部的編號、名稱、成立年 份和活動地點;

參加:JoinClub ( stuno, clubno. joinyear ),各屬性分別表示學號、俱樂部編號,以及學生加入俱樂部 的年份。

有關關係模式的說明如下:

(1) 學生的性別取值爲‘F’和‘M' (F表示女性,M表示男性)。

(2) 刪除一個學院的記錄時,通過外鍵約束級聯刪除該學院的所有學生記錄。

(3) 學院表中的學生人數值與學生表中的實際人數要完全保持一致。也就是說,當學生表中增減記錄時,就要自動修改相應學院的人數。

問題內容:

根據以上描述,回答下列問題,將SQL語句的空缺部分補充完整。

【問題1】(4分)

請將下面創建學生表的SQL語句補充完整,要求定義實體完整性約束、參照完整性 約束,_以及其他完整性約束。

CREATE TABLE Student (

stuno CHAR(11) (a),

stuname VARCHAR(20),

stuage SMALLINT,

stusex CHAR(1) (b ),

schno CHAR(3) (c) ON DELETE (d));

參考答案:

(a)PRIMARY KEY

(b)CHECK ( stusex IN ('F','M') )

(c)REFERENCES School(schno)

(d)CASCADE

【問題2】(5分)

創建倶樂部人數視圖,能統計每個倶樂部已加入學生的人數,屬性有clubno> clubname 和clubstunum。對於暫時沒有學生參加的俱樂部,其人數爲0。此視圖的創建語句如下, 請補全。

CREATE VIEW CS_NUMBER ( clubno, clubname, clubstunum ) AS

SELECT JoinClub.clubno, (e) , (f)

FROM JoinClub, Club

WHERE JoinClub.clubno = Club.clubno

(g) BY JoinClub.clubno (h)

SELECT clubno, clubname, 0 FROM Club

WHERE clubno NOT IN

(SELECT DISTINCT clubno FROM (i));

參考答案:

(e)Club.clubname

(f)COUNT(JoinClub.stuno) AS clubstunum

(g)GROUP

(h)UNION

(i)JoinClub

【問題3】(4分)

每當系統中新加或刪除一個學生,就需要自動修改相應學院的人數,以便保持系統中學生人數的完整性與一致性。此功能由下面的觸發器實現,請補全。

CREATE TRIGGER STU_NUM_TRG AFTER INSERT OR DELETE ON (j)

REFERENCING new row AS nrow, old row AS orow

FOR EACH(k)

BEGIN

​ IF INSERTING THEN

​ UPDATE School (l)

​ END IF;

​ IF DELETING THEN

​ UPDATE School (m);

​ END IF;

END;

參考答案:

(j)Student

(k)row

(l)SET schstunum = schstunum +1 WHERE schno = nrow.schno

(m)SET schstunum = schstunum -1 WHERE schno = orow.schno

【問題4】(2分)

查詢年齡小於19歲的學生的學號、姓名及所屬學院名,要求輸出結果把同一個學院的學生排在一起。此功能由下面的SQL語句實現,請補全。

SELECT stuno, stuname, schname FROM Student, School WHERE Student.schno = School.schno

AND stuage <19 (n) BY (o);

參考答案:

(n)ORDER

(o)schname

試題五:閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。

【說明】某商業銀行賬務系統的部分關係模式如下:

賬戶表:Account (ano, aname, balance),其中屬性含義分別爲:賬戶號碼,賬戶名稱和賬戶餘額。

交易明細表:TranDetails (too, ano, ttime, toptr, amount, ttype),其中屬性分別爲:交易編號,賬戶號碼,交易時間,交易操作員,交易金額,交易類型(1-存款,2-取款,3-轉賬)。

餘額彙總表:AcctSums (adate, atime, allamt),其中屬性分別爲:彙總日期,彙總時間,總餘額。

常見的交易規則如下:

存/取款交易:操作員覈對用戶相關信息,在系統上執行存/取款交易。賬務系統増加/ 減少該賬戶餘額/並在交易明細表中增加一條存/取款交易明細。

轉賬交易:操作員覈對用戶相關信息,覈對轉賬交易賬戶信息,在系統上執行轉賬交易。賬務系統對轉出賬戶減少其賬戶餘額,對轉入賬戶增加其賬戶餘額,並在交易明細表中增加一條轉賬交易明細。

餘額彙總交易:將賬戶表中所有賬戶餘額累計彙總。

假定當前賬戶表中的數據記錄如表5-1所示。

img

問題內容:

請根據上述描述,回答以下問題。

【問題1】(3分)

假設在正常交易時間,賬戶上在進行相應存取款或轉賬操作時,要執行餘額彙總交易。下面是用SQL實現的餘額彙總程序,請補全空缺處的代碼。要求(不考慮併發性能)在 保證餘額彙總交易正確性的前提下,不能影響其他存取款或轉賬交易的正確性。

CREATE PROCEDURE AcctSum(OUT :Amts DOUBLE)

BEGIN

SET TRANSACTION ISOLATION LEVEL(a);

BEGIN TRANSACTION;

SELECT sum(balance) INTO : Amts FROM Accounts;

if error// error是由DBMS提供的上一句SQL的執行狀態

​ BEGIN

​ ROLLBACK;

​ return -2;

​ END

​ INSERT INTO AcctSums

​ VALUES (getDATE(), getTIME(), (b));

​ if error // error是由DBMS提供的上一句SQL的執行狀態

​ BEGIN

​ ROLLBACK;

​ return-3;

​ END

​ (c);

END

參考答案:

(a)SERIALIZABLE

(b):Amts

(c)COMMIT

空根據題幹要求“要求(不考慮併發性能)在保證餘額彙總交易正確性的前提下,不能影響其他存取款或轉賬交易的正確性。”因此對效率不作要求,對隔離要求比較高,選擇SERIALIZABLE方式。
READ UNCOMMITTED
執行髒讀或 0 級隔離鎖定,這表示不發出共享鎖,也不接受排他鎖。當設置該選項時,可以對數據執行未提交讀或髒讀;在事務結束前可以更改數據內的數值,也可以出現在數據集中或從數據集消失。該選項的作用與在事務內所有語句中的所有表上設置 NOLOCK 相同。這是四個隔離級別中限制最小的級別。

READ COMMITTED
指定在讀取數據時控制共享鎖以避免髒讀,但數據可在事務結束前更改,從而產生不可重複讀取或幻像數據。該選項是 SQL Server 的默認值。

REPEATABLE READ
鎖定查詢中使用的所有數據以防止其他用戶更新數據,但是其他用戶可以將新的幻像行插入數據集,且幻像行包括在當前事務的後續讀取中。因爲併發低於默認隔離級別,所以只在必要時才使用該選項。

SERIALIZABLE
在數據集上放置一個範圍鎖,以防止其他用戶在事務完成之前更新數據集或將行插入數據集內。這是四個隔離級別中限制最大的級別。因爲併發級別較低,所以應只在必要時才使用該選項。該選項的作用與在事務內所有 SELECT 語句中的所有表上設置 HOLDLOCK 相同。
(b)空是對參數的返回。
(c)空是事務正常提交結束,根據前面的格式可以看到,除了確認提交,還需要返回值,此時返回0。

【問題2】(8分)

引入排它鎖指令LX()和解鎖指令UX(),要求滿足兩段鎖協議和提交讀隔離級別。假設在進行餘額彙總交易的同時,發生了一筆轉賬交易。從101賬戶轉給104賬戶400元。 這兩筆事務的調度如表5-2所示。

img

(1)請補全表中的空缺處(a)、(b);

(2)上述調度結束後,彙總得到的總餘額是多少?

(3)該數據是否正確?請說明原因。

參考答案:

(a) 阻塞

(b) UX(101),UX(104),提交返回·

不正確

(1)(a)空讀取104賬戶餘額時,該數據已被加寫鎖,因此需要等待轉賬事務釋放鎖;(b)空是對鎖的釋放。
(2)本題主要考查的是,101賬戶餘額在加鎖之前已被讀取,會影響結果。最終結果應該是500+350+550+600=2000。
(3)問題2的計算結果並不正確,101讀取的是原始值而不是實時值,後面被轉賬事務作了修改。

【問題3】(4分)

在【問題2】的基礎上,引入共享鎖指令LS()和解鎖指令US()。對【問題2】中的調度進行重寫,要求滿足兩段鎖協議。兩個事務執行的某種調度順序如表'5-3所示,該調度順序使得彙總事務和轉賬事務形成死鎖。請補全表中的空缺處(a)、(b)。

img

參考答案:

(a) LX(104),更新104賬戶餘額

(b) LX(101),更新101賬戶餘額

共享鎖【S鎖】
又稱讀鎖,若事務T對數據對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。

排他鎖【X鎖】
又稱寫鎖。若事務T對數據對象A加上X鎖,事務T可以讀A也可以修改A,其他事務不能再對A加任何鎖,直到T釋放A上的鎖。這保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章