图书馆数据库程序设计.docx

上传人:b****7 文档编号:8936730 上传时间:2023-02-02 格式:DOCX 页数:20 大小:300.73KB
下载 相关 举报
图书馆数据库程序设计.docx_第1页
第1页 / 共20页
图书馆数据库程序设计.docx_第2页
第2页 / 共20页
图书馆数据库程序设计.docx_第3页
第3页 / 共20页
图书馆数据库程序设计.docx_第4页
第4页 / 共20页
图书馆数据库程序设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

图书馆数据库程序设计.docx

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

图书馆数据库程序设计.docx

图书馆数据库程序设计

目录

第1章绪论................................................................2

第2章需求分析.............................................................2

§2.1数据需求.............................................................2

§2.2事务需求.............................................................3

§2.2.1用户登录...................................................3

§2.2.2数据录入...................................................3

§2.2.3数据更新/删除..............................................3

§2.2.4数据查询/统计.............................................3

§2.2.5借书/还书(关键业务)........................................3

§2.3业务规则...........................................................4

第3章总体设计...........................................................4

§3.1系统的软件结构图..................................................4

§3.2功能的操作流程....................................................5

§3.3安全设计..........................................................6

第4章数据库设计..........................................................6

§4.1概念结构设计.....................................................7

§4.2逻辑结构设计.....................................................8

§4.3物理结构设计.....................................................8

第5章编码..............................................................10

第6章总结.................................................................14

§6.1结论.................................................................14

§6.2学习体会............................................................14

附录4参考文献...........................................................15

 

第1章绪论

随着网络技术的普及,各个行业都在积极使用现代化的管理工具,不断改善服务质量,提高工作效率。

在图书馆管理中,人工管理工作量大,数据繁琐,容易出错,并且在工作流程中可能会出现各种各样的问题。

面对信息时代的机遇和挑战,利用科技手段提高图书馆管理无疑是一条行之有效的途径。

计算机管理系统满足了图书馆对资源管理的新要求,减少了资源管理过程中浪费的大量人力、物力和财力等。

信息与科技在图书馆管理中显现出越来越重要的地位。

管理系统解决了图书的入库,借阅,归还,查找,罚款,统计等一系列操作流程中的数据信息的处理问题,还可以提供一系列的数据分析,辅助采购者合理地选择购买图书,辅助图书馆领导查看各员工的工作情况,并对图书流通过程进行跟踪管理,相应流通的全程记录管理和有关信息的数据统计管理。

因此,图书管理系统的全面应用规范了业务流程,提高了图书馆的管理水平,减轻了工作人员的工作负担,加快了图书流通的速度,进而提高了图书的利用率。

本系统采用了结构化设计方法,并在数据量、并发数量等方面采取一定的技术,以实现数据库应用的相关要求。

第2章需求分析

§2.1数据需求

图书馆每位职工信息包括职工编号,职工姓名,性别,参加工作时间,职工职务,职工电话,职工工作馆室号,而且每一位职工都有一个职工编号,职工编号可以唯一标识职工。

用户登录系统时需要输入用户名和密码。

然后选择不同的用户类别,根据不同的类别查询该用户是否合法,判断是否可以正常登录。

密码有初始化默认值,还可由用户自己修改。

读者信息包括:

读者编号,读者姓名,读者性别,读者类别编号,读者所在学院,读者所属专业,读者的班级,办证日期;读者编号可以唯一标识读者。

图书数据包括:

图书编号,ISBN号,书名,作者,出版社,单价,图书类别编号,是否可借,状态(是否在库),馆室号,丢失罚款倍数;其中图书编号可以唯一标识图书。

读者类别信息包括:

读者类别编号,读者类别,允许借阅图书最大数(不同类别的读者有不同的借书数量限制),持有图书最长期限,借阅证期限;读者类别编号可以唯一标识读者类别。

图书类别包括:

图书类别编号,图书类别名,允许借书最大值(例如文学类最多可借两本),超期日罚款金额。

借阅信息包括:

读者编号,图书编号,借阅时间,借阅操作员,归还时间,归还操作员,应还时间,罚款金额(丢失罚款金额或超期罚款金额),罚款原因(丢失或超期)。

馆室信息包括:

馆室号,馆长,馆室图书库存量,馆室地点。

读者借书过程中需要有一定的借阅规则加以限制,不同类型的读者借阅不同类型的图书,允许借书的数量最大限制不同,允许持有的期限也不同,因此借阅规则包括:

图书类别编号,读者类别编号,允许借阅图书最大数,持有图书最长期限。

§2.2事务需求

在图书管理系统中,图书馆工作人员要为每个读者建立借阅账户,并给读者提供不同类别的读者编号,账户内存储读者的个人信息和借阅记录信息。

拥有读者编号的读者可以通过管理员(作为读者的代理人与系统交互)借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况。

§2.2.1用户登录

用户登录系统时需要输入用户名和密码。

系统根据用户名找到用户的类别,然后根据不同的类别进入不同的登陆界面。

§2.2.2数据录入

1.由图书馆工作人员录入员工的详细信息情况

2.由图书馆工作人员录入读者的详细信息情况

3.由图书馆工作人员录入图书的详细信息情况

4.由图书馆工作人员录入图书借阅协议的详细情况

§2.2.3数据更新/删除

1.更新/删除员工信息

2.更新/删除读者信息

3.更新/删除图书信息

4.更新/删除图书借阅协议信息

§2.2.4数据查询/统计

1.按照员工编号或员工姓名查询员工的具体信息

2.按照读者编号或读者姓名查询读者信息,并且显示该读者信息和历史借阅情况

3.按照图书书名,图书索书号,作者,出版社等信息检索图书

4.分类查询图书馆的藏书情况,显示图书种类,册数,总价值

5.统计每位员工在某段时间的工作量

6.统计每类图书在某段时间的借阅量,并按照借阅量排序

7.统计指定读者在某段时间的借阅量

8.统计所有读者在某段时间的借阅量,并按照借阅量排序;按照读者所在的学院或专业分类统计借阅量;

9.统计所有图书在某段时间的借阅量,并按照借阅量排序;

§2.2.5借书/还书(关键业务)

借阅图书时,先输入读者的读者编号,系统验证借阅编号的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息,供管理员人工核对。

然后输入要借阅的图书编号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。

最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量,修改此本图书的状态。

归还图书时,输入图书编号(或丢失标记号),系统验证是否有此借阅纪录以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。

如果有超期借阅或丢失情况,先转入过期罚款或图书丢失处理。

然后提交还书请求,系统接受后删除借阅纪录,并登记还书记录,修改可借阅图书的数量和图书状态。

§2.3业务规则

该系统的业务规则主要是对不同类型的读者及不同类型的图书的借书数量和时间的限制,比如说教职工和本科生的允许借书的最大量不同,允许借书的期限也不同,而文学类和自然科学类允许借书的数量也不同;如果图书丢失,不同的图书的罚款倍数不等;在超期的情况下,不同的图书,不同的读者类型,日罚款金额可能也不相同。

第3章总体设计

§3.1系统的软件结构图

系统的软件结构如图3-1所示。

图3-1

§3.2功能的操作流程

§3.2功能的操作流程

 

职工管理流程图:

读者管理流程图:

图书管理流程图:

图书借阅流程图:

图书归还流程图:

§3.3安全设计

数据库必须有口令保护。

在图书馆数据库中建立Adm(Username用户名,Password用户密码,UserStyle用户类型)关系表,用户在进入程序登录界面时需输入正确的用户名和用户密码(以确定用户的身份的合法性),才能访问数据库应用程序的功能实现。

不同类型的用户登录会进入不同的界面,拥有不同的查询或操作权限。

当用户以馆长的身份登录时,拥有对职工信息的管理(包括增加员工,删除员工,修改员工信息)权限及对职工某段时间工作量的查询统计等权限,而以普通职工登录时则没有此访问权限,只能对职工信息进行查询。

当读者登录时,只能在适合他们查询的窗口中看到所需的个人信息和图书信息,可以对图书进行检索,查询统计,而不能对图书信息进行修改,只有某些特定工作人员才能对数据库中的图书信息进行管理操作(增加,删除,修改),这样可以维护数据库数据的安全性和完整性。

第4章数据库设计

§4.1概念结构设计

根据前面的需求分析,首先图书馆系统数据库要包含图书信息,读者信息,管理员信息,这样就确定了图书(book),读者(reader),职工(staff)三个实体。

当读者借阅图书时会产生一条借阅记录,也将借阅(borrow)作为一个实体。

当借阅图书超期时需要进行罚款,且借阅提图书一定要有个允许借阅最大量,因此需对借阅制定一个规则,规定不同类型读者,不同类型图书的借阅限制,这样又将借阅规则(borrowrule)作为一个实体,同时也隐含了要将图书类型(BookStyle),读者类型(ReaderStyle)作为实体来考虑。

考虑到图书可能分布于各个馆室,职工在不同的馆室工作,不同的馆室又有不同的图书存储量,馆长可以查询统计自己所管理的馆室的职工的工作量,就将馆室(Room)也作为一个实体。

为安全考虑,用户登录系统时需要输入用户名和密码,根据不同的用户类别查询该用户是否合法,判断是否可以正常登录。

因此将用户登录(Adm)作为一个实体。

这样所涉及到的实体就确定下来了。

根据前面的需求分析及各实体间的联系,就可以确定出各实体的属性(限于篇幅不再列出,下边内容有所体现),并画出ER图如图4-1:

 

图4-1

§4.2逻辑结构设计

将概念模型转化为逻辑结构,给出关系模型,以关系模式的形式给出如下:

图书类别(图书类别编号,图书类别名,超期日罚款金额)

读者类别(读者类别编号,读者类别,借阅证期限)

职工(职工编号,职工姓名,职工性别,职工参加工作时间,职工职务,职工电话,职工工作馆室号)

读者(读者编号,读者姓名,读者性别,读者类别编号,读者所在学院,读者所属专业,读者的班级,办证日期)

馆室(馆室号,馆长,馆室图书库存量,馆室地点)

图书(图书编号,ISBN号,书名,作者,出版社,出版时间,单价,图书类别编号,是否可借,状态,馆室号,丢失罚款倍数)

借阅信息(读者编号,图书编号,借阅时间,借阅操作员,归还时间,归还操作员,应还时间,罚款金额,罚款原因)

借阅规则(图书类别编号,读者类别编号,允许借阅图书最大数,持有图书最长期限)

用户登录(用户名,密码)

§4.3物理结构设计

数据库设计中各表如下所示:

4-1图书借阅表

读者编号

RID

char

10

主键

图书编号

BID

char

10

借出日期

OutDate

datetime

8

借出经手人

OSID

char

10

外键

还书日期

InDate

datetime

8

还书经手人

ISID

char

10

外键

应还日期

SReturn

datetime

8

罚款金额

Fine

float

8

4-2图书信息表

图书编号

BID

char

10

主键

ISBN号

ISBN

char

20

索书号

SearchBook

char

20

书名

BName

char

50

作者

BAuthor

char

20

出版社

Press

char

20

出版日期

PressDate

char

20

价格

Price

float

8

图书类别编号

BSID

char

10

外键

是否可借

Borrow

char

6

在馆状态

State

char

10

馆室号

LID

char

10

外键

罚款倍数

Finetime

float

8

 

4-3图书类别表

图书类别编号

BSID

char

10

主键

图书类别名

BSName

char

10

日罚款金额

Dayfine

float

8

4-4借阅规则表

图书类别编号

BSID

char

10

主键

读者类别编号

RSID

char

10

最大借阅量

LimitNum

int

4

最大借书期限

DeadLine

int

4

4-5读者信息表

读者编号

RID

char

10

主键

读者姓名

RName

char

10

性别

RSex

char

2

读者类别编号

RSID

char

10

外键

读者院系

RCol

char

20

专业

RDep

char

20

班级

RClass

char

10

办证日期日期

RDate

datetime

8

4-6读者类别信息表

读者类别编号

RSID

char

10

主键

读者类别名

RS

char

10

入学时间

SchoolTime

int

4

借书最大量

BookMax

int

4

4-7馆室信息表

馆室号

LID

char

10

主键

馆长

Manager

char

10

馆室库存量

LBNum

float

8

地址

Address

char

10

4-8职工信息表

职工编号

SID

char

10

主键

职工姓名

SName

char

10

性别

SSex

char

2

工作时间

SDate

datetime

8

职务

SDuty

char

10

联系方式

STel

char

20

馆室号

LID

char

10

外键

 

4-9用户信息表

用户登陆名

Username

char

20

主键

密码

Password

char

20

用户类型

UserStyle

char

10

 

第5章编码

以下是自己设计模块的程序界面截图及编码实现的方法的简单介绍:

1.登录界面:

在这个界面实现过程中主要使用了TADOConnection,TEditTbutton,TADOQuery,TButton,Tlabel等控件,核心代码如下:

ADOQuery1->SQL->Add("select*fromAdmwhereUsername='"+Edit1->Text+"'andPassword='"+Edit2->Text+"'");

if(ADOQuery1->Eof)

{ShowMessage("用户名或密码错误!

");

return;}

if(AnsiStrComp(s.c_str(),tt.c_str())==1)

{Form3->Show();return;}

elseForm2->Show();

图6-1

2.借阅界面:

主要使用了TEdit,TDBGrid,TdataSource,TADOQuery,TADODataSet,TButton,Tlabel,Tpanel,TTimer等控件,核心代码如下:

if(Edit1->Text!

=""&&Edit8->Text!

="")

{AnsiStringsql;

ADOQuery1->SQL->Clear();

sql="insertinto借书显示表(RID,RName,BID,BName,OSID,OutDate,SReturn)VALUES('"+Edit1->Text+"','"+Edit2->Text+"','"+Edit8->Text+"','"+Edit9->Text+"','"+Edit16->Text+"','"+Panel2->Caption+"','"+Panel5->Caption+"')";

ADOQuery1->SQL->Add(sql);

ADOQuery1->ExecSQL();

ADODataSet1->Active=false;

sql="select*from借书显示表whereRID='"+Edit1->Text+"'";

ADODataSet1->CommandText="";

ADODataSet1->CommandText=sql;

ADODataSet1->Active=true;

MessageBox(Handle,"成功借出","提示",MB_OK);

}

elseMessageBox(Handle,"借书信息不完整!

","警告",MB_OK);

图6-2

3.职工管理界面:

主要使用了TcomboBox,TADOConnection,TEdit,TDBGrid,TdataSource,TADOQuery,TButton,Tlabel等控件。

核心编码如下:

if(ComboBox1->Text=="职工编号")

{

sql="select*fromStaffwhereSID='"+Edit1->Text+"'";

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(sql);

ShowMessage("确定");

ADOQuery1->ExecSQL();

}

elseif(ComboBox1->Text=="职工姓名")

{

sql="select*fromStaffwhereSName='"+Edit1->Text+"'";

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(sql);

ShowMessage("确定");

ADOQuery1->ExecSQL();

}

else

{

ShowMessage("请选择查询方式");

return;

}

ADOQuery1->Active=true;

}

if(ComboBox1->Text=="职工编号")

{

sql="select*fromStaffwhereSID='"+Edit1->Text+"'";

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(sql);

ADOQuery1->ExecSQL();

sql1="deletefromStaffwhereSID='"+Edit1->Text+"'";

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(sql1);

ShowMessage("删除成功!

");

ADOQuery1->ExecSQL();

}

elseif(ComboBox1->Text=="职工姓名")

{

sql="select*fromStaffwhereSName='"+Edit1->Text+"'";

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(sql);

ADOQuery1->ExecSQL();

sql1="deletefromStaffwhereSName='"+Edit1->Text+"'";

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(sql1);

ShowMessage("删除成功!

");

ADOQuery1->ExecSQL();

}

else

{ShowMessage("请选择查询方式");

return;}

图6-3

第6章总结

§6.1结论

本次课程设计,我在概念结构设计和逻辑结构设计方面都倾注了大量的时间和精力。

在应用程序设计方面,借阅和归还这两个核心业务都能够比较好的实现,并且还能实现读者管理,图书管理,个人信息维护,查询和统计等常用的功能。

在一定程度上保证了数据库中数据的完整性和准确性。

通过考虑多方面的因素,最终保证了程序一定程度的健壮性。

虽然程序能够实现基本功能,但是程序本身需要改进的地方还有很多,如物理结构设计方面还存在不足;界面设计还不够尽善尽美,可能还没有最大限度的方便用户使用;有些功能设计的时候考虑到了,但由于难度较大并没有实现。

§6.2学习体会

在本次设计过程

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

当前位置:首页 > 高等教育 > 农学

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

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