Jun 14

Firebird

As will surprise nobody who knows me, the shininess of the Firebird database server had been blinding me since I posted that interview yesterday. It was calling my name, so I just had to download and install it.

I’m extremely happy with what I found — it’s a free database server with a ton of features you’re not going to find in MySQL. There’s a self-extracting Windows installer, it installs itself as a service, and it even gives you a little Control Panel applet to manage it.

It has support for foreign keys, views, triggers, and stored procedures (with what looks like a very rich procedure language). There’s full PHP support through the ibase_* set of functions and it’s supported in the ADODB database abstraction library.

There’s not much in the way of free clients. It comes with a command line client, of course, but I didn’t find any free graphical clients. There’s this one and this one, but they run from $79 to $250.

I still don’t quite have a handle on the genesis of the project. I gather it came out of Borland’s InterBase product, but I’m not sure if InterBase continues, or if it was abandoned (there’s a Windows 2003 version of it, so it’s probably still alive in some form). Firebird (and InterBase) penetration appears to be most heavy in Europe. It’s commonly used with the Delphi language (another Borland product).

In browsing some of the message boards about Firebird, I got the same…vibe that I got about MySQL five years or so ago. There’s a lot of buzz, and there seems to be a lot of transfer from MySQL to Firebird. The talk all seems to be exceedingly positive.

So why would you use MySQL over Firebird given that the latter has support for so many more features and is just as free? I guess I’m a little more confident with MySQL’s battle-worthiness, given that it’s been around the block so many times. (But by the same token, InterBase wasn’t in beta or anything — that was a production quality database server.)

So am I ready to switch all my stuff over to Firebird? No…not yet. But I don’t think I’ll look at MySQL quite the same way ever again. This seems like a very attractive option.


Comments

by Craig Stuntz,   June 14, 2004 12:00 PM  

InterBase is very much alive, but the current version is not open-source:

http://www.borland.com/interbase/


by Deane,   June 14, 2004 12:47 PM  

Then I guess I don't understand where FireBird came from. Why would you open-source a product then continue to try and sell it? What am I missing here?


by Deane,   June 14, 2004 12:51 PM  

Looking at the price, maybe I understand --

InterBase Desktop is only $60. The server-based version is only $200. Maybe if you buy InterBase over using Firebird, you're basically just buying the support contract and perhaps some improved tools. A lot my MySQL, actually.

On another note, a lot of noise is made about Firebird's "small footprint." I don't see it -- I have both a Firebird server and a MySQL server on my machine, and neither have much load on them. Firebird is using 8MB of RAM right now, while MySQL is only using 2.5MB.


by Joe,   June 14, 2004 1:17 PM  

As with any DB, it's probably best to consider the application before making the choice. One of the advantages MySQL has going for it is that it's hella fast, due in part to the fact that it lacks a number of features (referential integrity and sub-selects chief among them). In your average data-driven web site, you're in a write once-read many type of mode, so MySQL works very well. If your requirements are different, a different DB may be a better option.

Firebird sounds pretty interesting. Most folks will raise PostgreSQL as a reference-aware alternative to MySQL, but there have been questions over the years regarding recovery and DB corruption (or so I've heard - maybe I've just talked to the wrong people). Options are always a good thing.


by Craig Stuntz,   June 14, 2004 2:08 PM  

InterBase was open sourced during very different times. The stock market was soaring up, and open source offerings were tied to meteoric IPOs. The division had been mismanaged at Borland and wasn't doing well. Borland started negotiations to spin off InterBase as a separate company and open sourced it in the process. Then the stock market collapsed and Borland and the folks who were to run the company couldn't agree on terms. Now InterBase is under new management at Borland and is doing very well there.

The Firebird fork was created almost immediately after IB 6 was open sourced, and as both InterBase and Firebird have had some significant updates since the split they have increasingly less in common and IMHO should be considered two different databases.


by Shawn,   June 14, 2004 2:22 PM  

As Craig notes, the history goes something like this (I've no idea of the politics, just the results):

  1. Interbase was open sourced by Borland

  2. The Firebird fork was established

  3. Borland reversed the open source decision, returning to a commercial model

  4. Firebird continues today (so does Interbase)

I evaluated Interbase at work shortly after it was open sourced. We didn't have truly heavy duty enterprise needs, but in general I found it very comparable to MS SQL Server. It came with a graphical client called IBConsole (Windows only). I also tried out a freeware client called IBAccess, IIRC.

The free DBTools ( http://www.dbtools.com.br ) application, which currently supports MySQL and PostgreSQL, has Interbase/Firebird support on their ToDo list.


by Deane,   June 14, 2004 2:29 PM  

Craig, given your experience with these products (thanks Google...), what are your opinions on Firebirds "enterprise-ability"?

Running on the same hardware, is it as scalable as, say, SQL Server? Is it mission critical, "I would use it for a database tracking the bank balances of every human on Earth" reliable?


by Claudio Valderrama,   June 25, 2004 4:14 AM  

Deane wrote "There's not much in the way of free clients.". Okay, there aren't 3000 tools, but this somewhat outdated list may help: http://cvalde.net/misc/packagesandutilities.htm


by Steve S,   June 25, 2004 11:02 PM  

Hi Deane,

Here's an great source for information and tools for Firebird if you have not as yet found it:

http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1088219716:20995&page=ibpcontribdownload


by There is a free IBExpert Personal Edition,   June 26, 2004 1:51 AM  

Download Address can be found on http://www.ibexpert.com in the purchase area. The IBExpert Free Personal Edition is also free for commercial Use. The IBExpert Documentation is also free on http://www.ibexpert.info/documentation.

Holger Klemt

The IBExpert Team


by John,   June 26, 2004 12:55 PM  

The main drawback at present with Firebird (for 'enterprise' apps) is its lack of support for SMP. They're working on this (Vulcan project for 64 bit processors?). At the moment you have to fix the db server to a single processor on multi-processor machines.

You'll also have to find seperate commercial solutions for replication, incremental backups, full-text searching etc.

The trigger and stored procedure language is very powerful -- enough to use it for an app server if you're using someting like PHP!

Multi Versioning (or as they call it, "Multi Generational Architecture") can take some getting used to - but it's highly concurrent, and this kind of feature is due for release in SQL Server 2005 (Yukon) too.

Sometimes the query planner isn't as good as it could be -- particularly with outer joins.

So I wouldn't compare FB with SQL Server or Oracle at this stage (maybe in 5 years?). But its far ahead of MySQL and other open source db's.

Best of all, it can solve queries in 30mb that it takes SQL Server 600mb to solve!! I think the project leader of SQL Server has shares in a memory-fabrication plant! LOL

John


by Igor,   June 27, 2004 3:18 PM  

Check this (probably the best) InterBase/FireBird client also: http://www.ems-hitech.com/sqlmanagers . There are tools for MySQL, PostgreSQL and SQL Server also.


by Dragos,   June 28, 2004 2:24 AM  

John, you are sure about: "Multi Versioning (or as they call it, "Multi Generational Architecture") can take some getting used to - but it's highly concurrent, and this kind of feature is due for release in SQL Server 2005 (Yukon) too. " ?


by Paul Linehan,   June 28, 2004 9:35 AM  

John,

"So I wouldn't compare FB with SQL Server or Oracle at this stage (maybe in 5 years?). But its far ahead of MySQL and other open source db's."

Have you ever installed both systems? The download for the server is 3.8 MB - not GB, MB! This expands to approx. 12 - 13 (not on home machine), with a sample database. The same thing for Oracle is 2 GB. It depends what you want - pay shitloads for Oracle, or have something that can do 95% of what Oracle can do, with little or no expense.

JMHO.

Paul...


by John,   June 28, 2004 1:19 PM  

Hi Paul,

Oh a agree that SQL Server (the commercial system I'm most familiar with) and Oracle are massive and bloated. FB is small and tight. I just don't think in terms of features they're in the same league. That isn't to take anything away from FB - I'm just lucky enough to have licenced access to SQL Server 2000 so can use either without and commercial considerations (granted, that is unusual!).

SQL Server has built in support for replication, full text indexing, materialised views, plugs into Visual Studio in a cool way that makes me more productive. The ADO.NET provider for FB is great (thanx Carlos) but you still have the issues with typed datasets... or lack of.

I don't what this to sound like I'm dissing FB, I'm not. I've been using it since 2000 (IB6 beta days) and I love it. I just think they do it a disservice to compare it to systems that have massive development teams behind them, and are always going to be slicker.

The 'target audience' for FB should be other open source db users, and people writing c* desktop apps in Access! LOL

John


by Miguel Cetz,   July 6, 2004 9:58 AM  

This is a very good and free graphical client, named IBOConsole (its origin is IBConsole), Windows only. http://www.mengoni.it/downloads.html

Also there is a new Linux client named Linux IBconsole http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=19221

Another more stable linux client is IBAccess (Linux and Windows). http://www.ibaccess.org/

All of them for free.


by Craig Stuntz,   July 6, 2004 10:42 AM  

Deane, I can't authoritatively answer the question you asked me about Firebird's "enterprise-ability" since I use InterBase and not Firebird. But I can comment about InterBase. Sometimes comments about InterBase are apropos to Firebird, sometimes not.

InterBase is excellent for mission-critical applications as its multi-generational architecture means that it can recover quickly from crashes, and with forced writes enabled it is very difficult to corrupt the database.

InterBase 7 introduced full support for SMP hardware, and InterBase 7.1 includes enhancements for hyper-threading.

But SQL Server includes some scalaility features which InterBase -- and, to the best of my knowledge, Firebird as well -- does not. These include a "fiber" mode which eliminates some of the overhead associated with Windows threads when using servers with a relatively large number of processors (more than 8 or so).

So part of the comparison would be a consideration of how big you want to scale. If you're fitting out a 32 processor server, InterBase would not be a great choice. But it's just excellent for, say, a four processor machine.


by Sch,   July 6, 2004 12:33 PM  

"and it even gives you a little Control Panel applet to manage it."

Sorry, where you found it ? In IB6.0 was Control Panel applet with Automatic/Manual,as service/Start-Stop, but in FB1.5 i can't find it... :(


by Sch,   July 6, 2004 12:49 PM  

I find it - third party applets http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibppanelapps


by John,   July 8, 2004 6:06 PM  

Great things about Firebird 1.5 as opposed to SQL Server 2000:

Free! Cool concurrency (once you get used to it, and may take some re-designing or tables). Nice stored procedure language (easier and safer to define cursors, for example). Triggers fire once-per-record not once-per-action as in SQL Server (easier logic). Very low memory usage (in my systems, 10-15Mb).

Things I find better in SQL Server 2000:

Derived tables (SQL syntax). Great for ordering UNIONs etc without need for views. UDF's (FB equiv, selectable stored procedures) can return indexed tables, making joining faster. Auto recompute index statistics. (surely this would be sooo easy to implement in FB engine??) No need for indexes on foreign keys (when selectivity is low, the FB requirement just wastes time and disc space). Query planner kicks ass. More traditional locking semantics mean it hurts my brain less. Caching query plans, even for 'ad hoc' queries when they turn out to be not-so-ad-hoc! Gives me something to do with all those spare gigabytes of ram ;)

The Firebird Gurus will I'm sure sort these minor weaknesses out soon (maybe not the RAM one!!).

One concern for 24x7 systems on FB might be the built in 'life span' of the database file; The transaction counter constantly increments (you can't even SELECT without having a transaction open), and metadata changes are limited to (I think) 255 per table. Once this is reached you're supposed to "Backup / Restore" and everything is new any shiny again!!

BUT that does mean taking your DB offline while the process takes place (backup can be done 'hot', but restoring cant).

How often should you backup / restore? people have their own opinions. I do it once a year on my (stable) systems, and that seems fine. Some people claim once a week is good!!!! Thats not so much 24x7 as 24x6.8, grin

I'd like to see a way to regenerate the db file 'hot' in a future release.

John


  • There are 23 comments on this entry.
  • 20 comments have been displayed above.
Load the next 20 comments.

Add Comment


Want to advertise on this site? Contact FM.
Laser Toner Cartridges UK laser toner, toner cartridges, hp toner, lexmark toner, samsung toner, canon, toner, epson toner, oki toner, kyocera toner, xerox toner, remanufactured toner, compatible toner
Direct TV Deals Free 4 room direct tv deals. no equipment to buy. free fast professional direct tv installation. this is the best direct tv deal available anywhere.
SEO Article Learn from the experts with our SEO article.
rope light Shopping with birddog distributing, inc., gives you access to the lowest prices, the best customer service and the quickest delivery times possible.
Laptop AC Adapter We offer genuine factory direct replacement AC adapters.
Direct TV Best satellite TV deals.
Direct TV Deals Direct TV programming deals are varied and include packages containing from 50 channels up to over 250 channels.
8mm film to DVD Retain family memories with the only frame by frame digital restoration service in the United States for your 8mm film to DVD today
Rubber Stamp Shop for custom self-inking stamps, hand stamps, address stamps, label stamps, check endorsement stamps, check deposit stamps, date stamps, pre inks, pocket stamps, ink and much more!