TY - JOUR
T1 - The DBPL project
T2 - Advances in modular database programming
AU - Schmidt, Joachim W.
AU - Matthes, Florian
N1 - Funding Information:
by DFG grant Schm.450/2-I (“Datenbankprogrammiersprache~“~. by a grant from the IBM European Network Center, Heidelberg.
Funding Information:
tThis work was supported by a grant of the DAAD, Bonn $DAIDA was supported by Esprit Project #892.
Funding Information:
iThis work was supported *DURESS was supported
PY - 1994/3
Y1 - 1994/3
N2 - In the DBPL project we tackled the problem of supporting data-intensive applications in a single framework, clean and simple in its conceptual foundation and free of technical mismatches. Conceptually, we based the DBPL language on Modula-2 with three built-in extensions which, at that time, were considered necessary (and sufficient) for data-intensive applications: a parametric bulk type constructor for "keyed sets" or relations; a module concept which supports sharing across programs and implies persistence; a procedure concept with transactional semantics, i.e., serializability and recovery. In implementing the DBPL system we adopted a rather strict approach by aiming for: full orthogonality in our relationally extended type space; type-complete persistence, i.e. longevity of data from Booleans to relations; functional abstraction for relational expressions including recursion. As a consequence, the DBPL project covers in a quite natural way approaches otherwise considered disjoint as, for example, complex objects, multibases and data deduction. In this paper, besides reporting on project achievements and spin-offs, we also present our insight in good-quality project design and its dependency on conceptual simplicity and implementational strictness. This also includes early recognition of the essential project "terminator" which, in our project, was Modula-2's monomorphic type system and its intrinsic restrictions on systems extensibility. The DBPL project results in a mature product† † The DBPL System is distributed through Hamburg University. for modular database application programming and a follow-up project based on polymorphic types and other higher-order concepts‡.
AB - In the DBPL project we tackled the problem of supporting data-intensive applications in a single framework, clean and simple in its conceptual foundation and free of technical mismatches. Conceptually, we based the DBPL language on Modula-2 with three built-in extensions which, at that time, were considered necessary (and sufficient) for data-intensive applications: a parametric bulk type constructor for "keyed sets" or relations; a module concept which supports sharing across programs and implies persistence; a procedure concept with transactional semantics, i.e., serializability and recovery. In implementing the DBPL system we adopted a rather strict approach by aiming for: full orthogonality in our relationally extended type space; type-complete persistence, i.e. longevity of data from Booleans to relations; functional abstraction for relational expressions including recursion. As a consequence, the DBPL project covers in a quite natural way approaches otherwise considered disjoint as, for example, complex objects, multibases and data deduction. In this paper, besides reporting on project achievements and spin-offs, we also present our insight in good-quality project design and its dependency on conceptual simplicity and implementational strictness. This also includes early recognition of the essential project "terminator" which, in our project, was Modula-2's monomorphic type system and its intrinsic restrictions on systems extensibility. The DBPL project results in a mature product† † The DBPL System is distributed through Hamburg University. for modular database application programming and a follow-up project based on polymorphic types and other higher-order concepts‡.
UR - http://www.scopus.com/inward/record.url?scp=0039745282&partnerID=8YFLogxK
U2 - 10.1016/0306-4379(94)90007-8
DO - 10.1016/0306-4379(94)90007-8
M3 - Review article
AN - SCOPUS:0039745282
SN - 0306-4379
VL - 19
SP - 121
EP - 140
JO - Information Systems
JF - Information Systems
IS - 2
ER -