设计一的关系模式Invoice最高满足第几范式?为什么?设计一和设计二哪个更加合理?为什么? 根据设计二中关系模式,以下SQL语句是用于“建立2005年1月期间每张发票的发票号,交易日期,交易商品件数和交易总金额的视图”的不完整语句,请填补其中的空缺。

admin2009-02-15  33

问题 设计一的关系模式Invoice最高满足第几范式?为什么?设计一和设计二哪个更加合理?为什么?
根据设计二中关系模式,以下SQL语句是用于“建立2005年1月期间每张发票的发票号,交易日期,交易商品件数和交易总金额的视图”的不完整语句,请填补其中的空缺。
   CREATE VIEW Invoice_total(1)
    SELECT Invoice. Ino, Idate,(2),(3)
   FROM Invoice, Invoicedetail
   WHERE(4)AND
   Idate BETWEEN’2005-01-01’AND’2005-01-31’
   GROUP BY(5);

选项

答案(1)AS (2)SUM(amount) (3)SUM(unitprice*amount) (4)Invoice.Ino=invoice detail. Ino (5)Invoice.Ino,Idate或Invoice detail. Ino,Idate

解析 本题是要建立2005年1月期间每张发票的发票号,交易日期,交易商品件数和交易总金额的视图。
   首先建立视图的格式为CREATEVIEW<视图名>AS<视图定义>,因此(1)空的答案为AS。
   本查询是从Invoice和Invoice detail两个关系中查询,两关系的连接条件是两关系的Ino相等,因此(4)空的答案是Invoice.ino=Invoice detail.Ino。
   统计每张发票的信息需要按发票将数据分组,也就是按发票号Ino分组,但因为查询关系Invoice和lnvoice detail都有属性Ino。为了避免二义性,所以分组属性是Invoice.Ino或者是Invoice detail. Ino。因为在包含聚合运算的Select子句中,只有在Group By子句中出现的
属性才能在SELECT子句中以非聚合形式出现,而SELECT子句中有非聚合形式的属性Idate出现,所以(5)空的答案是Invoice.Ino,Idate或Invoicedetail.Ino,Idate。
   需要查询的是每张发票的交易商品件数和交易总金额。交易商品件数是发票商品数量的总和,因此(2)空的答案是SUM(amount)。交易总金额是每条交易商品明细中每条记录商品金额的总和,每条记录商品金额是unitprice*amount,因此(3)空的答案是SUM (unitprice*amount)。
转载请注明原文地址:https://kaotiyun.com/show/VwDZ777K
0

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