Slashdot Mirror


Firebird Relational Database 1.5 Final Out

firebirdy writes "The Firebird Project is pleased to announce that the v1.5 release of the Firebird database engine is now available for immediate download. The v1.5 release represents a major upgrade to the engine, which has been developed by an independent team of voluntary developers from the InterBase(tm) source code that was released by Borland under the InterBase Public License v.1.0 on 25 July 2000. Development on the Firebird 2 codebase began early in Firebird 1 development, with the porting of the Firebird 1 C code to C++ and the first major code-cleaning. Firebird 1.5 is the first release of the Firebird 2 codebase. Install packages are currently only available for Windows and Linux but other platforms should follow shortly." This product is not to be confused with newly renamed Firefox web browser, which was also called Firebird for some time.

28 of 445 comments (clear)

  1. Re:Firebird/fox by finkployd · · Score: 4, Informative

    It's not a matter of ease, they were around for a lot longer and had the name long before Mozilla co-opted it.

    Finkployd

  2. Ooooh, THAT firebird by Eberlin · · Score: 3, Informative

    Seriously, though -- I hadn't heard of this particular firebird before the Mozilla fiasco happened. I'm sure I can speak for a lot of folks who couldn't name this project when asked to name the OSS database apps they know.

    Of course now they'll be known as the folks that got the name "Firebird" when Firebird changed its name to Firefox. Oh yeah, and they make a database.

  3. Re:This project by Karamchand · · Score: 3, Informative

    Firebird is supported by PHP quite well. Just take a look at the InterBase Function Reference for more information.
    I guess Perl has a module for it as well...

  4. Pain in the ass to build by mr_majestyk · · Score: 4, Informative

    I tried building the Firebird code a few months ago, and found out that step 1 is...

    ...start with a running version of Firebird!

    Bootstrapping might seem like a K00l trick, but there is something uncomfortable about self-referential build procedures (not to mention that it was a pain in the ass to find a preexisting version of Firebird to run).

    Gimme a pile of c/cpp & h files and let me build it from scratch, dammit!

    Is that possible today? Dunno...the build guide appears to be still under construction.

    1. Re:Pain in the ass to build by jamesots · · Score: 4, Informative

      That would have been Firebird 1, which was just a slight cleanup of the (very) old Interbase code, and I'll agree, the build process was terrible.

      Firebird 1.5 has been ported to C++ and doesn't need to be bootstrapped from an existing installation, just configure and make it.

      --
      Ho hum for the life of a bear
  5. Re:This project by Just+Some+Guy · · Score: 5, Informative
    Its main claim is that it sucks less than Interbase, so if you have to support a horrid Interbase installation, then upgrading to Firebird would probably be a good idea.

    On the other hand, I hated having to administer that hell-pit of a server so badly that I wrote a migration program to transfer entire databases from Firebird to PostgreSQL. I can't describe how happy I was to switch a fairly large online store's backend to a modern platform.

    --
    Dewey, what part of this looks like authorities should be involved?
  6. Re:This project by AndroidCat · · Score: 3, Informative

    Since Interbase was around long before MySQL and PostgreSQL, why did anyone bother making them? Besides, we need enough DBs to match the number of editors available.

    --
    One line blog. I hear that they're called Twitters now.
  7. Re:Firebird for web sites by slycer · · Score: 4, Informative

    I used interbase at a previous shop (had to, the "fearless leader" was a borland guy through and through).

    I can say that it seemed to handle fine, the server never crashed, there was never a corruption etc - and this was for fairly large databases as well (million+ records etc)..

    Firebird I'm sure improves even further on it, the only problem I had with it was it's horrid horrid gui interface(s).

  8. Re:Bleh by Anonymous Coward · · Score: 4, Informative

    Wrong. This is a fine database that was built from the once open-sourced Borland Interbase. Anybody working with free databases should know it (people who are comparing it to MySql: is mysql a *real*, relational, transactional database server? stored procedures? triggers? foreign keys? )
    Related to the naming issue: the mozilla people choosed a name that was already taken by another project, they changed their name now, and that's it...

  9. Re:This project by bwt · · Score: 4, Informative

    Why do we ask companies to GPL their aging products and then ask if anyone cares?

    This RDBMS is a viable peer to PostgreSQL. It has many features that MySQL does not have.

    Just the other day, there was a good article about this database.

  10. Re:Firebird for web sites by jgbustos · · Score: 3, Informative

    Basically, the main difference is that Firebird is a fully transactional database server, whereas MySQL is not.

    Rollback and commit.

  11. Re:Assembling static data by bwt · · Score: 5, Informative

    I'm also an Oracle guy. I find MySQL loathesome and inadquate for all buy toy-level applications. I see Firebird and PostgreSQL both as viable midrange solutions. I think they each could work in settings were you aren't really stressing the newest features of Oracle, but want "standard" RDBMS functionality. Both have stored procedures, triggers, and some kinds of subqueries (at least in the WHERE clause -- oracle has them also in the from clause and even in the SELECT clause).

    I think you'll find that materialized views, at least as far as doing refresh-on-commit and query rewriting, are a really advanced feature that only Oracle has. In many warehousing or decision support applications, they are a must have feature that makes the difference between project success and failure.

    Assuming you aren't in such a high performance setting, you can often simulate a materialized view by simply populating a transformation table using stored procedures. In such settings, I think either Firebird or PostgreSQL would work fine, cost less, and avoid icky proprietary licence restrictions.

  12. Re:Bleh by fm6 · · Score: 3, Informative

    Firebird has a few minor claims to fame. The big one is that it's a real relational DBMS, not an ISAM driver with a pseudo-relational front-end.

  13. Re:This project by Just+Some+Guy · · Score: 4, Informative

    Follow the first "Interbase" link in my post to read the explanation I'd written earlier. Some of the problems might've been fixed by now, but it boils down to this: PostgreSQL is widely used, fast, supports the same features, and has major commercial backing. Firebird's main strength is that is used to be Interbase and is a good thing for people with legacy applications built around that system. It's almost like a comparison of Python and COBOL - both are Turing complete, sure, but I'd hate to do new development on the latter unless I worked in a shop that depended on it.

    --
    Dewey, what part of this looks like authorities should be involved?
  14. I think you're wrong by roystgnr · · Score: 4, Informative

    Slashdot reported it when Interbase was first announced to be going open source, and followed up on the actual releases afterward, so lots of people cared a few years ago. Interbase keeps getting mentioned by users in more general database discussions as well, so at least some Slashdot users still care, even users who are more interested in database features than in database names.

  15. Re:Firebird for web sites by fm6 · · Score: 4, Informative

    That's one difference. But query optimization is also a big deal. It's not obvious from simple queries, but MySQL takes a big performance hit if you do anything that involves relations between tables. That's why Slashdot went to indexing posts using a single field, instead of referencing the parent story every time. (It also has the effect of discouraging "first posts" since there's no longer a post #1. But Taco doesn't actually care about that!) I find it hard to take seriously any database that doesn't optimize queries.

  16. Re:Assembling static data by bwt · · Score: 3, Informative

    I, on the other hand, am still annoyed that Oracle doesn't allow taking a slice of a result set and still can't do outer/left/right joins in a standard fashion.

    What are you talking about?

    ANSI standard syntax for such joins was added two versions ago in Oracle. Personally, I hate the ANSI syntax.

    What exactly does "taking a slice" of a result set mean? Oracle gives you half a dozen different ways to do this. The standard one is to use native dynamic sql to add arbitrary WHERE clause conditions at runtime. If that isn't enough, Oracle 9i provides a far greater capability: pipelined table functions allow arbitrary programmatic construction of a result set that can be used as a table in a FROM clause.

  17. Why I know about Firebird by rossjudson · · Score: 4, Informative

    I've used it in several projects, over the years. In my day job, we recently added Firebird to the list of databases that we support as warehouse targets for our application. Firebird's instant installation, small footprint, and portability (a few meg) are good reasons to do this. Another good reason is that it outperforms Oracle on the same hardware, as well as several other commercial databases.

    We used to deploy Interbase as part of a product at a company I worked at years back. We would install, start the system (which had multi-gigabyte databases at times), and then not look at it again for YEARS. Two years could go by without tuning, transaction log clearing, or anything else, for that matter. It doesn't have transaction logs (doesn't need them), and sweeps itself clear of most detritus automatically.

    Backups could effortlessly be done on the fly. Full two-phase commit support. And when it comes to complex transactions, it's one of the best databases out there because of its generational architecture (something it shares with PostgreSQL).

    There are a few rough edges on it, like the lack of a standard GUI administration tool. Java support was slow to evolve. The lack of care given by Borland hurt the product for a time. The Firebird people seem to have done a lot of hard work, and deserve praise.

    And for the record, Firefox or whatever the hell it is calling itself this week is one of the stupidest excuses for a software package I've seen to date. It's Mozilla minus most of the features that make Moz useful and extensible. It doesn't run any faster than Moz in resident mode. It performs no useful function I am aware of. The adulation it receives utterly escapes me; it seems to be a prime example of building software for the past. The engineering effort would have been far better spent on Moz itself.

  18. Re:Firebird(tm) and why I just don't care by ManxStef · · Score: 3, Informative

    Hardly. They did publish a list of people the express dissatisfaction to, which in hindsight was an incredibly stupid mistake, but the wording wasn't anywhere near the "spam/flame all these people" you make out. Arguably they didn't expect many people to respond as the Firebird community (much like the Delphi community that uses Firebird) is fairly small, tight-knit and rational - so they didn't expect people to behave childishly by flooding the mailboxes of the Mozilla team.

    However, because it made "good news" to have an open-source battle (or to create one, which the media is sometimes guilty of) it gained publicity fast and was picked up by people on both sides, including those who'd probably used neither product who thought it'd be good to fan the flames and as a result things escalated wildly - to the extent that some stupid Firebird fanboys mailbombed the Moz devteam while on the other hand some idiotic Mozilla zealots found an SSL bug in the Firebird website and deleted everything...

    So to say that only the "FirebirdDB people" handled things improperly is a pretty wide-sweeping generalisation that, if you stepped back a bit and checked out the facts, might reveal a slight subconscious leaning to Mozilla 'cause you like their browser? I've used both products and saw plenty of mistakes made on *both sides*...

    FYI I did a a writeup of events last time around.

  19. Re:Client caching by Anonymous Coward · · Score: 3, Informative

    I use both firebird and postgres almost daily. They are very similar in many ways. Both are easy to install, and administer. Both have support for true database features like foreign keys, triggers, and transactions. Interbase runs well on Windows. Although I don't like using windows as a server the fact that our clients feel like they have a choice between linux and windows has helped us close the deal on a few occasions (advantage Firebird). Postgres is more popular with the OpenSource community and more free software is written for Postgres than for Firebird so if you are setting up open source software for your clients there is probably more free stuff available for Postgres - I suppose that is an advantage for Postgres.

  20. Re:SQL not relational by MattRog · · Score: 4, Informative
    You are only considering SELECT * cases.

    Obviously you can generate duplicate rows any number of ways if you include non-unique column combinations in your SELECT.

    In any rate, because SQL allows you to create a table *without* a primary key (which then means that result sets can have duplicate rows) then it is not relational. End of story.

    No one is saying that SQL is double-plus ungood, just pointing out that it is not relational (just as saying that 2+2 != 5, and the sky is not made of fish), and don't attribute deficiencies of SQL to deficiencies of the relational model.

    You can begin to understand how Date and Pascal et al at DBDebunk.com feel if you consider the following scenario (this thought exercise presupposes that perfect is possible):

    You spend a lot of time and effort developing The Perfect Car which is perfect in every way. Not only does it not require any non-renewable resources, but it drives to any destination perfectly and is perfectly safe. You work out all the mathematical details and proofs and can say: "I have proven that this car is perfect."

    Since you do not have the time/expertise/money/etc. to build The Perfect Car you then license your Perfect Car Model to the big automakers. They then proceed to implement your Perfect Model in the form of a "Perfect Car" Implementation. Unfortunately for them, building The Perfect Car is very, very difficult, almost impossible. The automakers then proceed to make significant changes to your Perfect Model. They cut corners, make changes which violate certain precepts and assumptions in your Perfect Model, etc.

    They then put The Less-Than-Perfect Car on the market but proceed to call it a Perfect Car. After the "Perfect Car" Implementations that people start to buy get lost, run out of gas, and even blow up and kill them, they start saying: "These Things are wrong with the Perfect Car!"

    Enterprising people then decide to try and fix the "Perfect Car" Implementations by creating New Perfect Car Models. Some of these models include the implementations as a background. Some create Entirely New Models Without Significant Scientific Background. They provide, possibly, incremental improvement over the "Perfect Car" Implementations but generally include just as many, if not more so, opportunities for flaming, burning death as the current Implementations. Not only that, but they throw out Actual Working Parts of the "Perfect Car" Implementations!!

    And all the while you are there, yelling from the sidelines: "But that is not a Perfect Car! I have shown you the path (Model) to building the Perfect Car! I have Proved it True! If you'd stop wasting your time on these other Stupid Designs and focus on the Perfect Model then we'd all be better off!"


    Now that this long-winded description is over you can replace The Perfect Car with The Relational Model and "Perfect Car" Implementations with {Oracle, MySQL, etc.}. You can replace "New Perfect Car Models" (including "Without Significant Scientific Background") with {XML, OO-DBMS, 'Persistence Layers', etc.}.

    No one is saying that you cannot use SQL products or XML, or that you cannot accomplish tasks in these tools, just that when used in the context of data management they are poorly solving what the Relational Model already solved.

    Because IT practitioners are poorly educated and increasingly fad-driven they latch onto non-solutions (like XML, "Post-Relational", OO-DBMS, etc.) and put little or no pressure on DBMS vendors to get it right. Even worse, if someone does release a Truly Relational DBMS there are no guarantees that anyone will buy it due to the ignorance of the IT community.

    Put simply: People don't know what they're missing, so they don't know to ask.
    --

    Thanks,
    --
    Matt
  21. Re:How do I use this thing? by arf_barf · · Score: 3, Informative

    What language? What platform?

    Let's start with a nice Win32 Gui to administer the db: IBExpert

    OK, now the drivers: there are plenty of ODBC, OleDB, .NET and JDBC drivers available. I personally use IBProvider, it's a OleDB driver. I have also used the open sourced ODBC driver with great success.

  22. Re:Bleh by Anonymous Coward · · Score: 5, Informative

    Firebird has a few minor claims to fame.

    What about distributed transactions? AFAIK, no other open source relational database supports them (neither PostgreSQL, nor MAXDB, nor MySQL). I do quite a bit of distributed object programming, so I can't do without distributed transactions, and Firebird's work well.

    What about server-side event notification? AFAIK PostgreSQL is the only other open source relational database that supports them. Switching from a polling architecture to event notification can yield huge performance benefits.

    What about nested transactions? Firebird 1.5 supports savepoints, which are a basic rendition of nested transactions. AFAIK, MAXDB is the only other open source relational database with nested transaction support (though MAXDB's are full-fledged nested transactions, not just savepoints).

    This isn't just some Firebird-propaganda-bullet-list. I find all these features indispensable.

  23. Re:Why Firebird? by hobuddy · · Score: 3, Informative

    I'm not quite sure what it offers over PostgreSQL.

    • distributed transactions (these are indispensable for reliable distributed object programming (I do a lot))
    • savepoints (elementary form of nested transactions)
    • native Windows support
    • embedded mode (the database engine is capable of running as an in-process library rather than a standalone server)

    It's difficult to work with from an administrative level, and not terribly well documented...

    I agree that the documentation is mediocre, but firmly disagree that it's hard to administer. The key is: don't. Make a couple of changes in the config file if you need to, configure automatic backups, then forget about it.

    --
    Erlang.org: wow
  24. Re:Firebird for web sites by F1re · · Score: 3, Informative

    You don't need to know the physical location anymore. Version 1.5 has aliases.

    --
    ...there is no sig...
  25. Re:mysql lets you put crap in your database by Stone316 · · Score: 4, Informative
    You know, I run into people all the time that think they didn't or don't need a DBA. Usually, they are calling me when they can't figure something out or their system crashed and they can't recover, etc, etc. It doesn't matter if its commercial or opensource, you need a DBA. Someone who understands how to administer the environment and protect your data.

    Personally, as a DBA, I don't like mySql because of the numerous gotcha's it has unlike postgreSql. That speaks for itself... but hey, if you write bugfree code and trust that others do as well, then go ahead, use it. BTW> I'm a fan of postgreSQL, I wouldn't hesitate to recommend that if $$$ are a concern.

    --
    "Thanks to the remote control I have the attention span of a gerbil."
  26. Re:Oh, the stupidity... by nconway · · Score: 3, Informative
    First, you can back up any database that uses OS-level files using tar and gzip - that's certainly nothing special for Interbase/Firebird.


    Uh, no. A typical modern RDBMS will use a scheme similar to WAL (write ahead logging) to record data changes and allow recovery from crashes. Unless you can manage to make tar+gzip atomic (which is true if you're using a filesystem-level snapshot feature, but not true if you're actually using tar), you won't get a consistent on-disk snapshot of a DBMS like that. The reason is that the WAL and the data files will be out of sync.

    In order to effectively back up such a database using tar, you need to shut down the DBMS (which is hardly an appropriate backup technique),
  27. Re:Enlighten me... What is MySQL missing? by joeykiller · · Score: 3, Informative
    MySQL is very easy to set up, relatively easy to configure and well documented. Most of the time all you need to do is to save som tabular/spreadsheet like data and do some queries on them. In these cases MySQL rocks (I use MySQL a lot), and its fast as well.

    There's a lot of examples of what MySQL can't do, but I'll just give two. Let's say you want to do this:
    SELECT word FROM dictionary WHERE id IN (SELECT word_id FROM article WHERE article_id = 1)
    This SELECT gets all words used in an article, and looks them up in a dictionary. You can't do this in MySQL.

    What you can do in the latest alpha versions is this:
    SELECT word FROM dictionary WHERE id = (SELECT word_id FROM article WHERE article_id = 1)
    But this will only return one row, so it's not the same. Other DB systems will also let you create functions inside the database, which can be reused later.

    Another thing you can't do with MySQL is set up DOMAINs (or constraints); with Postgres you can specify that a field in a table should be an integer, but only integers between (for instance) 1 and 1,000,000.

    And it's a lot more. But admittedly most people won't be needing the advanced functions a lot, if at all, so if MySQL suits your need just use it. Databases are a little like other tools: You use the one that's best suited for the job.