# 图书馆管理系统数据库设计与实现 **Repository Path**: liyouda/SQL ## Basic Information - **Project Name**: 图书馆管理系统数据库设计与实现 - **Description**: 利用sql语言自主设计一个图书馆管理系统数据库 - **Primary Language**: SQL - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 1 - **Created**: 2021-06-05 - **Last Updated**: 2024-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图书馆管理系统数据库设计与实现 #### 1.1本设计的背景和意义 本图书管理系统是为了让图书管理员能够通过数据库更加方便快捷地更新、管理图书数据,并且能让学生查询目标图书存量、摆放位置等借阅信息,从而节约时间、提高效率。 对于图书管理员:可以帮助图书管理员更加方便地根据学生学号登记学生借还图书情况,以及更新图书买入、损耗以及录入买入图书的数量、作者、价格等相关数据。 对于学生:可以方便学生查询图书摆放位置,图书馆内该图书存量,以及图书管理员的联系方式、分工等信息以方便咨询相关问题。 #### 1.2数据库设计开发工具 本设计采用的数据开发工具为SQL Server 2008 #### 2.1需求概述 帮助图书管理员记录借阅图书的学生学号、借还书日期,并且定期录入购入图书的信息、以及图书损耗数据。 学生登录系统查询目标图书库存量以及摆放位置,或者该作者的其它作品、以及相关书籍,还可以查询图书管理员的联系方式、工作内容等数据,方便咨询相关问题。 #### 2.2功能需求 1、对学生的基本信息进行添加、删除、修改、查询等。 2、对图书管理员的基本信息进行添加、删除、修改、查询等。 3、对买入的书籍的信息进行添加、删除、修改、查询等。 4、对图书借阅信息进行添加、删除、修改、查询等。 5、对图书存放信息进行添加、删除、修改、查询等。 #### 2.3数据需求 1、学生需要的信息: 学号、姓名、性别、专业、学院、年龄、电话号码。 2、图书管理员需要的信息: 编号、姓名、性别、年龄、教龄、工作内容、电话号码。 3、买入的书籍需要的信息: 编号、书名、作者、价格、种类、买入数量。 4、图书借阅信息需要的信息: 借阅学生学号、借阅图书编号、借阅日期、还书日期。 5、图书存放信息需要的信息: 图书编号、图书在馆数量、图书摆放楼层。 #### 3概念结构设计 ![完整E-R图](https://images.gitee.com/uploads/images/2021/0605/162419_24f9f43d_8897852.png "完整E-R图.png") 带下划线的为主码: 学生信息:(学号、姓名、性别、专业、学院、年龄、电话号码) 图书管理员信息:(编号、姓名、性别、年龄、教龄、工作内容、电话号码) 买入的书籍信息:(编号、书名、作者、价格、种类、买入数量) 图书借阅信息:(借阅学生学号、借阅图书编号、借阅日期、还书日期) 图书存放信息:(图书编号、图书在馆数量、图书摆放楼层) #### 4逻辑结构设计 ##### 4.1建立关系模式 根据概念结构设计,可转换得到如下关系模式: 表1:学生信息表 列名 数据类型 允许为空 主键 外键 CHECK约束 备注 学号 Char(10) 否 是 否 无 无 姓名 Char(10) 否 否 否 无 无 性别 Char(2) 否 否 否 无 无 专业 Char(30) 否 否 否 无 无 学院 Char(30) 否 否 否 无 无 年龄 TINYINT 否 否 否 大于16小于25 无 电话号码 Char(15) 是 否 否 无 无 表2:图书管理员信息表 列名 数据类型 允许为空 主键 外键 CHECK约束 备注 编号 Char(10) 否 是 否 无 无 姓名 Char(10) 否 否 否 无 无 性别 Char(2) 否 否 否 无 无 年龄 TINYINT 否 否 否 大于20小于60 无 教龄 TINYINT 是 否 否 无 无 工作内容 Char(30) 否 否 否 无 无 电话号码 Char(15) 否 否 否 无 无 表3:买入书籍信息表 列名 数据类型 允许为空 主键 外键 CHECK约束 备注 编号 Char(10) 否 是 否 无 无 书名 Char(20) 否 否 否 无 无 作者 Char(10) 否 否 否 无 无 价格 TINYINT 否 否 否 小于100 无 种类 Char(10) 否 否 否 无 无 买入数量 TINYINT 否 否 否 小于5 无 表4:图书借阅信息表 列名 数据类型 允许为空 主键 外键 CHECK约束 备注 借阅学生学号 Char(10) 否 是 是 无 无 借阅图书编号 Char(10) 否 是 是 无 无 借阅日期 Char(10) 否 否 否 无 无 还书日期 Char(10) 是 否 否 无 无 表5:图书存放信息表 列名 数据类型 允许为空 主键 外键 CHECK约束 备注 图书编号 Char(10) 否 是 是 无 无 图书在馆数量 TINYINT 否 否 否 大于0小于5 无 图书摆放楼层 TINYINT 否 否 否 大于等于1小于等于6 无 #### 5数据库实现 ##### 5.1建立数据库 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162841_d16311ce_8897852.png "屏幕截图.png") ##### 5.2数据表创建 学生信息表: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162853_f88f59fe_8897852.png "屏幕截图.png") 图书管理员信息表: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162912_83d2f670_8897852.png "屏幕截图.png") 买入书籍信息表: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162920_dd14629c_8897852.png "屏幕截图.png") 图书借阅信息表: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162924_60866eff_8897852.png "屏幕截图.png") 图书存放信息表: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162932_535d3e0e_8897852.png "屏幕截图.png") ##### 5.3数据视图创建 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162937_cf1b7df6_8897852.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162942_8f1e3903_8897852.png "屏幕截图.png") ##### 5.4存储过程创建 在图书借阅信息表上创建名为“还书信息录入”的存储过程,用于在学生还书后录入还书日期。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162950_a3aeba14_8897852.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/162954_2961ebb9_8897852.png "屏幕截图.png") ##### 5.5数据触发器创建 在买入书籍信息表上创建名为“购入书本价格检测”的触发器,可以将价格大于40的书本价格修改为40. ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163000_b96dc581_8897852.png "屏幕截图.png") #### 6数据库应用实现 ##### 6.1单表查询实现 查询“科幻”类所有书籍信息 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163014_407d306d_8897852.png "屏幕截图.png") 查询作者为“梁衡”的所有图书信息 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163018_48fc571f_8897852.png "屏幕截图.png") 查询负责“登记图书归还情况”的图书管理员的信息 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163024_4dd4ce35_8897852.png "屏幕截图.png") 查询教龄大于五年的所有图书管理员的信息 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163029_37a46264_8897852.png "屏幕截图.png") ##### 6.2多表查询实现 从买入书籍信息表、图书存放信息表两表中检索出书籍的编号、书名、作者、价格、种类、买入数量、图书在馆数量、图书摆放楼层信息 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163035_449bd096_8897852.png "屏幕截图.png") 从学生信息表、图书借阅信息表中检索出学生的学号、姓名、专业、学院、电话号码、借阅图书编号、借阅日期、还书日期的信息 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163040_e37da30e_8897852.png "屏幕截图.png") ##### 6.3学生信息的插入、删除、更新实现 学生信息插入: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163049_45716827_8897852.png "屏幕截图.png") 学生信息删除: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163053_725309f4_8897852.png "屏幕截图.png") 学生信息更新: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/163100_da212d16_8897852.png "屏幕截图.png") ##### 6.4学生信息表、图书存放信息表统计实现 统计学生信息表中学院为“计算机科学学院”的学生人数 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/175717_4d1ec57e_8897852.png "屏幕截图.png") 统计图书存放信息表中存放在2楼的书籍数量 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0605/175729_b9678b09_8897852.png "屏幕截图.png")