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".