ABSTRACT
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.
- BOR1982 Boming, Alan H. and Ingalls, Daniel H. H.; "A Type Declaration and Inference System for Smalltalk"; Conference Record of the Ninth Annual ACM Symposium on Principles of Programruing Languages, pp 133-139, 1982. Google ScholarDigital Library
- CAR1984 Cardelli, Luca; "A Semantics of Multiple Inheritance"; Lecture Notes in Computer Science. Springer-Verlag, New York, 1984, pp 51-67. Google ScholarDigital Library
- CAR1986 CardeUi, Luca and Wegner, Peter; "On Understanding Types, Data Abstraction, and Polymorphism"; Computing Surveys, Vol. 17, No. 4, December 1985 Google ScholarDigital Library
- CAT1983 Cattell, R.G.G.; "Design and Implementation of a Relationship-Entity-Datum Data Model"; Xerox Corporation, 1983Google Scholar
- COP1984 Copeland, George and Maier, David; "Making Smalltalk a Database System;" Sigmod '84, Sigmond Record Volume 14, Number 2, pp 316-324, Association for Computing Machinery, 1984 Google ScholarDigital Library
- COX1986 Cox, Brad J.; Object-OriemedProgramruing: An Evolutionary Approach; Addison-Wesley, Reading, MA 1986 Google ScholarDigital Library
- GEMI986 GemStone Product Overview, Gem- Stone Version 1.0; Servio Logic Development Corporation. March, 1986Google Scholar
- GOL1983 Goidberg, Adele and Robson, David; Smalltalk-80: The Language and its {nplementation; Addison- Wesley, Reading, MA, 1983 Google ScholarDigital Library
- JOH 1986 Johnson, Ralph; "Type Checking Smalltalk"; in Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages and Applications; pp 315-321; Portland, OR; September 29-October 2, 1986 Google ScholarDigital Library
- LIS1981 Liskov, Barbara; Atklnson, Russell; Bloom, Toby; Moss, Eliot; Schaffert, J. Craig; Scheifler, Robert and Snyder, Alan; Lecture Notes in Computer Science; Springer-Verlag, New York, NY 1981Google Scholar
- MEY1986 Meyer, Bertrand; "Genericity versus inheritance"; in Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages and Applications; pp 391-405, Portland, OR; September 29-October 2, 1986 Google ScholarDigital Library
- MEY1987 Meyer, Bertrand; "Eiffel: Programruing for Reusability and Extendibility;" SIG- PLAN, Notices, vo122, no 2, pp 85-94; February 1987 Google ScholarDigital Library
- MYLO1980 Mylopoulos, John, Bernstein; Philip A., and Wong Harry K.T.; "A Language Facility for Designing Database-Intensive Applications", Transactions on Database Systems; Vol 5, No 2. pp 185-207; Association for Computing Machinery; June, 1980 Google ScholarDigital Library
- STON 1986 Stonebraker, Michael and Rowe, Lawrence A. "The Design of Postgres"; Sigmond Record, vol 15, no. 2, pp 340-355; Association for Computing Machinery; June 1986 Google ScholarDigital Library
- STR1986 Stroustrup, Bjarne L.; The C+ + Programmin g Language; Addison-Wesley; Reading, MA, 1986 Google ScholarDigital Library
- TES 1985 Tesler, Lan3,; "Object Pascal Report"; Structured Langauage World, vol 9, no.3, 1985Google Scholar
Index Terms
- Combining language and database advances in an object-oriented development environment
Recommendations
Combining language and database advances in an object-oriented development environment
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 ...
Object Deputy Database Language
C5 '06: Proceedings of the Fourth International Conference on Creating, Connecting and Collaborating through ComputingObject deputy model can provide more flexibility than traditional object-oriented data model. Based on it, we have developed a database management system called TOTEM. In this paper, we introduce the object deputy database languages including object ...
An object-oriented approach to language compositions for software language engineering
HighlightsLanguage composition has not obtained enough attention, is still not well-understood, and associated terminology is confusing.OO techniques and concepts are powerful enough to implement all types of language compositions.Several small examples ...
Comments