2016年计算机软件设计师模拟试题3

时间:2016-06-02 15:13:00   来源:无忧考网     [字体: ]

  ●试题三

  阅读下列说明,回答问题1~问题3,将解答填入答题纸的对应栏内。

  【说明】

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

  对于这样一个销售业务管理系统,分别给出了以下两种关系数据库的设计(下划线表示主关键字)

  设计一:

  顾客Customer(顾客代码Cno,姓名name,住址address,联系电话phone)

  收银员Salesman(收银员代码Sno,身份证号idno,姓名name,住址address,联系电话phone)

  商品Merchandise(商品代码Mno,商品名称Mname,价格price)

  发票Invoice(发票号码Ino,交易日期Idate,顾客代码Cno,收银员代码Sno,商品代码Mno,单价unitprice,数量amount)

  设计二:

  顾客Customer(顾客代码Cno,姓名name,住址address,联系电话phone)

  收银员Salesman(收银员代码Sno,身份证号idno,姓名name,住址address,联系电话phone)

  商品Merchandise(商品代码Mno,商品名称Mname,价格price)

  发票Ivoice(发票号码Ino,交易日期Idate,顾客代码Cno,收银员代码Sno)

  发票明细Invoicedetail(发票号码Ino,商品代码Mno,单价unitprice,数量amount)

  【问题1】

  设计一的关系模式Invoice满足第几范式?为什么?设计一和设计二哪个更加合理?为什么?

  【问题2】

  根据设计二中关系模式,以下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′

  GROUPBY (5) ;

  【问题3】

  根据设计二中关系模式,以下SQL语句是用于"查询从未售出的商品信息"的不完整语句,请填补其中的空缺。

  SELECT Mno,Mname,price

  FROM Merchandise (1)

  WHERE (2)

  (SELECT (3)

  FROM Invoicedetail

  WHERE A.Mno=Invoicedetail.Mno);

  【问题4】

  设计二中关系Merchandise中由属性price表示商品价格,关系Invoicedetail中的属性unitprice也表示商品价格。两个是否有必要同时存在?为什么?