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

admin2019-03-11  25

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

选项 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的第二个分量和第四个分量。
转载请注明原文地址:https://kaotiyun.com/show/BrRZ777K
0

最新回复(0)