Academic Year 2016/2017 - 2° Year
Teaching Staff: Alfredo PULVIRENTI
Credit Value: 9
Scientific field: INF/01 - Informatics
Taught classes: 72 hours
Term / Semester:

Learning Objectives

General summary:

The course aims to give the knowledge and basic skills for the representation, organization, and querying of databases. The course main refers to the relational data model which is widely adopted in commercial and open-source systems. The course thoroughly introduces the relational algebra, the SQL query language, the Entity-Relation model, the normalization of databases: Boyce-Codd and 3NF, transactions and recovery of databases, XML (along with xpath and xquery), the basis of NoSQL data. MySQL in connection to the host language PHP. As NoSQL MongoDB and CouchDB systems will be tested.


General teaching training objectives in terms of expected learning outcomes.


Knowledge and understanding: The course aims to give the knowledge and basic skills for the representation, organization, query of databases.

Applying knowledge and understanding: the student will acquire the skills needed to design conceptually and logically a database. You will be able to implement a relational database using SQL language and interface with suitable host languages. Acquire as well as concepts to achieve non-relational databases such as XML and NoSQL. In this respect a part of the course will consist of practical lessons which will be presented MySQL, CouchDB, MongoDB and the PHP language, JavaScript and Ajax.

Making judgments: Through concrete examples and case studies, the student will be able to independently develop solutions to specific problems related to databases.

Communication skills: the student will acquire the necessary communication skills and expressive appropriateness in the use of technical language in the general area of ​​databases.

Learning skills: The course aims, as the goal, to provide students with the necessary theoretical and practical methods to deal independently and solve new problems that may arise during a work activity. For this purpose, different topics will be covered in class by involving students in the search for possible solutions to real problems such as query optimization.

Detailed Course Content

Introduction to databases: data models, general information about DBMS.

The data model: The relational model. Relationships, attributes, instances of relationship, tuples. Integrity constraints, the key concept. relational algebra: basic and derived operators.

The SQL (Structured Query Language). The data definition language: definition of tables, domains, indexes. Specification of simple integrity constraints. The query language: the join-selection-projection operators, aggregates operators, grouping operator. Nested queries and related, set operators. Recursive queries. The data manipulation language: insertion, deletion and modification of tuples. Definition of views, generic integrity constraints. Controlling access to a data base. Active databases.

Design of databases: Conceptual design; logic design; physical design

Normalization of data bases: Abnormalities. Functional dependencies. Decompositions of diagrams: which store records that preserve the functional dependencies. Normal forms: Boyce-Codd and 3NF.

Basics of XML data

Introduction to NoSQL database.

Systems: MySQL (php / javaScript / Ajax interfaces). CouchDB, MongoDB.

Textbook Information


  • Atzeni,Ceri,Paraboschi, Fraternali, Torlone, Basi di Dati, McGraw-Hill.
  • Albano-Ghelli-Orsini, Fondamenti di basi di dati, Zanichelli.

Other suggested books:

  • Garcia-Molina, Ullman, Widow Database Systems: The Complete Book, Prentice Hall.