In my quest for a formidable relational database management system that would run under Linux I came across a pair of applications that fit my wish list very well. I needed a database that was fast and easy to use, set up and manage. The system had to work in an Internet/Intranet environment, support multiple users and be vastly configurable. The cost had to be within my budget.
I tested Empress RDBMS first. Marketed for Linux, it includes several features that make it a clear choice for discriminating individuals and businesses who can afford it. I then tested Just Logic Technologies' Just logic/SQL RDBMS, a product which does not include as many bells and whistles, but does offer core functionality for about a third of the price of Empress.
The first thing I noticed when the Empress package arrived at my door was 18 bound and 7 unbound (loose-leaf) manuals. This documentation set is fully cross-referenced and includes titles for the core server installation, server management and administration, client utilities, 4GL application development platform, web server interface, ODBC driver, SQL reference, GUI Builder and much more. The manuals are printed in easy-to-read fonts with page numbers in bold and chapter data included on every right-side page. Each manual includes a complete index and a diagram with the entire documentation roadmap directing attention to the order in which manuals should be consulted. Empress gets a resounding ``A+'' for their documentation and additional kudos for complete man pages that complement their hard-copy documents.
Installing Empress from the installation diskettes requires basic Unix system administration experience. While the installation documentation is complete, the diskettes included a broken cpio command on the label. Nothing too difficult to overcome--merely an annoyance in an otherwise outstanding presentation. Installation of the Empress GUI Development and Runtime requires installation of Motif (libXm) libraries and knowledge of the path to their locations. Unfortunately, I was unable to test this feature of the Empress product bundle as my a.out-based Motif libraries were not recognized by the installation program.
Dismissing the minor installation difficulties and getting to the meat and potatoes of testing Empress left me pleased with the package contents. Several utilities, such as the interactive SQL interface and the dBase file import and export programs, provided me with considerable appreciation for the talent and foresight of the Empress development group. While every SQL interface is ``interactive'', Empress is truly interactive in that it is capable of, among other things, prompting the user during table design for specific table attributes and for related variables. This is enough to excite even the most placid DBA. If you use the empsql interface for inserting data, it prompts for user input and is useful as a front end for data input by non-programmers.
Plugging Empress into my particular application required little more than prototyping a database in Access 7.0 and using the ODBC driver to export the tables to Empress. This worked with numeric data types quickly and efficiently. Unfortunately, the Access text data type produces problems when exporting tables from Access to an Empress database. I did receive a prompt reply from Empress' e-mail support claiming that this anomaly is due to different definitions of text data types between Access and Empress and that Access cannot export text attributes to Empress because of this dissimilarity. It seems to me that Empress should develop a workaround for developers using Empress ODBC and Access for database prototyping. Working without a text data type is not a viable option. One solution for those DBAs using Access is to export data from Access to a dBase or comma-delimited text file, then import to Empress using their fine import utilities. I also found no support for varchar data types.
The first databases I built were simple tests to see how well the Empress utilities produced desired output. Empress performed flawlessly, and the Interactive SQL tool is a real glowing ember in a crowded fireplace of functional components. Their empsql and supporting configuration files allows for custom user configuration, much the same as configuring an e-mail reader. For example, I selected joe as my SQL editor instead of the default vi for console-based edits.
Testing the speed of the database with data imported from a combination of Empress utilities was very straightforward. I decided that several joined tables and multiple nested queries would provide a good performance test. Empress produced results far above my expectations. I was suitably impressed with the raw speed at which Empress rushed data back to the screen. A search of 810,000 records, where several calculations, conversion of data types and summing and ordering of resultant sets was required, completed in less than 15 minutes. By comparison, the same query on an SQL server machine(1) took about 28 minutes.(2)
Incorporation of an Empress database into a web environment is accomplished without hassle using their DataWEB package. Writing HTML forms with Empress extensions to query the database is straightforward for anyone with a little HTML experience. My Red Hat 4.0 system, installed with the supplied Apache httpd server, integrated quite nicely.
My final test, which says as much about Linux as it does about Empress, included flipping the power switch to the off position in the middle of a query. After several minutes of waiting while fsck fixed my purposely distorted file system, Empress recovered without any noted glitches. Of course, I was hoping to crash the database to test the on-line backup utility, but it would not crash. I didn't get mad--I got even. I deleted the database, and it restored quickly and without incident. I was ready to query once more.
Empress also includes a report writer that I was unable to test due to scheduling limitations.
Lacking in Empress is much of what is lacking from many commercial RDBMS products today, full SQL-92 support. A point-and-click management tool would be nice and even recommended, since it is standard fare with Microsoft's SQL Server. Considering the cost of the Empress package that I tested is about $1500, it is a bit expensive when compared to the cost of a typical Linux distribution. However, the ease of use of its utilities and the completeness of its documentation man pages and on-line help make it a good choice in the professional world. It is a remarkable product that will benefit the many Linux users who find it a perfect fit for their needs.
The next candidate in this database duo is Just Logic/SQL. It is compact, easy to install and use and extremely cost-effective. Priced at $295 for an unlimited number of users, I found it to be in a value class of its own. Many of the utilities and niceties included in the Empress package are not found in the Just Logic/SQL product, but it features a simple and effective SQL interface and robust C, C++ and pre-compiler interfaces. The sqlweb interface for putting databases on the Net is an option value-priced at $175.
Installing Just Logic/SQL was as simple as can be. Perhaps the most complex component for newcomers would be creating a user account and group for the server/administrator, which is thankfully a point-and- click operation in the Red Hat Control Panel. Since I downloaded the trial version of Just Logic/SQL from their web site, the documentation was in Adobe PDF files, which require an appropriate reader before beginning installation. I liked the searchable PDF files.
JTL comes with a test database and a warning that it may take a few minutes to install depending on your hardware. The sample databases are included in three different formats, each serving as learning examples of how to use the C, C++ and pre-compiler interfaces. I chose the C version, which installed a small database in less than two minutes. I assume the warning must be a holdover for 386 Linux users. I tried the same file on a 486-66 with 32MB and a Seagate fast SCSI-2 hard drive on a 16-bit Future Domain controller, and it took approximately three minutes, certainly not as long or as involved as compiling a kernel. You can probably safely ignore the warning if you are currently driving any hardware combination built after the Reagan administration.
The documentation provides a simplistic schema for the ``abc'' sample database. Something everyone can appreciate is database guru Joe Celkos' naming conventions--table names are plural and in uppercase, attributes are singular and lowercase. The Just Logic/SQL sample mixes conventions just enough to be annoying, but this is rather common in an area where MS-Access-based converts excel (pun intended).
During testing this product performed very well. Using the same 810,000 record database and query, it brought back answers in just under 13 minutes. However, the slight difference in performance is less significant when compared with the time it took to get the data into the package. While Empress import utilities handled things in just a few minutes, I spent about 45 minutes writing a C program to import the data into Just Logic/SQL. Just Logic/SQL supports varchar data types.
Using Just Logic/SQL in a web environment was another exercise in simplicity. Installation and setup are a matter of copying the executable into your cgi-bin directory and editing a sample configuration file with your system details. The executable must set UID to the database owner, which is accomplished easily with the documented commands. The sqlweb documentation is clear and concise. Creating HTML pages for database access using sqlweb is well-defined with complete examples in the sqlweb.pdf. I was able to access data from the Linux/Just Logic/SQL/Apache combination from my Linux Netscape browser within minutes. It is quite exciting to see how fast it works. I spent several hours writing complex queries and HTML forms pages to see if I could break it.
Just Logic/SQL is perfect for low-budget shops who need a relational database solution. Students and professionals will appreciate it for its simplicity and robustness. The SQL, web, C, C++ and pre-compiler interfaces offer enough choices that anyone can immediately begin using the product to store and manage data resources. I heartily recommend it for anyone with some programming experience. The many examples of coding provided on the Just Logic/SQL web site is a fine starting point.
The bottom line in choosing between these two Linux database packages is one of cost versus time and user programming capability. Both packages offer programmers the flexibility to do just about anything they wish with their respective systems. Both provide data control, manipulation and administration. Both are performance-oriented and presented no problems as delivered. Both worked well in networked environments; however, I was unable to test either of them in a busy multiuser setting. The only thing I would want from either package is conformance to the SQL-92 standard, although both currently claim SQL-89 conformance. Both vendors have substantial quantities of information available on their web sites. I found both of these packages surprisingly supple and responsive, easy to install, configure and run on Linux with basic Unix skills. I think you will, too.
Rob is a systems engineer and longtime resident of Honolulu, Hawaii. He enjoys playing golf and chess. He can be reached at rowehrlii@pixi.com.