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