第 1 頁(yè):?jiǎn)芜x題 |
第 4 頁(yè):應(yīng)用題 |
第 5 頁(yè):設(shè)計(jì)與應(yīng)用題 |
第 6 頁(yè):參考答案及解析 |
三、設(shè)計(jì)與應(yīng)用題
1.【解題思路】
(1)ER圖的畫法
建立相應(yīng)的ER圖的過程如下:
第一,確定實(shí)體類型。本題有兩個(gè)實(shí)體類型,即顧客實(shí)體和商品實(shí)體。
第二,確定聯(lián)系類型。該題中只有顧客一商品模型。
第三,把實(shí)體類型和聯(lián)系類型組合成ER圖。
第四,確定實(shí)體類型和聯(lián)系類型的屬性。
顧客實(shí)體集屬性:姓名、單位、電話號(hào)碼
商品實(shí)體集屬性:型號(hào)、名稱、產(chǎn)地、單價(jià)由顧客和商品兩個(gè)實(shí)體和一個(gè)顧客一商品購(gòu)買關(guān)系,并且根據(jù)實(shí)體的屬性可以畫出相應(yīng)ER圖。
(2)ER模型轉(zhuǎn)換為關(guān)系模式的規(guī)則
①把ER模型中的每一個(gè)實(shí)體集轉(zhuǎn)換為同名的關(guān)系,實(shí)體集的屬性就是關(guān)系的屬性,實(shí)體集的碼就是關(guān)系的碼。
、诎袳R模型中的每一個(gè)聯(lián)系轉(zhuǎn)換成一個(gè)關(guān)系,與該聯(lián)系相連的各實(shí)體集的碼以及聯(lián)系的屬性轉(zhuǎn)換為關(guān)系的屬性。關(guān)系的碼根據(jù)下列情況確定:
若聯(lián)系為1:1,則每個(gè)是實(shí)體集碼均是該關(guān)系的候選碼。
若聯(lián)系為1:n,則關(guān)系的碼為n端實(shí)體集的碼。
若聯(lián)系為m:n,則關(guān)系的碼為各實(shí)體集碼的組合。
、酆喜⒕哂邢嗤a的關(guān)系。
根據(jù)規(guī)則,把一個(gè)ER模型轉(zhuǎn)換為關(guān)系模式,一般經(jīng)歷下面兩個(gè)步驟:
1)標(biāo)識(shí)ER模型中的聯(lián)系。
2)依次轉(zhuǎn)換與每個(gè)聯(lián)系相關(guān)聯(lián)的實(shí)體集及聯(lián)系。
本題中從ER模型轉(zhuǎn)換成關(guān)系模型,由兩個(gè)實(shí)體和一個(gè)關(guān)系分別可以轉(zhuǎn)換成三個(gè)關(guān)系模式。
【參考答案】
(1)ER模型如下所示:
(2)將ER模型轉(zhuǎn)換為關(guān)系模型,并規(guī)范到3NF:
顧客(姓名,單位,電話號(hào)碼),主鍵:姓名
商品(型號(hào),名稱,單價(jià),產(chǎn)地),主鍵:型號(hào)
購(gòu)買(姓名,型號(hào),數(shù)量,日期),主鍵:姓名+型號(hào)
2.【解題思路】
(1)采用兩表聯(lián)合查詢。以兩表“借書證號(hào)”為相等條件,在結(jié)果集中用GROUP BY按照“借書證號(hào)”來分類,并且用HAVING關(guān)鍵字統(tǒng)計(jì)出符合條件的記錄數(shù)。
(2)采用IN關(guān)鍵字進(jìn)行兩表聯(lián)合查詢,在BORROWER和LOANS聯(lián)合的結(jié)果集中查找滿足第三個(gè)表指定的條件。
【參考答案】
(1)SELECT LOANS.借書證號(hào),姓名,系名,COUNT(*)As借書數(shù)量
FROM BORROWER,LOANS
WHERE BORROWER.借書證號(hào)=LOANS.借書證號(hào)
GROUP BY LOANS.借書證號(hào)
HAVING COUNT(*)>=5;
(2)SELECT姓名,系名,書名,借書日期
FROM BORROWER,LOANS,BOOKS
WHERE
BORROWER.借書證號(hào)=LOANS.借書證號(hào)AND LOANS.圖書登記號(hào)=BOOKS.圖書登記號(hào)
AND索書號(hào)IN
(
SELECT索書號(hào)FROM BORROWER,LOANS,BOOKS
WHERE BORROW.借書證號(hào)=LOANS.借書證號(hào)
AND LOANS.圖書館登記號(hào)=BOOKS.圖書登記號(hào)
AND姓名=”王麗”
)
3.【解題思路】
創(chuàng)建觸發(fā)器的SQL語(yǔ)句為:CREATE TRIGGER,其語(yǔ)法格式為:
CREATE TRIGGER[schema_name.]trigger_name
ON{tableIview}
{FOR l AlZl'ER I INSTEAD OF}
{[INSERT][,][DELETE][,][UPDATE]}
AS{sql_statement}
[;]
其中AFFER指定觸發(fā)器為后觸發(fā)型觸發(fā)器,INSERT,UPDATE和DELETE為指定引發(fā)觸發(fā)器執(zhí)行的操作。根據(jù)原題要求,insert觸發(fā)器會(huì)在inserted表中添加一條剛插入的記錄,update觸發(fā)器會(huì)在更新數(shù)據(jù)后將更新前的數(shù)據(jù)保存在deleted表中,更新后的數(shù)據(jù)保存在inserted表中。在教師表中插入或者更新的時(shí)候,都會(huì)在inserted表中增加一條記錄,所以只需在觸發(fā)器查詢inserted表中查詢有沒有“教授”或者“副教授”的記錄,如果有,則觸發(fā)修改相應(yīng)部門的高級(jí)職稱人數(shù)即可。
【參考答案】
CREATE TRIGGER tri_ZC
ON教師表
AL TER INSERT,UPDATE
AS
BEGIN
DECLATE@ZC varchar(10),@dept varchar(30)
SELECT@dept=所在部門號(hào),@2c=職稱FROM inserted
IF@ZC=’教授’0r’副教授7
Update部門表
SET高級(jí)職稱人數(shù)=高級(jí)職稱人數(shù)+1
Where部門號(hào)=@dept
End
相關(guān)推薦:
全國(guó)計(jì)算機(jī)等級(jí)考試教材目錄(2015年版)
各地計(jì)算機(jī)等級(jí)考試報(bào)名入口及官方網(wǎng)站匯總
各地2015全國(guó)計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間及入口匯總
2015年全國(guó)計(jì)算機(jī)等級(jí)考試無(wú)紙化考試系統(tǒng)操作指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |