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