Agile Data Science: SQL contro NoSQL

L'obiettivo completo di questo tutorial è seguire la metodologia agile con un numero inferiore di passaggi e con l'implementazione di strumenti più utili. Per capirlo, è importante conoscere la differenza tra database SQL e NoSQL.

La maggior parte degli utenti conosce il database SQL e ha una buona conoscenza di MySQL, Oracle o altri database SQL. Negli ultimi anni, il database NoSQL è stato ampiamente adottato per risolvere vari problemi aziendali e requisiti di progetto.

La tabella seguente mostra la differenza tra database SQL e NoSQL:

SQL NoSQL
I database SQL sono principalmente chiamati Relational Database Management System (RDBMS). Il database NoSQL è anche chiamato database orientato ai documenti. Non è relazionale e distribuito.
I database basati su SQL includono la struttura della tabella con righe e colonne. Raccolta di tabelle e altre strutture di schemi denominate database. Il database NoSQL include documenti come struttura principale e l'inclusione di documenti è chiamata raccolta.
I database SQL includono uno schema predefinito. I database NoSQL hanno dati dinamici e includono dati non strutturati.
I database SQL sono scalabili in verticale. I database NoSQL sono scalabili orizzontalmente.
I database SQL sono adatti per ambienti di query complessi. NoSQL non dispone di interfacce standard per lo sviluppo di query complesse.
I database SQL non sono fattibili per l'archiviazione gerarchica dei dati. I database NoSQL si adattano meglio per l'archiviazione gerarchica dei dati.
I database SQL si adattano meglio a transazioni pesanti nelle applicazioni specificate. I database NoSQL non sono ancora considerati comparabili in condizioni di carico elevato per applicazioni transazionali complesse.
I database SQL forniscono un eccellente supporto per i loro fornitori. Il database NoSQL si basa ancora sul supporto della comunità. Solo pochi esperti sono disponibili per la configurazione e la distribuzione per distribuzioni NoSQL su larga scala.
I database SQL si concentrano sulle proprietà ACID: atomica, coerenza, isolamento e durata. Il database NoSQL si concentra sulle proprietà della CAP: coerenza, disponibilità e tolleranza delle partizioni.
I database SQL possono essere classificati come open source o closed source in base ai fornitori che li hanno scelti. I database NoSQL sono classificati in base al tipo di archiviazione. I database NoSQL sono open source per impostazione predefinita.

Perché NoSQL per Agile?

Il suddetto confronto mostra che il database dei documenti NoSQL supporta completamente lo sviluppo agile. È senza schema e non si concentra completamente sulla modellazione dei dati. Invece, NoSQL differisce applicazioni e servizi e quindi gli sviluppatori hanno un'idea migliore di come i dati possono essere modellati. NoSQL definisce il modello di dati come modello di applicazione.

Installazione di MongoDB

In questo tutorial, ci concentreremo maggiormente sugli esempi di MongoDB poiché è considerato il miglior "schema NoSQL".