第7章《XML与数据库》教案分析.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7. XML 与数据库 XML 作为数据交换的标准,更着重于统一数据格式,而不是提供数据库的特性。因此在 XML 应用中,数据库作为数据管理的位置依然没有改变。 管理 XML 数据的方式主要有:传统的关系(或者对象)数据库、中间件和 NXD(Native XML Database)。从技术角度讲,“以数据库(关系型数据库、对象数据库或者是 NXD)为存贮手段,以 XML 为交换载体”的数据管理模式是一种趋势。 7.1 XML 与关系数据库之间的关系 XML 结构比关系型数据库中所使用的关系更有表现力、更加容易表示和描述复杂的对象。但这也给 XML 数据在关系数据库中的存储、查询和更新带来了困难。 7.1.1 XML 数据的存储和管理方式 使用CHAR、VARCHAR 或者 CLOB、BLOB 存储 XML; 将 XML 数据分解并映射到关系表中进行存储; 纯 XML 数据的存储和管理。 混合方式的数据存储和管理; 使用CHAR、VARCHAR 或者 CLOB、BLOB 存储 XML(优点) 可以在关系表中专门设置一个 CHAR、VARCHAR 或 CLOB、BLOB 大对象列来存储 XML 数据,通常将这种方法称为“Stuffing”。 可以对层次结构的 XML 数据进行原封不动地保存,不需要将其中的内容分解并映射到关系表(一个或多个)的多个常规列中进行保存。 在获取所存储的 XML 数据时,无论是查询语句的编写还是具体检索过程也都非常简单,能够保证查询的结果与源文档完全一样(Round-Trip),而不需要在关系数据库管理系统中进行复杂的连接运算,因为存储时并没有对源 XML 文档中的数据进行分解。 使用CHAR、VARCHAR 或者 CLOB、BLOB 存储 XML(缺点) CHAR、VARCHAR 或者 CLOB、BLOB 大对象数据类型并不是专门针对 XML 数据设计的,存在着明显的缺点和局限性。 在对文档进行搜索和查询检索时,开销非常大,因为其中可能保存数 GB 的数据内容,如果仅搜索整个 XML 文档中的少部分内容(特定的元素、属性或子树)、或者查询任务需要频繁执行时,那么开销将显得更加突出。 需要设计新的索引技术提高查询检索的效率; 大对象的更新操作也非常耗时,因为数据库并没有对大对象数据进行任何解析,即使修改其中很少的内容,也必须更新所有的数据。 将 XML 数据分解并映射到关系表中进行存储(优点) 可以将 XML 文档中的数据(元素和属性)分解并映射到关系表(一个或多个)的多个常规列中进行保存(通常将这种方法称为“Shredding”),从而解决前面所描述的、使用大对象存储 XML 数据时碰到的检索和更新的效率问题。 XML 数据中所蕴含的层次关系在分解时必须采用适当的机制予以保存,以便能够在查询检索之后,重新构造出与源 XML 文档基本一致的数据。 仅使用关系模型,用户可以利用现有的 SQL 工具和代码来直接访问数据库表中存储的信息,而不需要学习新的层次数据的查询语言、以及相关技术,也不需要引入新的索引机制来处理 XML 数据。 将 XML 数据分解并映射到关系表中进行存储(缺点) XML 数据中包含了大量嵌套关系、以及一些无规则的结构,在对其进行分解存储时,会产生大量的数据库表,并且表与表之间存在复杂的参照关系(通过主键和外键的关系来保存 XML 数据之间的层次关系),还可能会使得关系表的规范化难以进行、或者导致关系数据库表中出现大量的空值,这些都增加了数据管理的复杂度。 在进行查询检索时,一方面需要编写复杂的 SQL 查询计划(难以开发、以及对其进行优化),以访问分散的数据;另一方面,在执行查询计划时,需要访问大量的数据库表,并进行非常耗时的连接操作,以恢复分解之前数据之间的层次关系,这将使得查询的效率非常低下。 纯 XML 数据的存储和管理 (优点) 要想真正实现 XML 数据的高效存储和管理,就必须摆脱关系模型的约束和束缚,设计并实现层次数据库。 以层次的格式来存储层次的 XML 数据(以元素或子树为单位,而不是关系数据库中的表或记录),提供新的查询语言(XQuery),引入新的索引机制(值索引、路径索引),从而避免将层次数据模型映射为关系数据模型所带来的性能、模式管理等方面的问题。 本源 XML 数据库 NXD(Native XML Database)打破了 RDBMS 传统数据库一统天下的局面,国外一些机构和公司针对XD 进行了深入地研究开发。NXD 从存储、索引、查询等,都围绕 XML 的特点和标准进行设计。 它没有像关系数据库方法那样繁琐的数据转换,又具有中间件所不具有的数据管理功能,如并发控制、备份和恢复等。 纯 XML 数据的存储和管理 (缺点) NXD 的

文档评论(0)

阿里山的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档