There are more SQL database systems available for Linux than anyone would expect. Lots of commercial products; a surprising number of free SQL databases.
MySQL™ functionality comparisions contains some relative comparisons between various different database systems.
This is presented at the MySQL AB web site, so it might well have certain biases...
Many of the commercial database vendors downright forbid the publication of comparative benchmarks, which makes it rather difficult to determine comparative performance.
There is some fairness in this; squabbling between proponents of MySQL™ and PostgreSQL tends to take place when tests are presented. Benchmarks are almost always constructed in such a way as to favor the whichever database the benchmark-maker favors. Someone who prefers PostgreSQL is likely to construct benchmarks (and, for that matter, to use their database) in a manner that will favor PostgreSQL, and which will make MySQL™ look bad. And vice-versa.
This quick paper attempts to explain why MySQL™ is not just the wrong choice for OpenACS, but how it should never be used by any system that handles critical data.
MySQL™ claims that they have compromised on certain features to guarantee better performance. While this may be an interesting way to track non-critical data such as clickthrough tracking, compromising on perfect data integrity is not acceptable, even for speed, when dealing with critical data.
Since the writing of that article, a transaction manager was prototyped using Berkeley DB (now owned by Oracle ) and then they built their own transactional engine called InnoDB (now owned by Oracle ) which may resolves some of the issues. On the other hand, there is a paucity of new benchmarks to show how performance changes when transaction management is added in.
This site basically takes the stance that the purportedly "relational" databases have largely ignored Codd's 12 Rules
They "gore" a number of "holy cows," being assortedly critical of the notions that destructuring data via XML is vastly useful, object databases are necessarily an improvement, that "post-relational" is anything more than marketing verbiage, and the like. They are quite critical of SQL itself, especially of the notion that "having an SQL query language" indicates that a database system is necessarily "relational;" to the contrary, they rather suggest that being properly "relational" requires functionality that SQL only very weakly addresses.
The direction that they wish to head is described in the Third Manifesto literature.
FinTime - a financial time series benchmark
BSD-licensed, this is the most mature and probably the most featureful of the database systems available as free software.
Interbase has been released as Open Source.
Unfortunately, this appears to be the result of the stock market "bubble" of 2000 having made it appear worthwhile to cash in on the cachet of "open source." Combine that with customers having been aggravated by Inprise having cut development efforts who might be mollified by them making development "a little more public," and this gave considerable impetus to the "open sourcing" of Interbase.
The Firebird project has forked the source tree, and a number of developers formerly at Inprise are now working on it.
Notice that Yaffil is still another fork of it...
InterBase - The Open Source Database
Firebird Relational Database (formerly known as InterBase )
A number of the former developers of InterBase have " forked" development to Firebird , which apparently underlines the concerns already expressed about the committment of the owners of InterBase to "Open Source."
SQLite is an SQL database implemented atop a dbm-like storage system.
Databases are self-contained in a single file; it supports
multi-user access, but only a single user can update the database at a
time. It is largely an "untyped" system; data is stored
as strings, and exceptions are not raised if you
drop a string into an
A GPL 'ed SQL engine implemented in C . It supports standard SQL, transactions, a procedural programming language, and a graphical user interface using the Qt toolkit. Useful for developing stand-alone user applications. Runs on any UNIX platform.
Contains useful modules like a file caching library through shared memory (does file locking as well); a B+ tree library; and an external file sorting package.
This is an "SQL simulator" written using the Korn shell.
A GPL -licensed SQL DBMS of somewhat limited power; runs on a number of Linux-like platforms. Its "claim to fame" as compared to other free databases is that the author wrote some of the locking code in assembly language to maximize performance in that area.
This is an SQL database implementation intended to be small enough to be linked directly to applications rather than using a client/server approach.
SQL according to ISO standards, with all features (domains, constraints, procedures, collations, subqueries, etc.) and ODBC 3.0 interface, plus front end, utilities and samples.
Only runs on Windows, but is available under the GPL.
PQL is a relational, transaction oriented database tool, that is free available in source. PQL stands for "plain query language" and is a kind of SQL (rather a subset) Nearly all features of SQL are supported, like joins, subqueries and grouping. The join operation has been optimized using a iterative "search and join" algorithm which runs over all joined base tables.
MonetDB is a main memory database implemented in Java that now supports both its own relational algebraic language, MIL, and a dialect of SQL99. It is licensed under a derivative of the Mozilla Public License.
txtSQL is a class of PHP functions designed and implemented to use flat file databases that may be queried and updated using a limited form of SQL.
Axion is a small, fast, open source relational database system (RDBMS) supporting SQL and JDBC written in and for the Java programming language. Licensed under a commercial-friendly (BSD/Apache-style) license.
Ashpool is a lightweight XML Database written in Java(tm). Its goal is to use standard SQL92 syntax to query, add, update, and delete XML documents via a JDBC driver.
xlSQL is the working name of a project to develop a lightweight SQL database that will use the Microsoft Excel file format as a datastore. Yes, that seems a rather perverse approach, neither particularly lightweight nor particularly reliable...
Computer Associates plans to release Ingres under their own open source license.
Derby (formerly known as Cloudscape) is a "standards-based" Java database that supports SQL and JDBC, with the intent of allowing migration to DB2. The code has been released to the Apache project.
A Russian implementation of SQL, this was created by a group at the Institute for System Programming of the Russian Academy of Sciences. It uses an implementation not unlike early versions of Oracle/Informix where SQL "scripts" are compiled into a form that embeds SQL "calls" into C code, which is then compiled into the form that is actually run.
Still in "beta" testing, new code has not released since 1998.
This is a DBMS that speaks ANSI SQL, as well as ODBC . The single-user version is freely available for Linux (with source code) under a "GNU" license.
Plans were for CQL++ to evolve to conform with the Date/Darwen Third Manifesto, whereby the DBMS engine would truly support a relational model as opposed to SQL.
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.
If you have difficulty starting up Oracle on Linux, export LD_ASSUME_KERNEL=2.2.5 may be helpful, and may not be documented as a necessary incantation.
(I found it so...)
Sybase ASE 11.9.2 is available without charge for development purposes, and support (obviously at a cost!) is available for production deployment.
Sybase ASE 18.104.22.168 is available without charge for both development and deployment, albeit with no support offerings available.
In the past, Sybase SQL Server was heavily criticized for its lack of row-level locking; ASE now offers three types of locking that include row-level locking. Unfortunately for Sybase, it appears that this happened too late to attract ASE support from SAP AG's R/3 system, but hopefully better late than never...
See also other Sybase resources...
This system is intended for use embedded in applications, and is particularly designed to synchronize itself with other database instances, so that, for instance, when a mobile system running SQL Anywhere links up to a server, more than likely running Sybase ASE or something of the sort, the mobile system would push upstream updates collected since the last sync, and pulling down updates. The "push" stuff might include things like sales information (e.g. - if it's running on a salescritter's laptop) or statistics (e.g. - if it's running on the box the utility meter reader carries around). "Pull" stuff might include updated price lists, for the salesman with the laptop...
ADABAS D for Linux
A Finnish database. Runs under Linux, various MSFT OSes, and the "common true Unixes" (Solaris, AIX, SCO, SGI...) Supports ODBC as well as JDBC.
The former SOLID Server was sold for about $300 per server, and was commonly deployed for use with web systems as SOLID Web Engine. The company has since "changed their communicated business focus," and are now selling the SOLID FlowEngine with, apparently, a different pricing model. It appears that they may now charge somewhat less per server, but expect those wishing to deploy it to pay for quite a number of licenses.
Empress is a pretty full-featured SQL-compliant RDBMS that runs under various flavors of Unix including Linux. They were one of the first database vendors to integrate in sophisticated support for web-based applications.
Empress Software is based in Markham, Ontario. All that I've heard about Empress has been pretty favorable; the primary complaint is that it gets quite expensive as one moves past the "Personal" version. Supports a web programming protocol as well as ODBC. They were a pioneer amongst RDBMS vendors in providing direct support for web-based applications.
SQL-Base is available in beta form for Linux, as is the Team Developer application framework.
JustLogic is an RDBMS with a programming API that works with with C and C++, running under various (mostly Intel) Unix versions as well as MSFT's OSes. Royalty-free.
Unfortunately, the only reports I've heard about this product have not been complimentary.
The web site has pretty limited product information, which isn't exactly encouraging...
Complies with ANSI X3.135 of 1989/1992, supports ODBC.
Raima's Velocis Database Server is a client/server SQL database engine that provides multiple APIs, including an ANSI SQL C-API, a low-level C-API, C++ class libraries, and a custom API through Server Extensions. Velocis supports both relational and pointer-based network database models. The Server Extension feature allows application code to be hosted directly on the database server, reducing network traffic. Supports ODBC.
Now owned by Birdstep.
SQL/Text Database. Supports ODBC
PrimeBase " The PrimeBase DBMS supports ODBC, SQL and DAL and the most popular protocols (TCP/IP, AppleTalk) and platforms (Mac, Windows 95/NT, Solaris, LINUX, IBM AIX, etc.)."
Freely available for development projects...
This provides a "100 compatible" replacement for both Informix-ESQL/C and Informix-SE.
Querix Informix/Oracle Compilers
Provides a 4GL compiler that connects to Informix, and apparently provides improved performance over Informix's equivalent compiler. The compiler also allows the applications to be connected to an Oracle database, thus providing a migration methodology.
This appears to require instances of Informix/Oracle.
Provides a compiler for Informix 4GL that produces "P-code" that can then be executed on a variety of platforms, thus making it fairly easy to add an extra "tier" to a client/server application.
A client/server RDBMS with HTML interface.
BLOBs, File Objects
ANSI92 SQL, ODBC 3.0 Level 2
Foreign keys, table/column constraints,
Support for transactions, two phase commit
User/group level security
Stored procedures, triggers
Runs on many platforms including Win32, Linux, FreeBSD, and many Unixes
Swedish SQL DB that has been deployed on Linux
Developer's license is available freely to be downloaded. Presumably deployment licenses are a little more expensive...
IBM now provides Linux support for their database system. This leaves only MSFT's SQL Server as the only member of the "top tier" of RDBMS products that don't have any sort of support for Linux.
An "embedded" version of DB2 with around a 150K footprint. It is particularly designed for use on small form factor computers such as PDAs. It then offers a Sync Manager to synchronize mobile data with a full scale DB2 server
A lightweight database engine that supports a relatively small subset of the ANSI SQL spec.
A database engine available freely for Linux; one can connect an "SQL Server" called isqlsrv to it to provide a database "front end." Apparently provides common DBMS features such as checkpointing, journalling, incremental backup, mirroring, shadowing, two phase commit. It also provides the somewhat rarer feature of allowing you to have "versions;" this feature is discussed fairly extensively in the Postgres research papers. Briefly, it permits queries to be based on the state of the database at some previous point in time. Supports ODBC
Kubl has become Virtuoso
Progress RDBMS - now officially released on Linux.
A server implementing Web, File, and Database sever functionality alongside Native XML Storage, and Universal Data Access Middleware as a single server solution. It includes support for key Internet, Web, and Data Access standards such as XML, XPATH, XSL-T, SOAP, WebDAV, SMTP, SQL-92, ODBC, JDBC, and OLE-DB.
This was once called Kubl...
Versions range from an "enterprise" version, which has been rated as secure by the Russian military in their equivalent to the US Rainbow Series, where relX is rated at a level roughly equivalent to the US B3 classification, to an "embedded" version intended to be tucked in with applications, down to a "micro" in-memory version that allows wrapping a kernel with a developer-selected subset of SQL in order to minimize the footprint.
They also offer a RAD application builder that provides cross-platform portability of applications by their use of a bytecode compiler for their proprietary ATOLL language.
BTrieve was virtually ubiquitous on Novell Netware servers, as it was widely used as an 'embedded' database to support server applications such as logging information for backup software. Pervasive adds in a fairly full-featured SQL front end, and is used, embedded, in applications such as AccPac .
This product has as its "claims to fame" that it has quite good support for Mac OS-X and NeXTStep-related development frameworks; it seems mainly targeted for use as an "embedded" database for web-oriented applications.
An OODBMS that also "speaks" SQL.
This SQL-interfaceable database server is intended for "business intelligence" applications. The heart of it is the Nucleus data management engine, which uses a column-based, tokenized, compressed bitmap-indexed data structure.
A SQL database implemented in Java. The vendor has an "open source" release called One$DB that has been released under the LGPL and extended in order to provide those bits of Oracle functionality needed to allow it to be used for the ERP application Compiere .
A main memory database system targeted at high performance OLTP applications, providing a dialect of SQL92, with a design intended to avoid locking as much as possible.
Written in Java , this can be run either embedded in applications, or as a separate server. It can be obtained freely, but the owner has not chosen any "open source" or free software license, wishing to retain sole right to sell it.
MySQL™ is a popular but somewhat primitive database system offering a limited dialect of SQL, which is developed and marketed by MySQL AB, now a division of Sun Microsystems.
A matter of some controversy is that of licensing. MySQL AB/Sun 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 .
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
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.
Abriasoft offers support services for MySQL™.
You may also want to look at packages like Merlin and Abria SQL Lite. They are largely derivative of free software others have written, but if you run Red Hat Linux, and aren't up to the task of installing and configuring such things as MySQL™, Apache , PHP , Perl , and, with Merlin, some web-oriented apps like Bugzilla, Webmin , and such, it may be worth looking at. It's pretty useless for users of distributions other than Red Hat and "Yellow Dog," though...
InnoDB, owned by Oracle, adds transaction support, so that you can create tables that support rollback/commit, row level locking, and an Oracle-like non-locking read to MySQL™.
It is not evident what ongoing relationship this will have with the code base after SAP-DB code becomes the " new enterprise MySQL™".
Falcon - dead project
This project seeks to provide a way of "mounting" a MySQL™ database and treating it as if it were a filesystem, where the hierarchies of tables, users, and other structures are mapped to appear as if they are hierarchies of directories and files.
A "fork" of MySQL has emerged; this database, being built solely under the GPL, as a community effort, drops out the controversial new features of version 5, trying to return to the more basic model of elder versions, not having foreign keys, triggers, stored procedures and such, returning to a focus on web applications requiring a lightweight data store.
We'll see what happens...
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.
This article quite clearly outlines the intent of MySQL AB in their establishment of licenses for their products. It would be wise to determine their intent before blindly adopting it in imagining that " it's free".
If this was useful, let others know by an Affero rating