Object Oriented Database - why most of the compani

2019-03-11 23:32发布

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.

9条回答
冷血范
2楼-- · 2019-03-12 00:22

There is no good reason for this, especially with the uprising of ORM (Active Record) usage and the pains of the mapping. Object Orientated Databases are faster and better in many ways. 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. Speed perhaps, but expensive hardware and proven RDBMS tuning can achieve performance as well.

Also people who are skilled in this area, would have to be trained again (which costs a bunchies). Not to mention al the expensive consultants who learned evil PL/SQL...

I would say, be a first mover. Like Mahatma Ghandi said, be the change you want to see. Funny, you just made me want to Google for an open source OO-DB.

查看更多
干净又极端
3楼-- · 2019-03-12 00:26

Ten years ago I looked at object-oriented database design (for a personal project) and discovered that they were not very good at doing certain kinds of searches easily or quickly (say "find all people whose last name starts with 'S'), although of course there are a lot of relational queries that are not needed in an object-oriented database. Also, at the time object-oriented database were not really ready for large scale deployment (which admittedly was not a concern of mine). I believe that newer ones have fixed that problem, but there still is a lot of intertia and good ORM's make using a relational database relatively easy.

However, there is a movement away from relational databases, see the NoSQL movement. I believe the Google does not use a relational database (but also not object-oriented, rather something proprietary and distributed).

查看更多
祖国的老花朵
4楼-- · 2019-03-12 00:37

Database is not just about storing and retrieving objects, otherwise OODBs and Document DBs would have taken over the world. Other usage contexts / aspects include:

  • Aggregating data and doing complex bulk data processing / manipulation. RDBMSes are very good at this.
  • Other important aspect is concurrency / isolation (i.e. transactions). RDBMSes are very mature in this area.
  • Another aspect is indexing to ensure fast queries.
  • Another aspect, like "Chris Kaminski" mentioned above is being able to evolve your schema over time while preserving the data.

Finally, there's a bit of industry inertia going on, with major vendors not willing to bet money on something the clients are not ready to pay for, and the clients waiting on sidelines until major vendors join the game.

查看更多
登录 后发表回答