閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題5,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某工廠的倉(cāng)庫(kù)管理數(shù)據(jù)庫(kù)的部分關(guān)系模式如下所示:
倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),面積,負(fù)責(zé)人,電話)
原材料(編號(hào),名稱,數(shù)量,儲(chǔ)備量,倉(cāng)庫(kù)號(hào))
要求一種原材料只能存放在同一倉(cāng)庫(kù)中?!皞}(cāng)庫(kù)”和“原材料”的關(guān)系實(shí)例分別如表2-1和表2-2所示。
【問(wèn)題1】根據(jù)上述說(shuō)明,用SQL定義“原材料”和“倉(cāng)庫(kù)”的關(guān)系模式如下,請(qǐng)?jiān)诳杖碧幪钊胝_的內(nèi)容。
CREATE TABLE 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào) CHAR(4),
面積 INT,
負(fù)責(zé)人 CHAR(8),
電話 CHAR(8),
_________(a)___________);//主鍵定義
CREATE TABLE 原材料(編號(hào) CHAR(4)____(b)_____,//主鍵定義
名稱 CHAR(16),
數(shù)量 INT,
儲(chǔ)備量 INT,
倉(cāng)庫(kù)號(hào)_________(c)_________,
__________(d)____________); //外鍵定義
【問(wèn)題2】將下面的SQL語(yǔ)句補(bǔ)充完整,完成“查詢存放原材料數(shù)量最多的倉(cāng)庫(kù)號(hào)”的功能。
SELECT 倉(cāng)庫(kù)號(hào)
FROM_________(e)__________
______________(f)___________;
【問(wèn)題3】將下面的SQL語(yǔ)句補(bǔ)充完整,完成“01號(hào)倉(cāng)庫(kù)所存儲(chǔ)的原材料信息只能由管理員李勁松來(lái)維護(hù),而采購(gòu)員李強(qiáng)能夠查詢所有原材料的庫(kù)存信息”的功能。
CREATE VIEW raws_in_wh01 AS
SELECT ________(g)__________
FROM 原材料
WHERE 倉(cāng)庫(kù)號(hào) =“01”;
CRANT _____(h)_____ON______(i)_____TO李勁松;
CRANT _____( j)_____ON______(k)_____TO李強(qiáng) ;
【問(wèn)題4】倉(cāng)庫(kù)管理數(shù)據(jù)庫(kù)的訂購(gòu)計(jì)劃關(guān)系模式為:訂購(gòu)計(jì)劃(原材料編號(hào),訂購(gòu)數(shù)量)。采用下面的觸發(fā)器程序可以實(shí)現(xiàn)“當(dāng)倉(cāng)庫(kù)中的任一原材料的數(shù)量小于其儲(chǔ)備量時(shí),向訂購(gòu)計(jì)劃表中插入該原材料的訂購(gòu)記錄,其訂購(gòu)數(shù)量為儲(chǔ)備量的三倍”的功能。請(qǐng)將該程序的空缺部分補(bǔ)充完整。(3分)
CREATE TRIGGER ins_order_trigger AFTER____(1)____ON原材料
REFERENCING NEW ROW AS nrow
FOR EACH ROW
WHEN nrow.數(shù)量 INSERT INTO 訂購(gòu)計(jì)劃 VALUES
(______(m)____,______(n)_______);
【問(wèn)題5】
如果一種原材料可以在多個(gè)倉(cāng)庫(kù)中存放,則問(wèn)題4中的觸發(fā)器程序存在什么問(wèn)題,如何修改?