A Prolog implementation of an object-oriented database system
The logic programming language Prolog has been used extensively in conjunction with relational database systems to exploit the similarity between relations and Prolog ground clauses. However, much of the experience gained in the use of Prolog with relational databases has employed characteristics of the language which are independent of the relational model to build user interfaces and perform query transformation. This thesis describes the use of Prolog for developing semantic and object-oriented database systems. Two systems have been developed, one called P/FDM which is based upon the functional data model, and the other called ADAM which integrates ideas from semantic data modelling with constructs developed for sharing behaviour in object-oriented programming languages. The thesis can be considered to be in three sections. The first reviews resarch into semantic data models and object-oriented programming to identify constructs used by different researchers to structure programs and data. The second presents an overview of the design and implementation of P/FDM and ADAM, using Prolog. The final section focusses in detail upon design and implementation issues tackled with both P/FDM and ADAM, relating to the use of keys with object-oriented databases, rule based query optimisation, support for the persistent storage of objects, and the integration of multiple databases. The use of object-oriented databases is illustrated by a chapter which discusses the storage of protein structure data in relational and object-oriented systems.