青海科普网构建中的数据处理研究 李安强1 王文云 2 贾海民2 ( 1. 青海师范大学计算机系 , 青海 西宁 810008 ; 2. 西宁市科学技术协会, 810001 ) 摘 要: 本文主要研究 科普网络平台构建中 数据处理技术的工作原理及技术特点,采用 PHP 作为开发工具, ASP 为应用程序, 利用 Microsoft SQL Server7.0 数据仓库系统作为数据仓库, 高效率调用数据库存储过程,创建一个交互式 网络平台 。 关键词:科普网;数据处理; PHP ;数据仓库 科普信息数据具有浓厚的时代感和现代科技气息,由声音、图像、图形、文字等多种承载媒体的信息组成,是多种形式结合在一起的综合性信息。通常科普网传输 的数据量是非常庞大的,随着代码的增多会使页面臃肿不堪,使 Web 服务器的负荷过重,造成堵塞现象。因此本系统采用服务端内置式的脚本语言 PHP ( PHP: Hypertext Preprocessor ) 作为开发工具, ASP 为应用程序, 利用 Microsoft SQL Server7.0 数据仓库系统作为数据仓库,存储和处理藏汉多媒体文字信息,其 数据库存储过程( Stored-Procedure )是一种大型数据库的成熟技术,由多个 SQL 语句和控制语句组成并被封装起来的过程,它驻留在数据库中,可以被用户应用程序调用,也可以被另一个过程或触发器调用。这样 既可以重复利用,又可以封装某些关键的操作,方便开发者,提高开发速度,同时使网站的伸缩性、安全性也得到了很大的提高。 1 科普网络平台 数据处理技术的工作原理及技术特点 本系统选用 PHP 作为主要开发工具,其主要功能是用来开发动态交互式的 Web 服务器应用程序,完成数据库的各种操作,设计含有数据库功能的网页。 利用 Microsoft SQL Server7.0 数据仓库系统作为数据仓库 , ASP 为应用程序, 浏览器直接通过 HTML( Hyper Text Markup Language) 的形式与用户交互,响应用户的请求〔 1 〕。其技术特点如下: 1.1 分布式处理 本系统采用 B/S (浏览器 / 服务器)模式,网站的客户端在执行复杂的任务,处理大而复杂的 SQL 语句时,通过使用变量和条件,它的参数被传递和返回。 把参数传递给事先编好的组件,由它们对数据库进行操作,这样就把系统内部的数据封装保护起来,也可以把事物分发到另一个组件中去处理,最后把数据库返回的结果在前端 浏览器上 显示出来,这样的模式很容易实现分布式网络处理。 1.2 实时性处理 本系统采用自动刷新与动态数据连接起来,主要有两种解决方案: 其一:如程序以 <?php……?> 作为首尾标志,则可以在开头添加函数 header (“ refresh : seconds ”); 其二:如果 php 程序被嵌入到 HTML 文件中,即被放到 <html> 和 <html> 之间,则必须在 html 文件的 <body> 和 <body> 之间添加格式: <meta http equit =“ refresh ” context =“ secods ” > 1.3 运行速度处理 在本系统网站数据库服务器中,采用一般交互式的 SQL 命令,每次执行前数据库服务器都要为其建立预编译的过程,而存储过程在第一次执行之后,经过了优化和编译好的过程,储存在高速缓存之中,在接下来的运行中可以直接在高速缓存中执行,省去了以后执行的优化和编译阶段,节省了执行过程的大量时间,使用存储过程从而加快了执行速度。 1.4 数据 负荷处理 当客户端发出执行存储过程的请求时,只有执行存储过程的命令在内部网络上传送,当它们到达数据库服务器时,运行存储过程,客户端在网上只接收返回结果或状态信息,所以使得客户机与服务器的通信量降至最小,大大减轻网络负荷。缩短了用户要求的响应时间,避免了用户枯燥的等待。 1.5 数据的安全问题处理 数据存储过程本身有很强的安全机制,只有具有相应的系统权限才能够调用相应的存储过程,或者只访问存储过程而不能够访问其中涉及的表或视图,只通过存储过程中所给出的功能来间接操作数据库。在存储过程的代码中可以包含对信息和数据的合法性检查、对业务规则要求的各种完整性检查等,这无疑给网站平台带来了很好的安全性〔 2 〕。 本项目程序编制中, PHP 、 ASP 等调用存储过程能够降低在程序开发中构造复杂 SQL 语句的难度,由于存储过程的可重用、可共享性,使得存储过程可被多处重复使用,也可以被多个用户共享,在开发中反复使用,给网站的团队开发带来了极大的方便,而且使站点更易于维护和更新。 2 系统数据存储过程的处理技术应用实例 下面以本系统用户信息发布登录模块为例,结合我们在开发工作中的一些经验来说明如何处理数据存储过程的调用。 2.1 系统环境 服务器端操作系统为 Windows NT ,采用 PHP 作为开发工具 , ASP 为应用程序 SQL SERVER7.0 为后台数据库。 2.2 相关表 Department 中保存了单位号( Dep_id )单位名称( Dep_name )和密码 (Dep_passwd) 。 2.3 实现功能 用户从下拉菜单中选择用户名称,输入密码,登录。如果有单位用户拥有指定的密码,输出参数将返回 “pass" ,否则,返回 “Invalid" 。 2.4 实例说明 ( 1 )存储过程 sp_CheckPwd ,检查用户是否输入了合法的密码,建立存储过程,可以从 Microsoft SQL Sever 程序组中启动 ISQL/w 。然后,在查询窗口中输入存储过程。 ( 2 )用户登录界面 login.asp, 使用通常的 SQL 语句和使用存储过程进行对比。 ( 3 )检验密码是否正确 Checklogin.asp ,在其中,使用定义的存储过程。 2.5 实例 (1) /* 存储过程实例 */ CREATE PROCEDURE sp_CheckPwd @CHKDepid VARCHAR(30),@CHKPass VARCHAR(30), @ISValid CHAR(8) OUTPUT AS IF EXISTS(SELECT Dep_id FROM Department WHERE Dep_id=@CHKDepid AND Dep_passwd=@CHKPass) SELECT @ISVaid="pass" ELSE SELECT @ISValid="Invalid" ( 2 ) //login.asp // 用户登录界面 <html> <head><title> 单位用户登录 </title></head> <body> <% dim rs,dept_sql set rs=server.createobject("adodb.recordset") dept_sql="select dep_id,dep_name from Department " rs.open dept_sql,conn,1,1 %> <form method="post" action="chklogin.asp" name="frmNewDepartment"> <select name=" DepartmentId " size="1"> <% do while not rs.eof response.write"<option value='"+cstr(rs("dep_id"))+"'>"+rs("dep_name")+"</option>"+chr(13)+chr(10) rs.movenext loop %> ( 3 ) //Checklogin.asp// 检验密码: <input type="password" name=" DepartmentUserPwd "> <input type="submit" name="Submit1" value=" 确定 "> <input type="reset" name="Submit2" value=" 重写 "> </form> </body> </html> The Check Result is < %=cmdTemp("RetValue")% > < % DataConn.Close % > 数据存储过程可以充分利用数据视点集中的原则,使用户把注意力集中在所关心的数据上,简化用户的数据查询操作,使不同的用户能够多角度 “ 看待 ” 同一数据,能够用存储过程建立非常复杂的查询。同时存储过程能够自动对复杂或敏感的事务进行处理,对某些表进行各种操作,可以保证这些表的数据完整性〔 3 〕 。 3 结束语 科普网络平台构建 为新世纪的科普工作带来了巨大的发展机遇并为科技交流提供了广阔的舞台。本文主要研究数据处理技术的工作原理及特点,高效率调用数据库存储过程建立一个交互式 网络平台 。但它只是网站建设技术的冰山一角,相信以 TCP/IP 协议作为基础,以 Web 为核心的应用,以开发后台数据库为支持模型的大型高效网络平台是网络发展的必然趋势。 参考文献: [1] 陈良琴.网站建设全攻略 [M] .上海:上海科学普及出版社, 2004. 28-29 [2] 陆姚远 . 计算机网络技术 [M] . 北京:清华大学出版社 , 2001.18-20 [3] 张有谊.网站建设中的数据访问 [J] .青海大学学报, 2004 , 22(4) : 86-88 ---------------- 《中国西部科技》学术 2007年7月上 ----------------
|