Al giorno d’oggi sono generate enormi quantità di dati eterogenei aventi strutture non sempre riconducibili a formati “relazionali”. La moda è di memorizzare questi dati su Hadoop. Tale soluzione, però, non è sempre la più indicata per motivi di complessità dell’architettura, pesantezza delle componenti e difficoltà di scrittura delle analytics. I database NoSQL, non necessariamente legati al mondo dei BigData, se utilizzati per elaborare determinati tipi di informazioni consentono di implementare soluzioni più agili rispetto ad un file system distribuito e di implementare query molto performanti. Questo seminario, dopo aver descritto le principali tipologie di database NoSQL, vuole mostrare, mediante la descrizione di esempi pratici, le funzionalità dei principali prodotti, i campi di applicazione e i relativi vantaggi e svantaggi.
Destinatari
- Capi progetto
- Analisti
- Progettisti
- Sviluppatori
- Chiunque sia interessato ad approfondire i concetti relativi ai database NoSQL
Prerequisiti
Conoscenze base sulle tecnologie Internet e sulle applicazioni distribuite.
Requisiti per l'aula
- Video proiettore con risoluzione minima nativa di 1024x768 (meglio se superiore)
- Connessione internet non filtrata per il portatile del docente
- Lavagna a fogli mobili con pennarelli di diversi colori (o strumenti equivalenti)
NOTA: il docente utilizzerà un proprio portatile sul quale sono installati tutti gli esempi del corso. Se questo non fosse possibile è necessario concordare in anticipo la predisposizione di un PC fornito dal cliente.
Contenuti
- Introduzione – Principali tipologie di dati; Small Data e Big Data; Classificazione dei DBMS (OldSQL, NewSQL, NoSQL) e principali differenze; cosa sono i database NoSQL; principali caratteristiche; il teorema CAP; Classificazione dei database NoSQL;
- Database chiave-valore – dizionari e hash table; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database chiave-valore (Redis, BigTable,…); esempi pratici di utilizzo.
- Database documentali – cosa si intende per “document”; struttura gerarchica; collezioni di document; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database documentali (MongoDB, CouchDB, CouchBase,…); esempi pratici di utilizzo.
- Database colonnari o orientati alle tabelle: tabelle estese (indice di riga, colonna e temporale); column family e super column family; tabelle nidificate; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database colonnari (Cassandra, Hbase, ,…); esempi pratici di utilizzo.
- Database a grafo – strutture reticolari, ad albero e a grafo; tipologie di elaborazione su modelli a grafo; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database a grafo (Neo4J, OrientDB…); esempi pratici di utilizzo.
- Database ad Oggetti: cosa si intende con oggetto; il paradigma object oriented; principali funzionalità; data modelling; modelli e pattern architetturali; campi di applicazione; principali database object-oriented (Redis, BigTable,…); esempi pratici di utilizzo.
- Database Multivariate – quando il DBMS implementa più modelli
- Database NoSQL Specializzati – suite di ricerca: SOLR e Elasticsearch; Blockchain.
- NoSQL e Hadoop: database NoSQL nativi per Hadoop; integrazione fra Hadoop e NoSQL: trarre il meglio dai due mondi;
- Integrazione con i sistemi aziendali esistenti – architetture di integrazione; forward e reverse engineering; conversione da e verso RDBMS; strumenti utilizzabili (Es. ErWin);
- Problematiche di sicurezza e privacy – principali problematiche di sicurezza e privacy dei database NoSQL; policy di accesso; cifratura delle informazioni; strumenti di sicurezza forniti;
- Governance – principali problematiche relative alla governance; catalogo dei metadati; ruoli e figure professionali; lineage;
- Casi di studio ed esempi pratici.
Durata
3 giorni