图书馆管理系统的数据库设计是软件设计师考试(软考中级)下午题的高频考点,核心考察E-R模型(实体-联系模型)的构建、E-R图向关系模式的转换、主键与外键的识别三大能力。该考点要求考生能够从自然语言描述的业务需求中抽象出实体、属性与联系,准确判断联系的映射基数(1:1、1:n、m:n),并遵循转换规则生成符合第三范式(3NF)的关系模式。
1. E-R模型补充说明
[图书管理系统E-R图]
图1 补充联系后的图书馆管理系统实体-联系图
该E-R图包含4个核心实体:管理员、书目、图书、读者,以及5个核心联系:
管理员与书目:编目登记(1:m):1名管理员可以登记多个书目,1个书目由1名管理员负责编目
管理员与图书:编号入库(1:m):1名管理员可以入库多本图书,1本图书由1名管理员负责入库
书目与图书:有(1:n):1个书目对应多本物理图书,1本物理图书属于1个书目
书目与读者:预约(m:n):1个书目可以被多名读者预约,1名读者可以预约多个书目
读者与图书:借还(m:n):1名读者可以借阅多本图书,1本图书可以被多名读者在不同时间借阅
管理员与读者:借书证管理(m:n):管理员负责读者借书证的注册、注销和挂失操作
2. 逻辑结构设计核心问题
教程中给出的初始关系模式如下,需要补充空缺字段并识别主键、外键:
管理员(工号,姓名,权限)
读者(姓名,年龄,工作单位,借书证号,电话,E-mail)
书目(ISBN号,书名,作者,出版商,出版年月,册数,工号)
图书(图书ID,ISBN号,存放位置,状态,工号)
借还记录((a),借出时间,应还时间,归还时间)
预约登记((b),预约时间,预约期限,图书ID)
借书证管理(借书证号,使用状态,开始时间,结束时间,工号)
三、核心试题与答案解析
试题1:关系模式空缺字段补充
请补充上述关系模式中借还记录(a)和预约登记(b)处的空缺字段。
试题2:主键与外键识别
请指出读者、书目关系模式的主键,以及图书、借还记录和预约登记关系模式的主键和外键。
答案:
解析:
主键需要唯一标识关系中的每一条记录:对于m:n联系对应的关系模式,仅用两端实体的主键可能无法唯一标识(例如同一读者同一本图书可能多次借阅),因此需要增加时间属性共同作为主键。
外键用于建立关系之间的关联,引用其他关系的主键,保证数据的参照完整性。
试题3:E-R模型拓展设计
若系统需要增加“逾期罚金”功能:读者逾期还书时按逾期天数计算罚金,读者可缴纳罚金,罚金记录需包含罚金ID、读者、对应借还记录、金额、缴纳状态、缴纳时间。请补充该需求对应的实体与联系,并给出对应的关系模式。
四、拓展练习题
练习题1(选择题)
在E-R模型中,图书和读者之间的“借阅”联系类型是?( )
A. 1:1 B. 1:n C. m:n D. n:1
练习题2(简答题)
简述E-R模型向关系模式转换的基本规则。
练习题3(综合设计题)
某高校图书馆需增加“图书分类”功能:每本图书属于一个分类,分类包含分类ID、分类名称、上级分类ID。请修改原E-R模型,并给出新增的关系模式,指出主键和外键。
五、考点总结
图书馆管理系统数据库设计的核心考点可归纳为“一图二判三转换”:
一图:准确绘制E-R图,识别所有实体、属性和联系,标注联系类型。
二判:判断联系的映射基数(1:1/1:n/m:n),判断每个关系模式的主键和外键。
三转换:遵循转换规则将E-R图转换为符合范式要求的关系模式,注意m:n联系必须单独建表。
该类题目在软考下午题中通常占15分左右,掌握上述知识点即可实现高分突破。备考时建议结合历年真题强化练习,重点关注主键选择、外键关联和多对多联系的处理三个易错点。