【問(wèn)題1】
根據(jù)E—R圖中給出的詞匯,按照“關(guān)系模式名(屬性,屬性….)”的格式,將此E—R圖轉(zhuǎn)換為4個(gè)關(guān)系模式,并指出每個(gè)關(guān)系模式中的主碼和外碼,其中模式名根據(jù)需要取實(shí)體名或聯(lián)系名。
【問(wèn)題2】
創(chuàng)建Customers表時(shí),cid使用INTEGER數(shù)據(jù)類型,cname使用CHAR(80)數(shù)據(jù)類型,address使用CHAR(200)數(shù)據(jù)類型,cardnum使用CHAR(16)數(shù)據(jù)類型并且要求此列值惟一。請(qǐng)?jiān)谙铝杏糜趧?chuàng)建表Customers的SQL語(yǔ)句空缺處填入正確的內(nèi)容。
CREATE TABLE Customers(cid INTEGER NOT NULL,
cname CHAR(80)NOT NULL,
address CHAR(200),
cardnum CHAR(16)NOT NULL,
(1),
(2)
【問(wèn)題3】
如下的SQL語(yǔ)句是玩具店用于查詢“所有訂購(gòu)了tid為‘123—456’玩具的用戶訂購(gòu)其他玩具
的情況”的不完整語(yǔ)句,請(qǐng)?jiān)诳杖碧幪钊苏_的內(nèi)容。
Select tid
From Orderlist A
Where not exists(Select*from Orders B
where A.ordemum=B.ordernum and B.cid(3)
(Select cid from Orderlist C,Orders D
where(4)..tid=’123-456’
and(5)=D.ordemum)
【問(wèn)題1】解答:
Toys、Customers、orders三個(gè)實(shí)體轉(zhuǎn)換為3個(gè)關(guān)系模式,由于訂購(gòu)單和顧客之間是一對(duì)一關(guān)系,所以PlaceOrder不需要單獨(dú)成為一個(gè)關(guān)系模式,而訂購(gòu)單和玩具之間是多對(duì)多關(guān)系,所以0rderList需要單獨(dú)成為一個(gè)關(guān)系模式。于是得到:
(1)Customer(cid,ename,address,cardnum)主鍵為cid
(2)Orders(ordemm,orderdate,cid)主鍵為ordemum,外鍵為cid
(3)Toys(bid,name,producer,qty—in—stock,year_produced,price)主鍵為bid
(4)OrderList(bid,ordernum,qty,ship_date)主鍵為(bid,ordemum),外鍵為bid、oMemum
【問(wèn)題2】解答:
關(guān)系模式Customers的主鍵為cid,而cardnum列值唯一,因此應(yīng)分別填入:
Primary Key cid和UNIQUE cardnum。
【問(wèn)題3】解答:
最內(nèi)層的SQL語(yǔ)句查找訂購(gòu)了123—456的客戶cid,ordemum只出現(xiàn)在OrderList和order中,所以第(5)處填寫C.ordemum,第(4)處填寫C,題目要求查找這些客戶還訂購(gòu)了那些玩具,所以(3)處填in。完整的SQL語(yǔ)句如下:
Select tid
From Orderlist A
Where not exists(Select * from Orders B
where A.ordemum=B.ordemum and B.cid in
(Select cid from Orderlist C,Orders D
where C.tid=’123—456’
and C.ordernum=D.ordemum)
●試題2
閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填人答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某連鎖超市決定開(kāi)發(fā)一個(gè)超市銷售系統(tǒng),由張工承擔(dān)系統(tǒng)的設(shè)計(jì)工作。該系統(tǒng)的網(wǎng)絡(luò)連接如圖7.2所示。
該連鎖超市有多個(gè)分店,圖7.2所示的中心數(shù)據(jù)庫(kù)存儲(chǔ)了各個(gè)分店中每種商品的信息。每個(gè)分店配備一臺(tái)前端機(jī),進(jìn)出商品均由前端機(jī)輔助實(shí)現(xiàn)。管理員每天上班時(shí),通過(guò)前端機(jī)從中心數(shù)據(jù)庫(kù)的庫(kù)存表中讀取本分店各種商品的庫(kù)存數(shù),每個(gè)分店的當(dāng)日業(yè)務(wù)數(shù)據(jù)也都暫存在前端機(jī),當(dāng)天業(yè)務(wù)結(jié)束后,再將前端機(jī)中存儲(chǔ)的數(shù)據(jù)傳輸?shù)街鳈C(jī)進(jìn)行存儲(chǔ)與匯總。
每個(gè)分店可以存放多種商品。每個(gè)分店有多個(gè)管理員,但每個(gè)管理員只管理一個(gè)分店。商品銷售/A.店時(shí),由分店管理員將商品的條碼通過(guò)閱讀器輸入前端機(jī)中,商品數(shù)量的默認(rèn)值為1,可以由管理員修改。前端機(jī)根據(jù)輸入的商品信息,打印“銷售/A.店”清單。銷售//k店單中同一種商品最多只出現(xiàn)一次,每份銷售/入店單由流水號(hào)唯一標(biāo)識(shí)。圖7.3是一個(gè)銷售單的實(shí)例。
該系統(tǒng)處理業(yè)務(wù)的過(guò)程如下:
1.初始化:前端機(jī)根據(jù)分店號(hào)從商品表中讀取本分店中每種商品的商品編碼、點(diǎn)存量、商品名稱和單價(jià)。
2.登記銷售/人店信息:由前端機(jī)存儲(chǔ)每一筆“銷售/入店”記錄。
3.匯總:在每個(gè)工作日結(jié)束前匯總當(dāng)日各種商品的“銷售/人店”量至日匯總表; 4.更新庫(kù)存表:根據(jù)當(dāng)日的匯總信息更新商品的庫(kù)存。
張工經(jīng)過(guò)分析,設(shè)計(jì)出如圖7.4所示的關(guān)系模式。
出入店單(流水號(hào),出入店標(biāo)志,管理員號(hào),時(shí)間)
出入店記錄(商品編碼,數(shù)據(jù),流水號(hào))
日匯總表(日期,商品編碼,數(shù)量,出入店標(biāo)志)
分店(分店號(hào),分店名,分店電話)管理員(管理號(hào),姓名,分店號(hào))商品((a))
注:時(shí)間格式為:年.月.日時(shí):分:日期格式為:年.月.日。
實(shí)體聯(lián)系圖的表示方法如圖7.5所示,其中方框表示實(shí)體,菱形表示聯(lián)系,聯(lián)系的類型在實(shí)體與聯(lián)系的邊上標(biāo)出。圖7.6為與該系統(tǒng)對(duì)應(yīng)的實(shí)體聯(lián)系圖。
【問(wèn)題1】
根據(jù)題意,補(bǔ)充圖7.4中(a)處的空缺,即商品關(guān)系模式的屬性。
【問(wèn)題2】
根據(jù)題意,補(bǔ)充圖7.6中缺失的聯(lián)系和聯(lián)系的類型,使其成為完善的實(shí)體聯(lián)系圖。其中,聯(lián)系名分別取名為聯(lián)系l,聯(lián)系2,聯(lián)系3,…。
【問(wèn)題3】
寫出每種關(guān)系模式的豐鍵.將其填寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【問(wèn)題1】解答:
根據(jù)題意,補(bǔ)充商品關(guān)系模式如下:
商品(商品編號(hào),名稱,單價(jià),數(shù)量,分店號(hào))
【問(wèn)題2】解答:
出入店單與出入店記錄-e_N是一對(duì)多聯(lián)系,日匯總表與出入店記錄之間是一對(duì)多聯(lián)系;連鎖分店與日匯總表之間是一對(duì)一聯(lián)系;分店與管理員之間是一對(duì)多聯(lián)系;出入店記錄與管理員之間是多對(duì)多聯(lián)系;商品與出入店記錄之間是一對(duì)多聯(lián)系。圖略。
【問(wèn)題3】解答:
各關(guān)系模式的主鍵如下:
出入店單(流水號(hào))
出入店記錄(商品編碼,流水號(hào))
日匯總表(日期)
分店(分店號(hào)) 管理員(管理號(hào))
商品(商品編碼)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |