Le regole dell'acido si applicano a Nosql

Pubblicato: 2022-11-21

I database NoSQL vengono spesso utilizzati da organizzazioni che dispongono di archivi dati su larga scala e necessitano di prestazioni elevate e scalabilità orizzontale. I database NoSQL sono spesso utilizzati anche da organizzazioni che dispongono di dati non adatti a un database relazionale . La principale differenza tra un database NoSQL e un database relazionale è che un database NoSQL non utilizza uno schema fisso. Ciò significa che i database NoSQL sono più flessibili e possono essere facilmente ridimensionati. Tuttavia, questa flessibilità ha un costo. Poiché i database NoSQL non hanno uno schema fisso, sono meno facili da interrogare e aggiornare. Ciò può rendere difficile tenere traccia delle modifiche ai dati e garantire l'integrità dei dati. Quindi, le regole dell'acido si applicano a nosql? La risposta è no, le regole dell'acido non si applicano a nosql.

I database NoSQL, invece, sono database di base (*). È essenzialmente uno stato morbido e alla fine diventerà coerente. Di conseguenza, se Amazon lo utilizzasse, saresti sempre in grado di acquistare un libro da loro senza alcuna garanzia che sia disponibile per il ritiro al momento dell'acquisto. Questi sono tutti tentativi di sfidare il teorema di Brewer.

Le proprietà ACID di un database relazionale sono uno dei termini che usiamo frequentemente quando ne parliamo. Gli acidi sono costituiti da atomi, molecole, solidi e solidi e sono classificati come atomicità, consistenza, isolamento e densità. Le transazioni con proprietà atomiche sono complete o falliscono nella loro interezza.

Poiché i database nosql non sono stati progettati per essere compatibili con l'acido , non lo sono. Google è costretto a tornare a SQL e ACID a causa del lavoro e delle risorse richieste con ACID, mentre SQL e ACID sono altrettanto difficili e richiedono ancora più risorse.

I database NoSQL, a differenza dei database a tabella fissa, non richiedono una struttura di tabella fissa e non richiedono il supporto ACID completo. (Orend, 2010) Secondo Orend, i dati alla fine saranno coerenti, il che significa che saranno stabili nel tempo.

La maggior parte dei database NoSQL non è compatibile con ACID, principalmente perché le persone che li hanno creati non capivano cosa stavano facendo, non gli importava e non sapevano cosa stavano facendo.

Nosql può avere proprietà acide?

Immagine scattata da: medio

Sì, NoSQL può essere utilizzato per archiviare i dati ACID. Se non è presente, il progetto originale del DBMS non considerava il "Sistema di Gestione" come parte di esso.

MongoDB aggiunge il supporto per le transazioni acid multi-documento

Essendo uno dei principali database NoSQL, MongoDB ha aggiunto il supporto per le transazioni ACID multi-documento alla versione 4.0 nel 2018 e ha ampliato tale supporto alla versione 4.2 nel 2019. Il modello di documento MongoDB consente l'archiviazione dei dati correlati in un singolo documento. Di conseguenza, MongoDB è una scelta eccellente per le applicazioni che richiedono grandi quantità di dati e un elevato livello di gestione delle transazioni. MongoDB, come tutti i database NoSQL, è classificato come database con proprietà ACID. Per dirla in un altro modo, poiché gestiscono transazioni, aggiornamenti ed eliminazioni con accuratezza e coerenza, possono gestirli. Grazie alla loro capacità di archiviare e gestire grandi quantità di dati, sono ottimi candidati per le applicazioni che lo richiedono.

Perché Acid non è compatibile con Nosql?

Immagine presa da: slidesharecdn

Ci sono alcuni motivi per cui l'acido non è compatibile con nosql. Innanzitutto, l'acido richiede molto spazio su disco per memorizzare tutte le informazioni sulle transazioni che hanno avuto luogo. In secondo luogo, acid richiede che tutte le informazioni su una transazione siano memorizzate nello stesso posto, il che può essere difficile da fare con i database nosql. Infine, i database basati su acido in genere non sono veloci come i database nosql.

MongoDB non può supportare operazioni atomiche perché non è un sistema di database relazionale. Ciò significa che una o entrambe le operazioni tentate potrebbero non riuscire se tentate contemporaneamente sullo stesso documento. Sebbene MongoDB abbia un gestore di tabelle che supporta l'atomicità, non è il gestore predefinito. Esistono altri tablehandler sul mercato che garantiscono una maggiore conformità allo standard ACID.

La necessità di transazioni nei database Nosql

Un database NoSQL è stato progettato per essere leggero e veloce all'inizio, quindi le transazioni erano secondarie. Le transazioni, d'altra parte, sono diventate più importanti man mano che i database NoSQL sono cresciuti in popolarità. MongoDB e Cassandra, tra gli altri database NoSQL, si affidano a Distributed Transactions (ACID) per garantire che i dati siano sempre disponibili. Tuttavia, poiché i database NoSQL non si basano su un modello relazionale, non è sempre possibile utilizzare ACID su di essi. Le relazioni portano al raggruppamento dei dati in un database relazionale in tabelle. I dettagli della transazione vengono scritti nelle tabelle non appena ne viene eseguito il commit. Garantisce inoltre che i dati siano sempre accurati, indipendentemente da ciò che accade al database o ai nodi che vengono persi. Nei database NoSQL non ci sono tabelle o relazioni. Questi dati vengono invece memorizzati in una serie di documenti. Le transazioni non sono necessarie perché i documenti sono sempre coerenti. Non c'è differenza tra database NoSQL e database relazionali in termini di velocità e peso. Le transazioni non devono sempre essere una necessità e, in caso contrario, potrebbero anche dover essere dirompenti.


Nosql supporta l'acido

Non esiste una risposta definitiva a questa domanda in quanto dipende dalla particolare implementazione di NoSQL. Alcuni database NoSQL supportano le transazioni ACID, mentre altri no. In generale, tuttavia, è corretto affermare che la maggior parte dei database NoSQL non supporta le transazioni ACID.

Nosql Vs Rdbms: quale è meglio per il tuo business?

Un RDBMS che utilizza questo metodo differisce dagli RDBMS tradizionali in quanto utilizza un modello di base piuttosto che un modello di registrazione. I dati sono considerati sicuri fintanto che sono coerenti, il che significa che potrebbero non essere sempre accurati o aggiornati. Per alcune aziende, questo può essere un grosso problema perché può rendere difficile il monitoraggio delle modifiche e degli errori. Un sistema di elaborazione dei dati, invece, garantisce che i dati siano sempre corretti indipendentemente dal numero di modifiche apportate. Questa è una distinzione importante da fare perché i database conformi ad ACID possono essere utilizzati da un'ampia gamma di aziende, non solo da quelle in esecuzione in un database che soddisfa determinate specifiche. Se stai cercando un database in grado di gestire un volume elevato di dati, ad esempio, un modello di base potrebbe essere una buona soluzione. Questo perché le tecnologie NoSQL, come Neo4j, utilizzano un modello di coerenza ACID, che non è lo stesso di un RDBMS tradizionale .