Le organizzazioni affrontano ogni giorno nuove sfide per fornire continuamente nuove funzionalità di business implementando nuovi processi IT come Agile e DevOps e adottando nuove architetture come cloud e microservizi. Per allinearci a tutto ciò, abbiamo bisogno di un nuovo concetto di database in grado di gestire incrementi massicci di tipi di dati in rapida evoluzione e in grado di lavorare con i dati ovunque vengano archiviati lato client e lato livello dati.
Quindi i database NoSQL "Non solo SQL" sono progettati per rispondere a queste sfide. MongoDB è il principale database NoSQL e un database di documenti open source.
In questo articolo spiegheremo i concetti di MongoDB, daremo un'idea dei suoi vantaggi e terminologia e dove possiamo implementarlo.
Vantaggi di MongoDB:
La piattaforma dati di MongoDB si basa su due principi:
- Database dei documenti :MongoDB utilizza il documento come modello di dati che è simile agli oggetti JSON. È una struttura dati composta da coppie di campi e valori. I valori possono includere documenti secondari, matrici e matrici di documenti; che riducono la necessità di costosi join. Utilizzando questo modello di dati sarà più facile e veloce modellare il modo in cui gli oggetti dell'applicazione verranno mappati ai dati poiché corrisponde ai tipi di dati nativi . Al di là della facilità d'uso, i documenti sono flessibili poiché possiamo modificare il nostro schema in qualsiasi momento, è polimorfico perché i documenti possono avere strutture diverse rispetto ad altri documenti nella stessa raccolta ed è estensibile:modelliamo i dati in qualsiasi modo applicazione lo richiede.
- Dati distribuiti: MongoDB offre la possibilità di ridimensionare il sistema e distribuire i dati per l'accesso degli utenti a bassa latenza. L'implementazione di tecniche di "sharding" e "set di repliche" semplifica la distribuzione dei dati e fa crescere la nostra implementazione su hardware poco costoso.
Terminologia di base:
MongoDB archivia i documenti BSON nelle raccolte; le raccolte nel database. Un singolo server MongoDB ha in genere più database. Ogni database ottiene il proprio set di file sul file system come formato delle raccolte. Ogni collezione è un insieme di documenti. Uno dei principali vantaggi della raccolta è non applicare schemi e allo stesso tempo abbiamo uno schema dinamico. Schema dinamico significa che i documenti nella stessa raccolta non devono avere lo stesso insieme di campi o struttura e i campi comuni nei documenti di una raccolta possono contenere diversi tipi di dati.
La figura seguente mostra la terminologia di corrispondenza del Database relazionale con MongoDB:
Lingua di query:
Sia RDBMS (Oracle e MySQL) che MongoDB hanno un linguaggio di query avanzato.
La figura seguente mostra la corrispondenza di Query Language di RDBMS e MongoDb:
Attuazione:
Per sfruttare MongoDB, possiamo scegliere di implementare MongoDB in questi campi:
- Catalogo prodotti e-commerce
- Blog, gestione dei contenuti e pubblicazione
- Infrastrutture mobili e sociali
- Big Data
- Gestione dati utente
- Hub di dati