问答题
阅读下列某网上订书管理系统的说明和E-R图,根据要求回答问题1~问题3。
[说明]
某网上订书系统的E-R图(已消除了不必要的冗余)如图6-17所示(图中没有标出主码)。图中实体的说明如表6-10所示,相关属性说明如表6-11所示。
问答题
[问题1]
根据图6-17所示的E-R图中给出的词汇,按照“关系模式名(属性,属性,…)”的格式,将此E-R图转换为4个关系模式,并指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。
【正确答案】
【答案解析】[问题1] 题干已经指明转换为4个关系模式,根据E-R图和说明可以先得出Books、Customers和orders三个关系模式。由于一个客户可以填写多张购书单,而一张购书单仅仅属于一个客户,因此PlaceOrder不需要单独成为一个关系模式,而购书单和书之间是多对多的关系,所以OrderList需要单独一个关系模式。图 6-17所示的E-R图转换为4个关系模式及其主键、外键如下。 1.Customers(cid,cname,adderss,cardnum) 主键为:cid 2.Orders(ordemum,orderdate,cid) 主键为:ordemum;外键为:cid 3.Books(bid,title,author,qty_in_stock,year_publicshed,price) 主键为:bid 4.Orderlist(bid,ordernum,qty,ship_date) 主键为:(bid,ordemum),外键为bid、ordernum
问答题
[问题2]
创建Customers表时,cid使用INTEGER数据类型,cname使用CHAR(80)数据类型,address使用CHAR(200)数据类型,cardnum使用CHAR(16)数据类型并且要求此列值唯一。请在下列用于创建表Customers的SQL语句空缺处填入正确的内容。
【正确答案】
【答案解析】[问题2] 依题意分析,对于关系模式Customers的主键为cid,而cardnum列值唯一,因此(1)、(2)空缺处应分别在空缺处填入Primary Key cid和UNIQUE cardnum。
问答题
[问题3]
以下的SQL语句是书店用于查询“所有订购了bid为‘123-456’图书的用户订购其他图书的情况”的不完整语句,请在空缺处填入正确的内容。
【正确答案】
【答案解析】[问题3] 依题意分析,最内层的SQL语句查找订购了123-456的客户cid,ordernum只出现在Orderlist和order中,因此(5)空缺处应填写C.ordernum,(4)空缺处应该填写C。因为要求寻找这些用户还订购哪些其他书籍,所以(3)空缺处应填写in。