DATABASE A - E
Academic Year 2023/2024 - Teacher: FEDERICA PROIETTO SALANITRIExpected Learning Outcomes
The course covers the fundamental concepts of management and design of database systems. Topics include data models (ER and relational); query languages (SQL);
implementation techniques of database management systems (index structures and nd query processing); noSQL databases.
The learning objectives of the course, expressed according to the Dublin descriptors, are:
Knowledge and understanding
- To understand the main concepts of management and design of database systems
- To understand concepts and tools for querying databases of different nature (therefore with structured and unstructured data) and at different scales
- To understandi the role and the impact that data and their correct modeling may have on software applications using them
Applying knowledge and understanding
- To be able to design, starting from the requirements, a relational (and non) relational database, from a conceptual, logical and physical point of view.
- To be able to understand and use the SQL language to manage data and perform efficient queries.
- To be able to create and query unstructured databases (NoSQL) by manipulating JSON documents
Making judgements
- Analyzing functional and non-functional requirements
- Understanding the implications of design choices related to response times and alternative implementations
- Understanding the implications of design choices related to change management and maintenance of alternative software stacks
- Understanding the performance issues associated to alternative DBMS
Communication skills
- Preparing database specification documents, addressing the specificity of conceptual and logical modellation
- Explaining the motivations behind specific design choices
Learning skills
- Learning how to use the tecnologies for the development of databases and their scalability
- Learning how to compare alternative projects schemese from different perspectives
- Learning to recognize design principles underlying alternative modellation development strategies
Required Prerequisites
Attendance of Lessons
Detailed Course Content
Models and Languages for Database Management
- Fundamentals of Database Management Systems (DBMS)
- Relational databases:
- Relational Model: basic concepts, integrity* constraints and keys*.
- SQL language: data definition*, data modification*, queries*, views*, transactions*.
- Advanced SQL: triggers*, procedures* and assertions
- An example of relational DMBS: MySQL.
- Database NoSQL:
- JSON*
- ACID vs BASE*
- "Scheme-less"* models
- NoSQL DB types*: key-value, document-based, column-based and graph-based
- CAP Theorem*
- Overview of NoSQL frameworks: MongoDB, Redis, Cassandra, HBase, Neo4j
- MongoDB*: Selectors, Search, Sort, Pipeline, Grouping
Design of databases
- Conceptual design: E/R model*, conceptual design strategies*, quality verification.
- Logical design: restructuring of the E / R schemes,* translation into the relational model*.
* Topics to know and understand to pass the exam.
Textbook Information
- Basi di dati - 4/ed, Modelli e linguaggi di interrogazione. Di: Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone, Casa editrice: Mc-Graw-HIll
- Teaching materials provided by the instructor