●試題4
閱讀下列說明,回答問題1至問題4,將解答填人答題紙的對應(yīng)欄內(nèi)。
【說明】
某公司的采購業(yè)務(wù)目前是手工處理的,隨著業(yè)務(wù)量的增長,準備采用關(guān)系數(shù)據(jù)庫對進貨信息進行管理。采購業(yè)務(wù)的手工處理主要涉及三種表:訂單、客戶表和原材料表(見表6~8)。
為了用計算機管理采購信息,該公司提出應(yīng)達到以下要求:原材料的單價發(fā)生變化時,應(yīng)及時修改原材料表中的單價數(shù)據(jù)?蛻翡N售計價采用訂貨時的單價。訂貨后,即使單價發(fā)生變化,計算用的單價也不變。
在設(shè)計數(shù)據(jù)庫時,經(jīng)銷部的王先生建立了如圖7.7所示的數(shù)據(jù)模型。其中,方框表示實體,單向箭頭表示1對多的聯(lián)系,雙向箭頭表示多對多的聯(lián)系。
由于上述模型對建立關(guān)系數(shù)據(jù)庫是不合適的,因此王先生又修改了數(shù)據(jù)模型,并設(shè)計了如下幾個關(guān)系(帶下劃線的數(shù)據(jù)項是關(guān)鍵項,最后一個關(guān)系中沒有指出關(guān)鍵項):
Customer(CustomerN0,CustomerName,Address,Phone)
Material(MaterialN0,MaterialName,UnitPrice)
Order(OrderN0,CustomerN0,Date)
OrderDetail(OrderN0,MaterialN0,Quantity)
【問題1】
請按【說明】中的要求畫出修改后的數(shù)據(jù)模型。
【問題2】
(1)【說明】中的幾個關(guān)系仍無法實現(xiàn)該公司的要求,為什么?
(2)需要在哪個關(guān)系中增加什么數(shù)據(jù)項才能實現(xiàn)這個要求?
【問題3】
寫出0rderDetail中的關(guān)鍵項。
【問題4】
以下SQL語句用于查詢不銷售原材料代碼為“01 10”的所有客戶名。請?zhí)钛a空缺。
SELECT CustomerName FROM Customer(1)
WHERE(2)
(SELECT*FROM OrderDetail B,Order C
WHERE B.MaterialNo=C.MaterialNo
AND B.MaterialNo=‘0110’
AND C.CustomerNo=A.CustomerNo)
【問題1】解答:
客戶與訂單是一對多關(guān)系;訂單和訂單明細是一對多關(guān)系:原材料和訂單明細是一對多關(guān)系。
(1)沒有在OrderDetail表中記錄產(chǎn)品的單價,也沒有在Order表中記錄訂單總價,所以當單價發(fā)生變化時,計算用的單價就是變化后的單價了。
(2)在OrderDetail表中增加一個單價數(shù)據(jù)項或者在Order表中增加一個總金額數(shù)據(jù)項。
【問題3】解答:
表OrderDetail中的關(guān)鍵項為:OrderN0。MaterialNo
【問題4】解答:
(1)A或AS A
(2)NOT EXIST
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |