问题 单项选择题

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

CREATE TABLE SP (Sno CHAR(5),

Pno CHAR(6),

Status CHAR(8),

Qty NUMERIC(9),

(32) (Sno,Pno),

(33) (Sno),

(34) (pno);

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

t|(u|$)($V)($w)( (35) ^u[1]=v[1]^v[2]=w[1]^w[3]=’红’^ (36) )

(36)处填()。

A.t[1]=U[1]^T[2]=W[2]^T[3]=V[4]

B.t[1]=V[1]^T[2]=U[2]^T[3]=U[4]

C.t[1]=W[1]^T[2]=U[2]^T[3]=V[4]

D.t[1]=U[1]^T[2]=V[2]^T[3]=V[4]

答案

参考答案:D

解析:

[分析]: SQL空缺部分主要是对关系模式SP的完整性定义。根据题意要求,一个供应商可以供应多个零件,而一个零件可以由多个供应商供应,这样在供应商和零件之间存在多对多的联系,为此需要为该联系创建一个关系模式,该关系模式的主码由供应商代码Sno和零件号Pno构成。

供应商代码Sno为供应商关系的主码,在关系SP中的供应商代码Sno必须参照供应商关系S。

零件号Pno为零件关系的主码,在SP关系中的零件号Pno必须参照零件关系P。

完整的SQL语句如下:

CREATETABLESP(Sno CHAR(5),

Pno CHAR(6),

Status CHAR(8),

Qty NUMERIC(9),

PRIMARYKEY(Sno,Pno),

FOREIGNKEY(Sno),

FOREIGNKEY(Pno);

在题目所提及的元组演算表达式中,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。

由于试题要求查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式,结果集有供应商号、零件号和数量,分别对应关系S的第一个分量,关系SP的第二个分量和第四个分量。

多项选择题
单项选择题 A1型题