Il modulo di Data Persistence e’ suddiviso in due parti, che trattano rispettivamente i database “tradizionali”, ovvero i database relazionali, e i cosiddetti database NoSQL, ovvero i DB che non utilizzano il linguaggio SQL per l’interrogazione.
Dopo un’introduzione ai sistemi di basi di dati e al modello relazionale, il modulo si concentrerà sui fondamenti del linguaggio SQL per l’interrogazione, la definizione e la modifica delle basi di dati, la gestione delle transazioni e le forme normali.
Seguiranno il concetto di indice, l’ottimizzazione delle queries e gli strumenti e le metodologie per l’integrazione di basi di dati relazionali all’interno di un’applicazione web e su come interfacciarsi in Java (JDBC). Verranno descritti i principali Relational database management system (RDBMS), soffermandosi sulle soluzioni open sources, in particolare MySQL e i suoi forks, e le principali architetture e implementazioni cloud per la gestione dei database relazionali.
Saranno infine analizzati i casi d’uso, i benefici, le problematiche e soluzioni di scalabilità dei database relazionali come MySQL, con un confronto con i sistemi NO-SQL come MongoDB.
Il corso presenta gli aspetti fondamentali di amministrazione del sistema MongoDB, e i principi progettuali a cui si ispirano applicazioni basate su sistemi NoSQL. Presenta l’utilizzo delle API di programmazione MongoDB per Java.