阅读以下说明,回答问题1~4。[说明] 设某商业集团为仓库存储商品设计了三个基本表: 仓库STORE(S#,SNAME,SADDR),其属性是仓库编号、仓库名称和地址。 存储SG(S#,C#,QUANTITY),其属性是仓库编号、商品编号和数量。 商品GOODS(C#,GNAME,PRICE),其属性是商品编号、商品名称和单价。 现检索仓库名称为“莘庄”的仓库里存储的商品的编号和名称。
问答题 试写出相应的关系代数表达式、元组表达式、关系逻辑规则和SELECT语句。
【正确答案】正确答案:关系代数表达式为: πG#,GNAME(σSNAME='莘庄'(STORE SG GOODS)) 元组表达式为: { t |((u)((v)((w)(COODS(u)∧SC(v)∧ STOBE(w) ∧u[1]=v[2]∧[1]:w[1]∧w[2] =莘庄'∧'t[1]=u[1]∧t[2]=u[2])} 关系逻辑规则如下: W(x,y)(GOODS(x,y,a)∧SG(b,x,c)∧ STORE(b,莘庄,'d) SELECT语句为: SELECT A.G#,GNAME FROM GOODS AS A.SG AS B,STORE AS C WHERE A.C#:B.C# AND B.S#=C.S# AND SNAME='莘庄':
【答案解析】
问答题 在基本表中,检索存储全部种类商品的仓库的编号及名称。试写出相应的关系代数表达式、元组表达式、关系逻辑规则和SELECT语句。
【正确答案】正确答案:关系代数表达式为: πS#.SNAME(STORE(πS#,G#(SG)÷πG#(GOODS))) 元组表达式为: {t}((u)((v)((w)(STORE(u)∧GOODS(v)∧SG(w)∧w[1] =u[1)∧w[2]=v[1]∧t[1]=u[1]∧t [2]=u[2])} 关系逻辑规则如下: W(x,y)← STORE(x,y,a) ∧┑ GOODS(b,c, d) ∧┒ `SG(x,b,e) SELECT 语句为: SELECT S#, SNAME FROM STORE WHERE NOT EXISTS ( SELECT * FROM GOODS WHERE NOT EXISTS ( SELECT * FROM SG WHERE SG. S# = STORE. S# AND SG. G# = GOODS. G#) );
【答案解析】
问答题 在基本表中,检索每个仓库存储商品的总价值。试写出相应的SELECT语句。要求显示(S#,SUM_VALUE),其属性为仓库编号及该库存储商品的总价值。
【正确答案】正确答案:SELECT 语句为: SELECT S#, SUM ( QUANTITY * PRICE) AS SUM_VALUE FROM SG,GOODS WHERE SG. G# = GOODS. G# GROUP BY S#;
【答案解析】
问答题 在基本表中,写一个断言,规定每个仓库存储商品的单价为1万元以上的商品种类最多为20种。
【正确答案】正确答案:CREATE ASSERTION ASSE6 CHECK (20 > = ALL ( SELECT COUNT( SG. G#) FROM SG, GOODS WHERE SG. G# = GOODS. G# AND PRICE > 10000 GROUP BY S#));
【答案解析】