Relational transducer

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Relational transducers are a theoretical model for studying computer systems through the lens of database relations. This model extends the transducer model in formal language theory. They were first introduced in 1998 by Abiteboul et al for the study of electronic commerce applications.[1] The computation model treats the input and output as sequences of relations. The state of the transducer is a state of a database and transitions through the state machine can be thought of as updates to the database state. The model was inspired by the design of active databases and motivated by a desire to be able to express business applications declaratively via logical formulas.

Applications

[edit | edit source]

The relational transducer model has been applied to the study of computer network management,[2] e-commerce platforms,[1][3] and coordination-free distributed systems.[4][5][6][7]

Formal specification

[edit | edit source]

A relational transducer has a schema made up of five components: In, State, Out, DB, and Log. In and Out represent the inputs to the system from users and the outputs back to the users respectively. DB represents the contents of the database and State represents the information that the system remembers. The Log contains the important subset of the inputs and outputs.

The relational schemas of each component are disjoint except for Log which is a subset of In ∪ Out.

A relational transducer over a relational transducer schema is made up of three parts:

  • The schema
  • A state transition function σ
  • An output function ω
[edit | edit source]

Models of computation extending on relational transducers have been developed including the Distributed Shared Relations model[8] for synchronous distributed systems and the Abstract State Machine Transducer model[3] for verification of transaction protocols.

References

[edit | edit source]
  1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Kohli, Madhur, and Jorge Lobo. "Policy based management of telecommunication networks." Policy Workshop 1999. 1999.
  3. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Interlandi, Matteo, Letizia Tanca, and Sonia Bergamaschi. "Datalog in Time and Space, Synchronously." AMW 1087 (2013).