21世纪,人类社会正面临知识经济和信息社会的急剧变革,世界各个角落的人们都强烈地感受到新时代的冲击与震撼。下面是我为大家整理的图书馆管理系统设计论文,供大家参考。
图书管理系统设计
图书馆管理系统设计论文摘要
【摘要】本文介绍了利用ASP+Access编写图书管理系统的实现主要步骤与部分技术代码。
图书馆管理系统设计论文内容
【关键字】ASP;Access
随着计算机 网络技术 的普及和发展,现已逐渐进入信息化社会。人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发基于网络平台的图书管理信息系统已经成为图书管理部门的必要因此,我按照图书管理部门的需要,采用ASP+Acces实现了此图书管理系统。
一、ASP+Access
ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和 其它 程序进行交互,是一种简单、方便的编程工具。
Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。
由于Access存储方式简单,易于维护管理、移植性好,所以本系统采用ASP做为编程工具、Access做数据库来开发
二、系统模块
此系统共分为八大模块,包括图书简介、 规章制度 、图书录入、归还图书、图书查询、新购图书、未归图书、系统维护。名模块的功能如下:
一图书简介:把图书进行分类和定义索书号,以方便查询。
二规章制度:主要介绍图书管理的订购、借阅、归还等制度。
三图书录入:对新购图书按书名、作者、分类、编号等图书信息进行录入。
四图书归还:此模块是图书管理员对归还的图书,按照图书编号进行入库管理。
五图书查询:按图书信息一些主要字段对数据库进行查询并显示。
六新购图书:查询某一时间段以后所购买的图书并显示。
七未归图书:显示未归的图书,并分页显示。
八系统维护:对数据库进行备份和恢复。
三、设计数据库
此图书管理系统数据库里主要有以下几个表:
User:用来存储图书管理员的用户名和密码。字段为user、pwd。
Menu:存储程序主页面的菜单名称和链接地址。字段为ID、父菜单ID、位置、URl、字体颜色、菜单项。
Bookinfo:用来存储图书的各种信息。字段为书名、作者、图书分类、图书编号、索书号、出版社、版期版次、购入日期、价格、排架号、是否借阅、借阅日期、应归还日期、借阅科室、借阅人、备注。
Dept:用来存储科室名称。字段为dept。
四、程序设计
一登录模块及Session的使用
由于此系统有些功能是不允许普通用户使用的,如图书录入、图书归
还等模块,所以本系统采用以管理员登录的方式,来判断是何种用户使用本系统,如果是普通用户,点击“以普通用户登录”,就可以使用本系统,但图书录入、归还图书和系统维护等模块不能使用。
由于有些功能模块不允许普通用户使用,故在登录模块程序语句定义一个Session:Session("UserAcc") = Trim(rs("User"))。 Session在计算机中,尤其是在网络应用中,称为“会话”,用于保持状态的基于 Web 服务器的 方法 。Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象。因此,在限制普通用户使用并用If判断Session("UserAcc")是否为空即可。
二表单验证
在图书录入模块中,需要填写图书的各种信息,在提交表单时如果某
些信息为空,IE就会显示出错,因此,在提交表单之前对表单进行验证,JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证,只需编写一个函数就可以实现。函数如下
function checkinput() {
if (frm.bookname.value=='') {
alert('请输入书名');
frm.bookname.focus();
return false;
}
}
在提交按钮代码中加入OnSubmit="Return checkinput()"就可以完成对表单的验证了。
三数据库连接
对于Access数据库,一个文件就是一个数据库,所以可以利用数据驱动程序直接访问数据,这种方法需要利用动态连接字符串建立一个连接,具体连接字符如下:
Dim conn, connstr,db
db="./data/tushu.mdb"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(db)
Set conn=Createobject("ADODB.Connection")
conn.Open connstr
这样就可连接数据了,再用SQL语句就可以读取表中数据了:
Set rs=CreateObject("ADODB.RecordSet")
sql="Select * From bookinfo"
rs.Open sql,conn,1,3
四对数据库的操作
连接好数据库后,我们就可以对表bookinfo的记录进增加、删除、修改等操作了。具体代码及释义如下:
(1):增加:
bianhao=Trim(Request("bianhao"))
sql="Select * From bookinfo Where 图书编号='"& bianhao &"'"
rs.Open sql,conn,1,3
If rs.recordcount<>0 Then
Response.Write "此图书编号已存在,请重新输入"
Response.Write "
"
Response.Write ""
Response.Write "返 回"
Else
注:在增加信息时,必须检索图书编号是否唯一,如不唯一会出给出提示:“此图书编号已存在,请重新输入”
rs.addnew
rs("书名")=trim(request("bookname"))
rs(“作者")=trim(request("author"))
……
rs.update
end if
Response.Redirect "addbook.html"
end if
set rs=nothing
(2)删除
本系统“删除”图书记录功能在查询模块中执行,但必须以管理员身份登录,才能显示对记录进行操作的功能:
删除记录采用SQL中的delete语句,代码如下:
bh=Request("bianhao")
If bh<>"" Then
conn.Execute "Delete From bookinfo Where 图书编号='"& bh &"'"
End If
(3)修改
修改只需rs.update命令即可完成,这里不再赘述。
(4)查询
本系统有精确查询、模糊查询、分类查询、编号查询、索书号查询、借阅人查询共六种方法。用SQL中select…where…就可以完成查询功能。如按分类查询:
tiaojian=Trim(request("tiaojian"))
Set rs=CreateObject("ADODB.RecordSet")
sql="select * from bookinfo where 图书分类= '"& tiaojian &"' order by 图书编号 desc"
rs.Open sql,conn,1,1
五、小结
此图书管理基本上可以实现图书管理的大部份工作,实现图书的计算机管理,方便借阅人员查询和借阅图书,更好的利用图书资源,把图书管理员从手工记录管理图书中解脱出来,提高了工作效率。
图书馆管理系统设计论文文献
[1]伍云辉. 程序天下 电子工业出版,2008
[2]武延军,赵彬.精通ASP网络编程. 人民邮电出版社,2000
[3][美]Michael Moncur JavaScript 入门经典 人民邮电出版,2007
图书管理信息系统设计
图书馆管理系统设计论文摘要
提要作为信息资源的集散地,图书馆在高校中的作用是尤为重要的,而图书馆传统人工管理方式已经无法快速、高效地应付日益增长的信息数据。随着计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。因此,图书管理信息系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底解脱出来,从而使人们有更多的时间来获取信息、了解信息、掌握信息,更好地发挥图书馆强大的资源优势。
图书馆管理系统设计论文内容
关键词:图书管理信息系统;数据库应用;Visual Foxpro语言;windows HC
中图分类号:G251文献标识码:A
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序功能完备,易使用等特点。本是从我校图书馆的馆藏规模和实际操作流程程出发,针对图书馆管理的现状,经过详细的系统调查,结合效用和成本多方要素。利用Visual Foxpro6.0作为开发工具,为图书馆开发出的一个实用的单机版图书馆管理信息系统。全文共分为五部分,其分别为绪论、系统分析阶段、系统设计阶段、系统实施阶段、系统测试。
一、绪论
(一)系统开发背景。目前,在一些高校图书管理中,师生查找图书都是采用传统的查询方法,让读者在图书分类架上一本本地去查找,这样不仅很难找到自己所需要的图书,而且费时费力。而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库账目,不仅工作量大,而且在新书入库后要经历较长的时间方能借出。另外,因图书数量有限,必须对图书实行限量借阅,因此要实施弹性借书方法是件很困难的事。
为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对图书实施有效管理。该系统应具备以下功能:(1)能对各类图书实行分类管理;(2)提供必要的读者信息;(3)能进行各种高级查询;(4)具有图书检索功能等。这样,不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。
(二)数据库概述。从20世纪五十年代中期开始,计算机的应用由科学研究部门逐步扩展至企业、行政部门。至六十年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于六十年代末。现已形成相当规模的理论体系和实用技术。
数据库(Database)DB是统一管理的相关数据的集合。
数据库管理系统(Database Managerment System)DBMS是位于用户和 操作系统 之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
数据库系统(Database System)DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
数据库技术是一门研究数据库的结构、存储、管理和使用的软件学科。
二、系统分析阶段
(一)系统可行性分析。系统可行性分析包括:技术的可行性、经济可行性、法律因素可行性。
技术可行性:结合本校图书馆规模和平时业务量的具体情况,本系统采用Visual Foxpro6.0作为开发平台,可以很容易实现图书馆相关信息的记录、维护、检索,并且可以在不添加任何设备的情况下,以较少的人力较快地完成系统的设计,实现系统的功能。
经济可行性:不需要额外开支,用现有的人力物力就可实现,软件成本很低。
法律可行性研究:研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。
(二)系统需求分析
1、图书管理信息系统的总体功能要求。简单的图书管理系统主要包括下面的功能:①借书处理:完成读者借书这一业务流程,核心为快速检索到学生需要的书籍。②还书处理:完成读者还书这一业务流程。③新书上架:完成新书资料的录入工作。④旧书下架:完成图书资料的删除工作。⑤读者查询:根据读者号,查询读者借阅情况,能够对读者的基本信息资料进行管理。⑥相关帮助:便于新的系统使用者能够快速掌握该系统的使用操作。
2、图书管理信息系统的性能需求。①要求有较强的 系统安全 性,对一定范围和程度内用户的错误操作有相应的系统自我保护功能。②系统的维护时间不能超过系统总运行时间的千分之五,系统每次的维护时间不能超过系统总运行时间的千分之一,系统的故障恢复时间不得超过系统故障时间的百分之五。③其他性能要求以其相关或类似的系统为参考。
三、系统设计阶段
(一)系统功能模块设计。鉴于以上各项功能要求,将该系统划分为以下六个模块:
1、图书信息模块。对图书的基本信息进行录入、删除、修改以前信息和进行简单查询功能。
2、查询检索模块。可对书目的基本信息进行检索,其查询条件可以是按分类检索;也可以是按照作者名、图书名称或出版社进行检索。同时,也可对读者的基本信息进行检索,查阅其借阅信息。
3、读者管理模块。对读者的基本信息进行录入管理,可自动生成会员代号,可自动记录会员的借阅信息。
4、数据维护模块。可对数据库中的各项基本数据信息进行数据备份和数据恢复,并可实现数据备份文件存贮路径的自由选择。
5、报表输出模块。对图书的基本信息、会员的基本信息、会员的借阅信息等数据可按照查询条件的不同按要求打印输出。
6、帮助模块。可以提供关于图书管理信息系统各项操作的详细帮助信息,并可实现对不同操作的定点帮助提示。
(二)数据库设计
1、数据描述
(1)静态数据描述。①图书一级分类表:包括一个数据表。其中的主要信息有:分类编号和一级分类名称。一级分类中将图书共分五大类,具体分类方法、编号和分类名称参照国家统一分类方法的规定。②图书二级分类表:包括五个数据表。其中的主要信息有:二级分类的编号和分类名称。二级分类中将图书共分为二十二个小类,并分别隶属于一级分类的五个大类中,其具体分类方法、编号和分类名称参照国家统一分类方法的有关规定。③图书明细分类表:包括二十二个数据表。其中的主要信息有:明细分类的编号和分类名称。明细分类又将二十二个小类明细的分为若干细小类别,其具体的分类方法、编号和分类名称参照国家统一分类方法的有关规定。
以上数据均按国家统一规定设置录入,不能做太大改变,分类名称可以有一定的缩略但不能影响其原有的意义。系统设计完成后不可以通过录入、删除的方式进行修改。
(2)动态数据
①图书的基本数据。包括一个数据表。其中的主要数据有图书编号:是对录入图书的统一编号,以便唯一区别图书;图书名称:图书出版时的封面印刷名称;作者:图书的编写者或编写单位或组织;出版社:出版发行该册图书的发行单位;录入日期:该册图书入库的时间;借阅次数:该图书总的被借阅次数;类别编号:给图书所属的明细分类的类别号,它应与明细分类表中的图书的类别编号一致;简介:对该册图书的内容总体概括介绍。
②读者基本数据:包括一个数据表。其中的主要数据有:读者代号:读者的统一编号,由系统自动生成,唯一的标示一个会员的身份;姓名:读者的真实姓名;电话:读者的有效联系电话,可选择填写;地址:读者的有效联系地址,可选择填写;身份证号:读者的身份证号码,可选择填写;注册日期:读者本人正式注册成功时的日期(为系统自动填写)。备注:读者的个人其他资料。
以上两部分数据的录入具有一定的界面,并提供修改的方式。还提供随时的查询,对查询结果有相应的显示和打印输出,对全体的数据可进行备份与恢复。
③借阅记录。包括一个数据表。其中的主要数据有:读者代号、图书编号、借阅日期。这些数据信息都是由系统自动填写。此表中的所有数据不提供修改方式,只供查阅、显示和打印输出。可以对全体数据进行备份和恢复。
④登录密码。包括一个数据表。其主要数据有:管理员代号、密码、权限。
2、数据库描述。该系统建立一个数据库,其中包括三十二个数据表。全部用Visual Foxpro实现。其中,部分数据表的结构和联系如图1所示。(图1)其他分类数据表的连接通过“下级分类表名”实现连接调用。
3、数据采集。对于图书分类数据表的信息参照国家图书分类方法;对于图书基本信息数据可通过对现存图书进行分类录入;对于读者方面的信息数据可以在系统运行使用中获得。
(三)用户界面设计。本系统设计原则:1、界面美观、操作方便并能高效率地完成工作;2、界面根据用户需求设计;3、界面能引导用户操作的功能,并能提供一些帮助功能。
主要的用户界面有:1、登录界面;2、主表单界面;3、各类信息查询;4、读者信息管理列表;5、图书信息管理列表等。
四、系统实施阶段
(一)计算机系统的性能和软硬件环境。在软件方面本系统运行平台为Windows2000专业版,开发工具采用易学易用的软件开发工具Visual Foxpro6.0。因Visual Foxpro6.0在应用程序的开发上具有灵活、效率高等特点和使用简便的数据库管理功能。硬件要求:Inter PentiumⅢ、128M内存、40G硬盘等。
(二)编写程序。依据各阶段的开发文档,使用Visual Foxpro6.0进行程序编写。此系统的编码设计(表单设计、代码设计、变量定义、控件的定义)严格按照大众化的标准和风格。
对于系统的帮助功能的实现,则使用windows help compiler来单独编译,最后通过Visual Foxpro提供的接口命令(set help to)和系统相连。帮助文件的数据字典、源代码见附件。
五、系统测试
测试的步骤主要有以下三个方面:1、单元测试:采用的是白盒测试法,检查模块控制结构的某些特殊路径;2、综合测试:采用的是自顶向下集成法;3、确认测试包括:功能测试、性能测试。
有关图书馆管理系统设计论文推荐:
1. 图书管理系统毕业论文
2. 浅谈图书馆管理论文
3. 关于图书馆设计论文
4. 图书馆管理毕业论文范文
5. 有关图书馆结构设计论文
6. 图书馆管理论文
摘 要图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。第五章进行了具体的程序设计,具体划分了三类用户的操作权限,设计了了三个操作界面。实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后,系统还可以导入数据库以对任意同结构的数据库进行操作。设计充分利用Delphi 6、MS SQL Server2000数据库技术的强大力量,提高了编程效率和可靠性。关键词:数据库,SQL语言,MS SQL Server,Delphi6,数据库组件,图书管理,窗体,listview组件第一章 绪 论§1.1 数据库应用系统开发简介在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。1.1.1 数据库如图1.1显示了数据库系统的主要组件。数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。1.1.1.1 用户数据目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。第二章描述了一个用以产生良好结构关系的过程,称作规范化。为了对比结构差的关系和结构好的关系之间的差别,以本文所设计的图书管理系统中的图书和图书借阅者关系为例来说明,假若设计关系R1(借书证号,姓名,性别,身份编号,身份证,联系电话,图书编号,图书名称,图书类别,作者,出版社,出版日期,备注,价格,数量);这个关系的问题出在它有关于两个不同主题的数据,就是图书借阅者和图书。用这种方式构成的关系在进行修改时,会出现问题。因为一个图书借阅者可能借阅多本书,如果某个图书借阅者的某个字段(如联系电话)出现变更,它所借阅的图书记录(可能多个)也就必须变化,这是不好的。因此数据用两个关系表示更好。现在如果某图书借阅者改变了它的联系电话,只有关系(表)user的对应行需要改变。当然,要想产生一个,显示图书名称及其借阅者联系电话的报表,就需要将这两个表的行结合起来。结果表明,将关系分别存储,在生成报表的时候将它们结合起来,比把它们存储在一个合成的表中更好。user(借书证号,姓名,性别,身份编号,身份证,联系电话,)book(图书编号,图书名称,图书类别,作者,出版社,出版日期,备注,价格,数量)1.1.1.2 元数据数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,所以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。本文第二章所介绍的SQL语言可以同时用于元数据和用户数据。1.1.1.3 索引第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要还是索引。索引可以用来排序和快速访问数据。下面以本人的图书管理信息系统中的book表为例来说明。假定数据在磁盘上是按’图书编号’的递增顺序排列的,用户想打印一个按’图书名称’排序的图书数据报表。为此,所有的数据都需要从源表中提取出来并排序,除非表很小,否则这是一个很费时的过程。或者,可以在‘图书名称’字段上创建一个索引,该索引的条目按照‘图书名称’排序,这样,该索引的条目可以读出来,并用来按顺序访问book数据。索引用于快速访问数据。例如,一个用户只想访问book表中‘图书类别’值为‘01’的那些学生。如果没有索引,则必须搜索整个源表;但有了索引之后,可以找到索引条目,并使用它来挑选所有合适的行。索引对排序和查找是有帮助的,但要付出代价。book表中的行每次改变时,索引也必须改变,这意味着索引并非随意的,应该在真正需要时保存。1.1.1.4 应用元数据存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。并非所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的DBMS产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,想反,他们通过DBMS中的工具来处理这些数据。MS SQL Server2000中就支持窗体、存储过程等应用元数据。1.1.2 数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MS SQL Server2000就是一种关系型数据库管理系统。关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。如图1.1所示,DBMS的特点和功能可以分为三个子系统:设计工具子系统、运行子系统和DBMS引擎。设计子系统有一个方便数据库及其应用创建的工具集。它典型地包含产生表、窗体、查询和报表的工具。DBMS产品还提供编程语言和对编程语言的接口。运行子系统处理用设计子系统开发的应用组件。它所包含的运行处理器用来处理窗体和数据库的数据交互,以及回答查询和打印报表等。DBMS引擎从其他两个组件接受请求,并把它们翻译成对操作系统的命令,以便读写物理介质上的数据。DBMS引擎还涉及事务管理、锁、备份和恢复。1.1.3 创建数据库1.1.3.1 数据库模式数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式是一种设计,数据库和应用正是建立在此基础上的。域是一列可能拥有的值的集合。必须为每一个表的每一列确定域。除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。数据库模式的最后一个要素是业务规则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达DBMS引擎,允许的数据值必须满足的约束。不管无效的数据变化请求是来自窗体的用户、查询/修改请求还是应用程序,DBMS都应该拒绝。遗憾的是,不同的DBMS产品用不同的方法实施业务规则。在某些情况下,DBMS产品不具备实施必要业务规则的能力,必须以代码形式把它们编入应用程序。1.1.3.2 创建表1.1.3.3 定义联系1.1.4 应用组件数据库应用包括窗体、查询、报表、菜单和应用程序。§1.2 图书管理系统当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。§1.1 系统所做工作1) 了解应用开发工具的现状2) DelPHi6.0编程基础3) MS SQL Server基础4) 设计数据库;设计界面5) 开发数据库。数据库实现的一些功能有l 数据和数据说明的醒目显示;l 多条件的查询、多条记录的检索、模糊查询;l 数据文件某种存储格式导入数据窗体,经过数据完整性校验存入数据库;l 数据库安全性的设计;l 数据库的设计、数据接口、界面的设计。§1.3 本文所作工作绪论部分对数据库应用系统的结构、开发进行了简要介绍,分析了图书管理信息系统设计的特点和任务。第二章介绍了数据库的设计和范式分析,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。第三章对系统介绍了Delphi 6.0的数据库编程技术、SQL语言在Delphi 6.0中的应用、MS SQL Server基础。第四章分析了图书管理系统的应用需求,设计了系统的数据库结构,并根据需求对系统功能进行了划分和细化。第五章根据第四章的设计结果利用MSSQL Server2000和Delphi 6.0进行了具体的应用程序设计。总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。第二章 数据库理论基础一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。SQL为许多任务提供了命令,其中包括:n 查询数据n 在表中插入、修改和删除记录n 建立、修改和删除数据对象n 控制对数据和数据对象的存取n 保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。2.2.2 SQL语句SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据;DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象;DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。DML组可以细分为以下的几个语句:SELECT:用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据。DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX下面是一个简单SQL语句的例子:我们使用SQL语句来从Book中检索‘借书证号’为‘000001’的借阅者姓名:SELECT 姓名 FROM Book WHERE 借书证号 = ‘000001’2.2.2.1 DDL与DML数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括 Create、Alter和Drop 语句。数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。用于修改数据库内容的 SQL 语句主要有以下三个:(1) Insert,向一个表中加入新的数据行(2) Delete,从一个表中删除数据行(3) Update,更改数据库中已经存在的数据Insert标准语法:INSERT INTO table_name (col1, col2...) VALUES(value1, value2...)下例要将借书证号为‘000001’作为一个新的借书情况加入借书情况表OWNER中Insert Intoowner (借书证号,图书编号,借书日期)values (‘000001’,‘00000001’,‘2002-9-12’)Insert 语句还可以将多行数据添加到目标表中去,在这种形式的 Insert 语句中,新行的数据值不是在语句正文中明确地指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,在某些特定的状态下,这是非常有用的。多行 Insert 语句为拷贝数据提供了一种紧凑而高效的方法,但我在自已做的图书管理系统中没有使用这种方法,我在系统中是使用循环依照上面的用法来完成多个记录的插入。Update语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义,Set子句则指定要更新哪些列并计算它们的值。Update语句总是包含Where语句,而且Update语句比较危险,所以您必须明确地认识到Where语句的重要性,Where语句被用来指定需要更新的行。标准语法:UPDATE table_nameSET columnname1 = value1[, columname2 = value2]...WHERE search_conditionDelete 语句标准语法:DELETE FROM tablename WHERE condition2.2.2.2 复杂操作实现在信息管理系统中,我们往往会遇到归类、汇总、映射、索引、子查询等复杂操作,相应的支持与实现如下:u GROUP BY方法GROUP BY子句语法为:SELECT column1, SUM(column2)FROM "list-of-tables"GROUP BY "column-list";这个GROUP BY子句将集中所有的行在一起,它包含了指定列的数据以及允许合计函数来计算一个或者多个列。在本人的系统中在显示数据时用到了此语句来对查询所得的内容排序然后再显示。u 组合条件和布尔运算符以下的SQL语句中就含有组合条件:SELECT column1, SUM(column2)FROM "list-of-tables"WHERE "condition1" AND "condition2";下面是一个示例:SELECT 身份描述FROM ID,userWHERE ID.身份编号=USER.身份编号 and user.借书证号=’000001’;这条SQL语句是从user、id表中查找借阅证号为000001的借阅者的身份描述,第三条语句中如果其中有一个条件为假,那么就什么都没有显示。u UNION子句有些时候,需要一起浏览多个查询的结果、组合它们的输出,我们可以使用UNION关键字。第三章 应用系统开发工具§3.1 Delphi6.0 VCL组件的体系结构非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。最后要说明一下,常说的控件实际上是一种组件。也就是说组件这个概念要大于控件,控件在内涵上包含于组件中。控件由Windows系列操作系统提出并使用,而组件是Borland和其它厂商在对Windows控件做了必要的扩展之后提出来的概念,它们是在不同时期由不同的厂商提出的概念。§3.2 数据库组件介绍§3.3 SQL语言在Delphi中的应用。为参数赋值有三种方法:①根据参数在SQL语句中出现的顺序,设置TADOQuery组件的parameters属性值为参数赋值。②直接根据SQL语句中各参数的名字,调用ParamByName方法来为各参数赋值。③将TADOQuery组件的DataSource属性设置为另一个数据源,这样将另一个数据源中与当前TADOQuery组件的SQL语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建主要—明细型数据库应用。在使用动态SQL语句编程时,常常用到一个很重要的方法Prepare,调用Prepare 方法之后,Delphi会将带参数的SQL语句传送给与其对应的数据库引擎,对动态SQL语句进行语法分析和优化。虽然在用动态SQL语句编程时,调用Prepare方法并不是必须的,但是调用Prepare方法后,会极大地提高动态SQL 语句的执行性能,特别是当要反复多次执行同一条动态SQL语句时,其优越性会更加明显。 如果在应用程序中执行一条SQL语句之前并没有显式地调用Prepare方法,每次在执行SQL 语句时,Delphi会隐含地调用Prepare方法以准备这个查询。TadoQuery部件还有一个Prepare属性,这是一个布尔型属性,当其属性值为True时, 表明该查询已被准备好了( SQL 语句已被传送到数据库引擎中 ) , 当我们使用参数编辑器Parameters Editor来为动态SQL语句中的参数赋值时,当设置完相应的参数值并退出参数编辑器时,Delphi会隐含地调用Prepare方法以准备好查询。当SQL语句执行完之后,要想准备下一个查询,首先必须调用Close方法,然后才能调用Prepare方法准备下一个查询。一般来说,在一个应用程序中应该调用一次Prepare方法,常常在窗体的OnCreate事件处理过程中调用Prepare方法, 然后用上述介绍的方法为参数赋值,最后调用Open方法或ExecSQL方法执行SQL语句,以完成查询。当然在调用Prepare方法准备好一个查询时,会消耗一些数据库资源, 因而每当一个查询执行完毕之后,要养成调用UnPrepare方法以撤消查询的好习惯。在运行程序过程中,通过程序改变TQuery或TADOquery部件的SQL属性值时,Delphi会自动地调用Close方法和UnPrepare 方法,以撤消查询。在程序运行过程中,要想设置Tquery或TADOquery部件的SQL属性,必须首先调用Close方法,关闭TQuery或TADOquery部件,然后再调用Clear方法清除SQL属性中现存的SQL命令语句, 最后再调用Add方法为SQL属性设置新的SQL命令语句。例如:datamodule4.adoquery2.close;datamodule4.adoquery2.sql.clear;datamodule4.adoquery2.sql.add('SELECT 借书证号,密码 FROM [user] WHERE (借书证号 = :tt)');datamodule4.adoquery2.parameters[0].value:=username;datamodule4.adoquery2.open;在为TQuery或TADOquery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery或TADOquery部件已经被关闭了,调用Close方法时不会产生任何影响。在应用程序中为SQL属性设置新的SQL 命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面, 在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。在这里要特别注意的,一般情况下TQuery或TADOquery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。当然有些数据库服务器也支持在TQuery或TADOquery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为 SQL 属性设置多条SQL语句。在为TQuery或TADOquery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。在设计过程中,设置完TQuery或TADOquery部件的SQL属性之后将其Active属性的值置为True, 这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery或TADOquery部件相连的数据浏览部件( 如TDDGrid TDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。在应用程序运行过程中,通过程序调用TQuery或TADOquery组件的Open方法或ExecSQL 方法可以执行其SQL属性中的SQL程序。Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令), 并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT, UPDATE, DELETE等命令),例如:Query1.Open (这样会返回一个查询结果集)如果调用Open方法,而没有查询结果时,会出错。此时应该调用ExecSQL 方法来代替Open方法。如:Query1.ExecSQL (没有返回结果)当然在设计应用程序时,程序设计人员是无法确定TQuery或TADOquery组件中的SQL 语句是否会返回一个查询结果的。对于这种情况应当用Try…Except模块来设计程序。在 Try 部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。例如:TryQuery1.OpenExceptQuery1.ExecSQLEnd通过Tquery或TADOquery组件可以获得两种类型的数据:u “活动”的数据这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中。u 非活动的数据(只读数据)用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置Tquery或TADOquery组件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性设置为True外,相应的SQL命令还要满足以下条件。本地SQL语句查询情况下,要得到可更新的数据集,SQL语句的限制为:n 查询只能涉及到一个单独的表n SQL语句中不能包含ORDER BY命令n SQL语句中不能含聚集运算符SUM或AVGn 在Select后的字段列表中不能有计算字段n 在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是:Like, >, <, >=, <=。各比较运算之间可以有并和交运算:AND和OR当通过SQL语句查询数据库服务器中的数据库表:n 查询只能涉及到一个单独的表n SQL语句中不能包含ORDER BY命令n SQL语句中不能含聚集运算符SUM或AVG运算另外,如果是查询Sybase数据库中的表,那么被查询的表中只能有一个索引。如果在应用程序中要求TQuery或TADOquery组件返回一个“活动”的查询结果数据集,但是SQL 命令语句不满足上述约束条件时,对于本地数据库的SQL查询,BDE只能返回只读的数据集。对于数据库服务器中的SQL查询,只能返回错误的代码。当Tquery或TADOquery组件返回一个“活动”的查询结果数据集时,它的CanModIfy属性的值会被设置成True。§3.4 MS SQL Server简述4.3.2 关系数据库的逻辑设计§5.2 数据模块窗体的设置
学到了知识。基于javaweb的图书馆管理系统学到了知识,图书馆是社会记忆(通常表现为书面记录信息)的外存和选择传递机制。换句话说,图书馆是社会知识、信息、文化的记忆装置、扩散装置。
扫描条形码太简单了,只不过是一种接口方式,和在文本框输入一点区别都没有,你先把接口留出来,着重考虑整个程序的结构吧,这个根web没什么关系
140 浏览 7 回答
261 浏览 3 回答
211 浏览 2 回答
119 浏览 4 回答
180 浏览 2 回答
131 浏览 3 回答
227 浏览 3 回答
263 浏览 2 回答
358 浏览 2 回答
147 浏览 3 回答
350 浏览 2 回答
314 浏览 2 回答
221 浏览 1 回答
114 浏览 4 回答
89 浏览 3 回答