The discriminating object model
- Publication Type:
- Thesis
- Issue Date:
- 2010
Open Access
Copyright Clearance Process
- Recently Added
- In Progress
- Open Access
This item is open access.
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: