Vai al contenuto principale
Oggetto:
Oggetto:

Modelli e Architetture Avanzati di Basi di Dati

Oggetto:

Data Bases: Advanced Models and Architectures

Oggetto:

Anno accademico 2023/2024

Codice dell'attività didattica
INF0092
Docenti
Maria Luisa Sapino (Titolare)
Silvestro Roberto Poccia (Professore a contratto)
Corso di studi
[008515] Laurea magistrale in informatica
Anno
1° anno 2° anno
Periodo didattico
Secondo semestre
Tipologia
Caratterizzante
Crediti/Valenza
9 CFU (Ore aula: 48, Ore laboratorio: 24)
SSD dell'attività didattica
INF/01 - informatica
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Scritto più orale obbligatorio
Prerequisiti

Conoscenze approfondite del modello relazionale, del modello semantico ER, dello standard SQL2, di sistemi operativi e algoritmi.
Insegnamenti propedeutici (forniscono le competenze attese in ingresso): Le competenze attese in ingresso richieste all'inizio del corso sono fornite da insegnamenti d'area "base di dati", "sistemi operativi" e "Algoritmi" offerti in corsi di laurea di primo livello. Ad esempio: "Basi di Dati e Sperimentazioni", "Algoritmi e sperimentazioni" e "Sistemi operativi e sperimentazioni" della laurea in Informatica dell'Universita' degli Studi di Torino.
A solid background on the relational model, ER model, SQL2, operating systems and algorithms.
Preparatory courses (providing the expected entry skills): Background knowledge is supplied by courses on databases, operating systems and algorithms offered at the laurea degree level. .

Oggetto:

Sommario insegnamento

Oggetto:

Obiettivi formativi

L'insegnamento ha l'obiettivo di approfondire le tematiche relative ai modelli di dati ed architetture dei sistemi per la gestione di basi di dati, obiettivo specifico l'indirizzo "Intelligenza Artificiale e Sistemi Informatici ‘Pietro Torasso’” per cui questo insegnamento e' caratterizzante.

Per quanto riguarda i modelli, l'obiettivo principale e' che le studentesse e gli studenti siano in grado di affrontare con successo la comprensione e lo sviluppo di applicazioni software che coinvolgano le basi di dati in una vasta gamma di ambienti diversi, avendo competenze sui principali modelli per dati strutturati alternativi al modello relazionale (object-oriented e object-relational). Inoltre le studentesse e gli studenti saranno in grado di affrontare i principali modelli dei database NoSql per grossi volumi di dati, con dati eterogenei e poco strutturati. Si menzionano il modello a "chiave-valore", il modello colonnare, il modello basato su documenti (JSON) e con modello dei dati a grafo. Per quanto riguarda le architetture, l'obiettivo e' che le studentesse e gli studenti siano in grado di migliorare la performance per applicazioni critiche e di progettare soluzioni ad hoc per situazioni specifiche, con particolare riferimento ai sistemi di gestione dei database relazionali, con l'inclusione della gestione dei malfunzionamenti e della concorrenza.

L'insegnamento e' dunque organizzato in due moduli, il primo  (6 crediti) dedicato agli aspetti architetturali, il secondo  dedicato ai database Nosql e alle loro applicazioni per il trattamento dei cosiddetti "Big Data".

 

Oggetto:

Risultati dell'apprendimento attesi

 

Le studentesse e gli studenti assimileranno le motivazioni, i costrutti e l'uso di modelli object-oriented, object-relational e NoSQL. Inoltre  acquisiranno competenze approfondite sui metodi di valutazione delle principali operazioni dell'algebra relazionale, sulle principali strutture di accesso, sulle organizzazioni ad indici secondari nell'ambito relazionale e nei motori di ricerca, sull'ottimizzazione delle interrogazioni, i sistemi di controllo della concorrenza e recupero da malfunzionamenti.

 

CONOSCENZA E CAPACITÀ DI COMPRENSIONE
Acquisizione di metodologie di progettazione e implementazione di sistemi per la gestione di dati strutturati e non. Conoscenza e capacita' di comprensione della documentazione tecnica che illustra il funzionamento, l'installazione, la gestione, l'utilizzo e la programmazione di sistemi software complessi di gestione delle basi di dati.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE

Acquisizione dell'uso di sistemi per la gestione di dati strutturati e non, basati su paradigmi di rappresentazione dei dati di tipo diverso. Capacita' di riconoscere le implicazioni delle diverse possibili scelte architetturali sulle prestazioni dei sistemi relazionali. Capacita' di scegliere il modello dei dati adatto in conseguenza delle peculiarita' dei requisiti e delle funzionalita' richieste dal dominio applicativo. Capacita' di impiegare le conoscenze apprese dalla documentazione tecnica che illustra un sistema di gestione delle basi di dati reali nello sviluppo di un proprio progetto software. Capacita' di analizzare le prestazioni di diversi sistemi, in contesti applicativi eterogenei.

AUTONOMIA DI GIUDIZIO
Acquisizione dei criteri di base per stabilire come impostare una corretta progettazione e una solida implementazione delle applicazioni software centrate sui dati. Capacita' di valutazione critica di soluzioni progettuali esitenti.

ABILITÀ COMUNICATIVE
Acquisizione e sviluppo di elementi del lessico informatico  specifico del dominio dei sistemi per la gestione delle basi di dati, finalizzati al lavoro di progettazione e implementazione delle applicazioni software.

CAPACITÀ DI APPRENDIMENTO
Acquisizione di capacità autonome di apprendimento e di autovalutazione della propria preparazione, teorica e pratica. Capacita' di comprendere la documentazione tecnica di strumenti software complessi, come i sistemi di gestione delle basi di dati.

KNOWLEDGE AND UNDERSTANDING

Methodologies to design and implement structured and unstrauctured data management systems will be learned. Knowledge and understanding of the technical documentation on the operation, the installing procedure, management, usage and programming of complex software systems that manage databases.

APPLYING KNOWLEDGE AND UNDERSTANDING

Students will learn how to use  different data/information managent systems, for both structured and unstructured information, based on different paradigms. They will be able to recognize the implications of the different design choices on the performance of relational  database management systems. Students will also learn how to analyze the performance of different systems, in heterogeneous application contexts. Ability to understand the technical documentation of complex software systems, like the database management systems, and apply the knowledge acquired in a practical software application project.

INDEPENDENT JUDGEMENT

Students will learn basic criteria to establish how to organize a correct design and a solid implementation of information systems involving heterogeeous data.

They will also learn how to critically evaluate existing design solutions.

COMMUNICATION SKILLS

Students will learn how to communicate with rigorous appropriate terminology notions and aspects relevant to the domain of data management systems, within the context of applications design and implementation.

LEARNING SKILLS

Students will acquire skills for independently learning, and for self evaluation of their theorical and practical preparation.

 

Oggetto:

Modalità di insegnamento

 


La didattica verrà erogata in presenza. Saranno disponibili forum di discussione per la collaborazione e meeting per la consulenza.


We will teach in presence, in class. Discussion forums will be available on Moodle, as well as on demand with meetings with the teachers, when clarifications will be required by students.

Oggetto:

Modalità di verifica dell'apprendimento

 


La modalità d'esame consiste in una prova scritta, a domande aperte, per quanto concerne il modulo relativo agli aspetti architetturali. Per il modulo sui modelli NoSQL, l'esame è orale, includendo la discussione del progetto software sviluppato. (Sebbene lo sviluppo possa avvenire anche in gruppo, la discussione all'esame è individuale).

The architectural part (6 credits) is evaluated through a written exam, with open questions.
The module on NoSQL databases, is evaluated in oral exams in which the software system developed by the students is also discussed. (Although the software project can be realized in groups,  the discussion of the outcome is conducted individually).

Oggetto:

Attività di supporto

Le attività di sviluppo software saranno condotte nelle fasi inziali dello sviluppo in classe, con il supporto delle discussioni con la docente.

The activity support is conducted, especially in the intial and more critical phases of the software project developement, in class, with the teacher's presence. 

Oggetto:

Programma


Per il primo modulo il programma e' il seguente:

  • Historical overview of existing DBMSs
  • Carrellata storica sui diversi modelli per la gestione dei dati
  • Dispositivi di memorizzazione
  • Indicizzazione
  • Hashing
  • Risoluzione di operazioni tramite scansioni sequenziali:
    • selezione, proiezione, join con nested loops, nested scans, merging scans, partizionamento hash
  • Gestione del buffer
  • Ottimizzazione delle interrogazioni.
  • Transazioni.
    • Gestione dei malfunzionamenti
    • Controllo della concorrenza

Il programma del secondo modulo consiste in:

  • Introduzione ai NoSql databases: motivazioni, modello dei dati, operazioni, architetture software.
  • Teorema CAP e sue conseguenze nelle applicazioni distribuite
  • Metodi per il rilassamento del concetto di consistenza "forte", il mantenimento delle repliche per la disponibilità dei dati, la tolleranza al partizionamento di un sistema distribuito (cluster) con la gestione dei time stamp e delle versioni.
  • AdHoop e Map reduce: introduzione, modello dei dati, operazioni
  • Sviluppo di una piccola applicazione software che coinvolge lo scaricamento, la preparazione e l'analisi di grossi volumi di dati (ad esempio, analisi dei sentimenti nei messaggi degli utenti di una applicazione di social media).


For the first module the program is the following:

  • Storage devices.
  • Indexing
  • Hashing
  • Implementation of operations through sequential scans:
    • selection, projection, join through nested loops, nested scans, merging scans, fragmentation aka recursive hash partitioning
  • Buffer management
  • Query optimization.
  • Transactions.
    • Recovery
    • Concurrency control

The program of the second module is:

  • NoSql databases: introduction, motivations, data model, operations, software architectures
  • CAP Theorem and its consequences in the distributed software applications
  • Methods for the relaxation of the "strong consistency", the maintenance of the replicas for data availability, tolerance to cluster partitioning in a distributed system with management of time stamps and versions.
  • AdHoop and Map Reduce: introduction, data model, operations
  • Development of a software application that involves downloading, preparation and analysis of big data (for instance, on sentiment analysis of the users' messages in a social media application).

Testi consigliati e bibliografia



Oggetto:
Libro
Titolo:  
Database Management Systems, 3rd edition
Anno pubblicazione:  
2002
Editore:  
Mc-Graw-Hill
Autore:  
Ramakrishnan, Raghu, Gehrke, Johannes
Obbligatorio:  
No


Oggetto:
Libro
Titolo:  
NoSQL distilled
Anno pubblicazione:  
2014
Editore:  
Addison Wesley
Autore:  
Pramod J. Sadalage and Martin Fowler
ISBN  
Permalink:  
Capitoli:  
tutti
Obbligatorio:  
No


Oggetto:
Libro
Titolo:  
Seven Databases in Seven Weeks
Anno pubblicazione:  
2018
Editore:  
Pragmatic Bookshelf
Autore:  
Eric Redmond, Jim R. Wilson
ISBN  
Permalink:  
Capitoli:  
1, 3, 4, 5, 7, A1, A2
Obbligatorio:  
No
Oggetto:

Lista di 150 database NSQL

Documentazione di Mongodb



Oggetto:
Ultimo aggiornamento: 06/03/2024 13:24
Location: https://magistrale.informatica.unito.it/robots.html
Non cliccare qui!