当前位置:文档之家› 图书管理系统项目文档

图书管理系统项目文档

图书管理系统项目文档实验人员:网络工程 黄忠网络工程 刘光林数据库设计部分是应用系统中非常重要的一个环节,数据库设计的优劣将直接影响应用系统的运行的效率。

所以图书管理系统数据库的设计师图书管理系统中首要完成的工作。

本系统开发平台 , , ,编程语言为 。

一、图书管理系统功能分析图书管理系统可以供学校,书店等的管理员使用,用于日常的读者管理,图书管理,借书,还书等操作,另外还可以供读者查询图书信息及其借阅情况等。

本系统主要功能包括登录,图书查询、借阅查询、读者管理、图书管理、借阅管理等功能模块。

、登录功能图书管理系统可供读者和管理员使用,所以需要设置登录者的身份,并赋予不同身分的登录者以不同的权限,读者只能查看借阅情况和图书馆藏情况,管理员分三类:读者管理员、图书管理员、超级管理员。

读者管理员只能进行读者管理操作,图书管理员只能进行图书管理操作,超级管理员可以进行图书查询、借书查询、读者管理、图书管理、借书管理、还书管理、数据备份等操作。

、读者管理读者主要有借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、联系方式和备注属性。

借书证号是唯一的,借书量不能超过 。

只有读者管理员和超级管理员才能进行读者管理,包括添加,修改,删除。

在修改读者信息时,不能修改借书证号和借书量,删除读者信息时,如果该读者借过书尚未归还则不能删除读者。

、图书管理图书主要有 、书名、作者、出版社、出版年月、价格、复本量、库存量、分类号、内容提要和封面等属性。

每一种图书的 都是唯一的,库存量不能大于复本量。

只有图书管理员和超级管理员才能进行图书管理,其操作包括添加图书、修改图书、删除图书。

添加新书时,系统自动生成每本图书的 及在借情况,再借情况默认为否。

删除图书时如果该图书已经借出则不允许删除图书记录。

、图书查询用户可以根据图书 、书名、作者、出版社进行模糊查询,查询结果将分页显示。

、借书管理借书管理只有超级管理员才能进行。

用户可以输入读者的借书证号查看其借书记录,确认读者没有在借相同的 的书,然后输入要借的图书的 、图书 ,判断图书是否存在、是否再借等情况、如果可借则完成结束操作,借书时间登记为系统当前时间,规定还书期限为 天,同时系统自动将读者的借书量加 ,图书库存量减 ,图书的再借情况为再借。

、借书查询一读者身份登录系统时,用户点击借书查询模块可以查看自己的借书情况。

以管理员身份登录时,用户输入读者的借书证号也可以查看该读者的结束情况。

、还书管理还书操作只能由超级管理员来进行。

输入读者的借书证号即可查看读者的现有的借书记录。

用户输入图书 后单击还书按钮即可进行还书操作,与此同时,系统自动将读者的借书量减 ,图书库存量加 ,图书在借情况为否,并根据删除的图书记录自动生成一条还书记录。

、数据备份超级管理员可以指定一个后缀名为 的备份文件,然后将图书管理数据库的所有数据备份为该文件。

二、图书管理系统数据库设计通过以上的功能分析,现阶段可以进行图书管理数据库的设计。

、图书管理数据库的 模型通过理解图书管理系统所要实现的功能,可以得出图书管理数据库包括以下实体:管理员、读者、图书、在借情况。

管理员的属性:角色名、密码、备注;读者的属性:借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、备注、联系方式;图书的属性: 、书名、作者、出版社、出版年月、价格、复本量、库存量、分类号、内容提要、封面照片;在借情况的属性:图书 、是否在借。

其 模型如下图:、图书管理数据库的逻辑结构设计在图书管理的各个实体中,管理员命名为 ,主码为“角色名”,读者命名为 ,主码为“借书证号”,图书命名为 ,主码为“ ”,在借情况命名为 ,主码为“图书 ”。

实体集“读者”和“图书”之间通过联系“借阅(命名为 )”表示借阅关系,通过联系“归还(命名为 )”表示归还关系。

所以由以上 模型可得到如下关系模式:(角色名,密码,备注)(借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、备注、联系方式)( 、书名、作者、出版社、出版年月、价格、复本量、库存量、分类号、内容提要、封面照片)(图书 , ,是否借出)(借书证号, ,图书 ,借出时间,应还时间)(编号,借书证号, ,图书 ,借书时间,还书时间)、图书管理数据库的物理结构设计从以上关于图书管理数据库的逻辑结构设计的讨论可知,可以在图书管理数据库中创建读者信息表 ,其包含的字段有:借书证号、密码、姓名、性别、出生日期、专业、借书量、照片、备注、联系方式。

其中,“借书证号”可以用学号表示,是 位定长字符型数据,使用 ;“密码”记录读者的登录密码,可以是 位不定长字符型数据,吃用 ;“姓名”一般不超过 个中文字符,所以可以是 位定长字符型数据,使用 ;“性别”只有“男”、“女”两个值,所以可以使用 类型, 表示“男”, 表示“女”;“出生日期”是日期时间类型数据,使用 ;“专业”使用 位定长字符型数据,使用 ;“借书量”是整形数据,使用 ;“照片”存储读者的照片信息,使用 ;“备注”记录读者的额外信息,使用 ;“联系方式”记录读者的 、电话、住址等信息,使用 片段的方式存储。

综上分析可得 表结构:读者信息表( )结构同理可得出其他表的表结构:图书信息表( )结构借阅表( )结构还书记录表( )结构图书在借表( )结构三、图书管理系统的数据库及表的创键通过以上讨论,现在可以创建图书管理系统所需的数据库及其表, 语句如下:创建数据库创建表创建 表借书证号 密码姓名性别出生时间专业借书量照片备注联系方式创建 表书名作译者出版社出版年月价格复本量库存量分类号内容提要封面照片创建 表借书证号图书 借书时间应还时间 借书时间创建 表编号借书证号图书借书时间还书时间创建 表图书是否借出创建 表角色名密码备注四、图书管理数据库表数据的完整性约束、图书管理数据库列的完整性图书管理数据库列的完整性包括:列的数据类型需要与定义的一致,列的为空性,默认值,列的内容是否符合要求等。

解决列的内容是否符合要求使用 约束。

在 表中,“借书量”的值必须大于等于 小于等于 ; 表中库存量必须小于等于复本量。

如下:借书量 借书量库存量 复本量、图书管理数据库行的完整性图书管理数据库中的数据行也需要进行完整性约束,比如,借书证号应该是唯一的,数据库系统不允许存在两个或两个以上具有相同的借书证号的读者记录。

图书管理数据库行的完整性可以通过索引、主键、唯一键、或者 属性来实现。

在设计表的时候已经定义过主键、索引和 属性,为了使图书管理数据库更完善,规定读者的密码在表中也必须是唯一的,所以需要在读者信息表的“密码”列创建一个 约束。

如下:密码、图书管理数据库表的完整性在图书管理数据库中,图书借阅表 通过“借书证号”与读者信息表 相关联,通过“ ”与图书信息表相关联。

所以需要通过图书管理数据库表的完整性实现的功能是:当向 插入借书记录时,借书证号在 表中必须存在, 在 中也必须存在。

当删除 表中读者记录或者 表中图书记录时,存在借阅记录的话,则不能删除该读者或图书记录。

通过定义 表和 、 表间的参照关系来实现图书管理数据库表的完整性。

表和 是主表, 是从表。

如下:借书证号借书证号五、图书管理数据库的功能实现、生成图书在借情况的功能当向图书信息表 添加一种新书时,需要在图书在借情况表中生成该图书的每本书的图书 和在借情况。

此功能用存储功能来实现,存储过程名称为 参数为 , (复本量)、 。

使用循环想 中插入 条记录,图书 的起始值为 ,之后每增加一条记录图书 值加 如下:、图书借阅功能根据读者的借书证号、图书的 、图书 ,以及实际的图书管理情况向图书管理数据库的 添加借书记录,读者的借书量和图书的库存量要相应的变化。

思路如下图:命令如下:图书库存量为判断是否借过该书借书证号该读者已经借过该书判断是否已经被借图书该图书 存在开始一个事务插入借书记录借书证号 图书 借书时间执行过程中遇到错误修改借书量借书量 借书量 借书证号执行过程中遇到错误修改库存量库存量 库存量执行过程中遇到错误修改图书借出情况是否借出 图书借书成功执行过程中遇到错误、同步删除图书借出情况功能在 表中删除一条图书记录时,同时删除 表中与该书相关的记录。

该功能使用在 表中定义删除触发器的方法实现。

触发器名称为 ,触发器类型为 ,在对 表进行了 操作后激活。

如下:、图书归还功能当读者归还图书时,即删除借阅表 中的一条记录时,读者信息表中该读者的借书量减 ,图书信息表中该书的库存量加 ,图书在借情况的是否借出为否,还书记录表添加一条该读者的还书记录。

该功能用在 表定义触发器的方法实现,触发器名称为 ,触发器类型为 ,在对 进行操作后激活。

如下:借书证号 图书 借书时间借书量 借书量 借书证号库存量 库存量是否借出 图书借书证号 图书 借书时间 还书时间、统计借书次数功能图书管理员输入读者的借书证号,可以统计读者总共借过多少次书,包括借过归还和在借的。

使用用户自定义的函数实现,函数名为 。

使用借书证号作为参数,名称为 ,通过查询借阅表 和还书记录表 得到借书次数总数。

如下:借书证号借书证号借书证号借书证号六、界面截图:登录界面:图书查询:借书查询:借书管理:还书管理:读者管理:图书管理:数据备份:。

相关主题