Perché Nosql non è acido

Pubblicato: 2022-11-19

Si discute molto sul fatto che i database NoSQL siano "acidi" o meno. L'argomento principale contro l'acidità dei database NoSQL è che non supportano tutte le funzionalità di un database relazionale tradizionale. I database NoSQL sono spesso progettati per essere più scalabili e più facili da usare rispetto a un database relazionale, ma sacrificano alcune delle funzionalità che rendono un database relazionale più robusto. Ad esempio, i database NoSQL di solito non supportano le transazioni, che è una caratteristica importante di un database relazionale. Ciò significa che se stai utilizzando un database NoSQL, potresti dover rinunciare ad alcune delle funzionalità a cui sei abituato in un database relazionale.

Un database NoSQL non è compatibile con ACID. Uno stato d'animo coerente nel senso che è malleabile, morbido e coerente. Di conseguenza, se Amazon utilizzasse questa funzione, saresti sempre in grado di acquistare libri da loro, ma non sarebbero in grado di prevedere quando saranno pieni. Hanno lo scopo di confutare il teorema di Brewer.

Oracle, MySQL, PostgreSQL e Microsoft SQL sono tutti in grado di supportare le proprietà ACID nelle transazioni. Diamo un'occhiata a una tipica storia NoSQL.

Un database NoSQL può essere utilizzato per archiviare i dati ACID . Nella sua progettazione originale, il sistema non includeva il componente "Sistema di gestione" di un DBMS.

Nosql ha proprietà acide?

Immagine di – https://dotnettutorials.net

Non esiste una risposta definitiva a questa domanda poiché dipende dall'implementazione specifica di NoSQL. Alcuni database NoSQL hanno proprietà acid, mentre altri no.

Il termine atomicità si riferisce al fatto che una transazione deve essere eseguita in assenza di una pluralità di operazioni. La coerenza dei dati si riferisce al fatto che tutti i dati in un database devono essere registrati esattamente come erano quando è stata effettuata la transazione. Consideriamo l'isolamento uno stato di completa riservatezza che impedisce a qualsiasi altra transazione di interferire con il nostro lavoro in corso. La durabilità di una transazione indica che le altre transazioni che sono state completate insieme ad essa continueranno a funzionare. L'approccio NoSQL alla gestione del database è contrario alla rigida regola ACID . Di conseguenza, i database NoSQL non sono la scelta migliore per coloro che vogliono essere eseguiti in ambienti rigorosi. Un database che aderisce agli standard ACID è generalmente più affidabile ed efficiente, oltre a fornire un'esperienza più coerente agli utenti.


Nosql è acido o base?

Immagine di – https://infodecisionnel.com

Le proprietà ACID (Atomicity, Consistency, Isolation e Durability) di un database relazionale sono fortemente seguite dalle proprietà ACID (Attribution, Consistency, Isolation e Durability) di un database NoSQL.

C'è una forte domanda di database che producono ACID. Nell'era dei Big Data, abbiamo bisogno di tecnologie scalabili. Un database NoSQL può gestire dati grandi e complessi in modo più efficiente. Contrariamente agli RDBMS tradizionali , queste soluzioni non utilizzano relazioni tabulari e quindi non pongono gli stessi problemi con l'archiviazione. È naturale per noi preferire la disponibilità alla coerenza, a volte. Quando il modello ACID è eccessivo, è preferibile avere una proprietà di base. Se hai bisogno di coerenza ma preferisci una struttura rigida, un database relazionale è una buona scelta. Non è necessario scegliere tra RDBMS e NoSQL per ogni sistema, come fanno molti.

Il database NoSQL è un nuovo tipo di database che non si basa sulle transazioni ACID. (Definito in senso lato come disponibile, stato soft ed eventuale coerenza.) I dati sono generalmente disponibili in senso generale. Se una richiesta non riceve risposta, è possibile che venga respinta. È il tipo più comune di sistema di database che esegue transazioni ACID. Sono supportati MySQL, PostgreSQL, SQLite, SQL Server e altri database di database. I database orientati agli oggetti sono un nuovo tipo di database che non richiede l'elaborazione delle transazioni ACID. Tuttavia, quando si riceve una risposta a una richiesta, una risposta non può garantire la disponibilità dei dati. Se i dati non possono essere ottenuti, saranno resi disponibili a un certo punto. Nello stato soft, gli aggiornamenti ai dati non sono permanenti; questa caratteristica consente continui aggiornamenti dei dati. La coerenza è fondamentale: assicura che i dati siano sempre aggiornati anche se ci sono molti aggiornamenti.

Supporto di MongoDB per le proprietà acide

Il termine coerenza si riferisce a quanto tempo i dati devono rimanere coerenti con più operazioni di lettura quando vengono scritti nel database. Il database dovrebbe essere in grado di garantire che tutte le transazioni eseguite contemporaneamente non abbiano un impatto reciproco, come descritto sopra. La durabilità di un database indica che sarà in grado di funzionare anche dopo un'interruzione di corrente o un altro evento catastrofico. In altre parole, sebbene MongoDB non sia un database compatibile con ACID, supporta alcune delle caratteristiche chiave di ACID, come l'atomicità e la durabilità.

Perché MongoDB non è acido?

MongoDB non è acido perché non supporta le transazioni. Le transazioni sono una parte fondamentale della conformità con l'acido . MongoDB inoltre non supporta le chiavi esterne, un'altra parte importante della conformità con l'acido.

MongoDB 4.0 aggiunge transazioni ACID multi-documento. PostgreSQL ha il supporto per la conformità ACID nativo , mentre MongoDB non è stato in grado di farlo per molto tempo. Non ci è chiaro se MongoDB renda ACID una priorità assoluta o se gli utenti se ne preoccupino. La versione 4.0 di MongoDB include garanzie di transazione ACID multi-documento. Secondo Eliot Horowitz, il modello di documento elimina la necessità di transazioni ACID. Grigori Melnik, vicepresidente di prodotti, server e strumenti aziendali, ritiene che questo sia un nuovo modo di scrivere su MongoDB. Nella versione V4.2 di MongoDB, le transazioni saranno possibili attraverso più implementazioni di multi-shard.

Nonostante in passato MongoDB abbia supportato numerosi motori di archiviazione per i dati, solo WiredTiger può essere utilizzato per le transazioni. Perché ACID è così importante per MongoDB? Non siamo sicuri di cosa possiamo dire sull'impegno di EDB per le transazioni ACID, ma possiamo dirti una cosa: prende molto sul serio le transazioni ACID. Nonostante lo stato numero 7, resta il fatto che l'utilizzo di un linguaggio di query standard come SQL fornisce ancora un valore significativo. Man mano che sviluppi più applicazioni per accedere ai tuoi dati, sarai costretto a crearle in uno schema diffuso, aumentando la complessità. PostgreSQL, in quanto database generico più popolare, continua a essere la scelta migliore.

MongoDB è completamente compatibile con gli acidi?

Le transazioni ACID multi-strumento, invece, sono disponibili per i casi d'uso che le richiedono. Apprezzano la flessibilità di poter modellare i propri dati in un modo che in genere non richiede transazioni multi-documento, ma che è possibile quando lo fanno.

Nosql supporta l'acido

I database Nosql non supportano le transazioni acid. Ciò significa che non possono garantire che una transazione venga elaborata correttamente e che i dati potrebbero essere persi o danneggiati durante una transazione.

Database Nosql: il modello base è più duraturo e coerente

La maggior parte dei database Nosql non supporta le proprietà ACID, preferendo utilizzare un modello di base in grado di resistere agli abusi ed essere più duraturo.