z-logo
open-access-imgOpen Access
ODE (Object Database and Environment): the language and the data model
Author(s) -
R. K. Agrawal,
Narain Gehani
Publication year - 1989
Publication title -
acm sigmod record
Language(s) - English
Resource type - Book series
SCImago Journal Rank - 0.372
H-Index - 142
eISSN - 1943-5835
pISSN - 0163-5808
ISBN - 0-89791-317-5
DOI - 10.1145/66926.66930
Subject(s) - computer science , database , database design , programming language , data model (gis) , database model , ode , object (grammar) , view , database schema , class (philosophy) , data integrity , query language , artificial intelligence , art , literature
ODE is a database system and environment based on the object paradigm. It offers one integrated data model for both database and general purpose manipulation. The database is defined, queried and manipulated in the database programming language O++ which is based on C++. O++ borrows and extends the object definition facility of C++, called the class. Classes support data encapsulation and multiple inheritance. We provide facilities for creating persistent and versioned objects, defining sets, and iterating over sets and clusters of persistent objects. We also provide facilities to associate constraints and triggers with objects. This paper presents the linguistic facilities provided in O++ and the data model it supports. The object paradigm is a natural way of organizing data as it allows users to structure, retrieve and update data in terms of the application domain. ODE is a database system and environment based on the object paradigm. The database is defined, queried and manipulated using the database programming language O++ (it was called O in earlier versions of this paper). O++ is based on C++ ( Stroustrup 1986 ); it borrows and extends the object definition model of C++. This paper is an introduction to the linguistic facilities provided in O++ and the data model it supports. O++ provides one integrated model for both database and general purpose manipulation. We use the C++ object model, called the class, as the basis for the object model of O++. The class facility supports data encapsulation and multiple inheritance. O++ extends C++ classes by providing facilities for creating and manipulating persistent objects and their versions, and associating constraints and triggers with objects. A major criticism of the current object-oriented databases and languages is that they lack the capability to pose arbitrary ''join'' queries, and that query processing ''smells'' of pointer chasing as in CODASYL database systems (35). O++ alleviates these problems by providing iterators that allow sets of objects to be manipulated almost as declaratively as the database query languages based on relational calculus. The set iteration facility of O++ also allows the expression of recursive queries (2, 9), a major concern in deductive databases. The iterators can be qualified with clauses that specify iteration subsets and order, which can be used to advantage in query optimization. Many of the O++ facilities can be found in other languages and systems. Our major contribution lies in providing a clean fusion of the advances in both database and programming language research within an object-orient ed framework.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here
Accelerating Research

Address

John Eccles House
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom