




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、設(shè)計(jì)與應(yīng)用題1、設(shè)某教學(xué)管理系統(tǒng),其查詢模塊需要提供如下功能:I.查詢系信息,列出各系編號(hào)、系名和系辦公電話;U.查詢某系教師的信息,列出教師號(hào)、教師名、工資和聘用日期;m.查詢某教師講授的課程信息,列出課程號(hào)、課程名和學(xué)分;IV .查詢講授某門課程的教師信息,列出教師名和職稱;V .查詢某門課程的先修課程信息,列出先修課程號(hào)和先修課程名。系統(tǒng)有如下業(yè)務(wù)規(guī)則:l. 一個(gè)系可聘用多名教師,一名教師只能受聘于一個(gè)系;n. 一名教師可講授多門課程,一門課程可由多名教師講授;m. 一門課程可以有多門先修課程,也可以沒有先修課程。(1)請(qǐng)根據(jù)以上查詢功能與業(yè)務(wù)規(guī)則,用ER圖描述該系統(tǒng)的概念模型。(5分)
2、(2)將ER圖轉(zhuǎn)換為滿足3NF的關(guān)系模式,并說(shuō)明每個(gè)關(guān)系模式的主碼和外碼。(5分)(1) 【解題思路】E-R 圖也稱實(shí)體 -聯(lián)系圖,提供了表示實(shí)體類型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。為了簡(jiǎn)化 E-R 圖的處置,現(xiàn)實(shí)世界的事物能作為屬性對(duì)待的則盡量作為屬性對(duì)待。實(shí)體與屬性的劃分給出如下兩條規(guī)則:作為"屬,性",不能再具有需要描述的性質(zhì),"屬,性”必須是不可分的數(shù)據(jù)項(xiàng),不能包含其它屬 性。"屬性"不能與其它實(shí)體有聯(lián)系,即E-R圖中所表示的聯(lián)系是實(shí)體之間的聯(lián)系。本題中一個(gè)系可以聘用多名教師,一名教師只能受聘于一個(gè)系,所以系實(shí)體與教師實(shí)
3、體有聯(lián)系;一名教師可以講授多門課程,一門課程可由多名教師講授,所以教師實(shí)體與課程實(shí)體有聯(lián)系,一門課程可以有多門先修課程,所以課程間也有聯(lián)系。(2) 【解題思路】要想使轉(zhuǎn)換生成的關(guān)系模式滿足3NF,則必須滿足關(guān)系模式中每一個(gè)非主屬性既不部分依賴于碼也不傳遞依賴于碼。2、設(shè)有商品表(商品號(hào),商品名,單價(jià))和銷售表(銷售單據(jù)號(hào),商品號(hào),銷售時(shí)間,銷售數(shù)量,銷售單價(jià)) 。其中,商品號(hào)代表一類商品,商品號(hào)、單價(jià)、銷售數(shù)量和銷售單價(jià)均為整型。請(qǐng)編寫查詢某年某商品的銷售總毛利的存儲(chǔ)過(guò)程,毛利奇肖售數(shù)量X (銷售單價(jià)-單價(jià))。要求商品號(hào)和年份為輸入?yún)?shù),總毛利用輸出參數(shù)返回。 ( 10 分)【解題思路】存儲(chǔ)過(guò)
4、程是由 PL/SQL 語(yǔ)句書寫的過(guò)程, 這個(gè)過(guò)程經(jīng)編譯和優(yōu)化后存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器中, 使用時(shí)只要調(diào)用即可。使用存儲(chǔ)過(guò)程具有以下優(yōu)點(diǎn):其已經(jīng)編譯和優(yōu)化過(guò)了,所以運(yùn)行效率高,提供了在服務(wù)器端快速執(zhí)行SQL語(yǔ)句的有效途徑;存儲(chǔ)過(guò)程降低了客戶端和服務(wù)器之間的通信量;方便實(shí)施企業(yè)規(guī)則,當(dāng)企業(yè)規(guī)則發(fā)生變化時(shí)只要修改存儲(chǔ)過(guò)程,而無(wú)需修改其他應(yīng)用程序。創(chuàng)建存儲(chǔ)過(guò)程:create procedure 過(guò)程名參數(shù)名 類型,參數(shù)名類型 /* 過(guò)程首部 */AsDeclare/*as 下面對(duì)應(yīng)的PL/SQL蹴為過(guò)程體*/begin end如上所示,存儲(chǔ)過(guò)程包括過(guò)程首部和過(guò)程體。過(guò)程名是數(shù)據(jù)庫(kù)服務(wù)器合法的對(duì)象標(biāo)識(shí);參數(shù)
5、列表:用名字來(lái)標(biāo)識(shí)調(diào)用時(shí)給出的參數(shù)值,必須指定值的數(shù)據(jù)類型。參數(shù)可以是輸入?yún)?shù)或輸出參數(shù),默認(rèn)為輸入?yún)?shù)3、設(shè)某全國(guó)性的運(yùn)輸企業(yè)建立了大型OLTP系統(tǒng),并在該系統(tǒng)之上建立了數(shù)據(jù)倉(cāng)庫(kù)。OLTP系統(tǒng)和數(shù)據(jù)倉(cāng)庫(kù)中有如下數(shù)據(jù)表:運(yùn)輸明細(xì)表(運(yùn)輸單ID,發(fā)送站ID,終到站ID,貨物ID,貨物重量,運(yùn)輸價(jià)格,發(fā)貨日期)匯總表1 (發(fā)送站ID,終到站ID,貨物ID,發(fā)貨日期,總重,總運(yùn)價(jià))匯總表2 (發(fā)送站ID,終到地區(qū)ID,貨物ID,發(fā)貨日期,總重,總運(yùn)價(jià))匯總表3 (發(fā)送站ID,終到站ID,貨物ID,發(fā)貨月份,總重,總運(yùn)價(jià))匯總表4 (發(fā)送地區(qū)ID,終到地區(qū)ID,貨物類別ID,發(fā)貨日期,總重,總運(yùn)價(jià))該
6、企業(yè)管理的貨運(yùn)站約有 100個(gè),貨物約有500種共10類,各匯總表都建有主碼,且各表有合理的維護(hù)策略,在每次維護(hù)后數(shù)據(jù)能保持一致。設(shè)有視圖V,該視圖的訪問(wèn)頻率很高,其查詢結(jié)果模式為(發(fā)送地區(qū)ID,終到站ID,發(fā)貨月份,總重,總運(yùn)價(jià)),該視圖現(xiàn)以匯總表1為計(jì)算數(shù)據(jù)源。經(jīng)監(jiān)控發(fā)現(xiàn),匯總表 1 的被訪問(wèn)頻率過(guò)高,導(dǎo)致系統(tǒng)整體性能下降,而其它匯總表被訪問(wèn)頻率較低。在不增加匯總表和索引的情 況下,請(qǐng)給出一個(gè)改善系統(tǒng)服務(wù)性能的優(yōu)化方案,并簡(jiǎn)要說(shuō)明理由。(10分)【解題思路】計(jì)算機(jī)系統(tǒng)中存在著兩類不同的數(shù)據(jù)處理工作:操作型處理和分析型處理,也稱作OLTP聯(lián)機(jī)事務(wù)處理)和OLAP聯(lián)機(jī)分析處理)。操作型處理也叫
7、事務(wù)處理,是指對(duì)數(shù)據(jù)庫(kù)聯(lián)機(jī)的日常操作,通常是對(duì)一個(gè)或一組紀(jì) 錄的查詢或修改,例如火車售票系統(tǒng)、銀行通存通兌系統(tǒng)、稅務(wù)征收管理系統(tǒng)等。這些系統(tǒng)要求快速響應(yīng) 用戶請(qǐng)求,對(duì)數(shù)據(jù)的安全性、完整性以及事務(wù)吞吐量要求很高。結(jié)合本題中存在的問(wèn)題,視圖本身的訪問(wèn) 量很高,而又僅僅以匯總表 1為計(jì)算數(shù)據(jù)源,而其它匯總表訪問(wèn)率低,導(dǎo)致了資源利用不合理。因此本題 考察了聯(lián)機(jī)事務(wù)處理中的資源調(diào)度問(wèn)題。4、設(shè)在SQL Server2008某數(shù)據(jù)庫(kù)中有商品表和銷售表,兩個(gè)表的定義如下:(新增題庫(kù)一)CREATE TABLEWm表(商品號(hào) char(10) PRIMARY KEY,商品名 varchar(40),類另 U
8、varchar(20), 進(jìn)貨單價(jià)int );CREATETABLE!售表(商品號(hào)char(10) REFERENCES商品表(商品號(hào)),銷售時(shí)間datetime,銷售數(shù)量int,銷售單價(jià)int,PRIMARYKE璃品號(hào),銷售時(shí)間);現(xiàn)要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)過(guò)程:查詢指定類別的每種商品當(dāng)前年銷售總金額(銷售總金額=銷售單價(jià)*銷售數(shù)量)請(qǐng)補(bǔ)全下列代碼。CREATEPROC p_TotalProfitlb varchar(20)AS3 andIiilSELECT商品名,(SELECTFROM!肖售表 t1 WHEREyear(Getdate() AS銷售總金額I-4FROM商品表 t2 WHERE【解題思
9、路】整個(gè)select語(yǔ)句的含義是:根據(jù) where子句的條件表達(dá)式,從From子句指定的基本表或視圖中找出滿足條件的元組,再按select 子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。該題中 (SELECT FROM 銷售表 t1 WHERE and = year(Getdate()是個(gè)嵌套,別名叫做銷售總金額。語(yǔ)句執(zhí)行過(guò)程:?先從商品表中按照第二個(gè)where 形成一個(gè)初步查詢結(jié)果。 由于只有商品表中有類別, 因此可知第四空填寫:t2. 類別 =lb(t2 是商品表的別名, t1 是銷售表的別名 ) 。由此可知該步是按給定類別查詢。?銷售總金額語(yǔ)句就應(yīng)該在第一部的基礎(chǔ)上求某年的總額。因
10、此可以推斷第三空是獲得銷售時(shí)間語(yǔ)句。 因此該空填寫t1. 銷售時(shí)間。由于是在第一步基礎(chǔ)上的查詢,所以應(yīng)該實(shí)行連表查詢,第二空應(yīng)該填寫連接的條件,即t1. 商品號(hào)=t2. 商品號(hào)。?第一空應(yīng)該是求總額的語(yǔ)句。銷售總金額=銷售單價(jià)*銷售數(shù)量,即銷售單價(jià)*SUM (銷售數(shù)量)?!緟⒖即鸢浮俊镜?空】銷售單價(jià)*SUM (銷售數(shù)量)【第 2 空】 t1. 商品號(hào) =t2. 商品號(hào)【第3 空】t1. 銷售時(shí)間【第4 空】t2. 類別 =lb5、設(shè)某超市經(jīng)營(yíng)管理系統(tǒng)使用SQLServer 2008數(shù)據(jù)庫(kù)管理系統(tǒng),此數(shù)據(jù)庫(kù)服務(wù)器有2顆CPU 16GB內(nèi)存、2TB磁盤。上線運(yùn)行1年后,用戶在生成每天每個(gè)銷售人員
11、及每個(gè)收銀臺(tái)的總銷售額報(bào)表時(shí)速度緩慢。經(jīng)技術(shù)人員分析,發(fā)現(xiàn)速度緩慢的原因?yàn)殇N售單據(jù)表和銷售單據(jù)明細(xì)表數(shù)據(jù)量合計(jì)已經(jīng)達(dá)到60GB已知這兩個(gè)表結(jié)構(gòu)如下:銷售單據(jù)表(銷售單據(jù)編號(hào),銷售時(shí)間,銷售人員編號(hào),收銀臺(tái)編號(hào))銷售單據(jù)明細(xì)表(銷售單據(jù)編號(hào),商品編號(hào),單價(jià),數(shù)量)在進(jìn)行此報(bào)表計(jì)算時(shí)數(shù)據(jù)庫(kù)服務(wù)器CPU肖耗非常高。為了優(yōu)化此操作,某工程師建議在銷售單據(jù)表中增加"付款總金額" 屬性,取值由觸發(fā)器自動(dòng)計(jì)算。請(qǐng)從磁盤空間使用、銷售操作時(shí)對(duì)數(shù)據(jù)庫(kù)服務(wù)器的影響、數(shù)據(jù)一致性以及對(duì)總銷售額計(jì)算速度影響方面分析此方案優(yōu)劣。請(qǐng)判斷此方案是否可行,并從時(shí)空代價(jià)和優(yōu)化效果方面分析原因?!窘忸}思路】在數(shù)
12、據(jù)庫(kù)設(shè)計(jì)階段,主要強(qiáng)調(diào)的是高效率利用存儲(chǔ)空間,減少數(shù)據(jù)的冗余,減少數(shù)據(jù)的不一致性,這個(gè)過(guò)程也就是規(guī)范化的過(guò)程。但是在數(shù)據(jù)庫(kù)運(yùn)行階段要考慮到高效率的進(jìn)行數(shù)據(jù)處理。完全規(guī)劃化的數(shù)據(jù)庫(kù)會(huì)產(chǎn)生很多表,對(duì)于一個(gè)頻繁使用的查詢,如果它要求操作多個(gè)相關(guān)表中的數(shù)據(jù),則每次為生成需要的查詢結(jié)果而在連接多個(gè)表中相關(guān)行時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)就會(huì)消耗更多的計(jì)算資源,因?yàn)檫B接操作非常耗時(shí)。而反規(guī)范化是將規(guī)范化的關(guān)系轉(zhuǎn)換為非規(guī)范化的關(guān)系的過(guò)程,目的是提高查詢的效率。常見的方法有增加派生冗余列,增加冗余列,重新組表,分割表和新增匯總表等方法。該題解決的方式就是增加派生冗余列-" 付款總金額" 。派生性冗余列
13、是指表中增加的列由表中的一些數(shù)據(jù)項(xiàng)經(jīng)過(guò)計(jì)算而成,它的作用是查詢時(shí)減少連接操作,避免使用聚合函數(shù)。例如銷售單據(jù)明細(xì)表(銷售單據(jù)編號(hào),商品編號(hào),單價(jià),數(shù)量)中增加" 付款總金額 " ,因?yàn)楦犊羁偨痤~=單價(jià)*數(shù)量得到,說(shuō)明 " 付款總金額" 是派生性冗余列。如果不要該字段,那么每次使用總價(jià)時(shí),都要先執(zhí)行代碼計(jì)算后才能使用,如果商品數(shù)量較多,而且要頻繁使用 " 付款總金額 " 時(shí),計(jì)算 " 付款總金額 " 時(shí)執(zhí)行的次數(shù)也會(huì)隨著增加,這顯然會(huì)影響數(shù)據(jù)庫(kù)的執(zhí)行效率。若增加" 付款總金額" 這個(gè)派生性冗余字段
14、,雖然破壞了規(guī)范化原則,但只要執(zhí)行一次計(jì)算 " 付款總金額" 就可以把商品金額存在數(shù)據(jù)庫(kù)中,以后不管什么時(shí)候使用 " 付款總金額 " 字段,只需要提取其值就可以了,不必在執(zhí)行代碼了。因此增加" 付款總金額 " ,雖然提高了磁盤空間的使用,但是可以提高系統(tǒng)執(zhí)行的效率,達(dá)到以空間換時(shí)間的目的。由此可以看出,在數(shù)據(jù)單據(jù)表中增加"付款總金額 "不是正確的優(yōu)化方法,應(yīng)該在數(shù)據(jù)單據(jù)明細(xì)表中增加"付款總金額" ,這樣才能提高查詢效率?!緟⒖即鸢浮?(新增題庫(kù)一)此方案不可行。觸發(fā)器可以通過(guò)數(shù)據(jù)庫(kù)中的相關(guān)表進(jìn)行
15、層疊更改,這比直接把代碼寫在前臺(tái)的做法更安全合理,保證了數(shù)據(jù)的一致性,但同時(shí)增加了磁盤空間的消耗。在超市經(jīng)營(yíng)中要批量操作、多次觸發(fā)的情況下,觸發(fā)器的效率低,因?yàn)樗喈?dāng)于每次都執(zhí)行一段SQL語(yǔ)句,使cpu的消耗更高。因而從時(shí)空代價(jià)角度來(lái)說(shuō)并不能達(dá)到優(yōu)化的效果,故該方案不可行。6、設(shè)某連鎖商店數(shù)據(jù)庫(kù)中有關(guān)系模式R:R (商店編號(hào),商品編號(hào),庫(kù)存數(shù)量,部門編號(hào),負(fù)責(zé)人)如果規(guī)定:每個(gè)商店的每種商品只在一個(gè)部門銷售,每個(gè)商店的每個(gè)部門只有一個(gè)負(fù)責(zé)人,每個(gè)商店的每種商品只有一個(gè)庫(kù)存數(shù)量。 ( 10 分)( 1 )請(qǐng)根據(jù)上述規(guī)定,寫出關(guān)系模式R 的函數(shù)依賴集;( 2 )請(qǐng)給出關(guān)系模式R 的候選碼;(3)請(qǐng)
16、說(shuō)明關(guān)系模式 R屬于第幾范式,并給出理由;(4)請(qǐng)將R分解成滿足3NF的關(guān)系模式。( 1 ) 【解題思路】函數(shù)依賴定義:設(shè) R(U)是屬性集U上的關(guān)系模式,X, 丫是U的子集,若對(duì)于 R (U)的任意一個(gè)可能的關(guān)系r, r中不可能存在兩個(gè)元組在X上的屬性值相等,在丫上的屬性值不等,則稱 X函數(shù)確定丫或丫函數(shù)依賴X,記作X->Yo函數(shù)依賴是指關(guān)系R的一切關(guān)系均要滿足的約束條件。( 2 ) 【解題思路】設(shè)K為R<U,F>中的屬性或?qū)賔iE組合,若U完全依賴于K,則K為R的候選碼。( 3 ) 【解題思路】關(guān)系數(shù)據(jù)庫(kù)是要滿足一定要求的。滿足最低要求的叫第一范式,在第一范式中滿足進(jìn)一步
17、要求的為第二范式,其余以此類推。顯然該關(guān)系模式滿足第一范式,接下來(lái)檢查其是否滿足第二范式。在第二范式中,要求關(guān)系模式中不存在部分依賴, 每一個(gè)非主屬性完全依賴于碼, 而根據(jù)第一空可得如下依賴關(guān)系: (部門編號(hào),商店編號(hào)) -> 負(fù)責(zé)人,所以屬于第一范式。它的非主屬性有3 個(gè)(不包含在任何候選碼中的屬性) :部門編號(hào)、負(fù)責(zé)人、庫(kù)存量,并都完全函數(shù)依賴于主碼。將(商店編號(hào)、商品編號(hào))記作X, (商店編號(hào)、部門編號(hào))記作Y,負(fù)責(zé)人記作Z,由此可以看出,存在傳遞依賴,故不屬于第三范式。( 4 )第三范式中要求每一個(gè)屬性既不部分依賴于碼也不傳遞依賴于碼。7、在某數(shù)據(jù)庫(kù)中,相關(guān)表的建表語(yǔ)句如下: (
18、新增題庫(kù)二)create tableT1(a1 int primary key,a2 int,a3 int foreign key references T2(a3);create tableT2(a3 int primary key,a4 int,a5 int foreign key references T2(a3);create tableT3(al int,a3 int,a6 int,primary key (a1, a3),al foreign key references T1(a1),a3 foreign key references T2(a3);請(qǐng)畫出相應(yīng)的E-R圖,使得可以
19、從該 E-R圖推導(dǎo)出上述表定義,其中實(shí)體和聯(lián)系的名稱可以自定,實(shí)體的 主碼屬性請(qǐng)使用下劃線標(biāo)明。【參考答案】15 / 17(新增題庫(kù)二)8、設(shè)某超市經(jīng)營(yíng)管理系統(tǒng)使用SQL Server 2008數(shù)據(jù)庫(kù)管理系統(tǒng)。為了保證數(shù)據(jù)庫(kù)可靠運(yùn)行,數(shù)據(jù)庫(kù)管理員設(shè)置了每天夜間對(duì)數(shù)據(jù)庫(kù)一次全備份,備份數(shù)據(jù)保留2個(gè)月的備份策略。上線運(yùn)行1年后,SQLServer數(shù)據(jù)庫(kù)中數(shù)據(jù)已經(jīng)達(dá)到近 200GB每天夜間要運(yùn)行 3個(gè)小時(shí)才能將數(shù)據(jù)庫(kù)進(jìn)行一次全備份,影響了夜間統(tǒng) 計(jì)等業(yè)務(wù)正常運(yùn)行。同時(shí),備份空間也非常緊張。請(qǐng)解釋出現(xiàn)此現(xiàn)象的原因,并提出優(yōu)化的方法?!緟⒖即鸢浮慨a(chǎn)生此現(xiàn)象的原因是系統(tǒng)采用了全備份策略,隨著業(yè)務(wù)的開展,需
20、要備份數(shù)據(jù)量逐漸增大,備份時(shí)間越來(lái)越長(zhǎng),占用了系統(tǒng)的資源,從而影響了其它業(yè)務(wù)。解決的方法是采用全備份+差異備份+日志備份組合策略備份數(shù)據(jù)庫(kù)。全備份+差異備份+日志備份組合策略是指在全備份中加一些差異備份,比如每周日0:00進(jìn)行一次全備份,然后每天0:00點(diǎn)進(jìn)行一次差異備份, 然后再兩次差異備份之間增加一些日志備份。這樣 做備份和恢復(fù)的速度都比較快,而當(dāng)系統(tǒng)出現(xiàn)故障時(shí),丟失的數(shù)據(jù)也很少。備份示意圖如下:白三香自L E惠善份2日惠善份3日惠善份4金備份1差易備份L蛤備份工 I I _ _I ,-題 Eo:oo U:00 U:cc 同一。二CO茬二 0:8 t如果系統(tǒng)在周二的差異備份之前出現(xiàn)故障,則
21、應(yīng)首先嘗試備份活動(dòng)日志(日志尾部),然后再按順序恢復(fù)全備份1,差異備份1,日志備份3和日志備份4,然后再恢復(fù)備份的尾部日志。如果尾部日志備份成 功,則數(shù)據(jù)庫(kù)可以還原到故障點(diǎn)。這種備份策略雖然備份頻率高,但是備份時(shí)間短,占用的備份空間也小,而且不會(huì)產(chǎn)生數(shù)據(jù)丟失。如果系統(tǒng)在周二的差異備份之前出現(xiàn)故障,則應(yīng)首先嘗試備份活動(dòng)日志(日志尾部),然后再按順序恢復(fù)全備份1,差異備份1,日志備份3和日志備份4,然后再恢復(fù)備份的尾部日志。如果尾部日志備份成 功,則數(shù)據(jù)庫(kù)可以還原到故障點(diǎn)。這種備份策略雖然備份頻率高,但是備份時(shí)間短,占用的備份空間也小,而且不會(huì)產(chǎn)生數(shù)據(jù)丟失。1、設(shè)有商品表(商品號(hào),商品名,單價(jià))和
22、銷售表(銷售單據(jù)號(hào),商品號(hào),銷售時(shí)間,銷售數(shù)量,銷售 單價(jià))。其中,商品號(hào)代表一類商品,商品號(hào)、單價(jià)、銷售數(shù)量和銷售單價(jià)均為整型。請(qǐng)編寫查詢某年某商品的銷售總毛利的存儲(chǔ)過(guò)程,毛利于肖售數(shù)量X (銷售單價(jià)一單價(jià))。要求商品號(hào)和年份為輸入?yún)?shù),總毛利用輸出參數(shù)返回。(10分)CREATE PROCEDURE PRODUCT int ,酸份 int ,儂利 int output ASDECLARE或商品銷售量int,某商品進(jìn)價(jià)int ,跳商品銷售單價(jià)int /*中間變量定義*/BEGINSelect 某商品進(jìn)價(jià)=單價(jià)from 商品表where 商品號(hào)=商品號(hào)Select 某商品銷售單價(jià)=銷售單價(jià),
23、媒商品銷售量=count(*) from 銷售表where 硝品號(hào)=商品號(hào)and銷售時(shí)間=坪份 IF 某商品進(jìn)價(jià)is NULL THEN /*判斷該商品是否存在*/ROLLBACK;RETURN;END IFIF 某商品銷售單價(jià) is NULL THEN /* 判斷該商品是否可賣*/ROLLBACK;RETURN;END IFSET 毛利 = ( 某商品銷售單價(jià)-某商品進(jìn)價(jià))*某商品銷售量GO2 、在 SQL Server 2008 中,設(shè)某數(shù)據(jù)庫(kù)中有商品表(商品號(hào),商品名,進(jìn)貨價(jià)格) ,商品號(hào)為主碼;銷售表(商品號(hào),銷售時(shí)間,銷售數(shù)量,銷售價(jià)格,本次利潤(rùn)) ,商品號(hào)和銷售時(shí)間為主碼,銷售價(jià)格
24、為本次銷售商品的單價(jià)。現(xiàn)要求每當(dāng)在銷售表中插入前4 列數(shù)據(jù)時(shí)(假設(shè)一次只插入一行數(shù)據(jù)) ,系統(tǒng)自動(dòng)計(jì)算本次銷售產(chǎn)生的利潤(rùn),并將該利潤(rùn)賦給銷售表的第 5列"本次利潤(rùn) " 。請(qǐng)編寫實(shí)現(xiàn)上述功能的后觸發(fā)型觸發(fā)器代碼。 ( 10分)CREATE TRIGGER calcu_productAFTER INSERT ON 銷售表FOR EACH ROWAS BEGINDECLARE PurchasePrise float /* 對(duì)應(yīng)商品的進(jìn)價(jià)的參數(shù)*/SELECT PurchasePrise=進(jìn)貨價(jià)格 FROM商品表 WHERE商品號(hào)=new.商品號(hào)UPDAT集肖售表SET本次利潤(rùn)=n
25、ew.銷售數(shù)量* (new.銷售價(jià)格-PurchasePrise ) WHERE商品號(hào)=new.商品 號(hào)AND銷售時(shí)間=new.銷售時(shí)間/* 因?yàn)槭切屑?jí)觸發(fā)器,所以可以使用更新后的新值,用 new*/ END3、設(shè)在SQL Server 2008某數(shù)據(jù)庫(kù)中,已建立了四個(gè)文件組:fg1、fg2、fg3和fg4 ,以及一個(gè)分區(qū)函數(shù)RangePFL RangePF缶勺定義代碼如下:CREATE PARTITION FUNCTION RangePF1(int)AS RANGE LEFT FOR VALUES(100,200,300)(1)請(qǐng)基于RangePF創(chuàng)建一個(gè)分區(qū)方案 RangePS1,每個(gè)分區(qū)
26、對(duì)應(yīng)一個(gè)文件組。(5分)create partition scheme RangePS1as partition RangePF1 to (fg1, fg1, fg1, fg2)(2)請(qǐng)使用RangePS恂J建一個(gè)分區(qū)表PartitionT(Gid, GoodName, Price) ,該表基于Gid列創(chuàng)建分區(qū)。其 中Gid: int類型,取值大于等于1; GoodName統(tǒng)一字符編碼可變長(zhǎng)類型,最多可存儲(chǔ) 20個(gè)漢字;Price : 定點(diǎn)小數(shù)類型,小數(shù)部分1位,整數(shù)部分到千位。( 5分)創(chuàng)建分區(qū)表:create table orders(GID int identity(1,1) prima
27、ry key, GoodName varchar(40), Price float)on RangePS1(GID)4、 設(shè)在 SQL Server 2008 某數(shù)據(jù)庫(kù)中有商品表和銷售表,兩個(gè)表的定義如下:CREATE TABLEW品表(商品號(hào) char(10 ) PRIMARY KEY,商品名 varchar(40),類別 varchar(20),進(jìn)貨單價(jià) int )CREATE TABLE!肖售表(商品號(hào) char(10),銷售時(shí)間datetime,銷售數(shù)量int,銷售單價(jià)int,PRIMARY KEYW品號(hào),銷售時(shí)間)下面是一個(gè)用戶定義的多語(yǔ)句表值函數(shù),它接受類別作為輸入?yún)?shù),返回該類別
28、下的每種商品在 2012年的銷售總利潤(rùn),并將結(jié)果按照銷售總利潤(rùn)的降序輸出。請(qǐng)補(bǔ)全該函數(shù)定義代碼。 ( 10分)CREATE FUNCTION f_Profit (lb char(10)【1】 ProfitTable 【2】 (商品號(hào)char(10),總利潤(rùn)int )ASBEGININSERT INTO ProfitTable【3】【4】END第一空:RETURNS第二空:table第三空:a SELECTa.商品號(hào),SUM(銷售數(shù)量*(銷售單價(jià)-進(jìn)貨單價(jià))AS總利潤(rùn)FROM銷售表a JOIN商品表b ONa.商 品號(hào)=b.商品號(hào) WHERE a商品號(hào)IN(SELECT 商品號(hào)FROM商品表 W
29、HERE類別=lb) GROUP BY a.商品號(hào) ORDER BY總禾U潤(rùn) DESC第四空: RETURNRrofit Table5、設(shè)有圖書管理數(shù)據(jù)庫(kù),包含三張表:圖書明細(xì)表(圖書編號(hào),圖書類別,圖書名稱,作者,出版社,出版日期,定價(jià)) ;讀者表(借書證號(hào),姓名,系別,辦證日期) ;借出信息表(借出編號(hào),借書證號(hào),圖書編號(hào),借書日期) ;完成下列操作: ( 10分)定義一個(gè)多語(yǔ)句表值函數(shù),用于查詢學(xué)生借書情況,只需提供參數(shù):借書證號(hào),就可以通過(guò)調(diào)用函數(shù)返回此學(xué)生的借書情況,若有借書籍,則返回所借書籍的編號(hào)、書籍名稱、定價(jià)和借書日期;若沒有在借書籍,則返回記錄為空。設(shè)函數(shù)名為: f_Borr
30、owBook(jszh char(20)。CREATE FUNCTION BorrowBook (jszh char(20)RETURNS jsqkbTABLE( 書籍編號(hào) char(20), 書籍名稱 char(50), 定價(jià) float, 借書日期 datetime)ASBEGININSERT jsqkbSELEC圖書明細(xì)表.圖書編號(hào),圖書名稱,定價(jià),借出信息表.借書日期FROM,借出信息表,圖書明細(xì)表WHERE出信息表.圖書編號(hào)=圖書明細(xì)表.圖書編號(hào)AND昔出信息表.借書證號(hào)=jszhRETURNEND6、某書店采用了SQL Server 2008 數(shù)據(jù)庫(kù)管理系統(tǒng),該書店有一個(gè)需求,需要
31、統(tǒng)計(jì)指定年份中每一本書的銷售總額,例如:查詢2012年所有書的銷售總額。已知圖書結(jié)構(gòu)如下:圖書表(書號(hào)BOOK_ID書名BOOK_NAM則價(jià)BOOK_PRICE)銷售表(書號(hào)BOOK_ID銷售時(shí)間SALE_TIME銷售數(shù)量SALE_NUM)假設(shè)單價(jià)和銷售數(shù)量均為 int 型,書號(hào)和書名均為 varchar(50) 類型,銷售時(shí)間為 datetime 型。請(qǐng)給出滿足如下要求的多語(yǔ)句表值函數(shù),該函數(shù)統(tǒng)計(jì)指定年份中每本書的銷售總額。( 10分)設(shè)函數(shù)名為: BOOK_PROFIT(year int) ,函數(shù)的返回結(jié)果格式如下:書號(hào)銷售總額B001 60000A00450000CREATE FUNCT
32、ION BOOK_PROFIT (year int)RETURNS f_ BOOK_PROFIT table(書號(hào) varchar(50) ,銷售總額 int)ASBEGININSERT INTO f_ BOOK_PROFITSELECT a.書號(hào),SUM(a.單價(jià)*b.銷售數(shù)量)FROM圖書表a JOIN 銷售表b ON a.書號(hào)=b.書號(hào)WHERE year(b. 銷售時(shí)間 )=yearGROUP BY a.書號(hào)RETURNEND7、設(shè)在采用SQL Server 2008數(shù)據(jù)庫(kù)的圖書館應(yīng)用系統(tǒng)中有三個(gè)基本表,表結(jié)構(gòu)如下所示,請(qǐng)用 SQ晤句完成下列兩個(gè)查詢:BtJRBOWEK:1201110
33、612011107I2O32I1?蚪話傅輝工 王麗范園因系片計(jì)苴機(jī)嶷計(jì)算機(jī)系信息系班級(jí) 13-1 12-112 -2I.UASS:借書證號(hào)1201110612012113圖書館登記號(hào)TO 1(X)1借將日期20 2, 0| , 022013.0X06BOOKC:水1川1SK作齊困拈記JJ 出版社價(jià)格TP311. 1數(shù)據(jù)廄系沆李明TDOIOOL科學(xué)14.00TP3I 1.2二級(jí)c語(yǔ)言王珀T0OIO26人民32. 005 -(力f 5科的同學(xué)的學(xué)袍證號(hào)、鞋名、,系名制借片數(shù)次 毒分j(2)&M B和I MU同學(xué)所借圖I!中的任意 本相同的學(xué)卞EX系名曲名和借故日期:15分)(1) SELE
34、CT LOANSt書證號(hào),姓名,系名, COUNT(*) AS借書數(shù)量FROM BORROWER,LOANSWHERE BORROWE用證號(hào)=LOANSt 書證號(hào)GROUP BY LOANS. 書證號(hào)HAVING COUNT(*)=5;(2) SELECT姓名,系名,書名,借書日期FROM BORROWER,LOANS , BOOKSWHEREBORROWE借書證號(hào)=LOANS借書證號(hào)AND LOANS.圖書登記號(hào)=BOOKS®書登記號(hào)AND索書號(hào)IN(SELECT 索書號(hào) FROM BORROWER,LOANS,BOOKSWHERE BORROWW號(hào)=LOANS借書證號(hào)AND LO
35、ANS!書館登記號(hào)=BOOKS圖書登記號(hào)AND姓名="王麗")8、設(shè)某全國(guó)性的運(yùn)輸企業(yè)建立了大型OLT原統(tǒng),并在該系統(tǒng)之上建立了數(shù)據(jù)倉(cāng)庫(kù)。OLT原統(tǒng)和數(shù)據(jù)倉(cāng)庫(kù)中有如下數(shù)據(jù)表:運(yùn)輸明細(xì)表(運(yùn)輸單ID,發(fā)送站ID,終到站ID,貨物ID,貨物重量,運(yùn)輸價(jià)格,發(fā)貨日期)匯總表1 (發(fā)送站ID,終到站ID,貨物ID,發(fā)貨日期,總重,總運(yùn)價(jià))匯總表2 (發(fā)送站ID,終到地區(qū)ID,貨物ID,發(fā)貨日期,總重,總運(yùn)價(jià))匯總表3 (發(fā)送站ID,終到站ID,貨物ID,發(fā)貨月份,總重,總運(yùn)價(jià))匯總表4 (發(fā)送地區(qū)ID,終到地區(qū)ID,貨物類別ID,發(fā)貨日期,總重,總運(yùn)價(jià))該企業(yè)管理的貨運(yùn)站約有100
36、個(gè),貨物約有500種共10類,各匯總表都建有主碼, 且各表有合理的維護(hù)策略,在每次維護(hù)后數(shù)據(jù)能保持一致。設(shè)有視圖V,該視圖的訪問(wèn)頻率很高,其查詢結(jié)果模式為(發(fā)送地區(qū)ID,終到站ID,發(fā)貨月份,總重,總運(yùn)價(jià)) 問(wèn)頻率過(guò)高,導(dǎo)致系統(tǒng)整體性能下降,,該視圖現(xiàn)以匯總表1為計(jì)算數(shù)據(jù)源。經(jīng)監(jiān)控發(fā)現(xiàn),匯總表 1的被訪而其它匯總表被訪問(wèn)頻率較低。在不增加匯總表和索引的情況下,請(qǐng)給出一個(gè)改善系統(tǒng)服務(wù)性能的優(yōu)化方案,并簡(jiǎn)要說(shuō)明理由。( 10分)由于匯總表1 和視圖的模式訪問(wèn)頻率都很高,而且視圖的數(shù)據(jù)源來(lái)自匯總表1,又因?yàn)槠渌麉R總表的訪問(wèn)率較低,所以只需要將視圖的數(shù)據(jù)源綁定為匯總表3 ,因?yàn)閰R總表3也可以滿足視圖的
37、輸出模式。這樣不僅提升了匯總表3 的數(shù)據(jù)訪問(wèn)率,而且降低了匯總表1 的數(shù)據(jù)訪問(wèn)率,系統(tǒng)性能和服務(wù)性能得到了很大的優(yōu)化。又因?yàn)樨浳锛s有500種,共10類,可以再建立一個(gè)視圖綁定數(shù)據(jù)源為匯總表4 , 這樣就可以充分利用匯總表4的數(shù)據(jù)信息,從而可以進(jìn)一步優(yōu)化系統(tǒng)性能。9、在進(jìn)行某學(xué)校教務(wù)管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),數(shù)據(jù)庫(kù)設(shè)計(jì)人員設(shè)計(jì)了如下幾個(gè)關(guān)系模式:系(系號(hào),系名) ,系號(hào)為主碼學(xué)生(學(xué)號(hào),姓名,所在系號(hào)) ,學(xué)號(hào)為主碼課程(課程號(hào),課程名,開課系號(hào)) ,課程號(hào)為主碼選課(學(xué)號(hào),課程號(hào),選課時(shí)間) ,學(xué)號(hào)和課程號(hào)為主碼( 8分)開發(fā)人員在將關(guān)系模式實(shí)施到 SQL Server 2008 的"
38、教務(wù) "數(shù)據(jù)庫(kù)時(shí),使用了如下表結(jié)構(gòu)定義語(yǔ)句:CREATE TABLED (系號(hào) varchar(10) NOT NULL ,系名 varchar(100)CREATE TABLED 生(學(xué)號(hào) varchar(50) NOT NULL ,姓名 varchar(50),所在系號(hào) varchar(10)CREATE TABLE 程(課程號(hào) varchar(50) NOT NULL ,課程名 varchar(100),開課系號(hào) varchar(10)CREATE TABLED 課(學(xué)號(hào) varchar(50) NOT NULL ,課程號(hào)varchar(50) NOT NULL ,選課時(shí)間 d
39、atetime)在執(zhí)行如下查詢語(yǔ)句時(shí)發(fā)現(xiàn)執(zhí)行效率很低:SELECT * FROM 選課JOIN 學(xué)生ON 學(xué)生 . 學(xué)號(hào) = 選課 . 學(xué)號(hào)JOIN 系 ON 系. 系號(hào)= 學(xué)生 . 所在系號(hào)JOIN課程 ON 課程 . 課程號(hào) = 選課 . 課程號(hào)WHER舔.系號(hào)='012'AND convert(varchar(10),選課時(shí)間,120) >=' 2010-01-01 '( 1 ) 在查找原因時(shí)發(fā)現(xiàn)建表語(yǔ)句有問(wèn)題。 請(qǐng)指出問(wèn)題并說(shuō)明該問(wèn)題是否會(huì)影響此查詢語(yǔ)句的執(zhí)行效率。 ( 4分)(2)設(shè)已在"選課 " 表的 "選課時(shí)間
40、" 列及 "學(xué)生 "表的 "所在系號(hào) " 列上建立了索引。請(qǐng)問(wèn)這兩個(gè)索引是否能夠提高該查詢語(yǔ)句的執(zhí)行效率?如果不能,請(qǐng)說(shuō)明原因。 ( 4 分)建表時(shí)沒有設(shè)置主鍵,也沒有說(shuō)明外鍵,但不會(huì)影響此查詢語(yǔ)句的執(zhí)行效率。" 選課 " 表的 " 選課時(shí)間 " 可以建立索引,從而提高查詢效率,而" 學(xué)生 " 表的 " 所在系號(hào) " 建立索引不會(huì)提高查詢效率。索引的意義就是將記錄按目標(biāo)關(guān)鍵字順序排列,這樣查找某個(gè)目標(biāo)關(guān)鍵字的對(duì)應(yīng)值的位置就縮小了查找范圍。 "選課時(shí)間 &q
41、uot;的重復(fù)率低,所以可以作為索引,而學(xué)生"所在系號(hào) " 的重復(fù)率太高,則不會(huì)提高查詢效率。10、某商場(chǎng)商品經(jīng)營(yíng)管理系統(tǒng)使用SQL Server 2008 數(shù)據(jù)庫(kù)管理系統(tǒng),此系統(tǒng)上線運(yùn)行1 年后,業(yè)務(wù)人員使用某統(tǒng)計(jì)功能(此功能每月使用一次)時(shí)發(fā)現(xiàn)速度很慢。該統(tǒng)計(jì)功能主要執(zhí)行的SQL吾句如下:SELECT商品號(hào),SUM(銷售數(shù)量*銷售價(jià)格)銷售額FROM銷售明細(xì)GROUP BY 商品號(hào) ;該銷售明細(xì)表的建表語(yǔ)句如下:CREATE TABLE!肖售明細(xì)(序列號(hào) intIDENTITY(1,1) NOT NULL,商品號(hào) intNOT NULL,銷售日期datetime NUL
42、L,銷售數(shù)量intNOT NULL,銷售價(jià)格intNOT NULL);并在銷售明細(xì)表上建有如下索引:CREATE index ix_ 銷售明細(xì)_商品號(hào)on 銷售明細(xì) (商品號(hào) );某技術(shù)人員提出通過(guò)執(zhí)行下述語(yǔ)句以提高此查詢的運(yùn)行效率:CREATE VIEW商品銷售額視圖WITH SCHEMABINDINGASSELECT商品號(hào),SUM(銷售數(shù)量*銷售價(jià)格)銷售額,COUNT_BIG(*) cntFROM dbo.銷售明細(xì)GROUP BYW品號(hào);CREATE UNIQUE CLUSTERED INDEX i庖品銷售額ON 商品銷售額視圖 ( 商品號(hào) ); ( 10分)( 1 )請(qǐng)分析該技術(shù)人員給
43、出的語(yǔ)句功能以及對(duì)原有查詢語(yǔ)句的性能影響,并給出原因。語(yǔ)句功能:建立包含 ( 商品號(hào),銷售額,該商品表中出現(xiàn)次數(shù)) 帶索引的視圖,并建立按商品號(hào)對(duì)應(yīng)銷售額UNIQU聚簇排序的索引,大大縮小了查詢語(yǔ)句的查詢范圍,提高了查詢效率。原因:視圖中將間接相關(guān)的屬性列(序列號(hào),銷售日期,商品號(hào),銷售數(shù)量,銷售價(jià)格)轉(zhuǎn)換成了目標(biāo)屬性列,減少了搜索空間;同時(shí)建立UNIQUE CLUSTERED),使查詢商品號(hào)的數(shù)據(jù)記錄唯一,降低了搜索范圍,提高了搜索效率。( 2 )此商場(chǎng)的銷售量很大,每天有大量數(shù)據(jù)插入到銷售明細(xì)表中。請(qǐng)從數(shù)據(jù)庫(kù)整體性能角度分析,此技術(shù)人員提出的優(yōu)化方法是否合適,并給出原因。不合適,每天大量的
44、插入操作使得在修改表的同時(shí)也要對(duì)視圖進(jìn)行修改,增加了系統(tǒng)的負(fù)擔(dān),然而該統(tǒng)計(jì)功能一個(gè)月才用一次,這樣導(dǎo)致系統(tǒng)的利用率也較為低下。11、某教務(wù)管理系統(tǒng)使用 SQL Server 2008 數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)軟硬件配置信息如下:I .數(shù)據(jù)庫(kù)運(yùn)行在兩路 Intel Xeon E5-2609 2.4GHz CPU (每路 CPU核心),128G咕存、2塊300GB 15000轉(zhuǎn)SASM盤(RAID 1 )的服務(wù)器上;U .服務(wù)器操作系統(tǒng)為 Windows 2003 32位企業(yè)版,安裝SP2補(bǔ)丁;m.數(shù)據(jù)庫(kù)為SQL Server 2008 Enterprise (32位),數(shù)據(jù)庫(kù)中總數(shù)據(jù)量近 130G
45、B近一個(gè)學(xué)期以來(lái), 用戶反映系統(tǒng)運(yùn)行緩慢, 經(jīng)程序員定位, 確定為數(shù)據(jù)庫(kù)服務(wù)器響應(yīng)緩慢, 需要進(jìn)行調(diào)優(yōu)。( 10 分)根據(jù) SQL Server 2008 數(shù)據(jù)庫(kù)的特性以及題目中的條件,綜合給出以下的調(diào)優(yōu)方案。(1) 表結(jié)構(gòu)優(yōu)化:重新優(yōu)化數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)構(gòu),規(guī)范數(shù)據(jù)庫(kù)邏輯設(shè)計(jì);設(shè)計(jì)主鍵和外鍵;設(shè)計(jì)合適大小的字段。(2)硬件優(yōu)化:購(gòu)買一塊同樣大小的硬盤,將硬盤做成RAID5,用以提高數(shù)據(jù)庫(kù)讀寫速度;增加服務(wù)器CPU個(gè)數(shù);擴(kuò)大服務(wù)器的內(nèi)存。(3) 索引優(yōu)化:采用對(duì)經(jīng)常作為條件查詢的列設(shè)計(jì)索引,在查詢中經(jīng)常用到的列上建立非聚簇索引,在頻繁進(jìn)行范圍查詢、排序、分組的列上建立聚簇索引,對(duì)于有頻繁進(jìn)行刪除、插
46、入操作的表不要建立過(guò)多的索引。(4) 采用視圖: 合理使用視圖和分區(qū)視圖, 在需要更新和刪除操作不多、 查詢操作頻繁的表上建立索引視圖。(5) SQ印句優(yōu)化:選擇運(yùn)算應(yīng)盡可能先做,并在對(duì)同一個(gè)表進(jìn)行多個(gè)選擇運(yùn)算時(shí),選擇影響較大的語(yǔ)句放在前面,較弱的選擇條件寫在后面,這樣就可以先根據(jù)較嚴(yán)格的條件得出數(shù)據(jù)較少的信息,再在這些信息中根據(jù)后面較弱的條件得到滿足條件的信息。應(yīng)避免使用相關(guān)子查詢,把子查詢轉(zhuǎn)換成聯(lián)結(jié)來(lái)實(shí)現(xiàn)。字段提取按照 " 需多少,提多少" 的原則,避免"SELECT *" , "SELECT *" 需要數(shù)據(jù)庫(kù)返回相應(yīng)表的所有列信
47、息,這對(duì)于一個(gè)列較多的表無(wú)疑是一項(xiàng)費(fèi)時(shí)的操作,采用存儲(chǔ)過(guò)程,使用存儲(chǔ)過(guò)程提高數(shù)據(jù)處理速度。12、某采購(gòu)中心采購(gòu)了一套商品批發(fā)查詢管理系統(tǒng),此系統(tǒng)采用SQL Server 2008 數(shù)據(jù)庫(kù)管理系統(tǒng),該系統(tǒng)需要經(jīng)常處理百萬(wàn)級(jí)以上的數(shù)據(jù)查詢。同時(shí)該系統(tǒng)提供了第三方人員開發(fā)的SQ展口,第三方人員可以根據(jù)自己的需要開發(fā)自己的應(yīng)用程序來(lái)訪問(wèn)數(shù)據(jù)庫(kù)中的相關(guān)數(shù)據(jù)。 ( 10分)(1) 系統(tǒng)在使用的過(guò)程中,業(yè)務(wù)人員反應(yīng)系統(tǒng)操作速度很慢。經(jīng)過(guò)工程師檢查測(cè)試后,數(shù)據(jù)庫(kù)系統(tǒng)本身及網(wǎng)絡(luò)傳輸過(guò)程中存在著一些問(wèn)題,請(qǐng)給出針對(duì)數(shù)據(jù)庫(kù)系統(tǒng)本身及網(wǎng)絡(luò)傳輸過(guò)程中可能的一些調(diào)優(yōu)方案。(2)工程師在完成數(shù)據(jù)庫(kù)系統(tǒng)本身和網(wǎng)絡(luò)問(wèn)題的優(yōu)化后
48、,發(fā)現(xiàn)第三方開發(fā)人員的SQ直詢語(yǔ)句存在很多沒有優(yōu)化的問(wèn)題,請(qǐng)從第三方開發(fā)人員角度給出一些優(yōu)化方案。(1)把數(shù)據(jù)、日志、索引放到不同的I/O設(shè)備上,增加讀取速度,數(shù)據(jù)量 (尺寸)越大,提高I/O越重要。縱向、橫向分割表,減少表的尺寸。升級(jí)硬件,擴(kuò)大服務(wù)器的內(nèi)存,Windows 2000和SQL Server 2000能支持4-8G的內(nèi)存。配置虛擬內(nèi)存,虛擬內(nèi)存大小應(yīng)基于計(jì)算機(jī)上并發(fā)運(yùn)行的服務(wù)進(jìn)行配置。增加服務(wù)器CP3"數(shù)。 分布式分區(qū)視圖可用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器聯(lián)合體。聯(lián)合體是一組分開管理的服務(wù)器,但它們相互協(xié)作分擔(dān)系統(tǒng)的處理負(fù)荷。這種通過(guò)分區(qū)數(shù)據(jù)形成數(shù)據(jù)庫(kù)服務(wù)器聯(lián)合體的機(jī)制能夠擴(kuò)大一組
49、服務(wù)器,以支持大型的多層 Web 站點(diǎn)的處理需要。 重建索弓 I:DBCC REINDEX ,DBCC INDEXDEFR AG 縮數(shù)據(jù)和日志:DBCC SHRINKDB,DBCC SHRINKFILE設(shè)置自動(dòng)收縮日志,對(duì)于大的數(shù)據(jù)庫(kù)不要設(shè)置數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng),它會(huì)降低服務(wù)器的性能。 優(yōu)化鎖結(jié)構(gòu)。(2)對(duì)查詢進(jìn)行優(yōu)化,盡量避免全表掃描,首先應(yīng)考慮在where及order by涉及的列上建立索引。應(yīng)盡量避免在 where 子句中使用!= 或操作符,否則引擎將放棄使用索引而進(jìn)行全表掃描。任何地方都不要使用 select * from 進(jìn)行全表掃描 ,用具體的字段列代替"*" ,不要
50、返回冗余字段。避免頻繁創(chuàng)建和刪除臨時(shí)表,以減少系統(tǒng)表資源的消耗。盡量避免使用游標(biāo),因?yàn)橛螛?biāo)的效率較差,如果游標(biāo)操作的數(shù)據(jù)超過(guò)1萬(wàn)行,那么就應(yīng)該考慮改寫。盡量避免大事務(wù)操作,提高系統(tǒng)并發(fā)能力。13、 6-32008 數(shù)據(jù)庫(kù)管理系統(tǒng)。此系統(tǒng)上線運(yùn)行前,需將商場(chǎng)原有的數(shù)據(jù)導(dǎo)入到新系統(tǒng)中。原有系統(tǒng)使用SQL Server 2000 ,數(shù)據(jù)結(jié)構(gòu)與新系統(tǒng)不完全一致。因此需要把數(shù)據(jù)從SQL Server 2000 導(dǎo)入到 SQL Server2008中,為了保證數(shù)據(jù)一致性,數(shù)據(jù)導(dǎo)入過(guò)程中要求暫停業(yè)務(wù)且必須在3小時(shí)內(nèi)完成。( 1 )在原有數(shù)據(jù)導(dǎo)入新系統(tǒng)的過(guò)程中,實(shí)施人員發(fā)現(xiàn)原有數(shù)據(jù)量很大,導(dǎo)入數(shù)據(jù)需要四小時(shí),
51、業(yè)務(wù)無(wú)法接受。經(jīng)分析某工程師認(rèn)為,數(shù)據(jù)導(dǎo)入過(guò)程中的數(shù)據(jù)庫(kù)I/O 很高,但導(dǎo)入數(shù)據(jù)的程序本身對(duì)系統(tǒng)資源占用率很低。該工程師建議將數(shù)據(jù)導(dǎo)入過(guò)程中的數(shù)據(jù)恢復(fù)模式從"完整 "模式改為"簡(jiǎn)單 "模式以提高數(shù)據(jù)導(dǎo)入速度;而另一位工程師則認(rèn)為此方法未必能提高數(shù)據(jù)導(dǎo)入速度,而且還可能導(dǎo)致數(shù)據(jù)丟失,不建議使用此方法。請(qǐng)分析此方法是否能夠提高數(shù)據(jù)導(dǎo)入速度并給出理由,同時(shí)分析此操作的數(shù)據(jù)丟失風(fēng)險(xiǎn)。( 5分)(2)在成功導(dǎo)入歷史數(shù)據(jù)后,此系統(tǒng)順利上線運(yùn)行。在上線運(yùn)行的第一周,發(fā)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器的CPI#用率很高,達(dá)到近90%,高峰期間達(dá)到100%,且系統(tǒng)內(nèi)存占用率達(dá)到90%,但系
52、統(tǒng)I/O 很輕。業(yè)務(wù)人員反應(yīng)系統(tǒng)操作速度很慢。為了提高系統(tǒng)運(yùn)行速度。在不修改應(yīng)用程序的前提下,兩位工程師提出了不同的解決辦法:I .為服務(wù)器增加2顆CPU緩解CPU1用率很高的問(wèn)題;n.為服務(wù)器增加一倍內(nèi)存,緩解內(nèi)存使用率很高的問(wèn)題??紤]成本,現(xiàn)階段只能按照一種方案實(shí)施。請(qǐng)指出在現(xiàn)有情況下,哪種方案更合理并給出理由。 ( 5分)( 1 )此方法能夠提高數(shù)據(jù)導(dǎo)入速度。原因:此系統(tǒng)I/O 很高,修改恢復(fù)模式后,系統(tǒng)最大限度減少日志開銷,可提高導(dǎo)入速度。由于僅在數(shù)據(jù)導(dǎo)入過(guò)程中修改恢復(fù)模式,所以并無(wú)數(shù)據(jù)丟失風(fēng)險(xiǎn)。( 2 )第一種方案比較合理。原因:SQL Server 2008 采用將數(shù)據(jù)緩沖在內(nèi)存的
53、方式,因此內(nèi)存的使用率比較高是正常情況,且現(xiàn)階段I/O并不存在問(wèn)題,表明內(nèi)存滿足需求。此階段CPU!用率很高,表明CP計(jì)算資源不足,因此增加CP嗷量對(duì)解決問(wèn)題有效。14、在SQLServer 2008中,設(shè)有教師表(教師號(hào),姓名,所在部門號(hào),職稱)和部門表(部門號(hào),部門名,高 級(jí)職稱人數(shù)) 。請(qǐng)編寫滿足下列要求的后觸發(fā)型觸發(fā)器( 設(shè)觸發(fā)器名字為 tri_zc) 。每當(dāng)在教師表中插入一名具有高級(jí)職稱(" 教授 "或 "副教授") 的教師時(shí),或者將非高級(jí)職稱教師的職稱更改為高級(jí)職稱時(shí),均修改部門表中相應(yīng)部門的高級(jí)職稱人數(shù)。 (假設(shè)一次操作只插入或更改一名教師
54、的職稱)(10 分)CREATE TRIGGER tri_zcON 教師表AFTER INSERT,UPDATEASBEGINDECLATEzc varchar(10),dept varchar(30)SELECT dept新在部門號(hào), 2c=只稱 FROM insertedIF zc ='教授'or '副教授Update 部門表SET 高級(jí)職稱人數(shù) = 高級(jí)職稱人數(shù)+ 1Where 部門號(hào) = deptEnd15、 已知某教務(wù)管理系統(tǒng)的設(shè)計(jì)人員在需求分析階段收集到下列原始數(shù)據(jù)表格:教II教師號(hào)教師名職稱工資上級(jí)領(lǐng)導(dǎo)打幣號(hào)986S王文華教授8000nudl9983李一斌副教授60009R6S9985丁一講師400098680783王潤(rùn)澤講師40009S6S0899歐陽(yáng)丹妮講師JOOO9868俁桂課程號(hào)課程名學(xué)分教材號(hào)教材名出版社名任課教師號(hào)(2(X)6計(jì)算機(jī)原理3IL計(jì)算機(jī)原理清華大學(xué)出志社986«C2006計(jì)算機(jī)原理3J2計(jì)算機(jī)原理與應(yīng)用高等教育出笠社986R數(shù)據(jù)結(jié)枸3J3數(shù)據(jù)結(jié)構(gòu)清華大學(xué)出方社986SC2010數(shù)據(jù)庫(kù)原理314數(shù)據(jù)庫(kù)原理清華大學(xué)出版社9S68(2010數(shù)據(jù)率原理315數(shù)據(jù)庫(kù)原理與技代高等教耳出相社汕”-系娶規(guī)貝rr-. / .1d. ar- It ,:216音樂(lè)欣
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 赴埃及漢語(yǔ)教師跨文化交際能力調(diào)查研究
- 綿羊肺炎支原體
- 影響初中生英語(yǔ)課堂心流體驗(yàn)的課堂活動(dòng)因素研究
- 化療患者發(fā)熱護(hù)理常規(guī)
- 保險(xiǎn)行業(yè)健康人力發(fā)展策略
- 頸部護(hù)理課件
- 鼻綜合整形培訓(xùn)
- 精益管理培訓(xùn)心得匯報(bào)
- 預(yù)防艾滋病課件
- 預(yù)防登革熱班會(huì)課件
- 2025年法院聘用書記員考試試題(附答案)
- 2025年濟(jì)南綜保控股集團(tuán)有限公司公開招聘(22名)筆試備考試題含答案詳解
- 溺水安全知識(shí)課件
- 2025年安徽淮南新東辰控股集團(tuán)有限責(zé)任公司招聘筆試參考題庫(kù)含答案解析
- 【北京市人社局】2025年北京市人力資源市場(chǎng)薪酬數(shù)據(jù)報(bào)告(一季度)
- 金屬非金屬地下礦山安全生產(chǎn)標(biāo)準(zhǔn)化定級(jí)評(píng)分標(biāo)準(zhǔn)(2023版)
- GB/T 3452.1-2005液壓氣動(dòng)用O形橡膠密封圈第1部分:尺寸系列及公差
- 廣西基本醫(yī)療保險(xiǎn)門診特殊慢性病申報(bào)表
- 施工現(xiàn)場(chǎng)臨水臨電標(biāo)準(zhǔn)化圖冊(cè)
- 鋼化爐操作手冊(cè)
- 蘇州銀行網(wǎng)點(diǎn)轉(zhuǎn)型:走內(nèi)涵式發(fā)展道路
評(píng)論
0/150
提交評(píng)論