On Fri, Jul 10, 2009 at 9:05 AM, Mtekel
I have a question, whether MonetDB/XQuery is native XML database or not.
The term "native XML database" is mainly used for either marketing or for religious discussions. It sounds quite nice, for instance, if you say your DBMS can handle XML "natively."
From a technical point of view, the term does not make any sense. There is no "native" way of representing tree-shaped XML data on a linear (or at best 2D) harddisk platter, or in a linearly addressed memory. You have to linearize your XML data in some way.
A more meaningful question would be whether a system uses a storage and processing model based on relational technology. This question could be answered with "yes" for MonetDB. MonetDB/XQuery linearizes XML data using a relational table model. Tables are then stored using MonetDBs existing techniques. All query processing is based on a relational model, too, though in many critical cases we use tuned algorithms that "know" about the tree origin of their input tables. You find some information on this in the SIGMOD 2006 paper that Lefteris mentioned, or in our VLDB 2003 paper on "staircase join." There are pros and cons of the relational approach taken in MonetDB/XQuery. The big pluses are that we inherit the enormous scalability that relational systems have today, which allows MonetDB/XQuery to process gigabytes of XML easily. Also, since the relational model a has very nice and sound conceptual model, we can do quite aggressive optimizations. On the negative side, the efforts of query compilation and optimization won't pay off if you query is very complex, but operates on small data sets only. You find a papers that describe a bunch of tricks we can play with relational query representations on the Pathfinder website: www.pathfinder-xquery.org. Best regards, Jens -- Jens Teubner, jens.teubner@inf.ethz.ch ETH Zurich, Systems Group Haldeneggsteig 4 / IFW B 48.3 8092 Zurich, Switzerland