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.
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.
Security and access right management.
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.
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone.
Basi di dati: modelli e linguaggi di interrogazione,
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.
Lectures, guided exercises and lab sessions.
Assessment methods and criteria
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.