From: Sasa on
I posted this to comp.databases, but then it came to me that you guys
might provide some suggestions, sorry if this is an OT:

So after years of using strictly relational databases, I've begun to
consider an alternative. Object databases seem compelling, especially
since the data in the project I'm mostly involved in is highly
hierarchical. So the questions:
1) When would you recommend ODBMS, and when RDBMS?
2) Which ODBMS would you recommend?
3) The application I work on is single user desktop application. The
data resides on the user's computer. Is there any ODBMS suitable for
this (something like equivalent to MSDE, Access, etc.). Is there any
"lightweight" object database suitable for this, or would you recommend
something else instead?

Thanks,
Sasa
From: Frans Bouma on
Sasa wrote:

> I posted this to comp.databases, but then it came to me that you guys
> might provide some suggestions, sorry if this is an OT:
>
> So after years of using strictly relational databases, I've begun to
> consider an alternative. Object databases seem compelling, especially
> since the data in the project I'm mostly involved in is highly
> hierarchical. So the questions:
> 1) When would you recommend ODBMS, and when RDBMS?

Object databases are good in serving/handling objects, or better:
instances of entities which are pre-defined. Examples are Customer,
Order, Product etc.

Relational databases are good in serving sets and set operations on
sets of attributes, grouped together in entities.

The core difference can be seen with a simple example. Say you want a
list of orders and also the CompanyName of the customer which has
ordered the order.

In a relational database, you'll have an easy job, as the resultset is
a simple selectlist (a new entity!) defined on the joined set of
attributes from the entity order and the entity customer, in layman
terms: a select statement with a join.

In an object database, this is harder to do. The thing is: the
resultset should be an object. However, the object isn't defined, as
the objects known are Customer and Order, but not OrderWithCompanyName.

So if you work a lot with these sets, you'll likely be better of with
a relational database. If you're working a lot with sets of entity
instances which are pre-defined, you're better of with an OODB.

> 2) Which ODBMS would you recommend?

I've heard good things about db4o, however the market for oodb's is
small, so there are a few players. I wouldn't go for versant's, it's
very expensive.

An alternative could be to use a relational database and an O/R
mapper.

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
From: Nick Malik [Microsoft] on
Probably the most typical method is to use O/R mapping tools to allow you to
store your data relationally, but manipulate it as objects. In fact, some
of the OODBs got their start as O/R mapping tools sitting on top of a SQL
database.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Sasa" <sasa555(a)gmail.com> wrote in message
news:ei9jui$4kr$1(a)sunce.iskon.hr...
>I posted this to comp.databases, but then it came to me that you guys might
>provide some suggestions, sorry if this is an OT:
>
> So after years of using strictly relational databases, I've begun to
> consider an alternative. Object databases seem compelling, especially
> since the data in the project I'm mostly involved in is highly
> hierarchical. So the questions:
> 1) When would you recommend ODBMS, and when RDBMS?
> 2) Which ODBMS would you recommend?
> 3) The application I work on is single user desktop application. The data
> resides on the user's computer. Is there any ODBMS suitable for this
> (something like equivalent to MSDE, Access, etc.). Is there any
> "lightweight" object database suitable for this, or would you recommend
> something else instead?
>
> Thanks,
> Sasa


From: topmind on

Sasa wrote:
> I posted this to comp.databases, but then it came to me that you guys
> might provide some suggestions, sorry if this is an OT:
>
> So after years of using strictly relational databases, I've begun to
> consider an alternative. Object databases seem compelling, especially
> since the data in the project I'm mostly involved in is highly
> hierarchical. So the questions:
> 1) When would you recommend ODBMS, and when RDBMS?
> 2) Which ODBMS would you recommend?
> 3) The application I work on is single user desktop application. The
> data resides on the user's computer. Is there any ODBMS suitable for
> this (something like equivalent to MSDE, Access, etc.). Is there any
> "lightweight" object database suitable for this, or would you recommend
> something else instead?
>
> Thanks,
> Sasa

Have you thought about using the File System? File systems are more or
less hierarchical databases in their own right.

-T-

From: aloha.kakuikanu on
Sasa wrote:
> I posted this to comp.databases, but then it came to me that you guys
> might provide some suggestions, sorry if this is an OT:
>
> So after years of using strictly relational databases, I've begun to
> consider an alternative. Object databases seem compelling, especially
> since the data in the project I'm mostly involved in is highly
> hierarchical. So the questions:
> 1) When would you recommend ODBMS, and when RDBMS?
> 2) Which ODBMS would you recommend?
> 3) The application I work on is single user desktop application. The
> data resides on the user's computer. Is there any ODBMS suitable for
> this (something like equivalent to MSDE, Access, etc.). Is there any
> "lightweight" object database suitable for this, or would you recommend
> something else instead?

Are you aware that object databases failed miserably to gain any
acceptance? Hmm, what the conclusion of this trivial fact might be? Use
relational database _always_?

There are numerous ignoramuses around (some with pretty loud names) who
would fight this obvious truth, but the fact of the matter is that you
as a computer developer professional just can't skip fundamentals of
data management class. And if you learn data fundamentals, then you
know why the concept of object database is a misnomer.