Traditionally, database applications have relied on Data Definition Languages ( DDLs ) for the declaration of data types and Data Manipulation Languages ( DMLs ) for the insertion, retrieval, manipulation and update of data. Such languages have generally been lacking in the computational power necessary for most applications, and this has been obtained either by embedding DMLs in programming languages or extending them with computational features, or by equipping programming languages with persistent data types. In both cases, an uneasy amalgam of the data model and the computational model usually arises.

FDL is a database language with a single model for both data and computation. It consists of two, purely functional, complementary levels, the object level and the meta level. Data representation, manipulation and querying are handled at the object level, and updates at the meta level. This paper outlines the motivation for the development of FDL and overviews its central features. The expressiveness and computational power furnished by its functional model are demonstrated, and an implementation is described.

Section 1 gives an overview of the Functional Data Model and of the class of functional programming languages, both of which heavily influenced the nature of FDL. Section 2 introduces FDL, at the user level and at the meta level. Its computational power and expressiveness of query formulation are demonstrated in Section 3. Section 4 outlines the declaration and enforcement of semantic integrity constraints and the modular implementation is described in Section 5.