10906 - Databases

Course Unit Page

Academic Year 2018/2019

Learning outcomes

Fundamentals of the relational database systems technology; methodologies and tools for database design and implementation.

Course contents

- Data Models : an outline of hierarchical and network data models. The relational model; the relational algebra: basic and derived operators, implementation of the operators. Normal forms.

- The SQL language : the main statements.

- Notes on structural characteristics, parameters and reliability of external storage devices.

- Data Structures in secondary memory and related management algorithms (sequential and direct access organizations, Hash files, B-tree, B*-tree and B+tree, notes on multi-dimensional structures and indexes).

- Main components of a RDBMS: Query Optimizer, Transaction Manager, Scheduler, Recovery Manager, Cache Manager, Storage Manager, Access Methods.

- Description of the main client-server RDBMS architectures.

- Overview of relational operators implementation. Evaluation of the main join algorithms. A simple model for query cost estimation.

- Relational database design: the Entity-Relationship model, introduction to requirement analysis and to conceptual database design. Logical database design. Normalization techniques. Outline of physical database design.

- Database applications : overview of data access modalities (examples in .NET C# and Java).

- Brief introduction to NoSQL Systems



Lecture slides are available at http://bias.csr.unibo.it/maio/

D. Maio, S. Rizzi, A. Franco. Esercizi di Progettazione di Basi di Dati. Esculapio, 2005.

Further readings

P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone. Basi di Dati, McGraw-Hill Italia, 2018.

P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone. Basi di Dati: modelli e linguaggi di interrogazione, McGraw-Hill Italia, 2013.

P. Atzeni, S. Ceri, P. Fraternaii, S. Paraboschi, R. Torlone. Basi di Dati. Architetture e linee di evoluzione; McGraw-Hill Italia, 2007.

P. Ciaccia, D. Maio. Lezioni di Basi di Dati. Esculapio, 2002.

Teaching methods

The lectures will focus on database design and implementation. The course is integrated with guided class and laboratory exercises, where the theoretical aspects are put into practice.

Assessment methods

The examination consists of three parts:

1.  A laboratory project concerning either the design and implementation of a database application or the development of a software module related to one of the lecture topics. The accomplishment of the project is necessary qualification for  the examination.

2. Written test with exercises and questions about the course topics. Examples are available at the course web site.

3. An optional oral examination (upon successful completion of the written test) consisting of questions related to the course program.


Note. The retention period of the project document and written exam test is 6 months starting from the official recording of the exam grade.

Teaching tools

Several RDBMSs are available in the laboratory (SQL Server, Access, Oracle. ...); SQL Server is used for the laboratory exercises. Moreover some database design tools are available. Microsoft Visual Studio and C# are adopted for db application development.

Links to further information


Office hours

See the website of Dario Maio

See the website of Annalisa Franco