第 12 章 xml 技术

22
第 12 第 XML 第第

Upload: davina

Post on 26-Jan-2016

66 views

Category:

Documents


2 download

DESCRIPTION

第 12 章 XML 技术. 本章的重要概念. ( 1 )从 SGML 、 HTML 到 XML 的发展, XML 文档、 DTD (文档类型定义)、 XML 模式, XML 数据库的存取方法。 ( 2 ) XML 查询语言 XQUERY 的基本功能、基本概念,简单查询的表达,各种类型查询的表达,复杂查询的表达。 ( 3 )基于关系数据库 XML 的处理, XML 存储和查询系统体系结构, XML 数据到关系数据库的存储映射,基于关数据库的 XML 查询。. 本章概述. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 12 章  XML 技术

第 12 章 XML 技术

Page 2: 第 12 章  XML 技术

本章的重要概念

( 1 )从 SGML 、 HTML 到 XML 的发展, XML文档、 DTD (文档类型定义)、 XML 模式,XML 数据库的存取方法。

( 2 ) XML 查询语言 XQUERY 的基本功能、基本概念,简单查询的表达,各种类型查询的表达,复杂查询的表达。

( 3 )基于关系数据库 XML 的处理, XML 存储和查询系统体系结构, XML 数据到关系数据库的存储映射,基于关数据库的 XML 查询。

Page 3: 第 12 章  XML 技术

本章概述

随着因特网的快速发展, XML (可扩展标记语言, eXtensible Markup Language )不仅作为 Internet 上的一种数据发布语言出现,同时作为数据交换语言,正应用于其它很多领域如数据交换、标准定一等。同时 XML数据的各种存储与查询的技术也日益成熟,在 XML 查询语言、 XML 数据的存储方法、查询代数、查询优化和索引技术方面等方面出现很多研究成果和成熟方法,绝大多数数据库管理系统厂商均在它们的产品中增加了对 XML 数据处理的模块,同时也出现了专门针对 XML数据的存储系统,并应用在很多实际系统中。

Page 4: 第 12 章  XML 技术

主要内容

XML概述 常用的XML查询语言:XQUERY

基于关系数据库的XML处理

Page 5: 第 12 章  XML 技术

XML 概述 从 SGML 、 HTML 到 XML XML 是 SGML 的一个子集,它试图将 HTML 的简单性

与 SGML 的强大功能结合起来。 XML 的设计目的明确地定位为万维网上的应用。设计工作基于两个重要的准则:易于编写处理 XML 的计算机程序,以及人和系统能花费极少的代价将 HTML 移植到 XML 中。

1996 年 W3C 正式成立 XML 工作组。 1998 年 2 月, XML1.0 被 W3C 正式确认为 W3C 推荐标准。其特点为:

            XML 可直接在因特网上使用            XML 应支持广泛的应用 使用方便,结构简明 表达能力强,适于计算机进行处理

Page 6: 第 12 章  XML 技术

XML 、 DTD 与 XML Schema

一个 XML 文档由序言和文档实例两个部分组成。序言包括一个 XML 声明和一个文档类型声明,二者都是可选的。文档类型声明由 DTD 定义,它定义了文档类型结构。序言之后是文档实例,它是文档的主体,它是 DTD 的一个实现。

XML 文档中最重要的组件是元素( element )。每个元素都有一个类型,类型声明可以放在文档内部或放在外部 DTD 文件中。元素可能具有一组属性(称为属性列表),每个属性说明有属性名和属性值类型。在文档中,用开始标记 < 标签 > 和结束标记 </> 来确定元素的边界。元素之间的包含关系是一种树型结构。一个 XML文档就是一棵有根、有序、带标记的树。

Page 7: 第 12 章  XML 技术

一个 XML 文档

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE book system "http://sidbrc.com/DTDS/bo

ok.dtd"><book year =”1998”> <title>XML 技术内幕 </title> <author><firstname>Natanya</firstname><lastname>Pitts</lastname></author> <price> $25</price></book>

Page 8: 第 12 章  XML 技术

一个 XML 文档

其中的 book.dtd 为 :<!ELEMENT book (title,author*,price)><!ARRLIST BOOK year CDATA #REQUIRED><!ELEMENT title (#PCDATA)><!ELEMENT author (firstname,lastname)><!ELEMENT firstname (#PCDATA)><!ELEMENT lastname (#PCDATA)>

<!ELEMENT price (#PCDATA)>

Page 9: 第 12 章  XML 技术

XML 数据库

纯粹的 XML 存取方法:它是专门针对 XML 格式文档进行存取管理和数据操作的数据库,数据库中的数据和元数据完全采用 XML 结构表示,其底层针对 XML 数据的特点,采用相应的存储结构,而不是采用现有的数据存储工具。

基于关系数据库的存取方法:它是在关系数据库基础之上扩展了 XML 支持模块,它将 XML 数据存储在关系数据库中,在查询时将 XML 数据查询语言转换成关系数据数据库查询语言。

返回

Page 10: 第 12 章  XML 技术

常用的 XML 查询语言: XQUERY

例 12.3 查询每本书的作者人数以及每位作者的名字,语句为:<results> { FOR $book IN //book // 指定变量$book 的取值范围是结点 <book> LET $authors := $book/author // 把变量$authors 赋值为 $book 的子结点 <author> RETURN <book authorCount={ count($authors) }> { FOR $author IN $authors RETURN <author>{ $author/last/text() }</author> } </book> } </results>

Page 11: 第 12 章  XML 技术

基本概念

表达环境 表达式环境指的是一切能影响表达式的最后结果的元素。这些元素主要可以分成两类:静态环境和动态环境。

文档顺序和类型值 类型 XQuery对类型有严格的要求,其类型主要包括 XML的结点类型、 XML schema的原子类型以及一些特别的派生类型。

Page 12: 第 12 章  XML 技术

简单查询

字符表达式 变量 路径 序列 运算符 FLWR 表达式

Page 13: 第 12 章  XML 技术

各种类型的查询 构造查询结果的结构 限定查找的范围 指定查询条件 FLWR 的嵌套 if-then-else 语句 量词 type switch 语句 对查询的结果进行排序 名字空间的约定 Schema 的导入 自定义函数的使用

Page 14: 第 12 章  XML 技术

复杂查询

查询 ref 信息 关联 投影 分组( grouping )

Page 15: 第 12 章  XML 技术

基于关系数据库的 XML 处理

目前 XML数据的存储主要主要有两种方式,一种是基于关系数据库的方法,另一种是纯的 XML数据存储系统。

在 XML 数据和关系数据库之间有两个问题。一个问题是如何将存储于关系数据库中的数据用 XML 的形式表达出来,即 XML 的发布问题;另一个问题是如何将 XML 数据存储于关系数据库中,并能提供基于 XML 查询语言的查询。

Page 16: 第 12 章  XML 技术

关系数据的 XML 发布

基于模板驱动的映射 这种方法的原理是首先定义一个模板,然后在模板中嵌入对数据库访问的命令,这些命令将交给数据库关系系统进行执行。

基于模型驱动的映射 数据从数据库到 XML 文档的传送用一个具体的模型,而

不是用户定义的模型实现的。 ( 1 )表格模型 ( 2 )数据专用的对象模型

Page 17: 第 12 章  XML 技术

XML 存储和查询系统体系结构

关系数据库管理系统

映射关系 数据装载器

XML 文本 查询转换器

XML 查询语句

关系数据库查询语句

结果组装器

XML 查询结果

图 12.2 XML存储和查询系统体系结构图

Page 18: 第 12 章  XML 技术

XML 数据到关系数据库的存储映射

不考虑 DTD 的映射 以边为中心的方法 以结点为中心的映射方法 考虑 DTD 的映射 这种方法是针对不同的 DTD 根据其结构的特点和查询的

方法设置映射关系,在这种方法中 DTD 中的每个元素对应的关系中的一列。

Page 19: 第 12 章  XML 技术

产生映射方法的步骤

简化 DTD 将 DTD 和 xml 文档转换为图的形式 将 DTD 映射至关系表的三种方法 (1) Basic Inlining 的方法 (2) Shared Inlining 的方法 (3) Hybrid Inling 的方法 三种方法的比较与小结

Page 20: 第 12 章  XML 技术

将 XML 文档中数据装入关系表

关系表生成之后便是 xml 数据装入工作,即根据映射关系,将 XML 文档内容存储到关系数据库中。对于 XML文档中的每一个元素,为其分配一个唯一标识UID (类似面向对象数据库中的 Oid ),由它在具有相同标签的元素集中唯一标识该元素。按照关系模式的定义, XML文档中的字符串数据、元素唯一标识构成的层次结构关系及元素的顺序语义等信息被组装成元组插入到数据库视图中。由于 XML 元素和属性值的类型都是字符串,组装时需要转化成视图中字段的定义类型。

返回

Page 21: 第 12 章  XML 技术

基于关系数据库的 XML 查询

需要解决的三个问题 转换使用简单路径表达式的查询至 SQL 查询通过如下步骤被翻译为 SQL : ① 若存在关系表所对应的根结点,则将代表此根结点根路径表达式加入到 SQL查询的 from子句中。

② 路径表达式被翻译为表间的联接(若元素是内联的则不需)。

转换有简单循环的路径表达式至 SQL

Page 22: 第 12 章  XML 技术

小 结

XML 数据的处理技术是近年来学术界研究的热点,同时也引起了工业界的关注。因此这部分的技术正处在高速发展的期间,这方面相关的知识也有很多,如: XML数据的解析, XML 数据的索引技术、 XML 数据的存储技术、基于 XML 的数据交换、集成技术等。

本章先是简单介绍一下 XML 的基础知识和基本结构,然后介绍了一种目前比较常用的 XML 查询语言 XQUERY ,随后介绍了基于关系数据库管理系统的 XML 数据处理方法。如果感兴趣可以就 XML 技术的其他内容进行深入学习。