数据库课程设计图书馆管理信息系统.docx

上传人:b****5 文档编号:12671020 上传时间:2023-04-21 格式:DOCX 页数:23 大小:241.63KB
下载 相关 举报
数据库课程设计图书馆管理信息系统.docx_第1页
第1页 / 共23页
数据库课程设计图书馆管理信息系统.docx_第2页
第2页 / 共23页
数据库课程设计图书馆管理信息系统.docx_第3页
第3页 / 共23页
数据库课程设计图书馆管理信息系统.docx_第4页
第4页 / 共23页
数据库课程设计图书馆管理信息系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库课程设计图书馆管理信息系统.docx

《数据库课程设计图书馆管理信息系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书馆管理信息系统.docx(23页珍藏版)》请在冰豆网上搜索。

数据库课程设计图书馆管理信息系统.docx

数据库课程设计图书馆管理信息系统

数据库课程设计报告

 

-------图书馆管理信息系统

 

一、系统开发平台

题目:

图书馆管理信息系统

图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。

现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。

因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于管理效率的提高。

开发工具:

eclipse

数据库:

SQLServer2000

操作系统:

WindowsXP

二、数据库规划

2.1任务陈述

图书馆管理信息系统的主要任务是对馆内的书籍资源,读者资源,借书信息,还书信息进行管理,便于及时的了解各个环节信息的变更。

2.2任务目标

※维护(添加,删除,修改)管理员信息

※维护(添加,删除,修改)读者信息

※添加新书种信息

※添加书刊新副本

※删除书刊

※删除书刊副本

※维护借阅信息

※维护借阅历史

※书刊挂失

※缴纳违章欠款

※读者续借图书

※查询管理员信息

※查询读者信息

※查询书刊信息

※查询借阅信息

※查询借阅历史

※查询赔偿情况

三、系统定义

3.1系统边界

3.2用户视图

用户视图

需求

管理员

维护(添加,修改,删除)管理员信息

添加读者信息

删除读者信息

添加新书信息

添加新副本信息

删除书刊

删除副本

维护(添加,删除)借阅信息

书刊挂失

违章缴款

统计(如平均借阅时间,书的受欢迎程度)

读者

查询,修改自身某些信息

查询书籍信息

查询已借阅书刊及相关信息

查询借阅历史记录

查询违章记录

查询缴款记录

续借图书

四、需求分析

4.1用户需求说明

4.1.1数据需求

一个图书馆有若干个图书管理员,每个管理员用唯一的编号标识,并作为其身份验证的用户名,管理员的其他信息主要包括密码、姓名、联系方式等。

一个图书馆有若干书籍由国标书号(ISBN)或国际刊号(ISSN)惟一标识。

书籍需要记录的其他主要信息有书名、作者、出版社、出版年限、价格、图书类型、索书号、副本数和可借副本数等。

每一本书又有可能包含若干副本,这些副本通过条码号唯一标识,并且要记录副本书的书号及是否在馆。

在从图书馆借阅图书之前,读者必须进行有效的注册,包括读者编号、类型、姓名、性别、最大借阅数、当前借阅数和登陆密码等。

读者编号惟一标识读者身份。

读者类型包括本科生,研究生和教师。

合法读者可以借阅图书,一次可借阅的最大的图书数由其类型决定,本科生一次最大借阅数为8册,研究生和教师一次最大借阅数为10册。

借阅业务数据包括图书条码号、读者编号、借阅日期和归还日期。

图书一次借阅时间默认为30天,续借外加30天,所有书刊均只可续借一次。

存在违章罚款未交的读者,暂无法借阅图书,缴款后可正常借阅。

读者归还图书后需保留一段时间内的借阅历史记录,其中包括的信息有图书条码号、读者编号、借阅日期、归还日期、赔偿情况、应赔金额和实赔金额等。

每条记录由图书条码号、读者编号、借阅日期进行惟一标识(归还的图书不可当天外借)。

借阅超期需缴纳罚款,从应还时间开始计算,每天0.1元。

读者遗失书刊可进行挂失,挂失后需按遗失书刊的原价进行赔偿。

所有读者的缴款将记录进账目,账目的信息包括票据号,缴款时间,缴纳罚款的读者编号,罚款类型,罚款金额。

4.1.2事务需求

1.数据录入

a.录入新管理员的相关信息

b.录入新入馆的图书的详细信息

c.录入新入馆的某本图书副本的详细信息

d.录入新读者的详细信息

e.录入读者借阅图书的详细信息

f.录入读者借阅图书的历史信息

g.录入读者缴纳罚款的详细信息

2.数据更新/删除

h.更新/删除某图书管理员的信息

i.删除给定图书的信息

j.删除给定图书的某个副本的信息

k.更新/删除给定读者的信息

m.更新/删除某读者借阅某本图书的详细信息

n.更新/删除借阅历史详细信息

3.数据查询

系统需要支持下列查询:

o.列出图书管理员的信息

p.按某些查询条件列出馆内相应图书的详细信息和可租借情况

q.列出某种图书副本的信息和可租借情况

r.按某些查询条件列出相应读者的详细信息

s.列出某个读者当前图书借阅信息及借阅历史

t.列出某个读者违章缴款的记录

u.列出某个读者的账目清单

v.生成某些使用报表,如平均借阅时间,热门借阅的图书。

4.2系统需求说明

初始数据库大小:

a.大约有上万种,几万本图书可供借阅。

b.大约有30名图书管理员管理相关业务。

c.大约有6万读者可借阅图书馆图书。

数据增长速度:

a.每月大约有100本新书入馆,每本新书大约有5本副本加到数据库中。

b.一旦某图书的一本副本不能再借出去(如破损严重、丢失、被偷),则相应的记录从数据库中删除,每月大约有10个这样的记录。

c.每月有2名图书管理员加入或离开。

离开一年的员工记录从数据库中删除。

每月大约删除1条管理员记录。

d.每年大约有1万名新读者加入。

如果一个读者四年没有借阅任何图书,将删除该读者记录。

每月大约有100条会员记录被删除。

e.每天大约有200条新的借阅记录。

借阅记录在借出两年后删除。

记录查找的类型和平均数量:

a.查询图书管理员详细情况----每天约5次。

b.查询指定图书的情况----每天约300次。

c.查询某本图书的某个副本的情况----每天约500次。

d.查询指定读者的详细情况----每天约100次。

e.查询读者借阅的详细情况----每天约3000次。

安全性:

a.数据库必须有口令保护。

b.图书管理员和读者只能在适合他们完成工作的需要的窗口中看到需要的数据。

备份和恢复:

每天24点备份。

用户界面:

菜单驱动,联机帮助。

法律问题:

对员工和读者信息管理,遵守法律。

 

五、数据库逻辑设计

5.1ER图

5.2数据字典

实体

属性

描述

数据类型及长度

是否为空

是否多值

librarian

id

name

password

tel

管理员编号

管理员姓名

密码

联系电话

char(5)

varchar(30)

varchar(30)

varchar(11)

No

No

No

Yes

No

No

No

No

reader

id

name

password

sex

type

enter

max_no

cur_no

读者编号

姓名

密码

性别

读者类型

注册年份

最大借阅数

当前借阅数

char(5)

varchar(30)

varchar(30)

char

(2)

varchar(6)

int(4)

int(4)

int(4)

No

No

No

Yes

Yes

Yes

No

No

No

No

No

No

No

No

No

No

book

isbn

title

author

publisher

price

type

suo

copy_no

in_copy

书号

书名

作者

出版社

价格

图书类型

索书号

副本数

在馆副本数

varchar(20)

varchar(50)

varchar(50)

varchar(50)

float(8)

char

(1)

varchar(50)

int(4)

int(4)

No

No

Yes

Yes

Yes

Yes

No

No

No

No

No

No

No

No

No

No

No

No

copy

copy_id

isbn

on_loan

条码号

书号

当前是否可借

char(10)

varchar(20)

int(4)

No

No

No

No

No

No

type

type_no

t_name

类型编号

类型名称

char

(1)

varchar(50)

No

No

No

No

loan

copy_id

reader_id

out_date

due_date

条码号

读者编号

借出日期

应还日期

char(10)

char(5)

datetime(8)

datetime(8)

No

No

No

No

No

No

No

No

history

copy_id

reader_id

out_date

in_date

fine_type

fine_pay

fine_paid

条码号

读者编号

借出日期

实还日期

赔偿类型

应赔金额

实赔金额

char(10)

char(5)

datetime(8)

datetime(8)

int(4)

float(8)

float(8)

No

No

No

Yes

Yes

Yes

Yes

No

No

No

No

No

No

No

account

id

reader_id

time

type

money

票据号

缴费读者编号

缴费时间

缴费类型

缴费金额

char(5)

char(5)

datetime(8)

varchar(8)

float(8)

No

No

No

No

No

No

No

No

No

No

5.3关系表

librarian(id,name,tel,password)

PrimaryKeyid

reader(id,name,sex,enter,type,max_no,cur_no,password)

PrimaryKeyid

book(isbn,title,author,publisher,price,type,copy_no,in_copy)

PrimaryKeyisbn

ForeignKeytypereferencestype(type_no)

copy(copy_id,isbn,on_loan)

PrimaryKeycopy_id

ForeignKeyisbnreferencesbook(isbn)

loan(copy_id,reader_id,out_date,due_date)

PrimaryKey(copy_id)

ForeignKeycopy_idreferencescopy(copy_id)

ForeignKeyreader_idreferencesreader(id)

history(copy_id,reader_id,out_date,in_date,fine_type,fine_pay,fine_paid)

PrimaryKey(copy_id,reader_id,out_date)

ForeignKeycopy_idreferencescopy(copy_id)

ForeignKeyreader_idreferencesreader(id)

type(type_no,t_name)

PrimaryKeytype_no

account(id,reader_id,time,type,money)

PrimaryKey(id)

ForeignKeyreader_idreferencesreader(id)

六、数据库物理设计

6.1索引

建立索引的列

事务

原因

librarian

id

a,h,o

搜索条件

reader

id

d,e,f,g,k,m,n,r,s,t,u

搜索条件

book

isbn

b,c,i,g,q

搜索条件

p,v

分组

copy

copy_id

c,j,q

搜索条件

loan

copy_id

e,m,s,t

搜索条件

reader_id

e,m,s,t

搜索条件

history

copy_id,reader_id

f,n,s,v

搜索条件

account

id

t,u

排序

reader_id

t,u

搜索条件

type

type_no

p

搜索条件

6.2视图

1.该系统需经常查询某个读者当前借阅书刊的详细信息,为简化多表查询,故建立视图OnloanView,该视图定义如下:

CREATEviewOnloanView

as

selectbook.isbn,title,author,publisher,enter,reader_id,out_date,due_date

frombook,copy,loan

wherebook.isbn=copy.isbnandcopy.copy_id=loan.copy_id

2.该系统需经常查询某个读者历史借阅的详细信息,为简化多表查询,故建立视图HistoryView,该视图定义如下:

CREATEviewHistoryView

as

selectbook.isbn,title,author,reader_id,out_date,in_date

frombook,copy,history

wherebook.isbn=copy.isbnandhistory.copy_id=copy.copy_id

6.3安全机制

1.系统安全

并没有给每个数据库用户分配一个认证标识,均使用超级用户sa连接数据库,数据库用户所能做的操作在应用程序中加以控制,来保证系统安全。

2.数据安全

基本上没有用户对基本表和视图操作的权限控制,这些均在应用程序中加以控制,来保证数据安全。

6.4触发器

1.当有读者借阅书刊时,应向表loan中插入一个新元祖,同时还应及时更新其他相关表中的某些数据,包括更新表book相应元祖的可借副本数减一,更新读者信息表中该读者当前借阅量加一,更新表copy相应副本的状态为借出。

触发器定义如下:

CREATEtriggerLoanInsert

onloan

forinsert

as

updatecopyseton_loan=0fromcopycinnerjoininsertedionc.copy_id=i.copy_id

updatebooksetin_copy=in_copy-1frombook,copy,inserted

wherebook.isbn=copy.isbnandcopy.copy_id=inserted.copy_id

updatereadersetcur_no=cur_no+1fromreaderrinnerjoininsertedionr.id=i.reader_id

2.当某本书刊有新的副本入馆时,应向表copy中插入一个新元组,同时应及时更新表book中副本数加一,在馆副本数加一。

触发器定义如下:

CREATEtriggercopy_insert

oncopyforinsert

as

updatebooksetcopy=copy+1frombookbinnerjoininsertedionb.isbn=i.isbn

updatebooksetin_copy=in_copy+1frombookbinnerjoininsertedionb.isbn=i.isbn

七、应用程序设计

7.1功能模块

7.1.1.管理员业务模块

1.系统管理模块。

功能包括查看,修改管理员个人信息;添加,删除管理员信息;修改个人密码;退出系统。

添加新管理员,管理员编号自动生成,初始密码为编号。

2.借阅者信息管理模块。

功能包括检索读者详细信息;添加新读者,删除读者等。

检索读者详细信息包括多条目精确检索和模糊检索。

模糊检索时,只需输入关键字,即可检索得到对应读者。

添加新读者时,系统自动生成读者编号,初始密码为该编号,输入读者的相关信息,提交即可添加新读者。

删除读者时,若该读者存在借阅图书未还的情况,则系统提示暂无法删除。

输入读者编号,可查询核实读者的相关信息,提交即可删除该读者,同时删除其相关记录的所有信息。

3.借/还书业务模块。

功能包括检索借书登记,还书登记,违章缴款和书刊挂失。

1)借书登记

读者借阅图书时,管理员输入读者编号,可查询读者及其当前借阅书刊的详细信息;输入要借阅书刊的条码号,可核实该书的详细信息;点击提交提交借书请求。

结束成功后,该读者当前借阅信息将添加新借阅书刊,令管理员方便的核实提交是否成功。

以下几种情况任意一种情况发生,读者都暂时无法借书:

①该读者当前借阅量已达最大借阅量;

②该读者有借阅图书已超期未归还;

③该读者有违章罚款未缴纳。

2)还书登记

读者归还书刊时,只需输入书刊的条码号,可查询该书的详细信息,点击还书提交提交还书请求。

若借阅超期,系统提示超期信息并询问是否缴费,若缴费则核实缴费金额和操作,若暂不缴费,则该未缴罚款将被记录,可供读者查询。

3)罚款缴费

有罚款记录的读者进行缴费时,只需输入读者编号,便可查询到该读者所有的罚款未缴的记录,每条记录后面附有缴款条目,确认缴款只需点击相应的条目即可完成,缴款成功后,原“缴款”字样变为“已缴费”,简化了管理员的工作,显示信息简单明了,具体见界面设计。

4)书刊挂失

借阅书刊遗失,读者可进行挂失。

挂失操作时,只需输入读者编号,即可查询读者当前借阅书刊的详细信息,每条记录后附有挂失一栏,读者确认挂失某本书刊,管理员只需点击挂失一栏,若“挂失”字样变为“已挂失”,则挂失成功。

4.库存管理模块

功能包括检索书刊详细信息,添加书刊,删除书刊。

检索书刊详细信息包括多条目精确检索,模糊检索和检索副本信息。

模糊检索时,只需输入关键字,即可检索得到相应图书详细信息。

该信息还包括图书是否可借的情况。

添加书刊包括添加新书和添加新副本。

添加新书时,输入书刊的相关信息和副本数,新副本号系统自动生成,添加成功后,显示副本号范围。

添加新副本时,输入书号和副本数,可查询核实书刊详细信息,新副本号系统自动生成,添加成功后,显示副本号范围。

删除书刊包括删除指定书刊和删除指定副本。

删除指定书刊时,输入书号可查询书刊详细信息,若当前书刊有外借副本,则系统提示暂无法删除;点击提交提交删除请求,则删除该书刊及所有副本的相关信息。

删除指定副本时,输入书号可查询书刊详细信息,若当前副本外借,则系统提示暂无法删除;点击提交提交删除请求,则修改该副本相关信息并修改书刊的相关信息。

5.统计报表模块

有时,图书管理员需要搜集使用信息,主要是为管理层提供参考。

通常需要了解一些关于流通量,各种书的受欢迎程度,归还可靠度以及平均借阅时间等信息。

由于其中某些信息的衡量标准不容易确定,所以本模块只选取了两个衡量标准相对明确的统计功能,分别是热门借阅和平均借阅时间。

热门借阅可查询所有书刊以及各类书刊近30天内借阅情况,按借阅次数排行,显示前20本书刊详细信息以及借阅次数。

此类数据也可供读者对书刊的借阅进行参考。

平均借阅时间功能可统计某段时间内借阅以还的图书的平均借阅时间,对时间的输入有良好的校验。

7.1.2.读者模块

1.读者信息管理模块

读者可查看个人信息,并修改个人密码。

2.书刊借阅模块

列出读者当前的借阅信息和历史借阅信息。

当前借阅书刊的每个条目后有一栏续借,读者只需在需要续借的书刊后点击续借,即可实现书刊的续借。

若续借成功,显示“续借成功字样”;若已续借,则提示超过最大借阅次数无法续借。

3.违章缴款模块

列出读者当前所有违章信息和缴款记录。

违章信息及所有未缴罚款项,提示读者缴纳罚款及罚款详细情况。

4.账目清单模块

列出读者所有缴款的相关记录。

包括票据的流水号,缴款的具体时间,罚款类型及金额,简单明了。

5.书目检索模块

同管理员业务库存管理业务查询功能。

6.热门借阅模块

同管理员业务统计报表业务查询热门借阅功能。

7.2界面设计

界面设计风格简单明了,朴实自然,便于操作。

尽可能列表直接显示查询结果,避免数据的输入,方便用户使用。

图1.管理员登录主界面

图2读者登录主界面

图3读者查看书刊借阅界面

注:

读者要想续借某本图书,只需点击续借即可借阅。

方便了读者用户的使用。

7.3事务设计

图书馆管理信息系统涉及的最关键的部分就是读者借还书刊,下面对这两个事务的设计做简单阐述。

1.借阅书刊

读者身份及借阅情况核实后,提交读者借阅请求,此时需向表loan中插入该读者借阅的相关信息,同时更新表book,copy,reader。

为保持数据库数据的完整性,用触发器实现以上操作,详见6.4.1.

2.归还书刊

读者归还书刊,核实书刊的相关信息后,需删除表loan中的相应元祖,并在表history中插入一个新元组,同时更新表book,copy,reader。

由于从表loan中删除元祖有两种情况,一种是读者归还书刊,一种是借阅书刊的挂失,两种情况所作操作有所不同,所以该部分未用触发器实现,具体sql如下:

sql="deletefromloanwherecopy_id='"+isbn.getText()+"'";

sql="updatecopyseton_loan=1wherecopy_id='"+isbn.getText()+"'";

sql="updatebooksetin_copy=in_copy+1wherebook.isbn

in(selectisbnfromcopywherecopy_id='"+isbn.getText()+"')";

if(pareTo(duecal)<=0){

sql="insertintohistory(copy_id,reader_id,out_date,in_date,fine_type,fine_pay,fine_paid)values('"+isbn.getText()

+"','"

+reader_id

+"','"

+out_date+"','"+in_date+"','正常',0,0)";

}

else{

money=0.1*val;

df=newDecimalFormat("#0.0");

money=0.1*val;

sql="insertintohistory(copy_id,reader_id,out_date,in_date,fine_type,fine_pay,fine_paid)values('"+isbn.getText()

+"','"

+reader_id

+"','"

+out_date

+"','"

+in_date

+"','借阅超期',"

+df.format(money)+",0)";

}

八、测试和运行

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1