DB2 V9.5扩展了分解,以提供插入顺序。当将数据分解成多个具有外键关系的表时,这尤其重要。在这种情况下,应该首先填充主表,以保持引用约束。可以使用以 下注释指定插入顺序:
清单18.对模式进行注释,以提供插入顺序
CUSTOMER
PURCHASEORDER
示例代码recxmldecomp.db2和xmldecomposition.db2给出了一些不错的例子,其中分别演示了将递归模式和插入顺序 进行注释并分解到表中。可以在sqllib/samples/xml/clp目录中找到示例代码。
XML索引增强
DB2 9引入了XML索引。可以在数据库中XML文档的特定节点上创建XML索引。索引的数据类型可以是VARCHAR、DOUBLE、DATE或 TIMESTAMP。如果索引的数据类型与XML文档的元素类型不匹配,DB2将插入XML值,但是不会为该值创建索引。
DB2 V9.5为索引引入了一个附加子句REJECTINVALIDVALUES。如果使用该子句创建索引,并且索引的数据类型与正在插入的XML文档中元素的 数据类型不匹配,插入将会失败。如果在插入XML值之后创建索引,而且数据类型不匹配,索引创建也会失败。
对于DB2 V9.5,这种行为是默认的,也可以使用IGNOREINVALIDVALUES子句显式地指定这种行为。
下面的示例将会使用REJECTINVALIDVALUES为customer表的Cid属性创建一个索引。
清单19.XML索引
db2CREATEINDEXindex1ONcustomer(info)
GENERATEKEYUSINGXMLPATTERN
'declaredefaultelementnamespace"http://posample.org";
/customerinfo/@cid'asSQLDOUBLEREJECTINVALIDVALUES
Index顾问程序和优化器增强
索引顾问程序可以用来获得关于同时为XML和关系数据建立索引的建议。通过同时为XML和关系数据建立索引,用户可以获得良好的性能提升。DB2 9.5优化器使用两种类型的索引来优化查询,并帮助选择最佳的查询执行计划。
DB2 DataWeb服务
使用DataWeb服务,可以将DB2 V9.5XML数据作为数据库manipulation(ML)操作的Web服务公开。DataWeb服务(DES)将ML操作(如插入、更新、选择和存 储过程)作为Web服务公开。可以通过Web浏览器、用户客户端使用基于HTTP的SOAP协议(例如POST和GET方法)来访问这些Web服务。通过 在现有数据库工具中集成基于Eclipse的工具,可以对DataWeb服务提供支持。
控制中心也经过了更新,以处理XML数据。
结束语
DB2 9将XML作为一个新数据类型引入,而且提供了处理XML值的基础设施。它提供了一些基本功能,比如查询XML文档、注册模式和验证XML文档、使用 SQL/XML在SQL和XQuery之间交互。DB2 V9.5增强了现有的功能,并提供了更多函数以有效地处理XML数据。