某数据库中有供应商关系S和零件关系P,其中,供应商关系模式s(Sno,Sname, SZip,City)中的属性分别表示:供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight,City)中的属性分别表示:

admin2006-03-15  31

问题 某数据库中有供应商关系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])}
转载请注明原文地址:https://kaotiyun.com/show/VExZ777K
0

相关试题推荐
最新回复(0)