The Oberon system is being extended to support database application
programming, though without changing the Oberon language definition. The
main aim of this project is to show that Oberon enables a harmonious integration
of a programming language, an operating system and a data management system.
This extension of the system consists of two main parts: the provision
of a persistent store supporting the evolution of persistent data and a
library of constructs for the management of interrelated collections of
objects. Persistence is orthogonal to type in that every Oberon object
can be made persistent. The internal representation of these objects is
adapted to permit the property of persistence independence: the system
knows how to store each object correctly, and programs need not specify
this themselves. Objects may also evolve by changing type or accumulating
versions. Database functionality centres on a model of collections and
constraints over collections. Collections of various behaviour, e.g. set,
bag and list, can be supported and additionally there are special relation
collections to represent semantic associations between objects. Collections
can have multiple physical representations and these can change; in this
way, we support the notion of physical data independence. An optimizing
query language based on an algebra over collections will be supported.
E-mail: firstname.lastname@example.org, email@example.com.
Index terms: Oberon, Database programming language, Object data management, Persistent object stores.
Project in collaboration with the database system research group.