【实验报告概述】
本次实验是关于数据库系统课程的第四次实验,主要目标是设计并实现一个简单的图书馆管理数据库。实验的目的是让学生掌握数据库的设计方法,理解存储过程和触发器的概念,并通过MS SQL Server来实际操作这些概念。实验内容涵盖了读者管理、图书管理以及借阅管理等核心功能。
【数据库设计】
为了实现这个图书馆管理系统,我们创建了三个关键的表:图书信息表、读者信息表和借阅信息表。
1. **图书信息表**:用于存储图书的相关信息。包含的字段有:
- 书号(varchar 10):作为书的唯一标识,为主键,不允许为空。
- 书名(varchar 15):记录书的名字,不允许为空。
- 作者(varchar 15):记录书籍作者,允许为空。
- 状态(bit 1):表示书籍是否在图书馆内可借,0表示不在库,1表示在库。
2. **读者信息表**:用于存储读者的个人信息。字段包括:
- 借书证号(varchar 10):作为读者的唯一标识,为主键,不允许为空。
- 姓名(varchar 15):记录读者的名字,不允许为空。
- 住址(varchar 20):记录读者的地址,允许为空。
3. **借阅信息表**:记录读者的借阅情况。字段包括:
- 编号(int 4):借阅记录的唯一标识,为主键,自动增长。
- 书号(varchar 10):关联图书信息表的书号,不允许为空。
- 借书证号(varchar 10):关联读者信息表的借书证号,不允许为空。
- 借书时间(datetime 8):记录借书的具体日期,不允许为空。
- 应还时间(datetime 8):计算出的预期归还日期,不允许为空。
在设计过程中,我们简化了实际情况,假设每本书只有一本,每个读者的借阅期限为一个月,且没有借阅权限的限制。
【ER图】
图4-1显示了这三张表之间的关系,可能是一个实体关系模型,用图形化方式表示了读者、图书和借阅之间的关联。例如,借阅信息表通过书号和借书证号与图书信息表和读者信息表建立了联系,表示了一对多的关系,即一本图书可以被多个读者借阅,而一个读者可以有多条借阅记录。
【技术应用】
实验中涉及到MS SQL Server的使用,这是一个强大的关系型数据库管理系统,支持存储过程和触发器。存储过程是一组预编译的SQL语句,可以提高执行效率,封装复杂的业务逻辑,方便管理和调用。触发器则是在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行的代码,用于实现业务规则的约束或扩展功能。
【总结】
这个实验不仅让参与者了解了数据库的基本设计原则,如主键的设置和表间关系的建立,同时也实践了数据库操作,如使用存储过程和触发器。这对于理解数据库在实际应用中的工作原理和增强数据库管理能力具有重要意义。此外,实验也强调了简化问题的重要性,使得系统设计更为简洁易懂。