Sommario:
Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Anche se alcune funzionalità sono abbastanza comuni ai database NoSQL (ad esempio, l'agnosticismo dello schema e la struttura non relazionale), non è raro che un database manchi di una o più delle seguenti funzionalità e si qualifichi ancora come un moderno database NoSQL.
Open-source
Il software NoSQL è unico perché il movimento open source ha guidato lo sviluppo piuttosto che seguire una serie di società commerciali. È quindi possibile trovare una serie di prodotti NoSQL open-source per soddisfare ogni esigenza. Quando gli sviluppatori non sono riusciti a trovare un database NoSQL per le loro esigenze, ne hanno creato uno e l'hanno inizialmente pubblicato come open-source.
La maggior parte delle popolari soluzioni NoSQL sono guidate da società commerciali, con la variante open source priva delle caratteristiche chiave richieste per l'utilizzo mission critical nelle grandi aziende.
La differenza tra i fornitori open source NoSQL e queste società interamente commerciali è che i fornitori open source hanno un modello di business simile al modello Red Hat. Fondamentalmente, rilasciano un prodotto open-source e vendono anche funzionalità aggiuntive per l'enterprise, supporto e servizi di implementazione.
Questa non è una brutta cosa! Vale la pena notare, tuttavia, che le persone di NoSQL non sono guidate esclusivamente, o anche principalmente, da sviluppatori open source che lavorano nel loro tempo libero - invece, lavorano per le società commerciali dietro ai prodotti.
Attenzione del compratore! Quando si tratta di selezionare un database NoSQL, ricorda "costo totale di proprietà". "Molte organizzazioni hanno acquistato prodotti open source solo per scoprire che hanno bisogno di un abbonamento ad alto prezzo per ottenere le funzionalità che desiderano.
BASE rispetto ACID
Prima del 2014, la maggior parte delle definizioni NoSQL non includeva il supporto delle transazioni ACID come funzionalità di definizione dei database NoSQL. Questo non è più vero.
Transazione conforme a ACID significa che il database è progettato in modo da non perdere assolutamente i dati:
-
Ogni operazione sposta il database da uno stato valido a un altro ( A tomico).
-
Ognuno ha la stessa vista dei dati in qualsiasi momento ( C persistente).
-
Le operazioni sul database non interferiscono tra loro ( I solation).
-
Quando un database dice di aver salvato i dati, si sa che i dati sono sicuri ( D urable).
Non molti database NoSQL hanno transazioni ACID. Le eccezioni a tale norma sono FoundationDB, Neo4j e MarkLogic Server, che forniscono transazioni ACID serializzabili completamente.
Quindi perché la conformità ACID è una caratteristica non comune?Quando è stato rilasciato Oracle RDBMS, non ha fornito alcuna conformità ACID. Ci sono volute sette versioni prima che la conformità ACID fosse supportata su più aggiornamenti e tabelle di database.
Allo stesso modo, se si guardano le tabelle di marcia di tutti i database NoSQL, vedrete che tutti si riferiscono a lavorare sulla coerenza transazionale. MongoDB, ad esempio, ha raccolto $ 150 milioni nell'autunno del 2013 specificamente per affrontare questo e altri problemi aziendali. MongoDB ha annunciato un nuovo motore di archiviazione compatibile con ACID. Il dibattito ACID versus BASE è interessante.