Introduction to databases Code:  22.621    :  6
View general information   Description   The subject within the syllabus as a whole   Professional fields to which it applies   Prior knowledge   Information prior to enrolment   Learning objectives and results   Content   View the UOC learning resources used in the subject   Additional information on support tools and learning resources   Guidelines on assessment at the UOC   View the assessment model  
This is the course plan for the second semester of the academic year 2022/2023. To check whether the course is being run this semester, go to the Virtual Campus section More UOC / The University / Programmes of study section on Campus. Once teaching starts, you'll be able to find it in the classroom. The course plan may be subject to change.

The main objective of this course is to introduce students to the field of databases (DB). It is a compulsory course in BSc of Techniques for Software Application Development.

Databases are the most common mechanism used by organizations to store large volumes of data. DB are managed by a highly specialized and complex software called the Database Management System (DBMS). The information derived from the data stored in the DB is a crucial asset in all organizations, independently of the business focus or interest. Consequently, this course's knowledge and competencies will apply in most professional environments.

Data stored in a DB must adhere to some data model that allows their representation in a computer. This data model must first define the DB's structure and the integrity constraints that guarantee that the DB is consistent. Second, the data model also has to provide operations that allow querying and updating the DB. Although there are different data models, we will focus on the relational data model because of its relevance. In addition to studying its underlying concepts, we will also focus on the creation and manipulation of relational DB through relational algebra and Structured Query Language (SQL). Relational algebra is the language used internally by relational DBMS. Moreover, relational algebra also facilitates the understanding of complex SQL statements.

SQL is the standard language that allows us to interact with a relational DB. We will first study interactive SQL. Secondly, we will learn a technique (JDBC) to incorporate SQL code within application programs developed in the Java programming language.
In addition, we will also study the problems arising from users' concurrent access to the same DB and how to deal with them. Finally, the course introduces different alternatives to the relational data model.


All the aspects related to the DB's design, definition, manipulation, and management are part of the software's development, operation, and maintenance life cycle.

This course has continuity with the Database design course in the BSc of Techniques for Software Application Development.


As previously described, data are a valuable and essential asset in any organization or company. Therefore, the knowledge acquired in this course will be applicable or required in most tech sector positions.


It is recommended to have experience in the object-oriented programming paradigm. Therefore, it is expected that all students had previously passed the Object-Oriented Programming course.


Before enrolling in the Introduction to databases course, it is expected that all students had previously passed the Object-Oriented Programming course.


The objectives of the course are those indicated below:

  • Be able to understand, in the context of the course, the most common basic concepts of the DB field (attribute, key, entity, class, file, database, amongst others).
  • Explain the objectives, the schema architecture, and the DBMS functional architecture.
  • Propose DB queries using the most appropriate relational algebra operations.
  • Create relational DB using standard SQL.
  • Be able to query and modify (insert, delete and update) a DB using standard SQL.
  • Implement triggers and stored procedures in a relational DB.
  • Identify the problems derived from the concurrent access to a DB and solve them.
  • Apply JDBC to develop software applications that efficiently access a DB.
  • Enumerate different non-relational DBMS and be able to explain in which cases it is convenient to use them.

These objectives are related to the following competencies attached to the BSc of Techniques for Software Application Development:

  • Apply specific data processing, storage, and administration techniques.
  • Propose and evaluate different technological alternatives for solving a specific software development problem.


We will propose six challenges for learning the different topics and acquiring the competencies attached to the course.

Challenge 1: Relational databases: an unprecedented success story in computer engineering

Topic 1 The Data: Introductory Concepts

In this didactic unit, we will explore the essential elements of the world of computer representations and their correspondence to the real world and the world of abstractions (or conceptualizations). We will introduce the most common topics and fundamental concepts about data and information, which we will use throughout the rest of the course.

Topic 2 Introduction to Databases

We will begin this didactic unit by looking at Database Management Systems (DBMS) objectives. Following this, we will provide an overview of these systems (architecture, operation, and environment).

Topic 3 Relational Model and Relational Algebra

In this didactic unit, we will learn the relational data model and relational algebra.

Challenge 2: Creating and working with a relational database

Topic 4 The SQL Language I

SQL is the standard ANSI/ISO language for relational database definition, manipulation, and control. It was conceived as a declarative language, i.e., when we use SQL, we indicate what we want to obtain, but not how it should be obtained.
Challenge 3: Stored procedures and triggers - why are they needed?

Topic 5 The SQL Language II

In this didactic unit, we will expand our knowledge of standard SQL. More specifically, we will look at stored procedures and triggers. These two components and other components, such as tables and views, are organized into a database schema.

Challenge 4: The roadway is a shared resource and a database as well

Topic 6 Transaction Management

In this didactic unit, we are interested in possible anomalies arising from the simultaneous access of various users to the same database and in ensuring the database availability in case of failures or disasters, such as a breakdown in external storage devices, a power outage, or a fire. We cannot forget that the organization's data are one of its main assets and an indispensable resource for developing its activities.

Challenge 5: Building river bridges: accessing a relational database from application programs

Topic 7 Programming with SQL

In this didactic unit, we will explore the different techniques we can use from our application programs to access databases. These techniques are frequently named embedded SQL or programming with SQL.
We will leverage to install Eclipse and the JDBC driver.

Challenge 6: One size fits all? Beyond relational databases

Topic 8 Beyond Relational Model - Current Framework and New Trends

In this didactic unit, we will obtain an overview of the most critical problems of the relational model and show other types of databases.

Topic 9 NoSQL databases

To complement the study of this didactic unit devoted to non-traditional databases, we provide some videos concerning to NoSQL movement. These materials are not assessable.


Databases NoSQL - Data models Audiovisual
Databases NoSQL - Representation of data models orientated to graphs Audiovisual
Databases NoSQL - Introduction Audiovisual
Databases NoSQL - Representation of data models in aggregation models Audiovisual
Databases NoSQL - Features Audiovisual
UBD/BD Instalation PostgreSQL (Linux-Ubuntu) Audiovisual
UBD/BD Eclipse and driver JDBC (Windows) Audiovisual
UBD/BD Instalation PostgreSQL (Windows) Audiovisual
UBD/BD Eclipse and driver JDBC (Linux-Ubuntu) Audiovisual
How to install Eclipse on Windows PDF
How to install PostgreSQL on Linux (Ubuntu) PDF
How to install Eclipse on Linux (Ubuntu) PDF
How to install PostgreSQL on Windows PDF


The previously described topics are explained in textual learning resources and are the fundamental course resources. NoSQL is covered through videos.

Additionally, to achieve the competencies related to SQL language, we will use PostgreSQL and the JDBC driver provided by PostgreSQL. We will use Eclipse to develop the application programs that access a DB.

The software of the course can be downloaded from the corresponding website. Additional resources that explain how to install the software tools will be provided.

Finally, students will find additional supplementary learning resources, such as solved exercises or access to courses available at Datacamp that allow improving SQL skills (performing such courses are optional).


The assessment process is based on the student's personal work and presupposes authenticity of authorship and originality of the exercises completed.

Lack of authenticity of authorship or originality of assessment tests, copying or plagiarism, the fraudulent attempt to obtain a better academic result, collusion to copy or concealing or abetting copying, use of unauthorized material or devices during assessment, inter alia, are offences that may lead to serious academic or other sanctions.

Firstly, you will fail the course (D/0) if you commit any of these offences when completing activities defined as assessable in the course plan, including the final tests. Offences considered to be misconduct include, among others, the use of unauthorized material or devices during the tests, such as social media or internet search engines, or the copying of text from external sources (internet, class notes, books, articles, other students' essays or tests, etc.) without including the corresponding reference.

And secondly, the UOC's academic regulations state that any misconduct during assessment, in addition to leading to the student failing the course, may also lead to disciplinary procedures and sanctions.

The UOC reserves the right to request that students identify themselves and/or provide evidence of the authorship of their work, throughout the assessment process, and by the means the UOC specifies (synchronous or asynchronous). For this purpose, the UOC may require students to use a microphone, webcam or other devices during the assessment process, and to make sure that they are working correctly.

The checking of students' knowledge to verify authorship of their work will under no circumstances constitute a second assessment.


This course can only be passed by taking a final exam (EX), whose mark is combined with the final mark of the compulsory practical (Pr). If the final practical mark is different from N (absent), the course mark will be different from N (absent). The continuous assessment mark (CA) complements the combined mark of the final exam (EX) and the practical (Pr). The formula for accrediting the course is as follows: (EX + Pr) + CA.