The DBI API provides facilities working with a RDBMS system in standard
ways. Placeholders, cached SQL parsing and other things sweeten the deal
further to provide robust performance and rapid development.
We're using Oracle 8.1.5 on Solaris which performs very reliably. DBD::Oracle,
the driver that DBI uses to access the Oracle engine, is very fast and handles
CLOB and other Oracle data types just fine. While we'd like a lighter budget
for out RDBMS, we require integrity constraints and robustness that mandates
a commercial database.
Since we're running DBI under mod_perl, our libraries that have to deal
with Oracle directly (and in turn provides a higher level API to the tools
and formatting components running under HTML::Mason) can take advantage of
Apache::DBI's persistent database connections and connection pool maintainence.
In the future we may pursue forking our code to run under PostgreSQL. They
seem to have the most complete SQL implementation of the non-commercial
databases. If we get really adventurous, we may experiment with supporting
MySQL even though that will require integrity enforcement within our Perl
libraries.