【文章內(nèi)容簡介】
iods smallint check (Periods0), Property char(4) check (Property in (39。必修 39。, 39。選修 39。)) ) 創(chuàng)建 SC 表的 SQL 語句為: CREATE TABLE SC ( Sno char(7) , Cno char(10) , Grade smalldate check(Grade between 0 and 100), Primary key(Sno, Cno), Foreign key (Sno) references Student(Sno), Foreign key(Cno) references Course(Cno) ) 答案 ( 1) Alter Table SC add XKLB char(4) ( 2) Alter Table Course Alter Column Periods tinyint ( 3) Alter Table Course Drop Column Property 答案 ( 1) select sno, sum(grade) 總成績 , avg(grade) 平均成績 , count(*) 選課門數(shù) from sc group by sno having count(*) 2 ( 2) select sno, sum(grade) 總成績 from sc group by sno having sum(grade) 200 ( 3) select sname, sdept from Student join SC on = where o = C0239。 ( 4) select sname, o, grade from student s join sc on = where grade 80 Order by grade desc ( 5) select sname, ssex, grade from student s join sc on = join course c on = where sdept = 39。計算機(jī)系 39。 and ssex = 39。男 39。 and ame = 39。數(shù)據(jù)庫基礎(chǔ) 39。 ( 6) select , sname, o, grade from Student s left join SC on = ( 7) select top 3 , sname, sdept, grade from Student s join SC on = join Course c on = where ame = 39。數(shù)據(jù)庫基礎(chǔ) 39。 order by grade desc ( 8) select , , from sc as t1 join sc as t2 on = where ( 9) select , ame from course c left join sc on = where is null ( 10) select sname,ame, grade from student s join sc on = join course c on = where sdept = 39。計算機(jī)系 39。 and grade ( select avg(grade) from sc) ( 11) select sname,sdept,grade from student s join sc on = join course c on = where grade = ( select min(grade) from sc where o in ( select o from course where ame = 39。vb39。)) and ame = 39。vb39。 ( 12) select 學(xué)號 ,sname 姓名 , case sdept when 39。計算機(jī)系 39。 then 39。CS39。 when 39。信息系 39。 then 39。IS39。 when 39。數(shù)學(xué)系 39。 then 39。MA39。 else 39。OTHER39。 end as 所在系 ,grade 成績 from student s join sc on = join course c on = where ame = 39。vb39。 ( 13) select , case when count() 100 then 39。人多 39。 when count() between 40 and 100 then 39。一般 39。 when count() 40 then 39。較少 39。 when count() =0 then 39。無人選 39。 end as 選課人數(shù) from sc right join course c on = group by ( 14) insert into Course values(39。C10039。, 39。Java39。, 32, ?選修 ?) ( 15) delete from sc where grade 50 ( 16)( a)用連接查詢實(shí)現(xiàn) delete from sc from sc join student s on = where sdept = 39。信息系 39。 and grade 50 ( b)用子查詢實(shí)現(xiàn) delete from sc where sno in ( select sno from student where sdept = 39。信息系 39。 ) and grade 50 ( 17) update sc set grade = grade + 10 where o = 39。c0139。 ( 18) ( a) 用子查詢實(shí)現(xiàn) update sc set grade = grade + 10 where sno in ( select sno from student where sdept = 39。計算機(jī)系 39。 ) and o in ( select o from course where ame = 39。計算機(jī)文化學(xué) 39。 ) ( b)用連接實(shí)現(xiàn) update sc set grade = grade 10 from student s join sc on = join course c on = where sdept = 39。計算機(jī)系 39。 and ame = 39。計算機(jī)文化學(xué) 39。 答案 :索引的作用是加快數(shù)據(jù)的查詢速度。一般分為聚集索引和非聚集索引兩種。 答案 不對,聚集索引也可以不是唯一性索引。反過來,唯一性索引也不一定是聚集索引。 答案 :對。如果是非聚集索引,則系統(tǒng)不調(diào)整數(shù)據(jù)的物理存放順序。 答案 ( 1) CREATE INDEX NonCluIdx_Sname on Student(Sname) ( 2) CREATE UNIQUE CLUSTERED INDEX CluUni_Idx on SC(Sno) 答案 視圖的作用包括 :封裝了復(fù)雜的查詢語句,使用戶能從多角度看到同一數(shù)據(jù),提高了數(shù)據(jù)的安全性以及提供了一定程度的邏輯獨(dú)立性。 答案 ( 1) CREATE VIEW V1 AS select Sno, Sname, Sdept, Cno, Cname, Periods from Student s join SC on = join Course c on = ( 2) CREATE VIEW V2 AS select Sno as 學(xué)號 , avg(grade) as 平均成績 group by Sno 第 9章習(xí)題參考答案 答案 ( 1) 事務(wù)是構(gòu)成數(shù)據(jù)庫應(yīng)用中一個獨(dú)立邏輯工作單元的操作的集合,也是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個程序執(zhí)行單元。 ( 2) 定義在多個事務(wù)上的調(diào)度是這些事務(wù)的所有操作的一個執(zhí)行序列,代表了這些操作的執(zhí)行順序。 ( 3) 事務(wù) Ti 的操作 Ii與事務(wù) Tj的操作 Ij是沖突的,當(dāng)且僅當(dāng) Ii 和 Ij訪問數(shù)據(jù)庫中同一個數(shù)據(jù)項(xiàng) Q,并且 Ii 和 Ij中至少有一個是寫操作 write(Q)。 ( 4) 如果一個并發(fā)調(diào)度沖突等價于某個串行調(diào)度,則稱該并發(fā)調(diào)度是沖突可串行的。 ( 5) 死鎖是指數(shù)據(jù)庫系統(tǒng)中部分或全部事務(wù)由于無法獲得對需要訪問的數(shù)據(jù)項(xiàng)的控制權(quán)而處于等待狀態(tài),并且將一直等待下去的一種系統(tǒng)狀態(tài)。 答案 原子性指事務(wù)對數(shù)據(jù)庫的所有操作是一個不可分割的工作單元。這些操作要么全部執(zhí)行,要么一個也不執(zhí)行。 一致性 指當(dāng)事務(wù)獨(dú)立執(zhí)行時,其執(zhí)行結(jié)果應(yīng)維護(hù)數(shù)據(jù)庫的一致性,即數(shù)據(jù)庫不會因事務(wù)執(zhí)行而遭受破壞。事務(wù)應(yīng)使數(shù)據(jù)庫從一個一致性狀態(tài)轉(zhuǎn)到另外一個一致性狀態(tài)。 隔離性指當(dāng)多個事務(wù)并發(fā)執(zhí)行時 ,系統(tǒng)應(yīng)保證一個事務(wù)的執(zhí)行結(jié)果不受其它事務(wù)的干擾,事務(wù)并發(fā)執(zhí)行結(jié)果與這些事務(wù)串行執(zhí)行時的結(jié)果是一樣的。 持久性指一個事務(wù)一旦 成功 完成全部操作,則它對數(shù)據(jù)庫的所有更新就永久地反映在數(shù)據(jù)庫中。即使以后系統(tǒng)發(fā)生了故障 。 答案 1 級加鎖協(xié)議要求事務(wù) T 在修改數(shù)據(jù)項(xiàng) Q之前必須先對 Q 加 X鎖,直到事務(wù)結(jié)束才釋放該鎖。事務(wù)結(jié)束包括正常結(jié)束( mit)和非正常結(jié)束( rollback)。但事務(wù)如果只是讀 Q 而不對其進(jìn)行修改,是不需要對 Q 加鎖的。 2級加鎖協(xié)議是在 1級加鎖協(xié)議基礎(chǔ)上,要求事務(wù) T在讀取數(shù)據(jù)項(xiàng) Q之前必須先對 其加 S鎖,讀完 Q后可以立即釋放 S鎖。 3 級加鎖協(xié)議則是在 1 級加鎖協(xié)議基礎(chǔ)上,要求事務(wù) T 在讀取數(shù)據(jù)項(xiàng) Q 之前必須先對其加 S 鎖,但是需要等到事務(wù)結(jié)束時才釋放該 S 鎖。 答案 2 階段鎖協(xié)議將每個事務(wù)的執(zhí)行過程分為加鎖階段和解鎖階段。在加鎖階段,事務(wù)可以申請獲得數(shù)據(jù)項(xiàng)上的任何類型的鎖,但不允許釋放任何鎖。在解鎖階段,事務(wù)可以釋放任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但不能再申請任何鎖。每個事務(wù)開始執(zhí)行后就進(jìn)入了加鎖階段。當(dāng)?shù)谝淮吾尫沛i后,即轉(zhuǎn)入解鎖階段。 答案 解決死鎖主要采用死鎖預(yù)防和死鎖檢測與恢復(fù)兩類方法 。 死鎖預(yù)防利用死鎖預(yù)防協(xié)議,通過破壞死鎖產(chǎn)生的必要條件來避免系統(tǒng)進(jìn)入死鎖狀態(tài),防止死鎖發(fā)生。 死鎖檢測與恢復(fù)則是允許系統(tǒng)進(jìn)入死鎖狀態(tài),并且 定期檢查系統(tǒng)是否發(fā)生死鎖。當(dāng)發(fā)現(xiàn)系統(tǒng) 發(fā)生死鎖后,采取相應(yīng)的恢復(fù)機(jī)制使系統(tǒng)擺脫死鎖狀態(tài)。 答案 活鎖產(chǎn)生的原因是在系統(tǒng)非死鎖狀態(tài)下,某些事務(wù)由于始終無法獲得對所需訪問的數(shù)據(jù)項(xiàng)的控制權(quán)而長期等待下去,無法繼續(xù)執(zhí)行。 答案 Ti Tj LockX(C) read(C) C:=C+1 write(C) LockX(A) unlock(C) read(A) A:=A*2 write(A) unlock(A) LockX(A) read(A) A:=A+1 write(A) LockX(B) read(B) B:=B+1 write(B) unlock(A) unlock(B) 答案 并發(fā)調(diào)度 S9 不等價于串行調(diào)度 T1。 T2。 T3。 T4。因?yàn)?T1中的 write(Q)和 T2 中的read(Q)是沖突操作,操作 write(Q)在操作 read(Q)后面執(zhí)行,無法交換這 2 個操作的執(zhí)行順序,使 T1和 T2 依 次順序串行執(zhí)行。 第 10章習(xí)題參考答案 答案 ( 1) A ( 2) C ( 3) C ( 4) BC ( 5) ABC ( 6) D 答案 ( 1)數(shù)據(jù)庫的試運(yùn)行 ( 2) 管理員手動實(shí)現(xiàn)的監(jiān)控 ( 3)答案有多種組合,可在 合理使用索引、 避免或簡化排序、 消除對大型表行數(shù)據(jù)的順序存取、避免相關(guān)子查詢、避免困難的正規(guī)表達(dá)式、使用臨時表加速查詢、用排序來取代非順序磁盤存取、 不充分的連接條件、存儲過程、不要隨意使用游標(biāo)、事務(wù)處理中任選三個作答。 第 11 章習(xí)題參考答案 答案 ( 1) C ( 2) D ( 3) D ( 4) C 答案 ( 1) 事務(wù)內(nèi)部的故障、系統(tǒng)故障、介質(zhì)故障以及計算機(jī)病毒故障 ( 2)冗余數(shù)據(jù)