DB support?
Christopher Browne
cbbrowne@localhost.brownes.org
Mon, 25 Sep 2000 07:55:51 -0500
On Mon, 25 Sep 2000 09:36:10 +0300, the world broke into rejoicing as
"Tom K. Weckstrom" <Tom.K.Weckstrom@F-Secure.com> said:
> Has there been plans to support free relational SQL databases like mySQL
> or PostgreSQL in GnuCash?
>
> DB support would make the solution "universal" or at least more
> independent of file formats - and definitely easier to store and move to
> another system when necessary. Also reporting capabilities would
> increase.
>
> No comments about the effort involved. ;-)
There are the vestiges of the beginnings of support for PostgreSQL; see
src/engine/sql for "vestiges."
The _problem_ with this idea is at least threefold:
a) There are considerable variances between the way different SQL
databases behave, both in terms of performance, and in what sorts
of queries they accept, which means that the term "generic," which
is probably what you intended rather than "universal/independent,"
really isn't true.
b) SQL engines involve considerable overhead, so that performance
will decidedly degrade over something that doesn't pretend to
genericity.
c) SQL systems involve a degree of _administrative_ overhead, including
as notable tasks:
- Setting up users;
- Setting up the location of the database;
- Backing up the database;
- Configuring security for user access.
This isn't considered onerous for a complex system like SAP's R/3
application, where you normally have _multiple_ people responsible
for system administration, or in the analagous situation where a web
application needs to have some competent administrators around, but
it surely will be onerous to Granny Who Doesn't Really Understand What
RPM Is.
I would suggest the thought that GnuCash should _not_ try to make use
of any database system that requires extensive setting-up-of-services,
as is true for MySQL and PostgreSQL; that is definitely _not_ friendly
to anyone that doesn't want the High Committment matter of administering
a DBMS system.
The appropriate kind of database to use is the "embedded DBMS," that
keeps the database subservient to GnuCash. Reasonable options would
include:
a) The DBM variations, where all you need is to include a library
or two, and where the database(s) fully reside in places
specified within the application.
Note that Sleepycat DB allows this to support such notable features
as transactions that may be rolled back, _clean_ networked access,
and such...
b) In the SQL arena, Interbase might become something acceptable; it
is designed to allow low-maintenance access to databases where
the application on top controls where things go...
--
aa454@freenet.carleton.ca - <http://www.ntlug.org/~cbbrowne/linux.html>
"Bother," said Pooh, "Eeyore, ready two photon torpedoes and lock
phasers on the Heffalump, Piglet, meet me in transporter room three"