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

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

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)
参考答案和解析
答案:C
解析:
原零件关系P存在非主属性对码的部分函数依赖:(Pno, Sname) —>Qty,但是Pno ——>Pname、Sname —>City,因此P∈1NF,而非2NF的。1NF主要存在冗余变大、修改操作的不一致、插入异常和删除异常的问题。

分解后的关系模式P1P2和P3消除了非主属性对码的部分函数依赖,同时不存在传递依赖,故达到3NF。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第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题:

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


第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题:

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

【说明】

下面是某ERP系统中零件供应模块的3个关系模式。

供应商:S(SNO,SNAME,CITY,STATUS)

零件:P(PNO,PNAME,WEIGHT,COLOR,CITY)

供应单:SP(SNO,PNO,PTY,SP Date)

属性说明:

SNO—供应商编号,SNAME—供应商名称,CITY—地址,STATUS—供应商状态

PNO—零件编号,PNAME—零件名称,WEIGHT—零件重量,COLOR—零件颜色, CITY—地址,PTY—数量,SP Date—订单日期

问题:

用SQL语句完成以下操作。

求供应红色零件北京供应商的编号、名称和状态。


正确答案:SELECT DISTINCT S.SNO S.SNAME S.STATUS FROM S P SP WHERE S.SNO=SP.SNO AND P.PNO=SP.PNO AND P/PNO='红色'
SELECT DISTINCT S.SNO, S.SNAME, S.STATUS FROM S, P, SP WHERE S.SNO=SP.SNO AND P.PNO=SP.PNO AND P/PNO='红色'

第5题:

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

第6题:

●假设供应商S和供应情况SPJ的关系模式分别为S(Sno,Sname,Status,City)和SPJ(Sno,Pno,Jno,Qty)。SQL语句 (19) 不能正确地查询出"零件号Pno等于'P3'的供应商名Sname",而 (20) 能正确查询的关系代数表达式。

(19) A.SELECT DISTINCT Sname

FROMS

WHERE EXISTS

(SELECT*

FROM SPJ

WHERE S.Sno=SPJ.SnO

AND SPJ.Pno=′P3′

B.SELECT DISTmCT Sname

FROMS

WHERE 0<

(SEIECT COUNT(*)

FROM SPJ

WHERE S.Sno=SPJ.Sno

AND SPJ.Pno=′P3′)

C.SELECT Sname

FROMS

WHERE EXISTS

(SELECT*

FROM SPJ

WHERE S.Sno=SPJ.Sno

AND SPJ.Pno=′P3′)

D.SELECT Sname

FROMS,SPJ

WHERES.Sno=SPJ.Sno

AND SPJ.Pno=′P3′)

GROUP BYSname

(20) A.Πsname(S)Dσ 0 Pno=′P3′(SPJ)

B.Πsname(SD∞σ Pno=′P3′(SPJ))

C.Πsname(S)-Πsname(σ Pno≠′P3′(Sσσ(SPJ)

D.Πsname(S)-Πsname((S∞σ Pno≠′P3′(SPJ)


正确答案:C,B
【解析】SQL语言是一种典型的关系型数据库语言,它包含数据描述语言DDL和数据操纵语言DML。其中,DDL包括数据定义和数据控制,DML包括数据查询和数据修改。SQL的核心是数据库查询语句,语句的一般格式是:
SELECT目标列
FROM基本表(或视图)
[WHERE条件表达式]
[GROUP BY列名1[HAVING内部函数表达式]]
[ORDER BY列名2[ASC或DESC]]
整个语句的含义是:根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句的目标列,选出元组中的分量形成结果表。如果有ORDER子句,则结果表要根据指定的列名2升序(ASC)或降序(DESC)排序。GROUP子句将结果按列名1分组,每个组产生结果表中的一个元组,通常在每组中作用库函数。分组的附加条件用HAVING短语给出,只有满足内部函数表达式的组才予输出。COUNT函数用来统计元组个数。DISTINCT用来去掉查询结果中重复的行。

第7题:

某数据库中有供应商关系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])}

第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题:

建立一个供应商、零件数据库。其中“供应商”表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)。 B.若要求供应商名不能取重复值,关系的主码是Sno。请将下面的SQL语句空缺部分补充完整。CREATE TABLE S(Sno CHAR(5), Sname CHAR (30) (37), Zip CHAR(8), City CHAR (20) (38); C.查询供应“红”色零件,价格低于500,且数量大于200的供应商代码、供应商名、零件号、价格及数量的SQL语句如下:SELECT Sno,Sname,Pno,Price,Qty FROM S,SP WHERE Pno IN (SELECT Pno FROM P WHERE (39)) AND (40);

A.1NF

B.2NF

C.3NF

D.BCNF


正确答案:B

第10题:

某数据库中有供应商关系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),

(7) (Sno,Pno),

(8) (Sno),

(9) (Pno));

查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式为:

A.Foreign Key

B.Primary Key

C.Foreign Key(Sno)References S

D.Foreign Key(Pno)PEFERENCES P


正确答案:B

更多相关问题