数据库系统概论试题及答案 下载本文

供应情况表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分),分解过程的叙述斟情扣分。