We’ve all heard the story about the system administrator who snuck Linux into his organization through the back door and quietly started running Apache, Sendmail, or SAMBA. While that still happens in IT organizations all the time, nowadays you’re just as likely to hear a story about a manager who brought Linux into his organization through the front door, with the intention of using it as a departmental database server.

In many ways, this is part of the natural evolution of Linux. For example, as the Web has evolved, the static-page driven Web sites of yesterday have given way to newer dynamically-generated Web sites. In order to drive dynamic Web sites, as well as e-commerce and application server environments, a strong back-end database system is vital. And since Apache running on Linux is the most widely used Web server platform, you can see why the traditional database vendors have been making major efforts to support Linux.

A wide range of database products is available for the Linux platform. There are a number of open source databases, some of which are very basic and are designed only to handle single-user information (such as storing your MP3 playlists or personal contact information). Others (such as MySQL and PostgreSQL) have been developed with more lofty “general-purpose-SQL-database” goals in mind. Add to this the big name commercial database vendors that have taken up the Linux flag (such as Oracle, IBM, Sybase, and Informix), and it quickly becomes apparent that Linux is a serious contender in the database server space.

In addition to this, there are also companies such as GreatBridge (PostgreSQL) and NuSphere (MySQL) that are making a business out of aiding the ongoing development of open source databases while generating revenue by providing training and support for business users.

In this article, we will probe the depths of a number of databases available on Linux. All of these products run on other platforms as well, but we will concentrate on the specifics of each vendor’s Linux offerings. The databases offer varying levels of scalability, reliability, and even basic functionality, and drawing hard and fast lines between them can be difficult. However, by looking at the specific needs of your project, it is possible to narrow the field significantly. While some databases offer enough redundancy and backup features to make even the most paranoid network admin happy, other databases are focused more on ease of application development or lightening the management burden.

DB2 Universal Database

IBM has long been a major name in the database arena. From the various flavors of old-school Dbase to DB2, Big Blue is synonymous with business-savvy database systems across a wide range of companies, markets, and applications. In the past few years, IBM has embraced the Linux movement with open arms. They have committed a tremendous amount of corporate resources to providing across-the-board support for the Linux OS on their myriad of platforms.

While IBM is a big proponent of Linux and of supporting open source initiatives, IBM DB2 Universal Database for Linux 7.1 is still a commercial product. And with a price tag of $2,850 for workgroup installations, and significantly more for those with enterprise deployments, IBM DB2 Universal Database isn’t designed for those with small budgets and low overall requirements. However, as with most IBM software, if you are considering the DB2 Universal Database, a demo version is available from the IBM Web site for evaluation purposes.

Setting up IBM DB2 Universal Database couldn’t have been easier. We simply downloaded the 90-day evaluation version from their Web site (all 203 MB of it) and ran through the installation. If you opt for the CD version of the DB2 Evaluation Kit (as opposed to downloading the software), a DB2 training CD is also included. If you happen to be a developer designing DB2-based apps for someone else, the DB2 Personal Developer’s Edition is also available for free, and without a time limitation. However, Personal Developer’s Edition is restricted to development use only; this version cannot be used to host an actual production database. Still, it’s a great offering for consultants and freelance database application developers.

The reasons for choosing IBM DB2 are obvious. Stellar integration with IBM’s WebSphere and other e-business technologies makes it a good pick for enterprise environments. (For more information on WebSphere, see the roundup of Web Tools in the November issue of Linux Magazine online at http://www.linux-mag.com/2000-11/tools_01.html.) Of course, it goes without saying that the support and development infrastructure IBM brings to the table is definitely worth a few bonus points. And just in case you need a database that spans multiple platforms, DB2 is also available for OS/2, IBM AIX, HP-UX, NUMA-Q, Sun Solaris, Windows NT/2000, and a number of others.

Of course, IBM DB2 is definitely not the best game in town for every situation. It isn’t open source and it isn’t cheap, but it runs on every platform from desktop PCs to massive IBM mainframes. If you’re a small business looking to get your foot in the Web database and application doorway, IBM DB2 Universal Database may not be what you’re looking for. If, how-ever, you’re in need of a massively scalable database system that can integrate with your other enterprise applications, DB2 has everything you’re looking for.

Informix Internet Foundation.2000

The first thing we did was watch the “Way Cool Penguin” video on the Informix Web site, which we found to be a bit cheesy, especially with the Windows Media Player option. Well, Okay…it’s a lot cheesy. But at least they are a company that understands the importance of Linux as a business platform.

While Informix does offer a standalone database product, the true value-add in its offering can be found in its total Foundation suite. Informix Internet Foundation.2000 combines the power of Informix Dynamic Server database package with its J/Foundation package, Web Data Blade, Text Data Blade, Office Connect, and its Object Translator. This integrated suite of products represents everything that a company needs to build Web enabled databases and serve up dynamic Web content.

Informix Dynamic Server is a database designed to support many data types, from text and graphics to audio and video. Since the database server handles many types of multimedia content directly, instead of simply holding references to files stored on the server hard drive, the relevant information can be served up more quickly. This also helps to eliminate the need for managing the data storage separate from the database system.

Internet Foundation also includes J/ Foundation, Informix’s integrated Java VM. The Web DataBlade module gives you the flexibility of storing all content, even your Web pages themselves, directly in the database. And the Text DataBlade and other included packages give developers the tools they need to build database-driven Web applications all in one environment.

We did have to jump through a few hoops to get the Informix solution up and running on our Linux server, but once it was working we found the included tools to be top-notch. Like the IBM and Oracle packages, Informix Internet Foundation.2000 is not designed for the casual database developer or even smaller businesses that are looking to get started on the Web. And given that Informix’s products are all commercial, they are probably not well suited for purebred open source advocates, but rather for those with more advanced “enterprise needs.”

Informix’s integration of a multitude of content types, built-in Java VM directly in the database, and wide range of platforms and APIs supported make it a good choice for large projects. If you’re a big business with big online goals, the total package that Informix offers is worth serious consideration. For those with heavy multimedia needs from their database and Web solution, Informix Internet Foundation.2000 is the right choice.

Oracle 8i Release 3

When IT executives hear the word “database,” most of them instantly think Oracle. This is with good reason. Oracle has been leading the way in the enterprise-level database arena for the past several years, and has been smart enough to pull out all the stops when it comes to supporting Linux for its products. Both the Oracle 8i releases and new 9i product include support for a wide array of server operating systems, including Linux and other flavors of Unix.

Of course, Oracle 8i is not an open source product. While demo and test versions of its database products are available for download from the Oracle Web site, they are distributed under a commercial license. But if you are trying to pitch a Linux-based database server to the higher-up IT execs in your company, your job may be a bit easier if they know you plan to run Oracle on that machine.

Oracle has a reputation for being easy to install and administer. It provides Web-based administration services through WebDB, as well as the usual platform-dependant database admin tools. Another big benefit is that Oracle DBAs (Database Administrators) are common, since it is such a popular platform on other OSes. Administering Oracle on Linux is not much different from doing so on Solaris or even Windows.

All of this power and flexibility comes at a price. Oracle 8i is priced at $600 per active user for a perpetual license and $210 per user if you go for a two-year license. Licensing is also available per “Power Unit” (PU). Basically, you take the number of Intel CPUs times the megahertz of each CPU times the number of machines to get your PUs. Risc CPUs count as 1.5 Intel CPUs, and mainframe licenses are calculated based on 24 CPUs. Confusing, but an example will help to clarify. If you have a dual 500 MHz server, you need to purchase 1000 PUs. If that was a quad processor instead, you’d need 2000 PUs. Oracle 8i is priced at $100 per PU for a perpetual license, $35 for a two-year license, and $60 for a four-year. So, our dual 500 MHz server would cost us $10,000 for a perpetual license of Oracle 8i.

Similar to Informix Internet Foundation.2000, Oracle 8i comes with a Java virtual machine built into the server product. The WebDB package greatly simplifies application development and deployment, as well as database management. All of this makes Oracle 8i an excellent choice for businesses that want to quickly “Web-enable” their database applications while still having the ability to scale those applications up to an enterprise-level of features and functionality. However, the Oracle pricing scheme can get very confusing very quickly, so make sure you bring an accountant into the discussion before making your buying decision.

Sybase Adaptive Server Enterprise Edition

Sybase Adaptive Server Enterprise Edition is a commercial package that includes all of the enterprise-level functionality that one would expect from Sybase; it runs on the Linux platform as well as on many others. While the 12.0 version is not yet available for Linux, the ongoing beta testing of Sybase Adaptive Server 12.5 does include Linux support.

Sybase Adaptive Server is designed from the ground up for mission-critical, high-availability environments. It includes support for clustering and failover of mirrored database servers, as well as online backup of the database. There is extensive documentation provided on the Sybase Web site on how to configure and maintain these features. Also recently released is Sybase Replication Server. This independent server runs in conjunction with Sybase Adaptive Server to provide enterprise-level replication and increase overall performance.

Setting up Sybase Adaptive Server for Linux 11.9.2 involved a few steps. A 60-day evaluation license is available from the Sybase Web site, so your business can evaluate the system before making your buying decision. The installation is done through a group of RPMs. Included are sybase-doc-11.9.2, sybase-common-11.9.2, sybase-ase-11. 9.2, and a few others. Sybase Monitor Server allows for database monitoring, SQL Remote is for remote administration and replication, and a number of clients are also included.

Just like Informix Internet Foundation.2000 and Oracle 8i Release 3, Sybase Adaptive Server has a Java virtual machine built right into the server. This feature greatly enhances the capabilities of the database, allowing for Java code to be used directly in the database.

All of this makes Sybase Adaptive Server a powerful database platform for both small and large Linux environments. When you consider the development and management tools that have been included in the sticker price, Sybase Adaptive Server is definitely worth a look.

MySQL

When people think of databases running on Linux, MySQL (alongside PostgreSQL) is one of the first products that come to mind. Almost all Linux distros include MySQL, and many applications exist to take advantage of it. MySQL is a purely open source project and is licensed under the GNU General Public License (GPL). There is also a commercialized version of MySQL, available from NuSphere Corporation.

MySQL can be installed during your server setup if your distribution includes it. Of course, newer versions are always available at the MySQL Web site, http://www.mysql.com. Setting up MySQL on a Linux server involves downloading the source, .rpm, or .deb version and running the installer. This will create the necessary directories and users and install all of the proper tools for accessing and managing the database.

One major technical drawback to MySQL is its lack of row-level locking. This can be a crippling factor in high-transaction rate environments. Basically, since the database must lock an entire table or page, multiple concurrent requests are more likely to be queued and handled one at a time. A single user on your e-commerce site, for instance, could slow the transaction times for everyone else. Fortunately, NuSphere is working on a new storage engine (currently in beta testing) that will include row-level locking, multiple isolation levels, and a number of other important enhancements. This functionality has been submitted to the MySQL developers but hasn’t been made part of the current version (3.23) as of yet.

MySQL does have excellent client support. Not only are there clients and APIs for Linux and Unix, but also for Windows, Java, and even MacOS X. The replication capabilities of MySQL make it a good choice for those who need to run slave databases and make backing up the database while it is running a much less troublesome task.

MySQL earns high marks for its speed, excellent functionality, and wide range of API and clients supported. If you need a solid, stable, and feature-rich open source database environment, this is the one for you. And if you are in need of extensive support and training, you can now get these from MySQL.com and NuSphere. Finally, when you consider that MySQL is freely available and open source, you’ve got to admit — the price is right!

NuSphere MySQL

NuSphere Corporation has built a business around working closely with MySQL AB to develop and extend the functionality of MySQL so that it can better accommodate the enterprise-level needs of companies and developers. In addition to that, they also offer training services, validated versions of the MySQL database, consulting, and developer and technical support services.

One of NuSphere’s most important contributions has come from its Gem-ini project team. This project, which aims to enhance and extend MySQL’s capabilities to include row-level locking capabilities, enhanced transaction support, security, and better crash recovery, has been going on since the middle of 2000. A major code commit to the MySQL code base occurred at the end of January 2001, and this functionality is all expected to be included in the upcoming 4.0 version of the official MySQL database in the second half of this year. For those that want to help test these new features, NuSphere offers a beta program that includes the latest version of NuSphere MySQL, with Gemini support and APIs built in. With the addition of these features, MySQL should be able to compete on the same level with the latest offerings from Oracle, Sybase, IBM, and Informix.

The NuSphere MySQL package includes more than just the MySQL database. The packages that are included with the current version are: MySQL 3.23.33, Apache 1.3.17, Perl 5.6, PHP 4.0.4, and Webmin 0.84. There are also a number of other management and development tools included on the CD, and NuSphere provides quarterly updates as well as technical and installation support for the package.

If you’re a developer looking for the latest and greatest functionality for the award winning MySQL database environment, or even if you’re just looking for technical support and excellent documentation, NuSphere MySQL is the answer to your prayers. With its extensive community, printed documentation, and Gemini extensions to the existing MySQL system, NuSphere MySQL brings enterprise developers exactly what they need to push for the adoption of open source database technologies within their organizations. And if you’re an independent developer or consultant, the inexpensive pricing of NuSphere MySQL makes it an easy choice.

PostgreSQL

PostgreSQL can trace its roots back to the beginnings of the modern computer industry. Although it started as a project named “Ingres” at the University of California at Berkeley between 1977 and 1985, it has evolved through a number of stages to become one of the most popular open source databases. Fortunately, its age doesn’t make PostgreSQL cumbersome or bug ridden. On the contrary, the project has had time to mature into a reliable and robust relational database system.

A number of different commercial entities provide support, database hosting, training, and consulting services around the PostgreSQL database. These include PostgreSQL.com, GreatBridge, Software Research Associates, and others. PostgreSQL is available under the Berkeley open source license and ships as part of many Linux distributions, including Red Hat and SuSE.

Installing PostgreSQL on the test server actually involved doing an upgrade from 7.0.2 to 7.0.3. The 7.0.2 version of PostgreSQL is included with Red Hat 7.0, so getting 7.0.3 up and running was a relatively simple matter. Of course, if you don’t have 7.0.2 preinstalled, you will run through a fresh install, which is a slightly more involved process.

Scalability and redundancy are always important considerations when implementing a business-critical database. Over the past few years, much work on PostgreSQL has concentrated on these areas. Row-level locking and replication support make PostgreSQL robust while simultaneously increasing performance in high-transaction environments. These features also make it easier to perform backups of the live database and help in environments where clustering and redundancy are key.

PostgreSQL 7.0.3 is an excellent all around choice for both businesses and individuals who want to build open source applications and database-enabled Web sites. Its Berkeley license allows for flexibility in integrating the database into larger products while ensuring its open source availability. PostgreSQL offers everything most businesses need in a relational database without the added costs of some higher-end commercial database editions.

PostgreSQL 7.1 was released just as this story went to press. The new version removes some of the storage limitations in the 7.0 series and fixes several bugs. See http://www.postgresql.org for more info.

GreatBridge PostgreSQL

Like NuSphere’s development work on MySQL, GreatBridge has built a business around the PostgreSQL database. While all of its work is contributed back to the open source community, GreatBridge’s value add is its extensive support and consulting for businesses looking to build applications on top of PostgreSQL.

The GreatBridge PostgreSQL package is free under the GPL, just like the real PostgreSQL package. So when you pay GreatBridge for a solution, what you are investing in is its knowledge base and their support offerings for the PostgreSQL platform. GreatBridge also offers training to get your staff quickly up to speed on building database-enabled applications with PostgreSQL.

Getting GreatBridge PostgreSQL installed is an easy matter. The software comes on a CD along with documentation and other tools. Of course, if you chose to install PostgreSQL while installing your Linux server, then you probably already have a copy set up. However, this won’t be the most up-to-date version. On the Red Hat Linux 7.0 server we used to test our databases, the version of PostgreSQL that came preinstalled was 7.0.2.

Once we ran through the graphical installer and GreatBridge PostgreSQL 7.0.3 was set up on our system, we were able to administer the database server with the included PgAdmin package, which is a piece of Windows-based software that is also available as a PHP-enabled, Web-based system. GreatBridge PostgreSQL supports all major client OSes and APIs. Included on the CD are a Windows ODBC driver, PHP and PySQL interfaces, and a number of other tools.

GreatBridge has built a business around providing tested and approved releases of PostgreSQL, corporate consulting and development services, and training to customers of all sizes. If you are searching for a database that offers an excellent combination of open source software with a corporate support system, GreatBridge PostgreSQL is a good all around choice.

DATABASE DEVELOPMENT TOOLS

A powerful database environment is useless without good development tools, APIs, and libraries to help you build applications that take advantage of the features and functionality the database offers. For the most part, all of the major databases support some access methods such as ODBC (Open Database Connectivity) and JDBC (Java Database Connectivity). Support is also built in for many programming languages, including Perl, Python, PHP, etc. C and C++ libraries are also very common, making it easier to integrate the database with applications written in those languages.

In addition to these APIs and libraries, some database packages will come bundled with additional tools to aid in the database application development process. Database management, replication, and monitoring applications and tools are among the common value add features offered on the more complete database solutions. For more specifics on the particular languages and tools supported by the databases we looked at in this roundup, check out the chart on page 42.

Which Is Right for Me?

Choosing the best database for your particular project can be a very challenging task. If you plan to hire a staff of developers along with a DBA to build and maintain your database, and if you need support for multiple server platforms, you should take a close look at the commercial solutions available, especially Oracle 8i Release 3 and IBM DB2 Universal Database for Linux.

Of course, none of those databases are open source. So, if deploying and using open source software is a high priority, and if you want a robust database that allows you to make customizations and modifications to the actual source code, take a hard look at MySQL and PostgreSQL. If support and training are also key (aren’t they always?), then investigate the services offered by Great Bridge and NuSphere for PostgreSQL and MySQL.

At the end of the day, all of the databases we looked at offer different levels of functionality with a wide range in pricing. Research what your actual needs are before narrowing the field of your top candidates.