The deductive data model is a restricted first-order predicate logic extension of the relational data model. In the deductive data model, relations are either defined extensionally through facts, or intensionally through rules. Rules may be defined recursively.
Various formal languages have been developed for the deductive data model, e.g.\ Datalog, a function-free sublanguage of first-order predicate logic, or Datalog which includes negation.
Logic programming languages, e.g. Prolog, extend Datalog with complex data structures. Current Prolog systems feature access to external DBMS or an internal database component for the persistent storage of large amounts of data.