Re: Robot Databases

Tronche Ch. le pitre (Christophe.Tronche@lri.fr)
Sun, 18 Feb 96 19:09:19 +0100


> Any thoughts on databases that are appropriate for robots?
>
> Are there alternatives to the standard relational databases (Oracle, etc.)?

This is about large databases in general, not especially for robots.

In my experience "standard" databases (like SQL databases) are slow
and hog disk space. Hand-crafted databases can be much more compact,
just think about some of the large databases accessible through the
Web (such as "The Internet Movie Database", entirely hand-written with
PERL). The interesting point is that writing a database engine by hand
doesn't necessary take longer than using a client-server system, just
do it the object-oriented way by using some largely available reusable
software components (like persistent string dictionaries).

SQL databases offers many functionality you don't need, at the price
of performance. Do you really need rollback, full concurrency,
full-time availability, full crash recovery, and can you pay the price
(in term of performance) ? Or you need only some more simple
programming model, with only one writer and many readers, don't care
about one request that failed (how many Web page have you failed to
download today ?), and don't care to lose the last few lines your
robot has found ? This is some kind of RISC vs CISC controversy.

Moreover, SQL technology can't handle complex data structure (graphs)
and it can't make use of the "structure" of your data to perform
efficiently. For example, URLs can be stored in a very compact way in
a lexical tree, something very difficult to do with a relational
database.

I think that SQL technology was good when it was created, about 20
years ago. At that time, creating a database model with an associated
language was a way to make "reusable components": by putting your
experience, the operations you think you need in a query
language. Also it was the time for people to start playing with
"powerful" computers (64 kB of RAM, 10 Mb of disk space). "Yeah ! What
a machine ! We gonna put everything we can think about in our new
language !". Time of the great dinosaurs like PL/1; today's trends are
much more "put the reusability in the language, put the functionality
in the libraries". SQL is still good for some applications such as
accounting (quite a profitable market segment), and small databases,
with at most a few thousand lines.

And object-oriented databases ? I'm quite skeptical about
them. Specially those using a relational database for the
persistence. May be someone else had more enthusiastic experiences ?

+--------------------------+------------------------------------+
| | |
| Christophe TRONCHE | E-mail : tronche@lri.fr |
| | |
| +-=-+-=-+ | Phone : 33 - 1 - 69 41 66 25 |
| | Fax : 33 - 1 - 69 41 65 86 |
+--------------------------+------------------------------------+
| ###### ** |
| ## # Laboratoire de Recherche en Informatique |
| ## # ## Batiment 490 |
| ## # ## Universite de Paris-Sud |
| ## #### ## 91405 ORSAY CEDEX |
| ###### ## ## FRANCE |
|###### ### |
+---------------------------------------------------------------+