[Home] [By Thread] [By Date] [Recent Entries]
On 11/29/05, Michael Kay <mike@s...> wrote: > > I'm searching for an indexing solution for my native XML > > database project, > > which I'm writing as a learning project. > > > > I use C++ as development language and a relational database > > as backend. > > Why? > > I simply wouldn't start from here. Relational databases are bad at storing > hierarchic data, they are bad at storing data whose order is significant, > and they are bad at storing data whose structure is irregular. Many of the > XPath axis traversals will map to recursive queries, which cannot be > expressed in first-order predicate calculus. Even the operation of > determining namespace context will require either a recursive query, or > highly-redundant data storage. > > You'd be better off starting with an object database. Gee Michael, care to over generalise just a tad? If your data has low update frequency then a set/subset in-order data model will have flat query structures but provide direct transforms to hierarchical structures. Update and insert operations can be expensive in the general case for such a model, but for specific cases it may not be an issue. An ordered index in many relational databases can have as good or better performance than in an object database. Sure, a relational database might not be the best fit for a given hierarchical structure. But for other cases the fit may be as good or better than any other database.... Given the rather low level of hierarchy expressed in the example I can see several ways of addressing performance, but I'll address direct those directly to the author of the question. -- Peter Hunsberger
|

Cart



