pureXML

pureXML is the native XML storage feature in the IBM DB2 data server. pureXML provides query languages, storage technologies, indexing technologies, and other features to support XML data. The word pure in pureXML was chosen to indicate that DB2 natively stores and natively processes XML data in its inherent hierarchical structure, as opposed to treating XML data as plain text or converting it into a relational format.[1]

Technical information

DB2 includes two distinct storage mechanisms: one for efficiently managing traditional SQL data types, and another for managing XML data. The underlying storage mechanism is transparent to users and applications; they simply use SQL (including SQL with XML extensions or SQL/XML) or XQuery to work with the data.

XML data is stored in columns of DB2 tables that have the XML data type. XML data is stored in a parsed format that reflects the hierarchical nature of the original XML data. As such, pureXML uses trees and nodes as its model for storing and processing XML data. If you instruct DB2 to validate XML data against an XML schema prior to storage, DB2 annotates all nodes in the XML hierarchy with information about the schema types; otherwise, it will annotate the nodes with default type information. Upon storage, DB2 preserves the internal structure of XML data, converting its tag names and other information into integer values. Doing so helps conserve disk space and also improves the performance of queries that use navigational expressions. However, users aren't aware of this internal representation. Finally, DB2 automatically splits XML nodes across multiple database pages, as needed.

XML schemas specify which XML elements are valid, in what order these elements should appear in XML data, which XML data types are associated with each element, and so on. pureXML allows you to validate the cells in a column of XML data against no schema, one schema, or multiple schemas. pureXML also provides tools to support evolving XML schemas.

IBM has enhanced its programming language interfaces to support access to its XML data. These enhancements span Java (JDBC), C (embedded SQL and call-level interface), COBOL (embedded SQL), PHP, and Microsoft's .NET Framework (through the DB2.NET provider).

History

pureXML was first included in the DB2 9 for Linux, Unix, and Microsoft Windows release, which was codenamed Viper, in June 2006.[2] It was available on DB2 9 for z/OS in March 2007.[3] In October 2007, IBM released DB2 9.5 with improved XML data transaction performance and improved storage savings.[4] In June 2009, IBM released DB2 9.7 with XML supported for database-partitioned, range-partitioned, and multi-dimensionally clustered tables as well as compression of XML data and indices.[5]

Competition

DB2 is a hybrid data server—it offers data management for traditional relational data, as well as providing native XML data management. Other vendors that offer data management for both relational data and native XML storage include Oracle with its 11g product and Microsoft with its SQL Server product.

pureXML also competes with native XML databases like BaseX, eXist, MarkLogic or Sedna.

Books

IBM International Technical Support Organization (ITSO) has published the following books, which are available in print or as free e-books:

The following books are also available for purchase:

Education and training

The following pureXML classroom and online courses are available from IBM Education:

gollark: https://www.reddit.com/r/rust/comments/5penft/parallelizing_enjarify_in_go_and_rust/dcsgk7n/I think this just wonderfully encapsulates Go.
gollark: Oh, it also has that weird conditional compile thing depending on `_linux.go` suffixes or `_test.go` ones I think?
gollark: Okay, sure, you can ignore that for Go itself, if we had Go-with-an-alternate-compiler-but-identical-language-bits it would be irrelevant.
gollark: I can't easily come up with a *ton* of examples of this, but stuff like generics being special-cased in for three types (because guess what, you *do* actually need them), certain basic operations returning either one or two values depending on how you interact with them, quirks of nil/closed channel operations, the standard library secretly having a `recover` mechanism and using it like exceptions a bit, multiple return values which are not first-class at all and which are used as a horrible, horrible way to do error handling, and all of go assembly, are just inconsistent and odd.
gollark: And inconsistent.

See also

References

Online communities

Online communities allow pureXML users to network with fellow professionals.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.