
3.3.5 电子商务数据库应用系统的实现技术
随着Web数据库系统的不断应用和发展,数据库系统的实现技术也日益重要。在电子商务数据库系统的实现中采用了许多新的软件技术,包括数据库性能优化技术、客户端应用开发工具的工作模型和实现技术数据库互联技术、分布数据库管理技术等。其中,数据库性能优化技术、开放的数据库互联接口和Web数据库访问技术是实际开发过程最常用的技术,下面对它们做简单的介绍。
SQL(Structured Query Language)又称结构化查询语言,是专门为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用SQL时,只需要发出“做什么”的命令,而“怎么做”则无须使用者考虑。SQL的功能强大,简单易学、使用方便,已经成为数据库操作的基础。目前,国际上所有关系数据库管理系统都采用SQL,包括DB2以及Oracle、SQL Server、Sybase、Informix等大型数据库管理系统。
SQL不仅包括查询功能,还涉及数据定义、数据操作和数据控制等三个方面功能。其中,SQL的数据定义功能是指对基表以及视图进行定义;SQL的数据操作功能是指在基表上的查询、删除、插入、修改等功能;SQL的数据控制功能是指基于基表上的完整性、安全性及并发控制功能。
SQL有两种使用方式:一种是联机交互方式,在此方式下,SQL可以独立使用(称为自含式语言);另一种是嵌入式方式,在这种方式下,以某些高级程序设计语言(如COBOL、C等)为宿主语言,而将SQL嵌入其中依附于宿主语言(称为嵌入式语言)。
不管采用哪种使用方式,SQL的基本语法结构都不变,只是在嵌入式结构中增加若干语句以建立宿主语言与SQL之间的联系。关于SQL后面有专门的章节介绍。
在一个包括多个服务器和大量用户的C/S结构的数据库系统中,来自不同厂商的客户软件以及用户开发的客户应用要访问不同厂商的服务器中的数据,这些数据可能存在于不同厂商的关系数据库、非关系数据库中。要对这些数据进行透明的访问,就需要开放的访问接口。开放的数据库互联接口中,ODBC、JDBC是两种使用最广泛的接口。
ODBC是一种用于访问数据库的统一界面标准,由微软公司于1991年年底颁布,在很短的时间内被数据库届广泛接受,成为事实上的工业标准。
ODBC实际上是一个数据库访问函数库,可以使应用程序直接操作数据库的数据。OD-BC是基于SQL的,是一种在SQL和应用界面之间的标准接口,它解决了嵌入式SQL接口非规范核心问题,免除了应用软件随数据库的改变而改变的麻烦。
JDBC是Sun Microsystems公司的JavaSoft颁布提出的Java应用对数据库访问的API标准。JDBC基于X/OpenSQL调用级接口(CLI),这是ODBC的基础。JDBC保证JDBCAPI可以在其他通用SQL级的API(包括ODBC)之上实现,这表明所有支持ODBC的数据库不加任何修改就能够与JDBC协同工作。
在C/S结构的数据库系统中,ODBC和JDBC标准使得不同的数据源可以提供统一的数据库访问界面。客户端应用通过ODBC接口可以实现对不同数据源的访问。
在Internet中,Web用户和发布Web的服务器通过HTTP协议建立联系。Web用户向服务器发送一个包含URL题头的字段和其他用户数据的HTTP请求,而服务器则返回包含请求内容的HTTP响应。
Web服务器与数据库服务器之间的通信通常有两种解决方案:一种是Web服务器端提供中间件,用以连接Web服务器与数据库服务器;另一种是把应用程序下载到客户端直接访问数据库。后一种方法在程序的编写、调试上较为烦琐,网络安全也难以保证。相比较而言,中间件技术更具有优势,而且代表着一种发展方向。
中间件负责管理Web服务器和数据库之间的通信并提供相应服务,它可以依据Web服务器提出的请求对数据库进行操作,把结果以超文本的形式输出,然后由Web服务器将此页面返回到Web浏览器,从而把数据库信息提供给用户。这里简单介绍其中部分访问技术。
(1)CGI.
CGI即公共网关接口,是最早实现与数据库接口的方法之一,它规定了浏览器、Web服务器、数据库服务器和外部应用程序之间数据交换的标准接口。
CGI程序设计可以使用诸如C++、Visual Basic等流行编程语言,除程序设计的输入/输出部分外,CGI程序的设计与一般的程序设计一样,因此采用CGI是实现互联网用户与Web服务器信息交互的一种快速简洁的方案。
基于CGI的接口应用较简单、灵活,开发工具丰富,功能范围广,技术也相对成熟,但是用它编程比较复杂,程序的编译、连接是与某个具体的数据库管理系统相联系的。也就是说,CGI的平台无关性差,尤其对功能强大的网络数据库的应用显得有些力不从心。
(2)Web API.
Web服务器提供商为扩展其服务器的性能,都各自开发API应用程序接口来取代CGI。目前最流行的两种API分别是ISAPI(Internet Server Application Programming Interface)和NSAPI(Netscape Server Application Programming Interface)。这两种接口技术可以让用户以标准方式编写与Web服务器交互的应用程序。现在Netscape宣布其NSAPI也支持ISAPI标准,这意味着只有一种Web API标准了。
API由于是由各厂商与各自的服务器绑定而各自开发的,所以兼容性较差,仅适用于Windows系统。此外,API的交互性差且开发难度大,从而使开发人员望而却步。
(3)ASP.
由于Web API开发的难度大,于是微软推出ASP技术。它的出现使动态交互式Web网站的创建变得轻松容易起来,只需要几行脚本语言就能将后台数据库信息发布到WWW网站上去,在编程和网页脚本的可读性方面大大优于传统接口技术。
ASP是一个服务器端的命令执行环境,它完全摆脱了CGI的局限性,使用户可以轻松使用HTML、脚本语言和ActiveX组件创建可靠的、功能强大的、与平台无关的Web应用系统。它不但可以进行复杂的数据库操作,而且生成的页面具有很强的交互性,并允许用户方便地控制和管理数据。
(4)JSP.
JSP(Java Server Pages)是由Sun Microsystem公司于1999年6月推出的新技术,是基于Java Servlet以及整个Java体系的Web开发技术。它是由Sun Microsystems公司倡导的、许多公司参与建立的一种动态网页访问技术标准。利用这一技术可以建立先进的、安全的和跨平台的动态网站。
在传统的网页HTML文件中加入Java程序片段(Scriptlet)和JSP标记,就构成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片断,然后将执行结果以HTML格式返回给用户。程序片段可以操作数据库等相关功能。所有程序操作都在服务器端执行,网络上传送客户端的仅是得到的结果,对用户浏览器的要求很低,可以实现无Plugin、无ActiveX、无Java Applet,甚至无Frame。
总的来说,JSP和微软的ASP在技术方面有许多相似之处。两者都是为基于Web应用服务实现动态交互网页制作提供的技术环境支持,两者都能够为程序开发人员提供实现应用程序的编制与自带组件设计网页从逻辑上分离的技术,而且两者都能替代CGI使网站建设与发展变得较为简单和快捷。当然,它们也存在不同之处,其中最本质的区别在于:两者来源于不同的技术规范组织,其实现的基础是Web服务器平台要求不相同。ASP是基于Windows平台的技术,而Java和JSP是跨平台的。
在设计电子商务数据库应用系统时,往往需要根据实际的应用规模、已有的软硬件投资和将来可能的发展等多种因素来综合考虑。