- 相關(guān)推薦
2010年9月全國(guó)計(jì)算機(jī)四級(jí)《數(shù)據(jù)庫(kù)工程師》筆試真題(下)
二、應(yīng)用題(每空2分,共30分)
(1)【1】文件支持多種記錄類型的存儲(chǔ),這種文件將來自多個(gè)關(guān)系表不同類型的記錄存儲(chǔ)在一起,可減少多表查詢時(shí)磁盤的訪問量,提高多表查詢的效率。
設(shè)有表T(c1,c2),c1的數(shù)據(jù)類型為char(2),要求其第I位的取值范圍為[1,9],第2位的取值范圍為[0, 9].實(shí)現(xiàn)此要求的約束表達(dá)式為CHECK(c1 LIKE“【2】”)。
(3)設(shè)有某種文件,當(dāng)向其中插入一條新記錄時(shí),首先讀文件頭,找到最末磁盤塊的地址后將最末磁盤塊讀入內(nèi)存緩沖區(qū),在緩沖區(qū)內(nèi)將新插入記錄寫入該數(shù)據(jù)塊的末尾,然
后將緩沖區(qū)中修改過的數(shù)據(jù)塊作為最末磁盤塊寫回磁盤文件。以這種方式組織的文件被稱為【3】。
(4)在保證數(shù)據(jù)一致性的加鎖協(xié)議中,【4】級(jí)加鎖協(xié)議要求事務(wù)在讀數(shù)據(jù)項(xiàng)之前必須先對(duì)該數(shù)據(jù)項(xiàng)加共享鎖,直到事務(wù)結(jié)束才釋放該鎖。
(5)利用日志技術(shù)進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)時(shí),為了使恢復(fù)子系統(tǒng)避免對(duì)整個(gè)日志文件進(jìn)行檢查,需要在日志文件中增加【5】記錄。
(6)數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的目標(biāo)是把概念設(shè)計(jì)階段得到的【6】模型轉(zhuǎn)換成所選定的數(shù)據(jù)庫(kù)管理系統(tǒng)支持的數(shù)據(jù)模型。
在各種數(shù)據(jù)環(huán)境中,粒度用于描述數(shù)據(jù)的綜合程度。設(shè)某系統(tǒng)中有商品銷售表(商品號(hào),銷售量,單價(jià),日期,時(shí)間)和商品周銷售表(商品號(hào),周銷售量,周),則商品銷售表的粒度級(jí)要【7】于商品周銷售表的粒度級(jí)。若兩個(gè)表的時(shí)間跨度相同,則商品銷售表中存放的數(shù)據(jù)量要【8】于商品周銷售表的數(shù)據(jù)量。
(8)設(shè)有商品表(商品號(hào),商品名,單價(jià))和銷售表(商品號(hào),銷售時(shí)間,銷售數(shù)量)。
現(xiàn)要查詢單價(jià)高于100元的全部商品的銷售總次數(shù)和總數(shù)量,包括沒有被賣出過的商品(沒有被賣出過的商品的銷售總次數(shù)和總數(shù)量置為0)。請(qǐng)補(bǔ)全如下語句:
SELECT商品表。商品號(hào),銷售總次數(shù)=【9】,
銷售總數(shù)量=SUM(銷售數(shù)量)
FROM商品表【10】銷售表
0N商品表。商品號(hào)=銷售表。商品號(hào)
WHERE單價(jià)>100
GROUP BY商品表。商品號(hào)
(9)在SQL Server 2000中,設(shè)u1是某數(shù)據(jù)庫(kù)中的用戶,若要使u1在該數(shù)據(jù)庫(kù)中只具有查詢?nèi)坑脩舯淼臋?quán)限。請(qǐng)補(bǔ)全如下語句:
EXEC sp_addrolemember“【11】”,“【12】”
(10)SQL Server 2000內(nèi)置的系統(tǒng)管理員賬戶是【13】
(11)設(shè)在SQL Server 2000平臺(tái)一民對(duì)數(shù)據(jù)庫(kù)SalesDB進(jìn)行了如下圖所示的各份操作。
己知這三次備份操作均備份在設(shè)備BK上,且該設(shè)備只包含這三個(gè)備份操作的結(jié)果。在數(shù)據(jù)庫(kù)出現(xiàn)故障后,為盡可能減少數(shù)據(jù)丟失,需要恢復(fù)所有的備份。請(qǐng)補(bǔ)全如下用于恢復(fù)日志備份1的SQL語句:
RESTORE LOG SalesDB FROM BK
WITH【14】
【15】
三、設(shè)計(jì)與應(yīng)用題(共30分)
(1)已知某教務(wù)管理系統(tǒng)有下列關(guān)系模式(帶下劃線的屬性是主碼):
系(系號(hào),系名)
學(xué)生(系號(hào),姓名,性別,入學(xué)日期,正常畢業(yè)日期,所在系號(hào))
課程(課程號(hào),課程名,學(xué)分,開課系號(hào),教師號(hào))
選課(學(xué)號(hào),課程號(hào),成績(jī))
教師(教師號(hào),姓名,職稱,所在系號(hào))
、僬(qǐng)根據(jù)給出的關(guān)系模式畫出該系統(tǒng)的ER圖,圖中忽略實(shí)體集的屬性,但如果實(shí)體集之間的聯(lián)系有屬性則需要給出聯(lián)系的屬性。(6分)
、陔S著教學(xué)改革的需要,該系統(tǒng)需要滿足下列需求:
I.需為課程增加先修課信息(一門課程可有多門先修課程);
II.一門課程可由多名教師講授,一名教師可以講授多門課程。
請(qǐng)根據(jù)以上需求修改關(guān)系模式,僅列出有改動(dòng)的關(guān)系模式,并使每個(gè)關(guān)系模式滿足3NF。(4分)
(2)在SQLServer2000的某數(shù)據(jù)庫(kù)中有如下兩張關(guān)系表:
學(xué)生表(學(xué)號(hào),姓名,性別,系號(hào)),學(xué)號(hào)為主碼
系表(系號(hào),系名,系簡(jiǎn)稱),系號(hào)為主碼
①在數(shù)據(jù)庫(kù)中執(zhí)行如下T-SQL代碼:
DECLARE @DePtID varchar(10)
DECLARE @cnt int
set @cnt=O
DECLARE cursor1 cursor FOR SELEET系號(hào)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學(xué)生表WHERE系號(hào)=@DeptID
set @Cnt=@cnt+@temp_cnt
FETCH NEXT FROM cursor1 INTO ODePtID
END
CLOSE cursor1
DEALLOCATE cursor1
SELECT @cnt
執(zhí)行過程中發(fā)現(xiàn)速度比較慢,為了解決性能問題,需在功能不變的情況下,將此T-SQL代碼改為一條SQL語句,請(qǐng)寫出此SQL語句(語句中不能含有子查詢)并說明為什么此種修改可以提高性能。(5分)
、谠O(shè)在學(xué)生表的(姓名,系號(hào))列上建有一個(gè)復(fù)合索引,該索引是否有助于提高下列兩個(gè)語句的查詢效率?并說明原因。(5分)
SELECT*FROM學(xué)生表 WHERE系號(hào)='1';
SELEET*FRoM學(xué)生表WHERE姓名=‘張三';
(3)在SQL server 2000中,設(shè)有圖書表(書號(hào),書名,類別,單價(jià))和圖書印刷表(書號(hào),印刷日期,印刷數(shù)量,印次),每個(gè)書號(hào)代表一種圖書。書號(hào)、書名和類別的數(shù)據(jù)類型均為varehar(20),單價(jià)、印刷數(shù)量和印次的數(shù)據(jù)類型均為int,印刷日期的數(shù)據(jù)類型大smalldatetime.現(xiàn)需查詢指定類別的圖書在指定年份后(含指定年份)累計(jì)印刷總數(shù)量。請(qǐng)寫出實(shí)現(xiàn)該功能的標(biāo)量函數(shù)。(10分)
【9月全國(guó)計(jì)算機(jī)四級(jí)《數(shù)據(jù)庫(kù)工程師》筆試真題下】相關(guān)文章:
全國(guó)計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)工程師筆試真題及答案09-03
最新四級(jí)數(shù)據(jù)庫(kù)工程師筆試真題09-26
計(jì)算機(jī)等級(jí)考試四級(jí)數(shù)據(jù)庫(kù)工程師筆試真題09-01
9月全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)數(shù)據(jù)庫(kù)工程師筆試真題及答案08-15
2008年上半年全國(guó)計(jì)算機(jī)四級(jí)考試《網(wǎng)絡(luò)工程師》真題下08-04
計(jì)算機(jī)四級(jí)考試數(shù)據(jù)庫(kù)筆試真題(精選2套)11-26
全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)網(wǎng)絡(luò)工程師筆試真題06-09