Firebird Relational Database 1.5 Final Out 445
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.
Comment removed (Score:5, Informative)
Ooooh, THAT firebird (Score:3, Informative)
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.
Re:This project (Score:4, Informative)
I guess Perl has a module for it as well...
Re:What torrent? (Score:1, Informative)
it's right here [66.90.75.92]
Any idiot could of figured that out.
Pain in the ass to build (Score:4, Informative)
...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 [sourceforge.net] appears to be still under construction.
Re:Firebird for web sites (Score:1, Informative)
I always thought mysql was a fairly 'lite' db compared say to Oracles tools, but in practice its given me nothing but trouble. I never heard of interbase before today, databases are not my thing, but I will give it a try. The list of people who put their trust in this software is also impressive.
Re:This project (Score:5, Informative)
On the other hand, I hated having to administer that hell-pit of a server so badly that I wrote a migration program [honeypot.net] to transfer entire databases from Firebird to PostgreSQL. I can't describe how happy I was to switch a fairly large online store [brownderby.com]'s backend to a modern platform.
Re:This project (Score:3, Informative)
Comment removed (Score:3, Informative)
Re:SQL not relational (Score:2, Informative)
Re:Firebird for web sites (Score:5, Informative)
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).
Re:Bleh (Score:4, Informative)
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...
Re:This project (Score:5, Informative)
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 [linuxjournal.com] about this database.
Re:Firebird for web sites (Score:3, Informative)
Basically, the main difference is that Firebird is a fully transactional database server, whereas MySQL is not.
Rollback and commit.
Re:SQL not relational (Score:2, Informative)
Re:Assembling static data (Score:5, Informative)
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.
Re:Bleh (Score:4, Informative)
Re:This project (Score:5, Informative)
I think you're wrong (Score:5, Informative)
Re:Only got one thing to say about Firebird: (Score:3, Informative)
1: The OO stuff as regards table inheritence is broken, and no one's in a hurry to fix it.
2: It's easy for me to install, for some people, not so much.
3: FirebirdSQL is just as free as PostgreSQL, using their own version of the Mozilla Public License.
The main things that PostgreSQL is that FirebirdSQL is not is heavily tested in enterprise environments. Remember, every time you go to slashdot.org, the database serving up that site is MySQL, but the database serving up the IP for that
However, I totally agree there's a negative probability that anyone will ever use the name Postgresql for any other project.
Re:Pain in the ass to build (Score:5, Informative)
Firebird 1.5 has been ported to C++ and doesn't need to be bootstrapped from an existing installation, just configure and make it.
Re:Firebird for web sites (Score:5, Informative)
Re:Assembling static data (Score:4, Informative)
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.
Re:Only got one thing to say about Firebird: (Score:3, Informative)
Configuration, what you seem to be talking about, is not rocket science either. Of course it is harder than configuring MySQL, because it does more. In the case of access permissions, PostgreSQL seperates database permissions (GRANT SELECT ON some_table TO some_user) and the right to connect to the server in the first place (which you set up in pg_hba.conf). This is more work than the pure GRANT-based scheme of MySQL, where GRANTs not only based on user id, but also the remote host etc. It is also more flexible - For example, PostgreSQL can authenticate a connection with Kerberos or PAM - as far as I know, this is not possible, or at least not trivial, with MySQL.
As always, both have their place. If you want easy, use MySQL. If you want flexible, use PostgreSQL. Firebird's claim to fame in this regard has to be filled in by someone else, I don't know it well enough :-)
Why I know about Firebird (Score:4, Informative)
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.
Re:Oh, the stupidity... (Score:1, Informative)
Re:Firebird(tm) and why I just don't care (Score:2, Informative)
These are commited people, spending their own time on a quality database that is available to everyone. You don't have to use it, but don't bleat about just 'cos somehow they've upset you because of a product naming arguement that in all likelyhood you are probably not a party to anyway!
I mean, regardless of if you think Firebird-SQL, Mozilla or both were in the wrong over the naming debacle, it is now resolved, and the vast majority here are fortunate to have the opportunity to use *BOTH* for free without having to do a thing.
So climb down off the moral high-ground, and say something constructive or nothing at all!
Re:Firebird(tm) and why I just don't care (Score:4, 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 [slashdot.org].
Re:Mod this down as Firebait! Mindless MySql trash (Score:3, Informative)
Re:This project (Score:2, Informative)
1 - if you change your dir layout, a symlink pointing to the new db locations is enough (helloooo, stop thinking in terms of apps, learn some basic sysadmin)
2 - Firebird has a new isql with readline capabilities, and there are plenty of good frontends (ibexpert is one) for interbase, isql is a tool of last resort
3 - same as no. 2, but I wonder which IB you were using, SuperServer or Classic? you should specify that
4 - YMMV, I never experienced any corruption and I suspect it's a hardware issue; there's a tool (gfix) to fix the db anyway which usualy works, and hot backups are so easy (gbak -B -V dbfile.gdb bakfile.gbk) you should do them often
5 - you can extract metadata, I'm not sure about SQL statements, but as you say it's not difficult todo it by hand; good clients (eg IBExpert) have a "data pump" to do exactly that
IB is stable, has a small footprint and lots of goodies only found in major league RDBMSs.
Re:Client caching (Score:3, Informative)
Hmm, not quite ... (Score:3, Informative)
It was once Netscape... until they screwed up in the market so bad that they gave up on it and released the source as:
Mozilla... until it became so bloated and overdesigned (and dangerously close to a movie company's trademark on a mutant lizard) that they had to start over as a project called:
That's a bit harsh - how about unfair competition? Anyway, "Mozilla" was the internal codename for Navigator at Netscape. It has always been it's name and it still is today (now for the whole suite).
To quote the "Freeing the Source: The Story of Mozilla " :
Mozilla was a term initially created by Jamie Zawinsky and company during the development of Navigator. The team was working at a similarly frantic pace to create a beast vastly more powerful than Mosaic, and the word became the official code name for Navigator.Firefox... which, (assuming they finally did their homework and checked on trademarks) is actually the best name since the original "Netscape".
They better! The name is catchy and the logo is quite beautiful. Try "Help" > "About Mozilla Firefox".
zRe:SQL not relational (Score:5, Informative)
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):
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.
Re:How do I use this thing? (Score:3, Informative)
What language? What platform?
Let's start with a nice Win32 Gui to administer the db: IBExpert [ibexpert.com]
OK, now the drivers: there are plenty of ODBC, OleDB, .NET and JDBC drivers available. I personally use IBProvider [ibprovider.com],
it's a OleDB driver. I have also used the open sourced
ODBC [ibphoenix.com]
driver with great success.
Re:SQL not relational (Score:2, Informative)
1) Not visible to the user
2) Based on physical (e.g. on-disk) row placement (e.g. Oracle's ROWID pseudocolumn)
Both of these are violations of the relational model.
If, however, every table had a unique sequence number or something, then sure they would not be materially in breach of the uniqueness constraint. However, remember that result sets are *also* relations so you would have to have DISTINCT appended to every SELECT statement to also pass the uniqueness test.
Re:Bleh (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.
Re:Under whelmed (Score:2, Informative)
Re:Why Firebird? (Score:4, Informative)
I'm not quite sure what it offers over PostgreSQL.
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.
Re:Firebird for web sites (Score:4, Informative)
Re:mysql lets you put crap in your database (Score:5, Informative)
Personally, as a DBA, I don't like mySql because of the numerous gotcha's [sql-info.de] it has unlike postgreSql [sql-info.de]. 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.
Re:Oh, the stupidity... (Score:4, Informative)
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),
Re:Bleh (Score:2, Informative)
Re:Why Firebird? (Score:2, Informative)
Re:LOCKSMITH? (Score:1, Informative)
The bug was found by us, and the release of it publicly was done, initiated by us, through CERT. http://www.cert.org
Updated versions and patches were availabe before the public release of the security bug.
Cheers
Mark
Re:Enlighten me... What is MySQL missing? (Score:4, Informative)
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: 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: 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.
Re:SQL not relational (Score:3, Informative)
That is one thing you should never do. Never ever trust any web site as authoritative.
What could be good for you is to read the arguments critically, and think. Perhaps even get a book, either on you library or buying it -- Date's _An Introduction to Database Systems_ *is* the standard reference textbook in the area, so it's worth it.
BTW, all caps in a title is perfectly accepted practice.
Relational != SQL (Score:1, Informative)
OT: Have to post AC, have been modding.