I think it would be more accurate to say the MSXML DOM is not a
database, XML itself can be implemented as a "database" or a DOM or just
text. See http://www.dbxml.org one implementation of an xml database,
there are many others. I think its safe to say that XML database are not
mature yet, and will not replace RDBMS's soon (or ever maybe) but they
do exist. The point is there simply seems to be a lack of understanding
what XML is, its not a database or simply tagged text or a dom, it's a
specification for data representation that can be implemented many ways.
For instance the xml database I linked to accepts XPath as a query
language yet it is not a DOM.

Justin Harrell
Vice President Development
Aciss Systems Inc.


-----Original Message-----
From: Brad Wilson [mailto:[EMAIL PROTECTED]] 
Sent: Friday, June 07, 2002 10:52 AM
To: [EMAIL PROTECTED]
Subject: [DOTNET] XML is not a database

Bryan Batchelder wrote:

> In memory databse using XML and Xpath:
> http://www.15seconds.com/issue/010410.htm

While this is an interesting possibility, it presents a few (perhaps
important) problems:

1. Significant memory consumption. For the moment, XPath requires a DOM,
and
   a DOM requires the entire XML file be loaded. If you data is even
   remotely large, this can be a pretty stiff penalty.

2. Significant performance penalty. Loading and parsing the entire XML
file
   before you can perform any search can be expensive. You can minimize
this
   by loading the XML once on startup, but then that grows your
in-memory
   footprint significantly. If you're searching constantly, then that's
   acceptable, but if you're not, then it probably isn't.

3. XML is hierarchic, not relational. It may not fit the data model,
   especially if you have complicated many-to-many relationships. This
could
   be represented well in an object database, but XML is just text.
Those
   relationships need to be stored and re-computed upon load.

4. No complex querying. You can find nodes if you know what you're
looking
   for, but searching based on comparisons and relationships (one of
SQL's
   strengths) just can't be done without significant additional code.

In short, I find the desire to treat XML as a database a little unusual.
They aren't the same thing, and aren't meant to be the same thing. If
performance is the goal here, then believe me when I say that Access is
going to beat the snot out of XPath for complex queries (since you'll
end up
writing additional code to cover XPath's shortcomings), and with less
memory
impact. Plus the code will be done a heck of a lot sooner, which --
let's be
honest -- is typically a major factor in engineering projects.

I wonder where this "XML is a database" sentiment comes from, because it
seems to be awfully prevalent in the engineering community (not just the
Windows community, either). I love XML and use it all the time to
transport
structured data, but this is just a little bewildering for me.

Brad

--
Read my web log at http://www.quality.nu/dotnetguy/

You can read messages from the DOTNET archive, unsubscribe from DOTNET,
or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to