您现在的位置:希赛网>云阅读>软件设计师考试试题分类精解(第3版)>例题1第20章:数据库设计作者:希赛教育软考学院来源:希赛网2014年02月11日例题120.2试题精解例题1(2003年试题2)阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】甲公司的经营销售业务目前是手工处理的,随着业务量的增长,准备采用关系数据库对销售信息进行管理。经销业务的手工处理主要涉及3种表:订单、客户表和产品表,如表20-1到表20-3所示。表20-1订单表20-2客户表表20-3产品表为了用计算机管理销售信息,甲公司提出数据库应达到以下要求:产品的单价发生变化时,应及时修改产品表中的单价数据;客户购货计价采用订货时的单价;订货后,即使单价发生变化,计算用的单价也不变。在设计数据库时,经销部的王先生建立了以下数据模型,如图20-1所示。图20-1数据模型图其中,方框表示实体,单向箭头表示1对多的联系,双向箭头表示多对多的联系。由于上述模型对建立关系数据库是不合适的,因此王先生又修改了数据模型,并设计了如下几个关系(带下画线的数据项是关键项,最后一个关系中没有指出关键项):Customer(CustomerNo,CustomerName,Address,Phone)Product(ProductNo,ProductName,UnitPrice)Order(OrderNo,CustomerNo,Date)OrderDetail(OrderNo,ProductNo,Quantity)【问题1】请按【说明】中的要求画出修改后的数据模型。【问题2】(1)【说明】中的几个关系仍无法实现甲公司的要求,为什么?(2)需要在哪个关系中增加什么数据项才能实现这个要求?【问题3】写出OrderDetail中的关键项。【问题4】以下SQL语句用于查询没有订购产品代码为"1K10"的产品的所有客户名。请填补其中的空缺。SELECTCustomerNameFROMCustomer①WHERE②(SELECT*FROMOrderDetailB,OrderCWHEREB.ProductNo=C.ProductNoANDB.ProductNo='1KIO'ANDC.CustomerNo=A.CustomerNo)试题分析【问题1】实体与属性之间一般遵循两条准则。一是"属性"不能再具有需要描述的性质。"属性"必须是不可分的数据项,不能包含其他属性;二是"属性"不能与其他实体具有联系,即E-R图所表示的联系是实体之间的联系。所以根据第二条准则,订单的情况不能作为订单的属性处理而应该上升为实体。同时由于实体Order和实体Product为多对多的关系,所以应该拆分一个名为OrderDetail的关系模式。其中Order和OrderDetail是一对多的关系,Product和OrderDetail是一对多的关系。【问题2】(1)因为只有P...