数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告
数据库课程设计(论文)说明书
题目:
系别:
专业:
学生姓名:
学号:
指导教师:
2011年3月7日
摘要
本文介绍了在Delphi+SQLServer2000环境下开发图书管理系统的过程,阐述了系统结构设计和数据库设计,并给出了具体的实现过程和关键技术。
在本文中,给出了该系统的整个系统分析、设计以及实现的过程,包括需求分析、功能模块的分析与设计、数据模式的分析与设计,最后是系统的Delphi实现。
系统的功能主要有图书查询、借阅查询、新书录入、图书删除、读者录入、读者删除、图书借阅、图书续借、图书归还等基本功能。
关键词图书;数据库;SQLServer2000;Delphi;组件
目录
引言………………………………………………………………………4
1系统的目标及任务(四号黑体)……………………………………5
1.2☆☆☆、☆☆☆☆…………………………………………………………4
2系统需求分析………………………………………………6
2.功能需求…………………………………………………………6
2..可行性分析………………………………………………………………6
2..系统实现数据流图……………………………………………………………7
2..系统功能模块设计……………………………………………………………10
2..数据库设计……………………………………………………………11
2..图书馆管理系统E-R图…………………………………………………12
2..软件设计……………………………………………………………13
2..软件测试过程……………………………………………………………23
••••••
5结论…………………………………………………………………23
一、引言
图书馆作为一种信息资源的集散地,包含很多信息数据的管理,随着图书数量的不断增多和图书馆规模的不断扩大,管理这些庞大的图书资源显得非常困难。
根据调查得知,传统的图书管理主要方式是手工管理,比如对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行;对借阅者的借阅权限以及借阅天数等用人工计算、手抄进行。
这种传统的数据信息处理方式,不仅工作量大,容易出错,而且由于数据繁多,容易丢失,不易查找。
基于这些问题,本文所设计的图书管理信息系统,可以使图书管理工作规范化、系统化、科学化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
图书馆管理系统是一些单位不可缺少的部分,书籍是人类不可缺少的精神食粮,尤其对一些学校来说,尤其重要。
所以图书馆管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理图书、期刊、试卷合订本等,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对图书资源信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高图书馆管理的效率,也是企业、学校的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套图书馆管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强.数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析如此情况,我们使用微软公司的VISUALBASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。
由于图书馆主要从事大量的图书资料的储存和流通。
所以一直以来,计算机在图书馆的图书管理中得到了广泛的应用。
目前,本单位教师较多,借科技书籍情况日益增长。
本系统就是要达到对教师人员借科技书籍的日常管理,能快速完成,并对信息进行数据库管理的目的。
为了适应本系小型图书馆业务发展的需要,解决问题。
经过考察比较,决定利用自己的力量对本单位的小型图书管理系统进行重新改造。
使新系统不仅能利用当前的软件开发技术和校园网建设成果,方便读者查询、借阅操作,解决流通中存在的问题。
而且,能结合本单位资金投入有限、图书需求量大等特点,对图书管理中各业务环节的加强管理。
所以系统在实现时,实现传统的验收、编目、典藏、流通和管理等环节。
系统的目标及任务
本系统开发的总的设计目标是实现图书管理的系统化规范化和自动化实现对图书资料和读者信息的集中统一的管理。
基于图书馆
图书馆规模大、图书信息更新快、图书数量多、需要处理和管理的信息量很大。
借阅,管理读者的借书与还书。
管理
包括对读者信息、图书信息、借阅信息、旧书处理信息、会员取消信息等多方面的管理。
系统需求分析
图书管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
图书管理系统需要满足来自三方面的需求,这两个方面分别是图书借阅者、图书馆管理人员。
图书借阅者的需求是查询图书馆所存的图书、个人借阅情况;图书馆管理人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认,同时对图书借阅者、图书进行管理和维护,及系统状态的查看、维护。
图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
数据库在DBMS中扮演着极其重要的角色,所以能对系统数据库进行安全和全面地管理也成为了图书管理者的一个重要需求。
这形成了学校图书馆管理系统的一个有机工作整体,采用计算机平台进行自动化信息处理,可方便快捷地共享信息、交流信息,高效地协同工作。
在软、硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,可以很简单方便的管理各种图书信息。
硬件需求的配置要求不能太高,这样可以很好的适应当前的学校图书馆。
从对图书馆借阅管理系统的特点入手,可以得出基本的系统需求分析情况。
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、书籍、借阅的信息等。
本系统结构分为读者信息管理模块、书籍信息管理模块、借阅信息管理模块等。
读者信息管理部分有两方面的功能:
可以浏览读者的信息、可以对读者信息进行维护。
书籍信息管理可以浏览书籍的信息、可以对书籍信息进行维护。
借阅信息管理可以显示当前数据库中书籍借阅情况、可以对借阅信息进行维护、管理者信息管理可以显示数据库中管理者的情况、可以对管理者信息进行维护。
系统参数信息管理可以实现对系统相关参数的设置和控制。
此外,为方便读者的查询,还应该设置对书目数据的检索功能。
功能需求:
新图书信息入库:
建立图书入库信息,以便读者进行查询和借阅。
修改图书信息:
在建立信息库时可能因操作错误或其它情况而造成数据库里图书信息的错误,需要修改这些错误。
整理图书库:
图书因使用过久或信息过时需做下架处理,或者在读者借阅书籍时发生遗失的情况下需做遗失处理,这些都需要修改数据库关于书籍的信息。
读者信息管理:
读者一般都是在校的学生和教师。
读者则会有新生入学和老生毕业等情况出现,这些都需要修改数据库关于读者的信息。
借书:
图书馆主要的功能就是提供书籍供读者借阅,在借阅图书时应按图书馆的规则进行借阅,例如不超过5本,如果已有超时借阅的图书,则在归还前不允许再借阅等等。
还书:
对所还的图书再入库,以供其他的读者继续借阅。
信息查询:
一般读者在借阅书籍前都需查询图书馆关于所借书籍的大概信息:
该图书是否在馆、是否已借出、;除查询书籍外,读者还可查询关于自身的信息;是否有超期未还的图书,还可借阅书籍数目等。
可行性分析:
这个开发是我们作为数据库课程实践的一项应用工程,任课老师对此十分的重视.希望在课程规定时间内将该数据库系统开发出来,当然如能投入使用更好,以使我们在巩固课堂所学理论知识的基础上对实践有所了解,对图书馆管理的数字化及现代化能起到一些创新促进作用。
虽然如今一些大型的图书馆管理系统基本上已经很先进了,但作为信息管理系统的代表,这次的小型图书馆信息管理系统的开发对本科学生数据库理论的实践还是有一定帮助的,因此这个系统在管理上是可行的。
本次图书馆管理信息系统的开发根据本学期软件工程课程的一些基本要求,使用传统的生命周期法,即给管理信息系统的开发定义一个过程,对其每一个阶段规定它的任务,工作流程,管理目标以及要编制的文档等,使开发工作易于管理和控制,形成一个可操作的规范。
同时,系统需要对数据库的灵活和快捷的操作,因此强大的SQL语言是开发此类数据库系统的最佳选择。
NetBeans本身所携带的面向对象程序的开发界面,以及对SQL的支持,符合本系统的开发需求。
正确的理论指导和优秀的开发工具,双重保证了我们这次开发的技术可行性。
首先,从经济效益上讲,而本系统的开发,为统计人员工作效率带来了一个质的飞跃:
第一,本系统的运行可以代替人工进行许多繁杂的劳动;
第二,本系统的运行可以节省许多资源;
第三,本系统的运行可以大大的提高统计人员的工作效率;
其次是,从所需投入来讲,对于一个中小型的图书馆管理系统来说,它的投资成本是十分的低的,应该不会超过5000元。
当然,对于我们作为课程设计的系统实现来说,投资成本基本上不用考虑,而一旦开发成功,即可以在此基础上添加外部设备,用于Internet服务,甚至会带来意料之外的收益。
而对我们来说,此系统的开发给了我们实践的机会,数据库对我们来说不再只是书本上简简单单的三个字,而是能完成某个功能的可用之物,加深了我们对书本知识的理解和掌握,这是我们另一项收益,无论开发是否完美无缺,这项收益都是存在的,而且是最重要的。
所以,此系统在经济上也是可行的。
系统实现数据流图
1、系统查询功能实现的流程图:
查询功能实现流程图
2、图书处理数据流程图:
图书处理数据流程图
三、系统功能模块设计
系统功能示意图如图1所示。
图1 图书管理系统功能模块示意图
系统完成功能主要有:
◆ 读者管理:
管理读者的相关信息,读者查询系统,读者的借阅书情况。
◆图书管理:
管理图书馆的图书。
◆查询管理:
管理用户查阅信息的情况。
◆借阅管理:
管理图书的借阅和归还。
◆回收管理:
管理已经回收的图书和已经取消的会员信息。
◆帮助:
提供有关的帮助信息。
数据库设计
实现图书管理系统至少需要如下几张表,图书表存储图书信息,读者表存读者信息,借书表存储借书情况的相关信息,图书回收表存储图书回收的相关信息,会员取消表存储取消读者的相关信息。
数据库表的结构:
图书表:
读者表:
借书表:
图书回收表:
会员取消表:
管理者:
图书馆管理系统E-R图
系统的总体E-R图。
软件设计
1、登录界面设计:
有label、edit、button、combobox等组件。
实现代码:
procedureTForm1.Button1Click(Sender:
TObject);
begin
withdatamodule20do
begin
withadoquery1do
begin
ifcombobox1.ItemIndex=0then
begin
close;
sql.Clear;
sql.Add('select*from读者表where读者号='''+trim(edit1.text)+'''and密码=:
b');
//parameters.ParamByName('a').Value:
=trim(edit1.Text);
parameters.ParamByName('b').Value:
=trim(edit2.Text);
Open;
ifRecordCount>0then
begin
form22.Show;
form1.Hide;
end
else
begin
ifmessagedlg('用户名或密码错误,请重新输入!
',mterror,[mbyes,mbno],0)=mrnothen
form1.Close;
edit1.Clear;
edit2.Clear;
end;
end
elseifcombobox1.ItemIndex=1then
begin
close;
sql.Clear;
sql.Add('select*from管理者where管理者编号=:
aand密码=:
b');
parameters.ParamByName('a').Value:
=edit1.Text;
parameters.ParamByName('b').Value:
=edit2.Text;
Open;
ifRecordCount>0then
begin
form2.Show;
form1.Hide;
end
else
begin
ifmessagedlg('用户名或密码错误,请重新输入!
',mterror,[mbyes,mbno],0)=mrnothen
form1.Close;
edit1.Clear;
edit2.Clear;
end;
end;
end;
end;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
ifmessagedlg('是否要退出!
',mtwarning,[mbyes,mbno],0)=mryesthen
form1.Close;
end;
end.
2、图书信息维护界面设计:
有button、label、dbedit、adocconnetction、datasource、adotable等组件
实现代码:
unitUnit3;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,ExtCtrls,DBCtrls,Grids,DBGrids,DB,ADODB,StdCtrls,Mask,
RpDefine,RpCon,RpConDS;
type
TForm3=class(TForm)
Label1:
TLabel;
Label3:
TLabel;
Label2:
TLabel;
Label4:
TLabel;
Label5:
TLabel;
DBEdit1:
TDBEdit;
DBEdit2:
TDBEdit;
DBEdit3:
TDBEdit;
DBEdit4:
TDBEdit;
ADOConnection1:
TADOConnection;
ADOTable1:
TADOTable;
DataSource1:
TDataSource;
DBGrid1:
TDBGrid;
DBNavigator1:
TDBNavigator;
Button1:
TButton;
Button2:
TButton;
Button3:
TButton;
Button4:
TButton;
Button5:
TButton;
Button6:
TButton;
Button7:
TButton;
Button8:
TButton;
Label6:
TLabel;
Label7:
TLabel;
DBEdit5:
TDBEdit;
DBEdit6:
TDBEdit;
Button9:
TButton;
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureButton3Click(Sender:
TObject);
procedureButton4Click(Sender:
TObject);
procedureButton5Click(Sender:
TObject);
procedureButton6Click(Sender:
TObject);
procedureButton7Click(Sender:
TObject);
procedureButton8Click(Sender:
TObject);
procedureButton9Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form3:
TForm3;
implementation
usesUnit15;
{$R*.dfm}
procedureTForm3.Button1Click(Sender:
TObject);
begin
datasource1.DataSet.Append;
end;
procedureTForm3.Button2Click(Sender:
TObject);
begin
datasource1.DataSet.Delete;
end;
procedureTForm3.Button3Click(Sender:
TObject);
begin
datasource1.DataSet.Edit;
end;
procedureTForm3.Button4Click(Sender:
TObject);
begin
datasource1.DataSet.Post;
end;
procedureTForm3.Button5Click(Sender:
TObject);
begin
datasource1.DataSet.first;
end;
procedureTForm3.Button6Click(Sender:
TObject);
begin
datasource1.DataSet.last;
end;
procedureTForm3.Button7Click(Sender:
TObject);
begin
datasource1.DataSet.prior;
end;
procedureTForm3.Button8Click(Sender:
TObject);
begin
datasource1.DataSet.Cancel;
end;
procedureTForm3.Button9Click(Sender:
TObject);
begin
form15.QuickRep1.preview
end;
end.
3、读者信息维护界面设计:
同图书信息维护的原理相同
4、借书界面设计:
有button、label、adoquery、datasource、adotable、dbgrid等组件
实现代码:
procedureTForm8.Button2Click(Sender:
TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select*from读者表where读者号='+edit1.text+'');
ADOQuery1.Open;
end;
procedureTForm8.Button3Click(Sender:
TObject);
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select*from图书表where书号='+edit2.text+'');
ADOQuery2.Open;
end;
procedureTForm8.Button1Click(Sender:
TObject);
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('insertinto借书表(书名,读者号,姓名,书号)select书名,读者号,姓名,书号from图书表,读者表where读者号='+edit1.Text+'and书号='+edit2.Text+';update图书表set剩余册数=剩余册数-1where书号='+edit2.Text+';update读者表set可借书数=可借书数-1where读者号='+edit1.Text+';update借书表set借书日期=getdate(),还书日期=(getdate()+30)where读者号='+edit1.Text+'and书号='+edit2.Text+';select*from借书表where读者号='+edit1.Text+';');
ADOQuery3.open;
end;
procedureTForm8.Button4Click(Sender:
TObject);
begin
form8.Hide;
Form2.show
end;
procedureTForm8.Button5Click(Sender:
TObject);
begin
datasource3.DataSet.Post;
end;
end.
5、还书界面设计:
有button、label、adoquery、datasource、adotable、dbgrid等组件
实现代码:
procedureTForm9.Button1Click(Sender:
TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select*from借书表where读者号='''+edit1.text+'''');
ADOQuery1.Open;
end;
procedureTForm