by John Paul Ashenfelter
So you need to build a database application that will be delivered over the Web. Your users have the browsers, you've got the web server and application software, but you need a database. What are your choices?
There are the desktop choices -- Microsoft Access and Foxpro, dBase, FileMaker Pro -- but they're nowhere near powerful enough. Then there are the big guns -- SQL-Server, Oracle, Informix, IBM DB2, Sybase -- but who can afford the $5,000-$50,000 fee just to get them on the development server? What do you do? If you're like many developers, you'll probably turn your gaze toward the open-source community. While there are several open-source databases (see sidebar), one of the most powerful and most popular, particularly for web-based database applications, is MySQL.
Other popular open-source database tools include:
PostgreSQL is the most advanced open-source database tool. It offers object support, transactions, triggers, a procedural SQL language, and a number of other high-end features.
mSQL (also known as MiniSQL) is less sophisticated than MySQL, but is extremely fast with a small footprint. It also has a standalone scripting language (Lite) as well as web-oriented scripting (www-mSQL).
GNU SQL is the db offering from the core open-source organization. It's aimed more at client-server applications and C programming than web database development. It's also in the late beta phase, so is probably not ready for production environments.
Beagle is another beta open-source database platform that currently is far from finished. But it does have great historical documentation of what it's like to build a database tool.
The fundamental reason that an estimated half million servers around the world run MySQL is that it provides an incredible amount of database power at a cost that is zero in most cases, and a few hundred dollars in others. But another strong reason that MySQL is chosen to power web-based database applications is PHP. As Jason Gilmore discusses in the companion article, PHP is a powerful web scripting language that has strong ties to the MySQL database. Both tools are powerful in their own right, but together they can compete with any web-database tool on the market.
Brief History of MySQL
MySQL was developed by Michael (Monty) Widenius at the Swedish company TcX DataKonsultAB in the mid-1990s. In some ways, it was developed to provide functionality that was missing from mSQL, one of the few open-source databases available at the time. But the underlying goal was to provide a solid platform for delivering web-based applications. The initial tool was developed in May of 1995 and later released to the open-source community. Since that time, MySQL has been ported to a wide range of operating systems and been the focus of an intensive community development process that has resulted in a number of related tools and applications.
The latest stable version of MySQL is 3.22, though the alpha 3.23 release is in its 17th iteration at this writing and probably close to full release. Binary distributions are available for Red Hat (RPM), Windows, OS/2, Unix variants for MacOS X, HP-UX, Intel-optimized Linux, FreeBSD, SGI Irix, and Alpha-based Linux. There are also user-contributed versions for a wide range of operating systems and full source for building MySQL for an arbitrary operating system.