MongoDB rientra nella tipologia di database nota come "NoSql".
I Database NoSQL sono una tipologia di database dove la persistenza dei dati è caratterizzata dal fatto di non utilizzare il modello relazione.
I principali vantaggi dei database NoSQL sono:
- Leggerezza computazionale: i database NoSQL non prevedono operazioni di aggregazione sui dati, in quanto tutte le informazioni sono già raccolte in un unico documento associato all’oggetto da trattare. Negli ambienti SQL la complessità di queste operazioni, e quindi il peso computazionale, cresce con l’ingigantirsi della base di dati, del numero di tabelle e delle informazioni da trattare. Il NoSQL, invece, non ha limiti di dimensioni in questo senso. Così si ottengono migliori prestazioni e performance anche in ambienti di Big Data. Lo scotto da pagare a tutta questa flessibilità e alla proprietà di aggregazione dei database NoSQL è la duplicazione delle informazioni. In realtà, i costi sempre meno proibitivi dei sistemi di storage rendono questo svantaggio poco importante.
- Assenza di schema: i database NoSQL sono privi di schema in quanto il documento JSON contiene tutti i campi necessari, senza necessità di definizione. In questo modo, possiamo arricchire le nostre applicazioni di nuovi dati e informazioni, definibili liberamente all’interno dei documenti JSON senza rischi per l’integrità dei dati. I database non relazionali, a differenza di quelli SQL, si rivelano quindi adatti a inglobare velocemente nuovi tipi di dati e a conservare dati semistrutturati o non strutturati.
- Scalabilità orizzontale garantita: l’aggregazione dei dati e l’assenza di uno schema definito a priori offre l’opportunità di scalare orizzontalmente i database NoSQL senza difficoltà e senza rischi operativi.
Chi usa i database NoSQL ?
Contesti come Facebook, Twitter e tanti altri ricorrono ai database NoSQL per garantire velocità di esecuzione anche nell’elaborazione di terabyte e terabyte di dati, la scalabilità orizzontale con l’aggiunta di nuovi server, un elevato livello di availability (che a parità di costi è difficilmente ottenibile con una soluzione SQL) ela possibilità di ricevere migliaia di dati non strutturati senza dipendere da uno schema fisso.