高级数据库技术-第6章_Web数据库_第1页
高级数据库技术-第6章_Web数据库_第2页
高级数据库技术-第6章_Web数据库_第3页
高级数据库技术-第6章_Web数据库_第4页
高级数据库技术-第6章_Web数据库_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

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 客户端/服务器模式 数据库系统的体系结构逐渐从主机集中式向客户机/服务

3、 器模式(即C/S 模式)的方向发展,C/S模式中的第一层: 客户层主要用于发送用户请求和接收从服务器返回的信息; 第二层:服务器层主要用于存储、处理和传送信息。C/S 模式机制运作的基本过程是:服务器监听相应端口的输入, 客户机发请求,服务器接收并处理请求,并将结果返回给 客户机。客户通过Internet/Intranet 直接与数据库服务器 对话,服务器将对话结果返回给客户机。它的实质就是将 数据存取和应用程序分离开来,有数据服务器执行数据操 作,客户机来执行应用程序,用户在客户端通过网络同服 务器打交道,客户端又包括用户界面和企业逻辑,网络上 传送的数据主要是客户端向服务器发出的请求以及

4、服务器 发送给客户端的响应结果和出错信息 C/S 模式的主要优点有:数据库服务器运行 是基于关系模型的DBMS,DBMS 提供了 保护数据库的功能;C/S模式将任务分开在 客户端和数据库服务器上进行,从而使 DBMS 的速度不受工作站速度的约束;可 以显著地减少局域网传输量、降低了对数 据控制的难度,提供了多用户开发特性, 保障了用户投资;此外,数据库的无关性、 工作站平台的无关性也是它的优点。 C/S 模式也有许多缺点,难以集中控制,企 业逻辑安装在每一个客户机上,使得对系 统的维护、修改非常困难。此时集中成为 企业管理的强烈要求。安全性差,在两层 结构中,大部分业务逻辑是在每台客户端, 这

5、样企业的核心机密就容易被泄露,而且 每台客户机都可以对服务器上的数据进行 直接操作,势必产生漏洞。系统庞大之后, 就很难保证,系统的稳定性了。 为了解决C/S 模式中的许多问题,以及分布式技术不断发展,在企业管理系 统中,三层结构逐渐取代了两层结构。三层结构的基本思想是将用户界面同 企业逻辑分离,把信息系统按功能划分为表示、功能和数据三大块,分别放 置在相同或不同的硬件平台上。把传统的C/S 模式中的服务器部分分解为一 个应用服务器(WEB 服务器)和一个或多个数据库服务器。从而构成一个三 层结构的客户服务器体系。其中, 第一层:信息系统的用户接口部分,即人 机界面,是用户与系统间交互信息的窗

6、口,主要功能是指导操作人员使用界 面,输入数据、输出结果;第二层:是应用的主体,包括了系统中核心的和 易变的企业逻辑(规划、运作方法、管理模式等),它的功能是接收输入, 处理后返回结果;第三层:数据层即数据库管理系统(DBMS),负责管理 对数据库的读写和维护,能够迅速执行大量数据的更新和检索。 B/S 模式机制运作的基本过程是:客户发送请求,并把请求发送给模型的中 间层,中间层接收到请求后再发送给数据库,数据库服务器对其进行处理, 并把处理的结果送回中间层,然后返回给客户,让中间层来支持对数据库的 存取与特性控制。B/S 模式的主要优点是:用户界面的改变同企业逻辑的改 变互相隔离,互不影响,

7、便于系统的修改和维护,大大增强了系统的灵活性。 三层结构实际上也是目前Web应用采用的体系结构,它允许把全部的 企业逻辑和业务处理放在应用服务器上,支持纯粹的瘦客户机,因此 采用三层结构的系统可以较为方便、自然地向Web应用等方向拓展。 三层架构不需要客户端有很强的处理能力,原有的低性能的PC在新 系统中仍然能够得到很好的利用,避免了重复投资,降低了应用成本。 三层结构中的三层,只是逻辑上的概念。具体实现时,物理结构上的 差异可能会很大。三层可以在一台计算机上,也可以在两台、三台, 甚至更多的计算机上,只要它们在体系上遵循三层C/S结构即可。系 统从一台扩展为两台、三台甚至更多计算机时,对应用

8、没有任何修改。 B/S 模式的主要缺点是WEB 服务器应用功能弱、构造复杂,应用较 难,此外,由于所有的对数据库连接及浏览器的请求访问都必须通过 WEB 服务器,从而造成WEB 服务器工作负荷重的问题。 由三层的B/S 模式扩展到四层的体系结构模型,可以把 C/S机制加入到B/S 模型中,如改变数据库服务器层,引 入C/S 机制,增加数据库客户端。同时,WEB 服务器也 作为数据库服务器的客户端。浏览器层保持不变。对 WEB 数据库的操作有两部分:一是来自首层的一般客户 请求处理,通过协议( 如CGI、API、ASP)与WEB 服务 器连接,再通过ODBC 向数据库服务器发出SQL 请求, 数

9、据管理系统执行SQL 查询并将结果通过ODBC 传回 WEB 服务器,最后处理结果返回给首层的客户;二是来 自数据库客户端的数据库访问处理,数据库客户端发出访 问请求,如对数据的插入、删除、修改、查询等,并通过 JDBC/ODBC 连接到数据库服务器,访问WEB 数据库进 行处理,处理后的结果再通过JDBC/ODBC 返回给数据库 客户端。此外,对访问控制、数据的完整性约束的设置在 WEB 服务器、数据库服务器端来完成。这样,即保留了 B/S 模式原有的优势,又解决了B/S 模式构造复杂应用难 的问题,同时对数据库操作的分工处理解决了B/S 模式中 的WEB 服务器负荷重的问题。 客户端 We

10、b 服务器 数据库服务器 应用服务器 Web 浏览器浏览器 HTTP 服务服务 应用逻辑应用逻辑 数据库数据库 四层的体系结构的主要特点是,1) WEB 服务器只提供 HTTP 服务,如检索并返回客户端请求的WEB 页面;2) 客户端人机界面部分的程序开发工作得以简化。它不必关 心业务逻辑是如何访问数据库的,只需把精力集中在人机 界面上即可;3) 数据服务层主要提供对数据库进行各种操 作的方法。它主要由应用逻辑层来调用。一旦数据库的结 构确定下来,对于它的改动就比较小了;4)所有的应用逻 辑集中在应用服务器层。该应用逻辑集主要由WEB 服务 器来调用。因为应用逻辑被分离出来,这一部分可以随着

11、具体业务的变化而变化,但在客户端和数据服务层所做的 改动较小,从而使得该体系结构具有可伸缩的特点,适合 于快速开发。 6.2 Web数据库的访问技术数据库的访问技术 一般实现Web数据库系统的连接和应用可采取两种方法, 一种是在Web服务器端提供中间件来连接Web服务器和数 据库服务器, 另一种是把应用程序下载到客户端并在客 户端直接访问数据库。中间件负责管理Web 服务器和数 据库服务器之间的通信并提供应用程序服务,由于驻留在 Web服务器上,因而中间件软件能够调用作为Web服务器 和数据库服务器间传输机制的外部程序或编码,并将 执行查询等以HTML页面或纯文本的形式将信息返回给最 终用户。

12、数据库服务器负责管理驻留在数据库服务器中的 数据。最基本的中间件技术有通过网关接口CGI 和应用程 序接口A P I 两种。 6.2.1 CGI CGI(Common Gateway Interface ,即公共 网关接口)是一种Web站点上可以用来访问 Web站点的用户交互的各种程序的标准, 使用CGI脚本允许用户在浏览器中等服务器 上的数据库交互,完成对数据库的各种操 作。它是用于连接主页和应用程序的接口。 CGI 程序的作用是扩展Web 服务器的功能, 使之能够执行一些Web 服务器本身不能完 成的任务。访问数据库也是其重要应用。 CGI就是为了扩展主页的功能而设立的。 CGI 应用程序

13、能够与浏览器进行交互, 还 可以通过数据库的A P I 与数据库服务器等 外部数据源进行通信, 也可以将从浏览器 获得的数据放到数据库中。 CGI 应用程序可由Web浏览器来启动。Web浏览器填写 HTML 表单或单击Web 服务器上的HTML 页面中的链接。 CGI应用程序可获取Web 浏览器提供的信息和数据库中的 信息。 Web 服务器执行CGI 应用程序后, 将执行结果返 回到HTML 页面中, 或将信息传递到数据库中。用户通过 Web 浏览器以HTML 形式向Web 服务器提出访问数据库 的请求,Web 服务器得到请求后, 激活对应的CGI 程序, CGI程序将HTML 语言转化为SQ

14、L 语言文本,同时将请求 递交给数据库管理系统, 数据库管理系统得到请求后, 首先验证其合法性, 然后将操作的数据结果转给CGI 程 序, CGI 程序再将这个结果转化为HTML , 并由Web服 务器转发给Web 浏览器。 0 HTTP请求 数据请求 HTTP页面 数据返回 W eb 浏浏 览览 器器 W eb 服服 务务 器器 CGI 程程 序序 数数 据据 库库 CGI 具有极强的跨平台性能, 几乎可以在任何 操作系统和Web 服务器上实现。但编写CGI 应用 程序比较复杂。另外, CGI缺点是执行速度较慢, Web服务器每启动一个数据查询服务,就必须启 动一个新的CGI进程,相对服务器

15、资源代价比较 高。因此CGI开发困难、效率低、应用层次不分 明。 此外, CGI 程序不能保存变量状态, 从而给服务 器与客户机之间通信的保持带来困难。再者系统 的安全性也存在着隐患,易受攻击而导致瘫痪。 6.2.2 ODBC和OLE DB ODBC 是一个客户应用程序访问关系数据库 时提供的一个统一的接口,对于不同的数据库, ODBC提供了一套统一的API,使应用程序可以应 用所提供的API来访问任何提供了ODBC驱动程序 的数据库。 ODBC 是 Microsoft Windows 开放式服务体系结 构 (WOSA) 中的数据库部分。它建立了一组规范, 并提供了一组对数据库访问的标准API

16、(应用程序 编程接口)。这些API利用SQL来完成其大部分任 务。ODBC本身也提供了对SQL语言的支持,用 户可以直接将SQL语句送给ODBC ODBC 的组件: ODBC API 函数调用库、错误代码集和用于访问 DBMS 上数据的标准结构化查询语言的 (SQL) 语法。 ODBC 驱动程序管理器 驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理 ODBC驱动程序,是ODBC中最重要的部件。 ODBC 数据库驱动程序 是一些DLL,提供了ODBC和数据库之间的接口。有关所提供的驱动程序的 列表,请参见文章 ODBC 驱动程序列表。 ODBC 游标库 驻留在 ODBC

17、 驱动程序管理器和该驱动程序之间并处理数据滚动的动态链接 库 (ODBCCR32.DLL)。 ODBC 管理器 该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任 务是管理安装的ODBC驱动程序和管理数据源。 ODBC是客户应用程序访问关系数据库时提供的 一个统一的接口,对于不同的数据库,ODBC提 供了一套统一的API,使应用程序可以应用所提供 的API来访问任何提供了ODBC驱动程序的数据库。 ODBC API 把后端匹配为一个 ODBC兼容的数据 源这些数据源可以是从文本文件到 Oracle 或 PostgreSQL RDBMS 的任何东西。

18、并且由于, ODBC已经成为一种标准,所以目前所有的关系 数据库都提供了ODBC驱动程序,这使ODBC的 应用非常广泛,基本上可用于所有的关系数据库。 对后端的访问来自 ODBC 驱动或者厂商提供的允 许访问数据的驱动 一个基于ODBC的应用程序对数据库的操作不依赖任何 DBMS,不直接与DBMS打交道,所有的数据库操作由对 应的DBMS的ODBC驱动程序完成。ODBC提供一套两个 驱动程序:一个是数据库管理器的语言,另一个为程序设 计语言提供公用接口。驱动程序是一些DLL,提供了 ODBC和数据库之间的接口。允许Visual C+用标准的函 数调用经公用接口访问数据库的内容,是这两个驱动程序

19、 的汇合点。当然,还有其它和ODBC有关的实用程序类型 的DLL。例如,允许管理ODBC数据源的DLL。ODBC的 实际管理接口出现在SYSTEM文件夹中的某个CPL(控制 面板)文件中,我们在后面要谈到这方面的问题。 ODBC提供对数据库内容的访问。首先必须用 ODBC管理器注册一个数据源,管理器根据数据 源提供的数据库位置、数据库类型及ODBC驱动 程序等信息,建立起ODBC与具体数据库的联系。 这样,只要应用程序将数据源名提供给ODBC, ODBC就能建立起与相应数据库的连接。它没有 提供数据库管理器和C之间尽可能最好的数据转 换。唯一影响ODBC前程的是,它的速度极低至 少较早版本的产

20、品是这样,然而以Microsoft的市 场影响力,ODBC毫无疑问是成功了。 ODBC (开放数据库联接 Open Database Connectivity)是一套 API 用这套 API 允许 你书写可以在各种 RDBMS 服务器上互操 作的应用。就是说,利用ODBC API,你可通 过统一界面和许多各不相同的数据库进行 交互。 OLE DB 是什么,它为何不同于其他数据库技术? OLE DB 是 Visual C+开发数据库应用中提供的 新技术,它基于 COM 接口。因此,OLE DB对所 有的文件系统包括关系数据库和非关系数据库都 提供了统一的接口。这些特性使得OLE DB技术 比传统

21、的数据库访问技术更加优越。OLE DB 和 其他 Microsoft 数据库技术的不同之处在于其提供 通用数据访问的方式。 通用数据访问 使用多种相关联的应用程序来访问这些数据成为工作中一 个很大的瓶颈。如果把信息合并到一个数据库管理系统 (DBMS) 来解决。这种解决方案不仅昂贵、耗时,而且在 许多情况下是不可行的。 另一种方案就是开发通用数据访问。OLE DB 和 ADO 提 供了通用数据访问功能。 并且,OLE DB 比ADO的性能 更强一些,并被推荐和 Visual C+ 应用程序一起使用。 有关使用何种技术的更多信息,请参见数据访问技术建议。 通用数据访问技术必须兼备两种功能:其一是

22、让非 DBMS 数据源能为数据库应用程序所访问的功能;其二是“分布 式查询”或统一访问多(分布式)数据源功能。 非 DBMS 访问 让非 DBMS 数据源能为数据库应用程序所访问的能力。 DBMS 数据源的例子有 IMS、DB2、Oracle、SQL Server、Access 以及 Paradox 等。非 DBMS 数据源的例 子有存储于文件系统、电子邮件、电子表格以及项目管理 工具等中的信息。 OLE DB 支持开发能访问各种DBMS 和非 DBMS 数据源 的应用程序。OLE DB它利用一套 COM 接口来访问和操 纵所有类型的数据。COM 不仅在数据源之间而且还在其 他各种应用程序之间

23、减少了不必要的重复服务,同时还使 它们之间的交互操作达到最大。 分布式查询 所谓分布式查询就是有能统一访问分布数 据源中的数据的能力。数据源既可以为同 一类型,也可以为不同类型, OLE DB定义了一组COM接口,这组接口封装了各种数据 系统的访问操作,这组接口为数据使用方和数据提供方建 立了标准,OLE DB还提供了一组标准的服务组件,用于 提供查询、缓存、数据更新、事务处理等操作,因此,数 据提供方只需实现一些简单的数据操作,在使用方就可以 获得全部的数据控制能力。 OLE DB 还定义了一批可扩展并且可以维护的接口,这些 接口代管并封装 DBMS 功能中一致、可重复使用的部分, 并且定义

24、了 DBMS 组件的边界,例如行容器、查询处理 器和事务处理协调器,使用这些组件可对各种信息源进行 统一事务访问。 OLE DB 应用程序通常写作 DLL,但是其 COM 实现通过使用组件化代码克服了 DLL 的缺陷(例 如命名和版本问题)。在 OLE DB 中,可使用全 局唯一标识符 (GUID) 来调用接口或者访问其他 组件。 最后一点,COM 使用引用计数来保持对组件使用 的跟踪。调用接口方法时,引用计数递增;方法 返回时,引用计数递减。当计数等于零时,该方 法所属的组件被释放。 OLE DB 是新的低层接口,它介绍了一种“通用的”数据 访问范例。OLE DB和ODBC标准都是为了提供统

25、一的访 问数据接口,实际上,ODBC标准的对象是基于SQL的数据 源(SQL-Based Data Source),而OLE DB的对象则是 范围更为广泛的任何数据存储。从这个意义上说,符合 ODBC标准的数据源是符合OLE DB标准的数据存储的子 集。符合ODBC标准的数据源要符合OLE DB标准,还必 须提供相应的OLE DB服务程序(Service Provider),就 像SQL Server要符合ODBC标准,必须提供SQL Server ODBC驱动程序一样。现在,微软自己已经为所有的 ODBC数据源提供了一个统一的OLE DB服务程序,叫做 ODBC OLE DB Provide

26、r。 6.2.3 JDBC JDBC是由SUN公司推出的第一个标准的、 可执行SQL语句的Java API。由JAVA 语言 写的类和界面组成。JDBC 是一种规范, 能为开发者提供标准的数据库访问类和接 口, 能够方便地向任何关系数据库发送 SQL 语句, 同时JDBC是一个支持基本 SQL 功能的低层应用程序接口, 但实际上 也支持高层的数据库访问工具及A P I。所 有这些工作都建立在X/Open SQL CL I 基 础上。 简单的说JDBC完成下列三件事:第一,同 一个 数据库建立连接;第二,向数据库发 送SQL语句;第三,处理数据库返回的结 果。另外,JDBC是低级的I/0 与高级

27、的I/0 的基础,由于它既可以直接调用SQL语句, 又可以作为构造高级接口与工具的基础, 所以是一种“低级”的接口。 JDBC 技术 在JAVA Applet 中访问数据库的优点 在于: 直接访问数据库, 不再需要Web 数据库的 介入,从而避开了CGI 方法的一些局限性; 用户 访问控制可以由数据库服务器本地的安全机制来 解决, 提高了安全性;JDBC 是支持基本SQL 功 能的一个通用低层的应用程序接口, 在不同的数 据库功能的层次上提供了一个统一的用户界面, 为跨平台跨数据库系统进行直接的Web 访问提供 了方案。从而克服了A P I 方法一些缺陷; 同时, 可以方便地实现与用户的交互,

28、 提供丰富的图形 功能和声音、视频等多媒体信息功能。 JDBC 的两种主要接口分别是面向应用程序的开 发人员的JDBC API 和面向驱动程序低层的JDBC Driver API。 基于JDBC 的Web 数据库结构的缺点是: 不 能进行OLTP,只能进行简单的数据库查询 等操作,;完全跨平台跨数据库系统的功 能和标准远未实现;安全性、缓冲机制和 连接管理仍不完善。 JDBC主要由两层组成:JDBC应用程序接口 (JDBC API)和JDBC驱动应用程序接口。 JDBC API提供从应用程序到JDBC管理器 的通讯。开发者通过API使用标准Java机制 访问数据库。数据库供应商提供JDBC驱动

29、 接口,也可以通过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 - ODBC桥,它通过 将JDBC操作转换为

30、ODBC操作来实现JDBC操作。 对ODBC,它像是通常的应用程序,桥为所有对 ODBC可用的数据库实现JDBC。由于ODBC被广 泛地使用,该桥的优点是让JDBC能够访问几乎所 有的数据库,规模较小而效率高的特点。JDBC - NET Driver 允许使用通用的网络协议访问不同的 数据库服务器。 DriverManager Connection Connection Statement Statement Statement ResultSet ResultSet 6.2.4 对象/关系映射 对象-关系映射用两个步骤完成。首先,把 XML 模式(这里是 DTD)映射成一个对象模式,接着把

31、对象模式映射成数据库模式。这两步映射可以随 意的被结合在一起为直接的 DTD-到-数据库映射, 如同今天多数软件所做的那样。 在考虑这种映射的时候,理解涉及到的对象是特 定于每个 DTD 的,而不是来自 DOM 的对象是很 重要的。特别是,这些对象建模在 XML 文档中的 数据,而 DOM 建模 XML 文档的结构。 6.3 XML数据库数据库 XML数据库方式充分考虑了XML数据本身的特点,针对这 些特点进行存储和索引。在该方式下,既可以实现细粒度 的查找和更新,也不需要将XML文档拆分成多个部分进行 存储。 XML数据库为XML文档定义了一个逻辑模型,并根据这个 模型存取文件。这个模型包括

32、元素、属性、PCDATA和文 件顺序。XML数据库以XML文件作为其基本的逻辑存储单 位,就好像关系数据库中数据表中的记录一样。XML数据 库对底层的物理存储的实现模型没有固定的要求,它可以 建立在关系型数据库、面向对象数据库或层次数据库之上, 甚至采用特定的存储格式 总之,XML数据库是为存储XML文档并保 持其完整性而设计的,存储时以XML文档 为基本存储单位的一种数据存储方式。 XML数据库不是一种全新的数据库模式, 它并不是要取代现存的数据库模式,而是 为人们处理XML文档提供一种更方便的存 储方式。 XML是一种基于SGML简单灵活的元语言, 具有良好的数据存储格式、可扩展性、高 度

33、结构化、便于网络传输等特性,这些特 性使得XML本身非常适用于数据库间的信 息交互。所以,XML技术和数据库技术的 结合就成为必然的趋势,以XML为中介实 现数据库之间的信息交互就成为XML技术 应用研究的热点。 XML 数据库是一种Web 数据库,它是可以对XML 文档进行 存取管理和数据查询的数据库,是一个能够在应用中管理 XML 数据和文档的数据库系统。简单一点说,XML 数据库 就是一个XML 文档的集合,这些文档是持久的并且是可以 操作的。 由于XML 这种语言的特点是可以自己定义数据结构。采 用这种数据传输格式可以搭建起一个独立于数据库的网关 平台,它屏蔽了数据库的异构性,也屏蔽了

34、接收和发送数 据的两端在实现应用所采用的编程语言上的异构性。所以 这种基于XML的数据库网关平台不会影响原有系统的使用, 可以实现平滑的升级和移植,这对于企业升级是非常有意 义的 6.3.1 XML技术的基本思想 20世纪60年代,IBM公司的研究人员发明了第一 种现代标记语言通用标记语言(Generalized Markup Language,GML)。GML可以用于标记 任何数据集合的结构,同时它也是一种元语言 (meta-language),即能够描述其他语言及其语 法和词汇表的语言。 1986年, SGML被国际标准化组织(ISO)接受 为国际性的数据存储和交换的标准,并收录在 ISO

35、 8879当中。Web技术的出现和进步将对工业 界的发展和人类的通信行为产生的巨大影响,因 此,GML的问世具有重要的意义。 1996年,W3C组织开始设计一种可扩展的标记语 言,它将SGML的强大的灵活性和完善的功能与 HTML技术结合起来。这就是后来的XML语言。 XML重新定义了SGML的一些内部值和参数,去 掉了大量的很少用到的功能,这些繁杂的功能使 得SGML在设计网站时显得复杂化。XML保留了 SGML的结构化功能,这样就使得网站设计者可 以定义自己的文档类型,XML同时也推出一种新 型文档类型,使得开发者也可以不必定义文档类 型。 XML是一种界定文本数据的简便而标准的方法。 X

36、ML不关心任何视觉表示形式,只关心数据本身。 XML的标记用来说明你所描述的概念,而属性则 用来控制它们的结构。在这样的描述机制下, XML的数据是开放的。XML能够在不同的用户和 程序之间交换数据,而不论其平台如何。它的自 描述的特性使其对于B2B和企业内部网解决方案 来说是一种有效的选择。并且无需协调就可以在 程序之间共享数据。所以,你可以定义自己所设 计出的语法并同其他人共享。 格式正规的XML XML的语法规则是XML进行工作的基础。 最基本的,格式正规的XML会遵守W3C的 XML 1.0推荐标准的语法要求。吸取HTML 松散格式带来的经验教训,XML一开始就 坚持实行良好的格式。

37、我们先看HTML的一些语句。 1.sample 2.sample 3.sample 4.samplar 在XML文档中,上述几种语句的语法都是错误的。因为: 1所有的XML标记都必须合理嵌套; 2.所有的标记都必须要有一个相应的结束标记; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用括起来; 所以上列语句在XML中正确的写法是 1.sample 2.sample 3.sample 4.samplar 另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或_ (下划线) 开头; 3.名字中不能包含空格; 4.名字不能以字母 xml

38、 (或 XML 或 Xml .) 开头; 文档类型定义 文档类型定义( Document Type Definition,DTD)是一 种保证XML文档格式正确的有效方法,可以比较XML文档 和DTD文件来看文档是否符合规范,元素和标签使用是否 正确。一个DTD文档包含:元素的定义规则,元素间关系 的定义规则,元素可使用的属性,可使用的实体或符号规 则。 DTD文件也是一个ASCII的文本文件,后缀名为.dtd。 调用DTD文件的方法有两种:直接包含在XML文档内的 DTD和调用独立的DTD文件。 数据建模 XML技术的主要优势之一就是XML词汇表的高效率。词汇表是元素及 其属性、以及你所指定

39、的文档结构的规范。一个有效的词汇表,是创 建良好的支持XML的应用程序的重要基础。 XML数据模型比关系数据模型更加丰富,同时也更加复杂。XML数据 模型不仅允许对复杂的数据进行建模,而且会保留层次关系和数据中 的文档顺序。文档顺序和层次关系是通过基于XML节点标识符的排序 维护的。 将结构化数据存储在关系型结构中,可以获得更好的性能。但如果数 据是半结构化或非结构化的,则可以选择使用XML数据模型来进行建 模,加入XML标记。如果把结构化的数据用 XML数据模型来存放, 则会影响数据访问的性能。 文档对象模型(DOM) 在文档对象模型DOM中,应用程序所操作的XML文档不 是一个普通的文本流

40、,而是一个对象树。程序可以十分方 便地查询或修改对象及其属性,这里的属性可以是与当前 对象对应的元素或子元素,也可以是它所包含的文本内容。 文档对象模型DOM就是一个操作结构化文档的应用程序 编程接口(API),它定义了XML文档的逻辑结构以及对 XML文档进行各种操作的方法。通过DOM模型,应用程 序设计者可以十分方便地创建XML文档,遍历XML文档的 结构,增加、修改、删除文档的元素和内容。DOM标准 接口的提出大大简化了应用程序中对结构化文档处理操作 XML简单API(SAX) 操作XML文档的另一个最主要的编程接口是SAX(Simple API for XML)。SAX提供了一种事件驱

41、动的模式去处理XML文档,SAX解析 器处理XML文档时,当遇到元素开始、元素结束、文本、文档的开始 或结束等时,它会发出相应的事件。应用程序设计者就可以有选择地 决定对哪些事件进行处理和如何处理. SAX解析器在处理XML文档的过程并不创建对象,而只是将相应的事 件传递给相应的应用程序,由应用程序决定如何处理。SAX解析器在 解析开始的时候就开始发送事件。当解析器遇到文档开始、结束,元 素开始,结束和文本的等的时候,相应的应用程序代码会收到一个事 件。应用程序就可以立即开始执行,得到相应的结果,而不需要等到 整个文档被解析完毕。 转换XML 转换(transformation)是XML技术中

42、一项功能强大的技术。通过转 换,应用程序设计者可以把一套规则应用在一个文档上,将这个文档 转换成另一种形式的文档。在运行的时候,当决定要进行哪一种转换 时,就可以将相应的规则应用到文档上并进行转换。对于电子商务中 的B2B模式以及供应链管理方面的应用来说,这项功能就显得特别重 要。一种被称作可扩展样式语言XSL( Extensible Style Language) 是用来定义XML文档样式的语言,它能使得客户端的WEB浏览器控 制文档的表示形式,从而不需要再与服务器进行交互通信。可扩展样 式表语言转换 (XSLT)主要用于识别XML文档并使用XSL样式。其目的 是将某个XML文档的内容转换为

43、另一种格式或不同结构的文档。虽然 XSLT并不是一种通用的转换语言,但它的灵活性还是相当好的,利 用XSLT,你可以进行许多XML中的转换、排序和组织操作,而不需 要自己编写程序代码来实现。只需要根据元素显示的先后关系编写 XML的转换规则就可以了。 链接和查询 链接是在标记语言当中一个很受欢迎的特征。在关系型数据库中,数 据表会形成一个链接自身的表单,使用外键获取另一个表的数据。任 何一种技术要想很好地应用于稳定的数据库中,就必须提供某种与数 据主体链接的能力。XML也提供了这样的能力。XML的使用者经常希 望将一个XML文档与另一个XML文档链接起来,或者将一些非XML的 内容与XML文档

44、链接起来。因此,链接是XML研究者们投入很大精力 进行研究的重要原因。XML链接可分为简单链接和扩展链接。目前, XML解析器中并没有对链接提供标准的支持,但有些解析器提供了实 现的链接的常见形式。 XML技术的研究者们感兴趣的另一个领域是查询。查询技术是十分重 要的。XML使用者经常要通过某种途径把一些规则传递给XML解析器, 从而获得符合这些规则的文档片断集合。具备了这种能力,一个XML 文档就可以看成某种类型的数据库。除了有类似于数据库查询的特征 以外,XML的查询也是转换操作的中心。 命名空间(Namespace)和模式(Schema) XML技术的开发者在近几年提出了解决XML文档结

45、构自动检测的新技术,即 XML的模式(Schema)和命名空间(Namespace)。 所谓命名空间,是指一组保持唯一的名称,是在逻辑上相关的任何一组名称, 而且每个名称都必须唯一。命名空间是一种层次的结构。使用命名空间更容 易保证产生唯一的名称。要保证名称的全球唯一性,是一件很困难的事情。 但如果将唯一性限制在一个比较窄的语境中,就会变得简单得多。命名空间 的层次性就提供了这样一种环境,只需要保证在同一个命名空间里名称唯一 就可以了。 在将一个新名称添加到某个命名空间中之前,命名空间的管理机构必须确保 该命名空间中没有这个新名称。在一般情况下,这是非常简单的事情,因为 它属于子命名系统,子命

46、名系统中保证名称唯一是比较容易的。然而,在某 些情况下,这也可能会变得相当复杂。当今的许多 Internet 命名机构就是现 实中一个很好的例子。如果在加入新名称时不检查唯一性,将会破坏命名空 间,这样一来,某些没有多义性的名称也无法被正确引用。如果出现这种情 况,这组名称将不再算是正式的命名空间了。根据定义,命名空间必须确保 它的成员具有唯一性。命名空间还必须具有自己的名称,使用者需要通过命 名空间的名称引用命名空间里的成员。 传统的DTD技术存在许多不足之处。因此 W3C 在提出最初的 XML 规范的几年之后 开发了 XML Schema 规范。模式 (Schema)技术是用来代替DTD的

47、。模式 可以定义能在DTD中使用的所有文档结构, 它还可以定义数据类型和比DTD更复杂的 规则。因此,它比DTD更加强大完善。 6.3.2 XML数据库的分类 XML数据库分为基于文本的XML数据库和 基于模型的XML数据库两个大类。 基于文本的XML数据库 基于文本的XML数据库将XML以文本的方式进行存储。它 可以是操作系统中文件系统中的文件的形式,或者是关系 数据库中的BLOB数据,或者特定的文件格式。索引的方 式对所有基于文本的XML数据库来说都是基本一样的,它 可以使查询引擎很方便地跳到XML文档内的任何地方。这 就可以大大提高数据库存取文件或文件片断的速度。 基于文本的XML数据库

48、与层次结构的数据库非常相似,当 存取预先定义好层次的数据的时候,它比关系数据库更加 方便高效。和层次结构的数据库一样,当以其它形式(如 转置层次)存取数据时,XML数据库也会存在不足。它不 能像很多关系数据库那样使用逻辑指针,使相同复杂度的 查询以相同的速度完成。 基于模型的XML数据库 它根据XML文档构造一个内部的模型并根据这个模型进行存储。至于 具体的存储实现方式则由数据库的具体方式来决定。有些实现方法将 特定的模型存储于现有的DBMS,如关系型数据库或面向对象数据库 中。例如采用DOM模型来表示XML文档,在关系型数据库中存储 DOM时,就会有对元素、属性、PCDATA、实体、实体引用

49、等进行分 别存储的表格。而其它数据库一般使用为特定模型专门设计和优化的 专有存储格式。 使用专有存储格式的基于模型的XML数据库,如果以文件的存储顺序 读取文件,其性能和基于文本的XML数据库相似。这是因为这种数据 库大多在节点间使用了物理指针,这样其读取性能和读取文本差不多。 和基于文本的XML数据库一样,如果数据的读取顺序和存储顺序不同, 基于模型的XML数据库也会遇到性能上的问题。 6.3.3 XML数据库的主要特点 以文档集合为中心的管理方式。现在,大 部分的XML数据库都支持集合,其作用相 当于关系数据库中的表(记录的集合)和 文件系统中的文件夹(文件的集合)。在 XML数据库中,X

50、ML文档放在集合中进行 管理。一个文档集合把一类文档聚集在一 起,方便用户操作。集合级别上的查询、 修改操作都会反映到集合内的每个文档。 以XPath为主的查找方式。大多数的XML数 据库都支持一种或者多种查询语言。最常 用的是XPath的查询方式。而现有的XML数 据库一般都不能支持关系数据库中的最普 遍的SQL查询语言。XPath是基于XML文档 树形模型,给出从某个结点起的查询路径, 搜索文档。目前,XPath作为数据库查询语 言还有不少缺陷:不能分组、排序、连接 等。 XML数据库一般都为用户提供操作XML的 应用程序编程接口API。它提供数据库连接、 浏览元数据、执行查询和返回结果的

51、方法。 返回结果通常是XML字符串、DOM树。如 果查询返回结果是多个文档或文档片断 (Fragment)的话,通常都会提供枚举这 些结果的方法。对于以Client/Server模式运 行的数据库产品,还可以将结果通过网络 协议(如HTTP)回传给客户端。 事务、锁定和并发方面的支持还不足。如 今,很多XML数据库都支持事务处理,包 括事务的提交以及回滚。但是,锁的粒度 通常比较大,对整个文档的而不是对文档 片断(Fragment)的,所以多用户并发性 的支持相对较低。具体的并发程度取决于 应用程序以及文档的构成。 基于DOM的数据更新方式。对于关系数据库,采 用SQL语言进行数据更新是非常方

52、便的。但对于 XML数据库而言,XPath, XQuery查询语言还没 有支持数据更新的功能。现在常见的一种方法是 先把数据转换成DOM对象,再对DOM对象进行数 据更新。这种方式的不足是占用较多内存(生成 DOM对象会占用较大内存),时间效率也不好, 因为要先通过解析生成DOM对象,再对DOM对象 的数据进行更新,再进行转换后保存。 保持完整的XML文档。这是它的一个重要 特性。与其他方式相比,XML数据库的一 个最重要特性是它可以为XML文档提供了 保持原样的功能。就是说可以将XML文件 存放在XML数据库中,而且再取回同样的 XML文档。对于以文档为中心的应用程序 来说非常重要,因为实体

53、应用、注释和处 理指令是这些文档不可缺少的组成部分。 特别是对于法律和医学领域中格式不允许 随意窜改的数据文档。 XML数据库并没有对数据的规范化作强制的要求, 如果使用不当,使用XML数据库很容易设计出一 些不合理的,易于出错的存储结构。因此,在将 文件存入XML数据库之前,需要注意XML文档的 结构。XML数据库的规范化和关系型数据库的规 范化一样,其主要目标是要求文档的设计保证数据 不会重复存储。两者的不同在于XML支持多值属 性而一般的关系型数据库并不支持。这样就有可 能以一种在关系型数据库中难以实现的方式来规 范XML数据库的数据。 与数据规范化密切相关的是引用完整性。引用完 整性即

54、相关数据的引用指针的有效性,是保持数 据库数据一致性的必要条件。如果你的销售订单 含有一个客户代码,而相应的客户信息并不存在, 这对你没什么好处。发货部门不知道往哪里发货, 而财务部门不知道给哪里寄发票。在关系型数据 库中,引用完整性意味着确保外部键指向合法的 主键,也就是说,对每个外部键都要检查相应的 主键记录。在原生XML数据库中,引用完整性意 味着XLink或其他专有链接机制指向合法的文件或 文件片断。 XML的内容和应用分开,结构化,自描述 性,开放性等特点,使基于XML的数据库 有以下新特性: (1)可实现异构数据库间数据的共享 (2)将比列可观的处理工作从服务器端转 移到WEB客户

55、端,提高了系统运行效率 (3)实现了同一数据以不同的浏览形式展 现给不同的用户 XML 由于具有可扩展性、与平台无关性等 特点, 使其在Web 数据库应用中具有以下新 优势: (1) 实现异构数据源数据的集成; (2) 将大量处理任务转移到客户端, 减轻了 服务器端的负荷, 提高了系统运行效率; (3) 客户端可通过编程对数据进行二次处理, 提高了数据复用性. XML 元素比关系具有更多的固有的灵活性。 一个XML 元素可以包含任意数量的特性(作 为子元素或属性) ,并且每个子元素可能包含 不止一个数据项。这就是XML 的分层结构。 这个特性对于工艺卡片信息的描述尤其重 要,如下是一个存储工艺

56、卡片信息的XML 文 件(作了适当简化) : 车工艺基准 三相异步电动机 1 清江机械加工工序卡片 工序卡片 工步号;工步内容;工艺装备;主轴转速; 切削深度;进给次数;手动 1 车工艺基准,保证尺寸156 及6 ,要求全批 统一. 2 粗车轴孔29 0. 2. 游标卡尺 XML 的另一大优势是它存储数据的形式是可读的, 即人可以直接阅读和编辑XML 文档,而数据库中的 表不通过数据库管理系统是无法访问的。另外,对 于编程方面,XML 还有一些类似于面向对象编程语 言中的对象的特性,如元素类型、命名属性和表示 层次结构的能力,这个特性使XML 能成为数据表示 的基础。如果信息的形式比较复杂,个

57、别字段非常 大且复杂,数据库不大但对可伸缩性要求较高,而数 据类型不是十分重要,那么XML 数据库的优势将十 分明显。 一般CAPP系统包括确定加工方法,选择加 工设备,进行工艺路线安排和工序设计等 活动。的实质就是:把以特征为基 础进行描述的产品设计信息与以工作基元 为基础进行描述的制造资源信息进行匹配, 最终生成工艺规程的过程。因此可以认为, 通用化系统,就是一个由推理机制 和支撑知识库两部分组成的、且相互完全 分离的系统程序。 6.3.4 XML 数据库的模式设计 XML数据库的模式设计分为“概念模式” 的设计和“物理模式”的设计。 数据库概念模式设计 XML 数据库是由很多XML 元素

58、的集合组成, 例如在网络化CAPP 系统中存储某一个零 件的所有卡片信息的XML文件为: 通过如下的方法可以转换成一个关系型的模式: 每个元素变成表(关系) ; 每个XML 属性变成列(关系型属性) ; 一个元素的每个子元素变换成表中的列,这个表与 子元素指定的表之间具有一个外键约束 转换后的关系如下: Cards( Part ID , PartName , Card) Card( ID , Name , Template , Instance) 反过来转换是一样的道理。从这个转换对比可以看 出,XML 中的数据(存在方式可以是内容、属性值、元素名 等) 就相当于关系模式中的字段,XML 中数

59、据的相互位置关 系就相当于关系模式中元组与元组的关系及元组与字段的 关系。设计好这两个方面,就构建了一个XML 数据库的简 单概念模型。 从图5 还可以看到,XML 数据库的这个模型与对象数据库 十分相象,因为它同样也是由节点组成的,并且每个节点都 可以包含异类数据,而XML 数据库节点异类的程度大部分 取决于用于定义XML 文档结构的特定DTD 或模式 物理模式设计 对几个主要的数据模型用类封装的形式简 单的说明实现的过程: 文档 文档必须具有一个名字和一个根元素。首先创建 一个文档:CreateNewDocument (name As string) , “name”是一个唯一标识,创建成

60、功则返回一个 XMLDocument 对象;其次是访问文档, 主要包括 创建一个根节点:CreateDocument Element ( document As XMLDocument , tag Asstring) ; 访 问根节点: GetDocument Element ( document As XMLDocument) 。 元素 元素是以某种方式标记的,计算机能识别的文档的组成部 分。是一个具有类型名、属性集和字符数据的集合,它可 以包含其他元素和属性。它下面可以再有一个元素的集合。 所以创建的操作就包括创建属性、字符数据区和元素等, 如下:CreatAttribute (eleme

温馨提示

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

评论

0/150

提交评论