Wat is een realtime database?
Een realtime database lijkt in sommige opzichten op een traditionele database. Beide zijn bedoeld om gegevens te bevatten en beide moeten berekeningen uitvoeren, maar de snelheid waarmee berekeningen moeten worden voltooid en het aantal berekeningen verschilt aanzienlijk. Een realtime database is bedoeld om realtime berekeningen uit te voeren en is niet gemaakt om informatie gedurende lange tijd te bewaren. Het ontwerpen van real-time databases houdt veel meer beperkingen in met betrekking tot de grootte van de database en de omvang van berekeningen - en vele andere overwegingen en factoren - om ervoor te zorgen dat berekeningen binnen een bepaalde tijd worden uitgevoerd. Er zijn meestal verschillende deadline-tijden, dus de database kan functies prioriteren.
Traditionele databases zijn gemaakt om gegevens voor lange tijd te bewaren en, hoewel op de gegevens functies en berekeningen kunnen worden toegepast, zijn de gegevens grotendeels persistent. Een realtime database is het tegenovergestelde. De gegevens zijn grotendeels kneedbaar, met zeer weinig constant, en de database moet een zeer grote hoeveelheid berekeningen kunnen verwerken. Dit betekent dat een traditionele database niet werkt voor een realtime toepassing, omdat het ontwerp volledig anders is.
Misschien is het beste voorbeeld van een realtime database een database met aandelenmarkten. Deze database moet zijn waarden voortdurend kunnen wijzigen op basis van een grote verscheidenheid aan factoren en moet nauwkeurig blijven, zodat bedrijven en investeerders van transacties kunnen gedijen. Andere real-time database-voorbeelden zijn luchtbeheersdatabases, medische databases en wetenschappelijke analysedatabases.
Wanneer een traditionele database wordt ontworpen, creëert de programmeur een raamwerk waar informatie kan worden opgeslagen en programmeert een relatief klein aantal beperkingen. Real-time databases moeten een zeer groot aantal beperkingen hebben om de hoeveelheid informatie die ze hebben en het aantal transacties dat ze kunnen doen te beperken, zodat de berekeningen snel kunnen worden uitgevoerd. Dit komt omdat de snelheid van de database afhankelijk is van de hoeveelheid gegevens die worden bewaard en het aantal functies dat tegelijkertijd werkt. De meeste realtime databases zijn idiosyncratisch of kunnen niet worden geïntegreerd met andere databases omdat ze zeer gespecialiseerd zijn voor één onderwerp.
Om te voldoen aan tijdelijke beperkingen of tijdgebaseerde berekeningsbehoeften, zijn er drie prioriteitsniveaus voor functies: hard, stevig en zacht. Dit gaat in volgorde van snelste naar langzaamste, zodat de database weet waaraan ze nu moet werken en wat kan wachten. Hoewel alle functies op de harde prioriteit kunnen worden geplaatst, kan dit ertoe leiden dat een grote realtime database crasht vanwege overbelasting.