资源描述
学士学位毕业论文
目 录
摘要 1
1 网上银行概述 2
2 网上银行方案论证与选择 2
2.1 网络操作系统及运行环境选择 2
2.2 系统体系结构的选择 4
2.3 系统软件平台和开发工具的选择 4
2.4 数据库的选择 5
3 网上银行主要实现技术 5
3.1 ASP (Active Serve Page) 5
3.2 VBScript语言 6
3.3 DELPHI 6
3.4 Microsoft SQL Server 7
4 网上银行系统介绍 7
4.1 主要功能介绍 7
4.2 网上银行数据库描述 10
5 网上银行后台设计思想与开发方法 12
5.1 设计思想 12
5.2 实现技术详述 13
5.3 关键代码 15
5.4 其它 15
6 讨论与总结 16
6.1 系统存在的问题和建议 16
6.2 开发工作的收获和感受 17
参考文献 17
致谢 18
网上银行系统的研究与实现
【摘要】伴随着科技发展的日新月异,电子商务在很短的时间内迅速风靡了全球,引发了网络经济的热潮,网上银行应运而生,江财廉信银行是我行通过互联网向公众提供各种金融服务的电子银行系统,它使客户可以不受时空限制,足不出户便可以通过网络进行申请、查询、管理、转账等银行业务,体验网上经济新生活。本文介绍了ASP技术和数据库相关等方面的基础知识,主要分析了后台对公对私以及系统设定等各个管理模块的功能及实现方法,就网上银行系统的设计与实现进行了简单的介绍。
【关键字】网上银行, ASP, ADO, 对公业务,对私业务
Research and Implementation of an E-bank System
【Abstract】 With the rapid changing of science and technology, the electronic commerce has become popular all over the world quickly. It invokes the upsurge of network economy. In this situation, E-bank emerges. The E-bank is designed for the public to get all kinds of financial services. Customers won’t be confined by time and space so that they can share general bank services via Internet at home such as application, query, management of accounts and transfer accounts, etc. Clients can fully enjoy the new economic life online. The paper introduces ASP and some basic knowledge corresponding to database and then analyses the modules’ function and the way to implement them such as public business, private business and system configuration. In a word, the paper gives a brief introduction to design and implementation of an E-bank.
【Keywords】E-bank, ASP, ADO, Public Business, Private Business
1 网上银行概述
网上银行又称网络银行、在线银行,是指银行利用Internet技术,通过Internet向客户提供开户、销户、查询、对帐、行内转账、跨行转账、信贷、网上证券、投资理财等传统服务项目,使客户可以足不出户就能够安全便捷地管理活期和定期存款、支票、信用卡及个人投资等。可以说,网上银行是在Internet上的虚拟银行柜台。它一改传统银行全部由人工操作而导致效率低、易出错、不安全的弊端。这些工作全部都由计算机实现,从而有效地改善了传统银行的许多缺点,使用户可以不受时空限制,足不出户便可通过网络办理用户管理、查询、申请、转账等银行业务;另一方面,传统的银行柜员也从繁杂的账务中解脱出来,他们只需对着电脑做些简单的操作,即可完成原来的工作。早在1996年,受世界网络经济蓬勃发展的影响,中国的银行就已经认识到Internet的发展将会对各国的政治、经济、文化和社会生活带来日益深刻的影响。人们的日常生活需要,如通信、购物、证券投资、交易结算、医疗、教育、旅行、咨询和娱乐等几乎都可通过上网获得并实现,这些变化将不可避免地对传统的金融服务带来新的机遇和冲击,迫使银行加入到网络经济中来。网上银行的发展与世界网络经济的发展是密不可分的,网络经济的蓬勃发展推动了网上银行的快速发展。 “砖墙式”的营业网点及传统银行服务将逐渐减少和萎缩,而网上银行则必然成为各商业银行竞争的新焦点。不过,在实际交易过程的安全性问题以及网上交易所涉及的法律问题,是目前迫切需要解决的重点和难点。比尔·盖茨曾经预言,如果21世纪的银行没有融入电子化的洪流,那么等待它的将是恐龙式的灭绝。但是随着电脑应用为核心的网络时代、即数字化革命时代的到来,逐步形成了金融业全新经营模式--网上金融。金融电子化是金融业具有革命性意义的创举,金融企业可以充分运用电子技术所提供的巨大发展空间,而不会被电子信息所消灭。传统商业银行的网上金融变革将改变比尔·盖茨的预言,正如美洲银行总裁兼首席执行官侯特先生的反击[1],"我对认为美国商业银行是恐龙的人回答是,欢迎到侏罗纪公园玩。"总之追随新技术的革命,经济的发展,网上银行的前途是光明的。就向今天人们对网络的日益依赖一样,这一系统具有很强的生命力,将来随着系统的不断推广、不断补充,它将逐步包含银行所有的业务,成为银行主要的业务手段和人们迈入电子时代的又一标志。
2 网上银行方案论证与选择
2.1 网络操作系统及运行环境选择
网络操作系统是网络用户与计算机网络的接口,网络用户通过它请示网络服务,网络操作系统具有处理机管理、存储器管理、文件管理、作业管理、及网络管理等功能。现在市场上流行的网络操作系统主要有UNIX,NOVELL和Windows NT。
UNIX系统发展了很多年,成为全世界众多人使用的主要的操作系统,覆盖了从PC到大型机的各个机型,它最主要的优点是功能强大,充分支持多任务和多用户的特性至今仍然没有一个操作系统能比得上,UNIX的网络和通信功能也优于其他操作系统,另外UNIX还有一个极大的特点是开放系统的可移植性,现在其他的操作系统都不能达到这个要求。但是UNIX的缺点也是明显的,第一就是它的操作十分复杂,界面不如其他操作系统友好,没有一段相当时间的高水平培训,不可能掌握UNIX系统,另外还有就是UNIX系统的价格也远高于其他操作系统。所以近几年来,除了一些有特殊要求的地方和一些中型,大型系统外,UNIX正逐步失去市场占有率。
NOVELL公司的Netware操作系统,Netware的基本设计目标是对大型的局域网实现快速的文件和打印服务,其第二个目标就是使管理更为简单,所以在九十年代初NOVELL公司推出Netware软件后,在极短的时间内立即占领了全球局域网市场一半以上份额,它的特点是文件共享和打印速度极快,管理工具非常直观易懂,价格也低,但在客户机-服务器的设计上不如其他操作系统,所以在前几年以共享文件和打印机为主要目标的局域网中能得到很好的发展,而在今天以客户机-服务器为主要模式的网络中遇到了其他网络操作系统的强烈挑战。
Windows 2000操作系统是微软公司推出的网络操作系统,它是一个伸缩性极强的网络操作系统,从INTELX86系统到大型的DEC Alpha服务器都可使用,使你在选择计算机时有更多的选择,它在运行时有多个线索,从而可支持功能更为强大的应用程序,同时通过向操作系统和应用程序提供分离的内存空间以防止数据冲突又确保了系统的稳定性,它的抢占多任务方式使操作系统能为每个应用分配足够的处理时间。它与NOVELL公司Netware不同的是,它既是一个网络操作系统,又是一个个人计算机操作系统,类似于UNIX,通过将网络功能嵌入操作系统,Windows 2000将网络管理和基本操作系统完美地结合起来,并且使网络易于使用和管理,Windows 2000 Server与WINDOWS98基本界面一样,所以熟悉WINDOWS98的用户可非常方便的操作Windows 2000。另外尽管Windows 2000在共享文件和打印机在大负荷下不如Netware,但它对应用程序的控制和对客户机-服务器模式以及浏览器-服务器模式的支持则要好得多。同时,就目前微软公司推出的几种支持ASP的服务器.其中,为Windows 2000/NT系统开发的有Microsoft Internet Information Server(IIS),为Windows 95/98用户开发的支持ASP的服务器是Microsoft Personal Service(PWS),但它的功能和稳定性及安全性都不如IIS。所以ASP文件的运行环境可以是如下组合:
(1) Windows 2000+IIS
(2) Windows NT+IIS
(3) Windows 95/98+PWS
本银行系统的设计采用第(1)种方案,因为Windows 2000除了上述的优势外,尤其是对IIS及ASP的补充、对ADO技术的增强,所有这些特点都可以增强Web应用程序的功能、稳定性、集成性。通过使用这些内置的服务和应用程序,开发人员可以放弃一定程度的控制权,可以不用自己来编写、开发和维持这些组件的正常使用。它可以使开发人员集中精力开发应用程序,而不用浪费时间去构筑建立应用程序需要的一些底层操作,从而节约了大量的时间。
2.2 系统体系结构的选择
首先,随着互联网应用软件的发展以及组件技术的出现,软件体系结构逐渐从原C/S结构模式转向更适合互联网应用的B/S结构模式,两层的C/S结构也逐渐转向三层或多层结构。C/S结构和B/S结构各自的优缺点对比如下:
C/S结构:能够保证数据的一致、冗余小,客户端负担较轻;无法保证数据安全(从客户程序中可以得到数据库密码),网络资源消耗较大(因为要保持数据库连接),并发度较低(不支持事务处理),升级不够方便,对数据库的改动将导致应用程序的改动。
B/S结构:能够保证数据的一致、冗余小,客户端负担较轻;能够保证数据安全,网络资源消耗减轻(无需保持连接),并发度提高(支持事务处理),可以对COM组件单独升级,对数据库的部分改动可以通过对COM组件的修改来保持应用程序不变,当用户要求附加B/S结构时降低了工作量(因为COM组件可被ASP使用)。
2.3 系统软件平台和开发工具的选择
由于开发的基于互联网的B/S系统,一般是采用WEB开发工具,目前比较流行的是JAVA、ASP等。JAVA虽然很好,但由于之前选用的网络操作系统是Window 2000 Server,而且JAVA对WEB程序的控制远远不如ASP好控制,不利于编程。所以,我们使用了ASP网络编程。通过在服务器上运行ASP网页,将大部分的工作都推向服务器,这么一来就对客户端系统配置的要求大大的降低了。能上网的电脑几乎就能使用我们的系统。而且,我们开发的系统大部分是在我们自己的服务器上运行,客户端根本不需要安装我们这个系统的任何部分。并且,用ASP开发的效率非常的高。
对于系统后台操作来说由于开发时间短,如果用Visual C++开发系统的话,一个最大的缺点就是由于用Visual C++编制程序非常繁杂。而我们这个系统要实现的功能非常多,如果用Visual C++开发的话,那么开发系统的时间将大大的延长,从而导致开发效率大大降低。所以,鉴于Delphi的可视化开发环境的性能,快速的编译器和执行已编译代码的效率。强大的编程语言的功能以及通俗简单的语法结构。良好的框架对设计和使用模式扩充支持。尤其是数据库结构的灵活性和可扩展性,为数据库信息系统开发提供了强大的工具和功能支持,以及良好的兼容性,我们便选择它来完成后台管理系统的开发。
2.4 数据库的选择
对于数据库的选择而言,性能无疑是第一位的,但同时也得考虑为此付出的代价,比如说Informax或DB2就显然不能列在考虑范围之内。Oracle数据库虽然性能较高,但由于其可操作性不如SQL Server友好,并且服务器没有使用磁盘阵列和多处理器,无法发挥Oracle数据库设计上的性能优势,并且对系统性能要求较高。至于Access之类的数据库,由于其性能较低,且并发度太低又不具安全性,故不予考虑。因本系统是在Windows系统下使用的,并且要支持并发访问,考虑SQL Server也是由Microsoft公司开发,与系统的兼容度较高,并且支持集成性安全检测,并且对系统的资源消耗较小,所以本系统采用了该数据库。
另外,在数据库的连接方法上,我们使用了ADO方式。一个优秀的Web网站总有强大的数据库作为支撑。特别是网上银行的转账业务对数据库的要求很高,它的本质就是对数据库的操作。在Asp脚本中可以通过三种方式访问数据库:传统的IDC(Internet Database Connector)方式,ADO (Active Data Object)方式以及RDS(Remote Data Service)方式。从概念上讲,这三种访问方式对数据库的访问是由IIS来完成的。Web浏览器用HTTP协议向Internet信息服务器(IIS)递交请求,在由IIS执行访问数据库的操作,并以一个HTML格式的文档作为回答。本次设计采用了ADO技术,它的优点在于易于使用、高速度、低内存支出和占用磁盘空间较少。ADO同时具有远程数据服务(RDS)功能,通过RDS可以在一次往返过程中实现将数据从服务器移动到客户端应用程序或Web页,在客户端对数据进行处理,然后将更新结果返回服务器。它建立在应用程序编程接口OLEDB之上,特别适用于在Internet这种面向非连接的网络上使用。
3 网上银行主要实现技术
3.1 ASP (Active Serve Page)
通过ASP可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互而且高效的Web服务器应用程序。
(1)使用VBScript、JavaScript或者Prescript等简单易懂的脚本语言,结合HTML代码,即可快速完成网站的应用程序。
(2)无需compile编译,容易编写,可在服务器端直接执行。
(3)使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计,当然也可以使用Ultra edit等比较专业的文本编辑器编辑文件。
(4)与浏览器无关(Browser Independence),由于脚本在服务器上而不是在客户端运行,传送到浏览器上的Web页是在Web服务器上生成的,所以不必担心浏览器是否处理脚本用户端,只要使用可执行HTML码的浏览器(比如说微软的Internet Explorer 5.0)即可浏览ASP所设计的网页内容。
(5)ASP能与任何ActiveX scripting语言相容,除了可使用VBScript、JavaScript或者Prescript语言来设计外,还可以通过plug in(插件)的方式,使用由第三方所提供的其他脚本语言。
(6)源程序保密性高,因为只有脚本的结果返回到浏览器,所以服务器端脚本不易复制。
(7)ActiveX Server Components(ActiveX服务器元件)具有无限扩展性。
(8)面向对象,在ASP脚本中可以方便的引用系统组件和ASP内置组件,还能够通过进入第三方组件来扩充功能。
(9)复杂的数据库操作。ASP摆脱了CGI和ISPAI技术的局限。同时提供对ADO的支持,通过ADO对数据库访问,功能更强大,实现更简便[2]。
3.2 VBScript语言
VBScript是Microsoft的Visual Basic开发产品家族成员之一,是用于在Internet和Intranet的Web站点上建立HTML页面的脚本编制语言,利用VBScript可与Activex控件及Java Applet进行交互,并可以编写独立的脚本函数和过程,直接对HTML元素对象及文档对象进行操作,VBScript的语法与Visual Basic或Visual Basic for Application语法很相似:简单清晰富有条理。在Web页面中增加VBScript,便可以在将数据发送到服务器之前先进行处理和校验、动态地创建新的Web内容,甚至还可以编写完全在客户端运行的应用程序,如一些游戏应用程序,从而扩展客户机的功能。VBScript作为一种脚本语言允许应用程序对用户的操作立即做出反应,但不能处理用户机一端的API调用,不能用来直接操作用户端机器上的文件,也不能拥有文件系统之上的控件,并且只能在IE(Microsoft Internet Explorer)上运行。
3.3 DELPHI
Delphi是面向对象编程软件,对象的概念体现在界面、代码、接口各个方面,使整个体系非常清晰。由于它是面向对象编程软件,能支持继承,实现了代码的重用。Delphi有以下优点:
(1) 在Delphi的版本中提供了可视化开发环境,从而使开发Windows应用程序变得简单、快捷。
(2) 拥有数据库模块(Data Module)等多种高效的数据重用功能,也拥有大量特性,如动态数组、方法重载、模块资源管理器(Module Explorer)、MTS(Microsoft Transaction Server)和CORBA组件模型的开发应用、增强的ActiveX控件的支持。
(3) Delphi企业版在开发分布式数据库系统、Web应用等方面的性能有了很大提高,同时在提高开发人员的效率、易于使用、集体开发方面也作了不少改进。特别是对于分布式结构非常完善的支持使其当之无愧地成为企业级开发工具的首选。
3.4 Microsoft SQL Server
在选择数据库上,考虑到我们刚好开过相应的课程,并且SQL Server的种种优势,因此决定用它来进行数据的存储和管理。它是在成熟和强大的关系模型中建立的。
(1) 全面的数据完整性保护,无论是复杂的事务支持和高级安全性,还是以用户数据库隐式部分支持用户的商业规划对象以及数据完整性保护都适用。这一点对我们网上银行的安全要求来说非常有利。
(2) 与Windows NT集成,允许在SMP(对称多处理)系统中实现彻底的线程和对称多处理,并且可集成到分布式管理环境中。由于现在几乎是Windows操作系统的天下,良好的继承环境更有利于发挥优势,分布式管理方便了我们以后的工作。
(3) 在低造价平台上性能突出,这一更是点引人注目,因为我们要考虑到最后的运行速度,而服务器的配置相对有限,所以很有优势。
(4) 一流的管理工具。
(5) 对多服务器“分布式”事务的内在支持[3]。
4 网上银行系统介绍
4.1 主要功能介绍
银行作为一个金融实体,它的产品就是它向客户提供的金融服务,而要稳定住客户,很重要的一点就是要提供客户满意的服务,什么是客户满意的服务呢?快速的信息沟通、方便的账户管理、及时的财务咨询、迅捷的资金划拨,这一切都要通过网络完成。网上银行的特征是没有分支机构,网上银行依托无边无界的因特网,不用设任何分支机构其触角就可以伸向世界的每一个角落;低廉的成本优越和高额的回报,尽管网上银行也不得不支付相当的费用在因特网上作广告,但网上银行在费用方面还是拥有优势;“三A”服务,它的功能和优势远远超出传统银行业务,无须固定的营业场所,它是一种能在任何时间(Anytime)、任何地方(Anywhere)、以任何方式(Anyhow)提供服务的银行,因此可以称之为“三A银行”。本网上银行具有银行所需业务的基本功能。任何曾经在我们这个银行办理过存款手续也就是说具有我们银行的存折的用户都可以通过互联网注册成为我们网上银行系统的用户。而且,一张存折只能注册一个网上银行用户,但是,一个网上银行用户可以同时具有多个存折的账务信息。再则,网上银行用户名具有唯一性,用户的网上银行用户名是用户进入我们系统的唯一标志。我们这个网上银行系统分成两个模块,分别是对公和对私模块。对私模块即是对个人客户模块,对公模块即是对企业客户模块。其中对私模块又包括个人客户注册,账户信息查询,历史交易明细查询,网上缴费明细查询,银行内部转账,网上缴费,跨行转账,基本信息维护,账户密码修改,网上临时挂失,收款方管理共十一个子功能;对公模块中除了以上的功能外还包括集团理财,即子公司账户明细查询,从子公司上划,从子公司下拨,子公司之间内部调拨,用子公司账户支付,代发工资等功能,具体介绍如下,其中对公对私模块都包含的功能有:
(1) 用户注册:用户通过注册界面填写必要的用户资料和存折资料后,该功能模块将用户信息进行检查,然后将正确的信息写入数据库,并将错误信息交给出错处理系统。
(2) 用户管理:通过用户管理界面更改自己的用户信息和密码。
(3) 用户挂失:用户在丢失存折后,可以在登录本系统后,通过挂失界面将自己的存折信息暂时处于无效状态,但用户需到银行办理解除挂失。
(4) 行内转账:用户可以在本行的本地或外地机构,通过该系统的同行转账界面,进行同行之间的本地或异地的转账。
(5) 跨行转账:用户可以在本行的本地或外地机构,通过该系统的跨行转账界面,进行跨行之间的本地或异地的转账。
(6) 网上缴费:用户可以通过我们的网上银行系统,向已经与我行联网的单位缴费,如电话费,水电费等,方便用户。
(7) 账户详细信息查询:用户可以查询自己账户的详细资料,如余额,账号,真实姓名等。
(8) 历史交易明细查询:用户可以查询自己的详细转账资料,了解自己的转账交易信息。
(9) 网上缴费查询:用户可以查询自己的网上缴费资料,了解自己缴费状况。
(10) 收款方管理:用户可以将自己的常用转账对象信息,包括对方姓名、账号、所属银行等存入我行的数据库,方便用户随时随地进行转账交易。
(11) 个人信息管理:用户可以通过该系统进行密码修改,账号挂失,基本信息维护等。
对公模块特有的功能的有:
(12) 子公司账户明细查询:上级公司可以通过我们的系统直接对下级公司进行查帐。
(13) 从子公司上划、下拨和互转:上级公司知道下级公司账户密码后,可以通过我们的系统,直接进行上划资金和下拨资金。
(14) 子公司账户支付:上级公司知道下级公司账户密码后,可以通过我们的系统,直接用子公司账户支付费用。
廉
信
银
行
系
统
个人客户模块
企业客户模块
信息查询
转账交易
个人信息管理
信息查询
转账交易
集团理财
账户详细信息查询
历史交易明细查询
网上缴费查询
网上缴费
内部转账
跨行转账
基本信息维护
账户密码修改
网上临时挂失
收款方管理
账户详细信息查询
历史交易明细查询
网上缴费
内部转账
跨行转账
子公司账户明细查询
从子公司上划
从子公司下拨
子公司之间内部调拨
用子公司账户支付
代发工资
(15) 代发工资:公司用户可以通过我们的系统,向员工代发工资,并且可以进行员工工资信息的修改,省去了公司按员工分别发放个人工资的麻烦,提高了公司的工作效率。
图1 廉信银行系统结构图
4.2 网上银行数据库描述
数据库设计是建立数据库及其应用系统的基础,是信息系统开发和建设的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的应用需求(信息要求和处理要求)。一个系统的好坏,很大程度上取决于数据库设计的好坏。我们的廉信网上银行系统为了管理方便,同时针对个人和企业用户对银行的需求不同,分别设立了个人表和企业表。同时为了减少以后编程负担,我编写了七个触发器来实现几乎所有的银行业务功能。具体如下:
系统管理员表:包括用户名(主键)和密码两个字段,他只是在后台使用,记录管理员信息,并通过它来登陆并进入系统。
利率表:包括账号种类(主键)、利率和更改日期三个字段。主要用来记录不同账号种类之间的利率,以及更改日期等,方便以后查询。
个人账号信息表:包括个人账号(主键)、用户姓名、账户种类(活、定)、币种、金额、开户日期、开户地址、账号当前状态八个字段。它通过账号种类与利率表相关联,已确定账号的利率。
企业账号信息表:包括企业名称、企业账号(主键)、企业代号(唯一)、账户种类、币种、金额、开户日期、开户地址、账号当前状态九个字段。该表功能与个人账号信息表相似,只是多出了企业代号字段,它通过每两位表达一级公司的编码规则判断公司级别,在集团理财中方便父子公司之间的业务联系。
个人用户信息表: 包括用户名、密码、真实姓名、证件类型、证件号码、账号、联系电话、性别共八个字段。它用来记录网上注册用户的各种基本资料,同时通过账号,同个人账号表关联,确定用户身份。
企业用户信息表:用户名、用户密码、企业账号、联系电话公司各字段。它用来记录企业用户的注册信息,通过账号和企业账号信息表关联,确定用户身份,以及判断用户具有的权限。
转账信息表:本账号、相关账号、转账目标(存、支)、发生日期公司各字段。跨行是还包括目标银行。其中转账目标是用来判断是转出还是转入资金。同时通过账号和账号信息表关联,在其账户上进行相应的修改。
缴费信息表:包括账号、缴费项目、缴费金额、缴费日期。它通过账号和交费项目来断定对哪个账户进行操作。
收款人信息表:包括用户名、收款人姓名、账号、银行名。它通过用户名和用户信息表关联,为客户提供移动通信录的功能。
企业工资信息表:包括企业账号、金额、发生日期。该表通过账号与企业账号表关联,用来记录企业工资发放情况。
企业员工信息表:包括个人账号、工资金额、企业账号。该表通过个人账号和企业账号分别同个人账号信息表以及企业账号信息表关联,判断对不同账户进行操作,同时通过工资金额判断账户资金变动数额。
表5-1 个人账号信息表
字段名
字段类型
字段长度
字段属性
描述
ZhangHao
varchar
10
主键
账号
ZhangHaoMiMa
char
8
非空
账号密码
ZhenShiXingMing
varchar
10
非空
真实姓名
ZhangHaoZhongLei
char
4
非空
账号种类
BiZhong
varchar
10
非空
币种
JinEr
float
8
非空
金额
KaiHuSheng
varchar
10
非空
开户省
KaiHuRiQi
Datetime
非空
开户日期
DangQianZhuangTai
char
10
非空
当前状态
表5-2转账信息表
字段名
字段类型
字段长度
字段属性
描述
BenZhangHao
varchar
10
非空(外键)
本账号
XiangGuanzhangHao
varchar
10
非空(外键)
相关账号
ZhuanZhangJinER
float
8
非空
转账金额
ZhuanZhangZhuangTai
varchar
4
非空(选择)
转账状态
FaShengRiQi
datetime
非空
发生日期
表5-3缴费信息表
字段名
字段类型
字段长度
字段属性
描述
JiaoFeiZhangHao
varchar
10
非空(外键)
缴费账号
JiaoFeiJinEr
float
8
非空
缴费金额
JiaoFeiXiangMu
varchar
10
非空
缴费项目
JIaoFeiRiQi
datetime
非空
缴费日期
个人缴费触发器:该触发器作用是当个人每发生一次网上缴费,在数据输入个人缴费信息表时对该账号信息表中做相应金额变动,此触发器会影响到2张表,一是个人账号信息表中的金额减少,二是所有的缴费项目都是缴到某企业的账号上的,使企业账户金额作相应的增加。
个人内部转账触发器:该触发器作用是当个人每发生一次内部转账时,对该账号信息表中做相应金额变动,通过状态字段判断个人账号信息表中资金变动增减情况。
个人跨行转账触发器:该触发器作用是当个人每发生一次跨行转账时,对该账号信息表中做相应金额变动,并通过状态字段判断个人账号信息表中资金变动增减情况。
企业缴费触发器:该触发器作用是当企业每发生一次网上缴费时对该企业账号信息表和缴费对象账号信息表中进行相应的金额变动。
企业内部转账触发器: 该触发器作用是当企业每发生一次内部转账时对相关两个企业账号信息表的金额做相应变动。
企业跨行转账触发器:该触发器作用是当企业每发生一次跨行转账时对该企业账号信息表中做相应金额变动,该触发器会影响企业账号信息表。
企业代发工资触发器:该触发器作用是当网上银行替企业代发工资时,根据员工工资表内员工所属企业编号将员工工资相加,得出企业发放工资总数,并在企业相应账户上减去该数额,然后在员工账户上增加相应的工资数。
5 网上银行后台设计思想与开发方法
5.1 设计思想
廉信网上银行系统使用Dreamwaver Mx和ASP开发客户端使用的平台,后台使用Delphi开发工具,搭建供银行内部管理员使用的管理平台。二者通过共用SQL-SERVER2000数据库实现互相关联。用户通过网络可以方便的使用网上银行提供的各种服务,而系统管理员完成对系统设置及数据库的管理和维护。银行工作人员通过系统注册获得登陆资格后,进入本系统。系统中不仅包括了网上银行前台的所有功能,而且还具有一些前台没有的管理功能。如注销账户,查询账号密码,删除历史纪录,察看所有账户信息,修改利率,添加、修改管理员信息等等。它是前台的补充和完善,并且和前台相配合构成一个完整的网上银行管理系统。网上银行的后台管理,充分利用Delphi强大的对数据库支撑功能,以SQL-SERVER数据库为依托,依照网上银行业务需求搭建。其所有的系统功能实现都要依附于后台数据库设计。考虑到我们开发小组成员的水平差异以及防止以后在编程的过程中复杂的程序容易造成系统漏洞,因此我们的后台数据库设计非常详细并且功能相当完善,做了七个触发器,几乎所有的银行转账业务都通过数据库直接实现而不要在前台进行控制,极大的方便了前台实现。在操作上,我力求简单明了,按照系统分析结果,将网上银行的各种功能划分为以下六个模块:
(1)系统管理:设置管理员用户、修改密码、注销用户
(2)账户信息管理:个人账户信息管理、企业账户信息管理、收款人管理
(3)客户注册维护:个人客户注册维护、企业客户注册维护
(4)信息查询:网上交费查询、历史交易查询、网上转账、代发工资
(5)利率管理:修改、添加、删除不同的账户种类以及利率等
(6)退出系统
5.2 实现技术详述
在具体实现上,我按照模块的划分进行了整个规划和界面设计,由于在以前自己开发的系统中没有用过MDI结构并考虑到它的种种便利,因此利用这次毕业设计的机会,我采用了这种结构。由于整个系统涉及的表比较多,因此我用了一个Data module组件,对所有的数据库信息进行统一管理和维护。为了便于使用,和避免odbc数据源作为中间者的翻译以提高速度,我采用了ADO的方式连接数据库。
首先创建了主(父)窗体和登陆子窗体,将各个模块链接在此处,方便了操作。但由于MDI结构中,主窗体必须先建立,所以我在其创建时控制它的所有功能模块都不能使用,这样,只有用户正确输入信息,并得到数据库返回信息的认证后才可恢复可用状态,同时将登陆子窗体释放。各模块功能具体实现如下:
(1) 系统管理中的设置管理员用户、修改密码、注销用户功能是通过系统管理员表来判断用户输入的客户是否存在,如已有则提示以别的名字注册,否则将数据插入数据库,并提示操作成功。同时另外两个功能都是只能对自己的信息进行,同时为了防止用户暂时离开时,别人修改自己信息,因此在进行这两项操作时都要求输入用户密码并进行判断以确定身份。
(2) 账户信息管理中涉及到的个人账户信息管理、企业账户信息管理和收款人管理三个子模块。他们共用添加、修改、删除和保存按钮,来对账户信息进行必要的管理和维护,为了防止用户输入错误,保证输入格式统一,对某些信息,采取了提供备选信息供用户选择输入的办法。为了判断具体对哪张表进行操作,我设置了一个标志符号,来进行区分,同时通过三个按钮来实现对标志符号进行状态改变的控制,并完成数据显示控件DbGrid的替换。为了显示账户的利息。我在连接账户信息表的AdoTable中添加了一个LookUp字段和计算性Calculate子段。其中查询字段通过账号种类和利率表相关联,返回账户所使用的利率。同时充分利用Delphi所提供的强大函数处理功能,将它自带的日期处理函数单元DateUtils包含在该单元文件中,利用其中的YearSpan函数计算出存款日期和当前日期的差,然后将账户金额同日期差额以及利率相乘的结果返回到前台显示。另外当账户较多时,为了查找方便,还提供了一个查询按钮,提供按账号,和按省份两种查询方式。并且在按账号查询时,为了方便用户,同时防止在账户输入格式错误的状态下错误判断账户不存在,我还编写了一段代码来保证客户输入正确账号信息,否则将会提示账号格式不正确。
(3) 客户注册维护中包括个人客户注册维护和企业客户注册维护。其大体实现方法同账户信息管理中相似,主要用来对客户在网上注册信息进行管理。它首先要求用户拥有本银行的账户,然后才能注册成为我行的网上用户,并享受网上银行所提供的服务。在这里,我在连接客户注册信息表的Table控件中用了一个LookUp字段,并以账号为外键将账号信息表内的账号密码显示在此处,使信息更完整,方便管理员察看。
(4) 信息查询模块中涵盖的功能最多,包括网上缴费查询、历史交易查询、网上转账、网上缴费,代发工资等功能。在这里除了代发工资功能外,都包括企业用户和个人用户两个方面,因此我设置了一个标志并且通过两个单选按钮来选择和控制对不同表的操作,以共用执行相同功能的添加、删除等按钮。对于转账功能来说,包括资金转入和转出,它通过数据显示控件DbGrid的PickList属性提供了选择操作。同时针对当开户账号过多时,会不方便查找,特意提供了输入账号的定位查询功能。并对误操作提供检查账号格式的功能,具体实现方法与前者大体相似。另外在网上缴费和网上转账时,为了防止用户恶意透支,特意添加了判断缴费或者转出账户的账面余额是否能够足以完成本次操作的程序代码。在程序中对账面余额和缴费金额或转出金额进行了比较,如金额不足则给出提示信息,否则实现功能。在代发工资模块中,通过员工信息表对员工所属单位和工资水平进行控制和维护,可以添加、修改和删除员工的所有信息,为员工的工资、账号以及单位变动等数据更新提供了方便的操作。同时利用员工信息表和个人账号信息表以及企业账号信息表
展开阅读全文