数据库课程设计报告图书管理系统_第1页
数据库课程设计报告图书管理系统_第2页
数据库课程设计报告图书管理系统_第3页
数据库课程设计报告图书管理系统_第4页
数据库课程设计报告图书管理系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录第一章 绪论31.1 课题背景31.2 图书管理系统分析31.4 可行性分析41.5 开发设计思想4第二章 系统目标和原则52.1 系统设计目标52.2 系统设计原则5第三章 设计规划63.1 设计思路概要63.2 软件支撑环境及开发工具6第四章 需求分析74.1 需求概述74.2 功能需求74.3 事物需求84.4 系统数据流图8第五章 概念结构设计105.1 概念模型105.2 e-r图表示概念模型105.4 e-r图向关系模型转换13第六章 数据库设计146.1 逻辑结构设计146.2 物理结构设计14第七章 详细设计187.1图书管理系统流程1819第八章 设计总结238.1 报告

2、研制过程238.2 设计的特点248.3 设计的不足24第一章 绪论1.1 课题背景图书资料管理系统主要是针对高校的图书馆作为使用对象而开发的,作为一个典型的信息管理系统(mis),其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性,如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。经过详细的分析,选用borland公司的delphi作为前端开发工具,得用其提供的集成开发环境及各种控件,尤其是对数据库的支持完成对数据库的各种操作,达到对图书资料管理的目的。首先建立系统应用原型,然后

3、对原型系统进行需求抚迭代,不断修正和改进,直到形成用户满意的实际可行系统。delphi是面向对象的开发工具,具有很多的控件,可以方便的进行界面设计和数据库连接等各种操作,所以本次课程设计旨在学会建立在数据库基础上的应用软件开发,并对数据库概念有深入的了解,提高编程能力。因此我们选用delphi作为本次开发的语言。1.2 图书管理系统分析图书管理系统是为了极大地提高图书资料管理的效率,从而设计设计出的一个具有检索迅速、查找方便、可靠性高、存储量大等优点的一个管理系统。它完全取代了原来一直用人工管理的工作方式,减少了图书资料管理者的工作量和劳动强度,给图书资料信息的查找,更新和维护都带来了许多方便

4、。图书管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了图书资料管理的要求。整个系统的主要功能如下:1、登陆界面:提供身份安全检测的功能。2、主界面:提供系统的功能选择。3、图书管理:包括新书录入、图书变更、删除图书、图书查询等。4、客户管理:包括客户录入、客户信息变更、删除客户、基本信息查询等。5、系统用户管理:包括创建新用户、用户密码修改、删除用户、系统用户浏览等。6、借阅管理:包括权限设置、借书、还书、书证签发、参数设置等。7、图书浏览:可以对各个不同类别的图书进行选择性的浏览。1.1 目的及意义 这次的课程设计是在学习完数据库技术与应用原理的基础上进行的一次

5、系统性的训练,既是对所学知识的巩固,也是对自己综合运用所学知识解决实际问题的一次锻炼。这一系统的开发成功,解决了手写速度慢、容易出错的现状。无论是在书籍管理、读者管理等方面都可以帮助学校最迅速最准确的完成所需的工作。无论是在适用性、灵活性和易操作性方面都显示出了它的强大功能1.4 可行性分析对于图书管理信息的可行性分析,可以从以下几个方面来进行考虑(1)资源可行性分析在目前状况下,只需要一台个人电脑,安装了access 2003数据库管理软件就有了开发条件,在此基础上,任何一个人都可以充当人力资源中的一员,有了开发环境和人力资源后就可以进行图书管理系统数据库的设计。(2)工具可行性分析在当前环

6、境下,access 2003数据库软件技术已经开发得相当成熟了,可以运用该工具来实现图书管理系统的相关功能。(3)效益可行性分析由于该图书管理系统只一个很小的管理系统,在很多方面都有限制,还有许多需要完善的地方,使用性较差,不具备较高的经济效益,仅供练习使用。1.5 开发设计思想本系统的开发尽量采用目前现在学校现有的软,硬件环境以及先进的系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的.所开发的系统应符合学校图书管理系统的规定,满足学校对图书管理的需要,并达到操作过程中的直观,方便,实用等要求.第二章 系统目标和原则2.1 系统设计目标本图书管理系统的设计应该尽量达

7、到以下目标(1)保证各方信息交互的畅通和正确;(2)保证软件的安全、可靠、简便性;(3)保证软件的相对实用性;(4)利用信息数据的管理,提高工作效率及质量,提高组织、服务的管理水平;(5)为实现信息化的图书管理提供经验。2.2 系统设计原则本图书管理系统应该尽量遵循以下设计原则:(1)简单性:在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个图书管理系统来说是非常重要的。(2)实用性:程序应可以满足所有用户的基本需求,具有良好的实用性。(3)针对性:该系统平台针对某一个学校建立一个数据库来管理图书信息,所以具有专业突出和很强的针对性。第三章 设计规划3.1 设计思路概要本系统开发的任务

8、是实现图书管理的信息化、系统化、规范化。目的是开发一个具有添加,查询,修改,更新,维护等功能的比较强大的数据库管理系统。通过熟悉开发环境和数据库系统,本系统前台开发工具采用可视化编程工具delphi,后台数据库采用access 2003数据库。本图书管理系统需要完成的功能主要有以下几点:1、各种管理信息的输入,其中包括图书管理信息、客户管理信息和系统用户管理信息的输入。2、各种基本信息的修改和查询,其中包括图书信息、客户信息和系统用户信息的修改和查询。3、借阅信息的管理,其中包括借书、还书和书证等信息的管理。4、图书浏览,即可以对不同类别的图书进行选择性的浏览。3.2 软件支撑环境及开发工具操

9、作系统:windows xp数据库管理系统:microsoft access 2003开发语言:delphi 第四章 需求分析4.1 需求概述(1)系统运行在windows平台上,要求有一个较好的图形用户界面,操作要求简单。(2)系统应该有很好的可扩展性,以便学校根据实际情况添加新的功能。4.2 功能需求图书馆管理信息系统需要完成功能主要有:1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。2读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。3书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。4书籍类别信息的查询、修改,包括类别编号、类别名称。5书籍库存

10、信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。6书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。7借书信息的输入,包括读者借书证编号、书籍编号、借书日期。8借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。9还书信息的输入,包括借书证编号、书籍编号、还书日期。 10还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。4.3 事物需求 (1)在读者信息管理部分,要求:a.可以查询读者信息。b.可以对读者信息进行添加及

11、删除的操作。(2 )在书籍信息管理部分,要求:a.可以浏览书籍信息。b.可以对书籍信息进行维护,包括添加及删除的操作。(3)在借阅信息管理部分,要求:a.可以浏览借阅信息。b.可以对借阅信息进行维护操作。(4)在归还信息管理部分,要求:a.可以浏览归还信息b.对归还信息可修改维护操作(5)在管理者信息管理部分,要求:a.显示当前数据库中管理者情况。b.对管理者信息维护操作。(6)在罚款信息管理部分,要求:a.可以浏览罚款信息。b.对罚款信息可以更新4.4 系统数据流图 数据流图是描述系统内部处理流程、用于表达软件系统需求模型的一种图形工具。本图书管理系统的数据流图如下:书籍类别设置 d5 归还

12、信息录入 基本信息录入 d2 d1书籍类别信息管理读者登记书籍登记 基本信息录入 基本信息录入 d3书籍信息管理读者信息管理 d4 借阅信息录入 读者信息返回 书籍信息返回 借阅信息管理超期罚款d6图4-1系统的数据流程图4.5 系统数据字典 数据流图是结构化分析中不可缺少的有力工具,它描述了系统的分解,即系统由哪些部分组成,各部分之间有什么联系等。但是,它还不能完整地表达一个系统的全部逻辑特征,特别是有关数据的详细内容。因此,仅仅一套数据流图并不能构成系统说明书,只有对图中出现的每一个成分都给出详细定义以之后,才能全面地描述一个系统。对数据流、数据存储和数据处理的详细描述,需要用数据字典(d

13、d)。它包括数据项、数据结构、数据流、数据存储、基本加工的详细条目。数据字典中把数据的最小单位定义为数据项,而若干数据项可以组成一个数据结构。数据字典是通过以数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。根据系统功能模块结构图和图书管理流程,以及图书管理系统的需求,总结出如下的数据字典:读者个人数据:读者个人与图书借阅有关的身份数据,包含的数据项有书证编号、客户编号、办理价格值、借书上限、书证签发日期;图书类别数据:用于编目图书的类别数据,包含的数据项有图书类别编号与名称;图书书目数据:用于图书编目使用的书目数据,包含的数据项有图书编号、书名、作者、类别编号、出版社编号、版次、版本号

14、、定价、备注信息;出版社类别数据:用于编目出版社的类别数据,包含的数据项有书籍出版编号、出版社名称;图书借阅数据:包含的数据项有书籍编号,借书证号码,借书日期,还书日期;用户权限数据:包含的数据项有权限的编号、选择、更新、删除、插入;系统用户数据:图书馆内部人员使用图书管理系统的身份数据,包含的数据项有登陆编号、登陆用户名、登陆密码、权限编号、员工编号;馆内员工数据:包含的数据项有员工的编号、姓名、性别、年龄、出生日期、住址、登记日期、照片;客户个人数据:包含的数据项有客户的编号、姓名、性别、年龄、出生日期、住址、登记日期、照片;第五章 概念结构设计 5.1 概念模型概念结构设计就是从现实概念

15、中抽象出概念模型,即对信息世界建模,所以概念模型应该能方便、准确的表示信息世界中的常用概念。概念模型的表示方法最著名的是实体联系方法(entity-relationship approach),在该方法中实体用矩形表示,矩形框内写明实体名;属性用椭圆表示,并用无向边将其与相应的实体连接起来;联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁表上联系的类型(1:1,1:n或n:m)。5.2 e-r图表示概念模型书籍类别实体读者姓名类别名称图5-1类别实体e-r图读者信息实体读者借书证编号读者姓名读者性别读者种类e登记时间图5-2 读者信息实体e-r图书籍信息实

16、体书籍编号书籍名称书籍类别编号书籍作者出版时间收录时间是否被借出版社图5-3信息实体e-r图读者借书证编号书籍类别编号借阅时间隔借阅记录信息实体实体图5-4 记录信息实体e-r图归还记录信息实体实体读者借书证编号书籍类别编号归还时间隔图5-5记录信息实体e-r图信息登记读者实体书籍实体书类别实体归还借阅罚款罚款信息实体还书信息实体借阅信息实体实体图5-6总的信息实体e-r图5.4 e-r图向关系模型转换在二元联系中,数据模型实体间的联系有一对一(1:1)、一对多(1:n)和多对多(m:n)三种。两实体的联系为1:1,可将联系与任意一端对应的关系模式合并。具体做法是:将两个实体各用一个关系表示,

17、然后将其中一个关系的关键字和联系的属性加入另一个关系的属性。一个关系的关键字存储在另一个关系中时,称为另一个关系的外键。一个1:n联系可以与“1”端对应的关系模式合并。首先,一个实体用1个关系表示,然后将联系的属性和“n”端对应关系的键置于“1”端对应的关系中。一个m:n转换为一个关系模式。多对多联系不能与任一端实体对应的关系模式合并,否则会引起插入异常和修改异常。联系本身的属性以及与该联系相连的实体的键都将转换为该关系的属性,关系的键是各实体键的组合。 根据以上转化原则,得到以下一组关系模式,关系模式的码用下划线标出。 书籍类别(种类编号,种类名称) 读者(借书证编号,读者姓名,读者性别,读

18、者种类,登记时期) 书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记 日 期) 借阅(借书证编号,书籍编号,读者借书时间) 还书(借书证编号,书籍编号,读者还书时间) 罚款(借书证编号,借书证编号,书籍编号,读者姓名,读者借书时间)第六章 数据库设计6.1 逻辑结构设计根据对需求分析得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,并进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。本系统根据分析确定系统要设置如下表(为了在应用程序中方便使用表名、字段名,在设计表时均采用英文简称或全称,在此为了便于理解均使用它们的中文别名): 书籍类别表,

19、包括字段:种类编号,种类名称读者表,包括字段:借书证编号,读者姓名,读者性别,读者种类,登记时期书籍表,包括字段:书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期借阅表,包括字段:借书证编号,书籍编号,读者借书时间还书表,包括字段:借书证编号,书籍编号,读者还书时间罚款表,包括字段:借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间6.2 物理结构设计下面列出选课系统所有表的结构,为了便于理解,将部分数据列出。 1.图书信息基本表 表6-1 tab_bookcardinfo表结构字段名称数据类型字段大小索引 说明bookcard_id 数字 10有书证编号pas_i

20、d数字10有客户编号bookcard_money数字10无办理价格默认值50元borrownum数字2有允许一次性借书多少本bookcardcomeday日期/时间16无书证签发日期图书类别数据表:表名“tab_bookclassinfo”,结构见表6-2表6-2 tab_bookclassinfo表结构字段名称数据类型字段大小索引 说明bookclass_id 数字 10有图书类别编号bookclass_name文本20无图书类别名称图书书目数据表:表名“tab_bookinfo”,结构见表6-3表6-3 tab_bookinfo表结构字段名称数据类型字段大小索引 说明book_id 数字

21、10有图书编号book_name文本60无书名book_writer文本10无作者book_classid数字10无类别编号book_publishid 数字10无出版社编号book_pub_times 文本40无版次book_version 文本30无版本号book_price 文本10无定价book_information文本50无备注信息出版社类别数据表:表名“tab_bookpublish”,结构见表6-4表6-4 tab_bookpublish表结构字段名称数据类型字段大小索引 说明book_publishid 数字 10有书籍出版社编号book_publishname文本60无出版

22、社名称图书借阅数据表:表名“tab_borrow_return”,结构见表6-5 表6-5 tab_borrow_return表结构字段名称数据类型字段大小索引 说明bookcard_id 数字 50有借书证号码book_id数字50有书籍编号y_n_return是/否无是否归还borrowday日期/时间 14无借书日期returnday日期/时间14无还书日期馆内员工数据表:表名“tab_empinfo”,结构见表6-6表6-6 tab_empinfo表结构字段名称数据类型字段大小索引 说明employer_id 数字 10有员工编号emp_name文本10无员工姓名emp_sex文本4无

23、员工性别emp_age数字10无员工年龄emp_birthday日期/时间16无员工出生年月日emp_address 文本60无员工住址emp_comeday日期/时间16无员工登记日期emp_photoole 对象员工照片用户权限数据表:表名“tab_human”,结构见表6-7表6-7 tab_human表结构字段名称数据类型字段大小索引 说明human_id 数字 50有权限编号human_select是/否无选择权限human_update是/否无更新权限human_delete是/否 无删除权限human_insert是/否无插入权限系统用户数据表:表名“tab_login”,结构见

24、表6-8表6-8 tab_login表结构字段名称数据类型字段大小索引 说明login_id 数字 10有登陆编号user_name文本10有登陆用户名user_password数字10无登陆密码human_id数字 10有权限编号employer_id数字10有员工编号客户个人数据表:表名“tab_pasinfo”,结构见表6-9表6-9 tab_pasinfo表结构字段名称数据类型字段大小索引 说明passenger_id 数字 10有客户编号pas_name文本10无客户姓名pas_sex文本4无客户性别pas_age数字2无客户年龄pas_birthday日期/时间16无客户出生年月日

25、pas_address 文本60无客户地址pas_comeday日期/时间16无客户登记日期pas_photoole 对象客户照片第七章 详细设计7.1图书管理系统流程1. 用户登录模块,可以选择用管理员或者普通用户登录。图7-1 登录界面图2. 图书管理系统的主界面设计图 图7-2 主界面设计图3、图书管理,包括新书录入、图书变更、删除图书、图书查询等。图7-3 图书管理界面图源码:procedure tform1.n4click(sender: tobject); /新书录入var adoquery:tadoquery;begin form_panel4click(); emp_yn_nu

26、ll; pagecontrol1.activepageindex:=3; adoquery:=tadoquery.create(self); adoquery.connectionstring:=provider=microsoft.jet.oledb.4.0;data source=+ extractfilepath(application.exename)+ datadb_booksys.mdb;persist security info=false; /连接字符串 adoquery.sql.clear; adoquery.sql.add(select book_id from tab_b

27、ookinfo); adoquery.open; adoquery.last; edit5.enabled:=false; edit5.text:= myjiami.db_idtoadd(adoquery.fieldvaluesbook_id,10); adoquery.free; edit6.enabled:=true; edit7.enabled:=true; edit8.enabled:=true; edit9.enabled:=true; edit10.enabled:=true; edit11.enabled:=true; combobox1.enabled:=true; combo

28、box2.enabled:=true; button5.enabled:=true; button6.enabled:=false; button7.enabled:=false; button8.enabled:=false; edit12.enabled:=false; form1.book_refrish;end;procedure tform1.button8click(sender: tobject); /图书查询var adoquery:tadoquery; str_cid:string; /图书类别编号 str_pid:string; /图书出版社编号begin adoquery

29、:=tadoquery.create(self); adoquery.connectionstring:=provider=microsoft.jet.oledb.4.0;data source=+ extractfilepath(application.exename)+ datadb_booksys.mdb;persist security info=false; /连接字符串 if edit5.text= then begin messagedlg(请输入要查询的图书编号!, mtinformation, mbyes,0); adoquery.free; exit; end; adoqu

30、ery.close; adoquery.sql.clear; adoquery.sql.add(select * from tab_bookinfo where book_id=:a); adoquery.parameters.parambyname(a).value:=edit5.text; adoquery.open; /从书籍信息表中选择相关内容 if adoquery.recordcount0 then begin edit6.text:= adoquery.fieldvaluesbook_name; edit7.text:= adoquery.fieldvaluesbook_writ

31、er; edit8.text:= adoquery.fieldvaluesbook_pub_times; edit9.text:= adoquery.fieldvaluesbook_version; edit10.text:= adoquery.fieldvaluesbook_price; edit11.text:= adoquery.fieldvaluesbook_information; str_cid:= adoquery.fieldvaluesbook_classid; str_pid:= adoquery.fieldvaluesbook_publishid; str_bookclas

32、sid:= str_cid; str_bookpublishid:= str_pid; end4、 借还书管理,包含的数据项有书籍编号,借书证号码,借书日期,还书日期。 图7-4 借还书界面图源码:procedure tform1.speedbutton1click(sender: tobject); /借书var pic:tpicture; /bmp图片类begin / if int_human1 then /begin /messagedlg(无权使用!,mtwarning, mbyes,0); / exit; / end; pic:=tpicture.create; pic.loadfr

33、omfile(extractfilepath(application.exename)+resbmp1.bmp); image1.picture:=nil; image1.picture.assign(pic.bitmap); checkbox1.checked:=false; pagecontrol1.activepageindex:=2; button2.enabled:=false; button1.enabled:=true; edit1.text:=; edit2.text:=; edit4.text:=; edit3.text:=formatdatetime(yyyy/mm/dd,

34、 now); pic.free;end;procedure tform1.speedbutton2click(sender: tobject); /还书var pic:tpicture; /bmp图片类begin pic:=tpicture.create; pic.loadfromfile(extractfilepath(application.exename)+resbmp2.bmp); image1.picture:=nil; image1.picture.assign(pic); checkbox1.checked:=true; pagecontrol1.activepageindex:

35、=2; button2.enabled:=true; button1.enabled:=false; edit1.text:=; edit2.text:=; edit4.text:=; edit3.text:=formatdatetime(yyyy/mm/dd, now); pic.free;end;第八章 设计总结8.1 报告研制过程因为这次是要设计一个图书管理系统,需要有和用户进行交互的接口所以界面是必不可少的。用什么来做界面呢?在选择编程软件和数据库软件时,我踌躇了好一阵,后来选择了delphi,觉得它更简单实用在图书馆中的踌躇经历也是一段知识积累的过程。在图书馆里,我看到了用c+编程环

36、境来实现数据库链接的,看了vb.net等开发的,这些都拓宽了我的知识面,给我后续的学习指引了方向,我想或许这也是课程设计的意义所在吧。选择好了编程软件和数据库软件,接下来就是要设计系统了,在百度查找再根据的本次课程设计的要求,设计图书管理系统数据库在设计的过程中经历了以下6个阶段:(1)需求分析阶段(2)概念结构设计阶段(3)逻辑结构设计阶段(4)物理结构设计阶段(5)数据库实施阶段(6)数据库运行和维护阶段按照上述步骤一步一步的来,每一步都水到渠成。在研制报告的过程中,将上述每个阶段所研究的对象的思路,过程以及结果通过文字和图形表示出来,再加上对于本次课程设计的思想总结,便构成了本次课程设计

37、的说明书。8.2 设计的特点在本次课程设计中,我觉得最大的特点是用户管理这一模块设计得比较完善。该图书管理系统允许用户进行登录查看相关的信息。一般用户登录系统时是不能查看管理用户界面这一模块的,有效的提高了系统的安全性。拥有不同权限的用户可以执行不同的操作,这一点在实际应用中是非常需要也是非常重要的,特别是在数据库管理这方面。在建立数据库表的时候,为数据库中的表建立了关系,并且将关系设置为级联修改和删除,这样在对数据库中不同的表进行相关操作时就不会出现更新异常或者是插入异常等异常情况了,保证了数据库中的实体完整性和参照性完整性,这是非常符合实际要求的。8.3 设计的不足本系统可实现基本的图书信息管理,比如对图书基本信息的增、删、改和查询,本系统并没有完全实现我在需求分析中所述的功能,实现的功能不完善,实用性不强。由于时间比较仓促,没有把系统设计得很详细,很周到,很复杂,对于系统我也没有做太多的测试来检测其稳定性和健壮性。同时对于有些不合法的填写还不能完全的识别,这样会导致最终存入数据库的数据产生不可靠性,这对于数据库设计中安全性的考量是非常重要的一点,也是本次设计中需要好好完善的一个地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论