新闻资讯
看你所看,想你所想

Web资料库

Web资料库

Web资料库

Web资料库指在网际网路中以Web查询接口方式访问的资料库资源。促进Internet发展的因素之一就是Web技术。由静态网页技术的HTML到动态网页技术的CGI、ASP、PHP、JSP等,Web技术经历了一个重要的变革过程。Web已经不再局限于仅仅由静态网页提供信息服务,而改变为动态的网页,可提供互动式的信息查询服务,使信息资料库服务成为了可能。Web资料库就是将资料库技术与Web技术融合在一起,使资料库系统成为Web的重要有机组成部分,从而实现资料库与网路技术的无缝结合。这一结合不仅把Web与资料库的所有优势集合在了一起,而且充分利用了大量已有资料库的信息资源。Web资料库由资料库伺服器(Database Server)、中间件(Middle Ware)、Web伺服器(Web Server)、浏览器(Browser)4部分组成。

它的工作过程可简单地描述成:用户通过浏览器端的操作界面以互动的方式经由Web伺服器来访问资料库。用户向资料库提交的信息以及资料库返回给用户的信息都是以网页的形式显示。

基本介绍

  • 中文名:Web资料库
  • 特点:提供一个或多个领域的数据记录
  • 性能:为用户提供多个Web资料库资源
  • 性质:深度Web的一种资源形势

原理与步骤

全球资讯网简称为Web。Web可以描述为在Internet上运行的、全球的、互动的、动态的、跨平台的、分散式的、图形化的超文本信息系统。
1.Web的工作原理
Web是伴随着Internet技术而产生的。在计算机网路中,对于提供Web服务的计算机称为Web伺服器。Web採用浏览器/伺服器的工作方式。每个Web伺服器上都放置着大量的Web信息。Web信息的基本单位是Web页(网页),多个网页组成了一个Web节点。每个Web节点的起始页称为“主页”,且拥有一个URL地址(统一资源定位地址)。Web节点之间及网页之间都是以超文本结构(非线性的网状结构)来进行组织的。
2.Web的工作步骤
Web的工作步骤如下。
(1)用户打开客户端计算机中的浏览器软体(例如Internet Explorer)。
(2)用户输入要启动的Web主页的URL地址,浏览器将生成一个HTTP请求。
(3)浏览器连线到指定的Web伺服器,并传送HTTP请求。
(4)Web伺服器接到HTTP请求,根据请求的内容不同作相应的处理,再将网页以HTML档案格式发回给浏览器。
(5)浏览器将网页显示到萤幕上。
WWW世界中的标记语言
HTML语言
HTML(Hypertext Markup Language,超文本标记语言)是创建网页的计算机语言。所谓网页实际上就是一个HTML文档。文档内容由文本和HTML标记组成。HTML文档的扩展名就是.html或.htm。浏览器负责解释HTML文档中的标记,并将HTML文档显示成网页。
(1)HTML标记
HTML标记的作用是告诉浏览器网页的结构和格式。每一个标记用尖括弧<>括起来。大多数标记都有一个开始标记和一个结束标记。标记不分大小写。多数标记都带有自己的属性。例如字型标记<FONT>有FACE、COLOR、SIZE等属性:FACE定义字型;COLOR定义字型的颜色;SIZE定义字型的大小。
使用格式:<FONT FACE= SONG SIZE=3 COLOR=RED > BEIJING </FONT>。
网页中有很多文本连结和图片连结。连结,又被称为超连结,用于连结到WWW全球资讯网中的其他网页上。在HTML文档中表示超连结的标记是<A>,通过属性HREF指出连结的网页地址URL。
(2)HTML程式
HTML程式必须以<HTML>标记开始,以</HTML>标记结束。在<HTML>和</HTML>标记之间主要由两部分组成:档案头和档案体。档案头用标记<HEAD> </HEAD>来标识,档案体用标记<BODY></BODY>来标识。在档案的头部通常包含整个网页的一些信息。例如<TITLE></TITLE>标记是用来说明网页的名称;<META></META>标记是用来说明网页的其他信息,如设计者姓名和版权资讯等。所有在浏览器中要显示的内容称为网页的主体,必须放在<BODY></BODY>标记中。下面给出的是一个空网页的HTML程式。
<HTML>
<HEAD>
<TITLE>(在此标记中写网页的标题)</TITLE>
</HEAD>
<BODY>
(在此标记中写网页的内容)
</BODY>
</HTML>
(3)HTML规範
HTML规範又称为HTML标準,它总在不断地发展。每一新版本的出现,HTML都会增加新的特性和内容。
在不同的浏览器中,网页的显示效果可能会有所不同。每一个浏览器都使用自己独特的方式解释HTML文档中的标记,并且多数浏览器不完全支持HTML的所有特性。因为,像Microsoft和Netscape公司在HTML标準上又开发了一些特有的HTML标记和属性,称之为HTML的扩展。这些标记和属性只被他们自己的浏览器所识别,不可能被其他公司的浏览器识别。如果浏览器不能识别HTML文档中的标记,则会忽略这个标记。
(4)HTML程式的编辑环境与运行环境
HTML文档是一个普通的文本档案(ASCII),不包含任何与平台、程式有关的信息。因此HTML文档可以利用任何文本编辑器来方便地生成。要注意的是HTML文档的扩展名必须是.html或.htm。运行HTML文档可以在任何浏览器下进行,并可在浏览器上查看网页的HTML原始码。
关于HTML语言中标记的种类与使用方法将会在第5章中更详细地进行介绍。
可扩展标记语言(XML)
HTML是Web上的通用语言,随着Internet的深入人心,WWW上的Web档案日益複杂化、多样化,人们开始感到了HTML这种固定格式的标记语言的不足。1996年W3C开始对HTML的后续语言进行研究,并于1998年正式推出了XML(Extensible Markup Language,可扩展标记语言)。在设计网页时,XML提供了比HTML更灵活的方法。
(1)XML语言的特点
XML是国际组织W3C为适应WWW的套用,将SGML (Standard Generalized Markup Language)标準进行简化形成的元标记语言。简单地说,XML是使用标记来描述内容或与内容相关的形式信息的通用语言。一个XML文档由标记和字元数据组成。
而作为元标记语言,XML不再使标记固定,允许网页的设计者定义数量不限的标记来描述内容,同时还允许设计者创建自己的使用规则。
(2)XML的DTD
DTD(Document Type Definition,文档类型定义)是一组套用在XML文档中的自定义标记语言的技术规範。DTD中定义了标记的含义及关于标记的语法规则。语法规则中确定了在XML文档中使用哪些标记符,它们应该按什幺次序出现,标记符之间如何 嵌套,哪些标记符有属性等等。DTD可以包含在它所描述的XML文档中,但通常它是一份单独的文档或者一系列文档。作为外部档案可通过URL连结,被不同的XML文档 共享。
XML把DTD的定义权开放,不同行业可以根据自己的实际需求定义描述内容的DTD,以适应本行业内部的信息交流和存档需要。因此,适合于不同行业、不同平台的标记语言大批涌现。
DTD定义的基本格式是:<!DOCTYPE 根元素[……规则……]>。其中的规则包括:元素声明ELEMENT,属性声明ATTLIST,实体声明ENTITY,等。通常出版发行业描述图书的信息需要有:书号、书名、作者、出版社、出版日期等,那幺下面给出的便是为描述图书信息而制定的一个DTD和与它对应的XML文档。
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE BookInformation [
<!ELEMENT BookInformation ((Book)+)>
<!ELEMENT Book(BookNumber, BookName, Writer, BookConcern, PublishingTime)>
<!ELEMENT BookNumber (#PCDATA)>
<!ELEMENT BookName (#PCDATA)>
<!ELEMENT Writer (#PCDATA)>
<!ELEMENT BookConcern (#PCDATA)>
<!ELEMENT PublishingTime(year, month)>
<!ELEMENT year(#PCDATA)>
<!ELEMENT month (#PCDATA)>
]>
<BookInformation>
<Book>
<BookNumber>ISBN0001</BookNumber>
<BookName>XML3.0技术内幕</BookName>
<Writer>John</Writer>
<BookConcern>清华大学出版社</BookConcern>
<PublishingTime>
<year>2001</year>
<month>8</month>
</PublishingTime>
</Book>
<Book>
另一本书信息省略
</Book>
</BookInformation>
不难看出,在XML的程式清单中使用了具有意义的标记,如<BookName>、<Writer>和<PublishingTime>等。这种用法的优点是:标记具有含义,源码易于阅读理解;其次是处理程式可以根据文档类型定义来验证XML文档是否合法。
(3)XML的CSS与XSL
强调内容描述与形式描述的分离,一方面可以使XML档案的编写者更集中精力于数据本身,而不受显示方式的细节影响;另一方面允许为相同的数据定义不同的显示方式,从而适合于不同套用、不同媒体,使XML数据得到最大程度的重用。XML文档数据的显示形式是通过样式单定义的。CSS(Cascading Style Sheets)是XML使用的一种标準的级联样式单,XSL(Extensible Style Language)则是可扩展的样式语言。
由于XML允许用户创建任何所需的标记,而通用浏览器却既无法预期用户标记的意义,又无法为显示这些标记而提供规则,因此用户必须为自己创建的XML文档编写样式单,样式单可以实现共享。
浏览器对一个XML文档的处理过程是,首先去关联它所指定的样式单档案,如果该样式单是一个XSL档案,则按照规定对XML数据进行转换然后再显示,XSL本身也是基于XML语言的,可以将XML转化为HTML后再显示。如果该样式单是一个CSS档案,浏览器就会按照样式单的规定给每个标记赋予一组样式后再显示。

访问技术

Web资料库访问技术通常是通过三层结构来实现的。目前建立与Web资料库连线访问的技术方法可归纳为CGI技术,ODBC技术和ASP、JSP、PHP技术。
CGI技术
CGI(Common Gateway Interface,通用网关界面)是一种Web伺服器上运行的基于Web浏览器输入程式的方法,是最早的访问资料库的解决方案。CGI程式可以建立网页与资料库之间的连线,将用户的查询要求转换成资料库的查询命令,然后将查询结果通过网页返回给用户。
CGI程式需要通过一个接口才能访问资料库。这种接口多种多样,资料库系统对CGI程式提供了各种资料库接口如Perl、C/C++、VB等。为了使用各种资料库系统,CGI程式支持ODBC方式,通过ODBC接口访问资料库。
ODBC技术
ODBC(Open Database Connectivity,开放资料库互接)是一种使用SQL的应用程式接口(API)。ODBC最显着的优点就是它生成的程式与资料库系统无关,为程式设计师方便地编写访问各种DBMS的资料库应用程式提供了一个统一接口,使应用程式和资料库源之间完成数据交换。ODBC的内部结构为4层:应用程式层、驱动程式管理器层、驱动程式层、数据源层。它们之间的关係如图1-5所示。由于ODBC适用于不同的资料库产品,因此许多伺服器扩展程式都使用了包含ODBC层的系统结构。
Web伺服器通过ODBC资料库驱动程式向资料库系统发出SQL请求,资料库系统接收到的是标準SQL查询语句,并将执行后的查询结果再通过ODBC传回Web伺服器,Web伺服器将结果以HTML网页传给Web浏览器,工作原理如图1-6所示。
由于Java语言所显示出来的编程优势赢得了众多资料库厂商的支持。在资料库处理方面,Java提供的JDBC为资料库开发套用提供了标準的应用程式编程接口。与ODBC类似,JDBC也是一种特殊的API,是用于执行SQL语句的Java应用程式接口。它规定了Java如何与资料库之间交换数据的方法。採用Java和JDBC编写的资料库应用程式具有与平台无关的特性。
ASP、JSP、PHP技术
ASP是Microsoft开发的动态网页技术,主要套用于Windows NT+IIS或 Windows 9x+PWS平台。确切地说ASP不是一种语言,而是Web伺服器端的开发环境。利用ASP可以产生和运行动态的、互动的、高性能的Web服务应用程式。ASP支持多种脚本语言,除了VBScript和Pscript,也支持Perl语言,并且可以在同一ASP档案中使用多种脚本语言以发挥各种脚本语言的最大优势。但ASP默认只支持VBScript和Pscript,若要使用其他脚本语言,必须安装相应的脚本引擎。ASP支持在伺服器端调用ActiveX组件ADO对象实现对资料库的操作。在具体的套用中,若脚本语言中有访问资料库的请求,可通过ODBC与后台资料库相连,并通过ADO执行访问库的操作。关于ASP的编程技术将会在第7章中详细介绍。
JSP是Sun公司推出的新一代Web开发技术。作为Java家族的一员,几乎可以运行在所有的作业系统平台和Web伺服器上,因此JSP的运行平台更为广泛。目前JSP支持的脚本语言只有Java。JSP使用JDBC实现对资料库的访问。目标资料库必须有一个JDBC的驱动程式,即一个从资料库到Java的接口,该接口提供了标準的方法使Java应用程式能够连线到资料库并执行对资料库的操作。JDBC不需要在伺服器上创建数据源,通过JDBC、JSP就可以实现SQL语句的执行。
PHP是Rasmus Lerdorf推出的一种跨平台的嵌入式脚本语言,可以在Windows、UNIX、Linux等流行的作业系统和IIS、Apache、Netscape等Web伺服器上运行,用户更换平台时,无需变换PHP代码。PHP是通过Internet合作开发的开放原始码软体,它借用了C、Java、Perl语言的语法并结合PHP自身的特性,能够快速写出动态生成页面。PHP可以通过ODBC访问各种资料库,但主要通过函式直接访问资料库。PHP支持目前绝大多数的资料库,提供许多与各类资料库直接互连的函式,包括Sybase、Oracle、SQL Server等,其中与SQL Server资料库互连是最佳组合。

层次体系

当前,Internet/Intranet技术发展异常迅速,越来越多的资料库套用软体运行在Internet/Intranet环境下。在此之前,资料库套用系统的发展经历了单机结构、集中式结构、客户机/伺服器(C/S)结构之后,随着Internet的普及,又出现了浏览器/伺服器(B/S)结构与多层结构。在构造一个套用系统时,首先考虑的是系统的体系结构,採用哪种结构取决于系统的网路环境、套用需求等因素。
客户机/伺服器结构
1二层C/S结构
二层C/S结构是当前非常流行的资料库系统结构,在这种结构中,客户机提出请求,伺服器对客户机的服务请求做出回答。它把界面和数据处理操作分开在前端(客户端)和后端(伺服器端),这个主要特点使得C/S系统的工作速度主要取决于进行大量数据操作的伺服器,而不是前端的硬体设备;同时也大大降低了对网路传输速度的要求,因为只须客户端把服务请求传送给资料库伺服器,资料库伺服器只把服务结果传回前端。
在设计时,对数据可能有如下不同的处理形式。
(1)在处理时,客户机先向伺服器索取数据,然后释放资料库,即客户机发出的是档案请求,在客户机端处理数据,最后将结果送回伺服器。这种处理方式的缺点很明显:所有的套用处理都在客户端完成,这就要求客户端的计算机必须有足够的能力,以便执行需要的任何程式。更为糟糕的是,由于所有的处理均在客户端完成,每次运行时都要将档案整体传送到客户端,然后才能执行。如:Student表中有30 000条记录,客户端发出命令:
Select * From Student Where Sno='200101'
这条命令将要求伺服器将Student表中的所有记录传送到客户端,然后在客户端执行查询,结果只用到一条记录;如果查询的记录不存在,网路传输的数据实际上是无 用的。如此大的数据传输量是不可想像的。因此,人们提出了在伺服器中能够执行部分代码的客户机/伺服器结构。
(2)在处理时,客户机接受用户要求,并发给伺服器;在伺服器端处理用户要求,最后将结果传回客户机显示或列印。这种处理方式网路通信量较小。客户机向伺服器发出的是处理请求,而不是档案请求,处理请求中的代码在伺服器端执行后向客户机传送处理后的结果。
这样,为了特定任务,客户机上的程式和伺服器上的程式协同工作:客户机端的代码用于完成用户的输入输出及数据的检查,而伺服器端的代码完成对资料库的操作。
客户机/伺服器结构的另一个主要特点在于软体、硬体平台的无关性。资料库伺服器上的资料库管理系统集中负责管理数据,它向客户端提供一个开放的使用环境,客户端通过资料库接口,如ODBC(开放资料库连线)和SQL语言访问资料库,也就是说,不管客户端採用什幺样的硬体和软体,它只要能够通过网路和资料库接口程式连线到伺服器,就可对资料库进行访问。
在客户机/伺服器结构中,常把客户机称为前台,而把伺服器端称为后台。前台应用程式的功能包括用户界面、接收用户数据、处理套用逻辑、向后台发出请求、同时接收后台返回的结果,最后再将返回的结果按一定的格式或方式显示给用户。而后台伺服器则负责共享外部设备、存取共享数据、回响前台客户端的请求并回送结果等工作。前台的应用程式和数据一般是用户专用的,而后台的数据和代码是所有用户可以共享的。
由于资料库伺服器不仅要管理共享数据,保证数据的完整性,还要执行一部分代码,完成客户端的一些处理请求,所以对用于伺服器的计算机提出较高的要求。最好要採用一台专用的伺服器,有较快的处理速度,有大容量的硬碟和记忆体,支持磁带等大容量的存储设备。
上面讲的客户机/伺服器结构将套用分在了客户机、伺服器两级,称其为两层客户机/ 伺服器结构。总之,两层C/S结构的基本工作方式是客户程式向资料库伺服器传送SQL请求,伺服器返回数据或结果。
这种C/S结构有两种实现方式,一种是客户来完成表示部分和套用逻辑部分,而伺服器完成数据访问部分,这种情况是以客户为中心的,适用于套用相对简单、数据访问量不是很大的情况。另一种是以伺服器为中心的,把一些重要的套用逻辑部分放到伺服器上,这样可充分利用伺服器的计算能力,减少网路上需要传送的数据。通常以存储过程和触发器的形式出现,但存储过程都依赖于特定资料库,不同资料库之间很难移植,而三层C/S结构可以很好地解决这个问题。
注意:触发器(trigger)是资料库系统中,一个在插入、删除、修改操作之后运行的记录级事件代码。不同的事件可以对应不同的动作。通常有3种类型的触发器:INSERT触发器、DELETE触发器和UPDATE触发器。
2三层C/S结构
由于两层结构的客户机/伺服器系统本身固有的缺陷,使得它不能套用于一些大型、结构较为複杂的系统中,故出现了3层结构的客户机/伺服器系统,将两层结构中伺服器部分和客户端部分的套用单独划分出来,即採用“客户机—套用伺服器—资料库伺服器”结构(如图1-8所示)。典型的资料库套用可分为三部分:表示部分、套用逻辑(商业逻辑)部分和数据访问部分,三层结构便是对应于这三部分。
其中,套用伺服器和资料库伺服器可位于同一主机,也可位于不同主机。客户机是套用的用户接口部分,负责用户与应用程式的互动,运行在客户机端的软体也称为表示层软体。套用伺服器存放业务逻辑层(也称为功能层)软体,是套用逻辑处理的核心,实现具体业务。它能回响客户机请求,完成业务处理或複杂计算。若有资料库访问任务时,套用伺服器层可根据客户机的要求向资料库伺服器传送SQL指令。套用逻辑变得複杂或增加新的套用时,可增加新的套用伺服器。资料库伺服器便是用来执行功能层送来的SQL指令,完成数据的存储、访问和完整性约束等。操作完成后再通过套用伺服器向客户机返回操作结果。
浏览器/伺服器结构
随着Internet技术和Web技术的广泛套用,C/S结构已无法满足人们的需要。因为在典型C/S体系中,通常为客户安装前端应用程式的做法已不再现实,并且限制客户端工作环境只能基于Windows、Macintosh或UNIX等作业系统也不切实际。于是基于浏览器/伺服器结构(Browser/Server)的系统应运而生。
採用B/S结构后,在客户端只需安装一个通用的浏览器即可,不再受具体作业系统和硬体的制约,实现了跨平台的套用。
基于B/S结构的典型套用通常採用三层结构:“浏览器—Web伺服器—资料库伺服器”,B/S模式的工作原理是:通过浏览器以超文本的形式向Web伺服器提出访问资料库的请求,Web伺服器接受客户请求后,激活对应的CGI程式将超文本HTML语言转化为SQL语法,将这个请求交给资料库,资料库伺服器得到请求后,进行数据处理,然后将处理结果集返回给CGI程式。CGI再将结果转化为HTML,并由Web伺服器转发给请求方的浏览器,如图1-9所示。
在B/S模式中,客户端的标準配置是浏览器,如IE;业务功能处理由独立的套用伺服器处理,Web伺服器成为套用处理的标準配置;数据处理仍然由资料库伺服器处理。
从本质上讲,B/S结构与传统的C/S结构都是以同一种请求和应答方式来执行套用的,区别主要在于:C/S是一种两层或三层结构模式,其客户端集中了大量套用软体,而B/S是一种基于超连结(HyperLink)、HTML、Java的三级或多级C/S结构,客户端仅需单一的浏览器软体,是一种全新的体系结构,解决了跨平台问题。到目前,这两种结构在不同方面都有着广泛的套用。虽然C/S结构在Internet环境下明显不如B/S结构具有优势,但它在区域网路环境下仍具有优势。
Internet/Intranet信息系统的多层体系结构
多层结构套用软体与传统的两层结构套用软体相比,有可伸缩性好、可管理性强、安全性高、软体重用性好等诸多优点,如何在Internet/Intranet环境下构建套用软体体系结构就成为一个非常重要的问题,也是现今软体体系研究的一个新热点。
目前各种技术层出不穷,如最初的静态HTML页面、简单的CGI网关程式、Java Applet程式,现在的ASP等Web资料库技术,还有动态的Java线上游戏及PHP技术等。
实际上,多层的概念是由Sun公司提出来的。Sun公司提出的多层套用体系包括4层:客户层、顶端Web服务层、套用服务层和资料库层。其中顶端Web服务层是Sun公司多层体系结构中非常重要的一层,它主要起代理和快取的作用。顶端Web伺服器的作用是快取本地各客户机经常使用的Java Applet程式和静态数据,通常被放置在客户机所在的区域网路内,起到一个Java Applet主机(向Web浏览器传送Java Applet程式的计算机)和访问其他服务的代理作用。与普通代理伺服器的作用相同。构建多层结构套用软体时,选用Java平台是一个很好的选择,因为它跨越各套用平台。总之,在Java平台上构建多层套用软体体系代表着今后Internet/Intranet套用的趋势。

转载请注明出处海之美文 » Web资料库

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com