Xml Database Servers

Two possible definitions:

  1. An ordinary database server that can speak XML. SqlServer 2000 is an example of this. SqlServer 2000 can take http get queries, and will return Xml (at least according to the Microsoft Web Site). Oracle too; Oracle 8 has good XML support, but this means that it has good libraries; it can generate or map XML to relational table, or store XML as-is in large text field.

  2. A database server written from the ground up (or adapted from an object database) for storing XML more efficiently.

Please post more information on the topic, especially examples of products that fit the number 2 description.


Type 2 databases:


From the http://www.dbxml.org/FAQ.html (This is the wrong URL. It should probably be http://www.dbxml.com/, but there is no FAQ anymore. There are different open source and commercial licenses.)

8. So you've moved away from being an Open Source project and now gone commercial?

No, this is not the case. We want to provide an open product that is useful to the Open Source community. At the same time, we need to cover the essentials: food on the table, roof over the head, and better video cards for Unreal and Quake.

We are currently exploring various licensing and distribution schemes that can hopefully satisfy both interests.


Can anyone give a summary of the state of the art of databases that look like graphs of semi-structured data? The article in DDJ was interesting, but it looked like this field was very young. Also, the use of an SQL-derived language spoke to me as a failure. I would think that XML could have a much different query semantic, on the order of a ParadigmShift.

Related question: What's a good, free XML database that you can plug in Unix (hopefully with a low footprint)? I'm guessing it's spelt "Roll your own in Perl."

Funny you should say that. Slowly, slowly, I'm rolling my own in Perl. See http://usemod.com/cgi-bin/mb.pl?CrystalPalace to learn more. -- SunirShah

Databases that look like graphs? The field is young? Can anyone say CODASYL? ...or Total, IDS, etc. Thanks for noticing.

Time for another IndustryLearningExperience, perhaps?


Spuriously semi-random challenge: Consider a ReasoningTree. Alistair points out that reasoning is a graph. It isn't. It's really a hypertree in that there are no cycles, but two branches can join. Cycles make for circular arguments, and that would be bad.

An XML form is typically tree-like but sometimes it has links out. A framework based on XML could legitimately be in the shape of a hypertree then. (it could also be graph like, but that's another problem).

How do you serialize a hypertree so it still makes sense to a human reading it?

Why does it matter if a human can read the linear format? I'm not sure, but I suspect it's related to the indexing requirement of any really whizbang XML database/epistemological framework. Also, it would solve the problem of the ReasoningTree which would be helpful for patterns folk.

I did say semi-random.

Hypertrees are usually called DirectedAcyclicGraphs, aka DAGs.

You serialize a DAG by attaching markers to reused nodes and referencing those, of course. (Well, that's one way, anyway.) I don't know whether there's a standard way to do that in XML (Yes: use ID and IDREF type attributes), but Lisp "s-expressions" are really rather like XML, and in Common Lisp you can say

 (foo #1=(bar baz) #1# #2=(#2#))

to produce a structure that sort of corresponds to this:

 [] -+-> foo
|
+-> [] -+-> bar
|^|
|  ,'+-> baz
+-'
|
+-> [] --.
  \|
`--'
("sort of" because there's more than one way to think about the structure of s-expressions). This notation can cope with graphs that have cycles, like the above, as well as acyclic ones.


CategoryXml, CategoryDatabase


EditText of this page (last edited December 16, 2004) or FindPage with title or text search