Offerta Didattica
INFORMATICA
BASI DI DATI II
Classe di corso: L-31 - Scienze e tecnologie informatiche
AA: 2015/2016
Sedi: MESSINA
SSD | TAF | tipologia | frequenza | moduli |
---|---|---|---|---|
INF/01 | Caratterizzante | Libera | Libera | No |
CFU | CFU LEZ | CFU LAB | CFU ESE | ORE | ORE LEZ | ORE LAB | ORE ESE |
---|---|---|---|---|---|---|---|
6 | 6 | 0 | 0 | 48 | 48 | 0 | 0 |
LegendaCFU: n. crediti dell’insegnamento CFU LEZ: n. cfu di lezione in aula CFU LAB: n. cfu di laboratorio CFU ESE: n. cfu di esercitazione FREQUENZA:Libera/Obbligatoria MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli ORE: n. ore programmate ORE LEZ: n. ore programmate di lezione in aula ORE LAB: n. ore programmate di laboratorio ORE ESE: n. ore programmate di esercitazione SSD:sigla del settore scientifico disciplinare dell’insegnamento TAF:sigla della tipologia di attività formativa TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio
Obiettivi Formativi
Conoscenza delle problematiche di gestione dei dati in ambiente Internet/Intranet distribuito. Conoscenza di basi di dati relazionali ad oggetti (ORDBMS) e orientati agli oggetti (OODBMS). Conoscenza di ambienti di sviluppo multiprogramma e competenze nell’impiego di strumenti C.A.S.E. per lo sviluppo di applicazioni DB (Oracle SQL Developer). Conoscenza delle problematiche relative ai big data e capacità di progettazione di data model e database per sistemi e applicazioni cloud (teorema CAP). Conoscenza di soluzioni NoSQL (key-calue, column, document, graph). Conoscenza dei formati di rapprentazone dei dati NoSQL (XML e JSON) e delle relative tecniche di trasformazione (DTD, XDS, XQuery, XSL). Competenze nell'utilizzo di DBMS NoSQL (MongoDB, Cassandra, HBase, Neo4J). Capacità di progettazione e di sviluppo di architetture ibride SQL-like/NoSQL. Conoscenza delle tecniche di manutenzione e scalabilità di database NoSQL. Conoscenza delle principali tecniche di processamento dei big data.Learning Goals
Metodi didattici
Didattica frontale e esercitazioni di laboratorio.Teaching Methods
Prerequisiti
Conoscenza dei database relazionali.Prerequisites
Verifiche dell'apprendimento
Esame scritto e orale.Assessment
Programma del Corso
Richiami sui RDBMS; OODBMS; ORDBMS; Sistemi distribuiti: obiettivi; definizione; middleware; trasparenza; sistemi aperti; politiche; meccanismi; scalabilità; problematiche di progettazione; tipi di sistemi distribuiti: sistemi per il processamento distribuito, sistemi informativi distribuiti, sistemi distribuiti pervasivi; stili architetturali; architetture software; architetture vs middleware; sistemi distribuiti autonomici. Architetture client-server: Paradigma client-server classico ed applicativo; Basi di dati distribuite: motivazioni, tipologie, problematiche: autonomia e cooperazione, trasparenza, efficienza, affidabilità; frammentazione orizzontale e verticale dei dati; livelli di trasparenza: frammentazione, allocazione, linguaggio; Riconoscimento distribuito del deadlock: algoritmo di Obermark; protocollo di commit: a due fasi, tre fasi e quattro fasi; recovery del coordinatore e dei partecipanti; protocollo di abort presunto; Blocking, incertezza, protocolli di recovery; Protocollo di Paxos Commit; X-Open DTP; Basi di dati replicate: motivazioni; modalità simmetrica e asimmetrica; trasmissione sincrona e asincrona; modalità di allineamento; allineamento di copie disconnesse; replicazione di computer mobili. Database paralleli: tipologie di carico transazionale ed analisi dei dati; parallelismo; architetture shared memory e shared disk; Benchmark; join distribuito. Database e Cloud computing: definizione; caratteristiche e modelli cloud; livelli di servizio; caratteristiche comuni ed essenziali; elasticità e scalabilità; virtualizzazione; cloud private, pubbliche, ibride e federate; tassonomia; vantaggi e svantaggi. Oracle db: archittettura e funzionalità; PS/SQL: introduzione, benefici, costrutti di base, tipi di dati, variabili, strutture di controllo, strutture iterative, blocchi anonimi, stored procedure, funzioni, packages. PS/SQL: cursori, gestrione delle eccezioni, trigger, SQL dinamico. Introduzione ai database NoSQL key-value, column-based, document-based, graph. Definizione e storia di eXtensible Markup Language (XML): elementi e attributi; schemi documentali: Document Type Definition (DTD) e XML Schema Definition (XSD); Linguaggi di interrogazione e trasformazione: XQuery e XSL. Big data e database NoSQL. Cenni sugli strumenti di big data analytics per il Cloud: Map reduce; Map-Reduce; HADOOP; File Systems Distribuiti (HDFS); Apache Hive e Apache Pig. NoSQL document-oriented database MongoDB: architettura di sistema, principi di funzionamento, BSON, query language; inserimento, aggiornamento, cancellazione dati, scrittura query; GeoJSON e gestine di dati geospaziali. NoSQL column-based database Cassandra: architettura di sistema, principi di funzionamento, Cassandra Query Language (CQL); inserimento, aggiornamento, cancellazione dati, scrittura query. NoSQL column-based database HBASE: architettura di sistema, principi di funzionamento, query language, inserimento, aggiornamento, cancellazione dati, scrittura query. NoSQL graph database Neo4J: architettura di sistema, principi di funzionamento, indici, relazioni, proprietà, mutazione di operazioni in una transazione, matrice di un graph database, attravesamento del grafo, vantaggi e svantaggi, chyper, query language: inserimento, aggiornamento, cancellazione dati, scrittura query. Nomalizzazione in database NoSQL. Tecniche di aggregazione dati mediante incapsulamento; Architetture ibride: architettura a tre livelli, architettura Lambda. Cenni su Machine Learning.Course Syllabus
Testi di riferimento: -Atzeni, Ceri, Fraternali, Paraboschi, Torlone. Basi di dati Quarta edizione, McGraw-Hill.
-Tanenbaum Andrew S. Van Steen Maarten. Sistemi distribuiti. Principi e paradigmi, Pearson.
-Dispense e slides fornite dal docente e disponibili sulla piattaforma di eLearning.
Esami: Elenco degli appelli
Elenco delle unità didattiche costituenti l'insegnamento
BASI DI DATI II
Docente: ANTONIO CELESTI
Orario di Ricevimento - ANTONIO CELESTI
Giorno | Ora inizio | Ora fine | Luogo |
---|---|---|---|
Martedì | 17:00 | 18:00 | Dipartimente di Ingegneria, blocco B, piano 7. |
Note: Si consiglia di contattare il docente tramite e-mail all'indirizzo acelesti@unime.it per conferme e per appuntamenti in altri giorni.