From: | Paul Ganainm <paulsnewsgroups(at)hotmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Firebird and PostgreSQL at the DB Corral. |
Date: | 2003-12-16 21:04:10 |
Message-ID: | MPG.1a4983a917675eaf9896b3@news.gmane.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi all,
Following up on another thread, here is a comparison between FB and PG
from an FB'ers POV. BTW, FB is the love-child of Open-Source-Interbase.
BTW, I have tried to be as accurate as I can with the information
available to me at this point in time - I was unable to find anything
resembling a feature list on the FB site, so most of this is from
memory. I do have an email account on the various lists on that site,
and I will post this there and see what they have to say.
This should get the ball rolling on an FB/PG discussion. Hopefully the
primitive formatting that I've applied will work on everybody's machine,
I've just just used '> ' (like newsgroups) and ---------'s to separate
topics. If you are going to reply, it might be better to do it topic by
topic, rather than uselessly copying endless lines of un-replied to
postings? Short, staccato, angry responses are what I want! 8-).
The architectures of the databases are fundamentally the same MVCC for
you, MGA for us Firebirders (Multi Generational Architecture).
From an Open-Source-Interbase/Firebird point of view there are several
issues where PostgreSQL falls down.
Ease of use (particularly on Windows). FB is about as easy as installing
Minesweeper.
</Controversial remark>
PG appears to place a lot of effort in supporting array datatypes.
While they are (barely) supported in FB, most advise against using them
- if I had my way I'd rip them out - they are the work of the Devil. A
well designed schema can get around any need for arrays. They break the
relational model and are generally very non-portable.
<Controversial remark>
I'm not sure exactly where I stand here, but FB has been moved to C++,
whereas AFAIK, PostgreSQL is still in C - this is probably a religious
war (and beyond me), but I just thought that I'd mention it.
From http://advocacy.postgresql.org/advantages/
--------------
> Immunity to over-deployment
Ditto for FB.
---------------
---------------
> Better support than the proprietary vendors
Ditto for FB.
-----------------
----------------------
> Significant saving on staffing costs
Ditto for FB.
----------------------
----------------------
> Legendary reliability and stability
Ditto for FB. Although there are reports of corruption from time to
time, it is generally because the "server" was actually some end-user's
PC.
-----------------------
-----------------------
> Extensible
Ditto for FB. If you want to extend the code, though, you have to give
those changes back to the community - the licence is more GPL than BSD.
------------------------
-----------------------
> Cross platform
FB supports approx. 10 major platforms - not quite as many as PG, but
still enough to be getting on with.
-----------------------
------------------------
> Designed for high volume environments
> We use a multiple row data storage strategy called MVCC to make
> PostgreSQL extremely responsive in high volume environments.
> The leading proprietary database vendor uses this technology
> as well, for the same reasons.
Ditto for FB. It uses what is termed variously as MGA (Multi-
Generational Architecture - I think that they have you guys beat for the
terminology!), Record Shadowing or Record Versioning. It seems to be
identical to what PG uses, with a different implementation obviously.
--------------------------
---------------------------
> GUI database design and administration tools
Ditto for FB. Some free, some proprietary.
---------------------------
---------------------------
> A point list for some technical features that PostgreSQL offers:
(an X before any of these means that FB is also compliant, an O means
not, but see caveats)
-----------
> Fully ACID compliant
X
-----------
-----------
> ANSI SQL compliant
X
------------
---------------
> Referential Integrity
X (why this should be seen as a bonus is beyond me!)
---------------
---------------
> Replication (non-commercial and commercial solutions) allowing
> the duplication of the master database to multiple slave machines
X caveat: no OS solution at the moment, but there is a form of shadowing
that one can do - not great but better than nothing.
----------------
----------------
> Native interfaces for ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG,
> Python, and Ruby
X caveat: I think that FB works natively with the vast majority of these
and has its own interfaces as well, but not ECPG obviously.
------------------
------------------
> Rules
? I don't understand these - can somebody explain exactly what they are?
-------------------
-------------------
> Views
X (FB's are updateable to boot!)
-------------------
-------------------
> Triggers
X (puhlease!)
--------------------
--------------------
> Unicode
X
---------------------
---------------------
> Sequences
X, in FB parlance Generators!
----------------------
-----------------------
> Inheritance
(NO!!!!!!!!!!)
-----------------------
-----------------------
> Outer Joins
X (This is a big deal?)
------------------------
------------------------
> Sub-selects
X (and this?)
------------------------
-----------------------
> An open API
X
-----------------------
----------------------
> Stored Procedures
X (another big deal for an RDBMS?)
-----------------------
-----------------------
> Native SSL support
? (not sure - there is a thing called Zebedee that allows secure
connections over the internet).
-----------------------
-----------------------
> Procedural languages
X (big deal yet again - though, mind you, not as many as PG.
-----------------------
-----------------------
> Hot stand-by (commercial solutions)
? (not sure what is meant by this)
-----------------------
-----------------------
> Better than row-level locking
X (I assume that what is meant here is MVCC?)
------------------------
------------------------
> Functional and Partial indexes
O
--------------------------
--------------------------
> Native Kerberos authentication
O
--------------------------
--------------------------
> Support for UNION, UNION ALL and EXCEPT queries
X
--------------------------
--------------------------
> Loadable extensions offering SHA1, MD5, XML, and other functionality
O. Caveat, maybe some of this through UDF's?
--------------------------
--------------------------
> Tools for generating portable SQL to share with other SQL-
> compliant systems.
X FB uses fairly standard SQL syntax. There are a couple of freeware
utilities as well that help one.
---------------------------
---------------------------
> Extensible data type system providing for custom, user-defined
> datatypes and rapid development of new datatypes
X Caveat. UDT's are a doodle, but cannot AFAIK create row type
variables.
----------------------------
-----------------------------
> Cross-database compatibility functions for easing the transition from
> other, less SQL-compliant RDBMS
O, but many should/would be easy to write using UDF's.
-----------------------------
Paul...
--
plinehan x__AT__x yahoo x__DOT__x com
C++ Builder 5 SP1, Interbase 6.0.1.6 IBX 5.04 W2K Pro
Please do not top-post.
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Welty | 2003-12-16 21:24:59 | Re: Firebird and PostgreSQL at the DB Corral. |
Previous Message | scott.marlowe | 2003-12-16 20:50:14 | Re: left turn to mailing listswas: add column sillyness |