<!--
	Title: (Project Database II: Relational Databases) Cornerstone
	Author: Charles Petzoid
	Source: PC Magazine, v5(12)
	Data: June 24, 1986
-->

Infocom, a company belter known for entertainment programs than for business
software, has made some changes to *Cornerstone* since I previously tested the database.
The most dramatic is a nearly $400 price cut, bringing the price down to
$99.95. The company has abandoned the unique flip-top plastic box with three manuals
for a single, paperbound, consolidated manual. Other than that, the $99.95
program is the same as the $495 program PC Magazine Labs tested.

At $99.95, *Cornerstone* is an appealing package. The database has very flexible
file definitions (you can change your mind without redoing your files), including an
unusual "subfile" implementation. The program's weaknesses are mostly its awkward
report definition and sluggish reporting speed.

*Cornerstone*'s command strategy combines a command line with a menu. You
can type whole-word commands if you like, construct commands word by word
by pressing the Space bar at the menu options, or use a combination of the two
methods. Typing the first letter or two of a word shrinks the menu down so that you
can finish off the word by pressing the Space bar.

Displaying a report that uses multiple files has several prerequisites. You must
first set up a relationship between the linked fields of each file. In the "define-attributes"
menu, you simply indicate that a field (or, in *Cornerstone*’s lingo, an attribute)
in one file is the same as a field in another file. You should also indicate that
these fields have unique values (though I found out that *Cornerstone* will not balk
but only slow down if you don't), and the fields should be indexed.

Next, in the primary file that contributes to the report, you must define additional
derived fields for the information that comes from the other files. These
fields will not actually contain data, but you can use them in your report definition
the same as any other field in your file.

## REDEFINING YOUR DATABASE

Since you probably won’t think of all these things when you first define your files (I
certainly didn't). *Cornerstone*'s flexibility in redefining a database later is a lifesaver.
The only real restriction is that you can’t change the field type (numeric, string, and
so forth) after you’ve entered data into the file. Otherwise you have almost complete
freedom to change the maximum field length, delete or add fields, and change
other characteristics.

<blockquote class="float-right larger" style="border-top: 3px solid; border-bottom: 1px solid;"><ul><li>
Pressing the F1 key brings up a screen's worth of contextual help
information, but it's the slowest I’ve ever seen.
</blockquote>

*Cornerstone* also includes a subfile provision that for some applications could be a
convenient alternative to using relational files. For instance, if you want to keep
track of various purchases by different companies you sell to, the normal relational
method requires keeping the company information in one file and the purchase information
in another and setting up a relationship by company name or code. With
*Cornerstone*, however, you could make a subfile with the purchase information
within the company information file. Each purcha.se would occupy one subrecord in
this subfile. The program gives you the space savings of relational files with the
convenience and speed of using just one file.

The worst speed problem I encountered in *Cornerstone* was during definition of
the columnar report required by the PC Labs testing script. At each step of defining
the report (including sorting the file, calculating subtotals, and calculating totals),
*Cornerstone* insisted on actually doing the chore before it would let me proceed
with the test of the definition. Since I hadn't properly indexed all the fields I
should have, the original definition of the report required about 2 hours, most of
which were taken up by disk churning. Indexing those fields speeded things up considerably.

Whenever I was defining a report with *Cornerstone*. I felt I was in a fog about
what I had already defined and what remained to be done. After you define a columnar
report through the menus, you can save it and later retrieve it. but you can't
really find out what tasks you defined for the report. I really wanted a way I could
define (or edit) the report definition first and then run it.

<img class="float-right-half" src="/public/img/articles/pcmag-cornerstone-review-2/cornerstone-info.jpg" alt="Cornerstone fact file, showing a screen shot, summary, and box photo">

## TWO USER MANUALS

*Cornerstone*'s manuals and tutorial are generally very
good. The manuals have comprehensive indexes that help a lot, although the division
of the user handbook into two separate manuals in the $495 version (the second
covering advanced topics) is a nuisance. Merging the manuals into one for the
$99.95 version will have fixed this problem. The advanced manual covers important
(and often neglected) topics such as efficiency. saving disk space, and crash
recovery.

On-line help is also available. Pressing the F1 key at any time brings up almost a
screen's worth of contextual help information, but it's the slowest help retrieval I've
ever seen. Part of its slowness results from the help’s being personalized, since it incorporates
actual information about your defined databases.

For $495, I'd be skeptical about *Cornerstone*. But at one-fifth that price (sold
through the same distribution channels Infocom uses for its games), the package deserves
a chance to prove itself. With its flexible file-definition and convenient subfile
capabilities. *Cornerstone* is a hot contender for the nonbusiness database management
market.
