某销售公司数据库中的关系零件为P(Pno, Pname, Sname, City, Qty),Pno表示零件号,Pname表示零件

题目

某销售公司数据库中的关系零件为P(Pno, Pname, Sname, City, Qty),Pno表示零件号,Pname表示零件名称,Sname表示供应商,City表示所在地,Qty表示库存量。其函数依赖集F={Pno→Pname, (Pno,Sname)→Qty,Sname→City}。关系P为 ( ),存在冗余度大、修改操作不一致、插入异常和删除异常的问题。若将P分解为( ),则可以解决这一问题。

A.1NF B.2NF C.3NF D.4NF A.P1(Pname, Qty)、P2(Pno,Sname,City) B.P1(Pname, Pname)、P2(Sname,City,Qty) C.P1(Pno, Pname)、P2(Pno,Sname,Qty) 、P3(Sname,City) D.P1(Pno, Pname)、P2(Pno, Qty)、P3(Sname,City)、P4(City,Qty)

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

●设有关系模式S (Sno,Sname,Pno,Pname,Q,A)表示销售员销售商品情况,其中各属性的含义是:Sno为销售员员工号,Sname为销售员姓名,Pno为商品号,Pname为商品名称,Q为销售商品数目,A为销售商品总金额。根据定义有如下函数依赖集:P={Sno→Sname,Sno→Q,Sno→A,Pno→Pname}。

关系模式S的关键字是 (46) ,W的规范化程度最高达到 (47) 。若将关系模式S分解为3个关系模式S1(Sno,Sname,Q,A),S2(Sno,Pno,Pname),则S1的规范化程度最高达到 (48) ,S2的规范化程度最高达到 (49) 。

SQL中集合成员资格的比较操作"元组IN(集合)"中的"IN"与 (50) 操作符等价。

(46) A.(Sno,Q)

B.(Pno,A)

C.(Sno,Pno)

D.(Sno,Pno,Q)

(47) A.1NF

B.2NF

C.3NF

D.BCNF

(48) A.1NF

B.2NF

C.3NF

D.BCNF

(49) A.1NF

B.2NF

C.3NF

D.BCNF

(50) A.<>ANY

B.=ANY

C.<>Like

D.=Like


正确答案:C,A,D,A,B
【解析】①根据给定的函数依赖集和Armstrong公理,可以推导出:
Sno,Pno→Sname,Pname,Q,A
并且(Sno,Pno)中任意一个属性都不能用函数决定其他所有属性,所以,对于关系模式S的关键字是(Sno,Pno)。
②在关系S中,函数依赖Pno→Pname和Sno→Sname,Q,A
可以得出非主属性Pname、Sname、Q和A均部分依赖于主关键字,违背第二范式的定义,因此关系S最高满足第一范式。
③对于分解后的两个关系,根据原函数依赖集,S1仅存在函数依赖:
Sno→Sname,Q,A
也就是Sno函数决定关系S1中所有属性,所以Sno是关系S1的关键字,因此关系模式S1满足BCNF。
④根据原关系函数依赖集,S2中存在函数依赖:Pno→Pname
对于关系S2来说,Pno和Sno共同才能函数决定关系中所有属性,因此关系S2的关键字是(Pno,Sno)。而函数依赖Pno→Pname,非主属性Pname部分依赖于主关键字,违背第二范式的定义,因此关系S2最高满足第一范式。
⑤运算符IN表示元组在集合中,=ANY表示元组等于集合中某一个值,两者的含义是相同的。

第2题:

阅读以下说明,回答问题1至问题3,将解答写在对应栏内。

【说明】

有如下关系数据库:

S(SNO,SN,STATUS,CITY)

P(PNO,PN,COLORS,WEIGHT)

J(JNO,JN,CITY)

SPJ(SNO,PNO,JNO,QTY)

其中,S为供应单位,P为零件,J为工程项目,SPJ为工程订购零件的订单,其语义为:某供应单位供应某种零件给某个工程,请用SQL完成下列操作。

求为工程J1提供红色零件的供应商代号。


正确答案:SELECT DISTICT SPJ.SNO FROM SPJP WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J1'AND P.COLOR='红'
SELECT DISTICT SPJ.SNO FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J1'AND P.COLOR='红'

第3题:

● 建立一个供应商、零件数据库。其中“供应商”表 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) 。

(42)

A. 1NF

B. 2NF

C. 3NF

D. BCNF

b. 若要求:供应商代码不能为空,且值是唯一的,供应商的名也是唯一的;零件号不能为空,且值是唯一的;一个供应商可以供应多种零件,而一种零件可以由多个供应商供应。请将下面的 SQL 语句空缺部分补充完整。

CREATE TABLE S(Sno CHAR(5) (43) ,

Sname CHAR(30) UNIQUE,

Zip CHAR(8),

City CHAR(20)

(44) ) ;

(43)

A. FOREIGN KEY

B. NOT NULL UNIQUE

C. FOREIGN KEY(Sno)

D. PRIMARY KEY(Sname)

(44)

A. NOT NULL

B. NOT NULL UNIQUE

C. PRIMARY KEY(Sno)

D. PRIMARY KEY(Sname)


正确答案:B,B,C

第4题:

建立一个供应商、零件数据库。其中“供应商”表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.1NF

B.2NF

C.3NF

D.BCNF


正确答案:B

第5题:

某数据库中有供应商关系S和零件关系P,其中,供应商关系模式s(Sno,Sname, SZip,City)中的属性分别表示:供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight,City)中的属性分别表示:零件号、零件名、颜色、重量、产地。要求一个供应商可以供应多种零件,而一种零件可以由多个供应商供应。请将下面的SQL语句空缺部分补充完整。

CREATE TABLE SP (Sno CHAR(5),

Pno CHAR(6),

Status CHAR(8),

Qty NUMERIC(9),

(33)(Sno,Pno),

(34)(Sno),

(35)(Pno));

查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式为: {t|((36)∧u[1]=v[1]∧v[2]=w[1]∧w[3]='红'∧(37))}

A.FOREIGN KEY

B.PRIMARY KEY

C.FOREIGN KEY(Sno)REFERENCES S

D.FOREIGN KEY(Pno)REFERENCES P


正确答案:B
解析:本题考查的是关系数据库SQL语言与元组演算语言的基础知识。
  SQL空缺部分主要是对关系模式SP的完整性定义。根据题意要求一个供应商可以供应多个零件,而一个零件可以由多个供应商供应,这样在供应商和零件之间存在多对多的联系,为此需要为该联系创建一个关系模式,该关系模式的主码为供应商代码Sno、和零件号Pno构成。因此,空(33)应填PRIMARY KEY。
  供应商代码Sno为供应商关系的主码,在SP关系中的供应商代码Sno必须参照供应商关系S,所以,空(34)应填FOREIGN KEY (Sno) REFERENCES S。
  零件号Pno为零件关系的主码,在SP关系中的零件号Pno必须参照零件关系P,所以,空(35)应填FOREIGN KEY (Pno) REFERENCES P。
  完整的SQL语句如下:
  CREATE TABLE SP (Sno CHAR(5),
          Pno CHAR(6),
          Status CHAR(8) ,
          Qty NUMERIC(9),
          PRIMARYKEY(Sno,Pno),
          FOREIGN KEY (Sno) REFERENCES S (Sno),
          FOREIGN KEY (Pno) REFERENCES P (Pno));
  对于空(36)的确定,我们应当先分析试题中已给出的元组演算表达式的条件部分: u[1]=v[1]∧v[2]=w[1]∧w[3]='红'。由于w[3]='红',这意味着元组变量w应该说明零件关系P;由于w[1]表示零件号,当v[2]=w[1],这意味着元组变量v应该说明供应商与零件关系之间的联系SP;由于v[1]表示零件号,当u[1];v[1)根据题干给出的已知条件,不难看出元组变量u应该说明供应商关系S。可见空(36)应填:S(u)∧SP(v)∧p(w)。
  对于空(37)的确定,实际上是结果集的确定。由于试题要求查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式,结果集有供应商号、零件号和数量,分别对应关系S的第一个分量,关系SP的第二个分量和第四个分量,所以空 (37)应填t[1]=u[1]∧t[2]=v[2]∧t[3]=v[4]。
  完整的关系代数表达式如下:
  {t|(S(u)∧SP(V)∧P(w)∧u[1]=v[1]∧v[2]=w[1]∧w[3]
      ='红'∧t[1]+u[1]∧t[2]=V[2]∧t[3]=v[4])}

第6题:

供应商关系:S(SNO,SNAME,CITY),属性依次是供应商号、供应商名称和所在城市

零件关系:P(PNO,PNAME,COLOR),属性依次是产品号、品名和颜色

工程关系:J(JNO,JNAME,CITY),属性依次是工程号、工程名和所在城市

供应关系:SPJ(SNO,PNO,JNO,QTY),属性依次是供应商号、产品号、工程号和数量

试用关系代数完成下列操作:

(1)求供应J1工程零件的所有供应商号;

(2)求供应J1工程P1零件的供应商号;

(3)求供应工程J1红色零件的供应商号;

(4)求S1供应商供应零件的所有工程号。


答案:

(1)select distinct SNO from SPJ where JNO='J1'

(2)select SNO from SPJ where JNO='J1' and PNO='P1'

(3)select distinct SNO from SPJ where JNO='J1' and PNO in(select * from P where COLOR='红')

(4)select JNO from SPJ where SNO='S1'

第7题:

● 建立一个供应商、零件数据库。其中“供应商”表 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属于 (36) 。

(36)

A. 1NF

B. 2NF

C. 3NF

D. BCNF

b. 若要求供应商名不能取重复值,关系的主码是 Sno。请将下面的 SQL 语句空缺部分补充完整。

CREATE TABLE S(Sno CHAR(5),

Sname CHAR(30) (37) ,

Zip CHAR(8),

City CHAR(20)

(37)

A. NOT NULL

B. UNIQUE

C. PRIMARY KEY(Sno)

D. PRIMARY KEY(Sname)

(38)

A. NOT NULL

B. NOT NULL UNIQUE

C. PRIMARY KEY(Sno)

D. PRIMARY KEY(Sname)

c. 查询供应“红”色零件,价格低于 500,且数量大于 200的供应商代码、供应商名、零件号、价格及数量的 SQL 语句如下:

SELECT Sno,Sname,Pno,Price,Qty FROM S,SP

WHERE Pno IN ( SELECT Pno FROM P WHERE (39) )

AND (40) ;

(39)

A. SP. Price < 500

B. SP. Qty > 200

C. SP. Price < 500 AND SP. Qty > 200

D. Color = '红'

(40)

A. SP. Price < 500

B. SP. Qty > 200

C. SP. Price < 500 AND SP. Qty > 200

D. Color = '红'


正确答案:B,B,C,D,C


第8题:

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

A.1NF

B.2NF

C.3NF

D.BCNF


参考答案:B
显然,表S的主键是Sno,说明S至少是2NF。但因为存在Sno→Zip和Zip→City,也就是说,City是传递依赖于主键的,所以S不是3NF。

第9题:

第53和54题基于如下描述:

设有一个数据库,包括S、P、J、SJP四个关系模式如下:

供应商关系模式S(SNO,SNAME,CITY)

零件关系模式P(PNO,PNAME,COLOR,WEIGHT)

工程项目关系模式J(JNO,INAME,CITY)

供应情况关系模式SJP(JNO,PNO,JNO,QTY)

假定它们都已经有若干数据。

“找出使用供应商编号为’0909’的供应商所供应的零件的工程名”的SELECT语句中将使用的关系有( )。 A.J和SJP B.P和SJP C.P、J和SJP D.J、S和SJP


正确答案:A
供应商标号涉及到关系SJP,零件名涉及到P,工程名涉及到关系J.所以答案为C。

第10题:

设供应商供应零件的关系模式为SP(Sno, Pno, Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的SQL语句如下:

SELECT Sno

FROM SP SPX

WHERE (1)

(SELECT *

FROM SP SPY

WHERE (2) AND NOT EXISTS

(SELECT *

FROM SP SPZ

WHERE (3)));

A.EXISTS

B.NOT EXISTS

C.IN

D.NOT IN


正确答案:B
解析:问题要求的是至少包含了供应商“168”所供应的全部零件的供应商号。可以分解成 2个否定形式:不存在这样的供应商;168号选了的商品,该供应商没有选择。
  根据以上分解,显然,(1)空选择否定的表达,而IN/NOT IN的一般用法为:
  SELECT *
    FROM table_name1
    WHERE column1 IN/NOT IN
     (SELECT column1
       FROM table_name2
       WHERE conditions);
  也就是说,IN后面接的是一个集合,且前面有列名column1。
  EXISTS/NOTEXISTS指是否存在,一般用法为:
  SELECT *
    FROM table_name1
    WHERE EXISTS/NOT EXISTS
      (SELECT *
        FROM table_name2
        WHERE conditions);

更多相关问题