I am pretty new to programming(just finished University).
I have been thought in the last 4 years about Object Oriented development and the numerous advantages of this approach.
My question is
Isn't it easier to use a pure Object Oriented database in development applications?
Why Object Oriented database are not as much diffuse as relational?
From my point of view makes sense to use OO database, the latter will avoid the numerous construction necessary for the mapping of complex objects on the tables.
The reason for not being popular is need. So far, RDBMS have been doing a good job and in large businesses, the greatest pain is called 'migration'. As with most technology, the need of the user is the primary objective, and Object Orientation is usually not the selling point.
Object-oriented databases are typically used when an application is built with an object-oriented language. The OOD allows us to work natively with that language and have less code to read and write data as opposed to other database drivers.
Object databases do exist actually, even outside academia. But don't expect to see anything as big as SQL Server or Oracle in that area anytime soon. They do exist as a theory and as small, application-specific databases and various products.
Having worked for an Object Oriented Database company in the past (www.objectstore.com) - and currently - I think I have a fair insight on what makes them great, and what makes them no-so-great.
Great:
No object-relational mismatch. If you want to store object x in memory to a persistent store, ObjectStore can do it with near-realtime guarantees. Our product has been used by many companies to meet brutal time requirements that would be tough with relation databases or ORM engines.
No object-relational mismatch - you develop in objects, you think in objects, you store in objects.
No-so-great:
ORM: Object relational managers have pretty much made Object databases irrelevant
Schema evolution: Change a class to add a field, and now you have to morph an ENTIRE database. ObjectStore has gotten smarter about this over the years, but it's still a pain point for many OODBMS.
Bad:
Tool support - this is what made OODBMS a non-starter for most places. Everyone today can take Crystal Reports or Access or Excel and churn out bucketloads of reports. With an OODBMS, you would have to build this logic through a programmer, and we all know how fast that's likely to happen when you need your budget report to take into account some xyz parameter that you didn't think of at design time.
Tools are why OODBMS failed in the marketplace. Not technical superiority or performance or language support (ObjectStore supports C++/Java/.Net and had support for COM to support any IDispatch languages like VB, Perl, etc.).
So I've said some disparaging things here, particularly about a product I really like. But ObjectStore is awesome at very specific tasks, but a poor choice for building a webapp. Though at one point, it was driving the inventory management backend for Amazon.com.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With