问题 单项选择题

某公司的部门(部门号,部门名,负责人,电话)、商品(商品号,商品名称,单价,库存量)和职工(职工号,姓名,住址)三个实体对应的关系如表1、表2和表3所示。

假设每个部门有一位负责人,一个负责人只有一部电话,但有若干名员工;每种商品只能由一个部门负责销售。

①部门关系不属于第三范式的原因是 (36) 。如果用户要求得到表4所示的结果,需要 (37) ,并增加关系模式 (38)

②若部门名是唯一的,请将下述部门SQL语句的空缺部分补充完整。

CREATE TABLE 部门 (部门号 CHAR(3) PRIMARY KEY,

部门名CHAR(10) (39)

负责人CHAR(4),

电话CHAR(20))

(40) );

③查询各部门负责人的姓名及住址的SQL语句如下:

SELECT 部门名,姓名,住址

FROM 部门,职工 (41)

(41)处应填()。

A.WHERE 职工号=负责人

B.WHERE职工号=’负责人’

C.WHERE 姓名=负责人

D.WHERE 姓名=’负责人’

答案

参考答案:A

解析:

试题(36)~(41)

[分析]:

本题考查的是应试者对范式、SQL语言的掌握程度。

试题(36)考查的是范式的基础知识。部门关系不属于第三范式的原因是因为部门的主键是部门号,非主属性部门名,负责人,电话虽然不存在对键的部分函数依赖,但是存在传递依赖,即部门号→部门名→电话。所以正确的答案是C。

试题(37)正确的答案是D;因为表4中有职工号、姓名、部门名和月销售额,此时必须知道职工属于哪个部门,故需在职工关系中增加一个部门号属性,并且增加关系模式销售(职工号,商品号,日期,数量),所以试题(38)正确的答案是A。

试题(39)正确的答案是B,因为试题要求部门名是唯一的,根据表1可以看出负责人来自职工且等于职工号属性;试题(40)正确的答案是D,因为职工关系的主键是职工号,所以部门关系的外键负责人需要用FOREIGN KEY(负责人)REFERENCES职工(职工号)来约束。这样部门关系的SQL语句如下;

CREATE TABLE部门(部门号CHAR(3)PRIMARY KEY,

部门名CHAR(10)UNIQUE,

负责人CHAR(4),

电话CHAR(20)

FOREIGN KEY(负责人)REFERENCES职工(职工号));

试题(41)正确的答案是A,将查询各部门负责人的姓名及住址的SQL语句的空缺部分补充完整如下:

SELECT 部门名,姓名,住址 FROM 部门,职工 WHERE 职工号:负责人;

单项选择题
填空题