随着网络的发展,网络技术中的重要组成部分——Web数据库也逐渐显示出它的重要性。网络财务与Web数据库紧密联系,伴随着近几年有关网络财务系统工程研究与实践在我国的兴起,Web数据库技术已经成为网络财务系统建设中不可或缺的重要技术。在网络财务系统中,需要将Web技术与数据库技术有机地结合在一起,充分利用数据库系统的信息资源,形成一个能在Internet/Intranet上组织管理信息资源并能迅速检索、查询的网络财务系统。这种Web网页与数据库系统的连接及其他们之间的交互,亦即Web数据库的存取技术已成为基于Web的数据库系统开发中所面临的重要课题。
5.3.1Web数据库简介
5.3.1.1 什么是Web数据库
数据库中存储的资料可以通过多种渠道加以利用:在单机上供个人使用的数据库称为单用户数据库;在局域网上供小范围的多人使用的数据库称为多用户数据库;通过Internet/Intranet等在非常广大的范围内供用户使用的数据库就是Web数据库。
5.3.1.2 Web数据库的优点
(1)使用方便数据库应用一般是采用客户机/服务器(C/S)模式,有一个客户端和一个服务器端,客户端向服务器端发出资料请求,服务器响应并处理请求,把处理的结果再回送到发出请求的客户端。传统的数据库应用需要为每一个应用开发一个客户端,然后再在每一个客户端安装,还要加以培训才能使用;而Web数据库的客户端由浏览器担任,不需要单独开发也不需要培训。
(2)开发统一传统的数据库应用一般是用VB、VC、Power Bui1der、De1phi等开发,这些开发工具各有各的标准和方法,不适合开发Web数据库;Web数据库的开发使用统一标准HTML,任何人开发的Web数据库都要符合这个标准。这就使得Web数据库具有了强大的适应性。
(3)跨平台支持传统数据库应用一般要针对每一个操作系统开发一个专用版本,甚至要为不同的硬件平台开发不同的版本;对于Web数据库,只要在某个平台上具有符合HTML标准的浏览器就可以在所有的操作系统和硬件平台上使用同一个版本的Web数据库。
5.3.1.3 Web数据库的模式
由于Web数据库的特殊要求,传统的客户机/服务器(C/S)模式的那种为客户机安装前端应用程序的方法已不再现实,这是因为客户机的工作环境是千变万化的,工作地点也不同。于是基于浏览器/服务器(B/S)模式的系统应运而生,它继承了C/S模式的优点,不受具体操作系统和硬件的制约。
目前应用广泛的B/S模式系统主要是通过浏览器以超文本的形式向Web服务器提出访问数据库的请求,Web服务器接受客户请求后,激活对应的应用程序将超文本HTML语言转化为SQL语言,并将这个请求交给数据库,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理结果集返回给应用程序,应用程序再将结果集转化为HTML,并由Web服务器转发给请求方的浏览器。
在B/S模式中,客户端的标准配置是浏览器,如Internet Exp1orer;业务处理功能从C/S代码中彻底分离出来,由独立的应用服务器处理,Web服务器成为应用处理的标准配置;数据处理由数据库服务器完成。B/S模式是三层分布结构,即Web浏览器——Web服务器——数据库服务器。
5.3.1.4 Web上的数据库
如果你想构造有用的、用户界面良好的数据库应用程序,除了使用数据库厂商提供的工具,或自己独立编程之外,能靠Web浏览器和填表就完成用户界面的构造任务无疑会受到广泛的欢迎。
利用Web访问数据库的过程如下。
用户通过填写表格(以HTML创建)来执行查询和数据请求。他们可以通过菜单的选择,单击按钮,填写数据来输入进行后台数据库查询所需的关键字。
CGI脚本程序把输入到表格的信息提取出来,并把它组织成为有效的SQL查询,随后CGI脚本将其发送到数据库后台。
同一个CGI脚本程序在数据库引擎对数据进行处理之后接收结果。脚本程序会把结果以HTML格式传回到用户的Web浏览器上,以显示给用户阅读。
(1)ORACLE数据库应用程序网关ORACLE的Web系统是一个范围广泛的程序包,包括ORACLE数据库服务器,一个增强的HttpD服务器,Web浏览器,一个称为Web Agent的用户开发软件和称为Web Listener的连接件(中间件)。
(2)SYBASE数据库应用程序网关SYBASE公司通过对HTML的专用扩展来实现Web对数据库的访问。产品名称为Web。SQL,它允许Web页面包含有可指向特殊HTS格式文件的超级链接,并直接将它存储在SYBASE数据库中。
(3)INFORMIX应用程序网关INFORMIX有两种Web接口工具:INFORMIX-ESQL/C和INFORMIX-4GL,当然你必须有基本的INFORMIX数据库应用程序。所有这两个工具都是基于CGI标准的。
(4)Microsoft的Web中间件产品用Microsoft公司的IIS和ODBC,可以:
1)创建包含有数据库中信息的Web页面。
2)从Web页面基于用户输入插入、修改和删除数据库的信息。
3)执行其他SQL命令。
5.3.2 基于Web的动态数据库访问技术
目前,实现Web数据库的访问一般可以采用两种做法:一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器;另一种是把应用程序下载到客户端,在客户端直接访问数据库。
中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接访问数据库或调用外部程序或利用脚本代码来访问数据库,因此它可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面,然后通过Web服务器返回给用户浏览器。最基本的中间件技术有通用网关接口(CGI)和服务器应用编程接口(Server API)。
除了在Web服务器端采用中间件以外,还可以通过Web浏览器把应用程序下载到客户端运行,在客户端直接访问数据库。客户端应用包括:Java App1et、Active X、P1ug-in等,其中最典型的就是Java App1et。利用Java App1et可以方便地实现与用户的交互,还能提供丰富的图形功能和声音、视频等多媒体功能。特别是由于Java是一种与平台无关的编程语言,因而具有极强的可移植性。在Java App1et中访问数据库,可以使用JDBC(Java Database Connectivity)技术,通过JDBC提供的API实现对分布在网上的不同数据库的各种操作。另外还可以把对数据库的访问转交给专用服务器来完成,Java App1et通过与专用服务器的Socket通信来传递数据库操作的请求和结果。
一般情况下,当我们通过浏览器浏览发布财务信息的网页,进入信息查询的服务页,在搜索下拉列表中选择了“单位”后,便会出现“中文系”、“数学系”等单位,在其后的“单位名称”下拉列表中选择了“数学系”,点击“确定”,一会儿,在下面的空表格中,就出现了单位的经费项目、指标分配、支出明细等我们希望了解的信息。这种服务是如何实现的呢?其实,这就是动态Web数据库应用的一个简单例子。
下面将重点讨论利用Web服务器端提供的中间件连接Web服务器和数据库服务器的几种方法,这也是网络财务系统设计中所使用的动态数据库访问技术。
5.3.2.1 CGI
CGI(Common Gateway Interface,公共网关接口)是外部应用程序与Web服务器间的接口标准,利用它可以将数据库与Word Wide Web集成,实现动态Web数据库应用。
,CGI应用的流程为:客户端通过IE等浏览器在表格中输入数据库查询条件(或其他要求),并提交给Web服务器;服务器将查询条件及客户信息置于标准输入或一组环境变量中,并运行相应的CGI程序;CGI程序依标准输入或环境变量向数据库服务器提出查询要求,执行相应的SQL语句;数据库服务器返回结果给Web服务器,并通过HTML页面返回客户浏览器。
CGI程序用诸如VB、C/C++、PERL等多种语言可以编写,且因CGI比较通用,使得其在DOS、Windows 9X、Windows NT、UNIX等操作系统上皆可运行,几乎所有的Web服务器都支持CGI。但是CGI程序的开发需要一些底层开发经验,故难度加大。同时,CGI一般都为一个独立的可执行程序,每当客户端输入一个请求时,就必须激活一个CGI进程,这样用户的增加必然会大大剥夺系统资源,使得Web服务器的效能降低。
CGI可以说是一种最通用的动态Web数据库应用方式,发展也最为成熟,历史也最为悠久,并且也已经得到广泛的应用,但其效率低、编程难一直是最大困扰。
5.3.2.2 JDBC
JDBC(Java Database Connectivity)是Java soft 公司制定的Java 与数据库的互联API(App1ication Programming Interface,应用程序接口),支持SQL。由于其在不同数据库层次上提供了一个统一的接口,故使得Java 程序员轻松实现了动态Web数据库应用。
还是说说Java 吧!
Java 是SUN的一种面向对象的编程语言,具有安全、简单、自动下载到网络等优点,是近年最火的网络编程工具之一,被广泛应用于Internet/Intranet。
JDBC有两个层次,一个是面向程序员的JDBC API,一个是底层的JDBC Diver API。JDBC API在Java。SQL 包中定义,包括JDBC API用到的类、接口与方法;而JDBC Diver API则用来解释执行SQL语句并返回结果。
JDBC应用的流程为:用户通过IE等浏览器下载Web服务器上的含Java App1et的HTML页面;然后调用了JDBC的Java App1et与数据库相连;并通过JDBC API访问JDBC Diver API,对数据库进行操作,返回结果。
总之,JDBC是一种十分适合于Java 程序员的动态Web数据库应用方式,也由于Java 的广泛应用而被大大推广,而且它的多平台支持、安全性也令人神往,但速度不算很快。
5.3.2.3 IDC
IDC(Internet Database Connector,Internet数据库连接器)是Microsoft提供的一个API,实质上是基于Microsoft的Web服务器IIS(Internet Information Server)的一个ISAPI(Internet Server API)应用程序HTTPODBC。d11.它可通过ODBC接口访问各种各样的数据库。
IDC使用两种文件来控制数据库操作和返回HTML页面。一种是。IDC,它包括连接ODBC资料源的信息、需执行的SQL语句(如SELECT*FROM student-db等)和。htx文件名及路径。另一种是。htx,它是HTML扩展文件,依IDC执行的SQL语句的查询结果构造出HTML文件返回用户浏览器。
IDC应用的流程为:用户通过IE等浏览器发出查询要求,Web服务器IIS接收;IIS装载HTTPODBC。dll,并给予查询要求;HTTPODBC。dll读取IDC文件,形成完整的SQL语句,并装载ODBC驱动程序,与数据库连接,执行查询;HTTPODBC。dll读IDC中指定路径指定的。htx 文件,生成包括查询结果的HTML文档,并返回IIS,再返回用户浏览器。
IDC是针对CGI的低效率而提出的一种基于ISAPI的动态Web数据库应用技术。因其以动态链接库(DLL)的形式存在,在启动时被加入内存,和Web服务器处于同一进程空间,故占用系统资源少、执行效率高。但由于其基于Microsoft的IIS,故跨平台性相当差。另外,IDC的编程相当容易,只需掌握一定的HTML与SQL语言就可设计出良好的。htx和。IDC文件,适用于简单的Web数据库应用开发。
5.3.2.4 ASP
ASP(Active Server Pages,动态服务器页面)是基于Microsoft Windows NT4.0和IIS3.0/4.0或Personal Web Server on Win9X的开放式脚本开发环境,是新一代动态Web数据库应用开发方案。利用它可以实现复杂的Web应用,开发动态、高效、交互的Web服务器端应用程序。它有如下特点。
(1)完全与HTML相融合,因此使开发变得相当容易,而且灵活性得以提高。
(2)ASP能利用任何脚本语言,如VBScript(默认脚本语言)和Java Script等。
(3)ASP的制作工具可用纯文本编辑器(如Notepad),但专业开发人员一般用Microsoft 的Visua1 InterDev6.0.
(4)ASP是文本文件,扩展名为。ASP,包括文本、HTML标记(如和等)和ASP文件特有的脚本语句(用)括起来)。
(5)支持面向对象。
(6)利用ASP开发出的脚本程序运行在服务器端,所以它对浏览器的种类没有限制,而且也防止了原程序被偷看,提高了安全性。
(7)支持多用户、多线程。
(8)ASP采用ADO(ActiveX Data Objects)组件,通过ODBC驱动程序连接数据库。
ASP应用的流程为:IE等浏览器向Web服务器递交查询,申请访问一个ASP文件;Web服务器调用ASP文件并执行;用ADO组件通过ODBC访问数据库,将结果传递到用户浏览器。
ASP是一种十分具有发展前途的动态Web数据库应用技术。在许多网站就时常可见。ASP的URL,而且也有许多用ASP建立的聊天室。
ASP提供了五个内建对象:Request、Response、Sever、Session和App1ication,相当于已经封装好的类,它们给客户访问各种资源提供了极大的方便。