根据E-R图中给出的词汇,按照“有关模式名(属性,属性,...)”的格式,将此E-R图转换为4个关系模式,并指出每个关系模式中的主键和外键,其中模式名根据需要取实体名或联系名。 如下的SQL语句是书店用于查询“所有订购了bid为‘123-456’图书的用

admin2009-05-15  43

问题 根据E-R图中给出的词汇,按照“有关模式名(属性,属性,...)”的格式,将此E-R图转换为4个关系模式,并指出每个关系模式中的主键和外键,其中模式名根据需要取实体名或联系名。
如下的SQL语句是书店用于查询“所有订购了bid为‘123-456’图书的用户订购其他图书的情况”的不完整语句,请在空缺处填入正确的内容。
   Select bid From orderlist A
        Where not exists (Select * from Orders B
            where A.ordemum=B.ordemum and B.cid  (3)  
                (Select cid from orderlist C,orders D
                where  (4).bid=’123-456’
                and  (5 =D.ordemum))

选项

答案(3) in (4) C (5) C.Ordernum

解析 问题1考查E-R图与关系模式之间的转换。按照E-R向关系模式转换的原则,Books、Orders及Customers为3个关系模式,题中要求转换为4个模式,E-R图中有两个联系,显然不能都转换为关系。考虑到一个客户可以填写多张购书单,而一张购书单仅输入一个客户,所以联系 PlaceOrder不必单独作为一个关系模式,可将其合并到Customers中;而购书单和书(指种)之间是多对多联系,因此联系OrderList需要单独作为一个关系。因此,4个关系模式及其主键、外键如下:
   Customers(cid,cname,address,camum),主键为cid。
   Orders(ordemum,orderdate,cid),主键为ordernum,外键为cid。
   Books(bid,title,author,qty_in_stock,year_punlished,price),主键为bid。
   OrderList(bid,ordernum,qty,ship_date),主键为(bid,ordernum),外键为bid、ordemum。
   问题2是用SQL创建关系,需要注意完整性约束。Customers关系中,cid是主键,因此空(1)应填PRIMARY KEY(cid)。cardnum列要求唯一,因此空(2)应填UNIQUE(cardnum)。
   问题3是填充SQL查询语句。根据题意分析,最内层SQL语句是查找订购了bid为“123-456”的客户cid,而ordernum只出现在Orderlist和Orders中,因此易得空(5)应填 C.ordernum;bid是Orderlist关系的属性,故空(4)应填C。该SQL语句是为了查询这些用户还订购了哪些其他书,所以空(3)应填In。
转载请注明原文地址:https://kaotiyun.com/show/35xZ777K
0

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