Che cos'è OLTP?

Definizione di OLTP

OLTP (Online Transaction Processing) è un tipo di elaborazione dei dati che consiste nell'esecuzione di una serie di transazioni che si verificano contemporaneamente, ad esempio, in operazioni bancarie online, acquisti, inserimento di ordini o invio di messaggi di testo. Tali transazioni sono definite solitamente come transazioni economiche o finanziarie e sono sicure e registrate in modo tale che un'azienda possa accedere alle informazioni in qualsiasi momento, a fini contabili e di reporting.

In passato, OLTP si limitava alle interazioni reali in cui veniva scambiato qualcosa, come per esempio soldi, prodotti, informazioni, richieste di assistenza e via dicendo. Ma la definizione di transazione in questo contesto si è ampliata nel corso degli anni, soprattutto dopo l'avvento di Internet, e ora comprende qualsiasi tipo di interazione digitale o coinvolgimento con un'azienda che può essere attivato in qualsiasi parte del mondo e tramite qualsiasi sensore con connessione Internet. Include anche qualsiasi tipo di interazione o azione, ad esempio il download di pdf su una pagina Web, la visualizzazione di un video specifico, trigger di manutenzione automatica o commenti sui canali social che potrebbero essere cruciali per un'azienda e che devono esere registrati per supportare al meglio i clienti.


La definizione principale di transazione (economica o finanziaria) rappresenta la base per la maggior parte dei sistemi OLTP, pertanto l'elaborazione delle transazioni online solitamente implica l'inserimento, l'aggiornamento e/o l'eliminazione di piccoli quantitativi di dati in un data store per raccogliere, gestire e proteggere tali transazioni. Generalmente un'applicazione Web, mobile o aziendale tiene traccia di tutte queste interazioni o transazioni con clienti, fornitori o partner e li aggiorna nel database OLTP. I dati delle transazioni memorizzati nel database, sono fondamentali per le aziende e vengono utilizzati per generare report o analizzati per poter prendere decisioni basate sui dati.

Scopri come aziende quali Retraced, Parco Archeologico di Pompei, Jasci e Siemens hanno ottenuto ottimi risultati portando i loro carichi di lavoro di elaborazione delle transazioni nel cloud.

Le aziende di solito hanno di due tipi di funzionalità di elaborazione dei dati: OLTP e OLAP.

Differenze tra OLTP e OLAP

Anche se sono simili e sono entrambi sistemi di elaborazione dati online, c'è una differenza enorme tra OLTP e OLAP.

OLTP consente l'esecuzione in tempo reale di grandi quantità di transazioni da parte di un elevato numero di persone, mentre OLAP (Online Analytical Processing) generalmente implica l'esecuzione di query su tali transazioni (definite anche record) in un database per scopi di analisi. OLAP consente alle aziende di estrarre insight dai dati delle transazioni al fine di prendere decisioni più mirate.

La tabella qui sotto mette a confronto i sistemi OLTP e quelli OLAP.

Sistemi OLTP

Sistemi OLAP

Permettono l'esecuzione in tempo reale di grandi quantità di transazioni del database da parte di un elevato numero di persone

Di solito comportano l'esecuzione di query su molti o tutti i record in un database per scopi di analisi.

Richiedono tempi di risposta rapidissimi

Richiedono tempi di risposta molto più lenti rispetto a quelli richiesti da OLTP

Modificano piccoli quantitativi di dati in modo frequente e generalmente comporta un bilanciamento tra le operazioni di lettura e quelle di scrittura

Non modificano alcun dato; i carichi di lavoro sono in genere a elevata densità di lettura

Utilizzano dati indicizzati per migliorare i tempi di risposta

Memorizzano i dati in formato colonna per facilitare l'accesso a un numero elevato di record

Richiedono backup frequenti o simultanei del database

Richiedono backup del database molto meno frequenti

Richiedono uno spazio di storage relativamente ridotto

Generalmente richiedono un notevole spazio di storage, in quanto memorizzano grandi quantità di dati cronologici

Solitamente eseguono semplici query che riguardano solo uno o al massimo pochi record

Eseguono query complesse che coinvolgono un numero elevato di record.

Riassumendo, OLTP è un sistema di modifica dei dati online, mentre OLAP è un sistema di data store multidimensionale e cronologico online, utilizzato per recuperare grandi quantità di dati per scopi di analisi. OLAP solitamente fornisce analisi dei dati acquisiti da uno o più sistemi OLTP.

Requisiti per un sistema OLTP

L'architettura più comune di un sistema OLTP che utilizza dati transazionali, è quella a tre livelli che generalmente sono composti da un livello di presentazione, uno di business logic e uno di data store. Il livello di presentazione è il front-end, dove la transazione ha origine tramite un'interazione umana oppure viene generata dal sistema. Il livello di business logic è costituito da regole che verificano la transazione e assicurano che siano disponibili tutti i dati necessari per completare tale transazione. Il livello di data store memorizza la transazione e tutti i dati correlati.

Le caratteristiche principali di un sistema di elaborazione delle transazioni online sono le seguenti:

  • Compliance ACID: i sistemi OLTP devono garantire che l'intera transazione venga registrata correttamente. Una transazione è di solito un'esecuzione di un programma che può richiedere a sua volta l'esecuzione di più fasi o operazioni. Può essere completata, quando tutte le parti coinvolte riconoscono la transazione o quando il prodotto o il servizio viene consegnato o quando viene effettuato un certo numero di aggiornamenti alle tabelle specifiche nel database. Una transazione viene registrata correttamente solo se vengono eseguite e registrate tutte le fasi coinvolte. Se si verifica un errore in uno delle fasi, l'intera transazione deve essere interrotta e tutte le fasi devono essere eliminate dal sistema. I sistemi OLTP devono pertanto rispettare le proprietà atomiche, coerenti, isolate e durevoli (ACID) per garantire l'accuratezza dei dati nel sistema.
    • Atomica: i controlli di atomicità garantiscono che tutte le fasi di una transazione siano completate correttamente come gruppo. In altre parole, se non va a buon fine una fase tra le transazioni, anche tutte le altre operazioni devono fallire o essere ripristinate. Il completamento di una transazione è chiamato "commit". L'errore di una transazione è chiamato "abort".
    • Coerente: la transazione mantiene la coerenza interna del database. Se la transazione viene eseguita da sola su un database inizialmente coerente, al termine dell'esecuzione del database, la transazione risulta di nuovo coerente.
    • Isolata: la transazione viene eseguita come se fosse da sola, senza altre transazioni. In altre parole, l'effetto dell'esecuzione di un insieme di transazioni è lo stesso se si eseguisse una transazione per volta. Questo comportamento è chiamato serializzazione ed è generalmente implementato bloccando le righe specifiche nella tabella.
    • Durevole: i risultati della transazione non andranno persi a causa di un errore.
  • Concomitanza: i sistemi OLTP possono avere popolazioni di utenti estremamente grandi, con molti utenti che cercano di accedere agli stessi dati contemporaneamente. Il sistema deve assicurarsi che tutti questi utenti che cercano di eseguire operazioni di lettura e scrittura nel sistema, possano farlo contemporaneamente. I controlli di concomitanza garantiscono che due utenti che accedono contemporaneamente agli stessi dati nel sistema di database, non potranno modificare tali dati oppure garantiscono che un utente debba attendere che l'altro utente abbia terminato l'elaborazione, prima di modificare quei dati.
  • Scalabilità: i sistemi OLTP devono essere in grado di eseguire lo scale-up e lo scale-down in modo immediato per gestire il volume delle transazioni in tempo reale ed eseguire le transazioni contemporaneamente, indipendentemente dal numero di utenti che tentano di accedere al sistema.
  • Disponibilità: un sistema OLTP deve essere sempre disponibile e pronto ad accettare transazioni. La perdita di una transazione può comportare la perdita di ricavi o delle implicazioni legali. Poiché le transazioni possono essere eseguite in qualsiasi parte del mondo e in qualsiasi momento, il sistema deve essere disponibile 24 ore su 24, 7 giorni su 7.
  • Throughput elevato e tempi di risposta brevi: i sistemi OLTP richiedono tempi di risposta di nanosecondi (o addirittura più brevi) per garantire la produttività degli utenti business e soddisfare le crescenti aspettative dei clienti.
  • Affidabilità: i sistemi OLTP generalmente leggono e manipolano quantitativi di dati piccoli e altamente selettivi. È fondamentale che in qualsiasi momento i dati del database siano affidabili e attendibili per gli utenti e le applicazioni che accedono a tali dati.
  • Sicurezza: poiché questi sistemi memorizzano dati molto sensibili sulle transazioni dei clienti, la sicurezza dei dati è cruciale. Qualsiasi tipo di violazione può risultare molto costosa per l'azienda.
  • Recuperabilità: i sistemi OLTP devono essere in grado di eseguire il ripristino in caso di guasti dell'hardware o del software.

I database per carichi di lavoro OLTP

I database relazionali sono stati progettati appositamente per le applicazioni che si occupano di transazioni. Essi incorporano tutti gli elementi essenziali necessari per la memorizzazione e l'elaborazione di grandi volumi di transazioni e sono aggiornati costantemente con nuove funzionalità per ricavare maggiore valore dai dati delle transazioni. I database relazionali sono progettati appositamente per garantire la più elevata disponibilità e le performance più veloci. Offrono accesso concomitante e compliance a livello ACID, pertanto i dati sono accurati, sempre disponibili e facilmente accessibili. Memorizzano i dati nelle tabelle dopo l'estrazione delle relazioni tra i dati, in modo tale da poter essere utilizzati da qualsiasi applicazione e garantire così un'unica fonte di dati.

L'evoluzione dei database di elaborazione delle transazioni

Man mano che le transazioni sono diventate sempre più complesse, provenendo da qualsiasi fonte o dispositivo e da qualsiasi parte del mondo, i database relazionali tradizionali non riuscivano a soddisfare le esigenze dei moderni flussi di lavoro transazionali, in quanto non erano abbastanza avanzati. Avevano la necessità di evolversi per gestire le moderne transazioni, i dati eterogenei e la portata globale, ma soprattutto per eseguire carichi di lavoro misti. I database relazionali si sono trasformati in database multimodali che memorizzano e elaborano non solo dati relazionali, ma anche tutti gli altri tipi di dati, tra cui xml, html, JSON, Apache Avro, Parquet e documenti nella loro forma nativa (non è stata una trasformazione eclatante). I database relazionali, inoltre, avevano la necessità di aggiungere ulteriori funzionalità come il clustering e l'accelerazione, in modo tale che potessero essere distribuiti a livello globale e scalare all'infinito per memorizzare ed elaborare volumi sempre più grandi di dati e utilizzare uno storage più economico, disponibile nel cloud. Grazie ad altre funzionalità quali analytics avanzati e in memoria, la visualizzazione e incluse le code degli eventi di transazione, questi database ora possono eseguire più carichi di lavoro, ad esempio l'esecuzione di analytics sui dati di transazione, l'elaborazione dei dati di streaming (IoT) oppure l'esecuzione di analytics spaziali e a grafo.

I moderni database relazionali creati nel cloud, automatizzano molti aspetti gestionali e operativi del database, semplificandone l'esecuzione e l'utilizzo da parte degli utenti. Offrono provisioning, sicurezza, ripristino, backup e scalabilità automatici, in modo tale che i DBA e i team IT debbano dedicare meno tempo ala gestione. Integrano inoltre l'intelligence per ottimizzare e indicizzare automaticamente i dati, cosicché le performance delle query sul database siano coerenti indipendentemente dalla quantità di dati, dal numero di utenti concomitanti o dalla complessità delle query. Questi database nel cloud includono anche funzionalità self-service e API REST per consentire a sviluppatori e analisti di accedere ai dati e di utilizzarli con facilità. Ciò semplifica lo sviluppo delle applicazioni, offrendo flessibilità e rendendo più facile per gli sviluppatori la possibilità di creare nuove funzionalità e personalizzazioni all'interno delle applicazioni. Semplifica inoltre gli analytics e l'utilizzo dei dati da parte degli analisti e data scientist in modo da ricavare insight.

Come selezionare il database più adatto per i carichi di lavoro OLTP

Dato che per l'IT è difficile stare al passo con la velocità del business, è importante che, quando si sceglie un database operativo, si prenda in considerazione le proprie esigenze immediate e i requisiti a lungo termine in temine di dati. Per memorizzare le transazioni e gestire i sistemi di archiviazione o dei contenuti, sarà necessario un database con concomitanza e throughput elevati, bassa latenza e caratteristiche mission-critical quali l'alta disponibilità, la protezione dei dati e il Disaster Recovery. Molto probabilmente, il tuo carico di lavoro cambierà su base giornaliera, settimanale o annuale, è quindi fondamentale che il database si ridimensioni automaticamente per risparmiare forti spese. Potrebbe essere inoltre necessario decidere se utilizzare un database appositamente creato o un uno generico. Se i tuoi requisiti riguardano un tipo specifico di dati, un database appositamente creato potrebbe fare al caso tuo, ma assicurati di non dover rinunciare alle altre caratteristiche di cui hai bisogno. Risulterebbe costoso e impegnerebbe molte risorse integrare queste caratteristiche in un secondo momento, a livello di applicazione. Inoltre, se le tue esigenze in termini di dati aumentano e vuoi espandere la funzionalità della tua applicazione, l'aggiunta di più database monouso o adatti all'uso creerà silos di dati e amplificherà i problemi di gestione dei dati. Devi anche prendere in considerazione altre funzionalità che potrebbero essere necessarie per il tuo specifico carico di lavoro, ad esempio requisiti di inserimento, di computazione push-down e dimensioni al limite.

Seleziona un servizio di database cloud a prova di futuro con funzionalità self-service che automatizzeranno tutta la gestione dei dati, in modo tale che coloro che lavorano con i dati (sviluppatori, analisti, tecnici dei dati, data scientist e DBA) possano sfruttarli al massimo e accelerare lo sviluppo delle applicazioni.

Scopri di più su Oracle Autonomous Transaction Processing Database, il servizio di database OLTP cloud. Provalo gratuitamente.