某汽车维修站拟开发一套小型汽车维修管理系统,对车辆的维修情况进行管理。
1.对于新客户及车辆,汽车维修管理系统首先登记客户信息,包括:客户编号、客户名称、客户性质(个人、单位)、折扣率、联系人、联系电话等信息;还要记录客户的车辆信息,包括:车牌号、车型、颜色等信息。一个客户至少有一台车。客户及车辆信息如表2-1所示。
2.记录维修车辆的故障信息。包括:维修类型(普通、加急)、作业分类(大、中、小修)、结算方式(自付、三包、索赔)等信息。维修厂的员工分为:维修员和业务员。车辆维修首先委托给业务员。业务员对车辆进行检查和故障分析后,与客户磋商,确定故障现象,生成维修委托书。如表2-2所示。
3.维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择并确定一个或多个具体维修项目,安排相关的维修工及工时,生成维修派工单。维修派工单如表2-3所示。
4.客户车辆在车间修理完毕后,根据维修项目单价和维修派工单中的工时计算车辆此次维修的总费用,记录在委托书中。
根据需求阶段收集的信息,设计的实体联系图(图2-1)和关系模式(不完整)如下所示。图2-1中业务员和维修工是员工的子实体。
【概念结构设计】
【逻辑结构设计】
客户((5),折扣率,联系人,联系电话)
车辆(车牌号,客户编号,车型,颜色,车辆类别)
委托书((6),维修类型,作业分类,结算方式,进厂时间,
预计完工时间,登记日期,故障描述,总费用)
维修项目(维修项目编号,维修项目,单价)
派工单((7),工时)
员工((8),工种,员工类型,级别)
根据问题描述,写出客户、委托书和派工单这三个关系的主键。
参考答案:
客户:客户编号
委托:委委托书编号
派工单:委托书编号,维修项目编号,维修工编号
解析:
[分析]:
本题考查数据库设计,属于比较传统的题目,考查点也与往年类似。
问题1、问题2考查的是数据库的概念结构设计,题目要求补充完整实体联系图中的联系和联系的类型。
根据题目的需求描述和表2-1中的数据可知,一个客户至少拥有一台车,每台车辆有一个对应的客户。所以,客户实体和车辆实体之间存在“拥有”联系,联系的类型为一对多(1:*)。
根据题目的需求描述和表2-2中的数据可知,一份委托书由一个业务员负责接受委托,一个业务员可以负责多份委托书。所以,业务员实体和委托书实体之间存在“委托”联系,联系的类型为一对多(1:*)。
根据题目的需求描述和表2-3中的数据可知,一份委托书可以对应多个维修项目和维修员工,一个维修项目可能涉及多个维修工,一个维修工可以参与多个维修项目。因此,维修派工单的信息涉及三个实体,是由三个实体相互联系而形成的。所以,委托书实体和维修工实体之间存在“派工”联系,联系的类型为一对多(1:*),维修项目实体和维修工实体之间存在联系“派工”,联系的类型为多对多(*:*)。
问题3考查的是数据库的逻辑结构设计,题目要求补充完整各关系模式,并给出各关系模式的主键。
根据实体联系图和表2-1中的数据,对于“客户”关系模式需补充属性:客户编号,客户名称和客户性质。
根据实体联系图和表2-1中的数据,对于“车辆”关系模式,由于车辆实体与客户实体有联系,需记录对应的客户信息,并且车辆有自己的属性——车牌号,因此,“车辆”关系模式需补充属性:车牌号,客户编号。
根据实体联系图和表2-2中的数据,对于“委托书”关系模式,由于车辆实体与委托书实体和业务员实体都有联系,需记录对应的车辆和业务员信息,并且委托书有自己的属性——委托书编号,因此,“委托书”关系模式需补充属性;委托书编号,车牌号和业务员编号。
根据实体联系图和表2-3中的数据,“派工单”关系模式记录的是委托书、维修项目和维修工三个实体之间的联系,因此,“派工单”关系模式需补充属性:委托书编号,维修项目编号和维修员编号。
根据实体联系图和表2-1中的数据,对于“员工”关系模式需补充属性:员工编号,员工姓名。
问题4指定给定关系模式的主键,显然,管理客户数据时,应为每位客户设置唯一的编码,因此客户关系模式的主键为“客户编号”。类似的,委托书关系模式的主键为“委托书编号”。根据E-R图中派工联系与相关实体的关系,派工单关系模式的主键为“委托书编号,维修项目编号和维修员编号”。