Che cos'è un database in tempo reale?
Un database in tempo reale, per certi versi, è simile a un database tradizionale. Entrambi hanno lo scopo di conservare i dati ed entrambi devono eseguire calcoli, ma la velocità con cui i calcoli devono essere completati e la quantità di calcoli differisce in modo significativo. Un database in tempo reale ha lo scopo di eseguire calcoli in tempo reale e non è fatto per conservare le informazioni per lunghi periodi di tempo. La progettazione di database in tempo reale comporta molti più vincoli sulla dimensione del database e sulla dimensione dei calcoli - e molte altre considerazioni e fattori - per garantire che i calcoli vengano eseguiti entro un tempo specificato. Di solito ci sono tempi di scadenza diversi, quindi il database può dare la priorità alle funzioni.
I database tradizionali vengono creati per conservare i dati per lunghi periodi di tempo e, sebbene ai dati possano essere applicate funzioni e calcoli, i dati sono in gran parte persistenti. Un database in tempo reale è l'opposto. I dati sono ampiamente malleabili, con pochissima costante rimanente e il database deve essere in grado di gestire una grande quantità di calcoli. Ciò significa che un database tradizionale non funzionerà per un'applicazione in tempo reale, poiché il design è completamente diverso.
Forse il miglior esempio di un database in tempo reale è un database dei mercati azionari. Questo database deve essere in grado di modificare costantemente i suoi valori in base a una grande varietà di fattori e deve rimanere accurato in modo che le imprese e gli investitori prosperino dalle transazioni. Altri esempi di database in tempo reale includono database di controllo aereo, database medici e database di analisi scientifiche.
Quando viene progettato un database tradizionale, il programmatore crea un framework in cui è possibile memorizzare informazioni e programmare un numero relativamente limitato di vincoli. I database in tempo reale devono avere un numero molto elevato di vincoli per limitare la quantità di informazioni in loro possesso e la quantità di transazioni che possono fare, quindi i calcoli possono essere eseguiti rapidamente. Questo perché la velocità del database dipende dalla quantità di dati conservati e dalla quantità di funzioni che funzionano contemporaneamente. La maggior parte dei database in tempo reale sono idiosincratici o non possono essere integrati con altri database perché sono altamente specializzati per un argomento.
Per soddisfare i vincoli temporali o le esigenze di calcolo basate sul tempo, ci sono tre livelli di priorità assegnati alle funzioni: duro, fermo e morbido. Questo va dal più veloce al più lento, quindi il database sa su cosa lavorare ora e cosa può aspettare. Sebbene tutte le funzioni possano essere poste sulla priorità assoluta, ciò può causare l'arresto anomalo di un database in tempo reale di grandi dimensioni a causa di sovraccarichi.