Dec 2004
Firebird wins
Newsforge poll

Nov 2004
Firebird wins
O'Reilly poll

Fyracle: Oracle-mode Firebird

"You will find that only one open-source database comes close to matching the leading enterprise systems on features: Firebird."

Moving from proprietary to open-source?

If you have tried to port existing enterprise applications from their current RDBMS to an open-source RDBMS, then you have experienced that not all databases are equal. Many systems lack the range of features offered by the leading enterprise RDBMS's.

When preparing to port an existing enterprise application, you would have to consider how to map:

  • Datatypes
    Does your target database support all the required basic datatypes, such as NUMERIC, VARCHAR, NCHAR, NVARCHAR, TIMESTAMP? Are datatypes of sufficient maximum size/length? Does your database support BLOBS? How well are BLOBs integrated into the SQL language? Does it do domains, array's and record types?

  • Views
    Does your target database support views at all? Does it do views on joined tables? On union expressions? Do views have their own access rights? Can views be updated?

  • Triggers
    Are triggers on tables supported? Both before and after triggers? Are triggers on views supported, with proper instead of semantics? How powerful is the trigger body language? Does it offer access to the :OLD and :NEW values in the trigger body?

  • SQL functionality
    How advanced is the SELECT statement? Are sub-queries in both the select list and the from list allowed? Are values from enclosing queries correctly handled? Does the target database support hierarchical queries? Does it support multiple named cursors? Etc., etc.

  • Transactions
    Is the target database fully A.C.I.D. compliant? How strong is the implementation? Is it multi-generational ("readers don't block writers, writers don't block readers")? Are user savepoints and nested transactions supported? Is two-phase commit supported?

  • Stored Procedures
    Are stored procedures available at all? If so, in which languages? PL/SQL or similar, Java, C/C++? How powerful is the stored procedure language? Is it powerful enough and similar enough to your current database to allow for a fast (automated) process? Stored Procedures are the single biggest source of incompatibility between databases.

In the below table we have taken Oracle as the gold standard of enterprise database systems and given our estimation of how well the various popular RDBMS's match the features offered by that standard.

So you see: only one open-source database comes close to matching the leading enterprise systems on features: Firebird.

Moving applications from Oracle to Firebird?

Finally want to stop worrying about being under-licensed? Decided to move some stuff of Oracle onto Firebird? Then you will realize that the cost of moving those applications can be significant, because:

  • they depend on special Oracle SQL syntax (such as (+) outer joins and connect by queries)
  • they include a sizeable base of PL/SQL code that needs to be rewritten

Fyracle solves that problem by matching such syntax idiosyncrasies and by providing the ability to compile and execute PL/SQL procedures unchanged:

By using Oracle-mode Firebird, you can bring the cost of porting major Oracle based enterprise application down to manageable levels.

The proof of the pudding...

Firebird-Fyracle supports the major Oracle-based ERP/CRM application "Compiere" -- with virtually no change to the Compiere code base. Fyracle has supported Compiere since version 2.4.2b, which contained over 20,000 lines of PL/SQL. The current release, 2.5.3c, has moved most PL/SQL into stored procedures written in Java, which is also supported by Firebird-Fyracle.

No other proprietary or open-source database system can currently do this. Not even the free Oracle 10g XE edition can run Compiere, because Java support is not included. Moreover, Firebird-Fyracle is faster than Oracle on the same hardware.

More information about Compiere is available through the menu