数据库综合实验
题目:图书借阅管理系统
专业:计算机类班级:
姓名:学号:
指导教师:杨柯成绩:
完成日期:2016 年6月18 日
1.系统需求分析
图书借阅管理系统的具体要求如下所述:
(1)图书信息的录入:要求能够将图书信息录入到数据库中。
(2)图书信息的修改:根据需要修改、删除图书信息。
(3)用户登录:根据用户权限登录此系统。
(4)系统用户管理:要求可以管理系统的用户,包括添加、修改和删除用户。
(5)借阅证件信息录入:可以输入不同类型的借阅者信息,并根据需要修改、删除借阅证信息。
(6)借阅证管理:包括借阅证丢失、过期等管理。
(7)借阅管理:包括借书、还书、过期还书与书籍丢失处罚等管理。
2.系统功能设计
图书借阅管理系统的功能基本结构图如图1所示:
图1 图书借阅管理系统功能结构图
(1)用户管理模块:主要用于录入用户的信息,显示用户名及类型,包括添加用户、删除用户、修改用户等功能。
用户类型的设置使得只有超级用户才有权限访问此界面。
(2)重新登录模块:用于其他用户重新登录。
(3)图书分类管理模块:将图书分为二级分类进行管理,包括添加、删除、修改图书分
类等功能。
(4)图书基本信息管理模块:根据图书分类录入图书信息,对图书信息进行管理,其基本功能包括添加、删除、修改图书信息。
(5)借阅证件类型管理模块:用于管理借阅证件类型,根据借阅证件类型确定借阅图书的时间、续借时间、借阅图书的数目等,包括添加、删除、修改借阅证件类型信息等基本功能。
(6)借阅证件管理模块:根据借阅证件状态(有效、过期、挂失等)与证件类型对借阅证件信息进行管理,确定借阅者的单位、身份、借书天数、借书数目等信息,包括添加、删除、修改借阅证件信息等基本功能。
(7)图书借阅管理:为系统核心部分,他根据图书借阅状态(借阅、续借、过期)来管理图书的借阅操作,包括借阅、续借、归还、丢失图书等操作功能。
3.数据库概念结构设计
根据系统需求分析和功能设计,可以将数据规划为以下实体:图书实体、读者实体、借阅实体。
它们之间的关系如图2所示:
图2 图书借阅管理系统E-R图
4.数据库逻辑结构设计
根据功能设计和E-R图,设计6个数据表如下:
表1 BookType 图书分类信息表
表2 BookInfo图书基本信息表
表3 CardType 借阅证件类型表
表4 CardInfo借阅证件信息表
表5 BorrowInfo图书借阅信息表
表6 User用户信息表
实验一数据库和表的操作
实验目的:
1、了解SQL SERVER数据库的逻辑结构和物理结构;
2、掌握SQL SERVER数据库的文件组成;
3、掌握SQL SERVER数据库中文件组的概念;
4、了解表的结构和特点;
5、了解SQL SERVER的基本数据类型;
6、学会使用结构化查询语句创建和管理数据库和表;
实验内容:
1、使用sql语句建立数据库Librarymanager。
2、包含两个数据库文件和一个日志文件,其中主数据文件的逻辑名为“Library_data”,
初始大小为10MB,最大大小为500MB,设置文件自动增长,增长方式为10%。
日志文件的所有限制默认。
3、使用sql语句在数据库Librarymanager中添加和删除一个数据文件。
(1) 逻辑名、物理名、初始大小、最大大小自己设计,增长按照MB方式自动增长。
(2) 删除数据文件“Library _data2”。
4、使用sql语句在数据库Librarymanager中添加一个日志文件。
逻辑名、物理名、初始大小、最大大小自己设计,增长按照百分计数方式自动增长。
5、使用sql语句在数据库Librarymanager中建立BookType 图书分类信息表,BookInfo
图书基本信息表,CardType 借阅证件类型表,CardInfo借阅证件信息表,BorrowInfo 图书借阅信息表,User用户信息表。
实验操作代码:
实验二数据库系统约束的设计
实验目的:
1、了解SQL SERVER数据完整性的的分类;
2、掌握SQL SERVER约束的选择、创建和使用;
3、掌握SQL SERVER默认值和规则的创建、绑定和解除。
实验内容:
根据前面建立的图书管理系统的数据表,调查各个部门在使用图书管理系统过程中录入数据时容易出现的错误,为各个数据表增加约束、默认值、规则和触发器,保证图书管理系统的数据的完整性。
提示,一般图书管理系统中的可以参考的完整性如下:
1、借阅证件信息表中的图书证号可以设置主键。
2、书籍表中的书号可以设置主键。
3、借阅表中的借阅号可以设置主键。
4、借阅表中图书编号可以设置外键,图书编号应该在书籍表中。
5、借阅表中也可以设置“借书证号”和“图书编号”为联合主键
6、借阅证件信息表中的“借书册数”可以设置check约束,范围为1~8。
7、图书表中的“状态”字段设置default约束为“未借出”。
实验操作代码:
实验三数据的操作
(添加、查询、修改和删除)
实验目的:
1、掌握数据表中数据的输入、修改和删除操作;
2、掌握指定列或全部列查询;
3、掌握按条件查询;
4、掌握对查询结果排序;
5、掌握使用聚集函数的查询;
6、掌握对查询结果分组;
7、掌握涉及一个以上数据表的查询;
8、掌握嵌套查询的方法,从而增强SQL的查询能力;
实验内容:
根据前面建立的图书管理系统的数据表,为各个数据表插入相关的数据记录,调查各个部门需要查询和经常需要查询的数据,列出来,并想办法用各种方法的查询或者视图来完成查询任务。
提示,首先为图书管理系统中的各个表插入相关数据记录,然后完成如下常用查询:
1、查询定价在15~25元的图书信息。
2、查询“图书类型”为“计算机”、“电子”、“文学”类的图书信息。
3、查询book中大于该类图书定价平均值的图书信息
4、使用in操作符查询被读者借阅过的图书。
5、查询所有定价低于平均定价的图书
6、显示所有书名相同而作者不同的图书信息。
7、根据学生表、书籍表和借阅表,查询借书学生的姓名、借书名称、借书日期、还书日
期,并按借书证号排序
8、查询所有学生的借书信息。
9、查询“图书类别”为“计算机”的记录,并求出最低价、最高价、平均价格。
10、找出所有类别图书中的平均价格大于25元的图书类别信息,并按平均价格降序排
序。
11、查询所有没借过图书的信息。
12、创建图书借阅记录视图,要求能够显示学生的学号、姓名、借出时间和归还时间。
13、建立“学生借书超期通知”视图,要求学生借书期限为三个月,要求显示借阅学生
班级、姓名、学号、超期图书的名称、超期时间。
实验操作代码:
实验四存储过程的操作
实验目的:
1、掌握用户自定义存储过程的创建方法,包括不带参数的,带输入值参数的,带返回值
参数的。
2、掌握存储过程和过程语句的结合使用。
3、掌握存储过程的删除的方法。
4、掌握存储过程的执行的方法,包括没有参数的直接使用,带输入参数的使用方法,带
输出参数的声明参数并赋值的方法。
实验内容:
根据前面建立的图书管理系统数据库表的内容,结合常用的图书管理人员日常的工作流程,完成以下存储过程的设计,提供代码可重用性和执行效率。
1、创建名为“图书出版情况”的存储过程,可以检索出所有图书的“书名”,“作者名”,
“出版社名”信息。
2、创建名为“作者查询”的存储过程,可以检索出指定作者的“作者名”,以及该作者
出版图书的名字和相应的出版社名,要求将作者姓名通过参数传递给存储过程。
3、创建名为“借阅情况查询”的存储过程,可以检索出指定借阅人已经借阅的图书的详
细信息,同时可以查看出每本图书的借阅时间和应还书时间。
要求将借阅人信息通过参数传递给存储过程。
4、创建名为“罚款查询”的存储过程,可以检索出哪些借阅人借阅的图书已经到了应还
书时间,可是还没有归还的相关信息,同时可以查看应罚款的金额。
5、创建名为“借阅人资格查询”的存储过程,可以检索出指定借阅人的借书证是否有效,
可以借阅多少图书,已经借阅了多少图书,可以借阅时间期限等信息,要求将借阅人信息通过参数传递给存储过程。
【提示】
1、可以使用IF语句先判断当前数据库中是否已经存在一个与要建立的存储过程名字相
同的存储过程,如果存在,就删除已经存在的存储过程。
这样可以保证存储过程建立过程的实施。
2、应还书时间是系统根据相关信息自动计算出来的,计算方法可以参考:
应还书时间=借阅时间+借阅期限
3、需要时间日期时间函数来获取系统当前时间,例如Getdate() 实验操作代码:。