【说明】 某超市的销售业务由一个销售业务管理系统进行管理,该系统每完成一次交易都需要提供顾客发票,其格式如表1-1所示。 对于这样一个销售业务管理系统,分别给出了以下两种关系数据库的设计(下划线表示主关键字) 设计一: 顾客

admin2009-02-15  40

问题 【说明】
   某超市的销售业务由一个销售业务管理系统进行管理,该系统每完成一次交易都需要提供顾客发票,其格式如表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)

选项

答案设计一中Invoice最高满足第一范式。 根据题意可得出以下函数依赖: Ino→Sno,Cno,Idate 而关系Invoice的主码是Ino和Mno。非主属性Sno、Cno和Idate并非完全依赖于主码,因此关系Invoice不满足第二范式,最高满足第一范式。 设计二更加合理。因为设计二解决了设计一中由于非主属性不完全依赖于主码而造成的数据冗余等问题。

解析 关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到第几范式来评价规范化的程度。
   1.1NF(第一范式):若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。
   2.2NF(第二范式):若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式属于第二范式。当1NF消除了非主属性对码的部分函数依赖,则称为2NF。
   3.3NF(第三范式):若关系模式R(U,F)中若不存在这样的码X,属性组Y及非主属性 Z(ZY)使得X→Y,(Y→X)Y→Z成立,则关系模式属于3NF。即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
   4.BCNF(巴克斯范式):若关系模式R∈lNF,若X→Y且YX时,X必含有码,则关系模式属于BCNF。即当3NF消除了主属性对码的部分和传递依赖,则称为BCNF。
   5.4NF(第四范式):关系模式ReINF,若对于R的每个非平凡多值依赖X→→Y且 YX时,X必含有码,则关系模式属于4NF。4NF时限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。
   设计一中根据题意可得出以下函数依赖:
   Ino→Sno,Cno,Idate
   而关系Invoice的主码是Ino和Milo。非主属性Sno、Cno和Idate并非完全依赖于主码,因此关系Invoice不满足第二范式,最高满足第一范式。
   关系Invoice的设计的不合理在于该关系中将发票的单值属性(发票号码Lno,交易日期 Idate,顾客代码Cno,收银员代码Sno)和多值属性(商品代码Mno,单价unitprice,数量 amount)混合在一个关系中,造成关系Invoice的冗余异常、修改异常和删除异常。而设计二则将设计一中关系Invoice分解,使得发票的单值属性和多值属性分开,避免了异常。因此,设计二明显比设计一要好。
转载请注明原文地址:https://jikaoti.com/ti/EPi7FFFM
0

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