Hi Blair,
I am probably not the best person to persuade you of the benefits of using a database, but I will try and give some pointers.
When asking “why use an XML database?” it might be helpful to ask “why use a database?”.
Databases offer several advantages over plain filesystem access, such as: transactionality, access isolation levels, simplified backup/restore, scalabilty, standardized query languages, APIs and so forth.
Tamino offers these features (and more!) for XML documents.
So, whereas with a filesystem based approach you would need to implement code to validate documents against a DTD/Schema, query documents, prevent simultaneous updates, etc.; if you store your documents in Tamino you can use its existing functionality to do all these things.
Where Tamino particularly stands out from using an RDBMS to store XML documents is the area of query and retrieval.
As Tamino is storing the documents “natively” (rather than storing the whole file in a big VARCHAR or “shredding” it into multiple VARCHARs), it is much faster for querying and retrieving the matching documents.
Why? Well, if a whole document is stored in a VARCHAR (or a flat file, for that matter) the whole file needs to be processed in order to evaluate whether it meets the query criteria or not. (Whereas Tamino preserves the structure, so it can map the query directly to the element within the document, rather than processing the whole document.)
This drawback with an RDBMS solution can be somewhat circumvented by decomposing the XML document into multiple columns (this is commonly known as “shredding”), but whilst this might speed the queries it requires that the documents be re-assembled (“un-shredded”?) before they are returned. Meaning: extra processing cycles.
This approach also requires that the developer do some amount of work to handle the composition/decomposition of the XML documents, which means: if the document structure changes, the code needs to change too.
If you need to retrieve a fragment of a document (i.e. a sub-tree), this is easy to do in Tamino - but not so easy with a home-grown solution.
These are the few ideas which immediately spring to mind. I’m sure you can find more - probably even more convincing - information in the Tamino literature.
Cheers,
Trevor.
#webMethods-Tamino-XML-Server-APIs#API-Management#webMethods