One of the more interesting previews of programs that I saw at Macworld was of Mainstay’s new object-oriented database, Phyla. Unlike traditional databases, Phyla is neither flat-file (with a simple one-to-one relationship between all types of data, such as Person, Father, and Mother) nor precisely relational (with a one-to-many relationship between data, such as Company and Phone Numbers), although you can accomplish most everything in Phyla that you could in a relational database. The basic principle underlying Phyla is that of object-orientation; everything is an object, and those objects can be easily related. I’m no expert in databases, particularly relational databases, although I have worked with Double Helix (now called Helix Express) in the past.
Given that disclaimer, you can create classes of objects like the people in a department or the computers they use that are equivalent to Double Helix’s relations. Once you have classes of objects, you define what Phyla more colloquially calls a relation, the relationship between two classes of objects. In our example, you could define a "Uses (Hardware)" relation and the reverse, "(Hardware) Is Used By," because relationships between classes of objects go both ways between the class of "Staff Members" and the class of "Department Macs." At any time it’s trivial to create another class, say "Licensed Software" and the two associated relations to "Department Macs," namely "Is Installed On" and "Has On Hard Disk." Similarly, you could then relate "Licensed Software" to "Staff Members" with "Uses (Software)" and "(Software) Is Used By."
At this point we have three interrelated classes of objects, and Phyla makes quick queries easy, such as what sort of Mac does Jill use, what software is on it, and what does Jill actually use. The standard class view, for say, "Staff Member" looks remarkably like a Finder 7 outline view, and flipping the triangle next to Jill’s name displays the two relations to that class, "Uses (Hardware)" and "Uses (Software)." Each of those two entries in the outline also has a triangle, and flipping them down reveals the data in the other object classes that match. Initially none will, of course, because we haven’t defined any common field, such as "Staff Member," as you would do in a relational database. Instead, in Phyla you merely open another object class window, for "Department Macs," for instance, and then drag an entry or two over to Jill in the other outline, like moving files in the Finder’s outline view.
Since we have already defined the ways these two classes of objects relate, dragging a Mac into Jill’s outline entry establishes that link both ways, so Jill now shows up in the outline view underneath that model of Mac. So if we gave Jill a Quadra 950, the "(Hardware) Is Used By" relation under the Quadra 950’s entry in the "Department Macs" outline will also contain Jill. You can build databases by thinking out the relationships among classes of objects in English, and then implementing them in a relatively natural way.
You’ll have to look at Phyla to make sure you understand what I’ve said, but if anything, I found it more understandable than other databases I’ve used. I did ask a couple of questions specific to a database project I’m thinking about (an Ultimate Kitchen Mac database that does more than just database things). First among these was line items, such as you would find in an recipe. Line items can be hard because you have a one-to-many relationship between the recipe and the ingredients, but you never know how many ingredients a recipe will have. The Mainstay rep showed me a sample invoice database that handled line items well. My second quirky request was for the capability to create a timer, so if a recipe has a cooking time, I’d like to be able to click a single button and have a timer start up and count down, warning me with an appropriate sound. The rep claimed that Phyla could do just that, but couldn’t find the job-tracking database that he thought would demonstrate Phyla’s ability.
Overall, I was impressed, but although Phyla seemed to do most everything I could think of, and although it appeared to have flexible forms for entering and displaying data, the proof will be in the data pudding, and it might appear this spring or summer.
Mainstay — 818/991-6540 — 818/991-4587 (fax)