Pro: * More well-tested than ZODB and MiddleKit. * Relational databases are based on solid mathematical foundations (relational algebra, set theory, etc.), but OODBMS have no such theoretical underpinning (Link to comments by Fabian Pascal). * Full control over relations, transactions, etc. * All queries are programmer-written and optimized, and by reducing the number of queries you give the RDBMS more opportunity to do optimizations * You can leverage the database's abilities to cache and store information compactly Con: * Non-Pythonic: requires you to translate your objects and manipulations to/from SQL statements * No layer of abstraction between the database schema and the Python interface -- if you change the schema you must change all the Python code unless you create your own abstraction layer or use views more, either of which is highly recommended * Queries are programmer-written and optimized, which means more work * It is difficult to cache results (though the database does caching of its own) * Some operations are difficult to do in SQL .. _Link: http://searchdatabase.techtarget.com/tip/1,289483,sid13_gci769023,00.html?FromTaxonomy=%2Fpr%2F284872 -- MikeOrr_ - 31 Dec 2001 -- EdmundLian_ -- 03 Jan 2002 -- IanBicking_ - 04 Jan 2002