Oracles are systems that transfer external transaction data to the Blockchain via smart contracts . A Blockchain is a network that runs without a central or further entity and verifies itself via the decentralized peer-to-peer system. However, if external data or solutions are required, oracles are needed .
There are three ways to set up an oracle: 
Immediate-read: This oracle is used when information is needed immediately and only for a single decision. The Blockchain gets the data "just in time" (e.g. age verification).
Publish-subscribe: This oracle is used when information is needed that changes over time and therefore needs to be updated regularly. The oracle acts as a broadcast service (e.g. weather, traffic information).
Request-response: This oracle is used when the amount of data is too large to be stored on a smart contract. Then a request must be made, and the data must be retrieved from an off-chain source.
 Antonopoulos, A. (2018): Mastering Ethereum Implementing Digital Contracts