图书管理系统数据库设计实验报告

图书管理系统设计实验报告

一、实验题目及其要求

编写一个图书管理系统,要求具有以下内容:

1)存储图书信息、采购和淘汰情况、租借情况

2)实现图书采购、淘汰、租借功能。

3)实现图书信息、采购和淘汰、库存、和租借情况查询

4)实现图书的采购、库存、淘汰、租借情况等统计

二、具体实现

在本次系统设计中,我采用了袁老师推荐的Delphi7来进行图书馆管理系统的开发,因为对比其他工具来说用Delphi进行图形界面(GUI)应用程序开发更加简便,而且其与数据库的连接也相当紧密和直接,使得整个开发过程事半功倍。

而对于DBMS,考虑到整个个开发过程的简便,我决定采用Microsoft SQL Server来进行开发,由于之前的实验已经对SQL Server已经比较熟悉,而且该服务器由于是搭建在学校服务器上,所以检查起来也就更加方便。

下面是具体的数据库设计:

1.数据库设计

首先,在得到题目后,我认真地研究了中国科大图书馆的图书管理系统,并且向图书馆管理人员咨询了一些细节设计问题,最终我设计了如下的5张表来作为本次图书管理系统的后台数据,如下:

首先是我们的E-R图,在这里我们的E-R图中省略了实体的属性值,因为在后面每张表中我们都会一一涉及到,所以在这里为了版面原因不再赘述。可以看到,我们的E-R图主要包含了三个实体:用户,书本,书目。其中用户具有多重身份,这是由于其中包含了多级用户,既可以对图书进行借阅、采购,又可以进行下架。在一个书目下又包含了多个书本信息,这是由于在图书馆中,同样的书不可能只有一本所造成。

未命名文件(1)

下面是第一张表:用户(读者)信息表。

/* 表Reader :用户信息表*/
create table PB15051157_LibrarySys_Reader
(
	学工号 char(20) not null, constraint PK_学工号 primary key(学工号),
	姓名 char(50) not null,
	联系方式 char(100) not null,
	已借书数目 int not null, constraint CK_已借书数目 check (已借书数目>= 0),
	读者级别 int not null, constraint CK_读者级别 check (读者级别in (0, 1, 2)),
	--0:开发人员	1:图书馆管理员	 2:普通读者
	密码char(100) not null,
  )

这是一张用户信息表,用以存放各个读者(包括图书管理人员)的信息,学工号是主键这里定义了读者级别,0级也就是最高级是图书馆系统维护人员,最主要的工作是管理图书馆管理人员的帐户,同时也可以进行修改、添加图书信息的工作;1级也就是图书馆管理人员,主要工作是修改、添加图书信息,同时管理普通读者的帐户;2级也就是普通读者,可以借书还书还有查看自己的信息。

/* 表TypeBook :每一种图书信息表*/
create table PB15051157_LibrarySys_TypeBook
(
	书目号 char(10) not null, constraint PK_书目号 primary key(书目号),
	图书位置 char(50) not null,
	书名 char(100) not null,
	作者 char(100) not null,
	出版社 char(100) not null,
	出版时间 char(50) not null,
	关键词 char(200),
	库存 int not null, constraint CK_库存 check (库存>= 0),
	可借阅数量 int not null, constraint CK_可借阅数量 check (库存>= 可借阅数量 and 可借阅数量>=0),
	单价 float not null, constraint CK_单价 check (单价>= 0)
);

这张表主要存放每种书的信息,比如说“数据库系统原理教程”就是当中的一个元素,同时书目号作为主键,这里要注意区别于下表之中的图书编号,这两个是完全不一样的两个概念,前者意味着两本相同的书具有相同的书目号,而后者则是每一本书都具有一个唯一的编号。“关键词”的设计主要是考虑到检索的时候可以更加方便读者利用关键词进行查询,而不必记得书本的全名。

/* 表SingleBook:每一本图书信息表*/
create table PB15051157_LibrarySys_SingleBook
( 
	图书编号 char(20) not null, constraint PK_图书编号 primary key(图书编号),
	书目号 char(10) not null, constraint FK_书目号 foreign key(书目号) references PB14209054_LibraryTable_TypeBook(书目号),
	采购号 char(10) not null, constraint FK_采购号 foreign key(采购号) references PB14209054_LibraryTable_InBook(采购号),
	下架号 char(10), constraint FK_下架号 foreign key(下架号) references PB14209054_LibraryTable_OutBook(下架号),
	借出状态 char(6) not null, constraint CK_借出状态 check (借出状态in ('可借阅','已下架', '已借出')),
	借出时间 char(50),
	应归还时间 char(50),
	借阅人 char(20), constraint FK_借阅人 foreign key(借阅人) references PB15051157_LibrarySys_Reader(学工号),
);

这张表主要用于存放每一本书的具体信息,比如说“数据库系统原理教程”这种数有n本这样的数,而每一本书的信息就是存放在这张表里。“书目号”、**“采购号”还有“下架号”**分别对应着这本书所属书的种类、以及采购和下架时对应的编号,并且作为外键可以查阅到相关的书籍信息、采购、下架信息,这里借阅人存储的是对应的借出的同学的学工号,并且作为外键方便查询对方信息。

/* 表BookIn :图书采购信息表*/
create table PB15051157_LibrarySys_BookIn
(
	采购号 char(10) not null, constraint PK_采购号 primary key(采购号),
	采购时间 char(50) not null,
	采购人 char(20) not null, constraint FK_采购人 foreign key(采购人) references PB14209054_LibraryTable_Reader(学工号),
	供应商 char(100) not null,
	采购数量 int not null, constraint CK_采购数量 check (采购数量>= 0),
	采购总额 float not null, constraint CK_采购总额 check (采购总额>= 0)
);

/* 表BookOut :图书下架信息表*/
create table PB15051157_LibrarySys_BookOut
(
	下架号char(10) not null, constraint PK_下架号p rimary key(下架号),
	下架时间char(50) not null,
	下架人char(20) not null, constraint FK_下架人 foreign key(下架人) references PB14209054_LibraryTable_Reader(学工号),
	下架数量int not null, constraint CK_下架数量 check (下架数量>= 0)
);

这两张表分别为采购表及下架表,用以记录采购信息及下架信息,在这里不做详细介绍。

2.SQL Server服务器的搭建

对于数据库的搭建,我们使用MicroSoft SQLServer 登陆了202.38.88.99并且在数据库中建立了如图的五个表格:

![Image 1](C:\Users\rusis\Documents\数据库报告\Image 1.png)

然后使用SQLServer的GUI工具向其中插入了相应的读者,图书,采购,淘汰信息,在这里所执行的SQL语句详情可见附件中的SQL文件。

3.Delphi 7图书管理系统应用的开发

在Delphi 7的设计当中,我们主要考虑了三个界面。

  • 主界面,主要是供读者进行查询图书以及归还和借阅图书的操作

  • 开发者界面,主要是供开发者进行新读者注册,读者密码重置,新图书上架,旧图书淘汰,添加采购信息的功能。

    在开发者界面里,还内嵌了一个图书情况统计的页面,可以详细统计以下:

    • 图书情况统计
    • 下架信息统计
    • 借阅信息统计
    • 采购信息统计
  • 读者界面,读者可以查询相关的借阅信息。

下面我们来按照题目要求逐步分析该系统的功能:

#####1、存储图书信息、采购和淘汰情况、租借情况

对于该点,由于我们采用了微软的SQL Server,因此相应的图书信息,采购和淘汰情况,租借情况全都储存在了学校机房上的SQL Server 服务器上,因此不必担心,只要通过我们的应用程序就可以实现对我们所存储的信息的读写。

#####2、实现图书采购、淘汰、租借功能

在我们的系统设计当中,有三类不同的账户,其中一二类账户登陆进去之后可以进行图书采购、淘汰、租借功能。而三类账户即读者账户,仅仅可以实现租借功能。如下图,先是登录了-0级账户,在蓝色方框出进行登录,然后上面显示了读者级别,并且会自动弹出开发者管理界面。

main

下图即为管理界面:

捕获

该界面比较直观,主要具备了以下功能:

  • 注册新用户/重置旧用户的密码

register

resetPNG

  • 对图书进行淘汰下架

    bookout

  • 添加采购信息

addbuy

  • 添加采购的图书信息

    • 若采购的图书的类别信息已在数据库内,从添加采购图书处管理即可,登记完之后,库存数量增加,可借阅图书增加,对图书类别信息无影响。

      Buy

    • 若采购的图书的类别信息不在数据库内,需要在添加图书信息处,先把图书的信息添加进去,然后再在添加采购图书处添加图书数量。

    addbook

下面再介绍租借功能的实现:

在主界面上用读者账号进行登录,登录成功后左上角会显示已登录信息,则可以进行借阅和归还操作。若未登录则会出现提示登录信息。

借阅图书效果如下:

boorrow

归还图书如下:

reborrow

之所以设计成如上的原因主要是因为在实际上的图书管理系统中,更多使用的是RFID技术存储和读取图书对应的图书编号,因此在这一步中,实际输入编号的操作是由RFID感应器来自动实现的,所以这样可以免去读者自己输入图书编号的麻烦,而且在一定程度上也可以防止误操作,保证我们系统的强壮可用性。

3&4、实现图书信息、采购和淘汰、库存、和租借情况查询和统计:

如下图,这是对图书信息、采购、淘汰、库存和租借情况的查询和统计。

主要分为如下四个部分:

  • 对于图书情况的查询统计:

    由于对于图书信息的详细查询在主页上也可以做到,因此在这里功能上不再赘余。只统计图书的总数,以及其中的类别和已下架的图书数。

searchbook

  • 对于借阅信息的查询和统计:

    在这里可以查询到每一本书的借阅情况,包括借阅人,借出时间和应归还时间,方便图书管理员进行管理。同时在这里,下面一栏还显示了未下架的图书总数,已借出的图书数以及尚可借阅的图书数。

lend

  • 对于采购信息的查询和统计:

    这里的设计主要是考虑到管理信息的需求,所以统计了不同供应商的数量,总共的采购次数以及到目前为止总共的采购总额。

outbook

5、系统额外的功能设计

在我们的设计的系统比题目要求增添了一些额外的功能,其设计的依据主要是来自于现实我们中国科大的图书馆系统。

  • 读者中心功能:主要是提供给读者用户,支持的功能有两个:修改账号的密码,以及查询本账号的借阅图书信息(包括借阅的图书的图书编号,书名,借出时间,应归还时间)

reader

  • 图书借阅额限制:

    和科大图书馆系统类似,我们这里也对每一个读者的借阅额做出了限制,每个人最多的可借阅量为8本,一旦达到8本就不可继续借阅,必须在归还相应的图书之后再进行借阅。

fullborrow

  • 多样化的图书搜索功能:

    在我们的系统中,提供了搜索图书馆中搜索库存图书的功能,并且提供了多种搜索方式,可以依照书名、作者、出版社,关键字进行模糊搜索,方便读者进行查询借阅,而且无需登录。

    search

  • 合理的人性化设计:

    在我们的系统中基本每一个界面都会带有一个退出/返回按钮,这是为了防止用户误操作造成无故退出,也更加符合系统的设计原则。

以上则为我们系统的所有功能介绍。

4、设计体会

在本次的大作业中,综合使用了本次课程中所教授的基本所有东西。例如有:

  • SQL 的基本使用
  • Dephi 7的用户程序设计
  • GUI的设计基本原则
  • 数据库的设计理论

在本次的设计过程中,首先必须要清楚我们所需要的设计的图书信息管理系统的结构。一个完善的图书馆系统所需要的基本模块都必须要先设计好才能让我们的设计过程不会被各种突然遇到的问题打断。

而在本次的锻炼实践中,我们也得到了从理论到实践的机会。在课程中学到的很多东西都可以有所得,有所悟,而不只是单纯的纸上谈兵。

同时,借此机会,我们也学到了很多课堂上学不到的东西,掌握了许多实用的工具,例如学会了SQL Server的基本使用,Dephi7 的基本使用,它们都是非常有用的工具,不仅仅是在课堂作业中,更会在我们日后的职业生涯中有着不可估摸的作用。其次本次系统的设计也对我学习用户界面设计有所启发,一个系统不仅仅需要具有合理的功能模块设计,而且也需要有更加人性化的界面设计,便于用户学习使用和掌握,这样才能使系统能够让更多的人接受!

  • 27
    点赞
  • 369
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
第一章 概述 本文主要介绍的是专为齐齐哈尔大学学校使用而开发的图书馆信息管理系统的设计。整个系统的开发过程严格遵循软件工程的要求,做到模块化分析、模块化设计和代码编写的模块化。 项目背景 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,是与世界接轨的重要条件。 编写目的 齐齐哈尔大学是一所拥有两万余师生的高等学校,每天有大量的老师和同学到图书馆借阅书籍。记录图书借阅情况是非常繁琐工作。使用计算机可以高速,快捷地完成工作。有鉴于此,开发一套图书馆信息管理系统,是十分必要的。 采用数据库技术开发的图书馆信息管理系统可以用来实现对图书的信息管理,可以提高管理的效率。现在,大多数学校的图书馆都是封闭式管理,要求藏书全部公开开放,师生共享,开架阅览。这种阅览方式是适合当前我国国情、发挥图书馆应用作用的最佳方式,也是素质教育的最好体现。它充分发挥了图书馆的功效,最大限度地为师生服务,这也是图书馆自动化管理的最终目标。实现这一目标,必须有现代化的管理手段和管理体制。各地教育主管部门也都逐步提出学校要采用图书馆管理系统,从而实现人工管理做不到的一些功能并发挥图书馆的最大效益。越来越多的学校采用了现代化的管理软件进行管理,进一步提升了学校管理的现代化水平。 第二章 需求分析 图书馆信息管理系统是一个教育单位不可缺少的部分,它对于学校图书馆的管理十分重要,所以,图书馆信息管理系统不但要为图书管理者提供充足的信息和快捷的查询手段,也要为学生查询提供必要和快捷的查询手段,但一直以来人们仍使用传统人工的方式管理图书系统,这种管理方式存在着许多缺点,如:效率低、工作量大等,而且,随着图书数量的增长,对于图书信息的查找、更新和维护都带来了不少的困难。此外,计算机技术的不断成熟与发展使得对信息管理的应用成为可能。正是这样,图书馆信息管理系统在图书馆管理中发挥了重要的作用。 用户需求分析 1. 能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理。 2. 能够对一定数量的读者进行相应的信息存储与管理。 3. 能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。 4.正常使用时不应出错,对于用户的输入错误应给出适当的改正提示。若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。 5.满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。 软件主要功能及功能描述 软件包括两大系统: 一、学生图书借阅系统 图书借阅,归还,续借系统,修改登陆密码系统。 二、管理员系统 包括: 1. 管理员管理系统:添加、删除管理员,系统设有一个最高管理员拥有最高管理权限,修改管理员密码、登陆名。 2. 图书管理 (1)图书管理系统:查询、添加、删除、修改图书资料,可选择是否显示图书。 (2)图书分类管理系统:图书分类添加、修改、删除管理。 3. 教务管理 (1)学生班级管理系统:学生班级添加、修改、删除管理。 (2)学生信息管理系统:查询、添加、删除、修改学生资料。 4. 超时管理 图书借阅超时管理系统:列出学生超时借阅图书资料,锁定选定的学生,禁止锁定的学生再借阅,列出已锁定的学生名,可解除选定的学生,允许学生再借阅。 5. 系统配置 (1)图书馆基本配置设置系统:是否开放图书借阅,可设置可借出数量、借阅时间、续借次数、公告刷新时间,可重置为默认数据,修改配置方案。 (2)公告管理系统:公告列表,添加、修改、删除公告。 6. 数据管理 (1)管理员数据管理系统:浏览管理员详细资料(包括登陆次数,最后登陆时间,是否最高管理员)。 (2)学生数据管理系统:查询浏览学生详细资料(包括借阅次数,登陆次数,最后登陆时间)。 (3)图书借阅管理系统:可按书名、借阅学生查询借阅数据,显示已、没归还图书借阅数据信息,可清除已归还借阅信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值