[ Roger E. Masse]: > Personally, in terms of ad hoc queries, I've yet to find anything that > SQL can do better operating on relational databases than Python can > do operating on Durus. Granted, depending on what you do, the result > set might not be resolved as quickly as with an SQL query, but in > terms of expressiveness, Python is hard to beat as a query language. I'm very sympathetic to this point-of-view, since I'm a strong supporter and evangelist of Python down here in Brazil. Moreover, I Durus fan! When you say that Python, combined to knowledge of the OODB inner structure, is expressive enough to match SQL queries, I'll probably agree. However, database users might lack knowledge of Python (stil in its infancy in Brazil, but growing fast!), but that steers away from the question under discussion. The original question was: """what characteristics of a problem make for an OODB would perform (human + performance) better than a relational implementation.""" My defense of SQL queries stands on the grounds of: 1) Performance: benefiting from years of RDB optimizations such as indexing, query planning, etc 2) Standardization : SQL being widely known and standardized (that is just half-truth) But certainly covers the 'human + performance' aspect of the question. I simply have no scientific evidence related to whom have better performance either Relationl+SQL or Python+Durus. I have never tried to migrate relational data to Durus and see how it performed. For the time being, I'll gladly take you word on Durus performance ;o) [ Roger E. Masse]: > Can you give us an example of where SQL might be better for ad hoc queries? As I said, I have no scientific evidence. But when a query against the structure actually built inside an OODB is not answered by just browsing the object graph, do we have a mechanism equivalent in simplicity to JOINS ? Going further, Relation DBs are backed by the relational algebra model. Is there an equivalent theoretical model to OODBs ? I guess we can say that RDB are set- theoretic while OODB are graph-theoretic, but them what are the equivalents to selection, projection and join operators in the OODB realm ? Sorry to reply your question with a question, at least both are honest questions. ;o) best regards, Rod Senra