To provide the basis for the modeling, implementation, analysis and manipulation of relational databases.

  • To know the entity-relationship model and the relational data model, as well as the foundations of the object-relational model 
  • Relational algebra as the formal language of relational data base querying and manipulation 
  • Foundations of the SQL language (both as a definition and as a manipulation language)
  • Normalization of data bases using functional and multi-valued dependencies
  • To model a medium sized real problem first using Entity-Relationship Diagrams and then a relational database (the resulting data base should have 10 to 20 tables)
  • To create a database in SQL for the medium-sized problem, including implementation of the basic mechanisms for guaranteeing referential integrity
  • To implement a simple interface for manipulation of the database
  • To be familiar writing complex SQL queries
  • Capability of doing team work in collaboration
  • Problem modeling capabilities
  • Write an analysis report, design and implement a solution
  • Manage time and deadlines

General characterization





Responsible teacher

Carlos Augusto Isaac Piló Viegas Damásio, Jorg Matthias Knorr


Weekly - 5

Total - 44

Teaching language



Available soon


Recommended book


  • After each class, the slides will be made available online in CLIP.

Complemetary reading material

  • A Guide to the SQL Standard (4th Ed)
    C. J. Date and Hugh Darwen
  • The theory of Relational Databases
    David Maier
    Computer Science Press

Teaching method

The lectures are supported in slides with substantial examples. The lab sessions have guides and work assignments to be done in classes and as homework. The lectures'''''''' scheduling include always time to anlyse and discuss previous midterm problems. The students use the latest version of Oracle (18c) and APEX, and have access to a server for use in the laboratories as well as outside FCT facilities by VPN connection.

Assessment is composed of two tests (or exam) and a team project,worth 60% and 40% of the final grade, respectively. It is necessary to obtain 9.5 out of 20 in the theoretical component to be approved. The project has two phases. First, the topic and model of the database to be implemented are proposed, and second, the final delivery with a written report and the code are to be submited. The project is mostly developed outside classes, justifying the 6 ECTS of this unit. The project grade is individual and results from discussion with the team.

Evaluation method

General rules

The evaluation consists of a two components: a theoretical, and a project. Both components are evaluated on a scale of 0-20, and the theoretical component has a 60% weight while the project has the reamining 40%.

For passing in the course, a student needs to obtain a result equal or above 9,5 in the theoretical component and the final result.


The theoretical part can be obtained by:

    • two written tests (2 hours for the first test, and 1 hour for the second), closed book
    • one written exam (3 hours), closed book
The evaluations are planned to take place presentially. Otherwise, we will resort to the online evaluation mechanisms authorized at that time. In the case of online evaluation, the structure of tests can differ from previous years.

The final grade of the theoretical component can be obtained as the average of the two tests, the first test contributing with 60% and the second with 40% to the average of the component, rounded to one decimal place, or the grade of exam, rounded to one decimal place.

Students may be called for an oral examination, that can substitute partially, or fully, the theoretical component.


 The project is realized in groups to be submitted in two phases. It is to be done mainly outside the lab hours (which are to be used for consultation with the teaching assistants).

Even though the project is done in groups, the grade is individual.

Detailed information about the project, delivery dates and penalties for delays will be available in Documentação de Apoio -> Outros (projetoBD.pdf).

Subject matter

  • Introduction to Database Management Systems
  • Data models
    • Entity-Relationship model
    • Relational model
  • Relational databases normalization
    • Functional and multi-valued dependencies
    • Normal forms: 3rd, 4th and Boyce-Cood
  • Database manipulation languages
    • Relational Algebra
    • SQL query and manipulation language
    • Other languages
  • Database integrity and security
    • Referential integrity
    • Assertions and triggers