On Friday 06 May 2005 11:13, Dave Rolsky wrote: > The purpose of putting something in a DBMS > is to ensure _correctness_ of the data, and to make it easier to query > that data in a variety of ways, particularly in ways you did not > anticipate when you first created the logical model. Speed may or may not > be a nice bonus. A good DBMS has many features that help ensure the > logical correctness of the data, and a good logical model lets you do a > variety of queries on what you've stored.
I don't agree with that. What's wrong with the correctness of data using XML? XML is a way to enforce correctness in data. Sure, a DBMS also enforce correctness in data, but if that's all you need then you'll probably be better off using XML. It provides everything you said, plus it's easier to work with. However, if you need to index you XML for quick retrieval, you need a DB. That's how DBs evolved: from unindexed data to indexed data. They were *not* invented so that someone could enforce correctness in data. Anyway, that's becoming far from technical. I agree with you that the recursion function *is* data and that it has to be stored somewhere. The DBMS is obviously the right place. But since that data represents a function that must be executed, I think the *execution* of that function should take place on the application server, not on the DBMS. > If speed is all you're after then a SQL DBMS is almost certainly not the > right choice. Why?