Kenneth Downs wrote:

Select title
          ,SUBSTRING(text ...insert regexp here...)
  from chapters
 where book_name = 'XML in a Nutshell'


Regexps can't do that though. Regular expression are an insufficiently powerful tool for processing XML. Trying to do that is just a world of pain.

Rusty, you appear to be arguing from ignorance, very unusual coming from you.

Funny how you confuse different experiences with ignorance. Have you ever worked in publishing? Or in library science? Or on anything that operates at web scale like Yahoo or Google? There are many use cases where a couple of months of hard labor will rapidly disabuse anyone of the belief that relational databases are the one true solution to all problems. Your career just happens not to have taken you down those paths yet.

The true difference between us in this argument is that I understand that I have a prejudice for relational over hierarchical, based on my knowledge and use of both, and based on judgment calls as to how to get through the day. I daresay however that you are promoting a religious favoring of XML w/o a working knowledge of the alternatives.

Ken, you know me. Do you really think I don't know the relational model or what it's good for? I use relational databases all the time, and I'm using them now. However unlike you I've hit their limits. While I'm sure many people can profitably spend their life doing nothing but relational databases, I happen to be working on applications where neither the relational model nor the actual SQL databases out there can come close to managing my data. I've never said that all applications should use XML databases or other non-relational systems, You keep trying to put those words into my mouth. I do say that some applications, especially in publishing and web publishing, do not fit the relational model well and can better served by XML databases.

You simply cannot defend a file format as a foundation for frameworks and databases. The best you can do is defend the model, such as the hierarchical model.

XML is not a file format. We've been down this road before. A native XML database is no more based ona file format than MySQL is based on tab delimited text.

Going further, you cannot defend a file format as a foundation for anything based on how it handles large text (or binary) fields. There are three issues here:

-> Data model, hierarchical vs. relational. -> File format, XML vs YAML or JSON or any other format you like
-> Handling of large text (and binary) columns.

Finally, if we can all admit that XML is just a file format, then the entire framework crumbles as soon as somebody comes up with a better one, because let's admit it, XML is just about the worst you're going to find.

Troll. Troll. Troll.


In conclusion, the examples you provide appear to give advantage to XML because tools exist to handle data that has been buried in opaque formats and poorly defined structures. If the data had been structured properly in the first place and put into formats that were not so opaque, using (pardon me for saying) a *real* database, designed on solid principles, the examples you give become child's play.

LOL. Seriously, try storing a book or an encyclopedia in a relational database with anything approximating 1NF, not even 2NF. Then try and make it perform adequately.

Not all data fits neatly into tables.



I'm glad we have multiple tools to bring to bear on this kind of
problem, because I worry about the performance implications of
querying an XML database for the average price of those books, or
performing an operation that adds another field (tag?) to each book's
"record".

Average prices, or adding a field, can be done pretty fast. I don't know if it's as fast as oracle or MySQL. I don't much care. Sales systems are exactly the sort of apps that relational databases fit well. But actually publishing the books? That's a very different story.

If it's not too much trouble, could you give us some other use cases
for an XML database? Because title and first paragraph, if that's
something a system "routinely does" could easily be stored as
relational data at the time of import.


Just surf around Safari sometime. Think about what it's doing. Then try to imagine doing that on top of a relational database.

Think about combining individual chapters, sections, and even smaller divisions to make new on-off books like Safari U does. Consider the generation of tables of contents and indexes for these books.

Closer to home, think about a blogging system or a content management system. Now imagine what you could do if the page structure were actually queryable, and not just an opaque blob in MySQL somewhere.

--
Elliotte Rusty Harold  [EMAIL PROTECTED]
Java I/O 2nd Edition Just Published!
http://www.cafeaulait.org/books/javaio2/
http://www.amazon.com/exec/obidos/ISBN=0596527500/ref=nosim/cafeaulaitA/
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

Reply via email to