Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!uw-beaver!tektronix!tekcae!moiram From: moiram@tekcae.CAX.TEK.COM (Moira Mallison) Newsgroups: comp.databases Subject: Re: relational vs object-oriented Message-ID: <2514@tekcae.CAX.TEK.COM> Date: 24 Feb 89 21:09:09 GMT References: <376@uncmed.med.unc.edu> <3900005@m.cs.uiuc.edu> Reply-To: moiram@tekcae.CAX.TEK.COM (Moira Mallison) Organization: Tektronix, Inc., Beaverton, OR. Lines: 43 Fcc: outbox Cc: moiram Wrt Hal's question about extensibility of classes: yes and no! While we have agreed that the object-oriented data model is not clearly defined, I think you'd have a hard time convincing both the database folks and the language folks that your model was object-oriented if it didn't have some facilities for extending the model by the user. I have worked mostly with GemStone (*). You cannot add methods to any of the System Library classes, which only enforces good programming practice: don't change a classes you haven't authored. The problem is that you can't subclass off of certain system classes, either. Integer is one of them (in fact, it might be the super class, Number). So when the operation I wanted wasn't in GemStone's methods, I had to punt. What I did was put in a protocol for "utilities" for the object that held the database and put my methods in there. Then the message gets sent to the database with an Integral argument, instead of sending it to the Integer object directly. It works, but it feels kind of kludgey if you're used to Smalltalk. And it's harder to share code, because general kinds of operations (like random number generation) are embedded in your database code, not in generic classes. Note that this only applies to select System classes, not all of them. I've worked with Vbase (**) somewhat less, and it has some similar kinds of restrictions. In any case, that product is being re-architected and there may be changes to the data model in Vbase+. A third commercially available database is Gbase (***), and I have not used it . Moira Mallison CAX Data Management Tektronix, Inc. (*) GemStone is a product of Servio-Logic Corporation, Beaverton, OR. (**) Vbase is a product of Ontologic, Inc, Billerica, MA. Vbase+ is in development. (***) Gbase is a product of Graphael.