[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [xml-dev] XML Database Decision Tree?
- From: "Champion, Mike" <Mike.Champion@SoftwareAG-USA.com>
- To: PaulT <email@example.com>,"Champion, Mike" <Mike.Champion@SoftwareAG-USA.com>, firstname.lastname@example.org
- Date: Tue, 30 Oct 2001 19:21:58 -0500
> -----Original Message-----
> From: PaulT [mailto:email@example.com]
> Sent: Tuesday, October 30, 2001 5:28 PM
> To: Champion, Mike; firstname.lastname@example.org
> Subject: Re: [xml-dev] XML Database Decision Tree?
> I think that *you* (as a vendor of 'Native XML' database )
> should give *us*, poor mortals, a couple of realistic
> benchmarks so that it will be obvious for everybody that
> Native XML databases *can* handle realistic
> usecases *much* more efficiently, than
> 'native SQL' databases can.
I could, of course, but then various lawyers would have to shoot me :~)
Seriously, the DBMS industry is rather notorious for licensing restrictions
that prohibit users from publicizing benchmark data "without the permission"
of the vendor. The benchmarks I've seen pretty much validate the line I've
been touting here: XML-enabled RDBMS systems are as fast, perhaps faster
than native XML database systems for simple, regular, easily-normalizeable
XML data. Native XML database systems become significantly, even massively
faster, as the complexity of the data and queries increases.
If by "efficiently" you mean human time rather than computer time, this can
be demonstrated by comparing what it takes to load something like the
Shakespeare plays into various DBs of one flavor or another and performing
some XPath queries. With Tamino (the only one I know how to do this in
offhand) the steps are:
1 - load the DTD (or schema) into the Schema editor (tweak content model to
allow variations and evolution and define indexes if you must)
2 - Define a DB collection based on that schema (2 mouse clicks or so)
3 - Use a simple HTML form or a loader script to load the XML data into the
4 - Enter the URL of the database + "_xql=" + an XPath expression
I guess steps 1-3 could logically be combined *if* all the instances pointed
to their DTD/schema and *if* you didn't want to tweak the schema defining
the storage model. Other than that, I don't see how it could be much more
"efficient." Also, to the best of my knowledge, the analogous process is
considerably more tedious and less automatic in an XML-enabled RDBMS, with
significant restrictions on the XML itself (attributes are problematic for
some tools), requirements to insert markup into the XML to guide the
"shredding" process, significant restrictions on the subset of XPath
supported, and so on. Those more knowledgeable about Oracle or SQL Server
are welcome to set me straight!