Last October, I wrote about learning how to write Microsoft .NET code using one of the free Visual Studio Express Editions. In this tip, I continue with the "free" motif by describing a few of the free database engines that are available.
Those in the iSeries/System i (AS/400) community can benefit from these free database versions in the following ways:
- You'll expand your skill set.
- You'll learn about using different dialects of SQL and about potential cross-platform issues.
- For those familiar only with embedded SQL, this will force your thinking process to code routines that include conditional logic, loops, etc. entirely in SQL.
- You can sharpen your database skills at the office or at home.
- One day, you may find one of these database servers in your System i shop.
Since the major database vendors want developers to use their products, what better way to attract new developers than by letting them use the product free? For this tip, I reviewed free database servers offered by four major vendors:
Free Database Servers
Size (Windows Version)
Version Feature Comparison
54MB to 440MB, depending on options
(The free Community version is not specifically listed in this product list.)
Microsoft SQL Server, of course, runs only in Windows. Oracle and IBM DB2 Express editions run on Windows or Linux. MySQL runs on all of these plus FreeBSD, Solaris, Mac OS X, UNIX, AIX, and more!
The download pages often require registration. Also the various "free" versions often have some kind of limitation (such as the ability to use only one processor, 1GB of RAM, missing features, etc.) to give you incentive to buy the "real" product. However, these limitations are not near what they used to be, so companies can use these free versions for many production applications. The table's "Version Feature Comparison" column should help you understand applicable limitations. I've also provided documentation links because most of these products include only basic documentation, requiring the remaining documentation to be accessed online (which I always found a chore over dial-up)!
Over the years, I've always wanted to understand a variety of database options and learn how they can be integrated with the System i. Since I'm a long-time Microsoft guy, I'll start by discussing the SQL Server 2005 Express Edition.
Microsoft SQL Server 2005 Express Edition
SQL Server 2005 Express is an excellent choice for those wanting to learn SQL Server. Packed with features including linked servers and reporting services, the only major developer feature that I know about that is missing from Express is Analysis Services (think OLAP and data warehousing).
In the past, Microsoft offered a free desktop version of SQL Server 2000 called the Microsoft Data Engine (MSDE). MSDE consisted of the database engine (with a governor limiting the number of connections) and a few pitiful command line utilities. It was useful perhaps for supplying a redistributable data engine with an application, but as a learning or development tool, it was pretty useless because the administration and developer features were dreadfully lacking. If you were turned off by MSDE, never fear; the Express edition of SQL Server Service Pack 1 comes with Management Studio Express, a nice GUI interface that's suitable for newcomers as well as for advanced developers.
If you're using Windows Vista, make sure you download SQL Server 2005 Express Edition Service Pack 2 (which is currently in beta) as it is the only SQL Server 2005 Express edition that is Vista-capable.
IBM DB2 Express-C
I've enjoyed tinkering with the Windows version of DB2 for several years now. DB2 Express-C Version 9 boasts a "hybrid" engine that supports XML and relational data. Further, it comes with a host of utilities, and it has no imposed hardware limitations! IBM DB2 Express-C for Windows offers the benefits of similar syntax with DB2 UDB for iSeries and offers System i users insight into new features that might be coming down the road. For instance, DB2 on other platforms has had the ability to do INSTEAD OF TRIGGERS long before this feature was given to System i developers.
Oracle 10g Express
Moving right along, I've been wanting to tinker with Oracle for quite some time, so it was a pleasure to download and test-drive the Express edition of the famed database. The user interface is a nicely done Web-based tool. Since I've never used the full version of the tools, I can't comment on how the Express version compares in features with the full version. However, it was nice to be able to get it up and running and to be able to do something useful with it in a relatively short time.
Having worked with DB2 and SQL Server, I found Oracle's PL/SQL easy to work with and was glad to see so many features found in common among the different implementations of the SQL dialect. I even followed a tutorial that demonstrated how to use the Application Builder feature. Figure 1 shows a Web page built for maintaining a list of employees. Pagination and sorting are built-in functions as well. Not bad for a 15-minute tutorial!
Figure 1: Oracle's tutorial enables you to quickly create a sample application. (Click image to enlarge.)
MySQL Community Server
Finally, for those who are open-source fans, MySQL is a very popular choice for database servers. And powerful, too—especially for an open-source product. Prior to Version 5, MySQL did not have the ability to implement stored procedures and triggers, so I hadn't taken a keen interest in learning it. However, when Version 5 was released, I decided to try it, and I wasn't disappointed.
The good news is that, as an open-source product, MySQL doesn't have an "express" version, so there are no missing developer features. And if you don't need support or advanced features such as clustering, the price is right for the full version; you won't need to pay to upgrade from an express version! For quite some time, MySQL didn't come with a GUI utility. Now however, you can download the MySQL Tools (some components are still in beta) or search for a free GUI utility from another vendor.
System i developers need to watch for a few things if downloading one of these products provides your first database experience outside of DB2 UDB for iSeries. The first is to note the administrative user name and password to use. Usually the password is assigned during installation. The administrative user names for the various databases are SQL Server-sa, Oracle-System, DB2-Admin, and MySQL-root. Second, take time to understand the "spaces" or "schemas" where database tables are stored. Third, remember that the system naming convention with its use of the slash (/) separator and the ability to search a library list is unique to the System i.
As a final thought, note that related developer tools are usually packaged separate from the database engine. Things like ODBC drivers, JDBC drivers, .NET managed providers, Microsoft Visual Studio add-ins, and the like often require a separate download.
Competition among software vendors is a great thing for the developer. Developers can review and test-drive products, sharpen their skills, and make informed decisions, often without spending a dime on software. I didn't cover all of the available options, just some of the more popular ones. If you're looking for improved database skills, give one or more of these a try.