问题 多项选择题

【说明】
某超市的销售业务由一个销售业务管理系统进行管理,该系统每完成一次交易都需要提供顾客发票,其格式如表1-1所示。


对于这样一个销售业务管理系统,分别给出了以下两种关系数据库的设计(下划线表示主关键字)
设计一:
顾客Customer(顾客代码Cno,姓名name,住址address,联系电话phone)
收银员Salesman(收银员代码Sno,身份证号idno,姓名flame,住址address,联系电话phone)
商品Merchandise(商品代码Milo,商品名称Mname,价格price)
发票Invoice(发票号码Ino,交易日期Idate,顾客代码Cno,收银员代码Sno,商品代码Mno,单价unitprice,数量amount)
设计二:
顾客Customer(顾客代码Cno,姓名name,住址address,联系电话phone)
收银员Salesman(收银员代码Sno,身份证号idno,姓名name,住址address,联系电话吵one)
商品Merchandise(商品代码Mno,商品名称mllame,价格pnce)
发票Invoice(发票号码Ino,交易日期Idate,顾客代码Cno,收银员代码Sno)
发票明细Invoicedetail(发票号码Ino,商品代码Uno,单价unitprice,数量amount)
1. 【问题1】
设计一的关系模式Invoice最高满足第几范式为什么设计一和设计二哪个更加合理为什么

答案

参考答案:AS
(B)SUM(amount)
(C)SUM(unitprice*amount)
(D)Invoice.Ino=invoice detail. Ino
(E)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)。

单项选择题
多项选择题