版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要
自助银行是AutomaticTellerMachine的缩写,意为自动柜员机。它是一种
高度精密的机电一体亿设备,利用磁卡或智能IC卡储存用户信息并通过加密键
盘(EPP)输入密码然后通过银行内部网络验证并进行各种交易的金融自助设备。
自助银行的功能主要包括:现金取款、现金存款、现金存取款、余额查询、本
行或异行转账、修改密码等基本功能;有些多功能自助银行还提供诸如存折打
印、对账单打印、支票存款、信封存款、缴费、充值等一系列便捷服务。由此
看来,自助银行的管理是十分重要的。而人们在使用自助银行前很重要的一个
环节,就是学习如何正确地使用自助银行。如何利用现代计算机技术进行自助
银行的全真模拟,成了很棘手的问题。
经过需求分析,在数据库方面,本项目使用SQLSEVER200()数据库管理
系统;在应用程序开发方面,使用微软公司的MYECLIPSE的JSP开发工具,
利用其提供的各种面向对象的开发工具,其中最主要的是JAVA;在网络查询方
面,使用JSP技术,开发语言也是JSP。
本论文将重点论述如何使用这些工具,对自助银行进行更科学更有效地管
理。
关键词:网络银行:JSP:SQL;TOMCAT:
Abstract
TheapplicationofelectroniclabelandSQLdatabaseinanautomaticstorage
managementsystem'sdevelopmentmainlyincludesthreeaspectsofdesigningand
realizing,thatisthebackstagedatabase,thecodeofthedatabasecorrespondence,
andthereportinquiringbasedonthenetwork.Thedatabasemusthavetheuniformity,
theintegrityandthesecurecharacteristics;thecodethedatabasecorrespondence
couldrealizetheappending,updateandomittingfunctionsofthedatabase;the
networkreportforminquiryshouldachievereportforminquiryfunctions.
Aftercarefullyanalyzingenterprisedemand,SQLtheSEVER2000database
managementsystemisemployedinthisproject;intheapplicationprocedure
developmentaspect,MicrosoftCorporation'sVS.NETJSPdevelopmentkitis
broughtin,whoseobject-orienteddevelopmentkitsisutilized,especiallytheJAVA;
Inthenetworkinquiryaspects,theJSPtechnologyistakenintouse,whose
developmentlanguageisJSPNET.
Thisprojecthasestablishedthedatabase,completedthedatabase
correspondencecodes,realizedreportforminquirybasedonthenetwork..
Keywords:OnlineBankJSPSQLJAVA
目录
摘要..................................................................I
Abstract......................................................................................................................................II
第1章绪论..........................................................1
1.1课题名称及其来源..............................................1
1.2信息系统与管理信息系统.......................................1
1.3基于JSP的网银模拟系统的现状与发展趋势......................2
1.4基于JSP的网银模拟系统的意义................................3
第2章系统分析......................................................4
2.1用户需求分析.................................................4
2.2系统的功能...................................................4
2.2.1应用程序结构确定.........................................6
2.2.2确定系统开发环境.........................................6
2.3本章小结.....................................................7
第3章开发工具简介..................................................8
3.1MyEclipse8.5的JSP语言.......................................8
3.2JSP简介....................................................12
3.3SQLServer2008.............................................................................................12
3.4本章小结.....................................................12
第4章系统的功能设计...............................................13
4.1功能概述.....................................................13
4.2后台数据库设计..............................................15
4.2.1存储过程介绍............................................15
4.2.2数据库的表的设计........................................18
4.2.3设计ER模式............................................18
4.2.4数据字典................................................21
4.3本章小结....................................................25
第5章应用程序界面设计.............................................27
5.1用户登陆....................................................27
5.2系统主操作界面..............................................28
5.3账户信息添加模块............................................29
5.4帐户信息查询模块............................................3()
5.5找回密码模块................................................31
5.6查询余额管理模块............................................32
5.7账户明细管理模块............................................33
5.8转账取现管理模块............................................34
5.9本章小结....................................................34
第6章系统测试.....................................................35
6.1软件测试概念................................................35
6.2本软件系统测试..............................................36
6.3测试用例设计................................................36
6.4系统测试....................................................37
6.4.1登陆模块测试............................................37
6.4.2转账模块测试............................................38
6.4.3管理员查询模块测试......................................38
6.5本章小结....................................................38
结论.................................................................39
致谢................................................................40
参考文献............................................................41
附录1中文译文.....................................................42
附录2英文参考资料.................................................44
附录3系统部分关键代码.............................................46
第1章绪论
1.1课题名称及其来源
本课题根据银行商业运营中的实际需要而产生,随着社会的发展,互铁网
已经成为人们日常生活、学习办公中不可缺少的一部分,并在各个领域发挥着
越来越重要的作用。特别是在商业运营管理方面发展尤为迅速。本系统的开发
主要是根据银行实际运营管理中需要而制作,系统整体包括:基础资料管理、
银行业务管理、财务报表管理、系统维护管理四大功能模块。对其进行一条龙
式的集中管理。“基于JSP的网银模拟系统”的出现打破了银行传统的经营管理
模式,它凭借其银行信息更新速度快、信息存储量大、应用简便、安全性高等
特点,为银行的人员管理等信息的管理带来了极大的方便,大大减轻了银行管
理人员的工作量,使管理者足不出户便可对银行的货柜存储信息、进出场信息、
财务信息等了如执掌,针对具体情况做出正确的决策。因此“基于JSP的网银
模拟系统”已成为当今银行管理者不可缺少的管理工具之一,同时对于一个银
行的正常运做也发挥着极为重要的作用,并且随着国家经济的不断发展,国家
和银行进出口贸易量的不断增加,“银行信息管理系统”必将在未来国家进出口
贸易发展中发挥越来越重要的作用。
1.2信息系统与管理信息系统
1.信息系统
信息系统是一个人造系统,它由人、硬件、软件和数据资源组成,目的是
及时、正确地收集、加工、存储、传递和提供信息,实现组织中各项活动的管
理、调节和控制。信息系统包括信息处理系统和信息传输系统两个方面。信息
处理系统对数据进行处理,使它获得新的结构与形态或者产生新的数据。信息
传输系统不改变信息本身的内容,作用是把信息从一处传到另一处。从第一台
电子计算机创始,50多年来,信息系统经历了由单片机到网络,由低级到高级,
由电子数据处理到管理信息系统、再到决策支持系统,由数据处理到智能处理
的过程。EDPS是面向业务的信息系统,MIS是面向管理的信息系统,DSS则
是面向决策的信息系统。EDPS、MIS、DSS各自代表了信息系统发展过程中
的某一阶段,至今它们仍各自不断地发展着,而且是相互交叉的关系。
-1-
2.管理信息系统
管理信息系统是一个具有高度复杂性、多元性和综合性的人机系统,它全
面使用计算机技术、网络通讯技术、数据库技术以及管理科学、运筹学、统计
学、模型论和各种最优化技术、为经营管理和决策服务。从广义上说,管理信
息系统是一个对组织进行仝面管理的综合系统。随着计算机技术的发展,信息
技术在人们生活中变得越来越重要,信息化成为人们生活的主要内容。管理信
息系统作为信息化的一部分,在各行各业中,发挥着其不可替代的作用。管理
信息系统综合的意义在于产生更高层次的管理信息,为管理决策服务。管理信
息系统综合了管理科学、信息科学、系统科学、行为科学、计算机科学和通信
技术。在一个国家里管理信息系统的建立,运行和发展水平,标志着这个国家
的管理现代化水平和信息化水平。管理工作的成败,取决于能否作出有效的决
策,而决策的正确与否则在很大程度上取决于信息的质量。随着人类进入信息
时代,信息管理的水平越来越成为衡量国家综合实力的重要标志。
管理信息系统是现代管理方法与手段相结合的系统。尤其是在银行管理信
息系统中,计算机系统与现代管理方法的结合才能使系统在管理中发挥作用。
管理信息系统的目的是要使各级管理人员在计算机系统支持下,从各种繁琐的
日常事务中解脱出来,以便更好地投入到决策工作中去。管理信息系统不能只
是对原有手工系统的简单的模仿,它还必须能够在仿真原管理信息系统的基础
上,改进管理系统,使银行管理在先进的技术手段和准确及时的信息支持下,
达到一个新层次。
1.3基于JSP的网银模拟系统的现状与发展趋势
基于JSP的网银模拟系统由自助银行账户管理系统、出入账管理系统等多
个子系统组成。基于JSP的网银模拟系统在整个银行系统中占有十分重要的地
位。自助银行账户管理是银行管理的重要方面,因为它和银行的日常运营息息
相关。出入账管理是一项计算琐碎复杂,具有重复性,又牵涉到每个人的利益,
必须及时准确地完成,一般不容发生差错。计算机进行基础管理工作,不仅能
够保证数据核算正确无误,快速输出,而且还可以利用工资数据库对相关各种
信息进行统计,服务于财务部门其他方面的核算和帐务处理。
现行的自助银行管理软件大多是基于单机版的,或者即使是网络版,其用
户也是限制在一个。但牵涉到大型银行的管理时,这往往是不够的,一方面大
型银行内部的各个部门自己要进行工资管理,这样用户数就会很多,另一方面,
-2-
其他的管理系统如财务系统等需要工资管理系统的一些数据,若网络化程度不
够,则无法做到真正的自动化信息集成。信息管理网络化会在很大程度上提高
办事效率,尤其工资管理方面的网络化,都会给公司及员工带来益处。
1.4基于JSP的网银模拟系统的意义
现在社会各行各业崇尚的是高效管理,银行也不例外。为赢得更多从业人
员的青睐,本系统大大提高现代银行管理效率,同时大大减轻对银行管理人员
的工作量,有利的保障银行的正常经营,促进银行的发展。
第2章系统分析
本系统采用了结构化生命周期法,结构化生命周期法是最常用的管理信息
系统开发方法,分为四个步骤,即系统调研分析、数据库设计实现、界面设计
实现和系统功能设计实现。其中系统调研分析阶段是最基础、也是最容易被开
发人员忽视的环节。
2.1用户需求分析
用户需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,
完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用
程序的结构、系统开发环境和系统的功能模块。用户需求调研结束之后,应该
立即进行用户需求分析。
通过对系统所使用环境分析和用户的需求分析,大致将系统分为两个部分,
前台用户自助服务子系统和后台账户管理系统。其中,在对网络银行使用的范
围和现今存在的网银系统进行分析之后,前台功能主要有记录查询,个人信息
修改,转账,挂失等基本功能。
后台的管理主要有账户管理,开户功能,销户功能,修改功能等。
2.2系统的功能
系统开发的总体任务是实现自助银行的自动化管理,从而达到提高降低管
理成本、提高作业效宓、提高管理现代化水平,减少成本、促进相关产业的发
展。
首先要考虑项目的软件组成分为两大类:前台的用户操作界面及整个程序
的后台数据库部分。
前台的用户操作界面主要是要实现用户的自助服务功能,包括用户的转账
功能,查询交易记录功能,修改个人信息,转账以及提取现金的模拟功能,以
实现前台用户可以实现非柜台的操作。
后台的操作主要是提供给银行的管理人员管理普通用户的账户。因此后台
功能主要包括,交易记录查看与修改功能,账户状态修改功能,账户开户,账
户销户以及挂失与数据备份功能。以上功能总称后台部分,以实现模拟网银系
统后台管理。业务流程如图2-1所示:
-4-
图27业务流程图
2.2.1应用程序结构确定
从用户应用角度及看,可把应用程序系统的组成部分分成数据存储层、业
务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程
序结构、单用户应用程序结构、多层服务器应用程序结构、浏览器/服务器应
用程序结构、交易记录机/服务器应用程序结构等5种类型。
本系统的交易记录端程序部分就采用了当前最流行的交易记录机/服务器
应用程序结构(即B/S结构),此时,交易记录机提出请求,服务器对交易记录
机的请求作出回应。通过对服务功能的分布实现了分工服务。数据存储层放在
服务器上,业务处理层和界面表示层放在交易记录机上,因此又被称为“灵敏
的交易记录机”结构。许多操作可以在本地的交易记录机上执行,只是当需要
数据时,才向服务器发出请求。并使应用程序的处理更接近用户,使整个系统
具有较好的性能,可以并行地处理应用程序的请求、减少了数据传输量、降低
了服务器的负荷。由G条件所限,将此系统所有程序都置于一台计算机上,以
便调试运行。
2.2.2确定系统开发环境
1.数据库的选择:
MicrosoftSQLServer与Access,Orcale,Sybase都是当前比较流行的数据
库管理系统(BDMS)c随着SQLServer的不断完善与发展,以及与网络操作系
统的完美结合,为系统扩展为多机操作提供可能,SQLServer2008是一个可缩
放、高性能的数据库管理系统,有完善的数据库维护计划。而且在这个项目中,
由于数据量的考虑,本论文决定使用SQLServer20()8作为后台的数据库。
2.开发工具的选择:
因为JSP强大的生命力,还有非常好的灵活性,因此本项目决定选用JSP
语言来进行代码的编写,这样既可以锻炼我的学习能力又可以是我了解目前先
进的编程语言。
由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降
低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下
面的开发环境:
1.网络操作系统:WindowsXP;
-6-
2.数据库服务器:SQLServer2008;
3.服务器平台:Tomacr;
4.交易记录机平台:WindowsXP;
5.前台开发工具:Myecplise8.5;
6.数据访问对象:JAVA
7.网络开发语言:JSP
2.3本章小结
本章对本系统的需求进行详尽的分析,通过分析,最终确定系统的功能结
构和业务流程,在确定了业务流程之后,可以对系统的数据流向和数据库的设
计有一个大致的思路。需求分析作为软件工程的第一步的工作,也是最重要的
工作,它大致的确定了系统未来的样子和系统将要完成的主要任务,只有软件
系统的主要任务和方向选择正确,软件系统才能正确运行。
-7-
第3章开发工具简介
本系统中的前台程序使用的是JSP语言;瓯络部分使用的是JSP技术,后
台数据库系统使用的是SQLServer2008。
3.1MyEcIipse8.5的JSP语言
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可
简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE
核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,
均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼
容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部
难以互通的窘境。J2EE同时拥有者自己独特的优势。
1.保留现存的IT资产
由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,
而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,
全盘否定的)方式建立在己有系统之上的服务器端平台机制是公司所需求的。
J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATuxedo.IBM
CICS,IBMEncina,>InpriseVisiBroker以及NetscapeApplicationServer。
这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的‘企业计算'领
域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进
入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何
操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。
2.高效的开发
J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间供应商去完成。
这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。
高级中间件供应商提供以下这些复杂的中间件服务:状态管理服务一让开发
人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。持
续性服务让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成
更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。分布式
共享数据对象CACHE服务让开发人员编制高性能的系统,极大提高整体部署的
伸缩性。
3.支持异构环境
-8-
J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依
赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开
发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。
J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异
构环境中,节省了由自己制订整个方案所需的费用。
4.可伸缩性
企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去
满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序
可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系
统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的
供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务
器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来
商业应用的需要。
5.稳定的可用性
一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。
因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成
严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,
他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择
鲁棒性更好的操作系统如SunSolaris、IBMOS/390。鲁棒性最好的操作系统可
达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统
理想的选择。
这种基于组件,具有平台无关性的J2EE结构使得J2EE程序的编写十分简
单,因为业务逻辑被封装成可复用的组件,并且J2EE服务器以容器的形式为
所有的组件类型提供后台服务。因为你不用自己开发这种服务,所以你可以集
中精力解决手头的业务问题。容器和服务容器设置定制了J2EE服务器所提供得
内在支持,包括安全,事务管理,JNDI(JavaNamingandDirectoryInterface)寻
址,远程连接等服务,其中最重要的几种服务:J2EE安全(Security)模型可以
让你配置web组件或enterprisebean,这样只有被授权的用户才能访问系统资
源.每一客户属于一个特别的角色,而每个角色只允许激活特定的方法。你应在
enterprisebean的布置描述中声明角色和可被激活的方法。由于这种声明性的方
法,你不必编写加强安全性的规则。J2EE事务管理(TransactionManagement)
模型让你指定组成一人事务中所有方法间的关系,这样一个事务中的所有方法
被当成一个单一的单元.当客户端激活一个enterprisebean中的方法,容器介入
-9-
一管理事务。因有容器管理事务,在enterprisebean中不必对事务的边界进行编
码。要求控制分布式事务的代码会非常复杂。你只需在布置描述文件中声明
enterprisebean的事务属性,而不用编写并调试复杂的代码。容器将读此文件并
为你处理此enterprisebean的事务。JNDI寻址(JNDILookup)服务向企业内
的多重名字和目录服务提供了一个统一的接口,这样应用程序组件可以访问名
字和目录服务。J2EE远程连接(RemoteClientConnectivity)模型管理客户端和
enterprisebean间的低层交互.当一个enterprisebean创建后,一个客户端可以调
用它的方法就象它和客户端位于同一虚拟机上一样。生存周期管理(LifeCycle
Management)模型管理enterprisebean的创建和移除,一个enteiprisebean在其
生存周期中将会历经几种状态。容器创建enterprisebean,并在可用实例池与活
动状态中移动他,而最终将其从容器中移除。即使可以调用enterprisebean的
create及remove方法,容器也将会在后台执行这些任务。数据库连接池(Database
ConnectionPooling)模型是一个有价值的资源。获取数据库连接是一项耗E寸的
工作,而且连接数非常有限。容器通过管理连接池来缓和这些问题。enterprise
bean可从池中迅速获取连接。在bean释放连接之可为其他bean使用。容器类
型J2EE应用组件可以安装部署到以下几种容器中去:EJB容器管理所有J2EE
应用程序中企业级bean的执行.enterprisebean和它们的容器运行在J2EE服
务器上.Web容器管理所有J2EE应用程序中JSP页面和Servlet组件的执
行.Web组件和它们的容器运行在J2EE服务器上.应用程序客户端容器管理
所有J2EE应用程序中应用程序客户端组件的执行.应用程序客户端和它们的容
器运行在J2EE服务器上.Applet容器是运行在客户端机器上的web浏览器和
Java插件的结合。J2EE结构如图3-1如下:
-10
Apptyzeroormo
nterceotmaFite
CentralizeControl
DispatchtoFrontController|Compose❷View
Di^pjtchtoDelegateProe^ing
MewtoHelpets
ComposeView
ViewHelperfromSub-Views
DispatchtoD«l«gjt«Processing
\4MtoM«lp«rs
FrontController|FrontControllerj
Access
LighttightAccessControlBusiness
ControlBusiressProcesslnoServices
ProcessingServices
ViewIServiceToWorke
Ac«<«
9urin,=」
Services
BusinessDelegate
M«duU
Locate
Business
Services
Processing
{SessionFacadeLocate*{ServiceL©cator
Service
ModelObtainAccessBusiness
InvokeCoar7Q-grained—JCompositeList
BusinessBusinessV^lueObjects
EncapmlaKC>at4—
ProcessingComponent
Dtspjfchto
AsynchronousTransferObjectAssembler
Processing
Enojpsuljte
Data
EncjpwlJt'
Encjpsul
om
EncapsulateAccess
AccessData
D』"DataSources
Sources
AccessObject
图3-1J2EE企业级开发结构图
-11-
3.2JSP简介
基于WEB的应用系统,在Internet/Intranet技术推广以来,得到了迅速发展。
无论是银行、政府的内部计算机应用系统,还是在互联网上的应用服务系统,
基于WEB的计算机应用系统都发挥着越来越多的作用o逐渐成为计算机应用系
统的主流。
JSP完全基于模块和组件,具有更好的可扩展性和可定制性,JSP建立在
CLR(CommonLanguageRuntime,通用语言运行库)基础之上,它主要用于在服
务器上开发功能强大的Web应用。
JSP具有如下的优点:
1.速度奇快,所有的JSP代码(包括服务器脚本)都经过了编译后运行,所以执行
效率极高。
2.口J用XCOPY轻松完成部署及应用升级。JSP支持应用程序的实时更新。管理
员不必关掉网络服务器或者其至不用停止应用程序的运行就可以更新应用程
序。
3.代码与内容分离。JSP程序通过Code-Behind、用户控件、自定义控件及组件
这四种方法将程序结构与执行代码分离,使程序的逻辑结构一目了然,便于
团队开发。
3.广泛的移动设备支持。JSP的移动控件使开发人员可以面向广泛的移动设备,
包括支持Web的移动电话、寻呼机和个人数字助理((PDA)。
4.轻松构建和使用Web服务。由于JSP和.NET远程处理建立在.NETFramework
之上,因此它们可以使创建XMLWebservices变得更为容易。
3.3SQLServer2008
SQLServer2008是建立在SQLServer7.0在可伸缩性、可用性、可管理性
和数据仓库成功的基础上,并且引入了针对电子商务的重要新功能。
3.4本章小结
在需求分析之后,确定了系统的运行环境和开发环境。因此,本章主要就
是要加深对开发工具的了解,了解开发工具主要配置和使用方法,了解开发工
具不同的版本所能完成的任务。以此使程序编码工作顺利展开。
-12
第4章系统的功能设计
本章主要完成的系统的功能设计和功能结构,确定系统要实现的主要业务,
决定系统组成部分,模拟出系统的执行过程和业务流程。
4.1功能概述
本系统要实现用户对自助银行的所有操作:账户管理、出入账管理、系统
维护管理等功能。
1.自助银行账户管理模块:本模块又包括账户资料添加模块、账户资料管理模块
等子模块。
2.出入账管理模块:本模块又包括出入账资料添加、出入账资料管理模块等子
模块。
3.系统维护管理:本模块又包括公司用户设置模块、重新登录模块、数据管理
模块等子模块。
根据上功能模块图,可设计出相对应的系统功能如图4-1:
(用户畿)网上•行
户功毗映公共■务接供
交
账
・
户
记
状
录开
本
户户
查
修
LJLJ改
交
拿
■票
充
方
:活能
式
图4-1系统功能图
-13-
开始
NO-
<密码险证A-用户
Entry
用户自助子系统
功能选择
▼
修
改
查
账
询
开
销
户
户
户
记
状
录
态
更新数据库
数据库
图4-2系统流程图
-14-
4.2后台数据库设计
4.2.1存储过程介绍
1.考虑使用存储过程的理由
相对于使用一般的SqlConimand对象的T-SQL语句,使用存储过程可以使
SqlCommand对象的『SQL语句并入数据访问代玛更好的位置。由于应用程序随
着时间的推移增添了一些功能,因此其内部可能包含一些复杂的T-SQL过程代
码。存储过程为封装此代码提供了一个替换位置。
大多数人可能对存储过程已有所了解,但对于那些不了解存储过程的人员
而言,存储过程是指一组作为单个代码单元一起存储于数据库中的T-SQL语
句。您可以使用输入参数传入运行时信息,并取回作为结果集或输出参数的数
据。存储过程在首次运行时将被编译。这将产生一个执行计划-实际上是
Microsoft®SQLServer™为在存储过程中获取由T-SQL指定的结果而必须采
取的步骤的记录。然后,执行计划在内存中得到缓存,以备以后使用。这样会
改善存储过程的性能,因为SQLServer无需为确定如何处理代码而重新分析
它,而只需引用缓存的计划即可。这个缓存的计划一直可用,直到SQLServer重
新启动,或直到它由于使用率较低而溢出内存巴
2.性能
缓存的执行计划曾使存储过程较之查询更有性能优势。但对于SQLServer
的几个最新版本,执行计划已针对所有T-SQL批处理进行了缓存,而不管它们
是否在存储过程中。因此,基于此功能的性能已不再是存储过程的卖点。任何
使用静态语法,且提交频率足以阻止执行计划溢出内存的T-SQL批处理将会获
得同样的性能好处。“静态”部分是关键;任何更改,即使像添加注释这样无
关紧要的更改,也将导致无法与缓存的计划相匹配,从而将无法重复使用计划。
但是,当存储过程可以用于降低网络流量时,它们仍然能够提供性能好处。
您只需在网络中发送EXECUTEstoredprocname语句,而非整个T-SQL例程,
这可以在复杂操作中广泛使用。设计良好的存储过程可以将交易记录端与服务
器之间的许多往返过程简化为单个调用。
此外,使用存储过程使您能够增强对执行计划的重复使用,由此可以通过
使用远程过程调用(RPC)处理服务器上的存储过程而提高性能。使用
StoredProcedure的SqlConimand.CommandTypeE寸,存储过程通过RPC执行。
RPC封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计
-15
划,并只需插入更新的参数值。
考虑使用存储过程提高性能时,最后要考虑是否要充分利用T-SQL的优
点。请考虑要如何处理数据。
⑴是否要使用基于集合的操作,或执行T-SQL中完全支持的其他操作?那么
存储过程就是一个选择,而内联查询也可以使用。
(2)是否尝试执行基于行的操作,或复杂的字符串处理?那么可能要重新考虑在
T-SQL中进行这种处理,这不包括使用存储过程,至少要到Yukon发布并
且公共语言运行库(CLR)集成可用后,才能使用存储过程。
3.可维护性和抽象
要考虑的另一个潜在优势是可维护性。理想境况下,数据库架构从不更改,
业务规则不被修改,但在现实环境中,情况则完全不同。既然情况如此,那么
如果可以修改存储过程以包括新X、Y和Z表(为支持新的销售活动而添加了
这些表)中的数据,而不是在应用程序代码中的某个位置更改此信息,则维护
对您来说可能比较容易。在存储过程中更改此信息使得更新对应用程序而言具
有透明性。您仍然返回相同的销售信息,即使存储过程的内部实现已经更改。
更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。
另外,通过抽象化实现并将此代码保存在存储过程中,任何需要访问数据
的应用程序均可以获取一致的数据。您无需在多个位置维护相同的代码,用户
便可获取一致的信息。
在存储过程中存储T-SQL的另一个可维护性优点是更好的版本控制。您可
以对创建和修改存储过程的脚本进行版本控制,就像可以对任何其他源代码模
块进行版本控制一,样。通过使用MicrosoftVisualSourceSafe®或某个其他
源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。
在使用存储过程提高可维护性时应值得注意的一点是,它们无法阻止您对
架构和规则进行所有可能的更改。如果更改范围大到需要对输入存储过程的参
数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以
添加参数、更新GetValueO调用,等等。
要注意的另一个问题是,由于存储过程将应用程序绑定到SQLServer,因
此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可
移植性在您的环境中非常重要,则将业务逻辑封装在不特定于RDBMS的中间层
中可能是一个更佳的选择。
4.安全性
考虑使用存储过程的最终原因是它们可用于增强安全性。就管理用户对信
-16-
息的访问而言,通过向用户授予对存储过程(而不是基础表)的访问权限,它
们可以提供对特定数据的访问。存储过程可以看成是SQLServer视图,除非存
储过程接受用户的输入以动态更改显示的数据。
存储过程还可以解决代码安全问题。它们可以防止某些类型的SQL插入攻
击。主要是一些使用运算符(如AND或OR)将命令附加到有效输入参数值的攻
击。在应用程序受到攻击时,存储过程还可以隐藏业务规则的实现。这对于将
此类信息视为知识产权的公司非常重要。
另外,使用存储过程使您可以使用JAVA中提供的SqlParameter类指定存
储过程参数的数据类型。这为验证用户提供的值类型(作为深层次防御性策略
的一部分)提供了一人简单方法。在缩小可接受用户输入的范围方面,参数在
内联查询中与在存储过程中一样有用。
使用存储过程仅仅能够增强数据库安全性,而不能完全使数据库免受攻击。
如果数据库的安全性或编码做法不完善仍然会受到攻击。对SQLServer角色创
建和分配如果不加注意将导致人们访问到不应看到的数据。同时,如果认为使
用存储过程便可防止所有SQL插入代码攻击(例如,将数据操作语言(DML)附
加到输入参数),后果将是一样的。
另外,无论T-SQL位于代码还是位于存储过程中,使用参数进行数据类型
验证都不是万无一失的。所有用户提供的数据(尤其是文本数据)在传递到数
据库之前都应受到附加的验证。
5.使用存储过程的优缺点
(1)DBA+Developer分工明确,之间代码模块化。减少数据库操作员和程序员的
错误。
⑵数据库安全性;可以设置连接字符串中账号只可访问存储过程,不可操作表。
这样数据完整性也有保证。
⑶存储过程是编译过的,执行快。
⑷事务的级别,存储过程级别的事务,JAVA级别的事务比较。一致性。
(5)减少网络通信量。一个需要数行Transact-SQL代码的操作由一条执行过程
代码的单独语句就可实现,而不需要在网络中发送数行代码。
⑹使用存储过程封装应用逻辑的缺点如下:
(7)编程语言SQL功能较差(不包括SQL2005)
⑻与编程环境集成不够(不包括SQL2005)
⑼移植性差(不同数据库)
(10)数据库服务器压力大
-17-
4.2.2数据库的表的设计
根据项目要求进行数据库中表格的建立。根据对用户的需求分析,在项目
中,需要记录银行的基本信息、交易记录的基本信息、银行的操作信息。
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据
库是简洁的、结构明晰的,同时,不会发生插入(insert),删除(delete)属更
新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,
而且面目可憎,可能存储了大量不需要的冗余信息。
范式的介绍:
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单
一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部
分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字
段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段
对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指
的是如果存在“A-B-C”的决定关系,则C传递函数依赖于A。因此,
满足第三范式的数据库表应该不存在如下依赖关系:
关键字段一非关键字段x一非关键字段y
鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在
任何字段对任一候选关键字段的传递函数依赖则符合第三范式。可以消除第三
范式删除异常、插入异常和更新异常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年肝脏损伤模拟试题(含答案)
- 2026年磨具项目安全调研评估报告
- 2026年母婴考核模拟题及答案详解
- 2026年商家运营考试模拟题及答案详解
- 2026年电工安全模拟试题模拟试卷及答案详解
- 医院感染管理知识竞赛试题及答案详解
- 2026年普通遗传学理论综合模拟题及答案详解
- 2026年反洗钱行业安全培训模拟试题(含答案)
- 2026年社工专业知识测试模拟题集锦试题及答案详解
- 2026年山西幼师考试模拟题及答案详解
- 纺织企业职业病防护与检测报告
- 《文学理论》第九讲:文学风格、流派与思潮
- 《现代办公事务处理》全套教学课件
- 城市道路清扫保洁与质量评价标准 CJJT126-2022
- 江西省人防工程质量监督管理指导手册(试行)
- 长沙市外墙外保温、外墙内保温、屋面标准图集
- 系列非晶合金干式电力变压器安装使用说明书
- 九年级上册语文理解性默写(含答案)
- 子宫颈肿瘤-子宫颈癌(妇产科学课件)
- 领导干部的法治思维-胡锦光教学课件
- 聚苯硫醚纤维演示文稿
评论
0/150
提交评论