Data Persintence (database)

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.

Database relazionali

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.

NoSQL: MongoDB

Obiettivi

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.

Contenuti

  1. Differenze concettuali tra SQL e NoSQL. Implicazioni nel disegno dell’applicazione.
  2. Creazione di documenti e collezioni. Uso della Mongo Shell per operazioni CRUD.
  3. Aggregazioni e raggruppamenti. Utilizzo dell’Aggregation Framework e della Pipeline.
  4. Indici e prestazioni. Valutazione degli indici.
  5. Aspetti sistemistici. Sicurezza in Mongo. Impostazione di Replica Set. Sharding. Controllo del balancer. Architetture per DataCenter.

Sitografia (DB relazionali)

IT

EN