第 1 頁:選擇題 |
第 3 頁:應用題 |
第 4 頁:設計與應用題 |
三、設計與應用題(每題12分,共24分)
36[簡答題]
設有某商業(yè)單位需要建立商務數(shù)據(jù)庫用以處理銷售記賬,它記錄的數(shù)據(jù)包括:顧客姓名,所在單位及電話號碼;商品名稱,型號,產(chǎn)地及單價;某顧客購買某商品的數(shù)量及日期。假定無同名顧客,無同型號商品,電話公用,顧客可在不同日期買同一商品。
(1)請畫出該單位的商務ER圖模型并優(yōu)化。
(2)將ER模型換成關系模型并規(guī)范化到3NF。
參考解析:【解題思路】 (1)ER圖的畫法
建立相應的ER圖的過程如下:
笫一,確定實體類型。本題有兩個實體類型,即顧客實體和商品實體。
第二,確定聯(lián)系類型。該題中只有顧客一商品模型。
第三,把實體類型和聯(lián)系類型組合成ER圖。
第四,確定實體類型和聯(lián)系類型的屬性。
顧客實體集屬性:姓名、單位、電話號碼
商品實體集屬性:型號、名稱、產(chǎn)地、單價
由顧客和商品兩個實體和一個顧客一商品購買關系,并且根據(jù)實體的屬性可以畫出相應ER圖。
(2)ER模型轉(zhuǎn)換為關系模式的規(guī)則
、侔袳R模型中的每一個實體集轉(zhuǎn)換為同名的關系,實體集的屬性就是關系的屬性,實體集的碼就是關系的碼。
②把ER模型中的每一個聯(lián)系轉(zhuǎn)換成一個關系,與該聯(lián)系相連的各實體集的碼以及聯(lián)系的屬性轉(zhuǎn)換為關系的屬性。關系的碼根據(jù)下列情況確定:
若聯(lián)系為1:1(一對一),則每個是實體集碼均是該關系的候選碼。
若聯(lián)系為1:n(一對多),則關系的碼為n端實體集的碼。
若聯(lián)系為m:n(多對多),則關系的碼為各實體集碼的組合。
、酆喜⒕哂邢嗤a的關系。
根據(jù)規(guī)則,把一個ER模型轉(zhuǎn)換為關系模式,一般經(jīng)歷下面兩個步驟:
1)標識ER模型中的聯(lián)系。
2)依次轉(zhuǎn)換與每個聯(lián)系相關聯(lián)的實體集及聯(lián)系。
3)關系模式滿足3NF,則必須滿足關系模式中每隔一個非主屬性既不部分依賴于碼也不傳遞依賴于碼,簡而言之,第三范式就是屬性不依賴于其他非主屬性。
本題中從ER模型轉(zhuǎn)換成關系模型,由兩個實體和一個關系分別可以轉(zhuǎn)換成三個關系模式。
【參考答案】
(1)ER模型如下所示:
(2)將ER模型轉(zhuǎn)換為關系模型,并規(guī)范到3NF:
顧客(姓名,單位,電話號碼),主鍵:姓名
商品(型號,名稱,單價,產(chǎn)地),主鍵:型號
購買(姓名,型號,數(shù)量,日期),主鍵:姓名+型號
因為轉(zhuǎn)換過來的關系模式中,不存在屬性依賴于其他非主屬性,因此對轉(zhuǎn)換的結(jié)果不需要優(yōu)化。
37[簡答題]
某采購中心采購了一套商品批發(fā)查詢管理系統(tǒng),此系統(tǒng)采用SQL Server 2008數(shù)據(jù)庫管理系統(tǒng),該系統(tǒng)需要經(jīng)常處理百萬級以上的數(shù)據(jù)查詢。同時該系統(tǒng)提供了第三方人員開發(fā)的SQL接口,第三方人員可以根據(jù)自己的需要開發(fā)自己的應用程序來訪問數(shù)據(jù)庫中的相關數(shù)據(jù)。
(1)系統(tǒng)在使用的過程中,業(yè)務人員反應系統(tǒng)操作速度很慢。經(jīng)過工程師檢查測試后,數(shù)據(jù)庫系統(tǒng)本身及網(wǎng)絡傳輸過程中存在著一些問題,請給出針對數(shù)據(jù)庫系統(tǒng)本身及網(wǎng)絡傳輸過程中可能的一些調(diào)優(yōu)方案。
(2)工程師在完成數(shù)據(jù)庫系統(tǒng)本身和網(wǎng)絡問題的優(yōu)化后,發(fā)現(xiàn)第三方開發(fā)人員的SQL查詢語句存在很多沒有優(yōu)化的問題,請從第三方開發(fā)人員角度給出一些優(yōu)化方案。
參考解析:【解題思路】 從數(shù)據(jù)庫本身和網(wǎng)絡傳輸?shù)慕嵌瘸霭l(fā),數(shù)據(jù)庫性能低下的因素一般有:I/O吞吐量小,形成了瓶頸效應;沒有創(chuàng)建計算列導致查詢不優(yōu)化;SQL Server數(shù)據(jù)庫內(nèi)存不足;網(wǎng)絡速度慢;查詢出的數(shù)據(jù)量過大(可以采用多次查詢或其他的方法降低數(shù)據(jù)量)以及鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)。
從SQL查詢語句角度來考慮優(yōu)化響應時間,應該從查詢條件、臨時表、游標、返回數(shù)據(jù)量、大事務操作等方面進行調(diào)優(yōu)。
【參考答案】
(1)
①把數(shù)據(jù)、日志、索引放到不同的I/O設備上,增加讀取速度,數(shù)據(jù)量(尺寸)越大,提高I/O越重要。
、诳v向、橫向分割表,減少表的尺寸。
、凵売布,擴大服務器的內(nèi)存,Windows 2000和SQL Server 2000能支持4~8G的內(nèi)存。配置虛擬內(nèi)存,虛擬內(nèi)存大小應基于計算機上并發(fā)運行的服務進行配置。增加服務器CPU個數(shù)。
、芊植际椒謪^(qū)視圖可用于實現(xiàn)數(shù)據(jù)庫服務器聯(lián)合體。聯(lián)合體是一組分開管理的服務器,但它們相互協(xié)作分擔系統(tǒng)的處理負荷。這種通過分區(qū)數(shù)據(jù)形成數(shù)據(jù)庫服務器聯(lián)合體的機制能夠擴大一組服務器,以支持大型的多層Web站點的處理需要。
、葜亟ㄋ饕篋BCC REINDEX,DBCC INDExDEFRAG;收縮數(shù)據(jù)和日志:DBCC SHRINK-DB,DBCC SHRINKFILE。設置自動收縮日志,對于大的數(shù)據(jù)庫不要設置數(shù)據(jù)庫自動增長,它會降低服務器的性能。
、迌(yōu)化鎖結(jié)構(gòu)。
(2)
①對查詢進行優(yōu)化,盡量避免全表掃描,首先應考慮在where及order by涉及的列上建立索引。
②應盡量避免在where子句中使用!=或<>操作符,否則引擎將放棄使用索引而進行全表掃描。
③任何地方都不要使用select*from進行全表掃描,用具體的字段列代替“*”,不要返回冗余字段。
、鼙苊忸l繁創(chuàng)建和刪除臨時表,以減少系統(tǒng)表資源的消耗。
、荼M量避免使用游標,因為游標的效率較差,如果游標操作的數(shù)據(jù)超過1萬行,那么就應該考慮改寫。
、薇M量避免大事務操作,提高系統(tǒng)并發(fā)能力。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |