建立一个供应商、零件数据库。其中“供应商”表S(Sno,Sname,Zip,City)中的属性分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:Sno→(Sname,Zip,City),Zip→City。“零件”表P(Pno,Pna

admin2009-03-23  55

问题 建立一个供应商、零件数据库。其中“供应商”表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.“供应商”表S属于(42)。
b.若要求:供应商代码不能为空,且值是唯一的,供应商的名也是唯一的:零件号不能为空,且值是唯—的;一个供应商可以供应多种零件,而一种零件可以由多个供应商供以。请将下面的SQL语句空缺部分补充完整。    CREATE TABLE S(Sno  CHAR(5)(43),    Sname  CHAR (30) UNIQUE,    Zip  CHAR (8),    City  CHAR (20)   (44)):

选项 A、NOT NULL
B、NOT NULL UNIQUE
C、PRIMARY KEY(Sno)
D、PRIMARY KEY(Sname)

答案C

解析 本题考查应试者对范式、SQL语言的掌握程度。
   试题(42)考查范式的基础知识。“供应商”表S属于2NF,因为表S的主键是Sno,非主属性Sname,Status,City不存在对键的部分函数依赖。但是,当2NF消除了非主属性对码的传递函数依赖,则称为3NF。“供应商”表S不属于3NF,因为存在传递依赖,即Sno→Status,Status→City。所以正确的答案是B。
   试题(43)正确的答案是B,因为试题要求供应商代码不能为空,且值是唯一的,供应商的名也是唯一的,所以需要用NOT NULL UNIQUE。试题(44)正确的答案是C,因为表S的主键是Sno,所以需要用PRIMARY KEY(Sno)来约束。补充完整的SQL语句如下:
   CREATE TABLE S (Sno  CHAR (5) NOT NULL UNIQUE,
   Sname  CHAR (30) UNIQUE,
   Status  CHAR (8),
   City CHAR (20)
   PRIMARY KEY (Sno));
转载请注明原文地址:https://kaotiyun.com/show/h9LZ777K
0

最新回复(0)