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 2023/2024. 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 learning objective of this course is to introduce students to the field of databases (DB). It is a compulsory course in the BSc of Techniques for Software Application Development.

Databases are the most common mechanism used by organizations to store large data volumes. DB are managed by a highly specialized and complex software called the DataBase Management System (DBMS). The information derived from the data stored into the DB is a strategic asset in all organizations, independently of their business focus or interest. Consequently, the knowledge and competencies acquired in this course 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 and the DBMS that support them.


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 strategic asset in any organization or company. Therefore, the knowledge and competencies 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 Introduction to databases, It is expected that all students had previously passed the Object-Oriented Programming course.


The learning objectives of the course are those indicated below:

  • To be able to understand, the most common basic concepts of the DB field (attribute, key, entity, class, file, database, amongst others).
  • To explain the objectives, the schema architecture, and the DBMS functional architecture.
  • To propose DB queries using the most appropriate relational algebra operations.
  • To create relational DB using standard SQL.
  • To query and modify (insert, delete and update) a DB using standard SQL.
  • To mplement triggers and stored procedures in a relational DB.
  • To identify the problems derived from the concurrent access to a DB and solve them.
  • To apply JDBC to develop software applications that efficiently access a relational DB.
  • To 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 specific 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 propose six challenges for achieving the learning objectives and competencies of the course.

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

Topic 1 The Data: Introductory Concepts

This module explores the essential elements of computer representations and their correspondence to the real world and the world of abstractions (or conceptualizations). It also introduces the most common topics and fundamental concepts about data and information used across the course.

Topic 2 Introduction to Databases

This module first presents the Database Management Systems (DBMS) objectives. Following this, it provides an overview of these systems (architecture, operation, and environment).

Topic 3 Relational Model and Relational Algebra

This module explains the relational data model and relational algebra. It is an essential module to acquire a good SQL understanding level.

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.

This module presents the most basic concepts associated with standard SQL. To begin with, the main data definition statements are provided (creation of tables and views). Following this, the module explains the basic data manipulation statements (SELECT, INSERT, DELETE, and UPDATE of tables and views). Finally, the sentences of granting and revoking privileges on the data are introduced.

Challenge 3: Stored procedures and triggers - why are they needed?

Topic 5 The SQL Language II

The module expands our knowledge of standard SQL. Specifically, it introduces stored procedures and triggers.

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

Topic 6 Transaction Management

This module explains the possible anomalies that arise from the simultaneous access of several users and/or programs to the same DB and the fact of ensuring the availability of the DB in the face of failures or disasters. To do this, DBMS uses the concept of transactions and a series of mechanisms to manage these transactions.

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

Topic 7 Programming with SQL

This module introduces various techniques that allow programs to access databases. These techniques are frequently named embedded SQL or programming with SQL. From the range of programming languages and techniques, the module focuses on how DB can be accessed from Java programs using JDBC.

Challenge 6: One size fits all? Beyond relational databases

Topic 8 Beyond Relational Model - Current Framework and New Trends

This module explains the most critical issues that the relational model has in specific application environments. Therefore, several alternatives to the relational model have been proposed. This module shows some of these alternatives when to use them, and the DBMS that supports them.

Topic 9 NoSQL databases

The study of non-traditional databases is complemented with videos dedicated to NoSQL DB due to its adoption in some application environments. This topic is not assessed in the course.


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


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 the SQL language, we will use, on the one hand, the PostgreSQL DBMS and, on the other, Java and Eclipse to be able to develop Java programs that access DB through JDBC.

All the software can be downloaded from the corresponding website. Installation guides are also provided.

Finally, the course has complementary learning resources, including  study guides, case studies, collections of solved exercises, and assessment activities and exams from previous semesters.


Assessment at the UOC is, in general, online, structured around the continuous assessment activities, the final assessment tests and exams, and the programme's final project.

Assessment activities and tests can be written texts and/or video recordings, use random questions, and synchronous or asynchronous oral tests, etc., as decided by each teaching team. The final project marks the end of the learning process and consists of an original and tutored piece of work to demonstrate that students have acquired the competencies worked on during the programme.

To verify students' identity and authorship in the assessment tests, the UOC reserves the right to use identity recognition and plagiarism detection systems. For these purposes, the UOC may make video recordings or use supervision methods or techniques while students carry out any of their academic activities.

The UOC may also require students to use electronic devices (microphones, webcams or other tools) or specific software during assessments. It is the student's responsibility to ensure that these devices work properly.

The assessment process is based on students' individual efforts, and the assumption that the student is the author of the work submitted for academic activities and that this work is original. The UOC's website on academic integrity and plagiarism has more information on this.

Submitting work that is not one's own or not original for assessment tests; copying or plagiarism; impersonation; accepting or obtaining any assignments, whether for compensation or otherwise; collaboration, cover-up or encouragement to copy; and using materials, software or devices not authorized in the course plan or instructions for the activity, including artificial intelligence and machine translation, among others, are examples of misconduct in assessments that may have serious academic and disciplinary consequences.

If students are found to be engaging in any such misconduct, they may receive a Fail (D/0) for the graded activities in the course plan (including final tests) or for the final grade for the course. This could be because they have used unauthorized materials, software or devices (such as artificial intelligence when it is not permitted, social media or internet search engines) during the tests; copied fragments of text from an external source (the internet, notes, books, articles, other students' work or tests, etc.) without the corresponding citation; purchased or sold assignments, or undertaken any other form of misconduct.

Likewise and in accordance with the UOC's academic regulations, misconduct during assessment may also be grounds for disciplinary proceedings and, where appropriate, the corresponding disciplinary measures, as established in the regulations governing the UOC community (Normativa de convivència).

In its assessment process, the UOC reserves the right to:

  • Ask students to provide proof of their identity as established in the UOC's academic regulations.
  • Ask students to prove the authorship of their work throughout the assessment process, in both continuous and final assessments, through a synchronous oral interview, of which a video recording or any other type of recording established by the UOC may be made. These methods seek to ensure verification of the student's identity, and their knowledge and competencies. If it is not possible to ensure the student's authorship, they may receive a D grade in the case of continuous assessment or a Fail grade in the case of the final assessment.

Artificial intelligence in assessments

The UOC understands the value and potential of artificial intelligence (AI) in education, but it also understands the risks involved if it is not used ethically, critically and responsibly. So, in each assessment activity, students will be told which AI tools and resources can be used and under what conditions. In turn, students must agree to follow the guidelines set by the UOC when it comes to completing the assessment activities and citing the tools used. Specifically, they must identify any texts or images generated by AI systems and they must not present them as their own work.

In terms of using AI, or not, to complete an activity, the instructions for assessment activities indicate the restrictions on the use of these tools. Bear in mind that using them inappropriately, such as using them in activities where they are not allowed or not citing them in activities where they are, may be considered misconduct. If in doubt, we recommend getting in touch with the course instructor and asking them before you submit your work.


In order to pass the course, you must pass the continuous assessment and take an exam.

Your final mark for the course will be calculated as follows:

  • If you pass the continuous assessment and get the required minimum mark in the exam, your final mark will be based on the weightings specified in the course plan.
  • If you pass the continuous assessment but don't get the required minimum mark in the exam, your final mark will be your numerical mark from the exam.
  • If you pass the continuous assessment and don't sit the exam, you'll get a final mark of Fail (3).
  • If you don't pass the continuous assessment, your final mark will be the mark you received in the continuous assessment.
  • If you don't take part in the continuous assessment, you'll receive a final mark of Absent.