Object Oriented databases

Posted on 2004-10-18
Last Modified: 2012-06-21

This is a general Question:

For many years people are talking about the Object Oriented database and there are certainly quite a few in the market.
But, even though the major suppliers (like Oracle) started adding such features in to their major DB release, the development community has not been using them as wide as one would expect.
I do not have enough experience with OO and therefor I would appreciate your comments on reasons that is is not that wide spread

Question by:peledc
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 50

Assisted Solution

by:Gustav Brock
Gustav Brock earned 100 total points
ID: 12339663
The only real OO database engine at some level I've seen, is InterSystems' Caché. A fully functional single developer license is free to download.

I think the reason for not being wide spread yet is that you as a developer really have to turn your head 180 degrees. However, if you do that, a lot of opportunities and fun show up and, though troublesome for a beginning, it is very nice and encouraging to be able to manipulate the engine without old fashioned SQL.
Caché knows that SQL sometimes is much easier to use so it fully supports SQL as well as ODBC, thus giving you both worlds - in fact you can start out just using SQL and ODBC, then move on as you learn or need the OO features. Have in mind though, that it is an engine only with a nice developer (Studio) environment (Windows only) - you will need a frontend of some kind for you users.

Another important reason for not being widespread is the inertia among dbas. For demanding purposes you choose engines you know will work. It can be hard to find tasks where experimentation is allowed or desired.


Assisted Solution

NashvilleGuitarPicker earned 100 total points
ID: 12340881
cactus_data did a good job covering the big reasons.  Related to "inertia" is the fact that relational SQL is very common.  It filled  a need very well, and is one reason that you do not see the hierarchical databases as much anymore (except on mainframes).  This is sort of like getting the U.S. to adopt the metric system.  The main reason for not doing it is that everyone is already familiar ("invested") in the old system, even though the new system has many advantages.  Given some time, we should see some OO leaders and standards emerge.
LVL 24

Assisted Solution

by:Joe Woodhouse
Joe Woodhouse earned 100 total points
ID: 12344769
Not disagreeing with what's been said above, I'd also add that (rightly or wrongly) OO databases are often perceived as a "worst of all worlds" hybrid solution.

If I have a need well suited to a database solution, the odds are good that an established standard relational database product will be more fully featured, more tested in the marketplace, and have more front-end application vendor support for it than the relatively more recent OO database technologies.

Likewise, if I think a traditional development environment is the answer to my problem, there are plenty of very good OO languages and environments that will again have more features and maturity than a hybrid approach.

Another way of putting that is that while a hybrid approach may be able to be used in more situations, it will often be outcompeted by a more specialised approach which is a better fit for that particular need.

Assisted Solution

gnudiff earned 100 total points
ID: 12344824
Agreeing with what the previous comments, I would like to note that there exist also partial OO models, like object-relational database management systems (ORDBMS), eg PostgreSQL.

From :

PostgreSQL is a sophisticated object-relational database management system (ORDBMS). An ORDBMS is an extension of the more traditional relational database management systems (RDBMS). An RDBMS enables users to store related pieces of data in two-dimensional data structures called tables. This data may consist of many defined types, such as integers, floating-point numbers, character strings, and timestamps. Data inserted in the table can be categorized using a grid-like system of vertical columns, and horizontal rows. The relational model was built on a strong premise of conceptual simplicity, which is arguably both its most prominent strength and weakness.

The object-relational aspect of PostgreSQL adds numerous enhancements to the straight relational data model. These include support for arrays (multiple values in a single column), inheritance (child-parent relationships between tables), and functions (programmatic methods invoked by SQL statements). For the advanced developer, PostgreSQL even supports extensibility of its data types and procedural languages.

Accepted Solution

djwillms earned 100 total points
ID: 12386976

I would say the #1 reason why OO databases are really gaining popularity is that relational databases are totaly entrenched. Every reporting package on the market works the relational databases, but none of them work with object oriented databases.

Nothing integrates with OO databases since its a philisophical design change, and not just a data storage format change.

Object oriented databases by their very nature do not use Ansi SQL syntax to query them.

I saw a very complete summary of OO databases with code examples of how to use them on (youll have to search on their site for it)

Basically it said the way you would use an OO database is the exact same way you would use a collection of objects in your programming language of choice with the 1 difference being that between the times your run your program, your program persists the data collection back to the file sytsem.

#2 Todays current generation of DBAs could not, and would NOT be qualified to design an OO database because they dont have the skills and they SHOULD not have the skills. If dba's wont share the design and implementation of relational databases with developers, then developers wont share OO design and implementation with DBA's.  The people that have the skills are the software developers with their OO Design background, not the DBA's. So OO databases will become wide spread in use when you kick out the DBA's and make the DBA tasks part of the developers job.


Featured Post

Enroll in May's Course of the Month

May’s Course of the Month is now available! Experts Exchange’s Premium Members and Team Accounts have access to a complimentary course each month as part of their membership—an extra way to increase training and boost professional development.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I annotated my article on ransomware somewhat extensively, but I keep adding new references and wanted to put a link to the reference library.  Despite all the reference tools I have on hand, it was not easy to find a way to do this easily. I finall…
CCModeler offers a way to enter basic information like entities, attributes and relationships and export them as yEd or erviz diagram. It also can import existing Access or SQL Server tables with relationships.
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question