本实验报告基于顾道长生的CSDN博客中关于数据库系统的知识,详细记录了图书管理系统的数据库设计与实现过程。
一、实验目的
通过设计并实现一个图书管理系统,掌握数据库设计的基本原则,包括概念结构设计、逻辑结构设计和物理结构设计。同时,熟悉SQL语言的应用,实现数据的增删改查操作。
二、实验环境
1. 数据库管理系统:MySQL 8.0
2. 开发工具:Navicat for MySQL
3. 参考资源:顾道长生的CSDN博客中关于数据库系统的文章
三、数据库设计
1. 概念结构设计
采用E-R图描述图书管理系统的实体及关系。主要实体包括:
- 图书(Book):属性包括图书编号、书名、作者、出版社、出版日期、库存数量等。
- 读者(Reader):属性包括读者编号、姓名、性别、联系方式、注册日期等。
- 借阅记录(BorrowRecord):属性包括记录编号、图书编号、读者编号、借阅日期、应还日期、实际归还日期等。
2. 逻辑结构设计
将E-R图转换为关系模式:
- 图书表(book):book_id(主键)、title、author、publisher、publish_date、stock_quantity。
- 读者表(reader):reader_id(主键)、name、gender、contact、register_date。
- 借阅记录表(borrow_record):record_id(主键)、book_id(外键)、reader_id(外键)、borrow_date、due_date、return_date。
3. 物理结构设计
在MySQL中创建数据库library_management,并建立上述表格,设置适当的数据类型和约束。例如,图书编号和读者编号采用自增整数,借阅日期和应还日期采用日期类型。
四、实验步骤
1. 创建数据库和表格:使用SQL语句创建数据库及上述三个表格。
2. 插入测试数据:向各表格插入示例数据,例如添加5本图书和3名读者的信息。
3. 实现基本功能:通过SQL语句实现图书查询、借阅操作、归还操作和逾期检查。例如,查询某本图书的库存,或统计某读者的借阅历史。
4. 优化与测试:检查数据库性能,确保查询效率,并处理异常情况,如重复借阅或库存不足。
五、实验结果
成功实现了图书管理系统的数据库,能够支持以下操作:
- 图书信息的添加、修改和删除。
- 读者信息的注册和管理。
- 借阅和归还流程的自动化记录。
- 生成借阅统计报告,如热门图书或逾期读者列表。
六、实验总结
通过本次实验,加深了对数据库系统理论的理解,特别是E-R模型的设计和SQL语言的实践应用。参考顾道长生的CSDN博客,帮助解决了在设计中遇到的常见问题,如外键约束的设置和日期处理。未来可扩展功能,如集成前端界面或添加图书推荐模块。
参考文献
- 顾道长生的CSDN博客:数据库系统相关文章。
- 数据库系统概论(第五版),王珊、萨师煊著。