An Object-Oriented Interface to a Relational Database

We require a database system that is efficient for operations on individual data objects without losing the functionality provided by a relational DBMS. Typically, our database operations cannot be expressed as a single query in SQL or another high-level relational language, and must be decomposed into many simple “object-oriented” queries. The queries are invoked by programs rather than directly by an end-user; response time must be at least an order of magnitude faster than conventional DBMSs. An SQL processor, even with parameterized compilation, is not usually optimized for fast response for such trivial queries. We might get the performance we require from an “object-oriented” database system such as Maier et al [MSOP86], but then we would lose the powerful relational facilities. Instead of using either an object-oriented language or the high-level SQL language, we chose to use an efficient object-level interface to a relational DBMS, called ERIC (Entity-Relationship Interface Convention), to give us the best characteristics of both kinds of database in one system. In this paper, we describe ERIC and its implementation, and explain how the relational and object-oriented viewpoints on databases may be combined.