摘要:如何備考才能順利通過(guò)軟考數(shù)據(jù)庫(kù)系統(tǒng)工程師考試?根據(jù)多年培訓(xùn)經(jīng)驗(yàn)希賽軟考學(xué)院講師老師的經(jīng)驗(yàn),除了要熟讀教程還需反復(fù)練習(xí)歷年真題;也可以根據(jù)自己的情況做出合理的時(shí)間安排以及是否參加培訓(xùn)班,以下是由希賽網(wǎng)整理的2009年上半年數(shù)據(jù)庫(kù)系統(tǒng)工程師下午真題,希望對(duì)大家有所幫助。
如何備考才能順利通過(guò)軟考數(shù)據(jù)庫(kù)系統(tǒng)工程師考試?根據(jù)多年培訓(xùn)經(jīng)驗(yàn)希賽軟考網(wǎng)講師老師的經(jīng)驗(yàn),除了要熟讀教程還需反復(fù)練習(xí)歷年真題;也可以根據(jù)自己的情況做出合理的時(shí)間安排以及是否參加培訓(xùn)班>>>點(diǎn)擊進(jìn)入數(shù)據(jù)庫(kù)在線網(wǎng)絡(luò)課堂
以下是由希賽網(wǎng)整理的2009年上半年數(shù)據(jù)庫(kù)系統(tǒng)工程師下午真題,希望對(duì)大家有所幫助。
● 閱讀下列說(shuō)明,回答問(wèn)題1和問(wèn)題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
假設(shè)某大型商業(yè)企業(yè)由商品配送中心和連鎖超市組成,其中商品配送中心包括采購(gòu)、財(cái)務(wù)、配送等部門。為實(shí)現(xiàn)高效管理,設(shè)計(jì)了商品配送中心信息管理系統(tǒng),其主要功能描述如下:
1. 系統(tǒng)接收由連鎖超市提出的供貨請(qǐng)求,并將其記錄到供貨請(qǐng)求記錄文件。
2. 在接到供貨請(qǐng)求后,從商品庫(kù)存記錄文件中進(jìn)行商品庫(kù)存信息查詢。如果庫(kù)存滿足供貨請(qǐng)求,則給配送處理發(fā)送配送通知;否則,向采購(gòu)部門發(fā)出缺貨通知。
3. 配送處理接到配送通知后,查詢供貨請(qǐng)求記錄文件,更新商品庫(kù)存記錄文件,并向配送部門發(fā)送配送單,在配送貨品的同時(shí)記錄配送信息至商品配送記錄文件。
4. 采購(gòu)部門接到缺貨通知后,與供貨商洽談,進(jìn)行商品采購(gòu)處理,合格商品入庫(kù),并記錄采購(gòu)清單至采購(gòu)清單記錄文件、向配送處理發(fā)出配送通知,同時(shí)通知財(cái)務(wù)部門給供貨商支付貨款。
該系統(tǒng)采用結(jié)構(gòu)化方法進(jìn)行開(kāi)發(fā),得到待修改的數(shù)據(jù)流圖(如圖1-1所示)。
【問(wèn)題1】(8分)
使用【說(shuō)明】中的詞語(yǔ),給出圖 1-1 中外部實(shí)體 E1 至 E4 的名稱和數(shù)據(jù)存儲(chǔ) D1 至D4的名稱。
【問(wèn)題2】(7分)
圖 1-1 中存在四處錯(cuò)誤數(shù)據(jù)流,請(qǐng)指出各自的起點(diǎn)和終點(diǎn);若將上述四條錯(cuò)誤數(shù)據(jù)流刪除,為保證數(shù)據(jù)流圖的正確性,應(yīng)補(bǔ)充三條數(shù)據(jù)流,請(qǐng)給出所補(bǔ)充數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。(起點(diǎn)和終點(diǎn)請(qǐng)采用數(shù)據(jù)流圖1-1中的符號(hào)或名稱)
● 閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】某網(wǎng)上書店后臺(tái)數(shù)據(jù)庫(kù)的部分關(guān)系模式如下:
會(huì)員(會(huì)員編號(hào),用戶名,密碼,姓名,地址,郵編,電話,消費(fèi)額,積分)
圖書(圖書編號(hào),類型名稱,圖書名稱,作者,出版社,出版日期,ISBN,價(jià)格)
訂單(訂單編號(hào),用戶名,銷售額,訂購(gòu)日期,出貨日期)
訂單明細(xì)(訂單明細(xì)編號(hào),訂單編號(hào),圖書編號(hào),數(shù)量)
【問(wèn)題1】(3分)
下面是創(chuàng)建訂單關(guān)系的SQL語(yǔ)句,訂單編號(hào)識(shí)別一個(gè)訂單,用戶名為訂購(gòu)圖書的會(huì)員用戶名,且不能為空。要求訂購(gòu)日期不能大于出貨日期。請(qǐng)將空缺部分補(bǔ)充完整。
CREATE TABLE 訂單(
訂單編號(hào) CHAR(6) (a),
用戶名 VARCHAR(40) NOT NULL (b)
銷售額 FLOAT ,
訂購(gòu)日期 DATE NOT NULL ,
出貨日期 DATE (c)) ;
【問(wèn)題2】(10分)
請(qǐng)完成下列查詢的SQL語(yǔ)句。
(1)查詢名稱中包含“數(shù)據(jù)庫(kù)”的圖書的圖書名稱,作者,出版社和出版日期。
SELECT (d)
FROM 圖書
WHERE 圖書名稱(e) ;
(2)查詢提供銷售(圖書表中有)但沒(méi)有銷售過(guò)(沒(méi)在訂單明細(xì)表中出現(xiàn))的圖書名稱和出版社。
SELECT 圖書名稱, 出版社
FROM圖書
WHERE NOT EXISTS (
SELECT (f)
FROM訂單明細(xì)
WHERE (g) ) ;
(3)查詢訂購(gòu)圖書數(shù)量最多的會(huì)員名及其訂購(gòu)的數(shù)量。
SELECT 用戶名, (h)
FROM訂單, 訂單明細(xì)
WHERE (i)
GROUP BY 用戶名
HAVING (j)
( SELECT SUM(數(shù)量)
FROM 訂單, 訂單明細(xì)
WHERE 訂單.訂單編號(hào) = 訂單明細(xì).訂單編號(hào)
GROUP BY 用戶名) ;
(4)為了統(tǒng)計(jì)會(huì)員的購(gòu)買行為信息,實(shí)施有意義的客戶關(guān)懷策略,查詢會(huì)員的平均訂購(gòu)間隔時(shí)間,考慮多次購(gòu)買圖書和一次購(gòu)買圖書的情況(其中,DATEDIFF 函數(shù)表示兩個(gè)日期之間的天數(shù))。
SELECT 用戶名, CASE WHEN(k)
THEN DATEDIFF(MAX(訂購(gòu)日期), MIN(訂購(gòu)日期)) / (l)
ELSE DATEDIFF (CURRENT_TIMESTAMP, MIN(訂購(gòu)日期))
END AS AVG_GAP
FROM 訂單
(m) ;
【問(wèn)題3】(2分)
會(huì)員訂購(gòu)圖書后,將本次訂購(gòu)的銷售額累加到該會(huì)員的消費(fèi)額中,并按照本次訂單的銷售額計(jì)算積分累加到該會(huì)員的積分中(每20元增加1個(gè)積分,不足20元不計(jì)入積分)。下面用觸發(fā)器實(shí)現(xiàn)該需求,請(qǐng)?zhí)畛淇杖辈糠帧?/span>
CREATE TRIGGER 會(huì)員積分_TRIGGER AFTER (n)
REFERENCING NEW ROW AS NROW
BEGIN
UPDATE 會(huì)員
SET 消費(fèi)額 = 消費(fèi)額 + NROW.銷售額, (o)
WHERE 用戶名 = NROW.用戶名
END
● 閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【試題說(shuō)明】
某集團(tuán)公司擁有多個(gè)大型連鎖商場(chǎng),公司需要構(gòu)建一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)便于管理其業(yè)務(wù)運(yùn)作活動(dòng)。
【需求分析結(jié)果】
1. 商場(chǎng)需要記錄的信息包括商場(chǎng)編號(hào)(商場(chǎng)編號(hào)不重復(fù))、商場(chǎng)名稱、地址和聯(lián)系電話。某商場(chǎng)信息如表1-1所示。
2. 每個(gè)商場(chǎng)包含不同的部門,部門需要記錄的信息包括部門編號(hào)(不同商場(chǎng)的部門編號(hào)不同)、部門名稱、位置分布和聯(lián)系電話。某商場(chǎng)的部門信息如表1-2所示。
3. 每個(gè)部門雇用了多名員工處理日常事務(wù),每名員工只能屬于一個(gè)部門(新進(jìn)員工在培訓(xùn)期不隸屬于任何部門)。員工需要記錄的信息包括員工編號(hào)、姓名、崗位、電話號(hào)碼和工資。員工信息如表1-3所示。
4. 每個(gè)部門的員工中有一個(gè)是經(jīng)理,每個(gè)經(jīng)理只能管理一個(gè)部門。系統(tǒng)要記錄每個(gè)經(jīng)理的任職時(shí)間。
【概念模型設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖和關(guān)系模式(不完整)如下:
【關(guān)系模式設(shè)計(jì)】
商場(chǎng)(商場(chǎng)編號(hào),商場(chǎng)名稱,地址,聯(lián)系電話)
部門(部門編號(hào),部門名稱,位置分布,聯(lián)系電話,(a) )
員工(員工編號(hào),姓名,崗位,電話號(hào)碼,工資,(b) )
經(jīng)理( (c),任職時(shí)間)
【問(wèn)題1】
根據(jù)問(wèn)題描述,補(bǔ)充四個(gè)聯(lián)系,完善圖1-1的實(shí)體聯(lián)系圖。
【問(wèn)題2】
根據(jù)實(shí)體聯(lián)系圖,將關(guān)系模式中的空(a)~(c)補(bǔ)充完整,并分別給出部門、員工和經(jīng)理關(guān)系模式的主鍵和外鍵。
【問(wèn)題3】
為了使商場(chǎng)有緊急事務(wù)時(shí)能聯(lián)系到輪休的員工,要求每位員工必須且只能登記一位緊急聯(lián)系人的姓名和聯(lián)系電話(假設(shè)不同員工可以登記相同的緊急聯(lián)系人)。中還需添加的實(shí)體是(d),該實(shí)體與圖1-1中的員工關(guān)系存在(e)聯(lián)系。給出該實(shí)體的關(guān)系模式。
● 閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
M公司為某賓館設(shè)計(jì)賓館機(jī)票預(yù)訂系統(tǒng),初步的需求分析結(jié)果如下:
(1)客戶可以在提前預(yù)訂或直接入住時(shí)向賓館提供相關(guān)信息, 賓館登記的客戶信息包括:客戶編號(hào),姓名,性別,類型,身份證號(hào),聯(lián)系方式,預(yù)訂日期,入住時(shí)間和離開(kāi)時(shí)間等信息。其中類型字段說(shuō)明客戶是普通客戶或 VIP 客戶,不同的客戶類型享受訂票的折扣額度不同。直接入住的客戶其預(yù)訂日期取空值。
(2)需要預(yù)訂機(jī)票的客戶應(yīng)填寫“機(jī)票預(yù)訂”表,提供飛行日期、航班號(hào)、出發(fā)時(shí)間、目的地等信息。賓館根據(jù)客戶訂票信息購(gòu)票后,生成“客戶訂單”表,并根據(jù)客戶類型確定相應(yīng)的折扣額度。“機(jī)票預(yù)訂”和“客戶訂單”表如表1-1、1-2所示。
【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的關(guān)系模式如圖1-1所示。
關(guān)系模式的主要屬性、含義及約束如表1-3所示。
【問(wèn)題1】(6分)
對(duì)關(guān)系“客戶”,請(qǐng)回答以下的問(wèn)題:
(1)若選定(客戶編號(hào), 預(yù)訂日期)作主碼,未預(yù)訂而直接入住的客戶信息能否錄入客戶表?如不能,請(qǐng)說(shuō)明原因。
(2)對(duì)“客戶”關(guān)系增加一個(gè)流水號(hào)屬性作為主碼,“客戶”關(guān)系屬于第幾范式?還存在哪些問(wèn)題?
(3)將增加入住標(biāo)識(shí)屬性后的“客戶”關(guān)系分解為第三范式,分解后的關(guān)系名依次取客戶1、客戶2、…。
【問(wèn)題2】(6分)
對(duì)關(guān)系“航班”,請(qǐng)回答以下問(wèn)題:
(1)列舉出“航班”關(guān)系中所有不屬于任何候選碼的屬性(非碼屬性)。
(2)該關(guān)系模式可達(dá)到第幾范式?用不超過(guò)60個(gè)字的內(nèi)容敘述理由。
【問(wèn)題3】(3 分)
對(duì)于沒(méi)有預(yù)訂客房或入住賓館的客戶,需要在(a)關(guān)系中修改其(b)屬性的值域,以滿足這類客戶在賓館預(yù)訂機(jī)票的需求。
● 閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某停車場(chǎng)有多個(gè)入口和出口,車輛進(jìn)入時(shí)從入口處由系統(tǒng)查詢可用的停車位,從出口駛出時(shí)系統(tǒng)將其剛使用的車位標(biāo)記為空車位。
根據(jù)上述描述,在入口處的偽代碼程序?yàn)椋?/span>
x = Get__(5)__;
IF x =NULL THEN return 0;
Writ(x, 1);
【問(wèn)題1】(3)
若兩輛車在不同的入口處同時(shí)執(zhí)行上述代碼,會(huì)出現(xiàn)什么問(wèn)題?(100字以內(nèi)描述)
【問(wèn)題2】(8分)
為保證入口處偽代碼正確地并發(fā)執(zhí)行,引入共享鎖指令 SLock(T)和獨(dú)占鎖指令XLock(T)對(duì)表 T 進(jìn)行加鎖;Upgrade(T)對(duì)表 T 所加的共享鎖升級(jí)為獨(dú)占鎖;解鎖指令Unlock(T)對(duì)表T 進(jìn)行解鎖。
(1)請(qǐng)修改上述入口處的偽代碼程序,使其滿足2PL協(xié)議。
(2)滿足2PL協(xié)議的入口處的偽代碼程序,在并發(fā)執(zhí)行時(shí)是否會(huì)產(chǎn)生死鎖?若是,給出一個(gè)產(chǎn)生死鎖的調(diào)度。
【問(wèn)題3】(4分)
若停車位表的關(guān)系模式為:park(parkno, isused),其中parkno為停車位號(hào),isused為停車位標(biāo)志,0為空,1為非空。
下面是用E-SQL實(shí)現(xiàn)的查詢空車位的函數(shù)Get(),請(qǐng)補(bǔ)全空缺處的代碼。
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
EXEC SQL DECLARE getblk CURSOR FOR
(a) ;
EXEC SQL OPEN getblk ;
EXEC SQL FETCH getblk INTO :Hparkno; // Hparkno為已聲明的主變量
IF SQLC
(5)A.sqlcode = 100 THEN
EXEC SQL CLOSE getblk ; Return NULL;
ELSE
(b) ;
END IF
>>>點(diǎn)擊進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng)工程師在線網(wǎng)絡(luò)課堂
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題