目录

一、摘要

2、基本功能

二、前言

三、主体

3.1需求分析

3.1.1 数据需求分析

3.1.2 功能需求分析

3.2概要设计

3.2.1 数据字典

3.2.2 ERD(实体关系图)

3.2.3 DFD数据流图

3.3 逻辑设计

3.3.1 E-R模型向关系模型的转换规则

3.3.2 E-R图转换为如图所示的数据库关系表

3.4 物理设计

3.4.1 DDL语言

3.4.2 视图

3.4.3 重要的存储过程

四、结论

五、参考文献

一、摘要

  1. 设计教学管理系统,要求有基本资料管理,比如:读者、图书管理员、阅览室、书籍、书架、书籍分类、出版社、罚款单、系统管理员,书商等基础信息。
  2. 基本功能:

角色1:读者

选课

查询图书

借书还书

角色2:图书管理员

角色3:采购员

角色4:系统管理员

数据备份

系统优化

死锁排除

3.借还书要求考虑到学期、时间、图书管理员、读者等信息:借书、还书、日期时间挂钩、采购书、入库、书上架、书下架、盘点、销毁。

二、前言

图书馆作为信息资源的集散地,图书和用户借阅资料繁多,包含很多信息数据的管理,现今,有很多的图书馆都是初步开发使用,甚至尚未使用计算机进行信息管理,根据调查得知,他们以前对信息的管理都基于文本,表格等纸介质的手工处理,对图书借阅情况(如借阅天数,超过借阅的天数)的统计和审核都通过借书卡的方式人工查询。

对借阅的权限,借阅天数用人工计算,手工抄写。数据处理工作量大,容易出错。由于数据量大容易丢失,且不容易查找。总的来说,缺乏系统规范的管理手段。尽管有的图书馆有计算机,但是尚未由于信息管理,没有发挥它的效力,资源闲置比较突出,这就是信息管理系统开发的基本环境。基于这个问题,我们认为有必要建立一个图书管理系统,使图书管理工作规范化。

该系统主要有几个大的模块︰图书信息录入、图书借阅管理、读者信息管理、图书信息查询,其中每个模块的主要功能如下∶

图书信息录入︰图书信息的录入采用联网查询方式,通过条码枪扫描图书的ISBN码,系统会自动搜索图书信息,然后把图书信息录入到系统。通过实验,录入1本书的时间大概是20—40秒,这比原来的繁琐的手工录入效率提高90%,极大的减轻了图书管理人员的劳动强度,使广大中小学图书管理信息化突破了录入的瓶颈。

图书借阅管理︰根据读者提供的借书证号或借书卡号进行图书的借阅、图书归还操作。读者信息管理:对读者进行注册登记、注销读者、查阅借阅记录等操作。图书信息查询︰包括导入导出图书信息,根据图书的书名、分类、出版社、价格范围、出版日期来查询图书,进行分类统计,形成上级报表等[1]。

三、主体

3.1需求分析

3.1.1 数据需求分析

图书馆管理信息系统需要完成功能主要有:

(1)读者基本信息的输入,包括借书证编号、读者姓名、读者性别等。

(2)读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。

(3)书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。

(4)书籍类别信息的查询、修改,包括类别编号、类别名称。

(5)书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。

(6)借书信息的输入,包括读者借书证编号、书籍编号、借书日期。

(7)借书信息的查询、修改,包括借书证编号、借书证编号、读者姓名、书籍编号、书籍名称、借书日期等[2]。

3.1.2功能需求分析

1.日常工作管理:包括借书管理、还书管理

(1)借书管理:主要功能是记录借阅证编号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括学生学号、图书ID、借出日期、还书期限。

(2)还书管理:主要功能是输入借阅证编号、图书ID,在借阅登记表中找到相应的记录,将该记录的相应数据插入到还书记录中,同时将借书记录删除,并保存在借阅历史记录表中。

2.基本资料维护管理:包括图书资料维护、学生资料维护

(1)图书资料维护:包括新书的入库,以及现有书籍资料的修改和删除。

(2)学生信息维护:包括新学生的资料入库,以及现有学生资料的修改和删除。

3.查询管理:包括图书资料查询、学生信息查询、借阅历史记录查询。

(1)图书资料查询:根据相应的图书信息对所有书籍进行所需查询。此查询包括:图书类别、图书编号、图书名称、著者、出版社[3]。

(2)学生信息查询:根据相应的学生信息进行所需查询。借阅证编号、学生姓名、学生学号。

(3)借阅历史记录查询:根据相应的借阅信息进行所需查询。此查询包括:借阅证编号、图书编号、借书日期、还书日期。

3.2概要设计

3.2.1 数据字典

(1)图书管理员

表1 图书管理员表

列名

数据类型

位数

是否为空

工作号

Varchar

12

密码

Varchar

50

姓名

Varchar

12

性别

Varchar

2

电话

Varchar

12

备注

Varchar

50

家庭住址

Varchar

100

(2)读者

表2 读者表

列名

数据类型

位数

是否为空

读者号

Varchar

50

读者姓名

Varchar

50

读者性别

Varchar

20

电话

Varchar

12

最大借书量

Int

系别

Varchar

50

生效日期

Datetime

失效日期

Datetime

(3)书籍表

表3 书籍表

列名

数据类型

位数

是否为空

工作号

Varchar

50

ISBN

Varchar

13

添加时间

Datetime

是否在馆

Char

4

(4)学生表

表4 学生表

列名

数据类型

位数

是否为空

工作号

Varchar

50

读者学号

Varchar

50

ISBN

Varchar

50

借还确认

Varchar

50

(5)借阅表

表5 借阅表

列名

数据类型

位数

是否为空

工作号

Bigint

1,1

ISBN

Varchar

50

读者学号

Varchar

50

借书日期

Datetime

还书日期

Datetime

真实还书日期

Datetime

是否续借

Varchar

50

备注

Varchar

100

(6)图书

表6 图书表

列名

数据类型

位数

是否为空

书籍编号

Bigint

1,1

ISBN

Varchar

50

书名

Varchar

50

作者

Varchar

50

出版社

Varchar

50

价格

Money

出版日期

Datetime

库存量

Int

简介

Text

状态

Varchar

50

3.2.2 ERD(实体关系图)

图1.1 主ER图

3.2.3DFD数据流图

一层数据流图:

二层数据流图:

三层数据流图:

图2.3 三层数据流图

四层数据流:

图2.4 四层数据流图

3.3 逻辑设计

3.3.1E-R模型向关系模型的转换规则:

(1)实体类型的转换

将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。

(2)联系类型的转换

①如实体间的联系是1:1

可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。

②如实体间的联系是1:n

则在n端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。

③如实体间的联系是m:n

则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。

3.3.2 E-R图转换为如图所示的数据库关系表:

(1)图书信息表

表7 图书信息表

(2)学生信息表

表8 学生信息表

(3)管理员信息表

表9 管理员信息表

(4)借阅信息表

表10 借阅信息表

(5)图书类别信息表

表11 图书类别信息表

3.4 物理设计

数据库物理设计的任务是为上一阶段得到的数据库逻辑模型,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库储存,确定在物理设备上所采用的存储结构和存取方法,然后对该存储式进行性能评价、修改设计、经过多次反复,最后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结构的设计和存储路径的设计[4]。

3.4.1 DDL语言

①建数据库:

create database libary

②建表:

创建图书信息表

CREATE TABLE dbo.jy (

Lno nchar(10) Primary key ,

Lname nchar(20)NULL ,

Wr nchar(10)NULL ,

Ldate smalldate NULL ,

Lprees nchar (20)NULL

Lbznchar(20)NULL

创建读者信息表

CREATE TABLE dbo.reader (

Rno nchar (10) Primary key ,

Rname nchar (10)NOT NULL,

Rsex nchar(1)NOT NULL ,

Rdep nchar(20)NOT NULL,

Rage int NULL

创建借阅信息表

CREATE TABLE dbo.jy (

Rno nchar(10) Primary key ,

Lno nchar(10) Primary key ,

data smalldate NULL ,

Ldata smalldate NULL

创建用户表

CREATE TABLE dbo. manage (

Pwd nchar(10) Primary key ,

Id nchar(10)NULL ,

CREATE TABLE UserInfo(

LibNum Int NOT NULL PRIMARY KEY,

Name varchar (20)NOT NULL,

Sex varchar (20)NOT NULL,

Type varchar (20)NOT NULL,

CREATE TABLE Book(

BoNum INT NOT NULL PRIMARY KEY,

Author varchar (15) NOT NULL,

BookName varchar (25) NOT NULL,

Price varchar (30)NOT NULL,

Press varchar (20)NOT NULL,

Storage varchar (25) NOT NULL,

Published varchar (30) NOT NULL,

CREATE TABLE Borrow(

BorNum INT NOT NULL PRIMARY KEY,

BorrowNum varchar (30)NOT NULL,

BorrowTime varchar (20) NOT NULL,

BookNum varchar (35) NOT NULL,

)

3.4.2 视图

图3.1 视图1

图3.2 视图2

3.4.3 重要的存储过程

INSERT UserInfo

VALUES(‘411420020′,’张三’,男’,学生’)

INSERT UserInfo

VALUES(‘411420021′,’王丽’,女’,’学生’)

INSERT UserInfo

VALUES(‘411420022′,’李四’,男’,’学生’)

INSERT UserInfo

VALUES(‘411420023′,’马阳’,女’,学生’)

图3.3

INSERT Borrow

VALUES(‘411420020 ,’0101001′,’2015.6.7″,’2015.7.7’)

INSERT Borrow

VALUES(‘411420021′,0101002′,’2015.6.8′,2015.7.7’)

INSERT Borrow

VALUES(‘411420022′,’0101003′,2015.6.9′,2015.7.9’)

图3.4

INSERT Book

VALUES(01010001”关系数据库基础’徐人凤”∵’高等教育出版社’ 29.60′,2000.9.8′,2001.8.9′,’王明’)

INSERT Book

VALUES(01010002′,’疯狂AJAX讲义’,’李刚’,’电子工业出版社’,’60.00′,2009.8.7′,2009.10.8′,’李哲’)

INSERT Book

VALUES(01010003′,’JAVA’,’语言程序设计’,’郑莉’,’清华大学出版社’,’44.50′,2009.9.6′,’2009.11.11′,’王磊’)

图3.5

create view Info_view(条码号,书名,ISBN号,是否借出,已借次数)

As

select bno , bname , bisbn , islent , times

from Informationcreate view Book_view(ISBN号,书名,类别号,书架号,价格,出版社,图片,图书简介)

as

select bisbn , bname , tpno , bshelf , price , publisher,picture,intro

from Book

create view Book_Type_view(类别号,类别)

as

select tpno , tp

from Book_Type

查询某本书是否可借的详细信息

create view info3_view(书名,架位,条码号,是否借出,是否在架上)

as select

information.bname ,book.bshelf ,information.bno ,information.islent ,information .ishere

Frombook,informationwhere information.bisbn=’978-7-5617-6282-O’ andinformation.bisbn=book . bisbn

按书名关键字检索

create view info1_view(书名,ISBN号,价格,出版社,架位)

as select distinct book. bname , book.bisbn , book.price,book.publisher , book.bshelf

from book where book. bname like ‘%关系数据库基础%’

统计A类图书总数(以此类推,可统计其他类图书总数)

select count(bno) from information where bisbn in ( select bisbn from bookwhere Tpno=’A’)

统计图书总数

select count (bno) from information

统计每本书被借次数

select times from information where bno = ‘02010001’

查看Book表中关系数据库书的信息:

SELECT*FROM BookWHERE BoNum=’1010001′

图3.6

查询张三信息:

SELECT*FROM UserInfoWHERE LibNum=’411420020′

四、结论

通过这段时间的努力,基本完成了图书管理系统的基本功能:管理员对图书信息的管理以及对读者信息的管理,主要是对其中的表(图书信息表dbo.libary和读者信息表读者表dbo.reader)的信息进行添加、查询和删除。但部分功能未能实现例如读者对该系统的注册,登陆、借阅查寻等一些列功能。

同时通过这几天的程序及报告编写,我也发现了自己的很多不足,自己的知识有很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还是比较脆弱。尤其是编写大型的程序所要拥有的知识和技能比较缺乏。程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。我们的程序基本上能够满足要求,但还有一些地方需要改进,在今后我们应该在多看书的同时还要加强实践的练习,才能进一步提高自己的编程能力。

五、参考文献

  1. 图书管理信息系统课程设计 – 百度文库
  2. 基于分布式多层数据库的图书管理系统的建立[J]. 刘皓,陈丽.石河子大学学报(自然科学版).2006(04)
  3. 北京天文馆图书管理系统的设计与实现[J]. 管峰,陈昌.内蒙古科技与经济.2021(21)
  4. 基于大数据的智能图书管理系统的研究与设计[J]. 杨江海,娄德涵,邓海生.电子制作.2021(04)