学校图书管理系统分析报告

时间:2024.4.13

系统分析报告

 

 

 

题目:学校图书管理系统分析报告

专业:信息管理与信息系统

院系:工商管理

姓名:李 荣

学号:0811080113

 

学校图书管理系统分析报告

1.开发项目概述

图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订,查询等)。以打破传统的人工借书模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。建立图书管理系统,能使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。

本图书管理系统需要实现的基本功能有管理员登录、图书信息管理、读者帐号管理、记录借还图书信息、图书借阅状态查询以及信息维护等功能的图书管理系统。

2.系统的目标和开发的可行性

本系统要达到的目标有如下几点:

①新书入库操作要简单方便

②读者能查询图书借阅状态

③读者自助续借图书的功能

④读者账号管理挂失功能

开发本系统的可行性

由于本系统可使学校图书馆工作发生“简捷化、快速化、自动化”的改革,加之如今的社会各行各业都在走信息化管理的道路,可见开发本系统的重要性。在得到学校大力支持的前提下,本系统的开发在经济上得到了可靠的保证。开发人员由我校信息专业的同学组成,所以开发人员安全免费,这无疑给系统开发带来了更大的简便。

3.组织结构极其分析

 


图1.0

职位及其负责工作详细介绍:

馆长:负责图书馆重大决策。

一楼门卫:负责进出图书馆人员核查,防止校外人员进去捣乱。

二楼采编室:负责新图书的采编工作,入库登记,图书信息维护等工作。

二楼工科书架、三楼文学书架、四楼计算机书架、农学书架:各自负责其管理书架的日常工作,包括借书,还书,借阅人信息维护等工作。

三楼期刊阅览室:负责将新到的期刊杂志摆放上架,以及监督该阅览内读者活动,以保证环境安静、干净,提供给读者们一个适合阅读的场所。

五楼电子阅览室:负责学生充值,电脑维修,该阅览室清洁工作等。

4.业务流程及其分析

顶层图:

图2.0

(1)借书

 


图3.0

(2)还书

 

图4.0

(3)图书信息维护

 

图5.0

(4)读者信息维护

 

 


图6.0

业务分析:

借书:读者在书架上找到其想要借阅的书籍后,将书籍拿到管理员柜台处,并出示借书证,办理登记手术即可借阅。

还书:在未超期的情况下,读者拿着书籍来到管理员处,将书交还给管理员,管理员进入还书系统,消除借阅记录,还书完成。

图书信息维护:当采编室采编到新书时,需要作新书入库操作。相应书架的管理员在采编室领取新书后,应办理新书入库程序。管理员进入图书馆里子系统新增书籍系统,将新书信息录入数据库即可。当有书籍破损或因某些原因不存在了,即需要做销书操作,管理员进入书籍维护系统删除相关书籍信息即可。

读者信息维护:每当新学期开始,图书管理人员就应该把毕业生的帐号销掉,然后增加新生帐号。当读者密码丢失或者借书证丢失时,管理员需要帮助找回密码,既重设。丢失时要挂失。

结语:本次系统分析算是系统里面很简单的了,图书馆管理系统本身就简单,所以没花多少时间就把老师安排的任务做完了。第一次做,有些地方可能做得不是很好。希望老师在审阅事发现错误和不足之处时予以指正,学生定当虚心接受,并改正。


第二篇:学校图书管理系统毕业论文终结稿


本科生毕业设计(论文)

题 目: 学校图书管理系统的开发 学 院:

专 业:

学生姓名:

指导教师:

合作导师:

完成时间:

成 绩:

目 录

摘要 1

Abstract. 1

1 引言 2

1.1 图书管理的现状 2

1.2 现有图书管理系统的概述 3

1.3 选题的目的、意义 3

1.4 图书管理系统的可行性分析 4

1.5 系统开发运行环境 4

2 图书管理系统开发相关技术的介绍 5

2.1 Asp.net的介绍 5

2.1.1 Asp.net的优势介绍 5

2.1.2 Asp.net的特点 5

2.2 SQL Server 2005 概述 6

2.3 Web技术 7

2.3.1 浏览器/服务器(Browser/Server)结构

2.3.2 IIS服务器技术 7

3 系统总体设计分析 8

3.1 系统需求分析 8

3.2 系统实现的目标 8

3.3 系统功能模块设计 8

3.4 系统功能结构图 9

3.5 系统流程图 11

4 数据总体结构设计 12

4.1 数据库概念结构设计 12

4.2 数据库逻辑结构设计 13

4.3 图书管理系统的系统E-R图 15

4.4 数据表设计 16

5 图书管理系统详细设计 18

5.1 系统流程分析 18

5.2 主要模块的运行 19

5.2.1 登陆界面 19

5.2.2 图书信息管理模块 19 7

5.2.3 图书借还信息模块 21

5.3 系统开发的遇到的相关问题及解决 21

5.3.1 图书管理系统索引 21

5.3.2 如何验证输入的字符串 22

5.3.3 自动计算图书归还日期 23

5.3.4 系统登陆验证码的实现 23

6 结论 25

6.1 主要研究内容及成果 26

6.2 今后进一步研究方向 26

参考文献 26

致 谢 27

学校图书管理系统的开发

数理信息与工程学院 计算机科学与技术 金维律(05600114)

指导老师:许德武(讲师)

摘要:图书管理系统是智能办公系统(IOA)的重要组成部分,因此,图书管理系统也以方便、快捷的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工作人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。采用SQL Server2005数据库作为后台数据库、Visual C#编程语言作为前台开发工具,通过对数据库技术进行了较深入的学习和应用,主要完成书目检索、读者管理、借阅管理、图书管理、用户维护、系统维护等系统功能。系统运行结果证明,本文所设计的图书管理系统可以满足学生和教师借阅者、图书管理员两方面的需要,达到了设计要求。

关键词:图书管理;系统设计;信息;ASP.NET;SQLServer2005

The development of the library book management system

Jin Wei-lv Director:Xu De-wu

(Dept.of Computer Science&Technology,Zhejiang Normal University)

Abstract: Library book management system is an important component part of the (IOA), therefore, the library book management system take the advantage of convenience and shortcut to enter peoples’ life slowly, the old library book management system is a bit outdated. New library book management system have improved efficiency , decrease the heavy workload of the staff in the past , reducing the error probability. It enable people to spend more time for chosing and reading books. So that people have enough time to acquire information , find out information , grasp information . The development of the library book management system contains two handles: The creation and maintenance of the background database and the Future applications. It adopts SQL Server2005 database as background database, Visual C# programming language as future development tools. Through an intensive study and application of database technology to reach the function of bibliography searches, reader management , borrow management, books management, user maintenance, system maintenance and so on. The system operation result proved that the library book management system in the text can meet the demand of the borrower of the student, teacher and the librarian. It reached it’s design requirements.

Keywords:library book management; system design ;information; ASP.NET;

SQLServer2005

1 引言

随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。因此图书管理信息化是发展的必然趋势。用结构化系统分析与设计的方法,建立一套有效的图书信息管理系统,可以减轻工作,将工作科学化、规范化,提高了图书馆信息管理的工作质量因此根据图书馆目前实际的管理情况开发一套图书管理系统是十分必要的。

1.1 图书管理的现状

一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书管理系统广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。随着近年来信息技术及计算机网络技术的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作—图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公局域网络条件,将馆藏书籍做成基于WEB的查询系统,实现图书在一个单位的网络内甚至Internet上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。

传统的图书管理模式其最大的特点是手工;首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别分别放置在文件柜里。对于有学生(教师)证的学生(教师)来说还要对他们资料作一定的记录。并且在人们来借书的时候,首先持证件者要去存放图书分类卡片的文件柜里查找想借的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后登记持证件者的借还书时间和在书签条上写下借还书记录,之后把借书证留在那里;还书的时候,相对应的消去出借记录;这样做起来比较麻烦,比较费时间。传统图书管理的特点是一直以来,中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用传统的人工方式管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、效率低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。

1.2 现有图书管理系统的概述

在试用了一些个图书管理系统和查阅了大量相关资料文献的基础上,发现那些系统在几个方面已经不符合时代的要求,由于设计人员及其所用的工具的不同,有Visual Basic6.0、Visual ForPro6.0、Power Builder等,再加上这些图书管理系统设计的时间也不一样,所用具体场合也有区别,因此在功能上除了图书资料管理所需的基本功能之外也有所不同。经过比较总结他们都实现了以下图书管理的基本功能:1、图书检索模块:是图书管理系统的重要模块之一,是读者快速查询图书的途径。2、图书管理模块:是图书管理员操作模块,读者是无权进入的。本模块由借出图书登记、归还图书登记和续借图书登记子模块构成。3、数据维护模块:是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书,浏览修改读者、浏览修改图书等程序组成。 4、数据统计模块:由读者统计、图书统计、

借出图书分类统计、到期末归还图书读者统计几部分组成。这些系统解决了以前的那种管理方式所存在着的诸如手续繁琐、工作量大、效率低下、出错率高等缺点,设计出的系统能使读者快速检索到自己喜爱的书,图书管理员能减轻工作量。

但是鉴于开发工具和开发当时的科技发展水平所限,再加上历史发展到今天,人们的生活环境已经发生了改变,大家对于图书查询这方面的要求也更高。比如在一个局域网内,大家希望能在本台电脑上就能查找自己想要的图书,而不用跑到图书馆或图书室里去用那里的电脑查询,这就需要一个网络化的联机查询系统。

1.3 选题的目的、意义

随着社会的进步,信息技术的广泛应用,数字化管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一套这样的中小型图书管理软件已经很有必要,并且实现研究服务于实践的原则。

1.4 图书管理系统的可行性分析

本次毕业设计题目:“学校图书管理系统的开发”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有足够认识,并深入的了解Visual C#的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。

现在大多数的图书管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新系统的使用能否可以很好的解决这些问题要看系统的可行性,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。系统的可行性分析有以下几个方面:

(1)技术可行性:处理速度快、准确通过权限的设置,数据的安全性好、方便查询、借阅管理等。

(2)经济可行性:系统建设不需要很大的投入、可缩减人力投入。

(3)运行上可行性:本系统作为一个小型的图书馆信息管理系统,所耗费的

资源非常的小。

(4)从各种社会因素可行性分析:可降低工作人员工作强度,提高效率,会

得到学校工作人员的一致同意的。

综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。

1.5 系统开发运行环境

系统开发环境:Microsoft Visual Studio 2005

系统开发语言:ASP.net+C#

运行平台:Windows XP

数据库:SQL Server 2005

Web服务器: IIS5.1

2 图书管理系统开发相关技术的介绍

2.1 Asp.net的介绍

2.1.1 Asp.net的优势介绍

ASP.Net可完全利用.Net架构的强大,安全,高效的平台特性。ASP.Net是运行在服务器后端编译后的普通语言运行时代码,运行时早绑定(EarlyBinding),即时编译,本地优化,缓存服务,零安装配置,基于运行时代码受管与验证的安全机制等都为ASP.Net带来卓越的性能。 对XML,SOAP,WSDL等Internet标准的强健支持为Asp.net在异构网络里提供了强大的扩展性。ASP.NET?是一个已编译的、基于?.NET?的环境,可以用任何与?.NET?兼容的语言创作应用程序。另外,任何?ASP.NET?应用程序都可以使用整个.NET框架。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。在创建?ASP.NET?应用程序、Web?窗体和?Web服务时,开发人员可以选择下列两个功能,或者以他们认为合适的任何方式将它们结合起来使用。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义,这里只是列出几种可能性而已。“Web?窗体”用于生成功能强大的基于窗体的?Web?页。生成这些页时,可以使用?ASP.NET?服务器控件来创建公共?UI元素,以及对它们进行编程以用于执行常见的任务。这些控件使您能够用可重复使用的内置或自定义组件生成?Web?窗体,从而简化页面的代码。有关更多信息,请参阅Web?窗体页。有关如何开发ASP.NET?服务器控件的信息,请参阅开发?ASP.NET?服务器控件。XML?Web?services?提供了远程访问服务器功能的途径。通过使用?Web服务,企业可以公开其数据或业务逻辑的编程接口,然后客户端和服务器应用程序就可以获得和操作这些编程接口。这些模型中的每一个模型都可以充分利用所有?ASP.NET?功能,以及?.NET?框架和?.NET? 框架公共语言运行库的强大功能。

2.1.2 Asp.net的特点

ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。

2.2 SQL Server 2005 概述

SQL Server 是一个关系数据库管理系统它是由Microsoft推出的。SQL Server 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力,提供了以 Web 标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数据。

SQL Server 提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进一步拓展应用空间,带来新的商业应用机遇。例如,XML数据库与Web Service的支持将使您的应用实现Internet数据互联,.net集成极大的扩展了开发空间,异构数据集成、Service Broker使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。C#、VB.net、XQuery、XMLA、ADO.net 2.0、SMO、AMO等都将成为SQL Server数据平台上开发数据相关应用的有力工具。它具有以下特点:

(1)上手容易

大多数的中小企业日常的数据应用是建立在Windows平台上的。由于SQL Server与Windows界面风格完全一致,且有许多"向导(Wizard)"帮助,因此易于安装和学习,有关SQL Server的资料、培训随处可得,并且目前国内具有MCDBA认证的工程师不在少数

(2)兼容性良好

由于今天Windows操作系统占领着主导地的位,选择SQL Server一定会在兼容性方面取得一些优势。另外,SQL Server 2005 除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮 XML 数据,可以将搜索结果以 XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。这些特点在.NET 战略中发挥着重要的作用。

(3)电子商务

在使用由Microsoft SQL Server 2005关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。此外,XML支持还简化了后端系统集成,并实现了跨防火墙的无缝数据传输。你还可以使用Hypertext Transfer Protocol(超文本传输协议,HTTP)来访问SQL Server 2005,以实现面向SQL Server 2005数据库的安全Web连接和无须额外编程的联机分析处理(OLAP)多维数据集。

(4)数据仓库

Microsoft SQL Server 2005非常明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势,它允许组织或机构最大限度的从数据中获取价值。通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。

2.3 Web技术

2.3.1 浏览器/服务器(Browser/Server)结构

随着Web和Internet计算环境的发展,将使企业能够以更快的速度、更低的费用去创建和布置企业的应用系统,因而,普遍认为C/S架构将会被B/S结构取代。Internet为数据库应用系统提供了新的机会,采用B/S结构,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explores;中间层采用Web服务器,它接受客户端的请求,将其转换为SQL语句,通过ODBC或其他手段传给数据库服务器,并将数据库服务器返回的结果用HTML文件格式传回给客户机。客户机的要求大大降低,大部分程序在服务器端执行。采用3层体系结构的Web应用程序由Web浏览器、Web服务器和数据库3部分组成,如图2-1所示。Web浏览器与Web服务器之间的通信仍然遵循HTTP,Web服务器与数据库之间的通信遵守CGI(Common Gateway Interface)或者Server API规范。在采用三层体系结构的Web应用程序中,Web浏览器向Web服务器请求某个HTML文档或者请求执行某个CGI脚本程序。Web服务器根据Web浏览器请求的是某个CGI程序或者API程序,Web服务器则执行(或调用外部程序执行)该程序,然后将程序执行结果返回给Web浏览器。习惯上,我们把采用这种体系结构的Web网站称作“动态网站”。目前,互联网中绝大部分网站和大多数Web应用系统都采用了这种体系结构。

2.3.2 IIS服务器技术

IIS(Internet Information Server Internet信息服务器)是Microsoft公司开发的一种集Web,FTP和Gopher服务于一身的服务器,它可以利用Windows XP Server的各种功能并且能在Internet上发布信息。IIS是微软随着WindowsXP Server附带的一个软件。IIS提供Internet信息服务器应用程序接口(ISAPI)扩展Web服务器的功能,并可通过ASP.NET实现Web程序的快速开发,ASP.NET支持服务器端的JavaScript, VBScript, Microsoft Java和ActiveX Server Component,还支持用VB编写的CGI程序,甚至用VB开发的C/S架构的程序不经

过修改就可以在Web上发布,可以使开发动态主页更加方便,同时也保护了以前的投资。IIS还包括了Microsoft Index Server,可实现对本Web站点内容的全文检索以及Site Server Express用于分析站点访问的情况。IIS的管理功能是基于WindowsXP Server的,可充分利用WindowsXP Server提供的安全服务和目录服务。它的安全模型是以NTFS安全机制为基础的,这样利用资源管理器可以容易地管理使用IIS建立的Web站点的安全性。 3 系统总体设计分析

3.1 系统需求分析

随着互联网的爆炸性发展,人们越来越习惯于利用网络来实现所需的服务,网络已深深影响到人们生活的各个方面。另外,传统的图书馆不能满足一部分现代人的需要,而电子阅览室,由于其不受时间与空间的限制同时又具有传统图书馆的大部分功能,能够满足各类用户的常规与特殊需求,而且其方便快捷,实现技术又比较成熟,因此受到当代人的喜爱。 该系统主要分为两部分:读者部分和管理员部分。为了方便读者查找自己感兴趣的主题进行阅读,要将图书按照内容进行分类。读者可以按照类别进行查找,逐级浏览、可以查看自己的信息。本系统还可对用户的账号和书目的阅读权限进行管理。管理员需要给用户分配用户名和密码,及设定用户的级别,还为用户提供图书的排行榜让用户能知道那些图书受到大家的欢迎。

3.2 系统实现的目标

学校图书管理系统的开发主要要实现的目标有以下几个方面:

(1)界面设计友好、美观。

(2)数据存储安全、可靠。

(3)信息分类清晰、准确。

(4)强大的查询功能,保证数据查询的灵活性。

(5)实现对图书借阅和归还过程的全程数据信息跟踪。

(6)提供图书借阅排行榜,为图书管理员提供了真实的数据信息。

(7)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。

(8)具有易维护性和易操作性。

3.3 系统功能模块设计

(1)系统设置模块:添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删除书架信息。

(2)读者管理模块:添加删除不同类型的读者及注明可借图书的数量、添加删除读者的档案。

(3)图书管理模块:添加删除不同类型的的图书及注明图书可借的天数库存数量、添加删除图书的档案。

(4)图书借还模块:可查询读者借阅和归还图书的信息及图书的现有库存量。

(5)系统查询模块:可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、到期时间)查询自己借阅图书信息。

(6)排行榜模块:可以让读者知道图书借阅的排行榜及读者借阅的排行榜。

3.4 系统功能结构图

根据图书管理系统的实际需求,可以将图书管理系统划分为系统设置、图书管理、读者管理、图书借还、系统查询、排行榜6个部分各个部分的具体功能的系统功能结构图如图3-1所示。

图3-1 系统功能结构图

(1)图书借阅系统完成用户的借书过程其数据流图如图3-2所示。

图3-2 借阅系统的数据流图

(2)还书系统完成图书的归还过程其数据流图如图3-3所示。

图3-3 归还系统的数据流图

(3)图书档案管理系统为用户提供图书档案信息其数据流图如图3-4所示。

图3-4 图书档案管理数据流图

(4)读者档案系统用于记录读者的详细信息其数据流图如图3-5所示。

图3-5 读者档案管理数据流图

3.5 系统流程图

图书管理系统的流程是用户先输入自己的帐号密码及系统显示的验证码进入系统如有一项不符合则不能进入系统,成功登陆系统后系统根剧登陆的帐号信息从数据库中的数据进行对比判断是读者还是管理员,如果是读者则能进行信息查询,及修改自己的相关信息,查询到自己所需要的图书就能通过管理员进行借阅图书、归还图书也是通过管理员完成的。如果不是读者而是管理员,那管理员可以进行相关信息的查询、添加删除图书及读者的所有信息、设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。图书管理系统的系统流程图如图3-6所示。

图3-6 图书管理系统的流程图

4 数据总体结构设计

4.1 数据库概念结构设计

数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这个阶段不用考虑所采用的数据库管理系统、操作系统类型、机器类型等问题。这阶段可用的工具很多。用的最多的是E-R图(Entity-Relation,实体-关系图),另外还有许多计算机辅助工具(Computer Aided Software Engineering, CASE)可以帮助进行设计。本系统采用了E-R图的方法进行数据库概念结构设计。E-R图是描述数据实体关系的一种直观描述工具。这种图中有:

(1)实体:用方框表示,方框内为实体的名称。

(2)实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和响应的实体连接起来。

(3)实体之间的联系:用菱形表示,菱形内为联系的名称。

实体和实体之间的联系较多,比较常见的联系有l:1,l:N和M:N这三种。

4.2 数据库逻辑结构设计

概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。

第一种转化是将实体转化为关系表。这种转化较简单,需要将实体的属性定义为表的属性即可。

第二种转化是联系的转化。即将各个实体之间的联系转化为表格之间的关系,如外部键的定义。

在上面工作的基础上归纳出人员管理数据库表格的组成之间的联系等等。该数据库系统

具有以下方面的特点:

结构合理,对一个人员建立多条记录。

所建立的数据冗余度小,独立性强。

建档、修改、查询、统计快速而准确。

保密性好、可靠性好。

图书管理系统中要有图书,图书是图书管理系统中密不可分的部分,因此要创建一图书信息实体,用来保存图书的详细信息。图书信息实体属性图如图4-1所示。

图4-1 图书信息实体属性图

读者是图书管理系统重要组成部分,这里创建了一个读者信息实体,用来存储读者的详细信息。读者信息实体E-R图如图4.2所示。

图4-2 读者信息实体属性图

图书的借阅和归还是图书管理系统中的一项重要的环节,开发图书管理系统就是为了方便读者对图书的借阅和归还,因此要建立一个图书借还实体,用来保存读者对图书的借阅和归还的详细信息。图书的借阅和归还实体属性图如图4-3所示。

图4-3 读者借还实体属性图

图书管理系统为了增加系统的安全性,管理员只有在系统登陆模块验证通过后才能进入管理员的操作界面,因此套在数据库中创建一个存放登录用户信息的管理员实体。管理员实体属性图如图4-4所示。

图4-4 管理员实体属性图

4.3 图书管理系统的系统E-R图

图书管理系统的系统E-R图如图4-5所示。

图4-5 图书管理系统的系统E-R图

4.4 数据表设计

本系统使用的数据库管理系统为SQL Server 2005。数据库中的表有管理员信息表、图书信息表、读者信息表、管理员权限表、图书借阅归还表等。

图书管理员基本信息表tb_admin,如表4-6所示。

字段名

数据类型

长度

主键

描述

id

varchar

50

管理员编号

name

varchar

50

管理员名称

pwd

varchar

30

密码

表4-6 tb_admin(管理员)表 读者详细信息表tb_reader,如表4-7所示。

字段名

数据类型

长度

主键

描述

id

varchar

30

读者编号

name

varchar

50

读者名称

sex

char

4

性别

type

varchar

50

读者类型

birthday

smalldatetime

4

生日

paperType

varchar

20

证件类型

paperNum

varchar

30

证件号码

tel

varchar

20

电话

email

varchar

50

E-mail

createDate

smalldatetime

4

注册日期

oper

varchar

30

操作员

remark

text

16

备注

borrownum

int

4

借阅次数

表4-7 tb_reader(读者信息)表

图书详细信息表tb_bookkifo,如表4-8所示。 字段名

数据类型

长度

主键

描述

Bookcode

varchar

30

图书条形码 bookname varchar 50 否

图书名称 type varchar 50 否

图书类型 autor varchar 50 否 作者 translator varchar 50 否 译者 pubname varchar 100 否 出版社 price money 8 否 价格 page int 4 否 页码 bcase varchar 50 否 书架 storage bigint

8

存储数量

inTime

smalldatetime

4

入馆时间

oper

varchar

30

操作员

borrownum

int

4

被借次数

表4-8 tb_bookkifo(图书信息)表

图书借阅和归还信息表tb_borrowandback,如表4-9所示。 字段名

数据类型

长度

主键

描述

id

varchar

30

借书编号

readid

varchar

20

读者编号

bookcode

varchar

30

图书条形码

borrowTime

smalldatetime

4

借书时间

ygbackTime

smalldatetime

4

应该还书时间

sjbackTime

smalldatetime

4

实际还书时间

borrowoper

varchar

30

借书操作

backoper

varchar

30

还书操作

isback

bit

1

是否归还

表4-9 tb_borrowandback(图书借阅和归还信息)表 权限信息表tb_purview,如表4-10所示。 字段名

数据类型

长度

主键

描述

id

varchar

50

用户编号

syset

bit

1

系统设置

readset

bit

1

读者管理

bookset

bit

1

图书管理

borrowback

bit

1

图书借还

syaquery

bit

1

系统查询

表4-10 tb_purview(权限信息)表

5 图书管理系统详细设计

5.1 系统流程分析

根据开发图书管理系统的需求分析,本系统设计了三种用户,分别为系统管理员、教师和学生。

系统要求有系统管理员用户,我们设定系统管理员,当系统管理员使用帐户登录后,需要查看有关图书的一系列的信息,管理员可以通过系统导航菜单进入读者管理界面、图书管理界面、图书借还界面、系统查询界面、排行榜界面,在读者界面中,管理员添加和修改学生或教师信息、用户可以查看自己信息,在图书管理界面管理员可以添加和修改图书信息、用户可查看图书,在图书借还界面完成读者借书还书的操作,系统查询界面管理员可以查看借出去的图书信息及库存的信息、用户可以查找自己的所需的图书,排行榜界面主要是可以让用户知道哪些图书受到读者的喜爱。读者(老师和学生)使用读者帐号登陆系统后,可以查询自己所需要的图书的信息、也可以查询自己个人的基本信息及图书的借还信息,还能查看排行榜的信息。读者的借书和还书过程是通过管理员完成的。

5.2 主要模块的运行

5.2.1 登陆界面

当用户输入用户名、密码,系统自动将输入的信息和相关数据表中的内容进行比较,如果该用户输入的内容和数据表中的内容相符,则通过验证,此次登录成功;否则登录失败。比较的过程是由浏览器将指令,数据发送到Web服务器,Web服务器通过对数据库进行查询将结果返回到浏览器,从而端显示成功的消息,用户只有成功登陆系统后才能进行一系列的操作,如下图5-1所示。

5-1 图书管理系统登陆界面

5.2.2 图书信息管理模块

图书信息管理模块主要分为查看图书信息页面和添加修改图书信息页面,用户可以在查

看图书信息页面查看图书的基本信息,管理员也可以看这些信息,并且可以通过单击“添加图书信息”这个超级链接或GridView控件中的“详情”超级链接转到添加或删除图书信息界面,并在该页中添家或修改图书信息,如图5-2与5-3所示。

图5-2 查看图书信息界面

图5-3 添家或修改图书信息界面

图书信息管理模块的实现,主要是使用了ADO.NET操作数据库技术。

在使用ADO.NET技术操作数据库时,主要用到了Connection、Command、DataAdaper和DataSet4个对象重要负责在Connection对象主要负责连接数据库,Command对象主要负责生成并执行SQL语句,DataAdaper对象主要负责在Command对象执行完SQL语句后生成并填充DataSet和DataTable,而DataSet对象主要负责存取和更新数据。

5.2.3 图书借还信息模块

图书借还管理模块主要分为图书借阅页面和图书归还页面,用户可以在通过这个模块查看图书的借阅和归还信息。管理员可以在图书通过这个模块来完成读者借和还书的操作,如图5-4与5-5所示。

图5-4 图书的借阅管理

图5-5 图书归还管理

实现图书的借还功能主要用到了GridView模板列技术。

5.3 系统开发的遇到的相关问题及解决

5.3.1 图书管理系统索引

图书管理系统开发中存在大量的数据和信息检索,怎样更好的检索数据和信息操作是保证检索速度的提高和数据的分页显示,主要考虑了以下几个方面:

(1)设计逻辑结构时充分考虑冗余量和可处理性两方面的要求,在接受冗余量的提下,尽量减少表的连接操作。

(2)关系的大小对查询的影响也是很大的,因此为了提高数据库的查询速度,减小系的大小和数据量也是必要的。

(3)建立合理的索引结构。索引相当于一个映射机构,将键值转换成相对应的

记录地址,形成索引文件。

索引设计是数据库物理设计的基本问题,也是较困难的问题,建立索引可以极大地提高系统的查询速度,但是同时做Insert、Update、Delete操作时会降低速度,因为做这些操作的同时需要更新索引,所以不能对数据库中所有的表都建立索引。比如满足下列条件之一的不易建立索引:不出现或很少出现的属性或表、属性分布严重不均的属性、经常更新的属性或表、过长的属性、太小的表等。

满足下列条件之一的可以考虑建立索引:主键和外键都建立索引、对于以读为主或只读的表,只要需要,且存储空间允许,可以减少连接开销、对于等值查询(即查询条件以等号为比较符),最好建立索引、对查询范围(即查询条件>,<,≤,≥为比较符),最好建立索引、有些查询可以由检索直接得到结果,不必访问数据块。

根据实际需要,读者信息表,图书信息表,图书借还信息表,权限信息,管理员信息表等都建立索引,合理使用缓冲区。

5.3.2 如何验证输入的字符串

在图书管理系统的开发过程中,需要对一些输入的字符串进行验证,例如金额、电话号码、E-mail等,由于许多模块都需要用到这些验证,因此可以将其写入到一个公共类中然后在其他的页面中直接调用即可。C#中对字符串进行验证时,可以使用Regex类,要使用正则表达式验证输入的字符串,如验证输入的字符串是否为E-mail的地址格式的实现方法。

代码如下:

#region 验证输入为Email

/// <summary>

/// 验证输入为Email

/// </summary>

/// <param name="str"></param>

/// <returns></returns>

public bool validateEmail(string str)

{

return Regex.IsMatch(str, @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); }

#endregion

5.3.3 自动计算图书归还日期

在图书管理系统运行中会常常遇到这样的问题:在借阅图书时,需要自动计算图书的归还日期,而这个日期又不是固定不变的,它是需要根据系统日期和数据表中保存的各类图书的最多借阅天数来计算的,即图书归还日期=“系统日期”+“最多借阅天数”。因此本系统是这样解决问题的:首先获取系统时间,然后从数据表中查询出该类图书最多借阅天数,最后计算归还日期。计算方法如下:

首先取出所借图书的最多借阅天数,然后根据图书的最多借阅天数,使用TimeSpan.FromDays方法返回一个TimeSpan,最后使用当前时间与先返回的Timespan时间间隔相加。

自动计算图书归还日期的关键代码如下:

int days = Convert.ToInt32(btypemanage.FindBTypeByName(btypemanage,

"tb_booktype").Tables[0].Rows[0][2].ToString());

TimeSpan tspan = TimeSpan.FromDays((double)days);

borrowandbackmanage.YGBackTime = borrowandbackmanage.BorrowTime + tspan;

5.3.4 系统登陆验证码的实现

在学校图书管理系统的开发过程中,怎么样防止某些人利用某些恶意的软件对图书管理系统进行恶意的登陆来攻击系统,增加图书管理系统的安全性是一个重要的问题。在图书管理系统的登陆模块中加入一个验证码的功能,即用户除了要输入帐号和密码还要输入系统为用户提供的验证码。验证码可以很好的解决了怎样防止恶意用户利用恶意软件对系统页面的疯狂提交、以及暴力破解密码进行登陆的问题。因此,设置一个随机函数在数字0~9和英文字母A~Z中随机抽取四个,在用户打开登陆界面的时候,系统通过随机生成器随机生成4个数字或字母或数字加字母存放在缓存内,并出现在界面上顺序是随机的,当用户登陆时输入的验证码要与缓存中的进行对比符合就进入,不符合就不能登陆。系统在提供验证码时候要加入一些干扰的条件的,不过这些人的肉眼是很容易分辨,但机器人程序不能分辨,很好的防止某人利用机器人程序对系统的恶意操作增加了系统的安全性。验证码实现的关键代码如下:

private string GenerateCheckCode()

{

int number;

char code;

string checkCode = String.Empty;

System.Random random = new Random();

for (int i = 0; i < 4; i++)

{

number = random.Next();

if (number % 2 == 0)

code = (char)('0' + (char)(number % 10));

else

code = (char)('A' + (char)(number % 26));

checkCode += code.ToString();

}

Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));

return checkCode;

}

private void CreateCheckCodeImage(string checkCode)

{

if (checkCode == null || checkCode.Trim() == String.Empty)

return;

System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);

Graphics g = Graphics.FromImage(image);

try

{

//生成随机生成器

Random random = new Random();

//清空图片背景色

g.Clear(Color.White);

//画图片的背景噪音线

for (int i = 0; i < 2; i++)

{

int x1 = random.Next(image.Width);

int x2 = random.Next(image.Width);

int y1 = random.Next(image.Height);

int y2 = random.Next(image.Height);

g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);

}

6 结论

经过几个月的设计和开发,学校图书管理系统基本开发完毕。其功能基本符合用户需求。对于数据的一致性的问题也通过程序进行了有效的解决。但是该系统还有许多不尽如人意的地方,在今后有待进一步改善。通过这次毕业设计真切地体会到毕业设计的目的并不止于自己单纯任务的完成,而在于学习新的知识并掌握具体的方法,如何具体使用和具体应用你所学所用的语言。从而获得一种本领:就是融会贯通各种语言。回首整个开发设计过程,我学到了很多书本上学不到的东西。比如以前开发软件的时候,一般做的就是编码工作,实现比较简单的功能。但是这次毕业设计,我要负责图书管理系统的整个开发过程,包括系统可行性分析、系统需求分析、系统概要设计、系统详细设计等方面的工作。在每个设计阶段我都能学到一些新知识,对我的动手能力提高很大。在整个毕业设计过程中,我基本上完成了图

书管理系统各个模块的功能,达到了毕业设计的要求。页面设计还有进一步改善的地方,我会在今后的学习工作中着重加强这方面的锻炼。

在以后的工作中,还会遇到很多类似的情况,此次毕业设计为我以后的工作积累了很多宝贵的经验。这几个月中,从接到设计课题到具体设计再到完成系统开发,是一个不断地遇到问题与解决问题的过程。其中包括:分析各种需求、完善各种功能、增加必要环节、对各部分及整体进行检测与维护。当然仍存在许多问题不能解决地尽善尽美,还需不断地继续与探索。在结束设计的同时也感到了劳动的艰辛与劳动成果的来之不易,明白了毕业设计是给自己提供了一个锻炼、升华、提高、完善的机会。

6.1 主要研究内容及成果

介绍学校图书管理系统根据实际的需求及发展情况进行设计与开发情况,及介绍本系统设计应用平台及技术支持讲述本系统设计理念及具体设计情况,讲解本系统具体制作方法及核心代码。开发的图书管理系统基本上能完成预期的目标,大致能满足读者和管理员的要求。不过也有一些不足之处需要好好改进。

6.2 今后进一步研究方向

(1) 对页面进行美化,使界面变的更美观一点。

(2) 增加数据转换接口,使得本系统能与学校图书管理系统数据库进行无缝连接。

(3) 添加系统功能,本系统只有让读者知道还书的期限,当图书超期而读者也没注意要自己所借图书超期了,就无法及时的还书了,因此增加图书到期催还功能,能让读者在自己信息查询时候就能看到系统对自己所借图书的超期提醒以方便读者的图书归还。 参考文献

[1] 刘乃丽.精通ASP.NET2.0+SQLServer 2005项目开发.[M].北京:人民邮电出版社, 2007:100~150.

[2] 易向东,陈蓓,万英编著.C#程序员开发指南[M].北京:北京希望电子出版社,2006:212~232.

[3] (美)内格尔,伊夫杰,格林等.C#高级编程(第四版)[M].李敏波.北京:清华大学出版社,2006:80~100.

[4] (美)Kaili Watson .C#2005数据库编程经典教程[M].人民邮电出版社,2007:90~120.

[5] (美)沃尔特,本-甘,萨卡.Microsoft SQL Server 2005技术内幕-T-SQL程序设计[M].北京:电子工业出版社,2007:50~80.

[6] 刘烨,季石磊等.C#编程及应用程序开发教程[M].北京:清华大学出版社,2007:132~180.

[7] 殷泰晖,张强,杨豹等C#编程从基础到实践,电子工业出版社,2007:100~120

[8]李永平.ASP.NET 2.0(C#)基础教程[M] .北京:清华大学出版社,2008:123~143.

[9] 微软公司著.熊盛新,许志庆,李钦译.Visual C# .NET语言参考手册[M].北京:清华大学出版社,20xx年:160~180.

[10] 王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2006:70~100.

[11] 马军.精通ASP.NET2.0网络应用系统开发[M].人民邮电出版社,2006:110~140.

[12]欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦[M].北京:电子工业出版社,2006:233~245.

致 谢

为期四年的大学本科的学习生活即将结束,在此,感谢我的家人,是他们的支持和鼓励使我有了四年美好的大学时光。我要感谢所有曾经教导过我的老师和关心过我的同学,感谢他们在我学习成长过程中所给予我的帮助。

这次毕业设计能成功完成,要特别感谢我的指导老师,感谢许老师对我的作品提出的建议和指导。在整个设计阶段,许老师在我有困难的时候细心为我指导,给了我很大的帮助。

在论文完成之际,谨向我尊敬的导师表示诚挚的谢意,感谢许老师对我的关心和帮助。在整个系统的开发过程中,同学和朋友给了我很大的帮助。感谢给予我帮助的同学和朋友们,他们在我的整个设计过程中给我提供了大量的技术指导和实践机会。

衷心的感谢你们!

目 录

一、设计(论文)题目:学校图书管理系统的开发

二、设计(论文)的研究内容和任务要求

首先,开发一个采用B/S结构的学校图书管理系统,使用JSP或JAVA或.net或AJAX或PHP作为主要的开发技术,后台使用数据库软件SQL Server 2000或更高版本。

其次,要给出系统的功能结构,尽可能完整。具备如下功能:系统设置(图书馆信息、管理员设置、书架管理、权限设置)、读者管理(读者的类型管理、读者档案管理、添加删除用户)、图书管理(图书类型管理、图书档案管理、添加删除图书)、图书的借阅与归还(图书借阅、图书归还)、系统查询(图书档案查询、图书借阅查询)、排行榜(图书借阅排行榜、读者借阅排行榜)

系统采用多层体系结构,分为数据访问层、业务逻辑层和页面显示层。对于每一层,要有详细的设计说明。

最后,要求所有的功能模块要能够运行,输入测试数据进行测试,无重大错误。软件具有一定的健壮性。所有源代码的书写格式要规范,要有详细的注释。要求界面简洁,美观,方便用户操作,充分利用控件的功能。

三、进度安排

2008-11-01——2008-12-01 理论可行性分析、阅读相关书籍、编写需求分析

2008-12-02——2008-12-12 系统的总体设计,毕业设计的开题报告撰写

2008-12-13——2009-01-20 系统模块的划分、开始对相关键模块的编写

2009-01-21——2009-03-01 具体代码实现,系统各项功能的实现

2009-03-02——2009-03-07 进行测试,改正

2009-03-8——2009-04-08 写毕业论文

2009-04-09——2009-04-10 整理资料,准备答辩

四、主要参考资料

[1] 刘乃丽.精通ASP.NET2.0+SQLServer 2005项目开发.[M].北京:人民邮电出版社, 2007:100~150.

[2] 易向东,陈蓓,万英编著.C#程序员开发指南[M].北京:北京希望电子出版社,2006:212~232.

[3] (美)内格尔,伊夫杰,格林等.C#高级编程(第四版)[M].李敏波.北京:清华大学出版社,2006:80~100.

[4] (美)Kaili Watson .C#2005数据库编程经典教程[M].人民邮电出版社,2007:90~120.

[5] (美)沃尔特,本-甘,萨卡.Microsoft SQL Server 2005技术内幕-T-SQL程序设计[M].北京:电子工业出版社,2007:50~80.

[6] 刘烨,季石磊等.C#编程及应用程序开发教程[M].北京:清华大学出版社,2007:132~180.

[7] 殷泰晖,张强,杨豹等C#编程从基础到实践,电子工业出版社,2007:100~120.

[8] 李永平.ASP.NET 2.0(C#)基础教程[M] .北京:清华大学出版社,2008:123~143.

[9] 微软公司著.熊盛新,许志庆,李钦译.Visual C# .NET语言参考手册[M].北京:清华大学出版社,20xx年:160~180.

[10] 王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2006:70~100.

[11] 马军.精通ASP.NET2.0网络应用系统开发[M].人民邮电出版社,2006:110~140.

[12] 欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦[M].北京:电子工业出版社,2006:233~245.

指导教师签名 学生签名

系主任签名 200 年 月 日

职称

论文题目

学校图书管理系统的开发

文献综述

图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。由于图书馆主要从事大量的图书资料的储存和流通,因此图书馆的图书管理是至关重要的。随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。与此同时,为了管理大量的图书,图书管理也大量的出现,图书的管理问题也就提上了日程。随着图书的大量增加,其管理难度也越来越大,如何提高图书管理效率也就成为了一个大众化的课题。随着我国改革开放的不断深入,经济飞速的发展,没有现代化的管理是万万不行的,图书管理的全面自动化、信息化则是其中极其重要的部分。在计算机飞速发展的今天,将计算机这一

信息处理器应用于图书馆和图书馆的日常管理已是势必所然,。采用计算机管理信息系统已成为图书管理科学化和现代化的重要标志,极大提高了图书管理的工作效率,大大减少了以往入、出、存流程繁琐,杂乱,周期长的弊端。为了加快图书管理自动化的步伐,提高图书的管理业务处理效率,建立图书管理系统已变得十分重要。

在上述背景下,建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况.提高图书信息管理的效率,也是管理科学化、正规化重要途径。

一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,读者可以查阅并修改自己的信息、修改密码、查阅借阅情况、搜索图书;系统管理员可以进行读者维护、图书维护、图书搜索;图书馆管理人员可以进行图书的借阅与归还。

现在社会上有许许多多的图书管理系统,在功能上除了图书资料管理所需的基本功能之外也有所不同。经过比较总结他们都实现了以下图书管理的基本功能:1、图书检索模块:是图书管理系统的重要模块之一,是读者快速查询图书的途径。2、图书管理模块:是图书管理员操作模块,读者是无权进入的。本模块由借出图书登记、归还图书登记和续借图书登记子模块构成。3、数据维护模块:是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书,浏览修改读者、浏览修改图书等程序组成。 4、数据统计模块:由读者统计、图书统计、借出图书分类统计、到期末归还图书读者统计几部分组成。这些系统解决了以前的那种管理方式所存在着的诸如手续繁琐、工作量大、效率低下、出错率高等缺点,设计出的系统能使读者快速检索到自己喜爱的书,图书管理员能减轻工作量。但是鉴于开发工具和开发当时的科技发展水平所限,再加上历史发展到今天,人们的生活环境已经发生了改变,大家对于图书查询这方面的要求也更高。比如在一个局域网内,大家希望能在本台电脑上就能查找自己想要的图书,而不用跑到图书馆或图书室里去用那里的电脑查询,这就需要一个网络化的联机查询系统。

随着近年来信息技术及计算机网络技术的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作—图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公局域网络条件,将馆藏书籍做成基于WEB的查询系统,实现图书在一个单位的网络内甚至Internet上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。

随着社会的进步,信息技术的广泛应用,数字化管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对

中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一套这样的中小型图书馆的图书管理软件已经很有必要,并且实现研究服务于实践的原则。

开发图书管理系统的一个目的是针对目前普遍的图书管理系统存在的功能不全,操作复杂,系统要求高等一系列问题,而设想一个具有个性化的图书管理系统。从而在图书馆对新旧书的反应;对书籍借阅的管理能力;对读者和图书馆工作人员的管理能力;对图书馆管理人员软件操作的适应时间和操作感觉这些方面都将大大的提高。当然对该软件的态度是渴望获得显著的社会效益。

开发图书管理系统的另一个目的是使其具有强大的实用价值,即它可以满足中小型图书馆的借阅与管理的需要。在一般的学校与科研机构,其下属的很多分支的研究中心,试验中心,各个学院,它们往往都有着自己的规模较大的图书资料室。而这些图书资料室由于本身规模不大因此其对书籍或资料的管理模式一般都比较旧,而且在没有能力也没有必要引进大型的图书馆管理软硬件的基础上,寻求一个针对中小型图书资料室的管理软件是必要的。 过去我们以开架借阅满足读者按需索书的愿望。但在传统的借阅方式下,难以达到读者快速索取图书的要求。以计算机网络为手段的信息传递具有高速度、高效率的特点,是任何手工操作都无法比拟的,电子技术与图书馆工作的结合,实现了图书馆管理和服务的现代化。利用图书管理系统,可以激活馆藏中的各种图书,使读者从主题,各种角度检索图书的愿望得到实现。方便,快捷的检索方式缩短了寻找所需图书的时间,使读者摆脱了由于书目急速增长而无从下手的困扰,大大提高了搜索效率,加速了图书的开发利用。更为优越的是新图书管理系统的使用增强了图书馆员与读者之间的互动服务,以及读者的自助服务,比如说可通过网络推荐新书和自行办理图书预约,续借手续等等。

图书馆中的图书管理系统在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。因此图书管理信息化是发展的必然趋势。用结构化系统分析与设计的方法,建立一套有效的图书信息管理系统,可以减轻工作,将工作科学化、规范化,提高了图书馆信息管理的工作质量。近些年来,图书馆事业的巨大进步已为图书馆在新世纪的发展打下了坚实的基础.全球信息化和高新技术的发展也为图书馆提供了更好的发展机遇,传统的单一以书本作为单元信息服务手段已不能满足读者的需求,现代化服务手段的实施势在必行。

我国的图书馆中的图书管理发展要经过三个阶段:一是条目式数据管理阶段,二是简介式数据管理阶段,三是全文数据库管理阶段。现在,图书馆的数据绝大部分是条目式数据,也就是说只记录了文献的题名、作者、出版年月等信息,这些简单信息已能满足读者的需求。在条目式著录基础上加上文献的内容简介,就是简介式数据,通过文献内容简介,读者会对文献有一个简单的了解,但如果读者想看文献内容,还必须找到原始文献。如果图书馆将原始文献也放在本馆主机上,读者就不用到图书馆而直接在自己的计算机上就可以查看原始文献,这是全文数据库阶段。当一个馆的全文数据占到一定比例的时候,图书馆的概念就发生了转变。现在网络的普及和文献高速数据扫描技术的发展使建立大量全文数据成为了可能。在不长的时间内,互联网站上将会有大量的全文数据,这就给图书信息管理软件提出了一个问题:如何管理大量的网站资源。对图书馆来说,将来的采购主要是网上采购,编目是对大量网上信息的加工整理,即将大量的数据加载或链接到本馆系统中来。对读者来说,他会在图书馆网站上检索到大量全文资料,这些资料可能在全球任何位置。学校图书管理系统的开发主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项

管理。同时对整个系统的分析、设计过程给出一个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有足够认识,并深入的了解Visual C#的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。

我们了解到“国内外的图书馆中的图书管理系统呈现出以下几个方面的发展趋势:资源趋势、网络化趋势、小型化趋势、个别化服务趋势和数字化趋势”。其中网络化趋势是不言而喻的,图书业是最早利用网络的行业之一,网络已经在图书业获得了最广泛的应用。尤其是最近两年,互联网的发展风起云涌,从某种程度上讲它已经成为图书业发展的重要内在因素和原动力之一。现在很多的图书馆已经是图书管理自动化、网络化,实现了网上查询检索,网上采访,联合编目,馆际互借,只要能连上Internet,就是坐在家里也可以查询自己要的书、资料等等信息,高校图书馆的数字图书馆已经出现并应用。图书馆中的图书管理系统就其本质而言,是一种信息资源体系,是信息市场中的信息供给方;就其功能而言,主要有信息资源提供和信息咨询两大功能;就其工作而言,可划分为信息资源提供服务工作和信息咨询服务工作两大部分。信息资源提供服务工作是随着图书馆的产生而产生的,是最古老的图书馆工作,是传统图书馆工作的核心。其主要特征是它不生产新的信息产品,而只是对社会生产和信息产品进行集中存贮和管理。信息咨询服务工作则是高层次的图书馆工作,它是以信息媒体中的信息资源为工作对象,结合特定用户的信息需求,以信息开发为手段,对信息进行分析、综合、浓缩、转换与创新等一系列工作的总称。信息咨询工作所提供的是信息产品,它是图书馆发展到一定阶段的产物,是图书馆基础工作的延伸和拓展,是满足特殊用户的信息需求和一般用户的特殊需求的主要途径。当前,各图书馆在加强信息资源提供服务的基础上,正在有计划地把工作重点逐步向信息咨询方面转移。这是时代的要求,也是图书馆的发展方向。

系统环境分析和开发工具

本系统采用Asp.net和C# +SQL Server2005开发,Web服务器采用IIS5.1。前台采用Asp.net和C#开发,该开发工具具有很多长处, V ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。SQL Server 是一个关系数据库管理系统它是由Microsoft推出的。SQL Server 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力,提供了以 Web 标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数据。

SQL Server 提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进一步拓展应用空间,带来新的商业应用机遇。例如,XML数据库与Web Service的支持将使您的应用实现Internet数据互联,.net集成极大的扩展了开发空间,异构数据集成、Service Broker

使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。C#、VB.net、XQuery、XMLA、ADO.net 2.0、SMO、AMO等都将成为SQL Server数据平台上开发数据相关应用的有力工具。IIS(Internet Information Server Internet信息服务器)是Microsoft公司开发的一种集Web,FTP和Gopher服务于一身的服务器,它可以利用Windows XP Server的各种功能并且能在Internet上发布信息。IIS是微软随着WindowsXP Server附带的一个软件。IIS提供Internet信息服务器应用程序接口(ISAPI)扩展Web服务器的功能,并可通过ASP.NET实现Web程序的快速开发,ASP.NET支持服务器端的JavaScript, VBScript, Microsoft Java和ActiveX Server Component,还支持用VB编写的CGI程序,甚至用VB开发的C/S架构的程序不经过修改就可以在Web上发布,可以使开发动态主页更加方便,同时也保护了以前的投资。IIS还包括了Microsoft Index Server,可实现对本Web站点内容的全文检索以及Site Server Express用于分析站点访问的情况。IIS的管理功能是基于WindowsXP Server的,可充分利用WindowsXP Server提供的安全服务和目录服务。它的安全模型是以NTFS安全机制为基础的,这样利用资源管理器可以容易地管理使用IIS建立的Web站点的安全性。

参考文献

[1] 刘乃丽.精通ASP.NET2.0+SQLServer 2005项目开发.[M].北京:人民邮电出版社, 2007:100~150.

[2] 易向东,陈蓓,万英编著.C#程序员开发指南[M].北京:北京希望电子出版社,2006:212~232.

[3] (美)内格尔,伊夫杰,格林等.C#高级编程(第四版)[M].李敏波.北京:清华大学出版社,2006:80~100.

[4] (美)Kaili Watson .C#2005数据库编程经典教程[M].人民邮电出版社,2007:90~120

[5] (美)沃尔特,本-甘,萨卡.Microsoft SQL Server 2005技术内幕-T-SQL程序设计[M].北京:电子工业出版社,2007:50~80

[6] 刘烨,季石磊等.C#编程及应用程序开发教程[M].北京:清华大学出版社,2007:132~180.

[7] 殷泰晖,张强,杨豹等C#编程从基础到实践,电子工业出版社,2007:100~120.

[8]李永平.ASP.NET 2.0(C#)基础教程[M] .北京:清华大学出版社,2008:123~143.

[9] 微软公司著.熊盛新,许志庆,李钦译.Visual C# .NET语言参考手册[M].北京:清华大学出版社,20xx年:160~180.

[10] 王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2006:70~100.

[11] 马军.精通ASP.NET2.0网络应用系统开发[M].人民邮电出版社,2006:110~140.

[12]欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦[M].北京:电子工业出版社,2006:233~245.

论文题目

学校图书管理系统的开发

一、 选题背景和意义

随着社会的进步,信息技术的广泛应用,数字化管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一套这样的中小型图书管理软件已经很有必要,并且实现研究服务于实践的原则。

二、 国内外研究现状、发展动态

随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。我国的学校的图书管理也正在逐步与国际接轨。图书管理环节、图书管理方式以及管理的理念都在发生深刻的变化,图书管理工作当然也在变化,因此就要求图书管理工作者学会和掌握计算机应用技术,实现图书管理工作信息化管理。

现在国内外的图书馆呈现出以下几个方面的发展趋势:资源趋势、网络化趋势、小型化趋势、个别化服务趋势和数字化趋势。网络已经在图书业获得了最广泛的应用。尤其是最近两年,互联网的发展风起云涌。现在很多的图书馆已经是图书管理自动化、网络化,实现了网上查询检索,网上采访,联合编目,馆际互借,大多数高校的数字图书馆已经出现并应用。

三、研究的内容及可行性分析

研究内容:

根据图书管理系统的要满足的实际需求情况与基本服务职能,我们确定了整个图书管理系统应该划分以下6个模块:系统设置、读者管理、图书管理、图书借还、系统查询、排行榜。系统功能结构图如下图所示。

各个模块主要实现的功能:

(1)系统设置模块:添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删除书架信息。

(2)读者管理模块:添加删除不同类型的读者及注明可借图书的数量、添加删除读者的档案。

(3)图书管理模块:添加删除不同类型的的图书及注明图书可借的天数库存数量、添加删除图书的档案。

(4)图书借还模块:可查询读者借阅和归还图书的信息及图书的现有库存量。

(5)系统查询模块:可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、到期时间)查询自己借阅图书信息。

(6)排行榜模块:可以让读者知道图书借阅的排行榜及读者借阅的排行榜。

系统可行性分析:

本次毕业设计题目:“学校图书管理系统的开发”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。

本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有足够认识,并深入的了解Visual C#的使用和管理系统的相关知识。

现在大多数的图书管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新系统的使用能否可以很好的解决这些问题要看系统的可行性,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。系统的可行性分析有以下几个方面:

(1)技术可行性:处理速度快、准确通过权限的设置,数据的安全性好、方便查询、借阅管理等。

(2)经济可行性:系统建设不需要很大的投入、可缩减人力投入。

(3)运行上可行性:本系统作为一个小型的图书馆信息管理系统,所耗费的

资源非常的小。

(4)从各种社会因素可行性分析:可降低工作人员工作强度,提高效率,会

得到学校工作人员的一致同意的。

综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。

四、论文拟解决的关键问题及难点

课题开发过程中的关键问题是:

1、在数据库的设计过程中要建立合理的表结构,避免数据冗余 各表通过特 定字段实现不同表的数据连接,避免数据冗余,需要设计简洁高效的表结构。

2、由于开发的是管理系统,这就涉及到安全方面的问题,以避免有些人恶意注册,从而破坏原有信息。因此要进行登录用户身份的验证机制的设计、操作页面的权限保护,解决方法可以从几个方面来考虑:一是通过设定固定帐号的方式;二是限制用户的权限;三是设计数据备份与维护及恢复等功能。

3、模块化思想,分模块设计,运行测试。

本系统的制作存在难点如下:

1、系统数据库的设计:数据库的设计中方面这要着重从SQL应用、数据库设计范式和

查询优化等方面来分析本课题的系统关键技术和实现难点并加以解决。

2、建立严密的数据表操作机制同一表有可能在多个模块中被修改,所以严密的数据表操作机制的建立十分比较困难的,但也是必须的。在编制时更应加强程序逻辑的可靠性和程序调试的全面性。

3、数据库连接、查询、更新和对字符串的检测和转化等操作是经常用到的,

如果对每次表单的操作都要重复使用上述操作将对数据库或者程序的设计带来很大的压力,要设计相应的模块来解决这个问题。

五、研究方法与技术路线

1、研究方法:调查法、案例研究法、行动研究法、文献研究。

2、技术路线:

系统开发环境:Microsoft Visual Studio 2005

系统开发语言:ASP.net+C#

运行平台:Windows XP

数据库:SQL Server 2005

Web服务器: IIS5.1

本系统采用Asp.net技术,Asp.net是一种可视化的、面对象和条用事件驱动方式的结构化高级程序设计,可用于开发windows环境下的种类应用程序。它简单易学、效率高,且功能强大。

SQL Server2005是一个关系数据库管理系统,是一个全面的、集成的、端到

端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业的智能应用。

IIS(Internet Information Server Internet信息服务器)是Microsoft公司开发的一种集Web,FTP和Gopher服务于一身的服务器,它可以利用Windows 2000 Server的各种功能并且能在Internet上发布信息。

六、论文的进度安排

2008-11-01——2008-12-01 理论可行性分析、阅读相关书籍、编写需求分析

2008-12-02——2008-12-12 系统的总体设计,毕业设计的开题报告撰写

2008-12-13——2009-01-20 系统模块的划分、开始对相关键模块的编写

2009-01-21——2009-03-01 具体代码实现,系统各项功能的实现

2009-03-02——2009-03-07 进行测试,改正

2009-03-8——2009-04-08 写毕业论文

2009-04-09——2009-04-10 整理资料,准备答辩

七、主要参考文献

[1] 刘乃丽.精通ASP.NET2.0+SQLServer 2005项目开发.[M].北京:人民邮电出版社, 2007:100~150.

[2] 易向东,陈蓓,万英编著.C#程序员开发指南[M].北京:北京希望电子出版社,2006:212~232.

[3] (美)内格尔,伊夫杰,格林等.C#高级编程(四版)[M].李敏波.北京:清华大学出版社,2006:80~100.第

[4] (美)Kaili Watson .C#2005数据库编程经典教程[M].人民邮电出版社,2007:90~120.

[5] (美)沃尔特,本-甘,萨卡.Microsoft SQL Server 2005技术内幕-T-SQL程序设计[M].北京:电子工业出版社,2007:50~80.

[6] 刘烨,季石磊等.C#编程及应用程序开发教程[M].北京:清华大学出版社,2007:132~180.

[7] 殷泰晖,张强,杨豹等C#编程从基础到实践,电子工业出版社,2007:100~120.

[8]李永平.ASP.NET 2.0(C#)基础教程[M] .北京:清华大学出版社,2008:123~143.

[9] 微软公司著.熊盛新,许志庆,李钦译.Visual C# .NET语言参考手册[M].北京:清华大学

出版社,20xx年:160~180.

[10] 王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2006:70~100.

[11] 马军.精通ASP.NET2.0网络应用系统开发[M].人民邮电出版社,2006:110~140

[12]欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦[M].北京:电子工业出版社,

2006:233~245

八、指导教师意见

签名: 200 年 月 日

九、开题审查小组意见

开题审查小组组长签名: 200 年 月 日

浙江师范大学本科毕业设计(论文)外文翻译

译文:

Visual Studio .NET如何为并发控制生成SQL语句

作者:史蒂夫斯坦的Visual Studio团队 时间:20xx年2月

摘要:这篇文章研究Visual Studio? .NET为不同的并发控制方式所产生的SQL语句,

如何对它们进行修改可以提高执行效率,以及如何生成不带并发控制的SQL语句。

引言

任何可能同时被多个用户访问或修改数据的应用程序,都需要进行并发控制。否则,

一个用户更改记录时可能不经意的覆盖了其他用户的更改。Visual Studio .NET的设计工具可以生成“保持所有值”方式的开放式并发SQL语句或生成“最后的更新生效”方式的SQL语句来更新数据。这篇文章将解释:

* 不同的SQL语句是如何生成的

* 如何修改自动生成的SQL语句可以提高执行效率

阅读此文章时应具备的一些知识

你需要具备以下知识:

* 基本的ADO.NET概念,包括数据集(DataSet)以及数据适配器(DataAdapters)。更多信息请参见ADO.NET 数据访问介绍(Introduction to Data Access with ADO.NET)。

* 数据并发机制以及会操作Visual Studio .NET。更多内容请参见介绍 ADO.NET 中的数据并发(Introduction to Data Concurrency in ADO.NET)。

自动生成的SQL语句在哪里

自动生成的SQL语句在command对象的CommandText属性里。在设计阶段配置

DataAdapter对象时或使用CommandBuilder对象时SQL命令被自动生成。更多信息,请参见 并发与CommandBuilder对象(Concurrency and Command Builder Objects)。

配置DataAdapter对象

* 从工具箱的数据选项卡中拖一个DataAdapter对象

* 从服务器资源管理器拖一个数据表

* 选中已有的DataAdapter对象,然后单击在属性窗口底部的“配置数据适配器”链接 CommandBuilder对象

* CommandBuilder对象在运行时刻被创建,更多信息请参阅 SqlCommandBuilder 或 OleDbCommandBuilder。

并发控制与数据适配器(DataAdapter)

使用“数据适配器配置向导”配置数据适配器时,你可以选择是否使用开放式并发来生 成Update和Delete语句。

一些思考和注意事项

* 你的数据源必须有一个主键才能以开放式并发方式生成SQL语句

* 当使用从“服务器资源管理器”拖放一个数据表的方式来创建DataAdapter对象时,DataAdapter对象自动生成基于开放式并发的Update和Delete语句。如果你不想使用开放式并发,右击DataAdapter对象,从快捷菜单中选择“配置数据适配器”,然后在“高级SQL生成选项”对话框中清除“使用开放式并发”选项的选定。向导则会重新创建不带并发检测的SQL语句。

* 当重新配置现有的DataAdapter时,应注意“高级SQL生成选项”对话框里的选项已经全部恢复默认。例如最初配置DataAdapter时没有选定“使用开放式并发”选项,但是当重新配置DataAdapter时,“使用开放式并发”选项却会被选定,即便你根本没有打开过“高级SQL生成选项”对话框。

* 如果你在“数据适配器配置向导”的“选择查询类型”页面选择“使用现有的存储过程”,则“使用开放式并发”选项将不可用。存储过程仍按其原来的方式执行。如果想使用并发检测的话,必须将其包括到存储过程中、或在你的应用程序中编写相应的代码。

* 当使用开放式并发来创建SQL命令时,不会对二进制数据列验证进行并发处理。这将导致用这种方法对大的二进制记录集执行按位比较算法时的效率低下。

用向导生成SQL语句

为了理解Visual Studio .NET如何使用开放式并发来生成SQL语句,让我们来看看用“数

据适配器配置向导”生成的Update语句。我们将查看同一条语句在选择“使用开放式并发”选项和不选择“使用开放式并发”选项时的不同状态。

你会注意到,选择开放式并发与不选择开放式并发所生成SQL语句的区别只存在于Where子句上。注:以下的例子使用用“数据适配器配置向导”生成的Update语句,并从NorthWind示例数据库的Customers表中选择了若干列。

使用开放式并发的Update语句

这个例子使用了“数据适配器配置向导”的默认配置,即选中了“使用开放式并发”选项。 注: 当使用开放式并发时,生成的command的参数集里还存在一个参数副本。第二个参数集(带@Original_前缀的那个)保存了最初从数据源里读取的值。

检查Where子句发现,每一个生成的语句都要检测数据库当前的值是否等于最初读取的值(例,WHERE City = @Original_City)。通过数据库中的每个字段与最初读取的值相比较,我们很容易确定是否同时有其他用户修改了某个字段。如果Where子句不成立,就没有记录会被修改,与此同时还引发了一个“数据库并发”异常。如果数据源的某个字段为空值(NULL),生成的SQL语句同样验证最初读取的记录是否也为空值。

UPDATE Customers

SET CustomerID = @CustomerID, CompanyName = @CompanyName, ContactName = @ContactName, ContactTitle = @ContactTitle, City = @City

WHERE (CustomerID = @Original_CustomerID) AND (City = @Original_City

OR @Original_City IS NULL AND City IS NULL) AND (CompanyName =

@Original_CompanyName) AND (ContactName = @Original_ContactName OR

@Original_ContactName IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle OR @Original_ContactTitle IS NULL AND

ContactTitle IS NULL);

SELECT CustomerID, CompanyName, ContactName, ContactTitle, City

FROM Customers WHERE (CustomerID = @CustomerID)

不使用开放式并发的Update语句

这个例子更改了“数据适配器配置向导”的高级选项,没有选中“使用开放式并发”选项。 以下的语句表明:只要数据库中一条记录满足CustomerID = @Original_CustomerID ,则所有的字段都会被更新。不管这条记录现在是什么样的值,它都将被设置为通过SQL语句传递到数据源的值。在这里没有任何关于并发的检测,也无法得知是否同时有其它用户在更改这条记录。 这种方式称为“最后的更新生效”方式。无论以前对这条记录进行过什么样的修改,更新操作都会执行。

UPDATE Customers

SET CustomerID = @CustomerID, CompanyName = @CompanyName,

ContactName = @ContactName, ContactTitle = @ContactTitle, City = @City

WHERE (CustomerID = @Original_CustomerID);

SELECT CustomerID, CompanyName, ContactName, ContactTitle, City

FROM Customers WHERE (CustomerID = @CustomerID)

优化生成的SQL语句

Visual Studio .NET生成“保持所有值”方式的SQL语句来实现开放式并发。虽然这可能没 有生成最高效的SQL语句,但是它的却生成了可以对数据源所有列(包括主键)进行并发检测的SQL语句。使用“保持所有值”方式实现开放式并发,当执行效率非常低下时,你可以手工修改生成的SQL语句以使它们不检查数据源的所有列。最常见的方式是使用时间戳或版本号字段。如果你的数据源包含一个每次修改记录时都会更新的时间戳字段,你只需

要验证数据源中的时间戳和你程序中的时间戳二者是否匹配,就可以知道是否同时有其他用户修改了记录。

下面这条SQL语句使用检查时间戳模式。

注:??这个例子假设数据库已经设置了时间戳字段

UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName, ContactName = @ContactName, ContactTitle = @ContactTitle, City = @City

WHERE (CustomerID = @Original_CustomerID) AND

(TimeStamp = @Original_TimeStamp);

SELECT CustomerID, CompanyName, ContactName, ContactTitle, City,

TimeStamp FROM Customers WHERE (CustomerID = @CustomerID)

并发与CommandBuilder对象

当应用程序使用SqlCommandBuilder或者OleDbCommandBuilder时,生成的Update

和Delete语句的CommandText属性被自动的以开放式并发方式创建。如果你不想用开放式并发,则可以通过修改DataAdapter对象的Update和Delete命令的CommandText属性来实现。更多内容,请参见OleDbCommand.CommandText属性 或 SqlCommand.CommandText属性。

结论

当使用开放式并发的“保存所有值”方法时,SQL语句在设计时由Visual Studio .NET的设计工具自动生成或在运行时由CommandBuilde自动生成。它把数据库所有字段(包括主键)当前值与初始值进行比较,这可能不是一种最高效的方式。如果你的数据使用版本号或者时间戳方式控制并发,则可以通过修改生成的SQL语句来获取更高效的执行。

原文:

How Visual Studio .NET Generates SQL Statements for Concurrency Control

Author: Steve SteinVisual Studio Team

Abstract: This paper examines the SQL statements Visual Studio? .NET generates for

different kinds of concurrency control, how to modify them for better performance, and how to generate a statement that does not use concurrency control. (5 printed pages).

Introduction

Any application that might have multiple users simultaneously attempting to access and modify data needs some form of concurrency control. Otherwise, one user's changes could inadvertently overwrite modifications from other users. The design tools in Visual Studio .NET can create SQL statements that use the "check all values" approach to optimistic concurrency or the "last-in wins" approach to updating data. This paper will explain:

* How each of these statement types are generated.

* How to modify the generated SQL statement for better performance.

Prerequisites

You should have an understanding of:

* Fundamental ADO.NET data concepts, including datasets and data adapters. For more information, see Introduction to Data Access with ADO.NET.

* Concurrency control basics and the options available in Visual Studio .NET. For more information, see Introduction to Data Concurrency in ADO.NET.

Where Are the SQL Statements?

SQL statements are located in the CommandText property of command objects. SQL commands are automatically generated at design time when configuring data adapters, and at run time when using command builder objects. For more information, see Concurrency and Command Builder Objets .before us have addressed overlay network programming issues. Even early overlay network Configuring Data Adapters

* Drag a data adapter from the Data tab of the Toolbox

* Drag a table from Server Explorer

* Modifying an existing adapter, by selecting a data adapter and clicking the Configure Data Adapter link at the bottom of the Properties window.

Command Builder objects

* Command builder objects are created programmatically at run time. For more information, see (SqlCommandBuilder or OleDbCommandBuilder)

Concurrency and Data Adapters

When configuring data adapters with the Data Adapter Configuration Wizard, you can decide whether to use optimistic concurrency for the generated Update and Delete statements. Considerations and Caveats

* Your data source must have a primary key in order for the SQL statements to be generated to use optimistic concurrency.

* When creating data adapters by dragging tables from Server Explorer, the data adapter creates Update and Delete statements that are automatically configured for optimistic concurrency. If you do not want to use optimistic concurrency, you can reconfigure the data adapter: Right-click the adapter and select Configure Data Adapter from the shortcut menu, then clear the Use optimistic concurrency option of the Advanced SQL Generation Options Dialog Box. The wizard will recreate the statements without the additional code to check for concurrency violations.

* When reconfiguring an existing data adapter, note that the advanced settings all revert to their default state. For example, if you cleared the Use optimistic concurrency option when the adapter was originally configured, it will automatically be selected if you reconfigure it, even if you do not

access the Advanced SQL Generation Options dialog box.

* If you select the Use existing stored procedures option in the Choose a Query Type section of the Data Adapter Configuration Wizard, the option to use optimistic concurrency is not available. The stored procedures will execute as is, and any desired concurrency checking must be done within the stored procedure, or programmatically built into your application.。When commands are generated to use optimistic concurrency, no verification will be performed on binary columns to determine whether concurrent changes have been made. The resources to perform a bit-by-bit comparison of a large binary record would be extremely inefficient.can be used as a key to SQL Statements Generated by the Wizard

To understand how Visual Studio .NET constructs SQL statements that use optimistic concurrency, let us inspect the Update statement generated by the Data Adapter Configuration Wizard. We will look at the same statement generated both with and without the Use optimistic concurrency option selected in the Advanced SQL Generation Options dialog box of the wizard.

You will notice the differences between statements that either use optimistic concurrency or not are located in the Where clause.

Note???The following examples use the Update command that is generated by running the Data Adapter Configuration Wizard, and selecting several columns from the Customers table in the Northwind sample database.

Update Statement Using Optimistic Concurrency

This example uses the default settings of the Data Adapter Configuration Wizard, which has the Use optimistic concurrency option selected.

Note???When using optimistic concurrency, the commands are generated with a second set of parameters. This second set of parameters (the ones with the @Original_ prefix) store the values that are initially read from the data source.

Examining the Where clause in the following statement reveals that all fields are inspected to make sure the current value for each field in the database is equal to the value that was originally read into the dataset (for example, WHERE City = @Original_City). By comparing each field in the database with the original value, it is easy to determine if a concurrent user has modified a field. If the Where clause is not satisfied, no records are updated and a DBConcurrencyException is raised. If a field in the data source contains a null value, the statement also verifies the original record contained a null value.

UPDATE Customers

SET CustomerID = @CustomerID, CompanyName = @CompanyName, ContactName = @ContactName, ContactTitle = @ContactTitle, City = @City

WHERE (CustomerID = @Original_CustomerID) AND (City = @Original_City

OR @Original_City IS NULL AND City IS NULL) AND (CompanyName =

@Original_CompanyName) AND (ContactName = @Original_ContactName OR

@Original_ContactName IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle OR @Original_ContactTitle IS NULL AND ContactTitle IS NULL); SELECT CustomerID, CompanyName, ContactName, ContactTitle, City

FROM Customers WHERE (CustomerID = @CustomerID)

Update Statement Without Optimistic Concurrency

This example modifies the advanced settings of the Data Adapter Configuration Wizard and clears the Use optimistic concurrency option.

Examining the following statement reveals that all fields will be updated as long as a record exists in the database where CustomerID = @Original_CustomerID. No matter what values exist in this record, they will all be set to the values passed through this statement. There is no verification to check if a concurrent user has modified the record. This is called the "last-in wins" approach, because no matter what modifications have been performed on the record, the update will still be performed.

UPDATE Customers

SET CustomerID = @CustomerID, CompanyName = @CompanyName,

ContactName = @ContactName, ContactTitle = @ContactTitle, City = @City

WHERE (CustomerID = @Original_CustomerID);

SELECT CustomerID, CompanyName, ContactName, ContactTitle, City

FROM Customers WHERE (CustomerID = @CustomerID)

Optimizing the Generated SQL Statement

Visual Studio .NET generates SQL statements that use the "check all values" approach to optimistic concurrency. Although this may not generate the most efficient statement, it does create a statement that can check for concurrency violations on any data source containing a primary key. If the "check all values" approach to optimistic concurrency proves inefficient, you can modify the generated command text so it does not have to check every original value against the values in the data source. The most common way to accomplish this is with a timestamp or version field. If your data contains a timestamp field that is updated every time the data changes, you need only check the timestamp in your application's record against the timestamp in the data source to determine if a concurrent user has changed the record.

Note???This example presumes the timestamp has been generated in the database.

UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName, ContactName = @ContactName, ContactTitle = @ContactTitle, City = @City

WHERE (CustomerID = @Original_CustomerID) AND

(TimeStamp = @Original_TimeStamp);

SELECT CustomerID, CompanyName, ContactName, ContactTitle, City,

TimeStamp FROM Customers WHERE (CustomerID = @CustomerID)

Concurrency and Command-Builder Objects

If your application uses SqlCommandBuilder or OleDbCommandBuilder, the command text of the Update and Delete statements is automatically configured for optimistic concurrency. If you do not want to use optimistic concurrency, you can programmatically modify the CommandText property of the data adapter's Update and Delete commands. For more information, see OleDbCommand.CommandText property or SqlCommand.CommandText property.

Conclusion

The SQL statements that are automatically generated by the design tools in Visual Studio .NET or by command builder objects use the "check all values" method of optimistic concurrency. Although this may not be the most efficient approach for all situations, it generates a concurrency-checking statement on any data source that contains a primary key. If your data uses version numbers or timestamps, you can modify the generated SQL statements for better performance.

Send feedback on this topic Microsoft

? Microsoft Corporation. All rights reserved.

译文2:

统一建模语言 UML分层抽象建模机制

电子科技大学计算机科学与工程学院 成都吴跃 罗吴蔓

摘要:在总结传统软件开发方法经验的基础上,严格遵守软件开发方法原则,从UML建模思想出发,对传统UML三层抽象建模结构进行了分析,并引入“抽象”和“分解”作为 UML 建模的核心思想;提出了UML分层抽象建模机制的构想,将计算机系统开发过程概括为对功能信元、结构信元、关联信元、实现信元和集成信元的提取过程,并以此作为 UML 建模的指导。有效了利用UML完整语义定义,克服了传统面向对象开发方法的缺陷;实现了建模过程从需求到分析的过渡以及功能和实现事实上的分离。

关键词:统一建模语言;抽象;分解;分层建模;信元

1.UML的一些概念

1.1 使用情况

一种使用情况是一个功能的紧密单元,由一个系统或者类提供,前后一致的信息在外力的相互作用(叫做角色)下,一个或多个信息交换的顺序以及系统进行的活动。

1.2类

一个类是有相似的结构,行为和关系的一套对象的描述符。 一个类可以使用一套接口来指定操作的收集并提供环境。类可以是抽象和可执行的。

1.3接口

一个接口是可以用于确定一种服务的操作收集的宣告,由一个类(对象)的实例提供。一个接口能命名一次行动的收集,并且指定他们的签名和协议。一个接口为它的行动没有提供实施(方法)。

1.4包

一个包是一个类那样的组模型要素。一个包可以包含两个下属包和普通的模型要素。一些包可以是子系统或者模型。整个系统描述可以在它的其它任何事情上,认为是单个的高级子系统包。

1.5组成部分

组成部分是执行一个系统重要的,差不多独立和可替换的部分,来完成一个明确的清楚的系统功能。一个组成部分与接口相符并且提供一套物理接口来实现。 一个组成部分可以是一个或更多类。

2.两种模型化想法被提出

全世界,对于软件有一个贪婪的需求。一方面,需要增加更多的一切功能性,灵活性,稳定性的软件,来保证软件复杂性,改进工具和人智力的限制; 另一方面,当系统运转时,

它变得越来越难以理解和表述大的行为模式,被一个系统的组成部分共同取得。建造完美对象系统的模型是整个系统设计的关键任务。由于这些原因,紧急发现是简化整个设计,对模型化的一些指导处理并且提高软件的效率发展。

基于工程惯例的经验,我们提出两种模型化想法:抽象概念和分解。 他们也有两个基本关于人的想法,当人们能认识和管理他们试图解决的那些问题的复杂性。

抽象概念是什么?面临一个问题时,当我们忽视分部和结时,我们经常想要知道它的普通属性。我们叫这种方法抽象概念。 在软件工程领域,抽象概念有两种意思。第一是分析复杂系统时,设计者区分必要和非本质因素,为了得到摆脱非本质事情的本质问题。通过这样做,设计者正好能描述对象系统的结构并且改变无结构系统到系统的结构上。有意义的抽象概念的另一个不是在模块化过程期间,设计者一般对更高的标准化的低层的功能分层标准化。通过这样做,更高的层抽象概念的机制可以形成。 抽象概念可以分解为两个层。 更高的层被称为特定说明,指定抽象概念“做什么”。 低层被称为实现,是解决抽象概念的问题“怎样做”。因为抽象概念的应用,软件设计者能考虑在不同问题里的,在不同发展阶段期间的层抽象概念。

基于这个策略分解分而治之。它是用来解决整体设计复杂性上的对象系统。在软件开发期间,分解作为"模块化和体现信息隐藏"。 从概念技术,分解抽象概念的提炼的接近,例如,一步一步的精炼的想法。分解的反面,分解组成之后是一种软件实现的重要方法。

3.在UML里的抽象概念的3 个分层结构

图1显示了在UML里抽象概念的传统的3 个分层结构。 我们使用抽象概念和分解的方法来分析它。

3.1 概念

在这个层期间,对象系统的全部模型要素是在应用领域中概念。使他们认识到,这些概念由软件与程序独立的提供。

3.2 说明

在这个层期间,全部概念逐渐形成单元,它们相互作用,彼此取得明确的功能,高层的分解和低层的抽象概念,因为它只描述隐藏实现他们时由功能单元提供的接口。

3.3 实施

这个层描述实现功能单位。 这个层的模型或更多为大多数人所熟知。 但是实际上,模式的那些层说明更赞成在那些开发者之间彼此的理解和交流。

4.UML的抽象观念模型化机制

基于抽象概念的3 个分层结构,我们提出UML抽象概念模型化机制,用图2 表示。在这个模型化机制过程中,我们集中于关键消息支配模型化处理和抽象他们的5不同单元:功能单元,结构单元,服务单元,实施单元和积分单元,描述5个在不同阶段的抽象概念层。在以前的阶段产生的单元是在更晚的阶段产生的单元的抽象概念。

4.1 功能单元

人们对应用领域的熟识是从它的功能开始的。理解功能在应用领域中,帮助理解。因此功能单元的作用是用这把从应用领域和模型化设计决定的钥匙来开车,对于它来说是整个模型化过程。功能单元属于概念层抽象概念结构,在UML里和作为使用情况体现。使用案例可以是更大或是一个用户的综合描述提供的小目标。 模型化使用案例是人栩栩如生重现在应用领域的精神印象。

使用案例拥有强大的远的影响设计决定。对找到完美的使用案例,设计者依赖经验,迭代,和探索法。因此当上升使用来自系统的案例时,我们应该再三考虑:根据那些角色的需求,那个功能应该被系统提供,通过那些角色,多少信息应该被读,创造,删除,修改,或者储存,通过系统,需要输入和输出中的多少类型,以及输入来自哪输出又去向哪。

把函数定义为单元是一个先进的需求分析,设计延续其他类单元的高级设计并且意识到他们过后增加彼此的相互作用。

4.2 结构单元

在为他们确定函数单元和模型化之后,我们可以考虑选择过去常常彼此相互作用完成功能单元描述的一个具体的功能结构为单元。结构单元是形成整个软件的单位。对他们进行好的选取是系统的基础。结构单元也属于概念层并且作为类体现以及对象。

类和对象是在面向对象的设计过程中的基本要素。在应用过程中的实体类和在UML里的他们的协会的领域地图。在这服务水平的类作为一个词汇必要的设计概念和为在那之后做更详细的基于类的设计作为一个基础。很多事情和类模型抽象概念一样有用,并非在面向对象里的类阶层实施。在这水平上,他们一定要从那些最后实施那里远距离的,可以帮助应用领域理解。这里给出一些类选择的一些指导:只用文献证明应用领域的静止的实体,节约使用继承或通过忽视方法的行为。

4.3 服务单元

到目前为止我们确定的单元鉴定的信息是在应用过程中的全部固定角色领土。例如,我们命名升降机和电动机为这个升降机控制系统内的类,但是忽视类似像层那样升降机的那些问题和电动机运转的方式。当他们工作时,单元服务得到的目的是发现那些服务在他们之间以单元结构提供。总而言之,建立基础,建造在结构单元之间的动态的合作。

正如在上面所描述的那样,说明层是理解UML 模型的最好入口。知道它提供的服务,是认识到体系单元的唯一的路径。在UML里,服务单元作为体系单元的接口封装。因为在面向对象系统里,每个实体和它需要或提供的服务被制订进一种类和它的接口。每个类提供并且使用通过它的接口的服务,具体的说,活动在接口里确定。我们进一步精炼而分开自己的那些接口类,改变类从概念水平到说明水平。因此工作的关键是分解并且精炼结构单元,指定他们提供并且在隐藏实现细节时需要的服务。

4.4实施单元

到目前为止我们已经指定整个系统的框架,来实施抽象概念层。现在该集中我们的注意力,确定实施单元。换句话说,在服务单元过程中实现每次操作的方法。

在UML内,方法的实现设计相应算法并且使用具体程序语言来实施它。作为结果,零部件软件和软件设计的主要工作被完成。

我们也能拿现有的组成部分实现服务单元。UML不仅基于OO而且此外还支持软件重用。与组成部分的积累一起,利用存在合理的资源能从头到脚避免过程。

4.5 综合单元

综合单元集中于实现整个系统。我们知道现在系统是经常分开软件和部分硬件,在通信网络上方分配。系统集成已经变得越来越重要。

系统集成的任务是制订每种模型化要素类、物体、操作、方法等等,在功能被确定单元,单元结构,单元和单元实施服务对 物理计算机节点。根据系统,网络拓扑结构结合不同计算机和不同的系统操作。因此在他们上运行,要在这个层做的主要工作是研究对象系统硬件的拓扑结构和软件。我们把信息与系统集成有关的这些作为综合单元。在UML里的综合单元作为节点体现和他们的连接,组成部分和接口、对象。

5.结论

我们建造分层的抽象概念模型化机制的动力是提供在UML 模型化过程中的研究线索。更多工作应该被精炼,选择5种工作多种单元和UML 制订的定义,以及结合面向对象的技术并且软件重用技术完全最大化的提高我们的产品质量。

[1] Buhr R J A, Casselman R S. Use case maps for object-oriented systems. New York: Prentice-Hall International Inc,1999

[2] Zhang Fengli, Ge Xiaofeng, Lu Xianliang. Design and implement of comprehensive query system based on data ware house. Journal of University of Electronic Science and Technology of China, 1999

[3] Kruchten Philippe. Modeling component systems with the unified modeling language. Rational Software Corp,1998

[4] Mei DenHua.A object-oriented multicomputer software system reliability

model. Journal of University of Electronic Science and Technology of China, 1999

[5] UML Semantics Guide, version 1.1. 1997, /uml

[6] Wu Yue, Yu Shui, Fu Yan, et al. On Internet database accessing technology. Journal of University of Electronic Science and Technology of China, 2001

原文2:

UML Modeling Mechanism Based on Layered Structure of Abstraction

College of Computer Science and Engineering, UEST of China Chengdu 610054 Wu Yue Luo Wuman

Abstract : This paper introduces UML(Unified Modeling Language) modeling method. Based on the experience of traditional software development method and the analysis of traditional three layered structureofabstraction in UML, two ideas of abstraction and decomposition are brought forward as the kernel modeling ideas of UML to construct the abstraction modeling mechanism of UML that the process of computer system into the process of picking up five cells: the function cell , the structure cell, the service cell, the implementation cell and the integration cell .The purpose is to make use of the whole semantics of UML effectively and to get over imitation of traditional OO method and eventually to achieve the perfectly transition from requirement to analysisand virtual separation of function and implementation.

Key words : unified modeling language; abstraction; decomposition; layered modeling; cell 1 . Some Concepts of UML

1.1 Use case

An use case is a coherent unit of functionality provided by a system or class as manifested by sequences of messages exchanged among the system and one or more outside interactors (called actors) together with actions performed by the system. .

1.2 Class

A class is the descriptor for a set of objects with similar structure, behavior, and relationships.

A class may use a set of interfaces to specify collections of operations it provides to its environment. Class may be abstract and executable.

1.3 Interface

An interface is a declaration of a collection of operations that may be used for defining a service offered by an instance of class (object). An interface serves to name a collection of operations and specify their signatures and protocols. An interface offers no implementation (method) for any of its operations.

1.4 Package

A package is a group of model elements such as classes. A package may contain both subordinate packages and ordinary model elements. Some packages may be subsystems or models. The entire system description can be thought of as a single high-level subsystem package with anything else in it.

1.5 Component

A component is a non-trivial, nearly independent and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture. A component conforms to and provides the physical realization of a set of interfaces. A component may be one or more class. 2 . Two Modeling Ideas Brought Forward

Worldwide , there is an insatiable demand for software. On one hand, ever increasing demands on software for more of everything——functionality, flexibility, reusability, robustness—— s eem to ensure the software complexity keep pushing the limits of both tools and human intellect; on the other hand, it becomes more and more difficult to understand and express the large-grained behavior patterns that will be jointly achieved by the components of a system while the system is running. So constructing perfect models for object system is the key task of the whole system design. For these reasons, it is urgent to find some guidance for modeling to simplify the whole design process and enhance the efficiency of software development.

Based on the experiences of engineering practices, we bring forward two kernel modeling ideas: abstraction and decomposition. They are also two basic thoughts of human when human recognize the world and manage the complexity of the problems that they are trying to resolve. What is abstraction? When faced with a problem, we often want to know its common attributes while ignore the branches and knots. We call this method abstraction. In the field of software engineering, abstraction has two meanings. The first is that when analyzing the complex systems, designers distinguish he essential and nonessential factors and get rid of the nonessential things in order to get the essence of the problem. By doing so, designers can describe the structure of the object systems exactly and transform the structure less systems to the structural systems. Another meaning of abstraction is that during the process of modularization, designers generalize the functions of the lower layer modular to the higher layer modular. By doing so, mechanism of higher layer abstraction can be formed. Abstraction can be decomposed into two layers. The higher layer is called specification, which specifies the abstraction "what to do". The lower layer is called realization, which resolves the problem of abstraction “how to do”. Because of the application of abstraction, software designers are able to consider problems in different layers of abstraction during different phases of development.

Decomposition is based on the strategy of divide and rule. It is used to resolve the design complexity of the object system as a whole. Decomposition is embodied as “modularization

and information concealment” during the software development. From the view of technology, decomposition is the approach of the concretion of abstraction, for example, the idea of refinement step by step. Reverse to decomposition, composition is an important approach of software implementation after decomposition.

3 . Three Layered Structure of Abstraction in UML

Fig . l shows the traditional three layered structure of abstraction in UML. We use the ideas of abstraction and decomposition to analyze it.

3.1 Conception

During this layer, all the model elements picked up from object system are conceptions in application domain. These conceptions are provided independent of the software and programming languages that realize them.

3.2 Specification

During this layer, all the concepts are evolved into the units that interact with each other to achieve an explicit function, which is the decomposition of the upper layer and the abstraction of the lower layer because it only describes the interfaces provided by function units while concealing the realization of them.

3.3 Implementation

This layer describes the realization of the function units. The models of this layer perhaps are more familiar to most of people. But in fact, the models of the specification layer are more in favor of the understanding and communication with each other between the developers. 4 . Abstraction Modeling Mechanism of UML

Based on the three layered structure of abstraction, we bring forward the abstraction modeling mechanism of UML, shown in Fig.2. In this modeling mechanism, we focus on the key messages dominating the modeling process and abstract them to five different cells: the function cell, the structure cell, the service cell, the implementation cell and the integration cell, which represent five kernel stages at different abstraction layers. The cells born in former stages are the abstraction of the cells born in later stages.

4.1 Function Cell

People'sacquaintanceof the application domain begins with its functions in i t. Comprehending the functions aids in application domain understanding . So picking up the function cells will drive the key design decisions from the application domain and modeling, for it is the exordium of the whole modeling process. The function cell belongs to the conception layer of the abstraction structure in UML and is embodied as use cases. An use case may be larger or smaller as long as it provides the integrated description of one user target. Modeling use cases is the lifelike recurrence of people's mental impression in application domain.

Use cases have a strong effect on further design decisions. To find perfect use cases, designers rely on experience, iteration, and heuristics. So when picking up use cases from the system, we should think over: which functions should be provided by the system according to the demands of the actors, how many kinds of information should be read, created, deleted, modified, or stored by the actors, how many types of inputs and outputs are needed by systems, and where do the inputs come and outputs go.

Defining function cells is an advanced requirement analysis that segues seamlessly into high-level design for other kinds of cells are designed and added later to interact with each other

to realize them.

4.2 Structure Cell

After defining the function cells and modeling for them, we may consider selecting structure cells used to interact with each other to accomplish a specific function described by the function cell. Structure cells are the units forming the whole software. A well selection of them is the foundation of the extensibility of the system. Structure cell also belongs to the conception layer and is embodied as classes and objects.

Classes and objects are the basic elements in object oriented design. The entities in the application domain map into classes and their associations in UML. Classes at this level serve as a vocabulary of essential design concepts and act as a basis for doing more detailed class-based design afterwards. Classes are useful as abstract concepts to model many things, not just class hierarchies in object oriented implementation. So at this level, they must be quite distant from the final implementation, thus aid in application domain understanding. Here give some guidelines for the selection of the classes at this level: only documenting the static entities of the application domain, using inheritance sparingly or downplaying behavior by ignoring methods.

4.3 Service Cell

Up to now the information identified by the cells we defined are all static characters in application domain. For example, we name the elevator and motor as the classes in the elevator controlling system, but ignore the problems such as which floor the elevator will go and the way the motor works. The purpose of picking up the service cells is to find the services provided by structure cells and the associations between them when they work. In one word, establish the foundation for constructing the dynamic associations between structure cells. As described above, the specification layer is the best entrance for understanding the UML models. The only way to realize the structure cell is to know the services it provides. In UML, service cells are encapsulated as the interfaces in structure cells. Because in object-oriented systems, each entity and services it needs or provides are mapped into a class and its interface. Each class provides and uses services through its interface, concretely speaking, through the operations defined in interfaces. We refine the classes one level up and apart the interfaces from the class itself and transform the classes from the conception level to the specification level. So the key work at this level is to decompose and refine the structure cells to specify the services they provide and need while concealing the realization details.

4.4 Implementation Cell

Up to now we have specified the framework of the whole system and come to the implementation abstraction layer. Now it is time to centralize our attention to define the implementation cells, in other words, to implement the method of each operation in the service cells.

In UML, the realization of the method is to programming language to implement it. As the result, design corresponding arithmetic and use specific the components of the software are made and the main work of software design is completed.

We can also pick up existing components to realize services cells. UML not only is based on OO but also supports the software reuse. Along with the accumulating of components, making use of the existing resources in reason can avoid the process from top to toe.

4.5 Integration Cell

Integration cell focuses on the realization of the whole system. We know that nowadays

systems are often part software and part hardware and distributed over communication networks. System integration has become more and more important.

The task of system integration is to map each kind of modeling element class, object, operation, method etc, which are defined in function cell, structure cell, service cell and implementation cell to the physical computer nodes. According to the system, network topology structure integrates the different computers and different system operations. So the main work to do at this layer is to research the physical topology structure of system hardware and the software running on them. We call these information related to system integration as integration cells. The integration cells in UML are embodied as nodes and their connections, components and their interfaces, objects.

5 . Conclusion

The motivation we construct the layered abstraction modeling mechanism is to provide a thread for the research in UML modeling. Much more work should be done to refine the work of the selection fivekinds of cells and the definitions mapped to UML, as well as combining the object oriented technology and software reuse technology perfectly to maximatily enhance the quality of our products.

论文题目

学校图书管理系统的开发

第 一 次指导记录

指导内容:

1.确定设计题目;

2.了解过去所学知识及完成毕业设计的能力;

3.明确毕业设计的任务,确定任务书;

4.讲解毕业设计评比细则;

5.布置近期工作如下:

(1)查看资料,熟悉编程环境,写开题报告;

(2)开题报告初稿:11月30日前上交。

学生签名: 指导教师签名: 200 年

第 二 次指导记录

指导内容:

1.指导开题报告初稿中需修改的地方;

2.指导开题答辩时需注意的事项;

3.指导开题报告PPT制作,12月5日前上交给指导老师;

4.给出要求阅读的参考文献。

学生签名: 指导教师签名: 200 年 浙江师范大学本科毕业设计(论文)指导记录

第 三 次指导记录

指导内容:

1.通知开题答辩时间;

2. 指导开题报告及PPT中需修改的地方;

3.讲解答辩事宜;

4. 强调毕业设计的重点、难点及要注意的地方;

5.布置寒假里需要完成的工作。

学生签名: 指导教师签名: 200 年第 四 次指导记录

指导内容:

1.了解毕业设计完成情况;

2.给出毕业设计修改意见;

3.论文初稿3月20日交给指导老师;

4.通知了毕业答辩的具体时间;

5.在毕业设计中,系统的开发的重要性。

学生签名: 指导教师签名: 200 年 第 五 次指导记录

指导内容: 月 日月 日 月 日月 日

1.给出论文初稿修改意见,强调论文要突出的重点;

2.查看了毕业设计中系统开发的情况,指出不足;

3.强调了毕业答辩时程序演示时要注意的地方;

4.对外文翻译指出注意点,要注意语法等。

学生签名: 指导教师签名: 200 年 月 日

检查日期: 年 月 日

学生姓名

金维律

专业

计算机科学与技术(非师范)

学号

05600114

论文题目

学校图书管理系统的开发

目前已完成任务

1、完成开题报告

2、完成外文资料翻译

3、确定系统的相关参考文献

4、确定系统的组成模块设计

5、完成了系统的数据库设计

6、初步确定了系统模块界面风格

是否符合任务书要求进度

符合

尚须完成的任务

20xx年3月10日~20xx年3月21日 完成系统的调试与修改工作 20xx年3月22日~20xx年4月05日 完成毕业论文及相关资料的撰写 20xx年4月06日~20xx年4月10日 修改论文及准备答辩事宜等

能否按期完成任务

能够

存在的问题和解决办法

存在的问题

需求分析不足、维护不及时、查询方式不灵活,数据冗余大,系统稳定性差,数据库连

接需要设计者来操作,主界面做的还不够完美,看上去少了许多修饰,在删除某个数据时会

出现错误,数据库设计还存在漏洞等问题

拟采取的办法

加强需求分析,及时维护,加入几种查询方式以便灵活应用,加强系统的稳定性,对数据库进行进一步的的完善,删除某个数据时会出现错误进行整改,完善界面设计。 指导教师意见

指导教师签名:

浙江师范大学本科毕业设计(论文)作品(实物)验收单

学 院

数理与信息工程学院

专业

计算机科学与技术(非师范)

学生姓名

金维律

学号

05600114

论文题目

学校图书管理系统的开发

一、作品(实物)说明

本系统主要运用Asp.net和C#开发工具和SQL Server 2005后台数据库,对系统的各个模块进行设计,使用了Asp.net的各种技巧,使系统更加的完善,美观。学校图书管理系统根据实际的需求,主要实现六个方面的功能包括:系统设置功能、读者管理功能、图书管理功能、图书借还功能、系统查询功能、排行榜功能

系统的基本功能流程:

首先判断登录用户,根据不同的权限进入相应的功能模块。

其次系统管理员使用帐户登录后,需要查看有关图书的一系列的信息,管理员可以通过系统导航菜单进入读者管理界面、图书管理界面、图书借还界面、系统查询界面、排行榜界面,在读者界面中,管理员添加和修改学生或教师信息、用户可以查看自己信息,在图书管理界面管理员可以添加和修改图书信息、用户可查看图书,在图书借还界面完成读者借书还书的操作,系统查询界面管理员可以查看借出去的图书信息及库存的信息、用户可以查找自己的所需的图书,排行榜界面主要是可以让用户知道哪些图书受到读者的喜爱。读者(老师和学生)使用读者帐号登陆系统后,可以查询自己所需要的图书的信息、也可以查询自己个人的基本信息及图书的借还信息,还能查看排行榜的信息。读者的借书和还书过程是通过管理员完成的。

二、支撑材料(测试报告及作品照片等) 学校图书管理系统的登陆界面

学校图书管理系统添加删除图书信息界面

三、指导教师评语

指导教师签名: 验收人签名:

学 院

数理与信息工程学院

专业

计算机科学与技术(非师范)

学生姓名

金维律

学号

05600114

论文题目

学校图书管理系统的开发

毕业设计(论文)完成情况

完成

完成

未完成

字数

13395字

文献综述(5000字以上)

200 年月 日

字数

5359字

开题报告(3000字以上)

字数

3243字

外文翻译(3000字以上)

字数

9500字

中、英文摘要

参考文献(10篇以上)

篇数

12 篇

指导教师意见:

指导教师签名: 200 年 月 日 本科毕业设计(论文)答辩资格审查表

答辩记录人

陈伟

陈述、提问及回答情况记录:

陈述:

学校图书管理管理系统,主要实现六个方面的功能。

(1)系统设置功能。(2)读者管理功能。(3)图书管理功能。(4)图书借还功能。(5)系统查询

功能。(6)排行榜功能。

·问题一:登陆系统时除了需要输入帐号和密码还要输入验证码才能进入系统,进入系统的验证码是怎么实现的?

答:设置一个随机函数在数字0~9和英文字母A~Z中随机抽取四个,在用户打开登陆界面的时候,系统通过随机生成器随机生成4个数字或字母或数字加字母存放在缓存内,并出现在界面上顺序是随机的,当用户登陆时输入的验证码要与缓存中的进行对比符合就进入,不符合就不能登陆。

·问题二:你这个系统对图书归还日期是怎么样计算的?

答:它是需要根据系统日期和数据表中保存的各类图书的最多借阅天数来计算的,即图书归还日期=“系统日期”+“最多借阅天数”首先获取系统时间,然后从数据表中查询出该类图书最多借阅天数,最后计算归还日期。

·问题三:开发的这个图书管理系统具体实现哪个功能?

答:图书管理系统实现了读者对所需要图书信息的查询、查看自己的个人信息和所借图书信息及何时归还图书的时间提醒方便了读者的图书借阅与归还。管理员能对读者的权限进行设置,使用户只能进行在权限限制内的操作、能添加删除修改读者和图书相关的所有信息,还能为读者提供相关图书的排行榜让读者能够知道哪些图书比较受欢迎,好让读者有选择的去借书。

浙江师范大学本科毕业设计(论文)答辩记录

学 院

金维律

专业

计算机科学与技术(非师范)

学生姓名

数理与信息工程学院

学号

05600114

指导教师

许德武

职称

讲师

合作导师

职称

论文题目

学校图书管理系统的开发

图书管理系统是智能办公系统(IOA)的重要组成部分,因此,图书管理系统也以方便、快捷的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工作人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。采用SQL Server2005数据库作为后台数据库、Visual C#编程语言作为前台开发工具,通过对数据库技术进行了较深入的学习和应用,主要完成书目检索、读者管理、借阅管理、图书管理、用户维护、系统维护等系统功能。系统运行结果证明,本文所设计的图书管理系统可以满足学生和教师借阅者、图书管理员两方面的需要,达到了设计要求。

导师签名:

选题难度

高∕中∕低

是否结合立项课题

是∕否

是否有成果(实物作品或公开发表的论文、论著及获奖作品)

有∕无

指标

分值

文献检索、开题报告、综述能力及外文翻译

25分

设计(实验)方案、研究方案(方法)的科学性、合理性及创新能力

20分

基本概念、基本理论的应用能力及文字表述

30分

分析、解决问题能力及实际动手能力

15分

对论文工作的态度及表现

10分

总 分

百分制

指导教

师评分

浙江师范大学本科毕业设计(论文)评审表 指标

分值

选题

10分

指导教师资格、执行计划进度等情况评语客观、公正 10分

文献检索、

综述能力

与字数

10分

外文翻译

质量与字

10分

学术水平

与实际动

手能力

25分

综合应用基本

理论与基本技

能的能力

25分

文字表

述与图

表质量

5分

规范

要求

5分

总 分

百分制

同行专

家评分

专家(签名) 指标分值

选题

10分

基本理论

与学术水

30分

文字表述、论文结构层次 及基本技能的应用与创新能力25分

分析、解决问

题能力与实际

动手能力

25分

规范要求

与图表质量

5分

答辩能力

及表现

5分

总 分

百分制

答辩小 200 年月 日

组评分

评语:

答辩小组组长(签名) 200 年 月 日 学

成绩

答辩委员会主任(签章): 200 年 月 日 备注:1.此表1式2份,1份归入学生档案,1份归入学生论文材料。

2.毕业设计(论文)成绩分优秀、良好、中等、及格、不及格五个等级。 ??

??

??

??

学校图书管理系统的开发

27

本科毕业设计(论文)任务书

6

本科毕业设计(论文)文献综述

本科毕业设计(论文)开题报告

本科毕业设计(论文)外文翻译

本科科设计(论文)外文翻译

本科毕业设计(论文)外文翻译2

本科毕业设计(论文)外文翻译2

本科毕业设计(论文)指导记录

本科毕业设计(论文)作品(实物)验收单

本科毕业设计(论文)评审表(学生姓名:金维律 学号:05600114

更多相关推荐:
图书管理系统需求分析报告

图书管理系统需求规格说明书盛旭张驰1引言随着计算机技术的不断应用和提高计算机已经深入到社会生活的各个角落计算机软件也在各方面得到广泛的应用但是很多图书馆仍采用手工管理图书的方法不仅效率低易出错手续繁琐而且耗费大...

图书管理系统需求分析报告

图书管理系统需求分析1引言11编写目的编写本报告的目的是明确本系统的详细需求提供给使用单位确认系统的功能和性能并在此基础上进行修改和完善同时作为设计人员进行软件设计的依据和使用单位的验收标准12项目背景实现一个...

图书管理系统需求分析报告(经典范例)

实验报告课程名称软件工程导论课题名称图书管理系统需求分析报告专业计算机科学与技术班级计算机0903学号**姓名指导教师20##年4月24日图书管理系统需求分析1、引言1.1编写目的编写本报告的目的是明确本系统的…

学校图书管理系统分析报告

图书管理系统分析报告图书馆管理系统1介绍11编写目的本需求的编写是为了研究利用大型数据库做基础的图书管理系统软件的开发途径和应用方法同时它也是进行项目策划概要设计和详细设计的基础是维护人员进行内部维护信息更新验...

图书管理系统需求分析报告

图书管理系统需求分析报告目录图书管理系统需求分析报告21引言211编写目的212项目背景213相关定义22需求概述321目标322用户类和特征323运行环境33需求分析331数据需求332事物需求433系统的业...

图书管理系统可行性分析报告

图书管理系统可行性研究报告组员:图书管理系统可行性研究报告1引言...11.1编写目的...11.2项目背景...11.3定义...21.4参考资料...22可行性研究的前提...22.1要求...22.2目标…

图书管理系统需求分析报告

设计名称课程名称姓名班级授课教师信息工程学院课程设计图书管理系统需求分析报告软件需求2薄文正12软件工程1班邱老师目录第一章引言211编写目的212项目背景213产品范围214术语说明215参考文献3第二章项目...

图书管理系统需求分析报告

图书管理系统需求分析1引言11编写目的编写本报告的目的是明确本系统的详细需求提供给使用单位确认系统的功能和性能并在此基础上进行修改和完善同时作为设计人员进行软件设计的依据和使用单位的验收标准12项目背景软件名称...

图书管理系统分析报告

C语言程序设计课程设计报告图书管理系统设计与实现姓名xxxxx班级xxxxx学号xxxxxx完成时间20xxxxxxxxxx计算机与信息科学学院20xxxxxx目录1需求分析211背景分析212功能分析213运...

图书管理系统需求分析报告

图书馆管理系统需求分析目录1引言31112131415162编写目的3背景及范围3产品的前景3产品的功能4用户类和特征4运行环境4功能需求5212223需求规定5功能分类6具体需求63非功能需求12313233...

图书馆管理系统需求分析报告

图书馆管理系统需求分析报告一引言为了使图书馆管理员能方便的管理图书馆日常信息以及方便学生能方便的实现对个人借阅信息的查询特研发此系统现有的大多数图书馆管理系统大都是安装在图书馆的PC机上不方便管理员进行远程查询...

系统工程-图书管理系统分析报告

系统工程专业班级学院小组成员20xx年12月8日目录摘要3一图书管理系统开发相关技术的介绍411WEB技术浏览器服务器结构简述412SQLServer20xx简述5二系统分析621总体功能需求和关键信息需求62...

图书管理系统分析报告(32篇)