摘要:2011上半年數(shù)據(jù)庫(kù)系統(tǒng)工程師考試真題及答案解析下午卷 試題二 閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入對(duì)應(yīng)欄內(nèi)。
>>>>>>>>>>點(diǎn)擊進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng)工程師考試網(wǎng)絡(luò)課堂
>>>>>>>>>>點(diǎn)擊進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng)工程師歷年真題題庫(kù)
>>>>>>>>>>點(diǎn)擊進(jìn)入數(shù)據(jù)庫(kù)工程師考試大綱教材
2011上半年數(shù)據(jù)庫(kù)系統(tǒng)工程師考試真題及答案解析
下午卷
試題二
閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入對(duì)應(yīng)欄內(nèi)。
[說(shuō)明]
某法院要開(kāi)發(fā)一個(gè)訴訟案件信息處理系統(tǒng),該信息系統(tǒng)的部分關(guān)系模式如下:
職工(職工編號(hào),姓名,崗位)律師(律師編號(hào),姓名)
被告(被告編號(hào),姓名,地址)
案件(案件編號(hào),案件類型,案件描述,被告,律師,主審法官,立案日期,狀態(tài),結(jié)案日期,結(jié)案摘要)
審理(審理編號(hào),案件編號(hào),審理日期,摘要)有關(guān)關(guān)系模式的屬性及相關(guān)說(shuō)明如下:
(1)職工關(guān)系模式的崗位有“法官”、“書(shū)記員”和“其他”。
(2)訴訟立案后,即在案件關(guān)系中插入一條相應(yīng)記錄。案件關(guān)系模式的狀態(tài)有“待處理”、“審理中”、“結(jié)案”和“撤銷”,一個(gè)案件開(kāi)始立案時(shí)其案件狀態(tài)為“待處理”。
(3)案件關(guān)系模式的案件類型有“偷竊”、“縱火”等。
(4)一個(gè)案件自立案到結(jié)案的整個(gè)過(guò)程由一位法官和一位律師負(fù)責(zé),一個(gè)案件通常經(jīng)過(guò)一次到多次審理。
假設(shè)案件編號(hào)標(biāo)識(shí)一個(gè)案件,且立案日期小于等于結(jié)案日期。請(qǐng)將如下創(chuàng)建案件關(guān)系的SQL語(yǔ)句的空缺部分補(bǔ)充完整。
CREATETABLE案件(
案件編號(hào)CHAR5(a),
案件類型VARCHAR6,
案件描述VARCHAR7,
立案日期DATE,
被告VARCHAR5REFERENCES被告(被告編號(hào)),
律師VARCHAR5REFERENCES律師(律師編號(hào)),
主審法官VARCHAR5(b),
狀態(tài)VARCHAR5(c)DEFAULT'待處理',
結(jié)案日期DATE,
結(jié)案摘要VARCHAR7,
d.
};
請(qǐng)完成下列查詢的SQL語(yǔ)句。
9、查詢當(dāng)前待處理的訴訟案件,顯示案件的案件編號(hào)、立案日期、被告姓名、被告地址、案件描述、律師姓名和主審法官姓名。
SELECT案件編號(hào),立案日期,被告.姓名,AS被告姓名,地址AS被告地址,案件描述,律師.姓名AS律師姓名,(e)
FROM(f)
WHERE案件.被告=被告.被告編號(hào)AND案件.律師=律師.律師編號(hào)AND
(g);
10、查詢2009年立案的各類案件數(shù),并按案件數(shù)降序排序。(日期格式舉例:2009年1月1日表示為01-JAN-2009,2009年12月31日表示為31-DEC-2009)
SELECT類型,
count(*)AS案件數(shù)
FROM案件
WHERE(h)d
GROUPBY類型
(i);
11、查詢立案次數(shù)超過(guò)5次的被告姓名和地址。
SELECT姓名,地址,count(*)
FROM案件,被告
WHERE(j)d
GROUPBY(k)d
(l);
當(dāng)插入一個(gè)審理記錄時(shí),檢查案件的狀態(tài),若狀態(tài)為“未處理”,則將其修改為“審理中”。下面是用觸發(fā)器實(shí)現(xiàn)該需求的SQL語(yǔ)句,請(qǐng)將空缺部分補(bǔ)充完整。
CREATETRIGGER審理TRIGGERAFTER(m)ON審理
REFERENCINGnewrowASnrow
FOREACHrow
WHEN'未處理'=(SELECT狀態(tài)
FROM案件
WHERE案件編號(hào)=nrow.案件編號(hào))
BEGIN
UPDATE案件(n)d
WHERE(o);
END
參考答案及解析
5、PRIMARYKEY或NOTNULLUNIQUE
6、REFERENCES職工(職工編號(hào))
7、CHECKVALUESIN('待處理','審理中','結(jié)案','撤銷')
8、CHECK(立案日期<=結(jié)案日期)
本題考查SQL語(yǔ)言,是比較傳統(tǒng)的題目,要求考生細(xì)心分析題目中所描述的內(nèi)容。
本問(wèn)題考查SQL中的數(shù)據(jù)定義語(yǔ)言DDL和完整性約束。完整性約束包括三類:實(shí)體完整性、參照完整性和用戶定義的完整性。實(shí)體完整性約束規(guī)定關(guān)系的主屬性不能取空值,關(guān)系模型中以主碼作為性標(biāo)識(shí);參照完整性約束規(guī)定若屬性(或?qū)傩越M)A是關(guān)系R上的主碼,B是關(guān)系S上的外碼,A與B相對(duì)應(yīng)(來(lái)自相同的域),則B取值為空或者來(lái)自于R上的某個(gè)A的值;用戶定義的完整性約束是針對(duì)具體的數(shù)據(jù)庫(kù)應(yīng)用而定義的,它反映該應(yīng)用所涉及的數(shù)據(jù)必須滿足用戶定義的語(yǔ)義要求。
(a)考查實(shí)體完整性約束,案件編號(hào)是案件關(guān)系模式的主碼,用關(guān)鍵字PRIMARYKEY或者NOTNULLUNIOUE表示。
(b)考查參照完整性約束,主審法官屬性參照職工關(guān)系模式中的職工編號(hào)屬性,由于這兩個(gè)屬性名稱不同,因此用REFERENCES職工(職工編號(hào))表示,此處不能省略職工編號(hào)。
(c)、(d)考查用戶定義的完整性約束。(c)是在狀態(tài)屬性上定義列級(jí)約束,用CHECKVALUESIN('待處理','審理中','結(jié)案','撤銷')表示。(d)在立案日期和結(jié)案日期上定義約束,用CHECK(立案日期<=結(jié)案日期)表示。
9、姓名AS主審法官姓名
10、案件,被告,律師,職工(關(guān)系模式的順序無(wú)關(guān))
11、主審法官=職工.職工編號(hào)
12、立案日期BETWEEN'01-JAN-2009'AND'31-DEC-2009'或者立案日期>='01-JAN-2009'AND立案日期<='31-DEC-2009'
13、ORDERBY案件數(shù)DESC
14、被告=被告.被告編號(hào)
15、姓名,地址
16、HAVINGcount(*)>5
本問(wèn)題考查SQL中的數(shù)據(jù)操作語(yǔ)言DML。
(1)考查別名和連接查詢條件。(e)處考核別名定義,用AS關(guān)鍵字,且別名根據(jù)題干給出,應(yīng)填“職工.姓名AS主審法官姓名”;(f)處考查該查詢涉及到的關(guān)系模式,此處應(yīng)涉及到案件、被告、律師和職工4個(gè)關(guān)系模式,在FROM子句中關(guān)系模式是順序無(wú)關(guān)的;(g)處考核案件關(guān)系模式和職工關(guān)系模式的連接條件,即“案件.主審法官=職工.職工編號(hào)”。
(2)考查日期屬性并對(duì)查詢結(jié)果進(jìn)行分組和排序。(h)處主要考核日期作為條件屬性的語(yǔ)法,題干中已經(jīng)給出日期格式的提示。在兩個(gè)日期之間的時(shí)間的語(yǔ)法可以用BETWEEN…AND…,也可以用>…<=,因此,此處可以填“立案日期BETWEEN'01-JAN-2009'AND'31-DEC-2009'"或者“立案日期>='01-JAN-2009'AND立案日期<='31-DEC.2009'";(i)處考核查詢結(jié)果的排序,用“ORDERBY案件數(shù)DESC”表示,其中的DESC關(guān)鍵字不能省略。在ORDERBY子句中,若不用表示升序的關(guān)鍵字ASC或表示降序的關(guān)鍵字DESC表示,則默認(rèn)為升序排序。
(3)考查對(duì)查詢結(jié)果進(jìn)行分組,并指定滿足條件的分組才能輸出。(i)處考核兩個(gè)關(guān)系模式的連接關(guān)系,應(yīng)填“案件.被告=被告.被告編號(hào)”;(k)處考核分組,此處填“姓名,地址”,不能僅填姓名或者地址;(1)處考核分組條件,用HAVING關(guān)鍵字,應(yīng)填“HAVINGcount(*)>5”。17、INSERT18、SET狀態(tài)='審理中'19、案件編號(hào)=nrow案件編號(hào)本問(wèn)題考查觸發(fā)器。
觸發(fā)器是一個(gè)能由系統(tǒng)自動(dòng)執(zhí)行對(duì)數(shù)據(jù)庫(kù)修改的語(yǔ)句。一個(gè)觸發(fā)器由事件、條件和動(dòng)態(tài)三部分組成:事件即對(duì)數(shù)據(jù)庫(kù)的插入、刪除和修改等操作。觸發(fā)器在這些事件發(fā)生時(shí),將開(kāi)始工作;條件是指觸發(fā)器將測(cè)試條件是否成立,若成立就執(zhí)行相應(yīng)的動(dòng)作,否則就什么也不做;動(dòng)態(tài)是指若觸發(fā)器測(cè)試滿足預(yù)定的條件,那么就由數(shù)據(jù)庫(kù)管理系統(tǒng)執(zhí)行這些動(dòng)作。本題首先定義觸發(fā)器的事件,即對(duì)審理
相關(guān)鏈接:
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試知識(shí)點(diǎn)分析與真題詳解(第4版)
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試歷年試題分析與解答(第4版)
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試下午知識(shí)點(diǎn)精講與考前必練
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試考前串講
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題