版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023年5月計(jì)算機(jī)技術(shù)與軟件《中級(jí)數(shù)據(jù)庫(kù)系統(tǒng)工程師(下午卷)》試題(網(wǎng)友回憶版)[問(wèn)答題]1.【問(wèn)題1】(5分)根據(jù)問(wèn)題描述,補(bǔ)充圖1-1的實(shí)體聯(lián)系圖(不增加新的實(shí)體)。試題一(共15分)閱讀下列說(shuō)明,回答(江南博哥)問(wèn)題1至間題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】某新能源汽車(chē)公司為了提升效率,需要開(kāi)發(fā)一個(gè)汽車(chē)零件采購(gòu)系統(tǒng)。請(qǐng)根據(jù)下述需求描述完成該系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)?!拘枨竺枋觥?)
記錄供應(yīng)商的信息,包括供應(yīng)商的名稱(chēng)、地址和一個(gè)電話(huà)。(2)
記錄零件的信息,包括零件的編碼、名稱(chēng)和價(jià)格。(3)記錄車(chē)型信息,包括車(chē)型的編號(hào)、名稱(chēng)和規(guī)格。(4)記錄零件采購(gòu)信息。某個(gè)車(chē)型的某種零件可以從多家供應(yīng)商采購(gòu),某種零件也可以被多個(gè)車(chē)型采用,某家供應(yīng)商也可以供應(yīng)多種零件:還包括采購(gòu)數(shù)量和采購(gòu)日期?!靖拍罱Y(jié)構(gòu)設(shè)計(jì)】根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖1-1所示。【邏輯結(jié)構(gòu)設(shè)計(jì)】根據(jù)概念結(jié)構(gòu)設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):供應(yīng)商(名稱(chēng),地址,電話(huà))零件(編碼,名稱(chēng),價(jià)格)車(chē)型(編號(hào),名稱(chēng),規(guī)格)采購(gòu)(車(chē)型編號(hào),供應(yīng)商名稱(chēng),(a),(b),采購(gòu)日期)正確答案:詳見(jiàn)解析參考解析:根據(jù)說(shuō)明,同時(shí)觀(guān)察該題的【邏輯結(jié)構(gòu)】設(shè)計(jì)所得到的4個(gè)關(guān)系模式:供應(yīng)商、零件、車(chē)型和采購(gòu),可以知道,原ER圖應(yīng)繪制“供應(yīng)商”、“零件”和“車(chē)型”三個(gè)實(shí)體之間的“采購(gòu)”聯(lián)系,由于邏輯結(jié)構(gòu)設(shè)計(jì)中出現(xiàn)了“采購(gòu)”關(guān)系模式,因此可以反推出,“采購(gòu)”聯(lián)系為三個(gè)實(shí)體間的多對(duì)多聯(lián)系,并且?guī)в袃蓚€(gè)屬性:采購(gòu)數(shù)量和采購(gòu)日期。[問(wèn)答題]2.【問(wèn)題2】(3分)補(bǔ)充邏輯結(jié)構(gòu)設(shè)計(jì)結(jié)果中的(a)、(b)兩處空缺,并標(biāo)注主鍵和外鍵完整性約束。試題一(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至間題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某新能源汽車(chē)公司為了提升效率,需要開(kāi)發(fā)一個(gè)汽車(chē)零件采購(gòu)系統(tǒng)。請(qǐng)根據(jù)下述需求描述完成該系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)。【需求描述】(1)
記錄供應(yīng)商的信息,包括供應(yīng)商的名稱(chēng)、地址和一個(gè)電話(huà)。()
記錄零件的信息,包括零件的編碼、名稱(chēng)和價(jià)格。(3)記錄車(chē)型信息,包括車(chē)型的編號(hào)、名稱(chēng)和規(guī)格。(4)記錄零件采購(gòu)信息。某個(gè)車(chē)型的某種零件可以從多家供應(yīng)商采購(gòu),某種零件也可以被多個(gè)車(chē)型采用,某家供應(yīng)商也可以供應(yīng)多種零件:還包括采購(gòu)數(shù)量和采購(gòu)日期?!靖拍罱Y(jié)構(gòu)設(shè)計(jì)】根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖1-1所示。【邏輯結(jié)構(gòu)設(shè)計(jì)】根據(jù)概念結(jié)構(gòu)設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):供應(yīng)商(名稱(chēng),地址,電話(huà))零件(編碼,名稱(chēng),價(jià)格)車(chē)型(編號(hào),名稱(chēng),規(guī)格)采購(gòu)(車(chē)型編號(hào),供應(yīng)商名稱(chēng),(a),(b),采購(gòu)日期)?正確答案:詳見(jiàn)解析參考解析:本題考查將ER圖轉(zhuǎn)換為關(guān)系模式的方法。二元關(guān)系(三元關(guān)系類(lèi)似)ER圖中聯(lián)系轉(zhuǎn)換為關(guān)系模式的基本規(guī)則如下:(1)1:1聯(lián)系:可以在兩個(gè)實(shí)體類(lèi)型轉(zhuǎn)換成的兩個(gè)關(guān)系模式中的任意一個(gè)關(guān)系模式的屬性中,加入另一個(gè)關(guān)系模式的鍵(作為外鍵)和聯(lián)系類(lèi)型的屬性。(2)1:n聯(lián)系:在N端實(shí)體類(lèi)型轉(zhuǎn)換成的關(guān)系模式中加入1端實(shí)體類(lèi)型的鍵(作為外鍵)和聯(lián)系類(lèi)型的屬性。(3)m:n聯(lián)系:將聯(lián)系也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實(shí)體類(lèi)型的鍵(作為外鍵)加上聯(lián)系類(lèi)型的屬性,而關(guān)系模式的鍵為兩端實(shí)體鍵的組合。(4)具有相同鍵的關(guān)系模式可合并,從而減少關(guān)系模式個(gè)數(shù)。根據(jù)上面規(guī)則(3),“采購(gòu)”關(guān)系模式少量引用“零件”關(guān)系的健“零件編號(hào)”、以及自身的屬性,因此:(a)零件編碼
(b)采購(gòu)數(shù)量采購(gòu)關(guān)系模式中,主鍵為屬性集(車(chē)型編號(hào),供應(yīng)商名稱(chēng),零件編碼,采購(gòu)日期);存在三個(gè)外鍵,分別是:車(chē)型編號(hào),供應(yīng)商名稱(chēng),零件編碼。[問(wèn)答題]3.【問(wèn)題3】(7分)該汽車(chē)公司現(xiàn)新增如下需求:記錄車(chē)型在全國(guó)門(mén)店的銷(xiāo)售情況。門(mén)店信息包括門(mén)店的編號(hào)、地址和電話(huà):銷(xiāo)售包括銷(xiāo)售數(shù)量和銷(xiāo)售日期等。對(duì)原有設(shè)計(jì)進(jìn)行以下修改以實(shí)現(xiàn)該需求:(1)在圖1-1中體現(xiàn)門(mén)店信息及其車(chē)型銷(xiāo)售情況,并標(biāo)明新增的實(shí)體和聯(lián)系,及其必要屬性。(2)給出新增加的關(guān)系模式,并標(biāo)注主鍵和外鍵元整性約束。試題一(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至間題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】某新能源汽車(chē)公司為了提升效率,需要開(kāi)發(fā)一個(gè)汽車(chē)零件采購(gòu)系統(tǒng)。請(qǐng)根據(jù)下述需求描述完成該系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)?!拘枨竺枋觥浚?)
記錄供應(yīng)商的信息,包括供應(yīng)商的名稱(chēng)、地址和一個(gè)電話(huà)。(2)
記錄零件的信息,包括零件的編碼、名稱(chēng)和價(jià)格。(3)記錄車(chē)型信息,包括車(chē)型的編號(hào)、名稱(chēng)和規(guī)格。(4)記錄零件采購(gòu)信息。某個(gè)車(chē)型的某種零件可以從多家供應(yīng)商采購(gòu),某種零件也可以被多個(gè)車(chē)型采用,某家供應(yīng)商也可以供應(yīng)多種零件:還包括采購(gòu)數(shù)量和采購(gòu)日期。【概念結(jié)構(gòu)設(shè)計(jì)】根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖1-1所示?!具壿嫿Y(jié)構(gòu)設(shè)計(jì)】根據(jù)概念結(jié)構(gòu)設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):供應(yīng)商(名稱(chēng),地址,電話(huà))零件(編碼,名稱(chēng),價(jià)格)車(chē)型(編號(hào),名稱(chēng),規(guī)格)采購(gòu)(車(chē)型編號(hào),供應(yīng)商名稱(chēng),(a),(b),采購(gòu)日期)正確答案:詳見(jiàn)解析參考解析:本題考查ER圖的繪制以及對(duì)需求描述的理解。補(bǔ)充完整的ER圖如下所示:參考【問(wèn)題1】及其說(shuō)明,在ER圖中應(yīng)添加“門(mén)店”實(shí)體,以及“門(mén)店”和“車(chē)型”之間多對(duì)多的“銷(xiāo)售”聯(lián)系,“銷(xiāo)售”聯(lián)系帶有兩個(gè)屬性:銷(xiāo)售數(shù)量和銷(xiāo)售日期。參照【問(wèn)題2】中的ER圖轉(zhuǎn)換為關(guān)系模式的方法,需要新增關(guān)系模式如下:門(mén)店(編號(hào),地址,電話(huà)),其中“編號(hào)”為主鍵;銷(xiāo)售(門(mén)店編號(hào),車(chē)型編號(hào),銷(xiāo)售日期,銷(xiāo)售數(shù)量),其中組合主鍵為:門(mén)店編號(hào)、車(chē)型編號(hào)、銷(xiāo)售日期,外鍵為:門(mén)店編號(hào),車(chē)型編號(hào)。[問(wèn)答題]4.【問(wèn)題1】(7分)題中給出的維修配件使用表存在數(shù)據(jù)冗余,請(qǐng)給出具體的冗余屬性,并說(shuō)明因此會(huì)出現(xiàn)哪些異常?試題二(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】一汽車(chē)廠(chǎng)商對(duì)配件進(jìn)行統(tǒng)一管理,設(shè)計(jì)了相應(yīng)的數(shù)據(jù)庫(kù),其中一個(gè)表記錄了維修配件的使用信息。其表結(jié)構(gòu)如下:維修配件使用表(車(chē)牌號(hào),維修時(shí)間,配件編碼,配件名稱(chēng),配件供應(yīng)商,配件倉(cāng)庫(kù)編碼,倉(cāng)庫(kù)地址,維修配件數(shù)量)其中,車(chē)牌號(hào)和配件編碼滿(mǎn)足唯一性。假設(shè)同一輛車(chē)在同一次維修情況下可能需要多種維修配件;一種配件只能存放于一個(gè)配件倉(cāng)庫(kù),一種配件只能由一個(gè)配件供應(yīng)商提供。維修時(shí)間精確到秒。正確答案:詳見(jiàn)解析參考解析:分析:根據(jù)題目描述,存在如下函數(shù)依賴(lài)。(車(chē)牌號(hào),維修時(shí)間,配件編碼)→(配件名稱(chēng),配件供應(yīng)商,配件倉(cāng)庫(kù)編碼,倉(cāng)庫(kù)地址,維修配件數(shù)量)配件編碼→(配件名稱(chēng),配件供應(yīng)商,配件倉(cāng)庫(kù)編碼)配件倉(cāng)庫(kù)編碼→倉(cāng)庫(kù)地址其中,組合鍵為(車(chē)牌號(hào),維修時(shí)間,配件編碼)因此,存在非主屬性“配件名稱(chēng)”、“配件供應(yīng)商”、“配件倉(cāng)庫(kù)編碼”、和“倉(cāng)庫(kù)地址”對(duì)健的部分傳遞依賴(lài);同時(shí),也存在“倉(cāng)庫(kù)地址”對(duì)“配件編碼”屬性的傳遞函數(shù)依賴(lài)。所以,存在數(shù)據(jù)冗余和異常。冗余屬性為:配件名稱(chēng),配件供應(yīng)商,倉(cāng)庫(kù)地址存在異常為:插入異常、刪除異常、更新異常[問(wèn)答題]5.【問(wèn)題2】(8分)維修配件使用表是否滿(mǎn)足BCNF?如果不滿(mǎn)足,請(qǐng)對(duì)其進(jìn)行模式分解,使分解后的關(guān)系模式滿(mǎn)足BCNF,并標(biāo)記出主鍵和外鍵。試題二(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】一汽車(chē)廠(chǎng)商對(duì)配件進(jìn)行統(tǒng)一管理,設(shè)計(jì)了相應(yīng)的數(shù)據(jù)庫(kù),其中一個(gè)表記錄了維修配件的使用信息。其表結(jié)構(gòu)如下:維修配件使用表(車(chē)牌號(hào),維修時(shí)間,配件編碼,配件名稱(chēng),配件供應(yīng)商,配件倉(cāng)庫(kù)編碼,倉(cāng)庫(kù)地址,維修配件數(shù)量)其中,車(chē)牌號(hào)和配件編碼滿(mǎn)足唯一性。假設(shè)同一輛車(chē)在同一次維修情況下可能需要多種維修配件;一種配件只能存放于一個(gè)配件倉(cāng)庫(kù),一種配件只能由一個(gè)配件供應(yīng)商提供。維修時(shí)間精確到秒。正確答案:詳見(jiàn)解析參考解析:根據(jù)如下范式演化圖,以及【問(wèn)題1】的分析,由于“維修配件使用表”存在非主屬性對(duì)碼的部分依賴(lài)和傳遞依賴(lài),顯然不滿(mǎn)足BCNF,僅僅只達(dá)到1NF解決方案是,消除存在的非主屬性對(duì)碼的部分和傳遞函數(shù)依賴(lài)。分解后關(guān)系模式如下:維修配件使用表(車(chē)牌號(hào),維修時(shí)間,配件編碼,維修配件數(shù)量)配件(配件編碼,配件名稱(chēng),配件供應(yīng)商,配件倉(cāng)庫(kù)編碼)倉(cāng)庫(kù)(倉(cāng)庫(kù)編碼,倉(cāng)庫(kù)地址)[問(wèn)答題]6.【問(wèn)題1】(3分)請(qǐng)將下面創(chuàng)建課程表COURSE的SQL語(yǔ)句補(bǔ)充完整,要求定義實(shí)體完整性約束、參照完整性約束,以及其他完整性約束。CREATETABLECOURSE(CnoCHAR(4)PRIMARYKEY,CnameCHAR(30)(a),CpnoCHAR(4)REFERENCES(b),(c)CcreditINT);試題三(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某教務(wù)管理系統(tǒng)的部分?jǐn)?shù)據(jù)庫(kù)關(guān)系模式如下:學(xué)生:STUDENT(Sno,Sname,Ssex,Sage,Sdept),各屬性分別表示學(xué)號(hào)、姓名、性別、年齡、所在系名;課程:COURSE(Cno,Cname,Cpno,Ceredit),各屬性分別表示課程號(hào)、課程名、先修課的課程號(hào)、學(xué)分;選課:SC(Sno,Cno,Grade),各屬性分別表示學(xué)號(hào)、課程號(hào)、成績(jī)。有關(guān)關(guān)系模式的說(shuō)明如下:(1)
下劃線(xiàn)標(biāo)出的屬性是表的主鍵。(2)
課程名取值唯一。根據(jù)以上描述,回答下列問(wèn)題,將SQL語(yǔ)句的空缺部分補(bǔ)充完整。正確答案:詳見(jiàn)解析參考解析:【問(wèn)題1】、【問(wèn)題2】、【問(wèn)題3】、【問(wèn)題4】答案匯總?cè)缦拢篴:uniqueb:coursec:cnod:inserte:cnof:'c036'g:studenth:k2.cpnoi:leftj:onk:k1.cpno=ol:coursem:notexistsn:sco:sno=student.snoandcno=o本題考查SQL的表的創(chuàng)建語(yǔ)句,并且明確要求定義實(shí)體完整性約束、參照完整性約束,以及其他完整性約束。CREATETABLECOURSE(CnoCHAR(4)PRIMARYKEY,//定義Cno為主鍵CnameCHAR(30)(a)unique,//定義Cname為唯一索引CpnoCHAR(4)REFERENCES
(b)course((c)cno),//定義行級(jí)外鍵約束,Cpno參照本表course中的cno屬性。CcreditINT);[問(wèn)答題]7.【問(wèn)題2】(4分)有一門(mén)課程號(hào)為“C036”的新開(kāi)課,要求所有學(xué)生選修。該課的基本信息已經(jīng)錄入課程表COURSE中,現(xiàn)需在選課表SC中插入該課的選課記錄。實(shí)現(xiàn)此功能的SQL語(yǔ)句如下,請(qǐng)補(bǔ)全。(d)INTOSC(Sno,_(e))SELECTSno,_(f)FROM(g);試題三(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某教務(wù)管理系統(tǒng)的部分?jǐn)?shù)據(jù)庫(kù)關(guān)系模式如下:學(xué)生:STUDENT(Sno,Sname,Ssex,Sage,Sdept),各屬性分別表示學(xué)號(hào)、姓名、性別、年齡、所在系名;課程:COURSE(Cno,Cname,Cpno,Ceredit),各屬性分別表示課程號(hào)、課程名、先修課的課程號(hào)、學(xué)分;選課:SC(Sno,Cno,Grade),各屬性分別表示學(xué)號(hào)、課程號(hào)、成績(jī)。有關(guān)關(guān)系模式的說(shuō)明如下:(1)
下劃線(xiàn)標(biāo)出的屬性是表的主鍵。(2)
課程名取值唯一。根據(jù)以上描述,回答下列問(wèn)題,將SQL語(yǔ)句的空缺部分補(bǔ)充完整。正確答案:詳見(jiàn)解析參考解析:【問(wèn)題1】、【問(wèn)題2】、【問(wèn)題3】、【問(wèn)題4】答案匯總?cè)缦拢篴:uniqueb:coursec:cnod:inserte:cnof:'c036'g:studenth:k2.cpnoi:leftj:onk:k1.cpno=ol:coursem:notexistsn:sco:sno=student.snoandcno=o本題考查insert語(yǔ)句的相關(guān)知識(shí)。(d)insertINTOSC(Sno,_(e)cno)SELECTSno,_(f)’c036’//子查詢(xún),獲得student中的sno列、以及’c036’常數(shù)列FROM
(g)student;Insert語(yǔ)句通過(guò)子查詢(xún)獲得student中的sno列、以及’c036’常數(shù)列,并將兩列數(shù)據(jù)插入到sc表的sno、cno字段中。[問(wèn)答題]8.【問(wèn)題3】(4分)查詢(xún)每一門(mén)課程的間接先修課(先修課的先修課),要求輸出課程號(hào)和間接先修課的課程號(hào)。即使某門(mén)課程沒(méi)有先修課,也需要輸出,不過(guò)其間接先修課為空。此功能由下面的SQL語(yǔ)句實(shí)現(xiàn),請(qǐng)補(bǔ)全。SELECTK1.Cno,(h)FROMCOURSEK1(i)OUTERJOINCOURSEK2(j)((k));試題三(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某教務(wù)管理系統(tǒng)的部分?jǐn)?shù)據(jù)庫(kù)關(guān)系模式如下:學(xué)生:STUDENT(Sno,Sname,Ssex,Sage,Sdept),各屬性分別表示學(xué)號(hào)、姓名、性別、年齡、所在系名;課程:COURSE(Cno,Cname,Cpno,Ceredit),各屬性分別表示課程號(hào)、課程名、先修課的課程號(hào)、學(xué)分;選課:SC(Sno,Cno,Grade),各屬性分別表示學(xué)號(hào)、課程號(hào)、成績(jī)。有關(guān)關(guān)系模式的說(shuō)明如下:(1)
下劃線(xiàn)標(biāo)出的屬性是表的主鍵。(2)
課程名取值唯一。根據(jù)以上描述,回答下列問(wèn)題,將SQL語(yǔ)句的空缺部分補(bǔ)充完整。正確答案:詳見(jiàn)解析參考解析:本題考查與自身的外聯(lián)接查詢(xún)相關(guān)知識(shí)。分析:由于要求輸出課程號(hào)和間接先修課的課程號(hào),因此查詢(xún)結(jié)果中,這兩列必修在同一行出現(xiàn);也就是連接完成后,結(jié)果集中應(yīng)包含Cno,Cpno,Cpno的Cno,Cpno的Cpno,而Cpno的Cpno就是間接先修課的課程號(hào);顯然,可以利用COURSE表的兩個(gè)副本進(jìn)行連接運(yùn)算。由于要求“即使某門(mén)課程沒(méi)有先修課,也需要輸出,不過(guò)其間接先修課為空”,因此連接運(yùn)算應(yīng)采用左外連接,保留左邊COURSE表中的懸浮元組。補(bǔ)充完整后的查詢(xún)語(yǔ)句如下所示:SELECTK1.Cno,(h)K2.Cpno
//K1.Cno為課程號(hào),K2.Cpno為間接先修課的課程號(hào)FROMCOURSEK1(i)leftOUTERJOINCOURSEK2//對(duì)建立COURSE的兩個(gè)副本K1和K2,并進(jìn)行左外連接運(yùn)算(j)on((k)k1.cpno=o);//設(shè)置連接的連接條件[問(wèn)答題]9.【問(wèn)題4】(4分)查詢(xún)選修了課程表中已有全部課程的學(xué)生,要求輸出學(xué)號(hào)和姓名。此功能由下面的SQL語(yǔ)句實(shí)現(xiàn),請(qǐng)補(bǔ)全。SELECTSno,SnameFROMSTUDENTWHERENOTEXISTS(SELECT*FROM(1)WHERE(m)(SELECT*FROM(n)WHERE(o)));試題三(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某教務(wù)管理系統(tǒng)的部分?jǐn)?shù)據(jù)庫(kù)關(guān)系模式如下:學(xué)生:STUDENT(Sno,Sname,Ssex,Sage,Sdept),各屬性分別表示學(xué)號(hào)、姓名、性別、年齡、所在系名;課程:COURSE(Cno,Cname,Cpno,Ceredit),各屬性分別表示課程號(hào)、課程名、先修課的課程號(hào)、學(xué)分;選課:SC(Sno,Cno,Grade),各屬性分別表示學(xué)號(hào)、課程號(hào)、成績(jī)。有關(guān)關(guān)系模式的說(shuō)明如下:(1)
下劃線(xiàn)標(biāo)出的屬性是表的主鍵。(2)
課程名取值唯一。根據(jù)以上描述,回答下列問(wèn)題,將SQL語(yǔ)句的空缺部分補(bǔ)充完整。正確答案:詳見(jiàn)解析參考解析:考查exists謂詞的關(guān)聯(lián)子查詢(xún)知識(shí)。帶有EXISTS謂詞的子查詢(xún)不返回任何數(shù)據(jù),只產(chǎn)生邏輯真值“true”或邏輯假值“false”。①若內(nèi)層查詢(xún)結(jié)果非空,則外層的WHERE子句返回真值②若內(nèi)層查詢(xún)結(jié)果為空,則外層的WHERE子句返回假值由EXISTS引出的子查詢(xún),其目標(biāo)列表達(dá)式通常都用*本題可以將“選修了課程表中已有全部課程的學(xué)生”轉(zhuǎn)換為存在謂詞表示:“沒(méi)有一門(mén)課程是該學(xué)生不選修的”,即兩次not運(yùn)算。SELECTSno,SnameFROMSTUDENTWHERENOTEXISTS(SELECT*FROM(1)courseWHERE(m)notexists(SELECT*FROM(n)SCWHERE(o)sno=student.snoandcno=o));[問(wèn)答題]10.【問(wèn)題1】(6分)下面是月底25日計(jì)算某員工最終工資的存儲(chǔ)過(guò)程程序,請(qǐng)補(bǔ)全空缺處的代碼。CREATEPROCEDURESalaryCalculation((a)empIdchar(8),INiYearnumber(4),INiMonthnumber(2))DECLAREattendancenumber(14,2);meritnumber(14,2);overtimenumber(14,2);basenumber(14,2);all_salarynumber(14,2);BEGINSELECTattendance_wage,merit_pay,overtime_wageINTO(b)FROMSALARYWHEREEid=empldFORUPDATE;SELECTJbase_salaryINTO:baseFROMEMPLOYEEST1,(e)WHERET1.Jid=T2.JidANDT1.Eid=empld;all_salary:=attendance+merit+overtime+base;UPDATESALARYSETsalary=:all_salaryWHERE(d)ANDyear=iYearANDmonth=iMonth;EXCEPTIONWHENOTHERSTHEN(f);END;試題四(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某企業(yè)內(nèi)部信息系統(tǒng)部分簡(jiǎn)化后的關(guān)系模式如下:員工表:EMPLOYEES(Eid,Ename,Address,Phone,Jid):屬性含義分別為:員工編碼、員工姓名、家庭住址、聯(lián)系電話(huà)、崗位級(jí)別編碼。崗位級(jí)別表:JOB_LEVELS(Jid,Jname,Jbase_salary):屬性含義分別為:崗位級(jí)別編碼、崗位名稱(chēng)、崗位基本工資。員工工資表:SALARY(Eid,attendance_wage,merit_pay,overtime_wage,salary,tax,year,month):屬性含義分別為:員工編碼、考勤工資、績(jī)效工資、加班工資、最終工資、稅、年份、月份。該企業(yè)在每月25日計(jì)算員工的工資。首先是根據(jù)考勤系統(tǒng)以及績(jī)效系統(tǒng)中的數(shù)據(jù),計(jì)算出員工的考勤、績(jī)效和加班工資,存入到員工工資表;其次結(jié)合員工的崗位基本工資,計(jì)算出最終工資,完成對(duì)員工工資表記錄的更新。最后依據(jù)員工工資表完成工資的發(fā)放。正確答案:詳見(jiàn)解析參考解析:本題考查存儲(chǔ)過(guò)程與事務(wù)操作相關(guān)知識(shí)。參考答案如下:a:INb::attendance,:merit,:overtimec:JOB_LEVELST2d:eid=empide:commitf:rollback存儲(chǔ)過(guò)程代碼解析如下。CREATEPROCEDURESalaryCalculation((a)INempIdchar(8),INiYearnumber(4),INiMonthnumber(2))//定義存儲(chǔ)過(guò)程SalaryCalculation,其包含3個(gè)輸入?yún)?shù)empId、iYear、iMonthDECLARE//定義4個(gè)數(shù)值型本地變量attendance
number(14,2);//存儲(chǔ)考勤工資merit
number(14,2);//存儲(chǔ)績(jī)效工資overtime
number(14,2);//存儲(chǔ)加班工資base
number(14,2);//存儲(chǔ)崗位基本工資all_salary
number(14,2);//存儲(chǔ)最終工資BEGINSELECTattendance_wage,merit_pay,overtime_wage//從SALARY表中找出給定員工empid的記錄INTO(b):attendance,:merit,:overtime
//并將attendance_wage,merit_pay,overtime_wage存入本地變量attendance,:merit,:overtimeFROMSALARYWHEREEid=empidFORUPDATE;SELECTJbase_salaryINTO:base//連接EMPLOYEES和JOB_LEVELS表,找出給定員工empid的基本工資Jbase_salary,存入base中FROMEMPLOYEEST1,(c)JOB_LEVELST2WHERET1.Jid=T2.JidANDT1.Eid=empid;all_salary:=attendance+merit+overtime+base;//計(jì)算最終工資UPDATESALARYSETsalary=:all_salary//更新給定員工empid,給定年月iYear、iMonth的工資記錄中的最終工資字段。WHERE(d)eid=empidANDyear=iYearANDmonth=iMonth;(e)commit;//事務(wù)提交EXCEPTIONWHENOTHERSTHEN(f)rollback;//如果出現(xiàn)異常,事務(wù)回滾END;[問(wèn)答題]11.【問(wèn)題2】(5分)為了防止對(duì)員工工資表的非法修改(包括內(nèi)部犯罪),系統(tǒng)特意規(guī)定了員工工資表修改的業(yè)務(wù)規(guī)則:對(duì)員工工資表的修改只能在每月25日的上班時(shí)間進(jìn)行。下面是員工工資表修改業(yè)務(wù)規(guī)則對(duì)應(yīng)的程序,請(qǐng)補(bǔ)全空缺處的代碼。CREATETRIGGERCheckBusinessRule
(g)
INSERTORDELETEOR
(h)
onSALARYFOREACH
(i)
BEGINIF(TO_CHAR(sysdate,'DD')<>
(j)
)OR(to_number(TO_CHAR(sysdate,’HH24'))
(k)
BETWEEN8AND18)
THENRaise_Error;//拋出異常ENDIF;END;試題四(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某企業(yè)內(nèi)部信息系統(tǒng)部分簡(jiǎn)化后的關(guān)系模式如下:員工表:EMPLOYEES(Eid,Ename,Address,Phone,Jid):屬性含義分別為:員工編碼、員工姓名、家庭住址、聯(lián)系電話(huà)、崗位級(jí)別編碼。崗位級(jí)別表:JOB_LEVELS(Jid,Jname,Jbase_salary):屬性含義分別為:崗位級(jí)別編碼、崗位名稱(chēng)、崗位基本工資。員工工資表:SALARY(Eid,attendance_wage,merit_pay,overtime_wage,salary,tax,year,month):屬性含義分別為:員工編碼、考勤工資、績(jī)效工資、加班工資、最終工資、稅、年份、月份。該企業(yè)在每月25日計(jì)算員工的工資。首先是根據(jù)考勤系統(tǒng)以及績(jī)效系統(tǒng)中的數(shù)據(jù),計(jì)算出員工的考勤、績(jī)效和加班工資,存入到員工工資表;其次結(jié)合員工的崗位基本工資,計(jì)算出最終工資,完成對(duì)員工工資表記錄的更新。最后依據(jù)員工工資表完成工資的發(fā)放。正確答案:詳見(jiàn)解析參考解析:本題考查觸發(fā)器的相關(guān)知識(shí)。根據(jù)題意,對(duì)員工工資表的修改只能在每月25日的上班時(shí)間進(jìn)行。參考答案如下:g:beforeh:updatei:rowj:'25'k:not觸發(fā)器程代碼解析如下。CREATETRIGGERCheckBusinessRule//創(chuàng)建CheckBusinessRule觸發(fā)器(g)beforeINSERTORDELETEOR(h)updateonSALARY//制定觸發(fā)事件為在SALARY表的DELETE和UPDATE操作之前FOREACH(i)row
//設(shè)置觸發(fā)器為行級(jí)的,即每條記錄的操作均會(huì)觸發(fā)BEGINIF(TO_CHAR(sysdate,'DD')<>(j)’25’)//設(shè)置每月25的條件,由于sysdate利用TO_CHAR函數(shù)轉(zhuǎn)換成了字符串,索引25要寫(xiě)成字符形式'25'OR(to_number(TO_CHAR(sysdate,‘HH24’))//將sysdate小時(shí)轉(zhuǎn)換成數(shù)字(k)notBETWEEN8AND18)
THEN//指定如果不是在工作時(shí)間操作,即不在8-18時(shí)之間Raise_Error;//拋出異常ENDIF;END;[問(wèn)答題]12.【問(wèn)題3】(4分)人事部門(mén)具有每月對(duì)員工進(jìn)行額外獎(jiǎng)罰的權(quán)限,該獎(jiǎng)罰也反應(yīng)到員工的最終工資上。假設(shè)當(dāng)某月計(jì)算一位員工的最終工資時(shí),同一時(shí)間人事部門(mén)對(duì)該員工執(zhí)行了獎(jiǎng)勵(lì)2000元的事務(wù)操作,對(duì)應(yīng)事務(wù)的部分調(diào)度序列如表4-1所示。(1)請(qǐng)說(shuō)明該事務(wù)調(diào)度存在哪種并發(fā)問(wèn)題?(3)
采用2PL是否可以解決該并發(fā)問(wèn)題?是否會(huì)產(chǎn)生死鎖?試題四(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】某企業(yè)內(nèi)部信息系統(tǒng)部分簡(jiǎn)化后的關(guān)系模式如下:員工表:EMPLOYEES(Eid,Ename,Address,Phone,Jid):屬性含義分別為:員工編碼、員工姓名、家庭住址、聯(lián)系電話(huà)、崗位級(jí)別編碼。崗位級(jí)別表:JOB_LEVELS(Jid,Jname,Jbase_salary):屬性含義分別為:崗位級(jí)別編碼、崗位名稱(chēng)、崗位基本工資。員工工資表:SALARY(Eid,attendance_wage,merit_pay,overtime_wage,salary,tax,year,month):屬性含義分別為:員工編碼、考勤工資、績(jī)效工資、加班工資、最終工資、稅、年份、月份。該企業(yè)在每月25日計(jì)算員工的工資。首先是根據(jù)考勤系統(tǒng)以及績(jī)效系統(tǒng)中的數(shù)據(jù),計(jì)算出員工的考勤、績(jī)效和加班工資,存入到員工工資表;其次結(jié)合員工的崗位基本工資,計(jì)算出最終工資,完成對(duì)員工工資表記錄的更新。最后依據(jù)員工工資表完成工資的發(fā)放。正確答案:詳見(jiàn)解析參考解析:(1)存在人事部門(mén)獎(jiǎng)懲事務(wù)的更新工資被計(jì)算最終工資事務(wù)的寫(xiě)入而覆蓋,即存在丟失修改的數(shù)據(jù)不一致性。(2)可以。但可能產(chǎn)生死鎖。補(bǔ)充知識(shí)。兩段封鎖協(xié)議(Two-PhaseLocking,簡(jiǎn)稱(chēng)2PL)是事務(wù)可串行化調(diào)度的充分條件,但2PL控制下,仍可能產(chǎn)生死鎖。2PL中事務(wù)必須分兩個(gè)階段對(duì)數(shù)據(jù)項(xiàng)加鎖和解鎖:第一階段是獲得封鎖,也稱(chēng)為擴(kuò)展階段:事務(wù)可以申請(qǐng)獲得任何數(shù)據(jù)項(xiàng)上的任何類(lèi)型的鎖,但是不能釋放任何鎖第二階段是釋放封鎖,也稱(chēng)為收縮階段:事務(wù)可以釋放任何數(shù)據(jù)項(xiàng)上的任何類(lèi)型的鎖,但是不能再申請(qǐng)任何鎖。[問(wèn)答題]13.【問(wèn)題1】(5分)請(qǐng)用100字以?xún)?nèi)的文字簡(jiǎn)要說(shuō)明數(shù)據(jù)庫(kù)系統(tǒng)常見(jiàn)故障類(lèi)型,并說(shuō)明表5-1中的日志記錄表明數(shù)據(jù)庫(kù)出現(xiàn)哪種類(lèi)型的故障。表示事務(wù)Ti開(kāi)始執(zhí)行,表示事務(wù)Ti提交,表示事務(wù)Ti將數(shù)據(jù)項(xiàng)D的值由V1修改為V2。例如:表示事務(wù)T1將數(shù)據(jù)項(xiàng)I的數(shù)值從22修改為3。表示將事務(wù)Ti回滾,數(shù)據(jù)項(xiàng)D的值回滾到V。表示事務(wù)Ti回滾結(jié)束。CRASH表示系統(tǒng)磁盤(pán)出錯(cuò)。請(qǐng)回答以下問(wèn)題。試題五(共15分)閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某裝備的組裝過(guò)程需要經(jīng)過(guò)多道程序,由于工作空間狹小,同時(shí)只能有一人在操作間工作,所以在每道工序之間需要先完成使用配件的出庫(kù)后,操作人員攜帶配件到操作間進(jìn)行安裝工作,安裝過(guò)程中需要掃描配件編碼以自動(dòng)記錄該配件的安裝情況。假使存在三個(gè)事務(wù)用于處理某一類(lèi)配件的某次安裝實(shí)施,事務(wù)T1負(fù)責(zé)出庫(kù)登記,T2負(fù)責(zé)安裝登記,T3負(fù)責(zé)將未使用的配件重新入庫(kù)。所有三個(gè)事務(wù)執(zhí)行完成后,T1出庫(kù)的數(shù)量應(yīng)等于T2安裝的數(shù)量與T3重新入庫(kù)的數(shù)量之和。數(shù)據(jù)項(xiàng)I記錄配件的庫(kù)存數(shù)量,數(shù)據(jù)項(xiàng)J記錄成功安裝的數(shù)量。某次組裝過(guò)程出庫(kù)了12個(gè)配件,安裝了6個(gè)。假設(shè)數(shù)據(jù)庫(kù)系統(tǒng)采用檢查點(diǎn)機(jī)制對(duì)故障進(jìn)行恢復(fù),部分日志文件如表5-1所示。日志記錄內(nèi)容中:表示事務(wù)Ti開(kāi)始執(zhí)行,表示事務(wù)Ti提交,表示事務(wù)Ti將數(shù)據(jù)項(xiàng)D的值由V1修改為V2。例如:表示事務(wù)T1將數(shù)據(jù)項(xiàng)I的數(shù)值從22修改為3。表示將事務(wù)Ti回滾,數(shù)據(jù)項(xiàng)D的值回滾到V。表示事務(wù)Ti回滾結(jié)束。CRASH表示系統(tǒng)磁盤(pán)出錯(cuò)。請(qǐng)回答以下問(wèn)題。正確答案:詳見(jiàn)解析參考解析:數(shù)據(jù)庫(kù)故障類(lèi)型包括:(1)事務(wù)故障:有事務(wù)內(nèi)部邏輯、運(yùn)算溢出、并發(fā)事務(wù)發(fā)生死鎖、違反了某些完整性限制等而導(dǎo)致事務(wù)終止。(2)系統(tǒng)故障:指造成系統(tǒng)停止運(yùn)轉(zhuǎn)的任何事件(硬件錯(cuò)誤、操作系統(tǒng)故障、DBMS代碼錯(cuò)誤、系統(tǒng)斷電),使得系統(tǒng)要重新啟動(dòng)。(3)介質(zhì)故障:數(shù)據(jù)庫(kù)存儲(chǔ)磁盤(pán)損壞而導(dǎo)致數(shù)據(jù)丟失。(4)計(jì)算機(jī)病毒故障:由于計(jì)算機(jī)病毒導(dǎo)致數(shù)據(jù)被惡意修改或刪除。由于日志列表中CRASH表示系統(tǒng)磁盤(pán)出錯(cuò),所以屬于系統(tǒng)故障。[問(wèn)答題]14.【問(wèn)題2】(4分)請(qǐng)給出系統(tǒng)恢復(fù)時(shí)需要重做(Redo)的事務(wù)列表和需要撤銷(xiāo)(Undo)的事務(wù)列表。表示事務(wù)Ti開(kāi)始執(zhí)行,表示事務(wù)Ti提交,表示事務(wù)Ti將數(shù)據(jù)項(xiàng)D的值由V1修改為V2。例如:表示事務(wù)T1將數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市服務(wù)用語(yǔ)課件培訓(xùn)內(nèi)容
- 2025-2030細(xì)胞培養(yǎng)肉技術(shù)商業(yè)化路徑與食品產(chǎn)業(yè)變革前景展望
- 2025-2030線(xiàn)上線(xiàn)下融合的免漆門(mén)新零售模式探索
- 2025-2030系列產(chǎn)品渠道下沉策略與三四線(xiàn)城市市場(chǎng)開(kāi)發(fā)報(bào)告
- 2025-2030突尼斯紡織行業(yè)中心琢磨及商業(yè)前景與設(shè)計(jì)創(chuàng)新報(bào)告
- 2025-2030知識(shí)產(chǎn)權(quán)產(chǎn)業(yè)競(jìng)爭(zhēng)格局分析及融資規(guī)劃研究報(bào)告
- 2025-2030益智類(lèi)兒童APP市場(chǎng)現(xiàn)狀及商業(yè)模式創(chuàng)新研究
- 2025-2030甲醇產(chǎn)業(yè)市場(chǎng)供需現(xiàn)狀分析及投資評(píng)估科學(xué)研究規(guī)劃報(bào)告
- 分包安全培訓(xùn)
- 2025年濰坊學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析
- 近五年河北中考英語(yǔ)試題及答案2025
- 山西省臨汾市2025-2026年八年級(jí)上物理期末試卷(含答案)
- (2025年)員工安全培訓(xùn)考試試題(含答案)
- GB/T 36132-2025綠色工廠(chǎng)評(píng)價(jià)通則
- 2025-2026學(xué)年北師大版八年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)卷(含答案)
- 2025年艾滋病培訓(xùn)試題與答案(全文)
- 2026四川成都九聯(lián)投資集團(tuán)有限公司招聘12人筆試參考題庫(kù)及答案解析
- 【二下數(shù)學(xué)】計(jì)算每日一練60天(口算豎式脫式應(yīng)用題)
- 殘疾人服務(wù)與權(quán)益保護(hù)手冊(cè)(標(biāo)準(zhǔn)版)
- 北京市東城區(qū)2025-2026學(xué)年高三上學(xué)期期末考試地理 有答案
- 2025年健康體檢中心服務(wù)流程手冊(cè)
評(píng)論
0/150
提交評(píng)論