Christopher B. Browne's Home Page
cbbrowne@gmail.com

3. SQL Databases

There are more SQL database systems available for Linux than anyone would expect. Lots of commercial products; a surprising number of free SQL databases.

Not much formal benchmarking such as TPC - Transaction Processing Performance Council has been done on Linux; here are some comparisons that I am aware of:

3.1. Free SQL RDBMS Systems

These database systems are available in source code form, and tend to be licensed under the GPL , BSD License, or some similar license.

3.2. Commercial Offerings

In Fall 1998, there was the fairly exciting news that the "top tier" database vendors, Oracle, Informix, Sybase, and IBM have released versions of their database products for Linux. Interestingly, the announcements from Oracle and Informix were made on the same day. As a result, the only major name in databases that doesn't have a Linux offering is MSFT. (And since Linux has Sybase, an older version of which was the code base for what MSFT sells, we don't much care. )

Note that most of these vendors will provide "demonstration" or "development" versions at no cost. Deployment, on the other hand, can be fairly costly, so that it would not be reasonable to call any of them "free."

Use of the "top tier" systems is typically very visible, and organizations using them tend to make visible use of the software, often adding local customizations, including custom tables and software using such tables. Many of the less-known database systems are commonly used as "embedded databases," where the database is mostly subservient to ("embedded in") some particular application. In such cases, the database won't get much "press," and this is why you have likely never heard of many of the databases. "Embedded" database systems typically try to be very much "self-managing," where the intense manual maintenance and tuning that Oracle is famed for requiring simply doesn't happen.

3.2.1. MySQL

MySQL is a popular but somewhat primitive database system offering a limited dialect of SQL, which is developed and marketed by MySQL AB.

A matter of some controversy is that of licensing. MySQL AB distributes MySQL under the GPL , but encourages users to purchase " commercial licenses" under what seems to be a fairly traditional "commercial/proprietary" license, for anyone with any concerns about " the terms of the GPL". Their interpretation seems to be that applications you use with MySQL must be licensed under the GPL or some other licensed approved by them, otherwise you must purchase "commercial MySQL licenses".

In effect, their recommendation is that commercial enterprises not use the GPL-licensed version, which essentially amounts to it not being free software . As a result of their own recommendations in that matter, their software is thereby classified, here, in the "nonfree" category. It is, in effect, "shareware", not free software .

To put it in their words...

Our guiding principle is to have all our source code open, and to offer it free of payment (i.e. gratis) to those who commit to doing the same. We have concluded that the GPL licence best fulfills this principle, and that's why we use the GPL.

Therefore the answer to (a questioner's) question is: "Your PHP app that works with MySQL, if distributed, will either have to be GPL (or another OSI-approved and MySQL-approved open source licence) or you will need a commercial licence of MySQL."

Sometimes people say "But I cannot open source my application!" and they may have valid reasons for this. Our response is then: "If you have a valid reason not to be open source, wouldn't that same reasoning apply to us?."

This goes to the core of MySQL AB's business idea of Quid pro Quo - if you are open source, we are open source - if you are closed source, we are commercial.

Now, if Linux were licensed by people with this view of "Quid pro quo", then hardly anyone would have been interested in it. If you plan to distribute an application that uses MySQL, then you had better be prepared for some licensing fees. Or it may be necessary to consider other systems who have licenses that conform better with your needs.

The paucity of contributions from external developers is also something that should give pause to would-be adoptors...

It is multithreaded, optimized for speed on simple table queries. As speed is the primary design parameter, it does not implement SQL features that the vendor considers tend to diminish performance, such as subselect queries, select into table, stored procedures, triggers, foreign keys, or views. The upside is that this allows it to be considerably faster than many other SQL databases for the operations that it does support. The downside is that if you wish to use such features, you will have to implement them manually within your application, thereby making the application more complex and more fragile. If the features in question have to do with data validation constraints, you may unfortunately find that the database system provides little or no support for ensuring correct storage of data.

There are many "third party" tools that work with MySQL, similar in quantity to those available for PostgreSQL. This includes:

3.2.2. MaxDB (formerly SAP-DB)

MaxDB Home

SAP AG, makers of the famous R/3 ERP system, acquired Adabas from Software AG, and since have made it available under a free software license, much of it under the GPL , with drivers licensed under the LGPL.

In mid-2003, SAP announced that they are transferring marketing and sales of the database over to MySQL AB, who will dual-license it much as they do their own products. Drivers are longer be licensed under the LGPL, so that the server longer be usable as free software except when the software it is used with is licensed under the GPL . That will doubtless discourage its use for " bespoke" applications; it seems likely that many former users will be migrating to Oracle, Firebird , PostgreSQL , and such.

3.2.3. Backplane

Backplane is a replicated, transactional, fault-tolerant relational database core.

Much as with MySQL, they use a dual licensing approach that they call " open source", but which fails to conform to the OSD definition by virtue of the fact that it restricts people from using the program commercially if they do not purchase the company's "Commercial License."

They indicate that "Our software can be used freely, up to a point, in commercial settings."

The licensing arrangements are very similar to the "shareware" of MySQL; they indicate that the product can be used without fee if applications are "100% GPL" licensed, but that "To anyone in doubt, we recommend the commercial licence. It really can't be wrong."

Google

If this was useful, let others know by an Affero rating

Contact me at cbbrowne@gmail.com