I database relazionali sono progettati con affidabilità e coerenza al centro. Gli ingegneri che li hanno sviluppati si sono concentrati su un modello transazionale che garantisce che i quattro principi del modello ACID siano sempre preservati. Tuttavia, l'avvento di un nuovo modello di database non strutturato sta rib altando ACID. Il modello di database NoSQL evita il modello relazionale altamente strutturato a favore di un approccio flessibile all'archivio chiave/valore. Questo approccio non strutturato ai dati richiede un' alternativa al modello ACID: il modello BASE.
Concetti di base del modello ACID
Ci sono quattro principi di base del modello ACID:
- La atomicity di transazioni assicura che ogni transazione di database sia una singola unità che adotta un approccio "tutto o niente" all'esecuzione. Se una qualsiasi istruzione nella transazione non riesce, l'intera transazione viene annullata.
- I database relazionali garantiscono anche la coerenza di ogni transazione con le regole di business del database. Se un qualsiasi elemento di una transazione atomica interrompe la coerenza del database, l'intera transazione non riesce.
- Il motore di database impone isolamento tra più transazioni che si verificano contemporaneamente o quasi contemporaneamente. Ogni transazione avviene prima o dopo ogni altra transazione e la visualizzazione del database che una transazione vede all'inizio viene modificata solo dalla transazione stessa prima della sua conclusione. Nessuna transazione dovrebbe mai vedere il prodotto intermedio di un' altra transazione.
- Il principio ACID finale, durability, garantisce che una volta che una transazione è stata salvata nel database, sia preservata in modo permanente tramite l'uso di backup e registri delle transazioni. In caso di errore, questi meccanismi possono essere utilizzati per ripristinare le transazioni confermate.
Principi fondamentali di BASE
I database NoSQL, d' altra parte, abbracciano situazioni in cui il modello ACID è eccessivo o, di fatto, ostacolerebbe il funzionamento del database. Invece, NoSQL si basa su un modello più morbido noto, in modo appropriato, come modello BASE. Questo modello soddisfa la flessibilità offerta da NoSQL e approcci simili alla gestione e alla cura dei dati non strutturati. BASE consiste di tre principi:
- Disponibilità di base L'approccio del database NoSQL si concentra sulla disponibilità dei dati anche in presenza di errori multipli. Raggiunge questo obiettivo utilizzando un approccio altamente distribuito alla gestione del database. Invece di mantenere un unico grande archivio di dati e concentrarsi sulla tolleranza agli errori di tale archivio, i database NoSQL diffondono i dati su molti sistemi di archiviazione con un elevato grado di replica. Nell'improbabile eventualità che un errore interrompa l'accesso a un segmento di dati, ciò non comporta necessariamente un'interruzione completa del database.
- Stato debole. I database BASE abbandonano quasi completamente i requisiti di coerenza del modello ACID. Uno dei concetti di base alla base di BASE è che la coerenza dei dati è un problema dello sviluppatore e non dovrebbe essere gestita dal database.
- Coerenza finale L'unico requisito che i database NoSQL hanno per quanto riguarda la coerenza è quello di richiedere che in futuro i dati convergano in uno stato coerente. Non vengono fornite garanzie, tuttavia, su quando ciò avverrà. Si tratta di un completo allontanamento dal requisito di coerenza immediata dell'ACID che vieta l'esecuzione di una transazione fino al completamento della transazione precedente e alla convergenza del database in uno stato coerente.
In BASE, la disponibilità di base può significare che non controlli nemmeno le origini dati. Ad esempio, puoi collegarti a set di dati pubblici per una parte del tuo impegno.
Casi d'uso relativi
Il modello BASE non è appropriato per ogni situazione, ma è sicuramente un' alternativa flessibile al modello ACID per i database che non richiedono una stretta aderenza a un modello relazionale.
I casi d'uso ottimali per i database che utilizzano ACID dipendono da dati altamente strutturati con input e output prevedibili. Pertanto, i database delle risorse umane, i database di vendita al dettaglio e le cartelle cliniche elettroniche traggono vantaggio dal solido controllo interno della coerenza offerto da ACID.
Tuttavia, le soluzioni BASE sono migliori per argomenti confusi come l'analisi del sentimento. Ad esempio, un progetto strutturato BASE potrebbe scansionare un feed Twitter alla ricerca di parole che implicano emozioni basate su uno specifico hashtag. Il feed di Twitter non è ben strutturato o istanziato localmente, ma il flusso di dati offre le informazioni programmate nelle query anche se l'ambito e la natura di tali dati non sono chiaramente delimitati.