Definition
Functional Data Models are a form of Semantic Data Model which appeared early in database history. They use the mathematical formalism of function application to represent and follow associations between data items. Functions are usually applied to variables whose values may be object identifiers or record instances. Thus if P represents an entity instance of type Person, then forename(P) would return a string (e.g., “Peter”). (Note however that different systems may write this in a LISP style as (forename P) or in JAVA style as P.forename.) The function town(P) could be used to represent an association by returning the identifier for Peter’s home town. This allows function composition so that name(town(P)) = P.town.name = “Aberdeen”.
Using functions gives several obvious advantages. Firstly the syntax is universally understood, and provides a means of expressing schemas, queries and constraints independently of any supplier-dependent language. This is very handy for...