第 1 頁:單選題 |
第 4 頁:應用題 |
第 5 頁:設(shè)計與應用題 |
第 6 頁:參考答案與解析 |
三、設(shè)計與應用題
1.【解題思路】
(1)ER圖的設(shè)計原則
在設(shè)計ER圖時,首先應根據(jù)需求分析,確認實體、屬性和聯(lián)系這三種ER圖的基本要素。需要強調(diào)的三條設(shè)計原則如下:
、傧鄬υ瓌t
建模的過程實際上是對對象抽象的過程。實體、屬性和聯(lián)系是對同一個對象抽象過程的不同解釋和理解。在同一情況下不同的人,或同一人在不同的情況下,對事物抽象的結(jié)果可能是不同的。在ER圖的整個設(shè)計過程中,實體、屬性和聯(lián)系不是一成不變,而是可能會被不斷的調(diào)整和優(yōu)化。
、谝恢略瓌t
同一對象在同一個管理系統(tǒng)中的不同子系統(tǒng)抽象的結(jié)果要求保持一致。
、酆唵卧瓌t
為簡化ER圖,現(xiàn)實世界中的事物能作屬性對待時,應盡量作為屬性處理。屬性與實體和聯(lián)系之間,并無一定界限。當屬性滿足如下兩個條件時,就不能作實體或關(guān)系對待:不再具有需要進一步描述的性質(zhì),因為屬性在含義上是不可再分的數(shù)據(jù)項;屬性不能再與其它實體具有聯(lián)系,即ER圖中的聯(lián)系只能是實體之間的聯(lián)系。
(2)ER圖的組成元素是實體、屬性和聯(lián)系
①實體
把客觀存在并且可以相互區(qū)別的事物稱為實體。實體可以是實際事物,也可以是抽象事件。如一個職工、一場比賽等。
②屬性
描述實體的特性稱為屬性。如職工的職工號,姓名,性別,出生日期,職稱等。
③聯(lián)系
聯(lián)系是實體間有意義的相互作用,即實體問存在的關(guān)聯(lián)。
在ER圖中,分別用矩形框表示實體,橢圓表示屬性,菱形框表示聯(lián)系。
(3)聯(lián)系的類型
實體之間的聯(lián)系分為三種類型:一對一(1:1)、一對多(1:n)和多對多(n:m)。
題目給出了兩個實體論文和作者,并且指明了論文實體的屬性包括題目、期刊名稱、年份、期刊號,作者實體的屬性包括姓名、單位、地址。實體問的關(guān)系包括:一篇論文可以有多個作者,且每一位作者寫過多篇論文,在每一篇論文中有作者的順序號,可以知道論文和作者是多對多的關(guān)系。同時可知論文題目和期刊號的聯(lián)合是論文關(guān)系模式的主鍵,姓名是作者關(guān)系模式的主鍵,而需要作者姓名和論文題目才能唯一確定發(fā)表的關(guān)系模式。
【參考答案】
(1)
(2)關(guān)系模式:
論文(題目,期刊名稱,年份,期刊號)
作者(姓名,單位,地址)
發(fā)表(姓名,題目,順序號)
2.【解題思路】
SQL Server 2008多語句表值函數(shù)的格式為:
CREATE FUNCTION[schema_name.]function_name
([{@parameter_name[As][type_schema_name.]parameter data_type
[=default]}
[….n]
]
)
RETURNS@return_variable TABLE
[AS]
BEGIN
function_body
RETURN
END
[;]
::=
({I}
[table_constraint][,...n])
采用三表聯(lián)合查詢,通過傳入的借書證號查出借出信息表中的圖書編號,然后查出圖書明細表的信息。
【參考答案】
CREATE FUNCTION BorrowBook(@jszh char(20))
RETURNS@jsqkb TABLE(書籍編號char(20),書籍名稱char(50),定價float,借書日期datetime)
AS
BEGIN
INSERT@jsqkb
SELECT圖書明細表.圖書編號,圖書名稱,定價,借出信息表.借書日期FROM借出信息表,圖書明細表
WHERE借出信息表.圖書編號=圖書明細表.圖書編號AND借出信息表.借書證號=@jszh
RETURN
END
3.【解題思路】
從數(shù)據(jù)庫本身和網(wǎng)絡(luò)傳輸?shù)慕嵌瘸霭l(fā),數(shù)據(jù)庫性能低下的因素一般有:I/O吞吐量小,形成了瓶頸效應;沒有創(chuàng)建計算列導致查詢不優(yōu)化;SQL Server數(shù)據(jù)庫內(nèi)存不足;網(wǎng)絡(luò)速度慢;查詢出的數(shù)據(jù)量過大(可以采用多次查詢或其他的方法降低數(shù)據(jù)量)以及鎖或者死鎖(這也是查詢慢最常見的問題,是程序設(shè)計的缺陷)。
從SQL查詢語句角度來考慮優(yōu)化響應時間,應該從查詢條件、臨時表、游標、返回數(shù)據(jù)量、大事務(wù)操作等方面進行調(diào)優(yōu)。
【參考答案】
(1)①把數(shù)據(jù)、日志、索引放到不同的I/O設(shè)備上,增加讀取速度,數(shù)據(jù)量(尺寸)越大,提高I/O越重要。
、诳v向、橫向分割表,減少表的尺寸。
、凵売布,擴大服務(wù)器的內(nèi)存,Windows 2000和SQL Server 2000能支持4-8G的內(nèi)存。配置虛擬內(nèi)存,虛擬內(nèi)存大小應基于計算機上并發(fā)運行的服務(wù)進行配置。增加服務(wù)器CPU個數(shù)。
、芊植际椒謪^(qū)視圖可用于實現(xiàn)數(shù)據(jù)庫服務(wù)器聯(lián)合體。聯(lián)合體是一組分開管理的服務(wù)器,但它們相互協(xié)作分擔系統(tǒng)的處理負荷。這種通過分區(qū)數(shù)據(jù)形成數(shù)據(jù)庫服務(wù)器聯(lián)合體的機制能夠擴大一組服務(wù)器,以支持大型的多層Web站點的處理需要。
⑤重建索引:DBCC REINDEX,DBCC INDEXDEFRAG;收縮數(shù)據(jù)和日志:DBCC SHRINKDB,DBCCSHRINKFILE。設(shè)置自動收縮日志,對于大的數(shù)據(jù)庫不要設(shè)置數(shù)據(jù)庫自動增長,它會降低服務(wù)器的性能。
⑥優(yōu)化鎖結(jié)構(gòu)。
(2)①對查詢進行優(yōu)化,盡量避免全表掃描,首先應考慮在where及order by涉及的列上建立索引。
、趹M量避免在where子句中使用!=或< >操作符,否則引擎將放棄使用索引而進行全表掃描。
③任何地方都不要使用select*from進行全表掃描,用具體的字段列代替“*”,不要返回冗余字段。
、鼙苊忸l繁創(chuàng)建和刪除臨時表,以減少系統(tǒng)表資源的消耗。
、荼M量避免使用游標,因為游標的效率較差,如果游標操作的數(shù)據(jù)超過1萬行,那么就應該考慮改寫。
、薇M量避免大事務(wù)操作,提高系統(tǒng)并發(fā)能力。
相關(guān)推薦:
2015年全國計算機等級考試無紙化考試系統(tǒng)操作指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |