Object-oriented languages generally lack support for persistent objects—that is objects that survive the process or programming session. On the other hand, database systems lack the expressibility of object-oriented languages. Both persistence and expressibility are necessary for production application development. This paper presents a brief overview of VBASE, an object-oriented development environment that combines a procedural object language and persistent objects into one integrated system. Language aspects of VBASE include strong datatyping, a block structured schema definition language, and parameterization, or the ability to type members of aggregate objects. Database aspects include system support for one-to-one, one-to-many, and many-to-many relationships between objects, an inverse mechanism, user control of object clustering in storage for space and retrieval efficiency, and support for trigger methods. Unique aspects of the system are its mechanisms for custom implementations of storage allocation and access methods of properties and types, and free operations, that is operations that are not dispatched according to any defined type. During the last several years, both languages and database systems have begun to incorporate object features. There are now many object-oriented programming languages. [Gol1983, Tes1985, Mey 1987, Cox 1986, Str 1986]. Object-oriented database management systems are not as prevalent yet, and sometimes tend to use different terms (Entity-Relationship, Semantic Data Model), but they are beginning to appear on the horizon [Cat1983, Cop1984, Ston1986, Mylo1980]. However, we are not aware of any system which combines both language and database features in a single object-oriented development platform. This is essential since a system must provide both complex data management and advanced programming language features if it is to be used to develop significant production software systems. Providing only one or the other is somewhat akin to providing half a bridge: it might be made structurally sound, perhaps, but it is not particularly useful to one interested in getting across the river safely. Object-oriented languages have been available for many years. The productivity increases achievable through the use of such languages are well recognized. However, few serious applications have been developed using them. One reason has been performance, though this drawback is being eliminated through the development of compiled object languages. The remaining major negative factor, in our view, is the lack of support for persistence; the lack of objects that survive the processing session and provide object sharing among multiple users of an application. Database management systems, in contrast, suffer from precisely the opposite problem. While having excellent facilities for managing large amounts of data stored on mass media, they generally support only limited expression capabilities, and no structuring facilities. Both language and database systems usually solve this problem by providing bridges between the systems. Thus the proliferation of 'embedded languages', allowing language systems to access database managers. These bridges are usually awkward, and still provide only restricted functionality. Both performance and safety can be enhanced through a tighter coupling between the data management and programming language facilities. It is this lack of a truly integrated system which provided our inspiration at Ontologic, Inc. This paper reviews Ontologic's VBASE Integrated Object System and describes how it combines language and database functionality.
[1]
Ralph Johnson,et al.
Type-Checking Smalltalk
,
1986,
OOPSLA.
[2]
Bertrand Meyer,et al.
Eiffel: programming for reusability and extendibility
,
1987,
SIGP.
[3]
Luca Cardelli,et al.
A Semantics of Multiple Inheritance
,
1984,
Inf. Comput..
[4]
Bertrand Meyer.
Genericity versus inheritance
,
1986,
OOPSLA 1986.
[5]
David Robson,et al.
Smalltalk-80: The Language and Its Implementation
,
1983
.
[6]
Brad J. Cox,et al.
Object-oriented programming ; an evolutionary approach
,
1986
.
[7]
Alan Borning,et al.
A type declaration and inference system for smalltalk
,
1982,
POPL '82.
[8]
Michael Stonebraker,et al.
The design of POSTGRES
,
1986,
SIGMOD '86.
[9]
John Mylopoulos,et al.
A language facility for designing database-intensive applications
,
1980,
TODS.
[10]
Luca Cardelli,et al.
On understanding types, data abstraction, and polymorphism
,
1985,
CSUR.
[11]
Bjarne Stroustrup,et al.
C++ Programming Language
,
1986,
IEEE Softw..
[12]
David Maier,et al.
Making smalltalk a database system
,
1984,
SIGMOD '84.