第 1 頁:單選題 |
第 2 頁:應(yīng)用題 |
第 3 頁:設(shè)計與應(yīng)用題 |
三、設(shè)計與應(yīng)用題(共30分)
36[簡答題]
設(shè)有商品表(商品號,商品名,單價)和銷售表(銷售單據(jù)號,商品號,銷售時間,銷售數(shù)量,銷售單價)。其中,商品號代表一類商品,商品號、單價、銷售數(shù)量和銷售單價均為整型。
請編寫查詢某年某商品的銷售總毛利的存儲過程,毛利=銷售數(shù)量×(銷售單價-單價)。
要求商品號和年份為輸入?yún)?shù),總毛利用輸出參數(shù)返回。
參考解析:【解題思路】 存儲過程是由PL/SQL語句書寫的過程,這個過程經(jīng)編譯和優(yōu)化后存儲在數(shù)據(jù)庫服務(wù)器中,使用時只要調(diào)用即可。使用存儲過程具有以下優(yōu)點:其已經(jīng)編譯和優(yōu)化過了,所以運行效率高,提供了在服務(wù)器端快速執(zhí)行SQL語句的有效途徑;存儲過程降低了客戶端和服務(wù)器之間的通信量;方便實施企業(yè)規(guī)則,當(dāng)企業(yè)規(guī)則發(fā)生變化時只要修改存儲過程,而無需修改其他應(yīng)用程序。
如上所示,存儲過程包括過程首部和過程體。過程名是數(shù)據(jù)庫服務(wù)器合法的對象標(biāo)識;參數(shù)列表:用名字來標(biāo)識調(diào)用時給出的參數(shù)值,必須指定值的數(shù)據(jù)類型。參數(shù)可以是輸入?yún)?shù)或輸出參數(shù),默認(rèn)為輸入?yún)?shù)。
37[簡答題]
設(shè)某全國性的運輸企業(yè)建立了大型OLTP系統(tǒng),并在該系統(tǒng)之上建立了數(shù)據(jù)倉庫。OLTP系統(tǒng)和數(shù)據(jù)倉庫中有如下數(shù)據(jù)表:
運輸明細(xì)表(運輸單ID,發(fā)送站ID,終到站ID,貨物ID,貨物重量,運輸價格,發(fā)貨日期)
匯總表1(發(fā)送站ID,終到站ID,貨物ID,發(fā)貨日期,總重,總運價)
匯總表2(發(fā)送站ID,終到地區(qū)ID,貨物ID,發(fā)貨日期,總重,總運價)
匯總表3(發(fā)送站ID,終到站ID,貨物ID,發(fā)貨月份,總重,總運價)
匯總表4(發(fā)送地區(qū)ID,終到地區(qū)ID,貨物類別ID,發(fā)貨日期,總重,總運價)
該企業(yè)管理的貨運站約有100個,貨物約有500種共10類,各匯總表都建有主碼,且各表有合理的維護策略,在每次維護后數(shù)據(jù)能保持一致。設(shè)有視圖V,該視圖的訪問頻率很高,其查詢結(jié)果模式為(發(fā)送地區(qū)ID,終到站ID,發(fā)貨月份,總重,總運價),該視圖現(xiàn)以匯總表1為計算數(shù)據(jù)源。經(jīng)監(jiān)控發(fā)現(xiàn),匯總表1的被訪問頻率過高,導(dǎo)致系統(tǒng)整體性能下降,而其它匯總表被訪問頻率較低。在不增加匯總表和索引的情況下,請給出一個改善系統(tǒng)服務(wù)性能的優(yōu)化方案,并簡要說明理由。
參考解析:【解題思路】 視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以存儲的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時動態(tài)生成。對其中所引用的基礎(chǔ)表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當(dāng)前或其他數(shù)據(jù)庫的一個或多個表,或者其他視圖。
分布式查詢也可用于定義使用多個異類源數(shù)據(jù)的視圖。
從用戶角度來看,一個視圖是從一個特定的角度來查看數(shù)據(jù)庫中的數(shù)據(jù)。從數(shù)據(jù)庫系統(tǒng)內(nèi)部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。從數(shù)據(jù)庫系統(tǒng)內(nèi)部來看,視圖是由一張或多張表中的數(shù)據(jù)組成的,從數(shù)據(jù)庫系統(tǒng)外部來看,視圖就如同一張表一樣,對表能夠進行的一般操作都可以應(yīng)用于視圖,如查詢,插入,修改,刪除操作等。
視圖一經(jīng)定義便存儲在數(shù)據(jù)庫中,與其相對應(yīng)的數(shù)據(jù)并沒有像表那樣又在數(shù)據(jù)庫中再存儲一份,通過視圖看到的數(shù)據(jù)只是存放在基本表中的數(shù)據(jù)。對視圖的操作與對表的操作一樣,可以對其進行查詢、修改(有一定的限制)、刪除。
當(dāng)對通過視圖看到的數(shù)據(jù)進行修改時,相應(yīng)的基本表的數(shù)據(jù)也要發(fā)生變化,同時,若基本表的數(shù)據(jù)發(fā)生變化,則這種變化也可以自動地反映到視圖中。
【參考答案】
由于匯總表1和視圖的模式訪問頻率都很高,而且視圖的數(shù)據(jù)源來自匯總表1,又因為其他匯總表的訪問率較低,所以只需要將視圖的數(shù)據(jù)源綁定為匯總表3,因為匯總表3也可以滿足視圖的輸出模式。這樣不僅提升了匯總表3的數(shù)據(jù)訪問率,而且降低了匯總表1的數(shù)據(jù)訪問率,系統(tǒng)性能和服務(wù)性能得到很大的優(yōu)化。又因為貨物約有500種,共10類,可以再建立一個視圖綁定數(shù)據(jù)源為匯總表4,這樣就可以充分利用匯總表4的數(shù)據(jù)信息,從而可以進一步優(yōu)化系統(tǒng)性能。
38[簡答題]
設(shè)某連鎖商店數(shù)據(jù)庫中有關(guān)系模式R:
R(商店編號,商品編號,庫存數(shù)量,部門編號,負(fù)責(zé)人)
如果規(guī)定:每個商店的每種商品只在一個部門銷售,每個商店的每個部門只有一個負(fù)責(zé)人,每個商店的每種商品只有一個庫存數(shù)量。
(1)請根據(jù)上述規(guī)定,寫出關(guān)系模式R的函數(shù)依賴集;
(2)請給出關(guān)系模式R的候選碼;
(3)請說明關(guān)系模式R屬于第幾范式,并給出理由;
(4)請將R分解成滿足3NF的關(guān)系模式。
參考解析:(1)【解題思路】 函數(shù)依賴定義:設(shè)R(U)是屬性集U上的關(guān)系模式,X,Y是U的子集,若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴X,記作X->Y。函數(shù)依賴是指關(guān)系R的一切關(guān)系均要滿足的約束條件。
【參考答案】
(商店編號,商品編號)->部門編號,(商店編號,部門編號)->負(fù)責(zé)人,(商店編號,商品編號)->庫存量。
(2)【解題思路】
設(shè)K為R中的屬性或?qū)傩越M合,若u完全依賴于K,則K為R的候選碼。
【參考答案】
(商店編號,商品編號)
(3)【解題思路】
關(guān)系數(shù)據(jù)庫是要滿足一定要求的。滿足最低要求的叫第一范式,在第一范式中滿足進一步要求的為第二范式,其余以此類推。顯然該關(guān)系模式滿足第一范式,接下來檢查其是否滿足第二范式。在第二范式中,要求關(guān)系模式中不存在部分依賴,每一個非主屬性完全依賴于碼,而根據(jù)第一空可得如下依賴關(guān)系:(部門編號,商店編號)一>負(fù)責(zé)人,所以屬于第二范式。它的非主屬性(不包含在任何候選碼中的屬性)有3個:部門編號、負(fù)責(zé)人和庫存量,并皆完全函數(shù)依賴于主碼。將(商店編號、商品編號)記作X,(商店編號、部門編號)記作Y,負(fù)責(zé)人記作Z,即x→Y,Y→Z。由此可以看出,存在傳遞依賴,故不屬于第三范式。
【參考答案】
第二范式
(4)【解題思路】
第三范式中要求每一個屬性既不部分依賴于碼也不傳遞依賴于碼。
【參考答案】
R1(商店編號、商品編號、部門編號、庫存量);R2(商店編號、部門編號、負(fù)責(zé)人)。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |