




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6章章 Web数据库数据库 Web 数据库是近年来发展很快的一种数据库技术,它是基于Web模式的DBMS的一种信息服务。它以Web这种浏览器/服务器模式为平台,将客户端融入Web浏览器。它能充分发挥DBMS高效的数据存储和管理能力,为Internet用户提供了更为方便、内容丰富的服务。6.1 Web数据库的体系结构数据库的体系结构6.1.1 Web数据库的主要优点数据库的主要优点 基于Web的数据库应用具有以下几大优点: 1)能够在多平台、多操作系统上应用; 2) 它能提供高性能的管理应用, 实现了基于WWW标准接口的网络数据库的开发; 3) 能够通过网络实现数据库的远程存取和动态交互;
2、4) 使得管理更方便, 而且提高了二次开发的简捷性, 使操作简单、维护方便。 5) 基于WWW 标准开放式接口的数据库的扩展更加方便。 6) 提供通用的图形用户接口界面;6.1.2 主机集中式模式 主机集中式模式主要应用在早期的数据库应用系统中,它是一种主机-终端模式,所有的计算任务和数据管理都集中在主机上。该模式的优点是对具有大量的定型处理的应用有较高的效率,其不足在于对主机的性能要求高,网络的负载重,而且用户终端本身不具有图形用户界面,程序开发的自由度小,工作效率低。6.1.3 客户端/服务器模式 数据库系统的体系结构逐渐从主机集中式向客户机/服务器模式(即C/S 模式)的方向发展,C/S
3、模式中的第一层:客户层主要用于发送用户请求和接收从服务器返回的信息;第二层:服务器层主要用于存储、处理和传送信息。C/S 模式机制运作的基本过程是:服务器监听相应端口的输入,客户机发请求,服务器接收并处理请求,并将结果返回给客户机。客户通过Internet/Intranet 直接与数据库服务器对话,服务器将对话结果返回给客户机。它的实质就是将数据存取和应用程序分离开来,有数据服务器执行数据操作,客户机来执行应用程序,用户在客户端通过网络同服务器打交道,客户端又包括用户界面和企业逻辑,网络上传送的数据主要是客户端向服务器发出的请求以及服务器发送给客户端的响应结果和出错信息 C/S 模式的主要优点
4、有:数据库服务器运行是基于关系模型的DBMS,DBMS 提供了保护数据库的功能;C/S模式将任务分开在客户端和数据库服务器上进行,从而使DBMS 的速度不受工作站速度的约束;可以显著地减少局域网传输量、降低了对数据控制的难度,提供了多用户开发特性,保障了用户投资;此外,数据库的无关性、工作站平台的无关性也是它的优点。 C/S 模式也有许多缺点,难以集中控制,企业逻辑安装在每一个客户机上,使得对系统的维护、修改非常困难。此时集中成为企业管理的强烈要求。安全性差,在两层结构中,大部分业务逻辑是在每台客户端,这样企业的核心机密就容易被泄露,而且每台客户机都可以对服务器上的数据进行直接操作,势必产生漏
5、洞。系统庞大之后,就很难保证,系统的稳定性了。 为了解决C/S 模式中的许多问题,以及分布式技术不断发展,在企业管理系统中,三层结构逐渐取代了两层结构。三层结构的基本思想是将用户界面同企业逻辑分离,把信息系统按功能划分为表示、功能和数据三大块,分别放置在相同或不同的硬件平台上。把传统的C/S 模式中的服务器部分分解为一个应用服务器(WEB 服务器)和一个或多个数据库服务器。从而构成一个三层结构的客户服务器体系。其中, 第一层:信息系统的用户接口部分,即人机界面,是用户与系统间交互信息的窗口,主要功能是指导操作人员使用界面,输入数据、输出结果;第二层:是应用的主体,包括了系统中核心的和易变的企业
6、逻辑(规划、运作方法、管理模式等),它的功能是接收输入,处理后返回结果;第三层:数据层即数据库管理系统(DBMS),负责管理对数据库的读写和维护,能够迅速执行大量数据的更新和检索。B/S 模式机制运作的基本过程是:客户发送请求,并把请求发送给模型的中间层,中间层接收到请求后再发送给数据库,数据库服务器对其进行处理,并把处理的结果送回中间层,然后返回给客户,让中间层来支持对数据库的存取与特性控制。B/S 模式的主要优点是:用户界面的改变同企业逻辑的改变互相隔离,互不影响,便于系统的修改和维护,大大增强了系统的灵活性。三层结构实际上也是目前Web应用采用的体系结构,它允许把全部的企业逻辑和业务处理
7、放在应用服务器上,支持纯粹的瘦客户机,因此采用三层结构的系统可以较为方便、自然地向Web应用等方向拓展。三层架构不需要客户端有很强的处理能力,原有的低性能的PC在新系统中仍然能够得到很好的利用,避免了重复投资,降低了应用成本。三层结构中的三层,只是逻辑上的概念。具体实现时,物理结构上的差异可能会很大。三层可以在一台计算机上,也可以在两台、三台,甚至更多的计算机上,只要它们在体系上遵循三层C/S结构即可。系统从一台扩展为两台、三台甚至更多计算机时,对应用没有任何修改。 B/S 模式的主要缺点是WEB 服务器应用功能弱、构造复杂,应用较难,此外,由于所有的对数据库连接及浏览器的请求访问都必须通过W
8、EB 服务器,从而造成WEB 服务器工作负荷重的问题。 由三层的B/S 模式扩展到四层的体系结构模型,可以把C/S机制加入到B/S 模型中,如改变数据库服务器层,引入C/S 机制,增加数据库客户端。同时,WEB 服务器也作为数据库服务器的客户端。浏览器层保持不变。对WEB 数据库的操作有两部分:一是来自首层的一般客户请求处理,通过协议( 如CGI、API、ASP)与WEB 服务器连接,再通过ODBC 向数据库服务器发出SQL 请求,数据管理系统执行SQL 查询并将结果通过ODBC 传回WEB 服务器,最后处理结果返回给首层的客户;二是来自数据库客户端的数据库访问处理,数据库客户端发出访问请求,
9、如对数据的插入、删除、修改、查询等,并通过JDBC/ODBC 连接到数据库服务器,访问WEB 数据库进行处理,处理后的结果再通过JDBC/ODBC 返回给数据库客户端。此外,对访问控制、数据的完整性约束的设置在WEB 服务器、数据库服务器端来完成。这样,即保留了B/S 模式原有的优势,又解决了B/S 模式构造复杂应用难的问题,同时对数据库操作的分工处理解决了B/S 模式中的WEB 服务器负荷重的问题。 客户端 Web 服务器 数据库服务器 应用服务器 Web 浏览器浏览器 HTTP 服务服务 应用逻辑应用逻辑 数据库数据库 四层的体系结构的主要特点是,1) WEB 服务器只提供HTTP 服务,
10、如检索并返回客户端请求的WEB 页面;2)客户端人机界面部分的程序开发工作得以简化。它不必关心业务逻辑是如何访问数据库的,只需把精力集中在人机界面上即可;3) 数据服务层主要提供对数据库进行各种操作的方法。它主要由应用逻辑层来调用。一旦数据库的结构确定下来,对于它的改动就比较小了;4)所有的应用逻辑集中在应用服务器层。该应用逻辑集主要由WEB 服务器来调用。因为应用逻辑被分离出来,这一部分可以随着具体业务的变化而变化,但在客户端和数据服务层所做的改动较小,从而使得该体系结构具有可伸缩的特点,适合于快速开发。6.2 Web数据库的访问技术数据库的访问技术 一般实现Web数据库系统的连接和应用可采
11、取两种方法, 一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器, 另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web 服务器和数据库服务器之间的通信并提供应用程序服务,由于驻留在Web服务器上,因而中间件软件能够调用作为Web服务器和数据库服务器间传输机制的外部程序或编码,并将执行查询等以HTML页面或纯文本的形式将信息返回给最终用户。数据库服务器负责管理驻留在数据库服务器中的数据。最基本的中间件技术有通过网关接口CGI 和应用程序接口A P I 两种。6.2.1 CGI CGI(Common Gateway Interface ,即公共网关接口)是一
12、种Web站点上可以用来访问Web站点的用户交互的各种程序的标准,使用CGI脚本允许用户在浏览器中等服务器上的数据库交互,完成对数据库的各种操作。它是用于连接主页和应用程序的接口。CGI 程序的作用是扩展Web 服务器的功能,使之能够执行一些Web 服务器本身不能完成的任务。访问数据库也是其重要应用。 CGI就是为了扩展主页的功能而设立的。CGI 应用程序能够与浏览器进行交互, 还可以通过数据库的A P I 与数据库服务器等外部数据源进行通信, 也可以将从浏览器获得的数据放到数据库中。 CGI 应用程序可由Web浏览器来启动。Web浏览器填写HTML 表单或单击Web 服务器上的HTML 页面中
13、的链接。CGI应用程序可获取Web 浏览器提供的信息和数据库中的信息。 Web 服务器执行CGI 应用程序后, 将执行结果返回到HTML 页面中, 或将信息传递到数据库中。用户通过Web 浏览器以HTML 形式向Web 服务器提出访问数据库的请求,Web 服务器得到请求后, 激活对应的CGI 程序, CGI程序将HTML 语言转化为SQL 语言文本,同时将请求递交给数据库管理系统, 数据库管理系统得到请求后, 首先验证其合法性, 然后将操作的数据结果转给CGI 程序, CGI 程序再将这个结果转化为HTML , 并由Web服务器转发给Web 浏览器。 0 HTTP请求 数据请求 HTTP页面
14、数据返回 W eb浏浏 览览 器器 W eb服服 务务 器器 CGI程程 序序 数数 据据 库库 CGI 具有极强的跨平台性能, 几乎可以在任何操作系统和Web 服务器上实现。但编写CGI 应用程序比较复杂。另外, CGI缺点是执行速度较慢,Web服务器每启动一个数据查询服务,就必须启动一个新的CGI进程,相对服务器资源代价比较高。因此CGI开发困难、效率低、应用层次不分明。 此外, CGI 程序不能保存变量状态, 从而给服务器与客户机之间通信的保持带来困难。再者系统的安全性也存在着隐患,易受攻击而导致瘫痪。6.2.2 ODBC和OLE DBODBC 是一个客户应用程序访问关系数据库时提供的一
15、个统一的接口,对于不同的数据库,ODBC提供了一套统一的API,使应用程序可以应用所提供的API来访问任何提供了ODBC驱动程序的数据库。 ODBC 是 Microsoft Windows 开放式服务体系结构 (WOSA) 中的数据库部分。它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC ODBC 的组件: ODBC API 函数调用库、错误代码集和用于访问 DBMS 上数据的标准结构化查询语言的 (SQL) 语法。 ODBC 驱动程序管理器 驱动程序
16、管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。ODBC 数据库驱动程序 是一些DLL,提供了ODBC和数据库之间的接口。有关所提供的驱动程序的列表,请参见文章 ODBC 驱动程序列表。 ODBC 游标库 驻留在 ODBC 驱动程序管理器和该驱动程序之间并处理数据滚动的动态链接库 (ODBCCR32.DLL)。 ODBC 管理器 该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。 ODBC是客户应用程序访问关系数据库时提供的一个统一的接口,对于不
17、同的数据库,ODBC提供了一套统一的API,使应用程序可以应用所提供的API来访问任何提供了ODBC驱动程序的数据库。ODBC API 把后端匹配为一个 ODBC兼容的数据源这些数据源可以是从文本文件到 Oracle 或 PostgreSQL RDBMS 的任何东西。并且由于,ODBC已经成为一种标准,所以目前所有的关系数据库都提供了ODBC驱动程序,这使ODBC的应用非常广泛,基本上可用于所有的关系数据库。对后端的访问来自 ODBC 驱动或者厂商提供的允许访问数据的驱动 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的OD
18、BC驱动程序完成。ODBC提供一套两个驱动程序:一个是数据库管理器的语言,另一个为程序设计语言提供公用接口。驱动程序是一些DLL,提供了ODBC和数据库之间的接口。允许Visual C+用标准的函数调用经公用接口访问数据库的内容,是这两个驱动程序的汇合点。当然,还有其它和ODBC有关的实用程序类型的DLL。例如,允许管理ODBC数据源的DLL。ODBC的实际管理接口出现在SYSTEM文件夹中的某个CPL(控制面板)文件中,我们在后面要谈到这方面的问题。 ODBC提供对数据库内容的访问。首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,
19、建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。它没有提供数据库管理器和C之间尽可能最好的数据转换。唯一影响ODBC前程的是,它的速度极低至少较早版本的产品是这样,然而以Microsoft的市场影响力,ODBC毫无疑问是成功了。 ODBC (开放数据库联接 Open Database Connectivity)是一套 API 用这套 API 允许你书写可以在各种 RDBMS 服务器上互操作的应用。就是说,利用ODBC API,你可通过统一界面和许多各不相同的数据库进行交互。 OLE DB 是什么,它为何不同于其他数据库技术?
20、OLE DB 是 Visual C+开发数据库应用中提供的新技术,它基于 COM 接口。因此,OLE DB对所有的文件系统包括关系数据库和非关系数据库都提供了统一的接口。这些特性使得OLE DB技术比传统的数据库访问技术更加优越。OLE DB 和其他 Microsoft 数据库技术的不同之处在于其提供通用数据访问的方式。 通用数据访问 使用多种相关联的应用程序来访问这些数据成为工作中一个很大的瓶颈。如果把信息合并到一个数据库管理系统 (DBMS) 来解决。这种解决方案不仅昂贵、耗时,而且在许多情况下是不可行的。 另一种方案就是开发通用数据访问。OLE DB 和 ADO 提供了通用数据访问功能。
21、 并且,OLE DB 比ADO的性能更强一些,并被推荐和 Visual C+ 应用程序一起使用。有关使用何种技术的更多信息,请参见数据访问技术建议。 通用数据访问技术必须兼备两种功能:其一是让非 DBMS 数据源能为数据库应用程序所访问的功能;其二是“分布式查询”或统一访问多(分布式)数据源功能。 非 DBMS 访问 让非 DBMS 数据源能为数据库应用程序所访问的能力。DBMS 数据源的例子有 IMS、DB2、Oracle、SQL Server、Access 以及 Paradox 等。非 DBMS 数据源的例子有存储于文件系统、电子邮件、电子表格以及项目管理工具等中的信息。 OLE DB 支
22、持开发能访问各种DBMS 和非 DBMS 数据源的应用程序。OLE DB它利用一套 COM 接口来访问和操纵所有类型的数据。COM 不仅在数据源之间而且还在其他各种应用程序之间减少了不必要的重复服务,同时还使它们之间的交互操作达到最大。 分布式查询 所谓分布式查询就是有能统一访问分布数据源中的数据的能力。数据源既可以为同一类型,也可以为不同类型, OLE DB定义了一组COM接口,这组接口封装了各种数据系统的访问操作,这组接口为数据使用方和数据提供方建立了标准,OLE DB还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作,因此,数据提供方只需实现一些简单的数据操作,在使
23、用方就可以获得全部的数据控制能力。 OLE DB 还定义了一批可扩展并且可以维护的接口,这些接口代管并封装 DBMS 功能中一致、可重复使用的部分,并且定义了 DBMS 组件的边界,例如行容器、查询处理器和事务处理协调器,使用这些组件可对各种信息源进行统一事务访问。 OLE DB 应用程序通常写作 DLL,但是其 COM 实现通过使用组件化代码克服了 DLL 的缺陷(例如命名和版本问题)。在 OLE DB 中,可使用全局唯一标识符 (GUID) 来调用接口或者访问其他组件。 最后一点,COM 使用引用计数来保持对组件使用的跟踪。调用接口方法时,引用计数递增;方法返回时,引用计数递减。当计数等于
24、零时,该方法所属的组件被释放。 OLE DB 是新的低层接口,它介绍了一种“通用的”数据访问范例。OLE DB和ODBC标准都是为了提供统一的访问数据接口,实际上,ODBC标准的对象是基于SQL的数据源(SQL-Based Data Source),而OLE DB的对象则是范围更为广泛的任何数据存储。从这个意义上说,符合ODBC标准的数据源是符合OLE DB标准的数据存储的子集。符合ODBC标准的数据源要符合OLE DB标准,还必须提供相应的OLE DB服务程序(Service Provider),就像SQL Server要符合ODBC标准,必须提供SQL Server ODBC驱动程序一样。
25、现在,微软自己已经为所有的ODBC数据源提供了一个统一的OLE DB服务程序,叫做ODBC OLE DB Provider。6.2.3 JDBC JDBC是由SUN公司推出的第一个标准的、可执行SQL语句的Java API。由JAVA 语言写的类和界面组成。JDBC 是一种规范, 能为开发者提供标准的数据库访问类和接口, 能够方便地向任何关系数据库发送SQL 语句, 同时JDBC是一个支持基本SQL 功能的低层应用程序接口, 但实际上也支持高层的数据库访问工具及A P I。所有这些工作都建立在X/Open SQL CL I 基础上。 简单的说JDBC完成下列三件事:第一,同一个 数据库建立连接
26、;第二,向数据库发送SQL语句;第三,处理数据库返回的结果。另外,JDBC是低级的I/0 与高级的I/0 的基础,由于它既可以直接调用SQL语句,又可以作为构造高级接口与工具的基础,所以是一种“低级”的接口。 JDBC 技术 在JAVA Applet 中访问数据库的优点在于: 直接访问数据库, 不再需要Web 数据库的介入,从而避开了CGI 方法的一些局限性; 用户访问控制可以由数据库服务器本地的安全机制来解决, 提高了安全性;JDBC 是支持基本SQL 功能的一个通用低层的应用程序接口, 在不同的数据库功能的层次上提供了一个统一的用户界面, 为跨平台跨数据库系统进行直接的Web 访问提供了方
27、案。从而克服了A P I 方法一些缺陷; 同时, 可以方便地实现与用户的交互, 提供丰富的图形功能和声音、视频等多媒体信息功能。 JDBC 的两种主要接口分别是面向应用程序的开发人员的JDBC API 和面向驱动程序低层的JDBC Driver API。 基于JDBC 的Web 数据库结构的缺点是: 不能进行OLTP,只能进行简单的数据库查询等操作,;完全跨平台跨数据库系统的功能和标准远未实现;安全性、缓冲机制和连接管理仍不完善。 JDBC主要由两层组成:JDBC应用程序接口(JDBC API)和JDBC驱动应用程序接口。JDBC API提供从应用程序到JDBC管理器的通讯。开发者通过API使
28、用标准Java机制访问数据库。数据库供应商提供JDBC驱动接口,也可以通过JDBC-ODBC连接桥使用传统的ODBC连接。 Java Application/Web Application JDBC Driver Manager JDBC-Net Driver JDBC Driver JDBC-ODBC Bridge Driver ODBC and DB Driver JDBC提供了一个通用的JDBC Driver Manager(如图6-4) ,用来管理各数据库软件商提供的JDBC 驱动程序,就可以访问其数据库。此外,对没有提供相应JDBC驱动程序的数据库系统,开发了特殊的驱动程序:JDBC
29、 - ODBC桥,它通过将JDBC操作转换为ODBC操作来实现JDBC操作。对ODBC,它像是通常的应用程序,桥为所有对ODBC可用的数据库实现JDBC。由于ODBC被广泛地使用,该桥的优点是让JDBC能够访问几乎所有的数据库,规模较小而效率高的特点。JDBC - NET Driver 允许使用通用的网络协议访问不同的数据库服务器。 DriverManager Connection Connection Statement Statement Statement ResultSet ResultSet 6.2.4 对象/关系映射 对象-关系映射用两个步骤完成。首先,把 XML 模式(这里是 D
30、TD)映射成一个对象模式,接着把对象模式映射成数据库模式。这两步映射可以随意的被结合在一起为直接的 DTD-到-数据库映射,如同今天多数软件所做的那样。 在考虑这种映射的时候,理解涉及到的对象是特定于每个 DTD 的,而不是来自 DOM 的对象是很重要的。特别是,这些对象建模在 XML 文档中的数据,而 DOM 建模 XML 文档的结构。6.3 XML数据库数据库 XML数据库方式充分考虑了XML数据本身的特点,针对这些特点进行存储和索引。在该方式下,既可以实现细粒度的查找和更新,也不需要将XML文档拆分成多个部分进行存储。 XML数据库为XML文档定义了一个逻辑模型,并根据这个模型存取文件。
31、这个模型包括元素、属性、PCDATA和文件顺序。XML数据库以XML文件作为其基本的逻辑存储单位,就好像关系数据库中数据表中的记录一样。XML数据库对底层的物理存储的实现模型没有固定的要求,它可以建立在关系型数据库、面向对象数据库或层次数据库之上,甚至采用特定的存储格式 总之,XML数据库是为存储XML文档并保持其完整性而设计的,存储时以XML文档为基本存储单位的一种数据存储方式。XML数据库不是一种全新的数据库模式,它并不是要取代现存的数据库模式,而是为人们处理XML文档提供一种更方便的存储方式。 XML是一种基于SGML简单灵活的元语言,具有良好的数据存储格式、可扩展性、高度结构化、便于网
32、络传输等特性,这些特性使得XML本身非常适用于数据库间的信息交互。所以,XML技术和数据库技术的结合就成为必然的趋势,以XML为中介实现数据库之间的信息交互就成为XML技术应用研究的热点。 XML 数据库是一种Web 数据库,它是可以对XML 文档进行存取管理和数据查询的数据库,是一个能够在应用中管理XML 数据和文档的数据库系统。简单一点说,XML 数据库就是一个XML 文档的集合,这些文档是持久的并且是可以操作的。 由于XML 这种语言的特点是可以自己定义数据结构。采用这种数据传输格式可以搭建起一个独立于数据库的网关平台,它屏蔽了数据库的异构性,也屏蔽了接收和发送数据的两端在实现应用所采用
33、的编程语言上的异构性。所以这种基于XML的数据库网关平台不会影响原有系统的使用,可以实现平滑的升级和移植,这对于企业升级是非常有意义的 6.3.1 XML技术的基本思想 20世纪60年代,IBM公司的研究人员发明了第一种现代标记语言通用标记语言(Generalized Markup Language,GML)。GML可以用于标记任何数据集合的结构,同时它也是一种元语言(meta-language),即能够描述其他语言及其语法和词汇表的语言。 1986年, SGML被国际标准化组织(ISO)接受为国际性的数据存储和交换的标准,并收录在ISO 8879当中。Web技术的出现和进步将对工业界的发展和
34、人类的通信行为产生的巨大影响,因此,GML的问世具有重要的意义。 1996年,W3C组织开始设计一种可扩展的标记语言,它将SGML的强大的灵活性和完善的功能与HTML技术结合起来。这就是后来的XML语言。 XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。 XML是一种界定文本数据的简便而标准的方法。XML不关心任何视觉表示形式,只关心数据本身。XML的标记用来说明你所描述的概念
35、,而属性则用来控制它们的结构。在这样的描述机制下,XML的数据是开放的。XML能够在不同的用户和程序之间交换数据,而不论其平台如何。它的自描述的特性使其对于B2B和企业内部网解决方案来说是一种有效的选择。并且无需协调就可以在程序之间共享数据。所以,你可以定义自己所设计出的语法并同其他人共享。 格式正规的XML XML的语法规则是XML进行工作的基础。最基本的,格式正规的XML会遵守W3C的XML 1.0推荐标准的语法要求。吸取HTML松散格式带来的经验教训,XML一开始就坚持实行良好的格式。 我们先看HTML的一些语句。 1.sample 2.sample 3.sample 4.samplar
36、 在XML文档中,上述几种语句的语法都是错误的。因为: 1所有的XML标记都必须合理嵌套; 2.所有的标记都必须要有一个相应的结束标记; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用括起来; 所以上列语句在XML中正确的写法是 1.sample 2.sample 3.sample 4.samplar 另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或_ (下划线) 开头; 3.名字中不能包含空格; 4.名字不能以字母 xml (或 XML 或 Xml .) 开头; 文档类型定义 文档类型定义( Document Type D
37、efinition,DTD)是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。 DTD文件也是一个ASCII的文本文件,后缀名为.dtd。 调用DTD文件的方法有两种:直接包含在XML文档内的DTD和调用独立的DTD文件。数据建模XML技术的主要优势之一就是XML词汇表的高效率。词汇表是元素及其属性、以及你所指定的文档结构的规范。一个有效的词汇表,是创建良好的支持XML的应用程序的重要基础。XML数据模型比关系数据模型更加丰富,同
38、时也更加复杂。XML数据模型不仅允许对复杂的数据进行建模,而且会保留层次关系和数据中的文档顺序。文档顺序和层次关系是通过基于XML节点标识符的排序维护的。将结构化数据存储在关系型结构中,可以获得更好的性能。但如果数据是半结构化或非结构化的,则可以选择使用XML数据模型来进行建模,加入XML标记。如果把结构化的数据用 XML数据模型来存放,则会影响数据访问的性能。 文档对象模型(DOM) 在文档对象模型DOM中,应用程序所操作的XML文档不是一个普通的文本流,而是一个对象树。程序可以十分方便地查询或修改对象及其属性,这里的属性可以是与当前对象对应的元素或子元素,也可以是它所包含的文本内容。 文档
39、对象模型DOM就是一个操作结构化文档的应用程序编程接口(API),它定义了XML文档的逻辑结构以及对XML文档进行各种操作的方法。通过DOM模型,应用程序设计者可以十分方便地创建XML文档,遍历XML文档的结构,增加、修改、删除文档的元素和内容。DOM标准接口的提出大大简化了应用程序中对结构化文档处理操作XML简单API(SAX)操作XML文档的另一个最主要的编程接口是SAX(Simple API for XML)。SAX提供了一种事件驱动的模式去处理XML文档,SAX解析器处理XML文档时,当遇到元素开始、元素结束、文本、文档的开始或结束等时,它会发出相应的事件。应用程序设计者就可以有选择地
40、决定对哪些事件进行处理和如何处理.SAX解析器在处理XML文档的过程并不创建对象,而只是将相应的事件传递给相应的应用程序,由应用程序决定如何处理。SAX解析器在解析开始的时候就开始发送事件。当解析器遇到文档开始、结束,元素开始,结束和文本的等的时候,相应的应用程序代码会收到一个事件。应用程序就可以立即开始执行,得到相应的结果,而不需要等到整个文档被解析完毕。 转换XML转换(transformation)是XML技术中一项功能强大的技术。通过转换,应用程序设计者可以把一套规则应用在一个文档上,将这个文档转换成另一种形式的文档。在运行的时候,当决定要进行哪一种转换时,就可以将相应的规则应用到文档
41、上并进行转换。对于电子商务中的B2B模式以及供应链管理方面的应用来说,这项功能就显得特别重要。一种被称作可扩展样式语言XSL( Extensible Style Language)是用来定义XML文档样式的语言,它能使得客户端的WEB浏览器控制文档的表示形式,从而不需要再与服务器进行交互通信。可扩展样式表语言转换 (XSLT)主要用于识别XML文档并使用XSL样式。其目的是将某个XML文档的内容转换为另一种格式或不同结构的文档。虽然XSLT并不是一种通用的转换语言,但它的灵活性还是相当好的,利用XSLT,你可以进行许多XML中的转换、排序和组织操作,而不需要自己编写程序代码来实现。只需要根据元
42、素显示的先后关系编写XML的转换规则就可以了。链接和查询链接是在标记语言当中一个很受欢迎的特征。在关系型数据库中,数据表会形成一个链接自身的表单,使用外键获取另一个表的数据。任何一种技术要想很好地应用于稳定的数据库中,就必须提供某种与数据主体链接的能力。XML也提供了这样的能力。XML的使用者经常希望将一个XML文档与另一个XML文档链接起来,或者将一些非XML的内容与XML文档链接起来。因此,链接是XML研究者们投入很大精力进行研究的重要原因。XML链接可分为简单链接和扩展链接。目前,XML解析器中并没有对链接提供标准的支持,但有些解析器提供了实现的链接的常见形式。XML技术的研究者们感兴趣
43、的另一个领域是查询。查询技术是十分重要的。XML使用者经常要通过某种途径把一些规则传递给XML解析器,从而获得符合这些规则的文档片断集合。具备了这种能力,一个XML文档就可以看成某种类型的数据库。除了有类似于数据库查询的特征以外,XML的查询也是转换操作的中心。命名空间(Namespace)和模式(Schema)XML技术的开发者在近几年提出了解决XML文档结构自动检测的新技术,即XML的模式(Schema)和命名空间(Namespace)。所谓命名空间,是指一组保持唯一的名称,是在逻辑上相关的任何一组名称,而且每个名称都必须唯一。命名空间是一种层次的结构。使用命名空间更容易保证产生唯一的名称
44、。要保证名称的全球唯一性,是一件很困难的事情。但如果将唯一性限制在一个比较窄的语境中,就会变得简单得多。命名空间的层次性就提供了这样一种环境,只需要保证在同一个命名空间里名称唯一就可以了。在将一个新名称添加到某个命名空间中之前,命名空间的管理机构必须确保该命名空间中没有这个新名称。在一般情况下,这是非常简单的事情,因为它属于子命名系统,子命名系统中保证名称唯一是比较容易的。然而,在某些情况下,这也可能会变得相当复杂。当今的许多 Internet 命名机构就是现实中一个很好的例子。如果在加入新名称时不检查唯一性,将会破坏命名空间,这样一来,某些没有多义性的名称也无法被正确引用。如果出现这种情况,
45、这组名称将不再算是正式的命名空间了。根据定义,命名空间必须确保它的成员具有唯一性。命名空间还必须具有自己的名称,使用者需要通过命名空间的名称引用命名空间里的成员。 传统的DTD技术存在许多不足之处。因此W3C 在提出最初的 XML 规范的几年之后开发了 XML Schema 规范。模式(Schema)技术是用来代替DTD的。模式可以定义能在DTD中使用的所有文档结构,它还可以定义数据类型和比DTD更复杂的规则。因此,它比DTD更加强大完善。6.3.2 XML数据库的分类 XML数据库分为基于文本的XML数据库和基于模型的XML数据库两个大类。 基于文本的XML数据库 基于文本的XML数据库将X
46、ML以文本的方式进行存储。它可以是操作系统中文件系统中的文件的形式,或者是关系数据库中的BLOB数据,或者特定的文件格式。索引的方式对所有基于文本的XML数据库来说都是基本一样的,它可以使查询引擎很方便地跳到XML文档内的任何地方。这就可以大大提高数据库存取文件或文件片断的速度。 基于文本的XML数据库与层次结构的数据库非常相似,当存取预先定义好层次的数据的时候,它比关系数据库更加方便高效。和层次结构的数据库一样,当以其它形式(如转置层次)存取数据时,XML数据库也会存在不足。它不能像很多关系数据库那样使用逻辑指针,使相同复杂度的查询以相同的速度完成。基于模型的XML数据库它根据XML文档构造
47、一个内部的模型并根据这个模型进行存储。至于具体的存储实现方式则由数据库的具体方式来决定。有些实现方法将特定的模型存储于现有的DBMS,如关系型数据库或面向对象数据库中。例如采用DOM模型来表示XML文档,在关系型数据库中存储DOM时,就会有对元素、属性、PCDATA、实体、实体引用等进行分别存储的表格。而其它数据库一般使用为特定模型专门设计和优化的专有存储格式。使用专有存储格式的基于模型的XML数据库,如果以文件的存储顺序读取文件,其性能和基于文本的XML数据库相似。这是因为这种数据库大多在节点间使用了物理指针,这样其读取性能和读取文本差不多。和基于文本的XML数据库一样,如果数据的读取顺序和
48、存储顺序不同,基于模型的XML数据库也会遇到性能上的问题。6.3.3 XML数据库的主要特点 以文档集合为中心的管理方式。现在,大部分的XML数据库都支持集合,其作用相当于关系数据库中的表(记录的集合)和文件系统中的文件夹(文件的集合)。在XML数据库中,XML文档放在集合中进行管理。一个文档集合把一类文档聚集在一起,方便用户操作。集合级别上的查询、修改操作都会反映到集合内的每个文档。 以XPath为主的查找方式。大多数的XML数据库都支持一种或者多种查询语言。最常用的是XPath的查询方式。而现有的XML数据库一般都不能支持关系数据库中的最普遍的SQL查询语言。XPath是基于XML文档树形
49、模型,给出从某个结点起的查询路径,搜索文档。目前,XPath作为数据库查询语言还有不少缺陷:不能分组、排序、连接等。 XML数据库一般都为用户提供操作XML的应用程序编程接口API。它提供数据库连接、浏览元数据、执行查询和返回结果的方法。返回结果通常是XML字符串、DOM树。如果查询返回结果是多个文档或文档片断(Fragment)的话,通常都会提供枚举这些结果的方法。对于以Client/Server模式运行的数据库产品,还可以将结果通过网络协议(如HTTP)回传给客户端。 事务、锁定和并发方面的支持还不足。如今,很多XML数据库都支持事务处理,包括事务的提交以及回滚。但是,锁的粒度通常比较大,
50、对整个文档的而不是对文档片断(Fragment)的,所以多用户并发性的支持相对较低。具体的并发程度取决于应用程序以及文档的构成。 基于DOM的数据更新方式。对于关系数据库,采用SQL语言进行数据更新是非常方便的。但对于XML数据库而言,XPath, XQuery查询语言还没有支持数据更新的功能。现在常见的一种方法是先把数据转换成DOM对象,再对DOM对象进行数据更新。这种方式的不足是占用较多内存(生成DOM对象会占用较大内存),时间效率也不好,因为要先通过解析生成DOM对象,再对DOM对象的数据进行更新,再进行转换后保存。 保持完整的XML文档。这是它的一个重要特性。与其他方式相比,XML数据
51、库的一个最重要特性是它可以为XML文档提供了保持原样的功能。就是说可以将XML文件存放在XML数据库中,而且再取回同样的XML文档。对于以文档为中心的应用程序来说非常重要,因为实体应用、注释和处理指令是这些文档不可缺少的组成部分。特别是对于法律和医学领域中格式不允许随意窜改的数据文档。 XML数据库并没有对数据的规范化作强制的要求,如果使用不当,使用XML数据库很容易设计出一些不合理的,易于出错的存储结构。因此,在将文件存入XML数据库之前,需要注意XML文档的结构。XML数据库的规范化和关系型数据库的规范化一样,其主要目标是要求文档的设计保证数据不会重复存储。两者的不同在于XML支持多值属性
52、而一般的关系型数据库并不支持。这样就有可能以一种在关系型数据库中难以实现的方式来规范XML数据库的数据。 与数据规范化密切相关的是引用完整性。引用完整性即相关数据的引用指针的有效性,是保持数据库数据一致性的必要条件。如果你的销售订单含有一个客户代码,而相应的客户信息并不存在,这对你没什么好处。发货部门不知道往哪里发货,而财务部门不知道给哪里寄发票。在关系型数据库中,引用完整性意味着确保外部键指向合法的主键,也就是说,对每个外部键都要检查相应的主键记录。在原生XML数据库中,引用完整性意味着XLink或其他专有链接机制指向合法的文件或文件片断。 XML的内容和应用分开,结构化,自描述性,开放性等
53、特点,使基于XML的数据库有以下新特性: (1)可实现异构数据库间数据的共享 (2)将比列可观的处理工作从服务器端转移到WEB客户端,提高了系统运行效率 (3)实现了同一数据以不同的浏览形式展现给不同的用户 XML 由于具有可扩展性、与平台无关性等特点, 使其在Web 数据库应用中具有以下新优势: (1) 实现异构数据源数据的集成; (2) 将大量处理任务转移到客户端, 减轻了服务器端的负荷, 提高了系统运行效率; (3) 客户端可通过编程对数据进行二次处理, 提高了数据复用性. XML 元素比关系具有更多的固有的灵活性。一个XML 元素可以包含任意数量的特性(作为子元素或属性) ,并且每个子
54、元素可能包含不止一个数据项。这就是XML 的分层结构。这个特性对于工艺卡片信息的描述尤其重要,如下是一个存储工艺卡片信息的XML 文件(作了适当简化) : 车工艺基准 三相异步电动机 1 清江机械加工工序卡片 工序卡片 工步号;工步内容;工艺装备;主轴转速;切削深度;进给次数;手动 1 车工艺基准,保证尺寸156 及6 ,要求全批统一. 2 粗车轴孔29 0. 2. 游标卡尺 XML 的另一大优势是它存储数据的形式是可读的,即人可以直接阅读和编辑XML 文档,而数据库中的表不通过数据库管理系统是无法访问的。另外,对于编程方面,XML 还有一些类似于面向对象编程语言中的对象的特性,如元素类型、命
55、名属性和表示层次结构的能力,这个特性使XML 能成为数据表示的基础。如果信息的形式比较复杂,个别字段非常大且复杂,数据库不大但对可伸缩性要求较高,而数据类型不是十分重要,那么XML 数据库的优势将十分明显。 一般CAPP系统包括确定加工方法,选择加工设备,进行工艺路线安排和工序设计等活动。的实质就是:把以特征为基础进行描述的产品设计信息与以工作基元为基础进行描述的制造资源信息进行匹配,最终生成工艺规程的过程。因此可以认为,通用化系统,就是一个由推理机制和支撑知识库两部分组成的、且相互完全分离的系统程序。 6.3.4 XML 数据库的模式设计 XML数据库的模式设计分为“概念模式”的设计和“物理
56、模式”的设计。 数据库概念模式设计 XML 数据库是由很多XML 元素的集合组成,例如在网络化CAPP 系统中存储某一个零件的所有卡片信息的XML文件为: 通过如下的方法可以转换成一个关系型的模式: 每个元素变成表(关系) ; 每个XML 属性变成列(关系型属性) ; 一个元素的每个子元素变换成表中的列,这个表与子元素指定的表之间具有一个外键约束 转换后的关系如下: Cards( Part ID , PartName , Card) Card( ID , Name , Template , Instance) 反过来转换是一样的道理。从这个转换对比可以看出,XML 中的数据(存在方式可以是内容
57、、属性值、元素名等) 就相当于关系模式中的字段,XML 中数据的相互位置关系就相当于关系模式中元组与元组的关系及元组与字段的关系。设计好这两个方面,就构建了一个XML 数据库的简单概念模型。 从图5 还可以看到,XML 数据库的这个模型与对象数据库十分相象,因为它同样也是由节点组成的,并且每个节点都可以包含异类数据,而XML 数据库节点异类的程度大部分取决于用于定义XML 文档结构的特定DTD 或模式 物理模式设计 对几个主要的数据模型用类封装的形式简单的说明实现的过程: 文档 文档必须具有一个名字和一个根元素。首先创建一个文档:CreateNewDocument (name As strin
58、g) , “name”是一个唯一标识,创建成功则返回一个XMLDocument 对象;其次是访问文档, 主要包括创建一个根节点:CreateDocument Element ( document As XMLDocument , tag Asstring) ; 访问根节点: GetDocument Element ( document As XMLDocument) 。 元素 元素是以某种方式标记的,计算机能识别的文档的组成部分。是一个具有类型名、属性集和字符数据的集合,它可以包含其他元素和属性。它下面可以再有一个元素的集合。所以创建的操作就包括创建属性、字符数据区和元素等,如下:CreatA
59、ttribute (element As XML Element , name As string ,value As string) ;Creat Element (element As XML Element , tag As string) ;元素的操作还包括检索和删除:GetAttribute (element As XML Element , name As string) ;RemoveAttribute (element As XML Element , name As string) ;GetChild(element As XML Element , index As Int
60、eger) ;RemoveChild(element As XML Element , index As Integer) ; 属性 属性是不能包含其他元素的命名的简单类型定义。一个元素可以包含一个或多个属性,属性是一个由“=”隔开的名称值,它的操作可以归类为三种: GetName (attribute As XmlAttribute) ; GetValue (attribute As XmlAttribute) ; SetValue (attribute As XmlAttribute , value As string) ; 当您的信息需要简单类型的数据并且存在以下情况时,请使用属性: (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民俗活动迎元宵活动方案
- 汽车用品店活动方案
- 汽车公司新年年会策划方案
- 汉字经典宣导活动方案
- 江滨小学植树节活动方案
- 每场赛事活动方案
- 江苏活动纪念品策划方案
- 油田工会抽奖活动方案
- 江浙沪四天公司团建活动方案
- 水产养殖培训活动方案
- 2025年北京市中考数学试卷真题(含答案解析)
- 2025-2030中国车载移动变电站行业未来趋势与前景规划分析报告
- 标准商铺租赁合同含物业管理费及公共收益分成
- 医疗质量活动月活动方案
- 2025至2030中国汽车售后服务行业市场现状分析及竞争格局与投资发展报告
- 广东省梅州市五华县2024-2025学年七年级下学期数学期末考试模拟卷(含答案)
- 警察政治培训课件
- 毒蛇咬伤的急救处理要点
- 2024年湖南省辰溪县档案局公开招聘试题带答案
- 2025年山西万家寨水务控股集团所属企业招聘笔试参考题库含答案解析
- 2025至2030中国工业软件行业项目调研及市场前景预测评估报告
评论
0/150
提交评论