Re: What're the differences betwen OO database and relational databases?
Date: Wed, 26 Sep 2001 18:28:43 +0200
Message-ID: <9osvua$p39$01$1_at_news.t-online.com>
soda <soda4u2_at_hotmail.com> wrote:
> I only learn relational databases at school, Object Oriented database
> was virtually unknown then. I've tried to find out but it would be
> easier to ask you folks what you think. Does OO database goes faster?
> Easier to maintain?
Hi Soda,
your name and email address are quite interesting. Is this a flamebait mail?
http://groups.google.com/groups?as_usubject=soda&as_uauthors=carl_at_db4o.com
Object databases usually have a much tighter language binding than
relational databases. This enables you to store object hierarchies as they
are, without the need to think about table mappings and joins between
tables. Depending on your application this may spare between 10% and 50% of
your total programming work. Less code written means less code to maintain
and less sources of error.
There are some products that even recognize your classes and the changes to
them automatically. In this case you do not even have to define a database
scheme.
A very tight language binding removes the need for drivers and
back-and-forth conversion of application data to and from SQL queries and
back. This also results in better performance. There are no worries to
convert table rows to objects and to map objects to keys. Object database
engines take care of this automatically.
Object databases usually also know object identities:
If you retrieve an object, that you might be using in your code already, you
will get the same *identical* object with every query that you execute.
In contrast to what relational protagonistst will tell you, object databases
do not expose pointers. If your program with Java, for instance, there *are
no* pointers, so not even an object database can produce them. I doubt that
anyone speaking about pointers has ever been experimenting with object
databases.
Object databases use the same principle of referencing member objects that
your programming language uses. They are *built* to store and retrieve
objects (not table rows). No wonder they outperform relational databases
dramatically, when it comes to storing and retrieving *objects*.
There are some negative issues of current object databases as well, which is due to the fact that they are not as mature as commercial relational databases. Judging from the last flame war here, I am sure some good friends will bring these points up.
One argument is completely useless:
The argument of the "better theory" of relational databases. Look at your
usecase. Implement test benchmarks with the products that you can get your
hands on. Which databases engine will you choose?
The one with the "better theory" or the one that stores and instantiates
objects 100 times faster with 30% less implementation work?
> Can I design OO database and use them in MySQL?
No, of course not. Object databases are a product category. MySQL ist not part of this category.
Kind regards,
Carl
--- Carl Rosenberger db4o - database for objects - http://www.db4o.comReceived on Wed Sep 26 2001 - 18:28:43 CEST