Hugh Winkler holding forth on computing and the Web

Wednesday, September 29, 2004

XML vs Relational: Fabian Pascal puts it best in this article. The man says what he means.

I really like that Oracle XDB. If you are going to use an XML DB it looks like their shredding technique comes as close as possible to automating the decomposition of documents onto tables. But only top level documents get inserted into tables -- and those tables are of "XMLType". XDB describes nested elements by new types --domains-- it constructs: good. But I cannot see the storage layout for instances of those types: not good.
Finally, I was hoping XDB would permit me to annotate the XML schemas to fully map instanced documents onto tables of my own design, or onto legacy tables -- but that is not the case. I could write triggers of course to map document constituents onto the tables. But I already could do that!

Tuesday, September 28, 2004

Who knew that Oracle were RESTafarians?

The Oracle 9i/10g XML DB (XDB) exposes a WEBDAV interface. You can drag and drop XML files into folders you can open using Windows Explorer. XDB will notice the new file and "shred" it -- decompose it onto tables it creates at "design time", that is, when you register an XML Schema file for the XML types you'll deposit in the repository.

I am deeply suspicious of XML databases, and of object databases. And XDB applies Oracles object-relational technology to the problem. It really bothers me that there is such a thing a "table type", and that XDB stores XML documents in tables of type XMLType. On the positive side, you can have a column of XMLType or any object type, and that does conform to the relational model (here's a random C. J. Date take on that).

And it's great I can just fire up my dbms and use GET, POST, PUT, DELETE, and the DAV extensions to stuff data into the db.

And if that dbms decomposes that data and enforces constraints, then the back-end is half done.

+1 on the Oracle XDB.