版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 编号: 某某大学毕业论文(设计)题目 自助银行模拟系统的设计与实现 院 (系) 信息工程学院 专 业 信息工程 学生姓名 某某某 成 绩 指导教师 某某 (职称) 副教授 2011年3月40摘要自助银行是 automatic teller machine 的缩写,意为自动柜员机。它是一种高度精密的机电一体化设备,利用磁卡或智能ic卡储存用户信息并通过加密键盘(epp)输入密码然后通过银行内部网络验证并进行各种交易的金融自助设备。自助银行的功能主要包括:现金取款、现金存款、现金存取款、余额查询、本行或异行转账、修改密码等基本功能;有些多功能自助银行还提供诸如存折打印、对账单打印、支票存款、信封
2、存款、缴费、充值等一系列便捷服务。由此看来,自助银行的管理是十分重要的。而人们在使用自助银行前很重要的一个环节,就是学习如何正确地使用自助银行。如何利用现代计算机技术进行自助银行的全真模拟,成了很棘手的问题。经过需求分析,在数据库方面,本项目使用sql sever 2000数据库管理系统;在应用程序开发方面,使用微软公司的vs.net的c#开发工具,利用其提供的各种面向对象的开发工具,其中最主要的是ado.net;在网络查询方面,使用c#技术,开发语言也是c#.net。本论文将重点论述如何使用这些工具,对自助银行进行更科学更有效地管理。关键词:自助银行模拟系统; c#.net;sql; ado
3、.net; c# abstractthe application of electronic label and sql database in an automatic storage management systems development mainly includes three aspects of designing and realizing, that is the backstage database, the code of the database correspondence, and the report inquiring based on the networ
4、k. the database must have the uniformity, the integrity and the secure characteristics; the code the database correspondence could realize the appending, update and omitting functions of the database; the network report form inquiry should achieve report form inquiry functions.after carefully analyz
5、ing enterprise demand, sql the sever 2000 database management system is employed in this project; in the application procedure development aspect, microsoft corporations vs.net c# development kit is brought in, whose object-oriented development kits is utilized, especially the ado.net; in the networ
6、k inquiry aspects, the c# technology is taken into use, whose development language is c# net. this project has established the database, completed the database correspondence codes, realized report form inquiry based on the network.key words:stock management system;rfid;c#.net;sql;ado.net; c#目录摘要iab
7、stractii目录iii第一章 概述11.1课题名称及其来源11.2 信息系统与管理信息系统11.3 自助银行模拟系统的现状与发展趋势21.4 自助银行模拟系统的意义3第二章 系统分析42.1 系统的功能42.2 用户需求分析42.2.1应用程序结构确定42.2.2 确定系统开发环境5第三章 开发工具简介63.1 microsoft visual studio .net 2005 的c# 语言63.1.1 c#.net简介83.1.2 ado.net简介93.2 c# 简介113.3 sql server 200012第四章 系统的功能设计134.1 功能概述134.2 后台数据库设计144
8、.2.1 存储过程介绍144.2.2 数据库的表的设计174.2.3 设计局部er模式184.2.4数据字典20第五章 应用程序界面设计245.1 用户登陆245.2 系统主操作界面255.3 账户信息添加模块265.4 帐户信息查询模块275.5 系统介绍信息添加模块305.6 查询余额管理模块315.7 账户明细管理模块325.8 转账取现管理模块33第六章 系统测试346.1 软件测试概念346.2 软件系统测试356.3 系统整体测试356.4 不足与改进35结论和建议37致谢38参考文献39第一章 概述1.1课题名称及其来源本课题根据银行商业运营中的实际需要而产生,随着社会的发展,互
9、联网已经成为人们日常生活、学习办公中不可缺少的一部分,并在各个领域发挥着越来越重要的作用。特别是在商业运营管理方面发展尤为迅速。本系统的开发主要是根据银行实际运营管理中需要而制作,系统整体包括:基础资料管理、银行业务管理、财务报表管理、系统维护管理四大功能模块。对其进行一条龙式的集中管理。“自助银行模拟系统”的出现打破了银行传统的经营管理模式,它凭借其银行信息更新速度快、信息存储量大、应用简便、安全性高等特点,为银行的人员管理等信息的管理带来了极大的方便,大大减轻了银行管理人员的工作量,使管理者足不出户便可对银行的货柜存储信息、进出场信息、财务信息等了如执掌,针对具体情况做出正确的决策。因此“
10、自助银行模拟系统”已成为当今银行管理者不可缺少的管理工具之一,同时对于一个银行的正常运做也发挥着极为重要的作用,并且随着国家经济的不断发展,国家和银行进出口贸易量的不断增加,“银行信息管理系统”必将在未来国家进出口贸易发展中发挥越来越重要的作用。1.2 信息系统与管理信息系统(一)信息系统信息系统是一个人造系统,它由人、硬件、软件和数据资源组成,目的是及时、正确地收集、加工、存储、传递和提供信息,实现组织中各项活动的管理、调节和控制。信息系统包括信息处理系统和信息传输系统两个方面。信息处理系统对数据进行处理,使它获得新的结构与形态或者产生新的数据。信息传输系统不改变信息本身的内容,作用是把信息
11、从一处传到另一处。从第一台电子计算机创始,50多年来,信息系统经历了由单片机到网络,由低级到高级,由电子数据处理到管理信息系统、再到决策支持系统,由数据处理到智能处理的过程。edps是面向业务的信息系统,mis是面向管理的信息系统,dss则是面向决策的信息系统。edps、 mis、dss各自代表了信息系统发展过程中的某一阶段,至今它们仍各自不断地发展着,而且是相互交叉的关系。(二)管理信息系统管理信息系统是一个具有高度复杂性、多元性和综合性的人机系统,它全面使用计算机技术、网络通讯技术、数据库技术以及管理科学、运筹学、统计学、模型论和各种最优化技术、为经营管理和决策服务。从广义上说,管理信息系
12、统是一个对组织进行全面管理的综合系统。随着计算机技术的发展,信息技术在人们生活中变得越来越重要,信息化成为人们生活的主要内容。管理信息系统作为信息化的一部分,在各行各业中,发挥着其不可替代的作用。管理信息系统综合的意义在于产生更高层次的管理信息,为管理决策服务。管理信息系统综合了管理科学、信息科学、系统科学、行为科学、计算机科学和通信技术。在一个国家里管理信息系统的建立,运行和发展水平,标志着这个国家的管理现代化水平和信息化水平。管理工作的成败,取决于能否作出有效的决策,而决策的正确与否则在很大程度上取决于信息的质量。随着人类进入信息时代,信息管理的水平越来越成为衡量国家综合实力的重要标志。管
13、理信息系统是现代管理方法与手段相结合的系统。尤其是在银行管理信息系统中,计算机系统与现代管理方法的结合才能使系统在管理中发挥作用。管理信息系统的目的是要使各级管理人员在计算机系统支持下,从各种繁琐的日常事务中解脱出来,以便更好地投入到决策工作中去。管理信息系统不能只是对原有手工系统的简单的模仿,它还必须能够在仿真原管理信息系统的基础上,改进管理系统,使银行管理在先进的技术手段和准确及时的信息支持下,达到一个新层次。1.3 自助银行模拟系统的现状与发展趋势自助银行模拟系统由自助银行账户管理系统、出入账管理系统等多个子系统组成。自助银行模拟系统在整个银行系统中占有十分重要的地位。自助银行账户管理是
14、银行管理的重要方面,因为它和银行的日常运营息息相关。出入账管理是一项计算琐碎复杂,具有重复性,又牵涉到每个人的利益,必须及时准确地完成,一般不容发生差错。计算机进行基础管理工作,不仅能够保证数据核算正确无误,快速输出,而且还可以利用工资数据库对相关各种信息进行统计,服务于财务部门其他方面的核算和帐务处理。现行的自助银行管理软件大多是基于单机版的,或者即使是网络版,其用户也是限制在一个。但牵涉到大型银行的管理时,这往往是不够的,一方面大型银行内部的各个部门自己要进行工资管理,这样用户数就会很多,另一方面,其他的管理系统如财务系统等需要工资管理系统的一些数据,若网络化程度不够,则无法做到真正的自动
15、化信息集成。信息管理网络化会在很大程度上提高办事效率,尤其工资管理方面的网络化,都会给公司及员工带来益处。1.4 自助银行模拟系统的意义现在社会各行各业崇尚的是高效管理,银行也不例外。为赢得更多从业人员的青睐,本系统大大提高现代银行管理效率,同时大大减轻对银行管理人员的工作量,有利的保障银行的正常经营,促进银行的发展。第二章 系统分析本系统采用了结构化生命周期法,结构化生命周期法是最常用的管理信息系统开发方法,分为四个步骤,即系统调研分析、数据库设计实现、界面设计实现和系统功能设计实现。其中系统调研分析阶段是最基础、也是最容易被开发人员忽视的环节。2.1 系统的功能系统开发的总体任务是实现自助
16、银行的自动化管理,从而达到提高降低管理成本、提高作业效率、提高管理现代化水平,减少成本、促进相关产业的发展。首先要考虑项目的软件组成分为两大类:前台的用户操作界面及整个程序的后台数据库部分。前台的用户操作界面要实现用户对仓库的各种操作,要能够实现基础资料管理、银行业务管理、财务报表管理、系统维护管理等功能。后台数据库方面要实现对项目中用到的所有信息的管理、储存。2.2 用户需求分析用户需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和系统的功能模块。用户需求调研结束之后,应该立即进行用户需求
17、分析。根据对系统要实现的功能的分析用户操作界面设计了如下模块:自助银行账户管理模块、出入账管理模块、系统维护管理模块。2.2.1应用程序结构确定从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单用户应用程序结构、多层服务器应用程序结构、浏览器服务器应用程序结构、交易记录机服务器应用程序结构等5种类型。本系统的交易记录端程序部分就采用了当前最流行的交易记录机服务器应用程序结构(即c/s结构),此时,交易记录机提出请求,服务器对交易记录机的请求作出回应。通过对服务功能的分布实现了分工服务。数据存储层放在服务
18、器上,业务处理层和界面表示层放在交易记录机上,因此又被称为“灵敏的交易记录机”结构。许多操作可以在本地的交易记录机上执行,只是当需要数据时,才向服务器发出请求。并使应用程序的处理更接近用户,使整个系统具有较好的性能,可以并行地处理应用程序的请求、减少了数据传输量、降低了服务器的负荷。由于条件所限,将此系统所有程序都置于一台计算机上,以便调试运行。2.2.2 确定系统开发环境1. 数据库的选择:microsoft sql server与access,orcale,sybase都是当前比较流行的数据库管理系统(bdms)。随着sql server的不断完善与发展,以及与网络操作系统的完美结合,为系
19、统扩展为多机操作提供可能,sql server 2000是一个可缩放、高性能的数据库管理系统,有完善的数据库维护计划。而且在这个项目中,由于数据量的考虑,本论文决定使用sql server 2000作为后台的数据库。2. 开发工具的选择:由于microsoft visual studio .net 2005的c#语言是微软公司目前主推的编程语言,因此本项目决定选用c#语言来进行代码的编写,这样既可以锻炼我的学习能力又可以是我了解目前先进的编程语言。由于大多数公司内部使用的计算机平台都是基于windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环
20、境:(1) 网络操作系统:windows xp;(2) 数据库服务器:sql server 2000;(3) 服务器平台:windows xp; (4) 交易记录机平台:windows xp;(5) 前台开发工具:microsoft visual studio .net 2005的c#语言;(6) 数据访问对象:ado.net(7) 网络开发语言:c#第三章 开发工具简介本系统中的前台程序使用的是microsoft visual studio .net 2005的c# 语言;网络部分使用的是c#技术;后台数据库系统使用的是sql server 2000。3.1 microsoft visual
21、 studio .net 2005 的c# 语言自比尔盖茨宣布微软公司将成为一家以.net平台为重点发展的公司后,微软己经将.net发展成了新一代的平台标准。当前,microsoft .net平台己经成为业界公认的开发平台。本系统的网络查询部分基于microsoft .net平台中的c#采用c#语言开发,交易记录端的应用程序也是采用了c#语言进行开发,以保持整个项目的代码的开发语言的一致性1。.net开发平台的主要组成部分:首先是整个开发框架的基础,即clr(common language runtime)以及它所提供的一组基础类库;在开发技术方面,.net提供了全新的数据库访问技术ado.n
22、et,以及网络应用开发技术asp net和windows编程技术win forms;在开发语言方面,.net提供了visual basic, visual c+,c#和javascript等多种语言支持,并具有如下新特性:(1)通用语言运行库除了通用语言运行库的字面含义外,在开发阶段和运行过程中它还扮演着另一个角色。在组件运行时,运行库负责管理内存分配、启动和中止线程和进程、强化安全系数,同时还调整任何该组件涉及到的其他组件的附件配置。在开发阶段,运行库的角色稍微有点变化:因为很多方面可以自动实现(例如内存管理等)。运行库可以使开发过程变得非常简单,特别是同今天的com编程相比更是如此。特别典
23、型的是,像reflection(反射)这样的特性可以极大地缩小开发人员将商业逻辑转化成一个可重复使用的组件而不得不编写的代码数量。运行库对于编程语言来说并不是新鲜的东西。实际上每一种编程语言都已包含一个运行库。visual basic开发系统有最明显的运行库(正规名字为vbrun), visual c+也有一个msvcrt,此外,像visual foxpro,jscript,smalltalk,perl,python和java等等都如此。.net框架中的通用语言运行库的核心就是提供了一个跨所有编程语言的统一环境。(2)统一编程类.net框架类为开发人员提供了一套可以使用的统一的面向对象、异步、
24、层次结构的可扩展类库。现在,c+的使用者使用microsoft foundation classes,java程序员使用windows foundation classes,visual basic的用户使用visual basic apis a微软用.net框架统一了这些不同的框架。结果是,开发人员不用去学多个框架来完成自己的工作。而且,通过创建一套跨编程语言的通用api, .net框架可以实现跨语言继承、纠错处理以及程序调试。实际上,从jscript到c+的所有编程语言,对于.net框架都是相互等同的,开发人员可以自由地选择他们想使用的任何语言。(3)asp. netasp. net是使用
25、.net框架提供的类库构建而成的,它提供了一个web应用程序模型,该模型由一组控件和一个基本结构组成。有了它,web应用程序的构建变得非常容易。开发人员可以直接使用asp. net控件集,该控件集封装了公共的、用于超文本标识语言(html)用户界面的各种小组件(诸如文本框、下拉选单等等)。实际上,这些控件运行在web服务器上,它们将用户界面转换成html格式后再发送给浏览器。在服务器上,控件负责将面向对象的编程模型呈现给web开发人员,这种编程模型能提供面向对象的编程技术拥有的丰富功能。asp. net还提供一些基本结构服务(诸如会话状态管理和进程循环),这些服务进一步减少了开发人员要编写的代
26、码量,并使应用程序的可靠性得到了大幅度提高。asp. net还允许开发人员将软件作为一项服务进行传送。通过使用asp. net web服务功能,asp. net开发人员只需进行简单的业务逻辑编程,而由asp. net基本结构负责通过soap传送服务。. net开发平台结构如图3.1所示,. net框架的类库创建于clr的上层,其范围覆盖了大量不同应用程序和组件开发方案。通过提供共同的基础和可以让所有组件及应用程序共享的api (application programming interface,应用编程接口),类库真正实现了基于组件的编程。基础类库(base class library, bl
27、c)包括许多常用的命名空间,如system, system.collections等。ado. net为数据访问功能层,作为system. data命名空间和其子命名空间的一部分嵌入到.net框架中。ado. net提供了对断开或离线缓冲的关系数据进行操作的能力。特别是提供了对microsoft sql server的高性能连接。在ado. net之上为应用开发技术,. net框架支持图形化的win32交易记录端和服务器端的应用程序开发,还支持system. web命名空间和其子命名空间中实现的asp. net和web forms的开发。图3.1 net开发平台结构如图microsoft.ne
28、t计划将彻底改变我们对因特网的认识,从而在这样一个网络时代彻底改变我们的生活。软件是一种服务技术,是我们的仆人。时间与地点将不再是我们面前的障碍,建立在clr与类库基础上的.net框架是.net平台的核心组件之一。这为软件的可移植性与可扩展能力奠定了坚实的基础,并为c#语言的应用创造了良好的环境2。c#是.net平台的通用开发工具,它能够建造所有的.net应用。其固有的特性保证了它是一种高效安全灵活的现代程序设计语言。从最普通的应用到大规模的商业开发c#与.net 平台的结合将为你提供完整的解决方案3。3.1.1 c#.net简介visual c# .net是visual studio系列中的
29、最新成员。这种新语言基于c/c+,但它深化了更容易地使用面向组件编程的发展方向。c/c+程序员应该非常熟悉它的语法。c#在带来对应用程序的快速开发能力的同时并没有牺牲c与c+程序员所关心的各种特性。它忠实地继承了c和c+的优点如果你对c或c+有所了解,你会发现它是那样的熟悉即使你是一位新手c#也不会给你带来任何其它的麻烦,快速应用程序开发rad(rapid application development)的思想与简洁的语法将会使你迅速成为一名熟练的开发人员。正如前文所述c#是专门为.net应用而开发出的语言这从根本上保证了c#与.net框架的完美结合。在.net运行库的支持下.net 框架的各
30、种优点在c#中表现得淋漓尽致。看看c#的一些突出的特点即#sharp的真正含义:(1) 简洁的语法(2) 精心地面向对象设计(3) 与web的紧密结合(4) 完整的安全性与错误处理(5) 版本处理技术(6) 灵活性与兼容性3.1.2 ado.net简介为了实现对数据的访问,可以利用.net框架的activex数据对象(ado.net)来实现。ado .net由microsoft activex data objects (ado)改进而来,它提供平台互用和可收缩的数据访问功能。由于xml(extensible markup language,可扩展标示语言)是用于进行数据传送的格式,任何可以读
31、取xml格式的应用程序都可以对数据进行处理。实际上,接收组件根本不需要ado.net组件。它可以是基于microsoft visual studio的解决方案或在任何平台上运行的任何应用程序4。ado.net是一组提供数据访问服务的类,它提供了对数据库数据、xml中的数据和应用程序数据的访问;而且所有的访问都是按照一个相容的,标准化的设计模型来执行。ado是microsoft现有的、广泛应用的数据访问接口。但是,它却有一些自身难以改变的不适应于web环境的缺陷:(1) web环境要求一定程度的互操作性,因为操作所涉及的各个服务可能运行在不同的软件和硬件平台上。然而,ado对象天生地定位在win
32、dows平台上。ado基于com的本性使得一记录集很难在一个分布式、异种平台构成的环境中使用。(2) ado对象模型中的每一个地方都体现了以数据库为中心的思想。ado把数据看成是一组来自数据源的记录,而不是把数据看成一些独立的信息。在ado中,如果脱离了数据提供者用来保存和描述数据的结构,数据将不能独立存在。(3) ado.net从web的角度对ado进行检讨和改进。两个功能使得这方面的增强成为可能:脱机记录集,以及与生俱来的对xml的支持。这主要是通过其中的dataset(数据集)对象来实现以上两个功能。ado.net结构的一个核心元素是.net数据提供程序,其目的是为了实现数据操作和对数据
33、的快速、只进、只读访问,为此包含了几个对象:connection对象提供与各种不同类型数据源的连接;command对象能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令,其包含的可选parameters集合中可以定义数据库命令或存储过程的参数;datareader从数据源中提供高性能的数据流,以便对数据进行快速、只进、只读访问;最后,dataadapter提供连接dataset:对象和数据源的桥梁。dataadapter使用selectcommand对象在数据源中执行sql命令,以便将数据加载到dataset中,并可以使用insertcommand,updateco
34、mmand或deletecommand对象将dataset中数据的更改返回到数据源中。可以为任何数据源编写.net数据提供程序,在.net框架中附带了两个.net数据提供程序:sql server .net数据提供程序和ole db .net数据提供程序。ado.net有效地从数据操作中将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ado. net包含用于连接到数据库、执行命令和检索结果的.net数据提供程序,它是一组包括connection, command, datareader和dataadapter对象在内的组件:同时既可以直接处理检索到的结果,也可以将其放入ado.ne
35、t中的另一核心组件:dataset中。dataset是ado.net的断开式结构的核心组件。相对于ado,dataset是在ado.net中加入的全新对象,使用该对象的目的是为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,dataset包含一个或多个的集合,这些datatable对象中可以包含主键、外键、约束等信息,datatable对象之间还可以包含关系信息等。所以,可以将dataset组件看做是一个脱机的、保存在内存中的、由多个数据源提供其数据的微型关系数据库5。 ado.net中各个组件对象之间的关系如图3.2所示:图3.2 ado.net中各个组件对象之间的关系图
36、3.2 c# 简介基于web的应用系统,在internet/intranet技术推广以来,得到了迅速发展。无论是银行、政府的内部计算机应用系统,还是在互联网上的应用服务系统,基于web的计算机应用系统都发挥着越来越多的作用。逐渐成为计算机应用系统的主流。c#是微软公司的.net框架技术的一部分,旨在建立web应用程序和xml web服务。c#使用编译的、事件驱动编程模型从而提高运行速度和分离应用程序逻辑和用户界面。使用c#可以很容易的开发基于三层架构的b/s应用程序6。c#又叫asp+,但并不是asp的简单升级,而是microsoft推出的新一代active server pages脚本语言。
37、asp net是microsoft发展的新型体系结构.net框架中的核心要素。c#完全基于模块和组件,具有更好的可扩展性和可定制性,c#建立在clr ( common language runtime,通用语言运行库)基础之上,它主要用于在服务器上开发功能强大的web应用。c#具有如下的优点:(1) 速度奇快,所有的c#代码(包括服务器脚本)都经过了编译后运行,所以执行效率极高。(2) 可用xcopy轻松完成部署及应用升级。c#支持应用程序的实时更新。管理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用程序。(3) 代码与内容分离。c#程序通过code-behind、用户控件、
38、自定义控件及组件这四种方法将程序结构与执行代码分离,使程序的逻辑结构一目了然,便于团队开发。(4) 广泛的移动设备支持。c#的移动控件使开发人员可以面向广泛的移动设备,包括支持web的移动电话、寻呼机和个人数字助理(pda)。(5) 轻松构建和使用web服务。由于c#和.net远程处理建立在.net framework之上,因此它们可以使创建xml web services变得更为容易7。3.3 sql server 2000sql server 2000是建立在 sql server 7.0 在可伸缩性、可用性、可管理性和数据仓库成功的基础上,并且引入了针对电子商务的重要新功能8。第四章 系
39、统的功能设计4.1 功能概述本系统要实现用户对自助银行的所有操作:账户管理、出入账管理、系统维护管理等功能。(一) 自助银行账户管理模块:本模块又包括账户资料添加模块、账户资料管理模块等子模块。(二)出入账管理模块:本模块又包括出入账资料添加、出入账资料管理模块等子模块。 (三) 系统维护管理:本模块又包括公司用户设置模块、重新登录模块、数据管理模块等子模块。根据上功能模块图,可设计出相对应的系统数据流程图。如下:自助模拟银行管理系统登陆系统系统信息管理数据备份atm账户管理出入账管理用户信息管理数据还原自助模拟银行管理系统数据输出退出系统4.2 后台数据库设计4.2.1 存储过程介绍1. 考
40、虑使用存储过程的理由相对于使用一般的sqlcommand 对象的 t-sql语句,使用存储过程可以使sqlcommand 对象的 t-sql语句并入数据访问代码更好的位置。由于应用程序随着时间的推移增添了一些功能,因此其内部可能包含一些复杂的 t-sql 过程代码。存储过程为封装此代码提供了一个替换位置。大多数人可能对存储过程已有所了解,但对于那些不了解存储过程的人员而言,存储过程是指一组作为单个代码单元一起存储于数据库中的 t-sql 语句。您可以使用输入参数传入运行时信息,并取回作为结果集或输出参数的数据。存储过程在首次运行时将被编译。这将产生一个执行计划 - 实际上是 microsoft
41、 sql server 为在存储过程中获取由 t-sql 指定的结果而必须采取的步骤的记录。然后,执行计划在内存中得到缓存,以备以后使用。这样会改善存储过程的性能,因为 sql server 无需为确定如何处理代码而重新分析它,而只需引用缓存的计划即可。这个缓存的计划一直可用,直到sql server 重新启动,或直到它由于使用率较低而溢出内存9。2. 性能缓存的执行计划曾使存储过程较之查询更有性能优势。但对于 sql server 的几个最新版本,执行计划已针对所有 t-sql 批处理进行了缓存,而不管它们是否在存储过程中。因此,基于此功能的性能已不再是存储过程的卖点。任何使用静态语法,且提
42、交频率足以阻止执行计划溢出内存的 t-sql 批处理将会获得同样的性能好处。“静态”部分是关键;任何更改,即使像添加注释这样无关紧要的更改,也将导致无法与缓存的计划相匹配,从而将无法重复使用计划。但是,当存储过程可以用于降低网络流量时,它们仍然能够提供性能好处。您只需在网络中发送 execute stored_proc_name 语句,而非整个 t-sql 例程,这可以在复杂操作中广泛使用。设计良好的存储过程可以将交易记录端与服务器之间的许多往返过程简化为单个调用。此外,使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用 (rpc) 处理服务器上的存储过程而提高性能。使
43、用 storedprocedure 的sqlcommand.commandtype 时,存储过程通过 rpc 执行。rpc 封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。考虑使用存储过程提高性能时,最后要考虑是否要充分利用 t-sql 的优点。请考虑要如何处理数据。 (1) 是否要使用基于集合的操作,或执行 t-sql 中完全支持的其他操作?那么存储过程就是一个选择,而内联查询也可以使用。(2) 是否尝试执行基于行的操作,或复杂的字符串处理?那么可能要重新考虑在t-sql 中进行这种处理,这不包括使用存储过程,至少要到 yukon 发布并且公共语言
44、运行库 (clr) 集成可用后,才能使用存储过程。3. 可维护性和抽象要考虑的另一个潜在优势是可维护性。理想情况下,数据库架构从不更改,业务规则不被修改,但在现实环境中,情况则完全不同。既然情况如此,那么如果可以修改存储过程以包括新 x、y 和 z 表(为支持新的销售活动而添加了这些表)中的数据,而不是在应用程序代码中的某个位置更改此信息,则维护对您来说可能比较容易。在存储过程中更改此信息使得更新对应用程序而言具有透明性。您仍然返回相同的销售信息,即使存储过程的内部实现已经更改。更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。 另外,通过抽象化实现并将此代码保存在存储过程中
45、,任何需要访问数据的应用程序均可以获取一致的数据。您无需在多个位置维护相同的代码,用户便可获取一致的信息。在存储过程中存储 t-sql 的另一个可维护性优点是更好的版本控制。您可以对创建和修改存储过程的脚本进行版本控制,就像可以对任何其他源代码模块进行版本控制一样。通过使用 microsoft visual sourcesafe 或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。 在使用存储过程提高可维护性时应值得注意的一点是,它们无法阻止您对架构和规则进行所有可能的更改。如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码
46、以添加参数、更新getvalue()调用,等等。要注意的另一个问题是,由于存储过程将应用程序绑定到sql server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于rdbms的中间层中可能是一个更佳的选择。 4. 安全性考虑使用存储过程的最终原因是它们可用于增强安全性。 就管理用户对信息的访问而言,通过向用户授予对存储过程(而不是基础表)的访问权限,它们可以提供对特定数据的访问。存储过程可以看成是sql server视图,除非存储过程接受用户的输入以动态更改显示的数据。存储过程还可以解决代码安全问题。它们可以防止某
47、些类型的sql插入攻击。主要是一些使用运算符(如and或or)将命令附加到有效输入参数值的攻击。在应用程序受到攻击时,存储过程还可以隐藏业务规则的实现。这对于将此类信息视为知识产权的公司非常重要。另外,使用存储过程使您可以使用ado.net中提供的sqlparameter类指定存储过程参数的数据类型。这为验证用户提供的值类型(作为深层次防御性策略的一部分)提供了一个简单方法。在缩小可接受用户输入的范围方面,参数在内联查询中与在存储过程中一样有用。使用存储过程仅仅能够增强数据库安全性,而不能完全使数据库免受攻击。如果数据库的安全性或编码做法不完善仍然会受到攻击。对sql server角色创建和分
48、配如果不加注意将导致人们访问到不应看到的数据。同时,如果认为使用存储过程便可防止所有sql插入代码攻击(例如,将数据操作语言 (dml) 附加到输入参数),后果将是一样的。另外,无论t-sql位于代码还是位于存储过程中,使用参数进行数据类型验证都不是万无一失的。所有用户提供的数据(尤其是文本数据)在传递到数据库之前都应受到附加的验证。5. 使用存储过程的优缺点使用存储过程封装应用逻辑的优点如下:(1) dba+developer分工明确,之间代码模块化。减少数据库操作员和程序员的错误。(2) 数据库安全性;可以设置连接字符串中账号只可访问存储过程,不可操作表。这样数据完整性也有保证。(3) 存
49、储过程是编译过的,执行快。(4) 事务的级别,存储过程级别的事务,ado.net级别的事务比较。一致性。(5) 减少网络通信量。一个需要数行 transact-sql 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数行代码。使用存储过程封装应用逻辑的缺点如下:(1) 编程语言sql功能较差(不包括 sql 2005)(2) 与编程环境集成不够(不包括 sql 2005)(3) 移植性差(不同数据库)(4) 数据库服务器压力大4.2.2 数据库的表的设计根据项目要求进行数据库中表格的建立。根据对用户的需求分析,在项目中,需要记录银行的基本信息、交易记录的基本信息、银行的操作
50、信息。数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。范式的介绍:第一范式(1nf):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。第二范式(2nf):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于
51、任意一组候选关键字。第三范式(3nf):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在“a b c”的决定关系,则c传递函数依赖于a。因此,满足第三范式的数据库表应该不存在如下依赖关系:关键字段 非关键字段x 非关键字段y鲍依斯-科得范式(bcnf):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式。可以消除第三范式删除异常、插入异常和更新异常13。系统中还需要有用户的登录信息表用于记录用户的登录信息。登录信息表中应该有登录的用户名和密码,其中登录名为主键。4.2.3
52、 设计局部er模式 1实体和属性的定义:1)管理员用户类别(用户名,密码,权限,注册时间等)管理员用户用户名权限密码注册时间图4-2管理员用户实体与属性的定义账户信息2)账户信息类别(姓名,身份证,性别,联系电话,地址,注册时间等)姓名地址性别注册时间时间图4-3账户信息实体与属性的定义3)交易记录信息类别(姓名,性别,身份证,电话,地址) 交易信息转入账户类型转出账户身份证图4-4 交易记录信息实体与属性的定义2 实体关系定义:er模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,
53、进一步确定是1:1、1:n、m:n的关系。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等针对本系统分析如下:实体间的关系: 一个管理员可以管理多个自助银行账户,而一个自助银行账户只能被一个管理员管理。n1atm账户管理员图4-6 自助银行账户与管理员信息管理1:n(一对多的关系) 一个管理员可以管理多个出入账信息,而一个出入账信息只可以被一个管理员管理n1出入账信息管理员图4-7管理员与出入账信息1:n(一对多的关系)设计全局er模式 所有局部er模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要
54、支持所有局部er模式,而且必须合理地表示一个完整、一致的数据库概念结构。1) 确定公共实体类型 为了给多个局部er模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2) 局部er模式的合并 合并的原则是:首先进行两两合并;先合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3) 消除冲突 冲突分为三类:属性冲突、结构冲突、命名冲突。 设计全局er模式的目的不在于把若干局部er模式形式上合并为
55、一个er模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。4) 全局er模式的优化 在得到全局er模式后,为了提高数据库系统的效率,还应进一步依据处理需求对er模式进行优化。一个好的全局er模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。4.2.4数据字典数据字典是在新系统数据流程图基础上,进一步定义和描述所有数据项的工具,是关于数据的数据。它包括对一切动态数据和表态数据的数据结构和相互关系等的说明,是数据分析和数据管理的重要工具。数据字典实际上是新系统的所有数据流、数据存储、数据结构、数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高安市九年级上学期语文期中考试卷
- 二年级数学计算题专项练习集锦
- 脱硫废水零排放技术协议书(2篇)
- 高中技术学业水平测试试卷
- 南京工业大学浦江学院《食品标准与法规》2022-2023学年第一学期期末试卷
- 翰林国际(原曹妃甸科教城共享居住及配套)土地固化施工组织设计
- 多种多样的生态系统说课稿
- gkh说课稿第课时
- 《小数的性质》说课稿
- 租地合同范本(2篇)
- 【参考】华为腾讯职位管理0506
- 五年级英语上册Unit1Getupontime!教案陕旅版
- 风机安装工程质量通病及预防措施
- 三角形钢管悬挑斜撑脚手架计算书
- 文件和文件夹的基本操作教案
- 剪纸教学课件53489.ppt
- 旅游业与公共关系PPT课件
- 劳动法讲解PPT-定稿..完整版
- 彩色的翅膀_《彩色的翅膀》课堂实录
- 假如你爱我的正谱
- 铜芯聚氯乙烯绝缘聚氯乙烯护套控制电缆检测报告可修改
评论
0/150
提交评论