Calling PostgreSQL and Object Relational database is misleading and years out of date. Yes, PostgreSQL is Relational and the project follows the SQL Standard very closely, but that's not all it does.
PostgreSQL supports all of the following:
* Relational
* Object Relational
* Nested Relational (record types)
* Array Store
* Key-Value Store (hstore)
* Document Store (XML, JSON)
and 9.2 adds
* Range Types
So what do we call it?
We support multiple models, so I guess we should call it a "Multi-Model Database".
The good thing here is that we support them all, in one platform, allowing you to join data together no matter what shape the data is held in.
Which means that PostgreSQL is a great General Purpose database and a great default choice for use by applications. Stonebraker has spoken out against the idea of a General Purpose database, but his interest is in bringing VC-funded startups to market, not in supporting production systems and catering to a range of business requirements with flexibility and speed. The reality is that if you pick a specialised database that fits your current requirements you're completely stuck when things change, like they always do.
"The reality is that if you pick a specialised database that fits your current requirements you're completely stuck when things change, like they always do."
ReplyDeleteSo very true. Great blog post!
This is exactly what an "object-relational database" is supposed to be, isn't it?
ReplyDeleteFrom Wikipedia:
"In addition, just as with proper relational systems, it [an object-relational database] supports extension of the data model with custom data-types and methods."
http://en.wikipedia.org/wiki/Object-relational_database
One more comment: I admit that the term "object-relational database" is quite old-fashioned and not very descriptive. For marketing purposes, a better term is probably necessary. Something like "extensible relational database" or "NewSQL relational database".
ReplyDelete