The computing world divides into two camps — the sort-of-free camp and the definitely expensive camp. If you are reading this, you probably already use or intend to use Apache and you will therefore be in the sort-of-free camp. This camp offers free software under a variety of licences (see later) plus, in varying degrees, commercial support. Nowadays, all DBMs (database managers) use the SQL model, so a good book on this topic is essential.[2] Most of the scripting languages now have more or less standardized interfaces to the leading DBMs. When working with a database manager, the programmer often has a choice between using functions in the DBM or the language. For instance, MySQL has powerful date-formatting routines that will return a date and time from the database served up to your taste. This could equally be done in Perl, though at a cost in labor. It is worth exploring the programming language hidden inside a DBM.
These are the significant freeware database managers:
MySQL is said to be a “lighter weight” DBM. However, we have found it to be very reliable, fast, and easy to use. It follows what one might call the “European” programming style, in which the features most people will want to use are brought to the fore and made easy, while more sophisticated features are accessible if you need them. The “American” style seems to range all the package’s features with equal prominence, so that the user has to be aware of what he does not want to use, as well as what he does.
PostgreSQL is said to be a more sophisticated, “proper” database. However, it did not, at the time of writing, offer outer joins and a few other useful features. It is also annoyingly literal about the case of table and field names, but requires quotation marks to actually pay attention to them.
mSQL used to be everyone’s favorite database until MySQL came along and largely displaced it. (It is source available but not free.) In many respects it is very similar to MySQL.
A “real” database manager will offer features like transactions that can be rolled-back in case of failure and Foreign key. Both MySQL and PostgreSQL now have these.
If you are buying a commercial database manager, you will probably consider Oracle, Sybase, Informix: products that do not need our marketing assistance and whose support for free operating systems is limited.