Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!nrl-cmf!ames!pasteur!ucbvax!decwrl!sun!pitstop!sundc!seismo!uunet!munnari!uqcspe!twine From: twine@uqcspe.OZ (Steven Twine) Newsgroups: comp.databases Subject: The Place of OO DBMS in the ANSI/SPARC architecture Message-ID: <1983@uqcspe.OZ> Date: 31 Aug 88 23:29:31 GMT References: <3560019@wdl1.UUCP> <37@calmasd.GE.COM> <408@cullsj.UUCP> Reply-To: twine@uqcspe.oz (Steven Twine) Organization: Computer Science, Queensland Uni, Australia Lines: 71 Before everybody jumps into the wading pool with their two cent's worth about OO databases, I'd like people to be very clear about *what* purpose these OO DBMS will be used for. There seems to be a general tendency to say that OO DBMS are *a priori* good, without saying what they are good at. One useful way of viewing matters is the ANSI/SPARC three schema architecture (Hands up everybody who knows this; hands up everybody who's forgotten about it..) This architecture includes three schemas: an external schema, a conceptual schema and an internal schema. The external schema specifies a particular way to view the data in the database. There may be different external schemas for different users (or user groups). The conceptual schema specifies the "semantics" of the data. In particular, it must specify all constraints on valid database states and transitions. There is only one conceptual schema. The internal schema specifies how the database information is physically stored and manipulated. There is only one internal schema. Now, the question comes: Are OO DB techniques useful at the external level, conceptual level, or internal level (perhaps more than one). Some people say OO DB are good because they are more efficient that (say) relational DB for certain applications (eg CAD). This is an argument at the internal level. Some people say that OO DB are good because they "express more semantics". This is an argument at the conceptual level. Some people say that OO DB are good because they present an intuitive interface to the user (eg smalltalk-based DBMS). This is an argument at the external level. If we can clearly distinguish these arguments, and see that OO DB may be good at one level, but not at another, then we might have a chance for a productive discussion rather than a lot of unsubstantiated claims and "waste heat". My personal view is: they may be good at the internal level (they support clustering, by definition); they are not good at the conceptual level (they require arbitrary grouping of facts, and there are generally too many ways to represent an arbitrary fact -- btw, these are similar to Bill Kent's arguments against record-based models); they may be good, for certain classes of users, at the external level. I could elaborate on this if there is interest. As an example, most of Yogesh Gupta's points for OO DBMS are at the internal level (authorization, persistent objects etc). This is irrelevant to the use of OO DB at the conceptual or external level. Most OO DBMS do not distinguish these levels: this is bad, because it means that performance and user convenience factors influence the design of the database (with negative effects on evolvability and maintenance). References for further reading: D. Tsichritzis, A. Klug (eds) The ANSI/X3/SPARC DBMS Framework. Report of the Study Group on Database Management Systems. AFIPS Press, Montvale, NJ, 1977. J. J. van Griethuysen (ed) ISO TC97/SC5/WG3 Report on Concepts and Terminology for the Conceptual Schema and the Information Base.