[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [xml-dev] XML Database Decision Tree?
- From: Jonathan Robie <jonathan.robie@softwareag.com>
- To: xml-dev@lists.xml.org
- Date: Wed, 31 Oct 2001 10:37:05 -0500
I think the world is currently in a state of schizophrenia. Both relational
and native XML databases offer only part of the solution to a problem that
we all keenly feel. Both the database and the web server / application
server would like to be the center of the world.
The original relational database scenario was to use a relational database
for data integration, building the integrity constraints into the database,
and placing the database firmly at the center of most program design. These
days, the center for data integration, data exchange, and a great deal of
our programs is the web server, and much of the data that is exchanged is
XML. The process of exchanging data is key, and the data we exchange comes
in a wide variety of formats.
Traditional relational or hierarchical databases were never that good for
data integration because they were too rigid. However, they are really good at:
- transactions
- security
- reliability
- scalability
- declarative integrity constraints
- powerful queries (relational only)
Just about everything I do that is XML-centric and involves data exchange
is a lot better off if I have all of these properties. On the other hand,
if I have information coming in standardized XML formats, which have a
carefully designed structure and are often used in the same way by many
companies, it is often nice to be able to use this structure directly.
Some XML databases are actually quite good at transactions, security,
reliability, and scalability; others are good for some of these. (Others
offer little core database functionality.)
XML is not very good at declarative integrity constraints, and I do not
know of any XML databases that have a good story on this front. I also know
of no XML databases that support triggers.
The XQuery query language will give XML databases largely the same level of
functionality as SQL, but for a richer data model. It is still under
development, though. Adding updates to XQuery gets another level of
database functionality, and I know that several vendors are considering
doing this whether or not updates make it into XQuery 1.0. Querying using
only XPath is very limiting for typical SQL-like applications.
At the same time, relational vendors are racing to provide better support
for XML and for messaging applications.
So what are y'all doing to integrate your databases with the web server?
What are the layers of software in between? Where is the missing
infrastructure that you are currently programming around? Does the current
trajectory of relational and XML database vendors leave big gaps, or do you
think we will cover your needs in the next few years?
Jonathan