Hi all,
I think, the major question is understanding how the application works with data and what are the relations between the parts of large documents.
My understanding is that Jacob’s main problem is the lack of node level update. I’d dare to say that most things above will show us the lack of maturity of XML technology or the lack of - you shouldn’t take that personally - experience with XML technology.
Everybody’s argueing that XML offers the “natural” way of structuring data without taking in account that this is pretty nice for single user applications, but has side-effects for multi user environment.
Of course it’s possible to pack all data used in a furniture-retail-system (customers, addresses, offers, products, conditions, users etc.) into one huge document.
And with node level updates it would even be possible to access and change data easily. But portions of data often have relations and constraints on these relations. One area of the document tree might have to be validated against data found another area - well similiar to what we have with relational databases.
So, to keep the data consistent for the application we will need quite a few of locks. In relational databases we usually lock rows, but in hierarchical databases, we lock (sub-)trees.
That can get us into trouble quickly, because it can seriously harm parallelism.
I guess, this is the point where customers will have to decide, if they prefer the ease of definition/structure over speed. My guess is that they will quickly abandon either a schema that is badly designed (for parallel transactions) or will not buy our database, because they say it’s too slow.
Coming back to the start: The question is how the structure, semantics and constraints of the “unchangeable” schemata look like and how the application uses the database. If (which is probably a rare thing) there are only very few and weak relations/constraints, then the node level update will just be enough. Usually the application will not be able to avoid to read (and most probably lock) all subtrees that contain data needed for validation. Even with an application server the only thing that could (sometimes) be avoided, would be the transport to the client.
So, Jacob, it’s up to you to present some usecases/schemata to keep the conversation going… 
GreetinX
Juergen
#Tamino#API-Management#webMethods