An Operational Intelligence (OI) Analytics Engine is uniquely designed to natively handle XML data and use the XQuery language as its query modeling language. The advantages of this approach over a “flat” data representation and a query language, such as SQL, are:
- Relational tables are flat, whereas most enterprise data (including “business objects”) are naturally represented and passed as hierarchically structured objects, often several levels deep. XML is a natural fit for representing this hierarchical structure.
- Relational tables are rigidly uniform, while XML data tends to be more highly variable. XML is much more adept than relational structures in handling structural variations, typing variations and missing data, and these situations are very often the norm in rapidly evolving systems being developed using agile methodologies.
- Relational data is naturally unordered, while order has a very important meaning in XML data.
- Relational tables have relatively static schemas that can be difficult to evolve, while XML schemas tend to be more extensible, and the “self-describing” nature of XML blurs the data/metadata distinction.
XQuery is the standard query language for XML data and documents and is analogous to the SQL language for relational queries. The XQuery language is rich enough to support navigation within an XML input document, the combining of data from multiple XML inputs and the generation of new XML structures from one or more XML inputs.
For data handling, XQuery has much of the richness of SQL and more—it includes support for sub-queries, union, intersection, difference, aggregate functions, sorting, existential and universal quantification, conditional expressions, user-defined functions and static and dynamic typing, in addition to various constructs to support document manipulation, such as query primitives for element order-related operations.