當前位置:才華齋>計算機>計算機四級>

2010年9月全國計算機四級《資料庫工程師》筆試真題(下)

計算機四級 閱讀(1.17W)

 二、應用題(每空2分,共30分)

2010年9月全國計算機四級《資料庫工程師》筆試真題(下)

(1)【1】檔案支援多種記錄型別的儲存,這種檔案將來自多個關係表不同型別的記錄儲存在一起,可減少多表查詢時磁碟的訪問量,提高多表查詢的效率。

設有表T(c1,c2),c1的資料型別為char(2),要求其第I位的取值範圍為[1,9],第2位的取值範圍為[0, 9].實現此要求的約束表示式為CHECK(c1 LIKE“【2】”)。

(3)設有某種檔案,當向其中插入一條新記錄時,首先讀檔案頭,找到最末磁碟塊的地址後將最末磁碟塊讀入記憶體緩衝區,在緩衝區內將新插入記錄寫入該資料塊的末尾,然

後將緩衝區中修改過的資料塊作為最末磁碟塊寫回磁碟檔案。以這種方式組織的`檔案被稱為【3】。

(4)在保證資料一致性的加鎖協議中,【4】級加鎖協議要求事務在讀資料項之前必須先對該資料項加共享鎖,直到事務結束才釋放該鎖。

(5)利用日誌技術進行資料庫恢復時,為了使恢復子系統避免對整個日誌檔案進行檢查,需要在日誌檔案中增加【5】記錄。

(6)資料庫邏輯設計的目標是把概念設計階段得到的【6】模型轉換成所選定的資料庫管理系統支援的資料模型。

在各種資料環境中,粒度用於描述資料的綜合程度。設某系統中有商品銷售表(商品號,銷售量,單價,日期,時間)和商品周銷售表(商品號,周銷售量,周),則商品銷售表的粒度級要【7】於商品周銷售表的粒度級。若兩個表的時間跨度相同,則商品銷售表中存放的資料量要【8】於商品周銷售表的資料量。

(8)設有商品表(商品號,商品名,單價)和銷售表(商品號,銷售時間,銷售數量)。

現要查詢單價高於100元的全部商品的銷售總次數和總數量,包括沒有被賣出過的商品(沒有被賣出過的商品的銷售總次數和總數量置為0)。請補全如下語句:

SELECT商品表。商品號,銷售總次數=【9】,

銷售總數量=SUM(銷售數量)

FROM商品表【10】銷售表

0N商品表。商品號=銷售表。商品號

WHERE單價>100

GROUP BY商品表。商品號

(9)在SQL Server 2000中,設u1是某資料庫中的使用者,若要使u1在該資料庫中只具有查詢全部使用者表的許可權。請補全如下語句:

EXEC sp_addrolemember“【11】”,“【12】”

(10)SQL Server 2000內建的系統管理員賬戶是【13】

(11)設在SQL Server 2000平臺一民對資料庫SalesDB進行了如下圖所示的各份操作。

己知這三次備份操作均備份在裝置BK上,且該裝置只包含這三個備份操作的結果。在資料庫出現故障後,為儘可能減少資料丟失,需要恢復所有的備份。請補全如下用於恢復日誌備份1的SQL語句:

RESTORE LOG SalesDB FROM BK

WITH【14】

【15】

 三、設計與應用題(共30分)

(1)已知某教務管理系統有下列關係模式(帶下劃線的屬性是主碼):

系(系號,系名)

學生(系號,姓名,性別,入學日期,正常畢業日期,所在系號)

課程(課程號,課程名,學分,開課系號,教師號)

選課(學號,課程號,成績)

教師(教師號,姓名,職稱,所在系號)

①請根據給出的關係模式畫出該系統的ER圖,圖中忽略實體集的屬性,但如果實體集之間的聯絡有屬性則需要給出聯絡的屬性。(6分)

②隨著教學改革的需要,該系統需要滿足下列需求:

I.需為課程增加先修課資訊(一門課程可有多門先修課程);

II.一門課程可由多名教師講授,一名教師可以講授多門課程。

請根據以上需求修改關係模式,僅列出有改動的關係模式,並使每個關係模式滿足3NF。(4分)

(2)在SQLServer2000的某資料庫中有如下兩張關係表:

學生表(學號,姓名,性別,系號),學號為主碼

系表(系號,系名,系簡稱),系號為主碼

①在資料庫中執行如下T-SQL程式碼:

DECLARE @DePtID varchar(10)

DECLARE @cnt int

set @cnt=O

DECLARE cursor1 cursor FOR SELEET系號FROM系表

WHERE系名LIKE'%電%'

OPEN cursorl

FETCH NEXT FROM cursor1 INTO @DePtID

WHILE @@FETCH_STATUS=O

BEGIN

DECLARE @temp_cnt int

sELECT @temp_cnt=COUNT(*)FROM學生表WHERE系號=@DeptID

set @Cnt=@cnt+@temp_cnt

FETCH NEXT FROM cursor1 INTO ODePtID

END

CLOSE cursor1

DEALLOCATE cursor1

SELECT @cnt

執行過程中發現速度比較慢,為了解決效能問題,需在功能不變的情況下,將此T-SQL程式碼改為一條SQL語句,請寫出此SQL語句(語句中不能含有子查詢)並說明為什麼此種修改可以提高效能。(5分)

②設在學生表的(姓名,系號)列上建有一個複合索引,該索引是否有助於提高下列兩個語句的查詢效率?並說明原因。(5分)

SELECT*FROM學生表 WHERE系號='1';

SELEET*FRoM學生表WHERE姓名=‘張三';

(3)在SQL server 2000中,設有圖書表(書號,書名,類別,單價)和圖書印刷表(書號,印刷日期,印刷數量,印次),每個書號代表一種圖書。書號、書名和類別的資料型別均為varehar(20),單價、印刷數量和印次的資料型別均為int,印刷日期的資料型別大smalldatetime.現需查詢指定類別的圖書在指定年份後(含指定年份)累計印刷總數量。請寫出實現該功能的標量函式。(10分)