Modello BASE di sviluppo del database
I database relazionali sono progettati con l'affidabilità e la coerenza al loro interno. Gli ingegneri che li hanno sviluppati si sono concentrati su un modello transazionale che garantisse che i quattro principi del Modello ACIDO vanno sempre preservati. Tuttavia, l'avvento di un nuovo modello di database non strutturato sta capovolgendo ACID. Il modello di database NoSQL evita il modello relazionale altamente strutturato a favore di un approccio flessibile all'archiviazione chiave/valore. Questo approccio non strutturato ai dati richiede un'alternativa al modello ACID: il modello BASE.

Principi di base del modello ACID
Ci sono quattro principi di base del modello ACID:
- Il atomicita di transazioni assicura che ogni transazione del database sia una singola unità che adotta un approccio "tutto o niente" all'esecuzione. Se una qualsiasi istruzione nella transazione ha esito negativo, viene eseguito il rollback dell'intera transazione.
- I database relazionali garantiscono inoltre la
- Il motore del database impone isolamento tra più transazioni che si verificano nello stesso momento o quasi. Ogni transazione si verifica prima o dopo ogni altra transazione e la visualizzazione del database che una transazione vede al suo inizio viene alterata solo dalla transazione stessa prima del suo conclusione. Nessuna transazione dovrebbe mai vedere il prodotto intermedio di un'altra transazione.
- Il principio ACIDO finale, durata, assicura che una volta che una transazione è stata impegnata 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 impegnate.
Principi fondamentali di BASE
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 si adatta alla flessibilità offerta da NoSQL e da approcci simili alla gestione e alla cura dei dati non strutturati. BASE si compone di tre principi:
- Disponibilità di base. L'approccio al database NoSQL si concentra sulla disponibilità dei dati anche in presenza di più guasti. Raggiunge questo utilizzando un approccio altamente distribuito alla gestione del database. Invece di mantenere un unico archivio dati di grandi dimensioni e concentrarsi sulla tolleranza agli errori di tale archivio, i database NoSQL diffondono i dati su molti sistemi di archiviazione con un alto 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 morbido. I database BASE abbandonano quasi completamente i requisiti di consistenza 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 è richiedere che ad un certo punto in futuro i dati convergano a uno stato coerente. Tuttavia, non vengono fornite garanzie su quando ciò accadrà. Questo è un completo allontanamento dal requisito di coerenza immediata di ACID che vieta una transazione dall'esecuzione fino al completamento della transazione precedente e alla convergenza del database in un coerente stato.
In BASE, la disponibilità di base può significare che non controlli nemmeno le origini dati. Ad esempio, potresti 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 al dettaglio e le cartelle cliniche elettroniche beneficiano del solido controllo di coerenza interno offerto da ACID.
Tuttavia, le soluzioni BASE sono migliori per argomenti sfocati come l'analisi del sentimento. Ad esempio, un progetto strutturato in BASE potrebbe scansionare un feed di Twitter alla ricerca di parole che implicano emozione in base a un hashtag specifico. Il feed di Twitter non è ben strutturato o istanziato localmente, ma il flusso di dati offre il informazioni programmate nelle query anche se l'ambito e la natura di tali dati non sono puliti limitato.