Re: I think that relational DBs are dead. See link to my article inside

From: Dmitry Shuklin <shuklin_at_bk.ru>
Date: 7 Jul 2006 03:24:40 -0700
Message-ID: <1152267879.930821.210230_at_m79g2000cwm.googlegroups.com>


Hello Ed,

> Seems like classic network structure (I'm not sure it is a classic
> network model. The fact that every node is essentially independent and
> apparently "freeform" (knowing the structure of the parent tells you
> little or nothing about a child node).

Yes.

> Problems I've seen with network databases:
> sometimes there is not way to get directly to a given bit of data. You
> have to walk the network instead.

It is illusion that RDB is better in such cases. Lets compare RDB & NDB.
For example we need to find some instance attribute by its id.name.

>From abstract logical point of view:

RDB: navigate to DB, navigate to Table, navigate to Row, navigate to Field, get Value
NDB: navigate to DB, navigate to Node, navigate to Field, get Value

NDB is "faster" ))

>From implementation point of view:

RDB: navigate to DB, navigate to Index, navigate to Page, find Row, find Value.
NDB: navigate to DB, navigate to Index, navigate to Page, find Node, find Value.

The same.

> Links are fast for access, but updates can be a heavy operation,
> changing LOTS of pointers.

I don't see this. We can use the same optimization technique as current RDBMS uses.
Logic abstraction level can be independent from implementation level. Indexes are absent in RM too, and what? It is used well ))

The performance will be equal. Just data model will differ. And some additional sugar in ODB will exists.

> A consequence of this is error recovery. An
> update that is only partially completed when a system crash occurs
> (power still gets lost even these days) can wreck the DB. Some DB have
> functions to "rebuild the links". This can make crash recovery very
> time consuming and error prone.

Who prohibit us use the same transaction mechanism as current RDB uses? We can split pages and commit changes only after all transactions is completed. From this point of view RDB and NDB are the same.

> ID or pointer value? Do you expose the internal link values to the
> application?

I am use soft pointers. It is indexed IDs. ID for an instance developer must define by self. So he can define equal IDs for some different objects and make objective JOINS like he can make JOINs in RDB.

WBR,
Dmitry Received on Fri Jul 07 2006 - 12:24:40 CEST

Original text of this message