Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why did object oriented databases fail? [closed]

Tags:

database

Why did object oriented databases fail?

I find it astonishing that:

foo bar = new foo();

bar.saveToDatabase();

Lost to:

foo bar = new foo();
/* write complicated code to extract stuff from foo */
/* write complicated code to write stuff to database */

Related questions:

Are Object oriented databases still in use?

Object Oriented vs Relational Databases

Why have object oriented databases not been successful (yet)?

like image 442
user128807 Avatar asked Jul 15 '09 12:07

user128807


People also ask

Why have object oriented databases not become the standard commercial database management systems?

Drawbacks of Object DatabasesObject databases are not as popular as RDBMS. It is difficult to find object DB developers. Not many programming language support object databases. RDBMS have SQL as a standard query language.

Are object databases still used?

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.

What are the challenges in designing object-oriented database?

It is difficult to re-write object-oriented programs for persistent data management. Several problems arise: 1) naming conflict; 2) class hierarchies have to rewritten; 3) OODBs tend to overwrite system operations [15].


4 Answers

They will succeed some day. They are future.

Looking back to software technologies in history, the trend is sacrificing performance to reduce complexity (Assembly => C => C++ => .NET). An application which takes 30 minutes to code now, some days in past took a month.

ORMs are right answer to wrong question. Currently, they are the choice, since they make life easier in the absence of a better solution. But they cannot handle the level of complexity they aimed to. "Problems cannot be solved by the same level of thinking that created them." A.E

As others mentioned relational databases are heavily used and relied and replacing them forces a lot of risks. Look the interval between SQL versions and the major changes between these versions and other Microsoft products (conservative approach, which is necessary here). Also I'll add the following items:

  1. Current approach still works. You may argue it will work forever (we can code assembly yet), but here I mean it doesn't work logically when, the AVERAGE level of projects complexity and the time to develop them on relational databases rings the bell.
  2. Major companies did not involved seriously. When the market signals, they do.
  3. The problem is not well-defined yet. Unfortunately current failures help.
  4. It need some improvements in other sciences (QC, AI) rather than computer. Storing and querying multidimensional data on flat infrastructure and without enough smartness for self-organizing are the top obstacles at the theoretic level.
like image 199
Xaqron Avatar answered Sep 19 '22 04:09

Xaqron


I have been using db4o (an object oriented database) lately on my personal pet projects, just because it is so quick to set up & get going. No need with the itty, gritty details.

That aside, as I see it, the main reasons why they haven't become popular are:

  • Reporting is more difficult on object oriented databases. Related to this, it is also easier to manually look into the actual data in a relational database.
  • Microsoft and Oracle base so much of their business on relational databases.
  • Lots of businesses already have relational databases in place.
  • The IT departments often have relational database expertise.

And, as Jan Aagaard, have pointed out, lately it is because the problem have been solved in a different way, giving programmers the object oriented feel even though they program against a relational database.

like image 35
Halvard Avatar answered Oct 25 '22 12:10

Halvard


Probably because of their coupling with specific programming languages.

like image 14
Aamir Avatar answered Oct 25 '22 12:10

Aamir


First, I don't believe they have "failed" entirely. There are still some around, and they're still used by a couple of companies, as far as I know.

anyway, probably because a lot of the data we want to store in a database is relational in nature. The problem is that while yes, OO databases are easier to integrate into OO programming languages, relational databases make it easier to define queries and, well, relations between the data stored. Which is often the complicated part.

like image 10
jalf Avatar answered Oct 25 '22 12:10

jalf