关系数据库中的第一代 XML 支持是切分(或分解)文档,以适应关系表格或将文档原封不动地存储为字符或二进制大对象(CLOB 或 BLOB)。这两个方法中的任一种都尝试将 XML 模型强制转换成关系模型。然而,这两种方法在功能和性能上都有很大的局限性。混合型模型将 XML 存储在类似于 DOM 的模型中。XML 数据被格式化为缓冲数据页,以便快速导航和执行查询以及简化索引编制。
pureXML在以下领域具有显著优势:
存储:pureXML 技术将以“节点级”(而非“文档级”)粒度存储 XML。在数据库中,物理存储层的主要存储单元是节点。每一页中都存在一个节点,而其它的节点则来自相同或不同的文档。每个节点不仅连结其父节点,还连结 其子节点。
因此,浏览到某个节点的父项、同级项或子项的效率都非常高,只要下一个引用的节点在同一页,其遍历速度将比指针的遍历速度还要快,无需重写整个文档 即可增加或减少节点,或者将节点重新部署到其它页。
索引机制:管理着数百万的 XML 文档的 XML 应用程序并不罕见,因此要提供高查询性能就要为大量的 XML 数据编制索引。DB2 支持在 XML 列上建立路径特定的索引,因此元素和属性常用作谓词,且可以编制跨文档连接的索引。
新的 XML 值索引可有效评估XML 模式表达式,从而提高 XML 文档的查询性能。与传统的关系索引相比较,在关系索引中,索引键由用户指定一个或多个表格列组成,而 XML 值索引则使用特定的 XML 模式表达式(XPath 的子集,XPath 不包含谓词等等)来编制路径和 XML 文档(存储在一个 XML 列中)中的值的索引。如果值不是在文档中指定的,则该索引还可以在插入时通过模式来填充默认的属性和元素值。
创建索引时,您可以指定要编制索引的路径和索引类型。可以编制与存储在该列中的 XML 文档中的路径表达式以及路径表达式集匹配的任何节点的索引,而且该索引可以直接指向存储中的节点(它与其父节点和子节点连接以便于快速浏览)。索引条目并 不是提供访问文档开头的索引,而是包含实际文档节点的位置信息。因此,该索引可以快速直接访问文档中的节点,并避免文档遍历。
查询:XQuery,即查询 XML 数据的一种新语言,用于处理不同的模式,包含诸如序列(而非 SQL 中的集)、多嵌套序列和稀疏属性。XQuery 还可以支持不同种类的模式以及动态的结构更改。
IBM 实施不包含独立的 XQuery 或 XPath 处理程序。基本的 XQuery 和 XPath 直接嵌入到查询引擎中。该查询编译器自身是双语的,带有两个可互操作的查询语言解析程序 — 一个用于 SQL,另一个用于 XQuery — 以产生查询图表模型(用于处理关系和 XML 数据)的新变量。因为中间的查询表达法是中性语言,XQuery、SQL 以及 XQuery 与 SQL的组合将编译成同样的中间表达法,经过同样的重写和转化,以类似的方式优化并产生类似的可执行代码。无论使用什么语言来指定查询设计,此过程都将产 生最优的互操作查询设计。
因为这两个解析程序可以相互操作,所以您可以在同一语句中混合使用 SQL 和 XQuery,从而使搜索功能更强大:在 XML 文档中进行查询并从 SQL 返回其片断。
DB2 9中的pureXML支持提供了用于管理XML数据的高效且通用的功能。 对于许多XML应用程序而言,性能是重中之重。 DBA以及应用程序设计师可以尽其所能来确保良好的性能。 首先,对于平衡的CPU /内存/磁盘配置,表空间和缓冲池调整,锁定,日志记录,查询执行计划等,有所有传统的DB2性能准则。 所有这些主题在DB2以前的文章中都有介绍(请参阅参考资料 ),并且在DB2中管理XML数据时仍然
pureXML技术及混合型数据库的出现,超越了关系型数据库固有的局限性,为数据库的应用及开发开辟了新的领域。其意义不仅仅是提供了一种存储XML数据的更有效的方式,可用于广泛使用XML数据的各类领域,同时由于pureXML所代表的层次型数据组织方式,使得我们有了两种关系型和层次型两种数据建模的方法,即使是对于传统非XML的关系型数据,在某些情况下将传统关系型的数据转化为层次型存储也将带来巨
DB2 9 引入了 pureXML 支持,这意味着 XML 数据将以其固有的分层格式被存储和查询。为了查询 XML 数据,DB2 提供了两种语言,SQL/XML 和 XQuery。此外,DB2 9 还具有成熟的 XML 索引功能和对 XML 模式验证的支持。虽然大多数已有的关于 DB2 性能的指南同样适用于 XML 数据,但是本文还将提供其他一些特定于 XML 的性能方面的提示。本文针对 DB2
问题内容: 我一直在研究数据库的升级过程,特别是SQLite类型的数据库。 我被程序如何知道的困扰,“嘿。这个表不存在,让我们创建它吧!” 或“嘿,它确实存在,但后面有三个版本,让我们对其进行更新!” 我的意思是,我可以为每个表的每个版本编写特定的代码(基本上列出了其中的哪些列…),然后将其全部转储到每个表的大型if语句中,或类似的傻事,但这会疯了。-真的很疯狂。 (我会包含该代码,以便你们指出如
第八天.SQLite数据库技术 8.1 SQLite介绍 8.1.1数据库存储 在某些情况下,文件不是有效的 多线程数据访问 需要事务处理 如果应用程序处理可能变化的复杂数据结构 数据库对于创建它们的包套件是私有的 8.1.2 SQLite介绍 SQLite是一个轻量级的数据库,体积大小只用几千字节 一些SQL的指令只是部分支持,例如:ALTER、TABLE 广泛应用在嵌入式移动设备之上。 参阅h
本文向大家介绍浅谈PHP的数据库接口和技术,包括了浅谈PHP的数据库接口和技术的使用技巧和注意事项,需要的朋友参考一下 1、php支持哪些数据库(拥有哪些数据库接口) Adabas D ,InterBase ,PostgreSQL ,dBase ,FrontBase ,SQLite ,Empress ,mSQL ,Solid ,FilePro(只读),Direct MS-SQL ,Sybase ,
下面是一个 XML 技术的列表。 XHTML (可扩展 HTML) 更严格更纯净的基于 XML 的 HTML 版本。 XML DOM (XML 文档对象模型) 访问和操作 XML 的标准文档模型。 XSL (可扩展样式表语言) XSL 包含三个部分: XSLT (XSL 转换) - 把 XML 转换为其他格式,比如 HTML XSL-FO (XSL 格式化对象)- 用于格式化 XML 文档的语言
是否可以用Camunda从数据库中加载BPMN XML,而不是在web应用程序中使用文件中的XML? 我们希望能够动态地添加新的工作流,而不是用定义部署新的WAR,这个想法是添加到数据库中,并通知webapp有新的定义。 谢谢,斯科特。
本文向大家介绍asp控制xml数据库的经典代码,包括了asp控制xml数据库的经典代码的使用技巧和注意事项,需要的朋友参考一下 NO.1--建立一个XML数据库data.xml NO.2--建立对象CreateObject 建立data.xml的对象先 NO.3--选定节点SelectNode 你想操作哪个Node,必须定位到这个节点是不是,先看看这个data.xml有几个Node?? 用一个递归