MongoDB

fondamenti e pattern di modellazione

“MongoDB: fondamenti e pattern di modellazione” di Flowygo è un corso di formazione sull’utilizzo del database MongoDB e la modellazione di dabase documentali.

La produzione di dati ha subito una crescita esponenziale negli ultimi anni richiedendo un enorme sforzo tecnologico per la loro gestione. L’eterogeneità dei dati raccolti ha evidenziato alcuni limiti dei database relazionali. Per questo motivo, e non solo, i database NoSQL hanno iniziato a conquistare il mercato. Tra questi si è affermato MongoDB che attualmente è la prima alternativa ai database relazionali. Il suo successo è dovuto alle sue caratteristiche che lo rendono il database ideale per gestire dati con strutture eterogenee e ridurre i tempi di produzione del software. L’utilizzo di aggregation pipeline, inoltre, permette di effettuare analisi, anche complesse, sui dati in pochissimo tempo. Grazie all’introduzione, nelle ultime versioni, della gestione delle transazioni e delle collezioni per time series, MongoDB è diventato una valida alternativa ai database relazionali in diversi contesti, che comprendono Internet Of Things ed e-commerce.

Una delle caratteristiche che rendono “speciale” MongoDB è lo schemaless, ossia la mancanza di una definizione di uno schema fisso dei dati. Sfruttando questa caratteristica, è possibile adattare la rappresentazione e la struttura dei dati in base al contesto ed alle nuove funzionalità delle applicazioni. Per rendere efficiente la memorizzazione e il recupero dei dati, si utilizzano dei pattern di modellazione.

Il database è disponibile sia sul cloud che come software da installare sulle proprie macchine anche mediante sistemi di containers come Docker e Kubernets. Esistono anche altri tools che vengono forniti a supporto del database. Tra questi possiamo citare MongoDB Compass, uno strumento che può aiutare mediante un’interfaccia grafica semplice e d intuitiva ad interrogare e analizzare i dati salvati in un’istanza di MongoDB.

Questo corso ha l’obiettivo di introdurre lo studente nel mondo dei database NoSQL analizzando le caratteristiche e le funzionalità principali di MongoDB. Mediante un approccio teorico e pratico, si illustrerà come interrogare tipologie di dati diversi, visualizzare la distribuzione dei dati in base alle diverse tipologie, creare delle pipeline di analisi per estrarre statistiche e modellare opportunamente le strutture dati in base al contesto applicativo.

Obiettivi del corso

Al termine del corso, i partecipanti saranno in grado di installare e configurare MongoDB sulle proprie macchine, effettuare query e pipeline di analisi e modellare un database documentale.

In particolare, dopo un’introduzione ai database NoSQL, verranno descritti i concetti alla base di un database documentale. Si procederà con l’illustrazione dei comandi per effettuare le operazioni (CRUD) di inserimento, interrogazione, aggiornamento e cancellazione dei dati. Si analizzeranno, anche ,le differenti tipologie di indici disponibili, al fine di rendere efficienti le query.

Mediante l’utilizzo di MongoDB Compass si interrogheranno collezioni d’esempio e si analizzeranno le distribuzioni dei dati. Dopo aver introdotto l’aggregation pipeline e i vari operatori utili per estrarre statistiche ed integrare dati proveniente da differenti collezioni, si utilizzerà MongoDB Compass per costruire aggregation pipelines verificando passo passo le varie fasi.

Successivamente, si presenteranno le configurazioni possibili in MongoDB, con particolare attenzione ai replica set. Questa configurazione permette di creare un’installazione di MongoDB per un ambiente di produzione che permetta ridondanza dei dati, alta affidabilità e supporto alle transazioni. Si illustrerà come creare un progetto in Docker per il deployment di un replica set da collegare ad un’applicazione web.

Infine, si introdurranno i pattern di modellazione volti a rendere efficiente le operazioni di lettura e scrittura dei dati. Per ciascun pattern si analizzeranno i pregi e i difetti e la loro possibile applicazioni in diversi contesti applicativi.

A chi è rivolto

Il corso è rivolto a professionisti, tecnici IT di aziende private o Pubbliche Amministrazioni, ricercatori, studenti universitari, docenti e in generale a tutti coloro che hanno intenzione di ampliare le proprie conoscenze in fatto di gestione, interrogazione ed analisi di dati eterogenei mediante un database documentale NoSQL.

Requisiti

Per la partecipazione è richiesta una buona padronanza nell’utilizzo di base del computer e di una shell (es. Bash per sistemi Unix o Mac, o Powershell per sistemi Windows). Non è richiesta nessuna esperienza di linguaggi di programmazione. Conoscenze preliminari relative all’utilizzo di Docker e del formato JSON possono risultare utili ma non sono strettamente necessarie.

È necessario l’utilizzo di computer personale e di connessione internet stabile e di adeguata velocità. MongoDB, MongoDB Compass e Docker possono essere installati su PC con sistema operativo Windows, Linux, Mac OS. Non sono richiesti particolari requisiti hardware (RAM consigliata almeno 4 GB, HD almeno 50 GB liberi).

Programma

  • Introduzione ai database NoSQL
    • Storia
    • Tipologie di database NoSQL
  • MongoDB
    • Concetti base
    • Gestione dei documenti
      • Operazioni CRUD sui documenti
      • Gestione degli indici
      • Query geospaziali
    • Aggregation pipeline
      • Filtraggio
      • Raggruppamento
      • Operazioni di join e graphlookup
      • Statistiche
      • Operazioni su array
    • Tools
      • Configurazione di un account MongoDB Atlas
      • Utilizzo di MongoDB Compass
    • Architettura MongoDB
      • Replica set
        • Creazione replica set mediante Docker
      • Sharding
      • Sicurezza
    • Patterns di modellazione
      • Modello polimorfico
      • Modello degli attributi
      • Modello extended reference
      • Modello ad albero
      • Modello dei sottoinsiemi
      • Modello degli outliers
      • Modello dei buckets
      • Modello di approssimazione
      • Modello dei valori pre-aggregati
      • Modello di preallocazione
      • Modello di document versioning
      • Modello di schema versioning

 

Modalità

Il corso può essere effettuato sia in aula o in remoto in base alle esigenze.

Durata

Il corso ha una durata complessiva di 21 ore. L’organizzazione delle ore erogate possono variare in base alle esigenze.

Vantaggi e materiale

Software utilizzati

Durante il corso si utilizzeranno i software:

  • MongoDB
  • MongoDB Compass
  • Docker

Verrà richiesta la creazione di un account su MongoDB Atlas. MongoDB Atlas è il servizio cloud di MongoDB che gratuitamente può essere utilizzato per lo sviluppo di prototipi e/ esercitazioni.

Tutto il software utilizzato, rilasciato con diverse licenze, è completamente gratuito e utilizzabile senza restrizioni anche all’interno di prodotti commerciali in base alla versione utilizzata. Il software può essere installato su piattaforme Microsoft Windows, Linux, Mac OS senza limitazioni di licenza.

Richiedi informazioni