Skip to content
/ MAABD Public

Progetto del corso di Modelli e Architetture Avanzati di Basi di Dati

Notifications You must be signed in to change notification settings

alesarac/MAABD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

MAABD

Progetto del Secondo Modulo del corso di Modelli e Architetture Avanzati di Basi di Dati

Database

Panoramica del Corso

Obiettivi Formativi

Questo corso è un corso avanzato dedicato ai modelli di dati e alle architetture dei sistemi database. È composto da due moduli, il primo dei quali si concentra sugli aspetti architetturali dei database e viene insegnato in aula. Il secondo modulo è dedicato ai database NoSQL e alle loro applicazioni nel trattamento dei Big Data.

Il corso ha due obiettivi principali:

Per quanto riguarda i modelli di dati: L'obiettivo è che gli studenti acquisiscano competenze per affrontare con successo applicazioni in una vasta gamma di ambienti diversi. Saranno in grado di utilizzare i principali modelli per dati strutturati alternativi al modello relazionale, come i modelli orientati agli oggetti e object-relational. Inoltre, acquisiranno competenze sui principali modelli di database NoSQL per dati eterogenei e poco strutturati, tra cui il modello "chiave-valore", il modello basato su colonne, il modello basato su documenti (JSON) e il modello basato su grafi.

Per quanto riguarda le architetture dei sistemi database: L'obiettivo è consentire agli studenti di migliorare le prestazioni delle applicazioni critiche e di progettare sistemi ad hoc. Gli studenti acquisiranno una comprensione approfondita dei problemi e delle soluzioni architetturali per sistemi database centralizzati e distribuiti. Ci si concentrerà sulla gestione dei problemi di recupero e controllo della concorrenza nei sistemi database relazionali. Per quanto riguarda i database NoSQL, il corso tratterà i problemi relativi alla manutenzione della consistenza in applicazioni distribuite, ai metodi per il rilassamento della consistenza, alla disponibilità dei dati e alla gestione delle repliche, nonché alla tolleranza al partizionamento in cluster di macchine.

Durante il corso, gli studenti avranno l'opportunità di esaminare le architetture software e i linguaggi di interrogazione di quattro database NoSQL, uno per ciascuna tipologia di modello di dati. Saranno in grado di sviluppare un'applicazione software pratica legata al tema dei Big Data e, durante il progetto, utilizzeranno entrambi i tipi di sistemi database, confrontandoli in termini di prestazioni.

Risultati di Apprendimento Attesi

Le studentesse e gli studenti dovrebbero raggiungere i seguenti risultati di apprendimento:

  • Comprensione delle motivazioni, dei costrutti e dell'uso dei modelli object-oriented, object-relational e NoSQL.
  • Competenza nelle principali operazioni dell'algebra relazionale e nelle strutture di accesso ai dati.
  • Capacità di progettare e implementare sistemi di controllo della concorrenza e di recupero da malfunzionamenti in ambienti database.
  • Conoscenza delle principali architetture e linguaggi di interrogazione dei database NoSQL.
  • Competenza nello sviluppo di applicazioni software che utilizzano sia database relazionali che NoSQL e capacità di confrontarli in termini prestazionali.

Programma del Corso

Primo Modulo: Aspetti Architetturali

Il programma del primo modulo include i seguenti argomenti:

  • Dispositivi di memorizzazione
  • Indicizzazione e Hashing
  • Risoluzione di operazioni tramite scansioni sequenziali, inclusa selezione, proiezione e join con diverse tecniche.
  • Gestione del buffer
  • Ottimizzazione delle interrogazioni
  • Transazioni
  • Gestione dei malfunzionamenti
  • Controllo della concorrenza

Secondo Modulo: Database NoSQL e Big Data

Il secondo modulo include i seguenti argomenti:

  • Introduzione ai database NoSQL
  • Modelli di dati NoSQL, operazioni e architetture software
  • Teorema CAP e sue conseguenze nelle applicazioni distribuite
  • Metodi per il rilassamento del concetto di consistenza "forte"
  • Mantenimento delle repliche per la disponibilità dei dati
  • Tolleranza al partizionamento in sistemi distribuiti (cluster)
  • Panoramica di AdHoop e MapReduce
  • Sviluppo di un'applicazione software pratica legata al tratt

IL progetto è stato svolto insieme a [email protected]

About

Progetto del corso di Modelli e Architetture Avanzati di Basi di Dati

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published