1、摘 要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书资源信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书馆管理的效率,也是企业、学校的科学化、正规化管理,与世界接轨的重要条件。图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强。数据安全性好的数据库。而对于后者则要求应用程序功能完
2、备,易使用等特点。因此本人对 SQL Server 数据库、SQL 语言原理、Visual B 应用程序设计,数据库技术进行学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。关键词:SQL 语言;数据库;图书管理2目录摘 要 2 第一章 绪论 41.1 课题背景 41.2 图书馆信息化管理 4第 2章 开发工具简介 52.1 VB 简介 52.2 VB 发展 52.3 VB 的特点 5第 3章 图书馆管理系统需求分析 73.1 可行性分析 73.2 系统目标 73.3 基础信息维护 73.4 读者管理 83.5 图书管理 9第 4章图
3、书馆管理系统数据库分析 114.1 数据库 114.1.1 用户数据 114.1.2 元数据 114.1.3 索引 114.1.4 应用元数据 114.2 创建数据库 114.3 图书管理系统 124.4 图书馆管理系统 E-R 124.5 图书馆管理系统数据表清单 14第 5章 图书馆管理系统数据库设计 165.1 创建数据库 165.1.1 创建读者信息数据表 165.1.2 创建图书信息数据表 175.1.3 创建图书借阅数据表 175.1.4 创建其他关键数据表 185.2 创建主键及外键等表的约束 185.3 创建存储过程 19第 6章 系统功能的实现 226.1 系统主窗体 226
4、.2 读者管理功能 226.3 图书管理功能 246.4 图书征订功能 246.5 图书借阅功能 256.6 图书归还及罚款 26结论 28致谢 293参考文献 30第一章 绪论1.1 课题背景随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要,我国图书馆计算机等信息技术的应用起步于 20 世纪 70 年代末期,随着改革开放的步伐得迅速发展,特别是 90 年代以后,我国图书馆信息网络建设取得了较大发展图书馆信息化建设迈向了一个新台阶。现代高校的图书馆藏有几十甚至上百万册图书和期刊杂志。而图书馆的工作人员只有几名,
5、负责全校上万名教职工和学生的借阅工作。主要业务包括办理借书证、借还书登记、图书入出库、罚款等。陈旧的图书管理方案给读者和工作人员带来了很大的不便,手工处理效率低,还经常出现差错,已经不能满足读者的需求。为改变现状应该建立一套计算机管理系统,既要解决目前存在的问题,又能增加预定、续借自动化处理等功能,达到提高图书借阅工作效率的提高和提高服务质量的目的。1.2 图书馆信息化管理图书馆的信息化从最初的对图书馆业务管理实行信息化发展到对图书馆各个业务流程进行系统和网络化管理,并建立大规模以个体文献目录联机查询为主的资源共享系统。进入 21 世纪,充分利用计算机网络和信息技术,逐步实现不同载体的实体文献
6、的信息化管理和多方位的联机查询。图书馆的计算机信息化管理,就是将传统图书馆业务的手工操作转变成由计算机管理,即图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理等工作,利用计算机技术,进行高效、准确的信息化管理。其根本目的是实现区域内及地区、国家、国家间的资源共享。要达到资源共享的目的,必须制定一定的标准,只有各个系统都遵循这些标准,不同的系统间才可以实现联机查询、资源共享的效果。4第 2 章 开发工具简介2.1 VB 简介Basic 是指 BASIC(Beginner All-purpose Symbolic Instruction Code初学者通用符号指令代码
7、) ,具有面向普通使用者,易学易用的优点。它作为一个古老的程序设计语言对计算机的普及、推广起到了不可估量的作用。目前Basic 语言可能拥有用户最多的计算机语言。Visual 的英文原意是“可视的”“视觉的” 。在这里指开发图形用户界面的方法,既“可视化程序设计” 。这种方法不需要编写大量代码去描述界面的外观和位置,而只要把预先建立的控件,像使用的“画图”之类的绘图程序那样“画”到屏幕即可。2.2 VB 发展Visual Basic 是 Microsoft 公司与 1991 年推出的 Windows 应用程序开发工具。与传统的语言不同,它使用可视化、交互式的方法来开发 Windows 下的应用
8、程序,由于它的交互特性,因此可以一边运行着应用程序,一边进行界面的调整和程序代码的调试。通过这种方式,代码运行的效果可以在开发时进行测试,而不必等到编译完成以后。自从 Visual Basic 5.0 版之后,Microsoft 公司将 OCX 技术和其他的一些关键技术组合到了一起,制定出了新的技术规范,并且称之为ActiveX(TM)技术。ActiveX(TM)技术仍然遵从 OLE2.0 的规范,故而继续可以像原来的 OLE 应用那样使用其它应用程序提供的功能,例如 Microsoft Word字处理器,Microsoft Excel 电子数据表及其它 Windows 应用程序。甚至可直接使
9、用 VBP 或 VBE 创建的应用程序和对象。Visual Basic 具有强大的数据库访问能力,其内部具有内嵌的 DAO 对象,在进行远程访问的时候,还可以使用 RDO 对象。在进行数据库对象编程时,是将数据库系统作为一个特殊的对象来进行处理的。利用 ODBC,Visual Basic 的数据库对象可以非常方便地访问无论是本地的还是远程的数据库。对于具有安全性设置的数据库系统,可以充分利用其安全机制,对于有事务和日志的大型数据库系统,可以方便地实现分布式的数据库处理,例如数据访问的并发问题、批量数据的更新和恢复等问题。2.3 VB 的特点VB 之所以能够存在和发展,并广泛流行使用,与其易学易
10、用优与其他程序设计语言等特点分不开。概括来说,VB 主要有以下几个方面的特点。1具有面向对象的可视化设计面向过程的程序设计语言,如 C 语言,在编程时是通过编写程序代码来设5计应用程序界面的,设计过程中看不到应用程序界面的实际效果。VB 利用面向对象程序设计方法,程序和数据“封装”在一起称为对象,每个对象都是可视的;同时又提供了可视化的程序设计方法,程序员不必为界面的设计编写大量的程序代码,只需按设计的要求,用系统提供的工具在屏幕中“画出”各种对象,VB 系统会自动生成界面设计代码,程序员需要编写的只是实现程序功能所需的代码,从而大大提高编程的效率。2具有事件驱动的编程机制Windows 应用
11、程序的运行一般是由用户操作来控制的,即采用事件驱动方式进行的。VB 提供了事件驱动程序设计机制,利用 VB 设计 Windows 应用程序时,不必建立具有明显开始和结束的程序,而是编写若干个子程序,即过程;这些过程分别面向不同的对象,并由用户操作触发某个事件来驱动某个特定的过程。如命令按钮,当用户单击该按钮时,会触发该按钮的单击事件,系统就调用该事件对应的过程。3具有结构化的程序设计语言VB 是在结构化语言 BASIC 基础上发展起来的,提供了丰富的结构化控制语句(如 if 语句、select 语句、do 语句、for 语句等) ;加上面向对象的设计方法,程序设计模块化。4支持 DDE、DLL
12、、OLE 技术VB 系统提供了动态数据交换(DDE)技术、动态链接库(DLL)技术和对象链接与嵌入(OLE)技术。利用 DDE 技术可以实现 VB 开发的应用程序与其他Windows 应用程序建立动态数据交换,实现不同的应用程序之间进行数据通信的功能。通过 DLL 技术,可将其他高级语言或汇编语言编写的程序以 Windows应用程序接口(API)形式在 VB 开发的应用程序中调用。使用 OLE 技术可以将某些 Windows 应用程序做为对象,链接或嵌入到 VB 开发的应用程序中,可以使用其提供的功能。5具有强大的数据库操作功能VB 提供强大的数据库管理和存取操作的能力。利用数据空件和数据库管
13、理窗口能访问多种数据库,如 Access、DBASE、Forpro 等数据库,也能访问Excel 和 Lotus 等电子表格。通过开放数据库连接(ODBC)接口访问后台大型网络数据库,如 SQL Server 和 Oracle 等。6第 3 章 图书管理系统需求分析3.1 可行性分析 1技术可行性随着国内软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求。再者,人员素质己逐步提高,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。现在,市场上可以选购的应用开发
14、产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:Microsoft 公司的 Visual BasicMicrosoft 公司的 Visual CBorland 公司的 DelphiJava 等等,这些大大提高了数据库应用软件开发的效率。2经济可行性对于整个系统而言,在系统未运行之前,初期投资比较大,花费相对而言比较多。各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,将会给该企业带来前所未有的方便和快捷,减少不必要的中间环节以及不必要的开支,而且可以给其带来更大的利润。总之,这个系统的经济效益远远大于
15、开发成本,而同时又减少了数据的流通环节,不必要花费那么多的时间,也就是说最重要的是就是提高了效率,而又保证了各项数据的准确性,也避免了工作人员的流动造成的收据丢失等问题,适应了当前的发展形式。3.2 系统目标1图书管理员对读者借阅图书的管理更方便、高效;2减少读者借阅图书的时间,方便图书交流;3向管理者提供统计汇总信息,提高决策的有效性;4适应网络的发展需要,充分发挥校园网的作用。3.3 基础信息维护“基础信息维护”用于对图书馆信息、书籍信息、常用词库等项目进行初始化设置,包含的功能模块如图 2-1 所示。7基础信息维护图书馆信息系统参数设置书架设置管理员设置图书期刊词库图 3-1 基础信息维
16、护“图书馆信息”用于设置本图书馆的基础信息,包括图书馆名称、负责人、电话、说明等。“系统参数设置”用于设置系统运行所需的参数,包括办证费用、证件有效期、图书超期罚款金额、期刊超期罚款金额等。“书架设置”用于设置书架的基础信息,内容包括书架编号、书架名称等。“管理员设置”用于设置使用的人员及权限。“图书期刊词库设置”用于设置系统常用的词库,内容包括供应商、分级、附件、尺寸、语系、印刷等信息的预先设定数值3.4 读者管理“读者管理“用于管理读者相关的信息,包括的功能模块如图 2-2 所示。“读者类型设置”用于设置读者的类型及相关的信息,内容包括类型、图书册数、期刊册数、续借次数、限制图书、限制期刊
17、等。“读者档案管理”用于设置读者相关的信息,内容包括编号、条形码、姓名、性别、类型、出生日期、有效证件、联系方式、登记日期、有效期至、备注、图书借阅次数、期刊借阅次数、是否挂失等。“借书证挂失与恢复”用于挂失和恢复读者的借书证,挂失后该编号的读者不能在借书。“过期续证管理”用于延续已过期的借书证。8读者管理读者类型设置读者档案设置借书证挂失与恢复过期续证管理图 3-2 读者管理3.5 图书管理“图书管理”用于管理图书相关的信息,包含的功能模块入图 3-4 所示。图书管理图书类型设置 出版社管理 图书档案管理 图书注销 图书征订 图书验收 图书盘点图 3-3 图书管理功能模块“图书类型设置”用于
18、设置图书的类型及相关的信息,内容包括类型名称,可借天数等。“出版社管理”用于设置图书所属出版社的基础信息,内容包括出版社编号,出版社名称等。“图书档案管理”用于设置图书相关的信息,内容包括编号、条形码、书名、类型、作者、出版社、价格、书架名称、现存量、库存总量、入库时间、简介、借出次数、是否注销等。“图书注销”用于注销、报废图书,将图书档案的“是否注销”字段设置为 1,被注销的图书不可以再借出。“图书征订”用于订购新书,内容包括征订编号、书名、类型、出版社、9作者、订购者、订购者联系方式、订购数量、订购单价、订购日期、是否验收、实际数量、实际金额、验收日期等。“图书验收”用于征订的图书到货后验
19、收,增加图书的库存。“图书盘点”打印图书的在库清单供盘点使用。10第 4 章 图书管理系统数据库分析4.1 数据库数据库由 DBMS(数据库管理系统)处理,DBMS 则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。4.1.1 用户数据目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。4.1.2 元数据数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为 DBMS
20、产品是用来存储和操纵表的,以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述也存储索引、关键字、规则和数据库结构的其他部分。在表中存储元数据不仅对DBMS 是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。4.1.3 索引第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要还是索引。索引可以用来排序和快速访问数据。4.1.4 应用元数据存储在数据库中的第四种数据是应用元数据,它用来存储用户窗
21、体、报表、查询和其他形式的查询组件。并非所有的 DBMS 都支持应用组件,支持组件的DBMS 也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的 DBMS 产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,想反,他们通过 DBMS 中的工具来处理这些数据。4.2 创建数据库数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式11是一种设计,数据库和应用正是建立在此基础上的。域是一列可能拥有的值的集合。必须为每一个表的每一列确定域。除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。数据库模式的最后一个要素是业务规
22、则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达 DBMS 引擎,允许的数据值必须满足的约束。不管无效的数据变化请求是来自窗体的用户、查询/修改请求还是应用程序 DBMS 都应该拒绝。遗憾的是,不同的 DBMS 产品用不同的方法实施业务规则。在某些情况下,DBMS 产品不具备实施必要业务规则的能力,必须以代码形式把它们编入应用程序。4.3 图书管理系统当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制
23、,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性,信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数
24、据繁多,容易丢失,且不易查找。总的来说,缺乏系统规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书管理员也只是当时对它比较清楚,时间长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这些问题,我认为有必要建立一个图书管理系统
25、,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。4.4 图书管理系统 E-R因为整个系统涉及的实体和属性较多,限于篇幅不能也没有必要一一列举。图 4-1 为图书馆管理系统关键实体的 E-R 图。其他实体与基本信息表间的对应关系都是类似的。12读者信息 借阅 图书信息姓名性别类型证件价格作者出版社书名简介借阅编号图书编号读者编号 借阅时间应还时间图 4-1 系统 E-R 图图书借阅管理系统的模块结构图图书借阅管理系统读者信息输入读者信息身份审核借书处理借书登记还书处理 续借处理还书登记 逾期处理预订处理查询处理显
26、示结果 罚款通知 输出结果图 4-2 “图书管理系统”的模块结构图134.5 图书管理系统数据表清单表 4-1 系统数据表清单数据表名称 数据表用于保存出版社 图书对应出版社的基础信息读者类型 读者类型及相关信息读者信息 读者的各种信息供应商 图书供应商信息管理员 用户信息期刊丢失 期刊丢失记录期刊罚款 期刊罚款记录期刊归还 期刊归还记录期刊借阅 期刊借阅记录期刊类型 期刊类型及相关信息期刊信息 期刊信息期刊征订 期刊征订入库记录期刊注销 期刊注销记录书架 馆内数据的基础信息图书丢失 图书丢失记录图书罚款 图书罚款记录图书馆 图书馆的基础信息图书归还 图书归还记录图书借阅 图书借阅记录图书类型
27、 图书类型及相关信息图书信息 图书信息图书征订 图书征订入库记录图书注销 图书注销记录文献尺寸 文献的尺寸基础信息文献等级 文献的等级基础信息文献附件 文献的附件基础信息文献印刷 文献的印刷基础信息文献语系 文献的语系基础信息基于以上需求分析和数据分析,对于一个标准的图书馆管理系统应该有了一个全面的认识。需要强调的是,由于用户登录和权限管理的功能各个系统实现的方法是一致的,详细介绍的功能模块如图 4-314图 4-3 图书管理系统功能模块系统流程图,如图 4-4 所示图书馆管理系统读者管理 图书管理 图书流通管理读者类别设置读者档案管理图书类别设置图书档案管理图书征订图书借阅图书归还逾期清单图
28、书罚款读者管理管理员图书管理读者信息流通管理图书信息图书借阅图书归还图书征订预约读借罚款管理15图 4-4 系统流程图第 5 章 图书馆管理系统数据库设计读者信息和图书信息是系统关键的表,其他各表均通过“编号“字段与之相对应进行多对一的关联。各表用途如表 5-1 所示。表 5-1 数据库表及其用途数据表名称 数据表用于保存读者类型 读者类型及其相关信息读者信息 读者的各种信息图书类型 图书类型及其相关信息图书信息 图书信息书架 图书馆内数据的基础信息出版社 图书对应出版社的基础信息图书罚款 图书罚款记录图书归还 图书归还记录图书借阅 图书借阅记录图书征订 图书征订入库记录5.1 创建数据库打开
29、 SQL server 企业管理器,新建一个数据库,名称为 libbook。完成数据库的设计。并在数据库中创建读者信息数据表、图书信息数据表、图书借阅数据表和其他的关键数据表。165.1.1 创建读者信息数据表创建读者信息数据表的 sql 脚本如下:create table dbo.读者信息 (条形码 varchar (40) null,编号 varchar (20) not null,姓名 varchar (20) null,性别 varchar (8) null,类型 varchar (20) not null,出生日期 smalldatetime null,有效证件 varchar (6
30、0) null,证件号码 varchar (60) null,联系方式 varchar (100) null,登记日期 smalldatetime null,有限期至 smalldatetime null,操作员 varchar (20) null,备注 varchar (100) null,图书借阅次数 int null,期刊借阅次数 int null,是否挂失 bit null) on primarygo5.1.2 创建图书信息数据表创建图书信息数据表的 SQL 脚本如下:create table dbo.图书信息 (条形码 varchar (40) null,编号 varchar (50
31、) not null,书名 varchar (200) null,类型 varchar (100) null,作者 varchar (100) null,出版社 varchar (100) null,价格 money NULL ,书架名称 varchar (200) null,现存量 int null,库存总量 int null,入库时间 smalldatetime null,操作员 varchar (20) null,简介 varchar (100) null,借出次数 int null,是否注销 bit not null) on primary17go5.1.3 创建图书借阅数据表创建“图
32、书借阅数据表的 SQL 脚本如下:create table dbo.图书借阅 (借阅编号 int identity (1, 1) not null,图书编号 varchar (50) null,读者编号 varchar (40) null,借阅时间 smalldatetime null,应还时间 smalldatetime null,续借次数 int null,操作员 varchar (20) null,状态 varchar (10) null) on primarygo5.1.4 创建其他关键数据表以下是其他数据表的创建脚本:create table dbo.图书归还 (归还编号 int i
33、dentity (1, 1) not null,图书编号 varchar (50) null,读者编号 varchar (40) null,退还押金 money null,归还时间 smalldatetime null,操作员 varchar (20) null,确定归还 bit null) on primarygocreate table dbo.图书征订 (征订编号 varchar (50) not null,图书编号 varchar (50) not null,订购者 varchar (100) null,订购者联系方式 varchar (100) null,订购数量 int null,
34、订购单价 money null,订购日期 smalldatetime null,是否验收 bit null,验收日期 smalldatetime null,操作员 varchar (20) null,) on primary18go5.2 创建主键及外键等表的约束在查询分析器中通过如下代码创建数据表的主键及外键等约束。alter table dbo.图书信息 with nocheck add constraint PK_图书信息 primary key clustered (编号) on primary goalter table dbo.图书借阅 with nocheck add const
35、raint PK_图书借阅 primary key clustered (借阅编号) on primarygoalter table dbo.图书归还 with nocheck add constraint PK_图书归还 primary key clustered (归还编号) on primary goalter table dbo.图书征订 with nocheck add constraint PK_图书征订 primary key clustered (征订编号) on primary goalter table dbo.图书注销 with nocheck add constrain
36、t PK_图书注销 primary key clustered(注销编号) on primary goalter table dbo.图书类型 with nocheck add constraint PK_图书类型 primary key clustered(类型编号19) on primarygoalter table dbo.图书罚款 with nocheck add constraint PK_图书罚款 primary key clustered(罚款编号) on primary goset qupted_identifier on goset ansi_nulls on go5.3 创建存储过程系统使用了“sl_图书征