Search code examples
databaseooprdbmsrelationalobject-oriented-database

What are the pros and cons of object databases?


There is a lot of information out there on object-relational mappers and how to best avoid impedance mismatch, all of which seem to be moot points if one were to use an object database. My question is why isn't this used more frequently? Is it because of performance reasons or because object databases cause your data to become proprietary to your application or is it due to something else?


Solution

    • Familiarity. The administrators of databases know relational concepts; object ones, not so much.
    • Performance. Relational databases have been proven to scale far better.
    • Maturity. SQL is a powerful, long-developed language.
    • Vendor support. You can pick between many more first-party (SQL servers) and third-party (administrative interfaces, mappings and other kinds of integration) tools than is the case with OODBMSs.

    Naturally, the object-oriented model is more familiar to the developer, and, as you point out, would spare one of ORM. But thus far, the relational model has proven to be the more workable option.

    See also the recent question, Object Orientated vs Relational Databases.