摘要:以下是由希賽網(wǎng)整理的部分2008年上半年數(shù)據(jù)庫系統(tǒng)工程師考試上午真題,希望對大家備考有所幫助。
通過數(shù)據(jù)庫系統(tǒng)工程師級別(中級資格/工程師)考試的合格人員能參與應(yīng)用信息系統(tǒng)的規(guī)劃、設(shè)計、構(gòu)建、運(yùn)行和管理,能按照用戶需求,設(shè)計、建立、運(yùn)行、維護(hù)高質(zhì)量的數(shù)據(jù)庫和數(shù)據(jù)倉庫。以下是由希賽網(wǎng)整理的部分2008年上半年數(shù)據(jù)庫系統(tǒng)工程師考試上午真題,希望對大家備考有所幫助。
● 閱讀以下說明和圖,回答問題1至問題4,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某音像制品出租商店欲開發(fā)一個音像管理信息系統(tǒng),管理音像制品的租借業(yè)務(wù)。需求如下:
1. 系統(tǒng)中的客戶信息文件保存了該商店的所有客戶的用戶名、密碼等信息。對于首次來租借的客戶,系統(tǒng)會為其生成用戶名和初始密碼。
2. 系統(tǒng)中音像制品信息文件記錄了商店中所有音像制品的詳細(xì)信息及其庫存數(shù)量。
3. 根據(jù)客戶所租借的音像制品的品種,會按天收取相應(yīng)的費(fèi)用。音像制品的最長租借周期為一周,每位客戶每次最多只能租借6件音像制品。
4. 客戶租借某種音像制品的具體流程為:
(1)根據(jù)客戶提供的用戶名和密碼,驗(yàn)證客戶身份。
(2)若該客戶是合法客戶,查詢音像制品信息文件,查看商店中是否還有這種音像制品。
(3)若還有該音像制品,且客戶所要租借的音像制品數(shù)小于等于 6 個,就可以將該音像制品租借給客戶。這時,系統(tǒng)給出相應(yīng)的租借確認(rèn)信息,生成一條新的租借記錄并將其保存在租借記錄文件中。
(4)系統(tǒng)計算租借費(fèi)用,將費(fèi)用信息保存在租借記錄文件中并告知客戶。
(5)客戶付清租借費(fèi)用之后,系統(tǒng)接收客戶付款信息,將音像制品租借給該客戶。
5. 當(dāng)庫存中某音像制品數(shù)量不能滿足客戶的租借請求數(shù)量時,系統(tǒng)可以接受客戶網(wǎng)上預(yù)約租借某種音像制品。系統(tǒng)接收到預(yù)約請求后,檢查庫存信息,驗(yàn)證用戶身份,創(chuàng)建相應(yīng)的預(yù)約記錄,生成預(yù)約流水號給該客戶,并將信息保存在預(yù)約記錄文件中。
6. 客戶歸還到期的音像制品,系統(tǒng)修改租借記錄文件,并查詢預(yù)約記錄文件和客戶信息文件,判定是否有客戶預(yù)約了這些音像制品。若有,則生成預(yù)約提示信息,通知系統(tǒng)履行預(yù)約服務(wù),系統(tǒng)查詢客戶信息文件和預(yù)約記錄文件,通知相關(guān)客戶前來租借音像制品。
圖1-2 0層數(shù)據(jù)流圖
【問題1】(1 分)
圖1-1中只有一個外部實(shí)體E1。使用說明中的詞語,給出E1的名稱。
【問題2】(6 分)
使用說明中的詞語,給出圖1-2中的數(shù)據(jù)存儲D1~D4的名稱。
【問題3】(6 分)
數(shù)據(jù)流圖 1-2 缺少了三條數(shù)據(jù)流,根據(jù)說明及數(shù)據(jù)流圖 1-1 提供的信息,分別指出這三條數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。
【問題4】(2 分)
在進(jìn)行系統(tǒng)分析與設(shè)計時,面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法(如 Jackson 方法)也被廣泛應(yīng)用。簡要說明面向數(shù)據(jù)結(jié)構(gòu)設(shè)計方法的基本思想及其適用場合。
● 閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某論壇的部分關(guān)系模式如下:
用戶(用戶編號,帳號,密碼,積分,級別)
欄目(欄目編號,父欄目編號,名稱,版主,描述)
主題(主題編號,標(biāo)題,類型,點(diǎn)擊率,內(nèi)容,發(fā)布時間,欄目編號,用戶編號,附件)
回復(fù)主題(回復(fù)主題編號,標(biāo)題,主題編號,內(nèi)容,發(fā)布時間,用戶編號,附件)
其中:
(1)用戶編號標(biāo)識一個用戶。用戶的積分根據(jù)其發(fā)布的主題信息按積分規(guī)則計算。級別的值來自集合{‘高級用戶’, 普通用戶’, ‘初級用戶’},當(dāng)用戶開始注冊時,積分為100,級別為初級用戶;當(dāng)用戶積分到達(dá)1000時,級別為普通用戶;當(dāng)用戶積分到達(dá)5000時,級別為高級用戶。
(2)欄目編號標(biāo)識一個欄目。欄目分兩級,包括父欄目和子欄目。每個欄目必須有且僅有一個版主,版主是一個用戶。
(3)主題編號標(biāo)識一個主題。類型的值來自集合{ ‘精華’, ‘置頂’, ‘普通’}。
(4)回復(fù)主題編號識別一個回復(fù)主題。一個回復(fù)主題對應(yīng)一個主題,而一個主題可以有多個回復(fù)主題。
【問題1】
請將下列SQL語句的空缺部分補(bǔ)充完整。
(1)假設(shè)已經(jīng)創(chuàng)建好用戶關(guān)系,現(xiàn)在想增加一個屬性“個性簽名” ,類型為VARCHAR(60),請給出相關(guān)的SQL語句。
(a) ;
(2)假設(shè)已經(jīng)創(chuàng)建好用戶關(guān)系,下面是創(chuàng)建欄目關(guān)系的SQL語句,請將空缺部分補(bǔ)充完整。
CREATE TABLE 欄目(
欄目編號 VARCHAR(8) PRIMARY KEY,
父欄目編號 VARCHAR(8),
名稱 VARCHAR(40),
版主 VARCHAR(8) NOT NULL,
描述 VARCHAR(100),
(b) ,
(c) );
【問題2】
請將下列SQL語句的空缺部分補(bǔ)充完整。
(1)查詢標(biāo)題或內(nèi)容包含“SQL”的主題標(biāo)題,按發(fā)布時間降序排序。
SELECT DISTINCT 標(biāo)題
FROM 主題
(d)
(e) ;
(2)查找名稱為“數(shù)據(jù)庫技術(shù)”的欄目及其子欄目中的精華主題的標(biāo)題和點(diǎn)擊率。
SELECT 標(biāo)題,點(diǎn)擊率
FROM 主題
WHERE 類型= ‘ 精華’
AND 欄目編號 (f) (SELECT 欄目編號
FROM 欄目
WHERE 名稱= ‘?dāng)?shù)據(jù)庫技術(shù)’
(q)
SELECT 欄目編號
FROM 欄目
WHERE (h) (SELECT 欄目編號
FROM 欄目
WHERE 名稱=‘ 數(shù)據(jù)庫技術(shù)’ ));
【問題3】
假設(shè)所有關(guān)系模式已創(chuàng)建,回復(fù)主題關(guān)系模式的“主題編號”是外鍵,參照主題關(guān)系模式的“主題編號” ?,F(xiàn)在要刪除編號為“T005”的主題及其相關(guān)的回復(fù)主題,下面是對應(yīng)的刪除語句,這些語句組成一個事務(wù)。
DELETE 主題 WHERE 主題編號 = ‘T005 ’;
DELETE 回復(fù)主題 WHERE 主題編號= ‘T005’;
(1)請問這些刪除語句能否完成功能?若不能,請說明為什么?(100字以內(nèi))
(i)
(2)假設(shè)現(xiàn)在希望僅通過“DELETE 主題 WHERE 主題編號 = ‘ T005’ ;”這一條語句就能完成此刪除功能,應(yīng)如何實(shí)現(xiàn)? (100字以內(nèi))
(j)
【問題4】
為了了解每個欄目用戶關(guān)注的主題,對原創(chuàng)主題創(chuàng)建視圖主題_view,屬性包括主題編號、標(biāo)題、用戶帳號、欄目名稱、回復(fù)數(shù)、點(diǎn)擊率和發(fā)布時間。
CREATE VIEW 主題_view (主題編號,標(biāo)題,用戶帳號,欄目名稱,回復(fù)數(shù),點(diǎn)擊率,發(fā)布時間) AS SELECT 主題.主題編號,標(biāo)題,帳號,名稱,回復(fù)數(shù),點(diǎn)擊率,發(fā)布時間
FROM 主題,用戶,欄目, ( (k)
FROM 回復(fù)主題
(l) ) AS A
WHERE 主題.用戶編號=用戶.用戶編號 AND 主題.欄目編號=欄目.欄目編號 AND (m) ;
● 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某地區(qū)舉行籃球比賽,需要開發(fā)一個比賽信息管理系統(tǒng)來記錄比賽的相關(guān)信息。
【需求分析結(jié)果】
1.登記參賽球隊(duì)的信息。記錄球隊(duì)的名稱、代表地區(qū)、成立時間等信息。系統(tǒng)記錄球隊(duì)的每個隊(duì)員的姓名、年齡、身高、體重等信息。每個球隊(duì)有一個教練負(fù)責(zé)管理球隊(duì),一個教練僅負(fù)責(zé)一個球隊(duì)。系統(tǒng)記錄教練的姓名、年齡等信息。
2.安排球隊(duì)的訓(xùn)練信息。比賽組織者提供若干個場地,供球隊(duì)進(jìn)行適應(yīng)性訓(xùn)練。系統(tǒng)記錄現(xiàn)有的場地信息,包括:場地名稱、場地規(guī)模、位置等信息。系統(tǒng)可為每個球隊(duì)安排不同的訓(xùn)練場地,如表3-1所示。系統(tǒng)記錄訓(xùn)練場地安排的信息。
3.安排比賽。該賽事聘請有專職裁判,每場比賽只安排一個裁判。系統(tǒng)記錄裁判的姓名、年齡、級別等信息。系統(tǒng)按照一定的規(guī)則,首先分組,然后根據(jù)球隊(duì)、場地和裁判情況,安排比賽(每場比賽的對陣雙方分別稱為甲隊(duì)和乙隊(duì))。記錄參賽球隊(duì)、比賽時間、比分、場地名稱等信息,如表3-2所示。
4.所有球員、教練和裁判可能出現(xiàn)重名情況。 【概念模型設(shè)計】
根據(jù)需求階段收集的信息,設(shè)計的實(shí)體聯(lián)系圖和關(guān)系模式(不完整)如下:
1. 實(shí)體聯(lián)系圖
2. 關(guān)系模式
教練(教練編號, 姓名, 年齡)
隊(duì)員(隊(duì)員編號, 姓名, 年齡, 身高, 體重,(a) )
球隊(duì)(球隊(duì)名稱, 代表地區(qū), 成立時間, (b) )
場地(場地名稱, 場地規(guī)模, 位置)
訓(xùn)練記錄( (c) )
裁判(裁判編號,姓名,年齡,級別)
比賽記錄( (d) )
【問題1】(5 分)
根據(jù)問題描述,補(bǔ)充四個聯(lián)系,完善圖3-1的實(shí)體聯(lián)系圖。
【問題2】(8 )
根據(jù)你的實(shí)體聯(lián)系圖,完成關(guān)系模式,并給出訓(xùn)練記錄和比賽記錄關(guān)系模式的主鍵和外鍵。
【問題3】(2 分)
如果考慮記錄一些特別資深的熱心球迷的情況,每個熱心球迷可能支持多個球隊(duì)。熱心球迷的基本信息包括:姓名、住址和喜歡的俱樂部等。根據(jù)這一要求修改圖3-1的實(shí)體聯(lián)系圖,給出修改后的關(guān)系模式。
● 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某企業(yè)的生產(chǎn)管理部門擬開發(fā)生產(chǎn)計劃管理系統(tǒng),該系統(tǒng)負(fù)責(zé)管理生產(chǎn)計劃信息,記錄生產(chǎn)安排和采購的情況。現(xiàn)有的表格信息如表4-1、表4-2和4-3所示。
關(guān)系模式的主要屬性、含義及約束如表4-4所示。
該企業(yè)的生產(chǎn)管理部門可根據(jù)需求制定多個生產(chǎn)計劃。每個生產(chǎn)計劃包含多個生產(chǎn)產(chǎn)品。一個生產(chǎn)產(chǎn)品可由多個生產(chǎn)小組共同生產(chǎn)。一個產(chǎn)品基于固定數(shù)量的用料來生產(chǎn)。企業(yè)有多個供應(yīng)商,每個供應(yīng)商可以提供若干種材料,每種材料可以由多個供應(yīng)商提供。企業(yè)根據(jù)不同生產(chǎn)計劃,從供應(yīng)商處購買材料。
屬性間的函數(shù)依賴關(guān)系如下:
對于“生產(chǎn)計劃 ”關(guān)系模式:
生產(chǎn)計劃編號 → 生產(chǎn)計劃名稱,起始時間,截止時間,預(yù)算總金額
生產(chǎn)計劃編號,產(chǎn)品編號 → 生產(chǎn)數(shù)量
產(chǎn)品編號 → 產(chǎn)品名稱
生產(chǎn)小組編號 → 生產(chǎn)小組名稱
生產(chǎn)計劃編號,生產(chǎn)小組編號,產(chǎn)品編號 → 安排人力
生產(chǎn)計劃編號,產(chǎn)品編號 →→ 生產(chǎn)小組編號,安排人力
對于 “產(chǎn)品用料”關(guān)系模式:
材料編號 → 材料名稱,單位
產(chǎn)品編號,材料編號 → 材料數(shù)量
對于“采購”關(guān)系模式:
采購單號 → 供應(yīng)商,地址,電話,總價格,日期
采購單號,材料編號 → 數(shù)量
供應(yīng)商,材料編號 → 單價
供應(yīng)商 → 地址,電話
【問題1】 (7 分)
對關(guān)系“生產(chǎn)計劃” ,請回答以下問題:
(1)關(guān)系“生產(chǎn)計劃”是否滿足第四范式?用不超過200個字的內(nèi)容敘述理由。
(2)把“生產(chǎn)計劃”分解為第四范式,分解后的關(guān)系名依次為:生產(chǎn)計劃1,生產(chǎn)計劃2 …
【問題2】 (6 分)
對關(guān)系“采購”,請回答以下問題:
(1)若“采購”關(guān)系中不考慮折扣情況,則該關(guān)系是否存在派生屬性?若存在,指出其中的派生屬性。
(2)針對“采購”關(guān)系,用100字以內(nèi)文字簡要說明會產(chǎn)生什么問題。
(3)分解“采購”關(guān)系,分解后的關(guān)系名依次為:采購1,采購2 …
【問題3】 (2 分)
試分析可否根據(jù)圖4-1生產(chǎn)計劃數(shù)據(jù)庫,統(tǒng)計出某一個生產(chǎn)計劃所采購的某個供應(yīng)商的總金額?并用不超過100個字的內(nèi)容敘述理由。
● 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某銀行的轉(zhuǎn)帳業(yè)務(wù)分為如下兩類操作:
(1)讀取帳戶A 余額到變量x,記為x = R(A);
(2)將變量x值寫入帳戶A 中的余額,記為W(A, x)。
從帳戶A 向帳戶B 轉(zhuǎn)帳金額x元的偽代碼操作序列為:a = R(A), a = a-x, W(A, a), b = R(B), b = b+x, W(B,b)。
針對上述業(yè)務(wù)及規(guī)則,完成下列問題:
【問題1】(5 分)
根據(jù)業(yè)務(wù)規(guī)則,轉(zhuǎn)帳業(yè)務(wù)要么被全部執(zhí)行,要么全部不執(zhí)行,應(yīng)如何保障?假設(shè)參與轉(zhuǎn)帳的帳戶余額有大于等于0的約束,上述偽代碼執(zhí)行中可能出現(xiàn)什么情況,應(yīng)如何處理?(100字以內(nèi))
【問題2】(5分)
若允許對同一帳號同時進(jìn)行轉(zhuǎn)帳,要保證轉(zhuǎn)帳程序的并發(fā)執(zhí)行,引入共享鎖指令SLock(b)和獨(dú)占鎖指令XLock(A)對數(shù)據(jù)A 進(jìn)行加鎖,解鎖指令Unlock(A)對數(shù)據(jù)A 進(jìn)行解鎖。
請補(bǔ)充上述轉(zhuǎn)帳業(yè)務(wù)的偽代碼序列,使其滿足2PL協(xié)議。
【問題3】(5 分)
若用SQL語句編寫的轉(zhuǎn)帳業(yè)務(wù)事務(wù)程序如下:
START TRANSACTION;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
UPDATE Accounts
SET CurrentBalance = CurrentBalance - Amount
WHERE AccountID = A;
if error then ROLLBACK;
COMMIT;
UPDATE Accounts
SET CurrentBalance = CurrentBalance + Amount
WHERE AccountID = B;
if error then ROLLBACK;
COMMIT;
其中:Accounts為帳戶表,CurrentBalance為當(dāng)前余額,Amount為新存入的金額。
該事務(wù)程序能否保證數(shù)據(jù)的一致性?如不能,請說明原因并改正。(100字以內(nèi))
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題