试题一(15分)
某市为了规范疫苗接种工作,提升效率,并为抗击疫情提供疫苗接种数据支撑,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。
需求描述
(1)记录疫苗供应商的信息,包括供应商名称、地址和一个电话。
(2)记录接种医院的信息,包括医院名称、地址和一个电话。
(3)记录被接种者个人信息,包括姓名、身份证号和一个电话。
(4)记录接种者的疫苗接种信息,包括接种医院信息、被接种者信息、疫苗供应商名称和接种日期。为了提高免疫力,接种者可能需要进行多次疫苗接种(每天最多接种一次),但每次都可以在全市任意一家医院进行疫苗接种。
概念模型设计
根据需求阶段收集的信息,设计的实体联系图(不完整)如图1-1所示。
逻辑结构设计
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
- 供应商(供应商名称,地址,电话)医院(医院名称,地址,电话)
- 供货(供应商名称,(a),供货内容)被接种者(姓名,身份证号,电话)
- 接种(被接种者身份证号,(b),医院名称,供应商名称)
问题1(4分)
根据问题描述,补充图1-1的实体联系图(不增加新的实体)。
问题2(4分)
补充逻辑结构设计结果中的(a)、(b)两处空缺,并标注主键和外键完整性约束。
问题3(7分)
若医院还兼有核酸检测的业务,检测者可能需要进行多次核酸检测(每天最多检测1次),但每次都可以在全市任意一家医院进行检测。
请在图1-1中增加"被检测者"实体和相应的属性、医院和被检测者之间的"检测"联系和必要的属性,并给出新增加的关系模式。
"被检测者"实体包括姓名、身份证号、住址和一个电话。"检测"联系需要包括检测日期和检测结果等。
试题二(共15分)
某卡丁车场地为方便车手线上查询自己的圈速成绩,设计了相应的关系模型。模型中有三个表:
- 冲线记录表(序列号,日期,冲线时刻,圈速,车号,组别,手机号,车手姓名);
- 赛车表(车号,组别,车型);
- 车手表(车手姓名,手机号,年龄,性别)。
其中序列号唯一确定一条冲线记录,车型和组别可由车号确定,车手手机号唯一,车手姓名可重复。
问题1(3分)
冲线记录表中是否含有数据冗余?如果存在冗余,请列出冗余属性。
问题2(6分)
请分别给出冲线记录表、赛车表和车手表的主码和外码。
问题3(6分)
题干描述的冲线记录表是否满足3NF?如果不满足,请给出导致不满足3NF的函数依赖关系,并用50字以内的文字简要说明解决方案。
2022年上半年数据库系统工程师下午真题及答案解析
试题一(15分)
问题1(4分)