It is hardly surprising that there is a certain amount of interest among our customers over the relationship between the two “pures” that are shipped from IBM Information Management. As the architect for pureQuery, here's my perspective on it.
Let’s begin by looking at each of the “pures” independently:
pureXML was delivered first. It refers to the technology that was shipped in DB2 V9 (aka“Viper”) that provides a new query language, new storage technology, new indexing technology, and other features to support XML data. (See this article by Cindy Saracco for a good introduction). The "pure" in "pureXML" was chosen to indicate that XML data is stored and processed in its inherent hierarchical structure, and that XML data is *not* converted to relational format and also not stored as text. In other words, DB2 pureXML offers the "purest" from of storing and managing XML data, which results in maximum performance and flexibility. "Pure" means no compromises and first class relational-XML integration.
pureQuery refers to a data access platform that simplifies developing, managing, securing, and optimizing Java data access. It consists of tools (Data Studio Developer includes such tools), a runtime, and the pureQuery API. The reason security and optimization are in the definition is because pureQuery can help developers code data access in a way that can help optimize performance. And also, the ease of switching to static SQL when accessing DB2 data help with both performance (static generally runs faster) and with security (package level security vs. table level, also avoidance of SQL injection), and with managing the development environment (package versioning, etc). Note that although pureQuery refers to Java data access right now, we’re actively investigating how we can bring the pureQuery benefits to other dynamic access as well.
So how did this platform get the name pureQuery? It didn’t start out that way (as is often the case with new products or technologies). We had two internal code names for the project, Data Zero (because it’s the data access layer for Project Zero) and JLinQ, because it compares very favorably with Microsoft's LINQ initiative (all the power of database access without having to change the C# and Visual Basic languages – we achieved all the major features of LINQ but stayed pure standard Java). pureQuery embraces the full database access without watering down the SQL or database capabilities. It avoids least common denominator approaches that dilute the ability to access what you really need in a database and integrates all aspects of the life cycle in both runtime and tooling, "Pure" means no compromises and first class Java-SQL-database integration.
As the project moved closer to release, it was time to choose a name. Because the project represented application plus database integration at what we feel is the best, truest form, without all the mess that sometimes bogs software down, early users called it "pure data access" or "pure data query (PDQ)." The pure concept, and the PDQ acronym, really resonated with the marketing team (the same team that named pureXML), and the pureQuery name was born.
So, that’s how pureQuery got its name. Is there a technical relationship between pureXML and pureQuery? The data web services and XML result handler are the first parts of the integration and we are rolling out more XML as we go. (And pureQuery tools (Data Studio Developer) provides support for XML data as well. But for now anyway, the relationship between pureXML and pureQuery is primarily that of being the new cool kids on the block.
-- Steve Brodsky