问题 单项选择题

建立一个供应商零件数据库。其中“供应商”表S(Sno,Sname,Zip,City)中的属性分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:Sno→(Sname,Zip,City),Zip→City。“零件”表P(Pno,Pname,Color,Weight,City),表示零件号、零件名、颜色、重量及产地。表S与表P之间的关系SP(Sno,Pno,Price,Qty)表示供应商代码、零件号、价格、数量。

A.NOTNULL B.NOTNULLUNIQUE
C.PRIMARY KEY(Sno) D.PRIMARY KEY(Sname)

A.“供应商”表S属于 (7)
B.若要求:供应商代码不能为空,且值是唯一的,供应商名也是唯一的;零件号不能为空,且值是唯一的;一个供应商可以供应多种零件,而一种零件可以由多个供应商供应。请将下面的SQL语句空缺部分补充完整。
CREATE TABLE S(Sno CHAR(5) (8)
Sname CHAR(30)UNIQUE,
Zip CHAR(8),
City CHAR(20)
(9) );

答案

参考答案:C

解析: 显然,表S的主键是Sno,说明S至少是2NF。但因为存在Sno→zip和Zip→City,也就是说,City是传递依赖于主键的,所以S不是3NF。
在给定的SQL语句中,因为Sno是主键,所以(8)空应该填“PRIMARY KEY”,但给出的选项中没有这个词组。试题描述告诉我们,“供应商代码不能为空,且值是唯一的”,所以应该选择B,而在(9)空处填写“PRIMARY KEY(Sno)”。

单项选择题