The Yard Relational Database System
Manufacturer: Yard GmbH
Price: $490 US (5 user license)
Reviewer: Fred Butzen
I am a relative newcomer to Linux, having used it for about three years. In that time, I have been impressed by the creativeness of the Linux community, and its dedication to Linux.
Having caught the fever myself, I find myself telling my acquaintances in business about Linux and what it can do for them. Some are willing to listen and will use Linux for some narrowly defined tasks, such as a firewall. Most, however, are reluctant to use Linux as a part of their core operation. This is due in part to a reluctance to entrust their businesses to a free operating system—“free” somehow implying cheap or inferior. But a large part of the reluctance, I've found, is due to a seeming lack of applications that run under Linux.
In particular, the fact that none of the “big three” relational database packages are available in Linux editions is a serious problem for many business people. As businesses come to depend upon relational databases for managing their day-to-day operation, having a robust relational database management system (RDBMS) available is crucial to selling an operating system to business people.
Fortunately, a solution to this problem exists if one is willing to consider software written somewhere other than northern California. Many companies in Canada and Europe now offer their products with Linux support, and some of those products offer much of the functionality of better known products at a fraction of the price. One such product is the Yard RDBMS.
Yard is an RDBMS package that is published by Yard GmbH of Cologne, Germany. The Yard package includes the following:
Utilities for monitoring and managing the engine
ODBC drivers and libraries for Windows 3.1, Windows 95 and Windows NT
ESQL-C library: with this package, you can write C programs that have SQL statements embedded within them.
X Window System-based tool for interrogating the database: this tool uses a point-and-click method for interacting with a database. With it, a user who has no knowledge of SQL can build queries and interrogate the database.
Tools for building a CGI interface to a database
Yard is a fully featured RDBMS. Its SQL engine includes the following features:
Full implementation of the SQL-2 standard
Stored procedures, implemented using the stored-procedure language described in the draft SQL-3 standard of August 1994
Triggers, implemented as described in the draft SQL-3 standard
Advanced data types, including VARCHAR, TEXT and BLOB (binary large object)
A rich set of functions, including mathematical functions, date functions, string-manipulation functions and user-customized functions
Methods for enforcing domain integrity and referential integrity
Support for locale-specific data, including the use of national character sets for sorting, display of date and time and display of money
Physical and logical logging
Yard uses a standard client/server interface: the SQL engine services requests from client processes that are running either locally or on networked systems. Local requests are received via pipes; network requests are received via sockets. Client processes can use a number of protocols to exchange data with the engine: ODBC, JDBC, ESQL-C, etc.
When you install Yard, you must define one or more database systems (DBS). Each DBS has its own shared-memory segment that is used by every user who is working with that DBS, and one or more database spaces, each of which is a chunk of disk that holds data. Yard's method of managing system resources closely resembles that of major commercial relational database packages; if you are familiar with Informix OnLine, you will feel at home working with Yard.
Each of Yard's database spaces is a statically allocated portion of disk. Usually, a database space is a part of a raw disk partition—one that does not have a file system on it. A database space can also be a file, although this is discouraged.
The system administrator must use a fairly complex formula to compute just how much disk space to allocate to a given database space. This formula includes the number and size of the physical and logical logs, the number of users, the number of tables and the estimated extent of each table.
The administrator can dictate the database space used by individual tables within a database. By estimating the frequency with which individual tables will have to be accessed, the administrator can balance disk I/O across all of the devices that hold a given database and thus ensure transactions are processed as quickly as possible.
As you can see, Yard is a serious package. To see it at its best requires serious hardware—preferably a machine with lots of memory, cycles to burn and multiple SCSI disks. It also requires an administrator who knows databases, UNIX and hardware and who can devote a significant portion of her time to monitoring and managing the database.
To use Yard, you must purchase a license for the SQL engine, plus licenses for one or more ancillary systems (ODBC, ESQL-C, YARD-X or JDBC).
Yard costs a fraction of what you would pay Oracle or Informix for a package with similar functionality. An SQL license for five users costs 990DM (not including value-added tax)—or about $490 US. (The actual cost will depend upon the rate of exchange between the Deutschmark and the US dollar, which fluctuates.) The other tools are similarly priced.
Unlike Oracle, which utilizes “named users” (that is, only a defined set of individuals can use the package), Yard defines a “user” as someone who is interacting with the engine. Thus, a five-user license can actually serve more than five users—a fact that is particularly important if your users work only intermittently with the database.
A free personal edition of Yard is available for download from Yard's web site (http://www.yard.de/). This package supports a single user and limits the size of the database. An ODBC driver is also available for the private edition. If you are interested in Yard, the private edition is an excellent way to become familiar with it.
Documentation comes in the form of HTML files. Some sub-systems also have PostScript versions available; in particular, these are available for the ESQL-C library.
Documentation is available in German and English. I do not speak German but I found the English documentation to be well-organized and complete and its English to be both correct and lucid. My only complaint is that the HTML version tends to put each sub-section into its own file, making it difficult to print a copy to read while you're away from your computer.
The documentation assumes that you know SQL and are thoroughly familiar with Linux. Again, Yard is not a package for beginners.
Installation of Yard is driven by a shell script and runs smoothly. The script requests a location for installing the binaries, requests license numbers and keys, then copies the bits appropriately. A complete installation of the engine, libraries, header files and configuration files takes less than 11 megabytes.
Installation, unfortunately, is hampered by minimal documentation. The only documentation you receive are two lines of instruction, printed on the CD-ROM case, telling you to mount the CD-ROM and invoke the installation script. Thereafter, you're on your own. If something goes wrong, your only recourse is to read the shell script and interpret what it was doing when it failed.
Thanks to this flaw, installation is practically guaranteed to fail at some point, at least on your first try. For example, nowhere does the Yard package indicate that the binaries must be owned by a user and group named yard—your first hint of this requirement is the obscure error message you see when the script fails.
This may be splitting hairs, but it is a pain to diagnose and fix problems that could easily have been avoided had the publisher included a page of instructions in a README file.
Yard is a fully implemented, enterprise-scale database-management package. With it, you can process transactions for a small- to medium-sized business or not-for-profit enterprise. It offers most of the features of Oracle or Informix, but at a fraction of the cost.
Since it is an enterprise-scale RDBMS, Yard may be too much database for some users. If you are looking for a tool with which you can learn SQL or if you wish to set up a small database for your church or fantasy-baseball league, you probably would be better off with a more modest commercial package, such as JustLogic, or with one of the free databases, such as PostgreSQL or msql.
However, if you are a contractor who specializes in Linux-based solutions or a business person who is considering using Linux as the backbone of your enterprise's information system, you will find that Yard is serious software worth serious consideration.
Fred Butzen is a technical writer and programmer who lives in Chicago. He is principal author of the manual for the Coherent Operating System, and is co-author of The Linux Database (MIS:Press, 1997) and The Linux Network (MIS:Press, 1998). He can be reached via e-mail at firstname.lastname@example.org.