DBPL - A Database Programming Language based on Modula 2
The DBPL project tackled the problem of supporting data-intensive applications in a single framework, clean and simple in its conceptual foundation and free of technical mismatches. DBPL is based on Modula-2 with three built-in extensions which, at that time, were considered necessary (and sufficient) for data-intensive applications:
DBPL is a type-complete modular database programming language developed at the Chair of Prof. Schmidt at TU Hamburg-Harburg between 1985 and 1992. 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 [ScMa93], besides reporting on these project achievements and on project 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 for modular database application programming and a follow-up project based on polymorphic types and other higher-order concepts (see Tycoon). Stable multi-user system implementations are available on request for VAX/VMS and Sun-4/SunOS4.1 platforms. These implementations also provide transparent gateways to access legacy databases on commercial SQL servers (Ingres and Oracle).
DBPL Project Publications
F. Matthes and J.W. Schmidt. DBPL: The System and its Environment. In M. Jarke, editor, Database Application Engineering with DAIDA, volume 1 of Research Reports ESPRIT, pages 319-348. Springer-Verlag, 1993.
J.W. Schmidt and F. Matthes. Modular and Rule-Based Database Programming in DBPL. In M. Jarke, editor, Database Application Engineering with DAIDA, volume 1 of Research Reports ESPRIT, pages 85-122. Springer-Verlag, 1993. (also available as TR FIDE/91/15).
J.W. Schmidt and F. Matthes. The DBPL Project: Advances in Modular Database Programming. (to appear in Jounal 'Information Systems'), 1994.
F. Matthes, A. Rudloff, J.W. Schmidt, and K. Subieta. The Database Programming Language DBPL - User and System Manual. FIDE Technical Report FIDE/92/47, Fachbereich Informatik, Universität Hamburg, Germany, July 1992. (also appeared as Informatik Fachbericht FBI-HH-B-159/92).
F. Matthes, A. Rudloff, J.W. Schmidt, and K. Subieta. A Gateway from a DBPL to Ingres: Modula-2, DBPL, SQL+C, Ingres. FIDE2 Technical Report FIDE/92/54, Fachbereich Informatik, Universität Hamburg, Germany, August 1992.
J.W. Schmidt and F. Matthes. The Database Programming Language DBPL - Rationale and Report. FIDE Technical Report FIDE/92/46, Fachbereich Informatik, Universität Hamburg, Germany, July 1992. (also appeared as Informatik Fachbericht FBI-HH-B-158/92).
J. Eder, A. Rudloff, F. Matthes, and J.W. Schmidt. Data Construction with Recursive Set Expressions in DBPL. In Proceedings of the Kiev East/West Workshop on Next Generation Database Technology, volume 504 of Lecture Notes in Computer Science, April 1991. (also appeared as TR FIDE/91/13).
F. Matthes and J.W. Schmidt. Bulk Types: Built-In or Add-On?. In Proceedings of the Third International Workshop on Database Programming Languages, Nafplion, Greece. Morgan Kaufmann Publishers, September 1991. (also appeared as TR FIDE/91/27).
F. Matthes, G. Schröder, and J.W. Schmidt. VAX Modula-2 User's Guide; VAX DBPL User's Guide. DBPL Memo 121-91, Fachbereich Informatik, Universität Hamburg, Germany, December 1991.
J.W. Schmidt and F. Matthes. The Rationale behind DBPL. In 3rd Symposium on Mathematical Fundamentals of Database and Knowledge Base Systems, volume 495 of Lecture Notes in Computer Science. Springer-Verlag, May 1991.
J.W. Schmidt and F. Matthes. Naming Schemes and Name Space Management in the DBPL Persistent Storage System. In Persistent Object Systems, Martha's Vineyard, Massachusetts, USA, September 1990. Morgan Kaufmann Publishers, Inc.
J.W. Schmidt and F. Matthes. Language Technology for Post-Relational Data Systems. In Database Systems of the 90s, volume 466 of Lecture Notes in Computer Science, Berlin, Germany, November 1990. Springer-Verlag.
F. Matthes and J.W. Schmidt. The Type System of DBPL. In Proc. of the 2nd Workshop on Database Programming Languages, Salishan Lodge, Oregon, pages 255-260, June 1989.
J.W Schmidt, L. Ge, V. Linnemann, and M. Jarke. Integrated Fact and Rule Management Based on Database Technology. In J.W. Schmidt and C. Thanos, editors, Foundations of Knowledge Base Management, Topics in Information Systems. Springer-Verlag, 1989.