The discriminating object model

Publication Type:
Thesis
Issue Date:
2010
Full metadata record
This dissertation shows how to combine the expressive power of object-oriented programming with the efficiency of relational databases and query languages. Relational databases store and manipulate large amounts of simple data efficiently. The economies of scale they are able to achieve have yet to be significantly rivalled by alternate approaches to database storage. However relational databases are not good at storing complex objects and their associated relationships. Object-oriented programming languages are good at organising computation in a way that is both flexible and maintainable but support of persistent data is a problem. Research into combining the two has been ongoing over the past three decades. One such research direction has been the development of object-relational mapping tools. They link object-oriented programming and relational database storage, mapping the concepts from the programming language to the relational database. The majority of these mapping tools however are quite complex and require a knowledgeable user. The pattern calculus is a new foundation for computation. It has been implemented in the programming language bondi. It supports the most popular programming styles within a single small system. In particular it supports generic pattern-matching functions and has a simple representation of temporary data. It is a powerful calculus which has not previously been tied to relational data. The Discriminating Object Model (DOM), developed in this thesis, is a data model that is uitable for both object-oriented programming and the organisation of data in relational databases. It aligns the notion of dis riminators from relational databases with type variables from the programming language. Objects are mapped to records with additional fields . The DOM has been implemented in a database extension to the programming language bondi called dbbondi. Data manipulation is performed as a combination of object-oriented methods and database queries. They are executed in the environment in which their evaluation is optimal, thereby taking advantage of the efficiencies of both environments.
Please use this identifier to cite or link to this item: