Christopher B. Browne's Home Page
cbbrowne@acm.org

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.

  1. Oracle on Linux

  2. Other Oracle Links

  3. 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...)

  4. Oracle Analytic Functions

  5. Informix

  6. Sybase Adaptive Server Enterprise

    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 11.0.3.3 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...

  7. Sybase SQL Anywhere

    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...

  8. ADABAS D for Linux

    ADABAS has been one of the DB platforms supported for the SAP R/3 system. (And for R/2, the MVS/mainframe-based predecessor to R/3, albeit running the earlier ADABAS C version.) Supports ODBC

    Note that SAP purchased this product, and has released it as SAPDB under the GPL.

  9. SOLID

    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.

  10. Empress RDBMS

    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.

  11. Gupta SQL-Base

    SQL-Base is available in beta form for Linux, as is the Team Developer application framework.

  12. JustLogic SQL

    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...

  13. YARD

    Complies with ANSI X3.135 of 1989/1992, supports ODBC.

  14. Birdstep

    Birdstep has acquired Raima (vendor of the Velocis SQL DBMS as well as an ISAM DBMS) and Centura (formerly seller of db.star .)

  15. Raima - Velocis

    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.

  16. Faircom (SQL Server) Supports ODBC; this probably runs atop their ISAM engine, c-tree Plus

  17. Thunderstone Texis/Metamorph

    SQL/Text Database. Supports ODBC

  18. 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...

  19. InfoFlex

    This provides a "100 compatible" replacement for both Informix-ESQL/C and Informix-SE.

  20. 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.

  21. 4js - Informix Compiler

    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.

  22. Ovrimos SQL Server

    A client/server RDBMS with HTML interface.

    The company has apparently subsumed Altera SQL Server into their product line, including a Scheme interpreter.

  23. Computer Associates OpenIngres

  24. DBMaker

    Functionality includes:

    • BLOBs, File Objects

    • ANSI92 SQL, ODBC 3.0 Level 2

    • Foreign keys, table/column constraints,

    • Support for transactions, two phase commit

    • User-defined types

    • User/group level security

    • Online backup

    • Stored procedures, triggers

    • Runs on many platforms including Win32, Linux, FreeBSD, and many Unixes

  25. Upright Database Technology AB

    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...

  26. IBM Data Management: DB2 UDB 5.2 for Linux home page

    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.

  27. DB2 Everywhere

    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

  28. IBM Redbooks | e-Business Intelligence: Leveraging DB2 for Linux on S/390

  29. The mSQL FAQ

    A lightweight database engine that supports a relatively small subset of the ANSI SQL spec.

  30. Essentia

    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

  31. Kubl

    Kubl has become Virtuoso

  32. InstantDB

    A Java -based DBMS, now part of the Enhydra Project.

  33. Progress RDBMS - now officially released on Linux.

  34. OpenLink Virtuoso

    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...

  35. relX

    A DBMS implementation using SQL-92, ODBC, JDBC, XML , running on many Unix -like systems including Linux , FreeBSD, as well as non-Unix-like systems like Windows NT and Novell Netware.

    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.

  36. Pervasive Software Inc. - Formerly Btrieve

    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.

  37. FrontBase

    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.

  38. ThinkSQL

  39. Fresher - Matisse

    An SQL DBMS that also offers object-oriented interfacing to such languages as C++, Java, Eiffel, and various scripting languages.

  40. Matisse

    An OODBMS that also "speaks" SQL.

  41. SAND Analytic Server

    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.

  42. DaffodilDB

    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 .

  43. ANTs Data Server

    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.

  44. H2 Database Engine

    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.

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, 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 .

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.

Google
Contact me at cbbrowne@acm.org