供应情况表SPJ由供应商号、零件号、项目号、供应数量组成; (1)用关系代数查询没有使用天津供应商生产的红色零件的工程号;(3分) (1)参考答案:
πJNO(J)- πJNO (
评分标准:
CITY='天津' (S)SPJCOLOR='红' (P))
两个关系的差1分;三个表的自然连接SSPJP1分,少任意一个关系不给分;CITY='天津'和
COLOR='红'两个条件1分,任意一个错误不给分。
(2) 用关系代数查询至少使用了供应商S1所供应的全部零件的工程号JNO; (3分) (2)参考答案:
πPNO,JNO(SPJ)÷πPNO (
评分标准:
SNO='S1' (SPJ))
两个关系的除1分;πPNO,JNO和πPNO1分,任意一个错误不给分;分。
(3)用SQL查询供应工程J1零件为红色的工程号JNO;(2分) (3)
参考答案1:
SELECT DISTINCT JNO
FROM SPJ,P WHERE = AND
COLOR='红'AND JNO='J1'; 评分标准:
SNO='S1'1
SELECT DISTINCT JNO FROM SPJ,P 1分,少DISTINCT扣分,SPJ,P中少任一表不给分;WHERE = AND COLOR='红'AND JNO='J1'1分,3个条件每错一个扣,扣完1分为止。
参考答案2:
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO='J1' AND
PNO IN
(SELECT PNO FROM P
WHERE COLOR='红');
评分标准:
SELECT DISTINCT JNO FROM SPJ 1分,少DISTINCT扣分;WHERE JNO='J1' AND
PNO IN
(SELECT PNO FROM P WHERE COLOR='红')1分,无JNO='J1'、PNO IN、SELECT PNO
FROM P WHERE COLOR='红'均扣分,扣完1分为止。
(4)用SQL查询没有使用天津供应商生产的零件的工程号;(3分)
参考答案1:
SELECT JNO
FROM J
WHERE JNO NOT IN (SELECT JNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S
WHERE CITY='天津')); 评分标准:
SELECT JNO
FROM J
WHERE JNO NOT IN 和
SELECT JNO FROM SPJ
WHERE SNO IN
和
SELECT SNO FROM S
WHERE CITY='天津'
三层嵌套各1分,各嵌套内有错误则该项均不给分。
参考答案2:
SELECT JNO FROM J
WHERE NOT EXISTS (SELECT * FROM SPJ,S WHERE = AND
= AND
CITY='天津');
评分标准:
SELECT JNO FROM J
WHERE NOT EXISTS 1分; SELECT *
FROM SPJ,S 1分,SPJ,S少一个表不给分; WHERE = AND
= AND
CITY='天津'1分,三个条件少一个扣,扣完1分为止。
参考答案3:
SELECT JNO
FROM J
WHERE NOT EXISTS (SELECT * FROM SPJ
WHERE = AND EXISTS (SELECT * FROM S
WHERE = AND
CITY='天津')); 评分标准:
SELECT JNO
FROM J
WHERE NOT EXISTS 和
SELECT * FROM SPJ
WHERE = AND EXISTS
和
(SELECT * FROM S
WHERE = AND
CITY='天津'))
三层嵌套各1分,各嵌套内有错误则该项均不给分。
(5)用SQL语句将全部红色零件改为蓝色;(2分)
UPDATE P SET COLOR='蓝' WHERE COLOR='红';
评分标准:
UPDATE P 分;SET COLOR='蓝'1分;WHERE COLOR='红'分。
(6)用SQL语句将(S2,P4,J6,400)插入供应情况关系。(2分) (6)参考答案:
INSERT INTO SPJ VALUES('S2','P4','J6',400); 评分标准:
INSERT INTO SPJ1分;VALUES('S2','P4','J6',400)1分。
2. 设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),(S#,CNAME)为
候选码,设关系中有如下函数依赖: (S#,CNAME)→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME (S#,CNAME)→GRADE SDEPT→MNAME 试求下列问题:
(1)关系STUDENT属于第几范式?并说明理由。(3分)
(2)如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为巧
BCNF。(7分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
2、参考答案:
(1) 关系STUDENT是1NF,因为F中存在非主属性SNAME,SDEPT,MNAME
对侯选码(S#,CNAME)的部分函数依赖。 (2)
① 首先消除部分函数依赖(S#,CNAME)→SNAME,SDEPT,MNAME将关系分解
为:
R1(S#,SNAME,SDEPT,MNAME),S#为候选码, R1的函数依赖集为:
F1 = { S#→SNAME,SDEPT,MNAME,SDEPT→MNAME} R2(S#,CNAME,GRADE),S#为候选码, R2的函数依赖集为:
F2={(S#,CNAME)→GRADE}
② 在关系R1中存在非主属性MNAME对候选码S#的传递函数依赖S#→
MNAME,所以将R1进一步分解:
R11(S#,SNAME,SDEPT) ,S#为候选码, R11的函数依赖集为:
F11 = { S#→SNAME,SDEPT}
R12(SDEPT,MNAME) ,SDEPT为候选码, R12的函数依赖集为: F12 = { SDEPT→MNAME}
在R2、R11、R12关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,所以上述三个关系模式均是BCNF。 评分标准:
(1)正确指明R∈1NF(1分);正确说明R∈1NF的理由(2分)。 (2)首先正确将R分解为R1(S#,SNAME,SDEPT,MNAME)(2分)和R2(S#,CNAME,GRADE)(1分),再将R1正确分解为R11(S#,SNAME,SDEPT)(2分)和R12(SDEPT,MNAME)(2分),分解过程的叙述斟情扣分。