DATABASES
Learning outcomes of the course unit
Knowledge and understanding
The course is divided in two parts. The goal of the first part is to introduce Data Base Management Systems, with special regard to those based on the relational data model, and the many ways to interact with them. The second part of the course introduces the methodologies and techniques that are needed for a correct design of a relational database.
Applying knowledge and understanding
The theoretical notions are actively used for the design and implementation of relational data bases in the context of a specific DBMS (PostgreSQL). The exercises on the use of the SQL language are primarily focused on the correctness, readability and portability of queries. The exercises on data base design are focused on evaluating the adequacy of the schema to the application context, as well as on the evaluation of its robustness and flexibility.
Making judgements
The part of the course dedicated to data base design shows that the same design problem can be tackled and solved in different ways: the student should therefore critically compare the design alternatives, stressing pros and conses.
Communication skills
The exercises on the design of data bases require the ability to understand and effectively communicate the main characteristics of the specific application considered, at different levels of abstraction. The initial phases of the design, focused on requirement analysis, emphasizes communication skills in a non-specialized context. The other phases, which are closer to the implementation, will exercise the ability to effectively communicate at a more technical level.
Learning skills
The theoretical study and practical application of the basic notions of relational DBMS, besides being mandatory in the context of a Computer Science degree, are also essential to any further study on data base systems, also allowing for a better understanding of technological advances in the field.
The course is divided in two parts. The goal of the first part is to
introduce Data Base Management Systems, with special regard to those
based on the relational data model, and the many ways to interact with
them. The second part of the course introduces the methodologies and
techniques that are needed for a correct design of a relational database.
During the course, the student will also be introduced to the use of a
specific Data Base Management System.
Prerequisites
The knowledge of basic programming languages concepts is mandatory.
The knowledge of the basic concepts of operating systems and
communication networks is also helpful (even though not strictly
required).
The knowledge of basic programming languages concepts is mandatory.
The knowledge of the basic concepts of operating systems and
communication networks is also helpful (even though not strictly
required).
Course contents summary
Introduction to Data Base Management Systems.
The relational data model.
Relational algebra and relational calculus.
The SQL language.
Interfacing SQL with mainstream programming languages.
Transaction management.
Security and access right management.
Active databases.
Database design methodologies: conceptual, logical and phisical design
of the data base.
The Entity-Relationship model.
Normalization of database schemas.
The course will also introduce the student to a specific Data Base
Management System (PostgreSQL), which will be used to rediscuss, in a
practical context, the topics listed above.
Introduction to Data Base Management Systems.
The relational data model.
Relational algebra and relational calculus.
The SQL language.
Interfacing SQL with mainstream programming languages.
Transaction management.
Security and access right management.
Active databases.
Database design methodologies: conceptual, logical and phisical design
of the data base.
The Entity-Relationship model.
Normalization of database schemas.
The course will also introduce the student to a specific Data Base
Management System (PostgreSQL), which will be used to rediscuss, in a
practical context, the topics listed above. Part of the course will be
devoted to the design and implementation of an individual project (a
relational data base) that will be part of the examination.
Recommended readings
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone.
Basi di dati: modelli e linguaggi di interrogazione,
McGraw-Hill, 2009 (3rd edition).
or
J. Ullman, J. Widom.
A First Course in Database Systems (2nd Edition),
Prentice Hall, 2002.
PostgreSQL 9.1.9 Documentation
The PostgreSQL Global Development Group
Copyright 1996-2013 The PostgreSQL Global Development Group
Some lectures will be based on material that can be downloaded from the web.
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone.
Basi di dati: modelli e linguaggi di interrogazione,
McGraw-Hill, 2002.
or
J. Ullman, J. Widom.
A First Course in Database Systems (2nd Edition),
Prentice Hall, 2002.
PostgreSQL 8.4.7 Documentation
The PostgreSQL Global Development Group
Copyright 1996-2009 The PostgreSQL Global Development Group
Some lectures will be based on material that can be downloaded from the
web.
Teaching methods
Lectures, guided exercises and lab sessions
Lectures, guided exercises and lab sessions
Assessment methods and criteria
Written and oral exam.
In order to take part to the written exam, the student has to obtain a positive grade in the mid-term test. The student not taking part to the test or obtaining a negative grade will have to complete an individual project (a relational database) that has to be approved by the teacher before the written exam.
Written and oral exam.
During the course the students will have to complete an individual
project.
The completed project will have to be approved by the teacher before the
student takes part to the written exam.