[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] XML and databases
- From: Jim Melton <jim.melton@acm.org>
- To: "'Arthur S Bridges'" <Arthur_S_Bridges@progressive.com>
- Date: Thu, 26 Apr 2007 09:43:15 -0600
Arthur and Mike,
I couldn't let this go by without at least a small comment. (If you
look at the signature block at the end of this message, you'll understand
why.)
Part 14 of the SQL standard, called SQL/XML, provides the ability to use
a relational database system for native XML storage and management (that
is, not "shredded" into many tables/columns). It is true
that, using only the facilities described in SQL/XML, top-level queries
are inherently SQL queries, but the use of XQuery from SQL is fully
standardized. Happily, the technology has been implemented in the
major SQL implementations, although not all of them implement all of the
SQL/XML features. Although I believe that the product made by my
employer has the most complete implementation, I would not claim to be an
expert on what products made by our competitors (or by open source
efforts) do or do not implement.
At least some SQL systems (and Oracle's is among them) also provide pure
XQuery access to XML data stored in the relational store.
I admit that I'm prejudiced, but (unlike Mike) SQL/XML would be among my
first choices. Also among those first choices would be native
XQuery (and even XSLT) access to XML data persisted in an SQL system.
I agree with Mike that very small quantities of data, such as 11MB,
in-memory management is probably ideal, but with the restrictions that
Mike mentioned. If you need transactional control over your data,
isolation among multiple concurrent updaters, etc., then a real
(relational, XML, OO, etc.) database is justified.
Hope this helps,
Jim
At 4/26/2007 09:05 AM, Michael Kay wrote:
Come to think of it,
you didn't mention whether there was any characteristic of the data that
means you can't store it in a relational database. (I tend to forget
about ancient technologies but they still work...)
My experience of
hybrid relational/XML databases is that there's a lot of awkward language
switching involved - you constantly have to remember whether you're in
SQL mode or XQuery mode, which function calls and operators are available
in which mode, and how to escape your multiply nested quotes. Unless you
actually have hybrid relational/XML data (and perhaps even then), they
wouldn't be my first choice.
(And I might be
wrong, but I didn't think SQL Server 2005 had any useful level of XQuery
support anyway.)
For 11Mb I'd be
happy to use an in-memory approach (e.g. Saxon) if it's essentially
read-only, but I'd think twice about it if there's significant concurrent
update traffic.
Michael Kay
http://www.saxonica.com/
========================================================================
Jim Melton --- Editor of ISO/IEC 9075-* (SQL)
Phone: +1.801.942.0144
Co-Chair, W3C XML Query WG; F&O (etc.)
editor Fax : +1.801.942.3345
Oracle Corporation Oracle
Email: jim dot melton at oracle dot com
1930 Viscounti Drive Standards email: jim
dot melton at acm dot org
Sandy, UT 84093-1063
USA Personal email:
jim at melton dot name
========================================================================
= Facts are facts. But any opinions expressed are the
opinions =
= only of myself and may or may not reflect the opinions of
anybody =
= else with whom I may or may not have discussed the issues at
hand. =
========================================================================
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]