Chi dovrebbe partecipare
Il corso è rivolto a:
- Sviluppatori backend e full stack.
- Software architect.
- Data engineer junior.
- Figure tecniche che intendono acquisire competenze sui database NoSQL.
Prerequisiti
- Conoscenze di base di programmazione (preferibilmente JavaScript/Node.js, Python o Java).
- Comprensione generale dei concetti relativi ai database relazionali.
Obiettivi del Corso
Al termine del corso, i partecipanti saranno in grado di:
- Comprendere le differenze principali tra database relazionali e NoSQL.
- Utilizzare MongoDB per operazioni CRUD e query avanzate.
- Modellare correttamente dati complessi con documenti embedded e referenced.
- Utilizzare l’Aggregation Framework per elaborazioni e analisi.
- Ottimizzare le prestazioni tramite l’indicizzazione.
- Integrare MongoDB all’interno di applicazioni software attraverso i driver ufficiali.
Contenuti del Corso
Il corso ha l’obiettivo di fornire ai partecipanti le conoscenze necessarie per utilizzare MongoDB in ambito di sviluppo software. Saranno trattati i principi fondamentali dei database NoSQL, la modellazione dei dati orientata ai documenti e l’integrazione di MongoDB all’interno di applicazioni moderne.
Contenuti:
Introduzione a MongoDB
- Caratteristiche dei database document-oriented.
- Architettura e componenti principali di MongoDB.
- Installazione degli strumenti e panoramica su MongoDB Shell, Compass e Atlas.
Struttura dei dati e operazioni di base
- Database, collection e documenti.
- Formato BSON e tipologie di dati supportati.
- Operazioni CRUD fondamentali: inserimento, lettura, aggiornamento, eliminazione.
Modellazione dei dati
- Approcci di modellazione in ambiente NoSQL.
- Documenti embedded e referenced.
- Gestione delle relazioni (1:1, 1:N, N:M).
- Best practice orientate alle query e ai pattern applicativi.
Query e funzionalità avanzate
- Filtri e operatori di interrogazione.
- Ordinamento, proiezioni e paginazione.
- Operatori logici, comparativi ed espressivi.
Aggregation Framework
- Struttura delle pipeline.
- Utilizzo degli stadi più comuni: $match, $project, $group, $unwind, $lookup.
- Applicazioni pratiche per analisi e trasformazione dei dati.
Indicizzazione e prestazioni
- Tipologie di indici disponibili.
- Indici singoli, composti, testuali e geospaziali.
- Utilizzo del comando explain() per l’analisi delle query.
- Linee guida per l’ottimizzazione.
Sicurezza e gestione dell’ambiente
- Gestione utenti, ruoli e permessi.
- Backup e ripristino dei dati.
- Configurazioni e considerazioni operative in contesti di produzione.
Integrazione nelle applicazioni
- Utilizzo dei driver ufficiali.
- Connessione al database e gestione delle operazioni principali.
- Pattern transazionali e gestione degli errori.
- Esempi di integrazione con applicazioni (Node.js, Python o Java).