Object-Relational Programming

Rationale

While the relational data model and its commercial implementations have undergone considerable extensions to become object-relational, comparable advances from mainstream object-oriented programming languages seem to be rare. Complementing recent efforts to integrate SQL-like querying of memory-based collections into languages such as C# and Java, we specify a gentle extension of the object-oriented programming model with bidirectional relationships whose use in a program is independent of their multiplicities.

Breakdown

Because of the extent of the undertaking, it has been broken down into different parts, or phases.

Host Language

Because of the dependence on traits as containers of relationships and associated behaviour, our host language is Scala.