The course covers the fundamental concepts of database systems management and design. Topics include: data models (ER and relational); query languages (SQL);
implementation techniques of database management systems (index structures and query processing); noSQL databases.
In particular, the module addresses relational databases and implementation techniques based on the SQL language. The NO-SQL approach is introduced by pointing out relevant differences in data modelling.
The learning objectives are:
a) To understand and use the main technologies for database management.
b) To design, starting from user requirements, a relational database (and not), from a conceptual, logical and physical perspective.
c) To use SQL language for performing efficient queries.
The module deals with the methodological tools for the design of modern web-based information systems (Web Information Systems). In particular the module covers concepts for designing and developing back-end (server-side programming) and front-end (client-side programming), of a web application. Particular emphasis will be given to the development of "responsive" front-ends according to user-experience optimization criteria. The module covers also advanced design and implementation techniques based on the Model-View-Controller (MVC) architectural pattern, and web information retrieval techniques such as scraping and crawling.
Lectures, hands-on exercises, laboratory and seminars.
Lectures, hands-on exercises, laboratory and seminars.
1) Models and Languages for Database Management
- Fundamentals of Database Management Systems (DBMS)
- Relational Model: basic concepts, integrity constraints and keys.
- SQL language: data definition, data modification, queries, views, transactions. - Advanced SQL: triggers and procedures
- An example of relational DMBS: MySQL.
- NO-SQL database: MongoDB
2) 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.
- Physical design: storage structures for tables and indices. Hashing techniques. Query execution and optimization
- Database normalization: normal forms (Boyce-Codd, third normal form)
- Data warehousing: multidimensional data models, data mart, ETL procedures, OLAP operators
Foundations of web programming and server-side development
Web information Systems (WIS) design and client-side application development
* Minimum required knowledge for passing the exam.
1. 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
2. High Performance MySQL: Optimization, Backups, and Replication (2011). Di Baron Schwartz e altri, Casa editrice: O'Reilly
3. Programmazione Web lato server (2011). Di: Della Mea, Di Gaspero, Scagnetto, Casa editrice: APOGEO
4. Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 (2014). Di: Robin Nixon, Casa editrice: O'Reilly