Modules | Area | Type | Hours | Teacher(s) | |
LARGE-SCALE AND MULTI-STRUCTURED DATABASES | ING-INF/05 | LEZIONI | 90 |
|
Al termine del corso:
- lo studente avrà acquisito conoscenze in merito agli strumenti e alle metodologie per la progettazione di basi di dati non relazionali. In particolare, lo studente sarà in grado di gestire l'archiviazione, l'aggiornamento ed il recupero di dati complessi e multi-strutturati, anche di dimensioni molto ampie.
- lo studente avrà aquisito conoscenze in merito alle architetture, alle prestazioni ed ai costi delle moderne infrastrutture per la gestione di dati complessi, sia dal punto di vista della quantità di informazione sia dal punto di vista della loro struttura.
Con riferimento all’autonomia di giudizio:
- lo studente sarà in grado di impostare correttamente un progetto per la gestione di dati multi-strutturati e di grosse dimensioni, integrandolo all’interno di una reale applicazione informatica e scegliendo in maniera opportuna le strategie di progetto e di implementazione.
Con riferimento alle abilità comunicativa:
- lo studente sarà in grado di utilizzare del lessico e della terminologia appropriata per presentare, in forma scritta o verbale, le argomentazioni e i risultati del proprio studio e delle attività pratiche realizzate durante il corso
Con riferimento all’abilità ad apprendere:
- Lo studente avrà acquisito un buon livello di autonomia nell’utilizzo del materiale e negli strumenti didattici presentati durante il corso
At the end of the course:
- the student will have acquired knowledge about the tools and methodologies for the design of non-relational databases. In particular, the student will be able to manage the archiving, updating and recovery of complex and multi-structured data, even of very large dimensions.
- The student will acquire knowledge about the architectures, performances and costs of modern infrastructures for the management of complex data, both from the point of view of the quantity of information and from the point of view of their structure.
Moreover, with reference to autonomy of judgment:
- the student will be able to correctly set up a project for the management of multi-structured and large data, integrating it into a real computer application and choosing in an appropriate manner the design and implementation strategies.
With reference to communication skills:
- The student will be able to use appropriate vocabulary and terminology to present, in written or verbal form, the arguments and results of his/her own study and practical activities carried out during the course.
With reference to the ability to learn:
- The student will have acquired a good level of autonomy in the use of the materials and didactic tools presented during the course.
Per l'accertamento delle conoscenze teoriche e pratiche saranno proposte attività di gruppo. Ai gruppi di lavoro saranno proposte attività di:
- approfondimento di questioni teoriche e tecniche
- realizzazione di progetti.
- Saranno previsti confronti periodici in aula tra il docente e il gruppo di studenti che sviluppa le attività di cui sopra.
-I gruppi di lavoro dovranno essere in grado di impostare in maniera ottimale il progetto didattico. Ciò sarà valutato sulla base della documentazione fornita e della discussione delle varie attività durante le ore appositamente dedicate ed in sede di esame orale.
- In sede di esame, allo studente sarà data la possibilità di discutere problematiche teorico/pratiche relative agli argomenti trattati nel corso.
Group activities will be proposed to assess theoretical and practical knowledge. Group activities will be proposed to the working groups with the objective of:
- deepening of theoretical and technical issues
- implementing of technical projects.
- Periodic classroom discussions between the teacher and the group of students developing the above activities will be organized.
-The working groups must be able to set up the didactic project in the best possible way. This will be assessed on the basis of the provided documentation and of the discussions carried out during the hours dedicated to them and during the oral exam.
- During the exam the student will be given the opportunity to discuss theoretical/practical issues related to the topics covered in the course.
Al termine del corso lo studente sarà in grado di:
- Progettare opportunamente una base di dati non relazionale, sulla base dei requistiti (funzionali e non) di una specifica applicazione.
- Utilizzare moderne infrastrutture tecnologiche per la gestione di basi di dati non relazionali (Redis, MongoDB, Neo4j, etc)
At the end of the course the student will be able to:
- Design a non-relational database based on the requirements (functional and non-functional) of a specific application.
- Use modern technological infrastructures for the management of non-relational databases (Redis, MongoDB, Neo4j, etc.)
Durante le lezioni di laboratorio:
-Sarà mostrato allo studente come installare e configurare alcune fra le moderne infrastrutture tecnologiche per la gestione di basi di dati non relazionali
-Saranno proposte attività pratiche per la creazione, la gestione e l'interrogazione di diverse basi di dati non relazionali
- Saranno proposte attività di gruppo per l'approfondimento di questioni tecniche e per la realizzazione di progetti didattici
- I gruppi di lavoro dovranno presentare relazioni scritte relative alle attività svolte
During lab class:
The student will be shown how to install and configure some of the modern technological infrastructures for the management of non-relational databases.
Practical activities will be proposed for the creation, management and querying of different non-relational databases.
- Group activities will be proposed for the in-depth study of technical issues and for the implementation of educational projects.
- The working groups must submit written reports on their activities
Gli studenti acquisiranno accuratezza e precisione nella progettazione e risoluzione dei problemi relativi alla progettazione di basi di dati non relazionali.
Gli studenti saranno in grado di collaborare con i propri colleghi e svolgere un lavoro di gruppo in modo efficace.
Students will acquire accuracy and precision in the design and resolution of problems related to the design of non-relational databases.
Students will be able to collaborate with their colleagues and do teamwork effectively.
- Programmazione in JAVA (incluso l'utilizzo di un IDE)
- Progettazione ed interrogazione di basi di dati relazionali
- Nozioni di base di Ingegneria del Software (incluso realizzazione di Diagrammi UML)
- Nozioni di base di Sistemi Operativi Unix-Based
- Programming in JAVA (including the use of an IDE)
- Design and query of relational databases
- Basics of Software Engineering (including realization of UML Diagrams)
- Basics of Unix-Based Operating Systems
Sono previste lezioni teoriche ed esercitazioni pratiche. Si organizzeranno gruppi di lavoro per svolgere le esercitazioni. Le attività relative al progetto partiranno dalla seconda metà di Novembre.
Sarà utlizzata la piattaforma teams per la gestione di eventuali attività da svolgere in modalità a distanza (iscrizione necessaria).
Ciascuno studente dovrebbe essere dotato di PC personale.
Si utilizzerà la piattaforma di e-learning Google Classroom per fornire il materiale di studio e per il caricamento da parte degli studenti di artefatti (codici, relazioni, presentazioni). Gli studenti potranno accedere a tale piattaforma solo ed esclusivamente utilizzando le credenziali di ateneo.
Il corso sarà svolto interamente in lingua Inglese.
Saranno previsti orari di ricevimento (due ore alla settimana).
Theoretical lectures and practical exercises are planned. Working groups will be organised to carry out the exercises. The project activities will start in the second half of November.
The teams platform will be used for the management of any activities to be carried out remotely (registration required).
Each student should be equipped with a his/her own PC.
The Google Classroom s e-learning platform will be used to provide study material and for students to upload artifacts (codes, reports, presentations).
The course will be held entirely in English.
Tutoring hours (two hours per week) will be provided.
- Introduzione e motivazioni: Introduzione al corso, L'era dei Big Data, Le rivoluzioni delle Basi di Dati
- Fondamenti e proprietà dei database NoSQL: Proprietà ACID vs proprietà BASE, il teorema del CAP, Scalabilità, Sharding, Replicazione, Coerenza.
- Architetture di database NOSQL: Document Databases, Key-values Databases, Column Databases, Graph Databases
- Ripasso di Java, SQL e strumenti per la persistenza dei dati
- Infrastrutture moderne per basi di dati NoSQL: LevelDB, MongoDB, Neo4J (installazione, configurazione, operazioni CRUD, query principali)
- Introduction and Motivations: Introduction to the Course, The Big Data Era, The Database Revolutions Fundamentals and properties of the NoSQL databases: ACID vs BASE properties, The Cap Theorem, Scalability, Sharding, Replication, Consistency
- Architectures of NOSQL databases: Document Databases, Key-values Databases, Column Databases, Graph Databases
- Recap of Java, SQL and tools for data persistency
- Modern Infrastructures for NoSQL Databases: LevelDB, MongoDB, Neo4J (Installation, configuration, CRUD operations, main queries)
Slide fornite dal docente
Articoli scientifici forniti dal docente
Libri Consigliati:
“Guy Harrison, Next Generation Databases, Apress, 2015”
“Dan Sullivan, NoSQL For Mere Mortals, Addison-Wesley, 2015”
Slides provided by the teacher
Scientific articles provided by the teacher
Recommended Books:
“Guy Harrison, Next Generation Databases, Apress, 2015”
“Dan Sullivan, NoSQL For Mere Mortals, Addison-Wesley, 2015”
Gli studenti che non frequenteranno il laboratorio, dovranno contattare il docente per stabilire le attività pratiche da svolgere in alternativa.
Students who do not attend the laboratory classes must to contact the teacher to establish the practical activities to be carried out as an alternative.
Discussione progetto di gruppo (in unica volta) e test scritto.
Progettazione e sviluppo in gruppo di una applicazione che utilizzi le tecnologie discusse a lezione (maggiori dettagli forniti durante le lezioni). Gli studenti devono fornire al docente opportuna documentazione e presentare il progetto svolto prima della prova orale. Sarà fissato un caledario per la discussione finale delle progetto di gruppo.
Test scritto per la discussione degli argomenti teorici.
Il test scritto e la realizzazione delle attività di gruppo contribuiscono ciascuno al 50% sulla votazione finale.
Written test and workgroup projects.
Design and development of an Appliation adopting the technolgies developed during the course. (more details provided during lectures). Students must provide the lecturer with appropriate documentation and present their project before the oral test. A timetable will be set for the final discussion of the group project.
Written test for the discussion of theoretical topics.
The written test and the group activities each contribute 50% to the final grade