Efficient Access to FDM Objects Stored in a Relational Database

The P/FDM object-oriented database is based on the functional data model and has a modular design, allowing alternative kinds of object storage to be used. This is achieved by implementing a small set of basic data access and update routines for each kind of storage module. In this work, a relational database management system has been used to provide object storage, and we describe how the data access routines have been implemented. The principal query language used with P/FDM is Daplex, which is normally translated to Prolog, including calls to the basic data access routines. The query is optimised to minimise the expected number of calls. This gives very general method execution and pattern matching search. However, much better performance can be achieved for simpler data-intensive Daplex queries against a relational storage module by translating these to a single SQL statement. We describe a program called DAPSTRA which performs this translation quickly in a fashion transparent to the user, and compare performance.