Sven Köhler wrote:
>>> I was very disappointed by Interbase/Firebird. It seemed to me like a
>>> MS-Access: a database-engine that works on regular files
>> What gave you that idea? Firebird (and InterBase of course) use
>> a at least 1 file per database, but that's all. Can you define
>> "regular files"?
> My idea of Firebird is the following:
> There a library that can access a file and use it as a database.
> that very much like using the MS-Jet-Engine which is the backend to
>>> OK, there is a network-server component, but it really has nothing
>>> to do
>>> with an enterprise-DB.
>> There's a server side process waiting for incoming connections
>> just like with MySQL, MS SQL Server, Oracle etc etc...
> Well, the network-server seemed to me like an application that uses
> the library i mentioned above. It doesn't seem to me like a big
> application like MySql or MaxDB. In other words: Firebird seems to be
> light weight DBMS. MySQL and MaxDB have a multi-threaded kernel that
> maintains its own cache, coordinates locks, etc.
> I don't think that Firebird's architecture is like that.
Hmmm....you'll find that the SQL products worth mentioning that are like
Access are the following:
SQLite, FoxPro, FileMaker
I could be wrong about the last two on some of these points, but all of
the above are accessed via a library and are not wrapped in a server
process (FileMaker Server is available, and it seems to
alleviate this). Additionally, you won't get much in the way of write
concurrency with the above products (which isn't a problem with SQLite,
as it's designed for embedded stuff).
Firebird/Interbase have all those nice things like row-level locking
(although it doesn't seem to have multiversioning like InnoDB,
PostgreSQL or Oracle), deadlock detection, prepared statements, views,
stored procedures, automatic index management, proper SQL-92 isolation
levels and funky caches for indexes, rows and other weird and wonderful
Here's something you might want to do to see if my research is correct:
1. Install Firebird. Dump massive amounts of data in it and then do
something like this: ALTER TABE test_table ADD INDEX(some_column) while
the DB is being accessed.
2. Install some FoxPro or Jet application (or ACT! You'll either laugh
or cry after trying this with ACT!). Dump lots of data into it and
attempt a reindex whle the DB is being accessed.
Guess which DB comes out alive?