In addition to these data access mechanisms, it is important to look at two types of client tasks:
Data driven. A data driven client is interested in a change in a data value, and performs an action based on that change. If no change occurs, then no action is taken. This is typical of user interfaces, production rules and expert systems, state machines, alarm systems and data loggers.
Periodic. A periodic client is one that performs a repetitive action at a regular time interval. Changes in the input data need not occur. This is typical of time-sensitive control algorithms such as PID controllers. A data driven system can perform as a periodic system by treating time as a data item, and causing actions to occur based on changes in time. A periodic system can act as a data driven system by polling the database for changes in value and synthesizing data change events based on a comparison of previous and current state. Both of these paradigm shifts carry inefficiencies.