某公司的部門(mén)(部門(mén)號(hào),部門(mén)名,負(fù)責(zé)人,電話)、商品(商品號(hào),商品名稱,單價(jià),庫(kù)存量)和職工(職工號(hào), 姓名, 住址)三個(gè)實(shí)體對(duì)應(yīng)的關(guān)系如表1、表2和表3所示。假設(shè)每個(gè)部門(mén)有一位負(fù)責(zé)人,一個(gè)負(fù)責(zé)人只有一部電話,但有若干名員工;每種商品只能由一個(gè)部門(mén)負(fù)責(zé)銷售。
a. 部門(mén)關(guān)系不屬于第三范式的原因是 (1) 。如果用戶要求得到表4所示的結(jié)果,需要 (2) ,并增加關(guān)系模式 (3) 。
b. 若部門(mén)名是唯一的,請(qǐng)將下述部門(mén)SQL語(yǔ)句的空缺部分補(bǔ)充完整。
CREATE TABLE 部門(mén)(部門(mén)號(hào)CHAR(3) PRIMARY KEY,
部門(mén)名 CHAR(10) (4) ,
負(fù)責(zé)人 CHAR(4),
電話 CHAR(20))
(5) ;
c. 查詢各部門(mén)負(fù)責(zé)人的姓名及住址的SQL語(yǔ)句如下:
SELECT 部門(mén)名,姓名,住址
FROM 部門(mén),職工 (6) ;
(1)
A.沒(méi)有消除非主屬性對(duì)碼的部分函數(shù)依賴,如:部門(mén)名→負(fù)責(zé)人
B.沒(méi)有消除非主屬性對(duì)碼的部分函數(shù)依賴,如:負(fù)責(zé)人→電話
C.只消除了非主屬性對(duì)碼的部分函數(shù)依賴,而未消除傳遞函數(shù)依賴
D.沒(méi)有消除非主屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴
(2)
A.修改表1的結(jié)構(gòu),在表1中增加一個(gè)職工號(hào)
B.修改表2的結(jié)構(gòu),在表2中增加一個(gè)職工號(hào)
C.修改表2的結(jié)構(gòu),在表2中增加一個(gè)部門(mén)號(hào)
D.修改表3的結(jié)構(gòu),在表3中增加一個(gè)部門(mén)號(hào)
(3)
A.銷售(職工號(hào),商品號(hào),日期,數(shù)量)
B.銷售(職工號(hào),商品名稱,商品號(hào),數(shù)量)
C.銷售(職工號(hào),部門(mén)號(hào),日期,數(shù)量)
D.銷售(職工號(hào),部門(mén)號(hào),商品號(hào),日期)
(4)
A.NOT NULL
B.UNIQUE
C.KEY UNIQUE
D.PRIMARY KEY
(5)
A.PRIMARY KEY(部門(mén)號(hào))NOT NULL UNIQUE
B.PRIMARY KEY(部門(mén)名)UNIQUE
C.FOREIGN KEY(負(fù)責(zé)人)REFERENCES 職工(姓名)
D.FOREIGN KEY(負(fù)責(zé)人)REFERENCES 職工(職工號(hào))
(6)
A.WHERE 職工號(hào)=負(fù)責(zé)人
B.WHERE 職工號(hào)=’負(fù)責(zé)人’
C.WHERE 姓名=負(fù)責(zé)人
D.WHERE 姓名=’負(fù)責(zé)人’