WWW对大量数据查询的一种实现_第1页
WWW对大量数据查询的一种实现_第2页
WWW对大量数据查询的一种实现_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WWW对大量数据查询的一种实现

摘要企业通过WWW服务和数据库技术相结合的办法,构建一种三层客户端/服务器的体系结构,用户通过INTERNET浏览企业信息,但是当浏览大量数据库数据时,网络连接常因速度缓慢或因超时而中断。本文介绍了WWW数据库访问技术,通过对各种技术进行分析和比较,针对新华书店发行集团网站设计的需求,采用ASP技术实现数据的分页传输。关键词ASP,ADO,三层体系结构,客户端/服务器,分页目前,大多数企业通过WWW服务和数据库技术相结合的办法,构建一种三层客户端/服务器的体系结构,即客户端浏览器/中间服务器(WEB服务器)/数据库服务器(B/W/D),利用INTERNET向世界各地发布企业的商业信息。用户为了获得企业的商品信息,通过浏览器访问企业的网站,某些情况下,用户所需的信息量巨大,此时企业的网页传输时间漫长或连接超时,用户因此放弃浏览信息,给企业造成一定的经济损失,这当然不是企业所希望的。为了解决这种大数据量的发布问题,首先了解一下三层体系结构是怎样处理数据库数据的。1.

三层体系结构的数据库访问技术一种通用的三层客户端/服务器体系结构如下图1所示,这种体系结构与传统的二层C/S结构比较,最大的优点就是将网络通信和数据库操作分离开来,并在客户端和WEB服务器间使用多路复用技术,减轻了数据库服务器CPU的负载,加快数据的处理能力。图1三层体系结构在开发基于WWW的数据库应用中,关键技术之一在于WEB服务器与数据库服务器之间的连接技术。目前,数据库连接技术可归纳为以下几个方面。

基于CGI(通用网关接口)规范编写的CGI程序,该程序既要处理WEB服务器与浏览器之间的信息传输,又要处理WEB服务器与数据库的连接、查询和基于查询结果的HTML页面的产生。

利用API(应用程序接口)对WEB服务器的功能进行扩展,这种方法较灵活,但编程人员需具有一定的编程技巧,对API详细了解,以及对C++等语言的熟练掌握,因此开发周期长,成本较高。目前较流行的API有MICROSOFT公司的ISAPI和NETSCAPE公司的NSAPI。

利用JDBC进行数据库连接,采用JAVA语言进行编程,由于JAVA具有较为严格的安全机制,同时它实现了跨平台性,因此它是一种较为热门的技术,但JAVA与C++相似,开发效率不是很理想。

利用ASP(ACTIVESERVERPAGES)技术,ASP技术基于微软的DCOM(分布式COM)标准,是微软公司提供的一种服务器端脚本支持环境,它通过ADO(ACTIVEXDATAOBJECT)控件的方式来处理与数据库的连接。由于ASP技术开发周期短,成本低,对控件的支持可以开发出较为理想的应用,所以,ASP得到广泛的应用。ASP文件是以.asp为扩展名的文本文件,这个文本文件可以包括下列部分:文本、HTML标记、ASP脚本命令。ASP文件存放在WEB服务器相应的目录中,当客户浏览器从WEB服务器上请求.asp文件时,ASP脚本开始运行,将运行结果和.asp中的静态部分组合成标准的HTML格式传输给客户端浏览器。ASP对数据库的访问是通过ADO对象来实现的,它把数据库查询结果放在HTML页中传给浏览器,过程如下图2示。鉴于ASP的优点,采用它来解决大容量数据库的访问。图2.asp文件处理过程2.

问题的提出前面已经提到,客户端访问企业网站时从数据库中查询出大量数据传送给客户端,易造成连接超时而中断传输。作者在开发某新华书店发行集团网站中就遇到类似的情况,由于数据库中书目表记录多达6万多条,而在发行行业中有一种分类法称为十大类分类法,平均每类书目达五六千种。这样,当各地分销商查询某一类书目时,在服务器端采用ASP技术,将查询结果存于ADO对象库的RECORDSET对象中,然后将查询结果生成HTML格式传输给分销商的浏览器。我们可以计算一下,每条记录长度为250字节,查询一类书目就需至少传输250*5000即1250K字节的数据,通常情况下,网络会因超时而中止连接。因此,能否解决这种情况,关系到企业网站的生存,对其他类似情况也具有实际借鉴意义。3.

实际解决方案在新华书店发行集团的网站开发中,一方面为了避免由于数据整体传送时间过长而导致的断连,另一方面为了满足用户浏览数据的局部性要求,故将数据化整为零,采用分页技术来加快数据的传输。在访问WEB服务器时,有两个因素限制了网页的连接时间:一是数据库的查询操作,另一个是网络传输的数据量。在数据库中的查询,可以通过建立索引来解决,例如,对前面提到的书目表按十大类字段进行索引,这样,大大加快了数据库查询速度。为了减少网络传输数据量,采用分页传输的技术,例如,客户端查询出五千多条记录可以一次仅传输二十条记录,这样,加快网页的连接时间就不会因超时而中断。分页技术用onepage.asp脚本实现部分代码如下:setConn=Server.CreateObject("adodb.connection")‘连接ODBCConn.Open"xhsd",”sa”,”hxrjb1”

.‘生成sql语句

.setRs=Server.CreateObject("adodb.recordset")‘查询结果存于RsRs.Opensql,Connsetsession("Rs")=Rs首先,通过ASP的内置对象SERVER创建一CONNECTION对象conn,并将其与指定的数据库关联,通过该对象的open方法打开。接着,可根据系统的实际需求,构造满足所需数据的SQL语句,然后再通过SERVER对象创建一RecordSet对象Rs,并由Rs的方法open取得数据库记录,同时将Rs保存在Session中,以供其他页面使用。为了计算数据记录分多少页,必须先定义每页显示的记录数和记录的总数。代码中使用变量Session(“PageSize”)标志每页记录数,Session(“PageCount”)标志分页数。下面一段代码功能为显示某一页的记录,这一段代码为分页显示的核心代码。Rs.MoveFirstRs.Move(1)*Session(“PageSize“)fori=1toSession(“PageSize“)Response.Write"<tr>"forj=0tors.Fields.Count-1

Response.Write"<td>"&rs.Fields(j).Value&"</td>"nextResponse.Write"</tr>"Rs.MoveNextifRs.EOFthen

exitforendifnextResponse.Write"</table></center>"Response.Write"<p><center>"代码通过对象Rs的方法Move将记录指向由page确定的那一页的第一条记录,然后用循环语句依次列出每条记录。为了定位在某一页,必须使用一参数将页码信息传给服务器,此处,使用带参数的超级链接来实现。具体代码如下:ifpage<>1thenResponse.Write"<ahref=’onepage.asp?page=1’>第一页</a>"Response.Write"<ahref=’onepage.asp?page="&(1)&"’>上一页</a>"endififpage<>Session(“PageCount”)thenResponse.Write"<ahref=’onepage.asp?page="&(page+1)&"’>下一页</a>"Response.Write"<ahref=’onepage.asp?page="&Session(“PageCount”)&"’>最后一页</a>"endifResponse.Write"</center></p>"如果当前页是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论