Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources

DS410

Data Storages

Barcelona Campus
Apr 27, 2026 - May 15, 2026
As a result of the course, students will develop the ability to design, evaluate, and implement modern data storage architectures based on sound technical and architectural reasoning.
Barcelona Campus
Apr 27, 2026 - May 15, 2026
Mikhail Nikiforov

Faculty

Mikhail Nikiforov

Senior Software Engineer at Oracle NetSuite, Barcelona

Course length

3 weeks

Duration

3 hours
per day

Total hours

45 hours

Credits

6 ECTS

Language

English

Course type

Offline

Fee for single course

€2999

Fee for degree students

€1999

Skills you’ll learn

SQLDatabase EnginesQuery OptimizationLandscape of Modern DatabasesDesign a Multi-Database SystemBuilding a Big Data Analytical Infrastructure
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

Overview

Modern software platforms — from industry leaders such as Google, Meta, and OpenAI to early-stage startups — depend fundamentally on data storage. This course is grounded in a core principle: data storage is not merely a technology, but a solution to a specific engineering problem. Understanding which problem is being solved is what drives every sound architectural decision.

Students will gain comprehensive exposure to the full spectrum of contemporary data storage paradigms, including relational databases (RDBMS), key-value stores, NoSQL, document stores, column-oriented databases, OLAP systems, vector databases, and embedded and serverless solutions. For each category, the course examines practical trade-offs, strengths, and limitations in real-world software contexts.

A central focus of the course is developing the judgement to evaluate data storage requirements within a given software system and to select the most appropriate solution — or combination of solutions — aligned with both business objectives and architectural constraints, such as monolithic or microservice designs.

Beyond technical knowledge, students will build the conceptual models necessary to reason about data storage independently: as hands-on engineers, as technical managers, or as practitioners working alongside AI coding assistants such as ChatGPT. The course also addresses the rapidly growing domain of AI-native systems, covering how to select and configure data storage for AI Agents — providing them with persistence, contextual memory, and the capacity to evolve.

Learning highlights

  • Understand core database principles, including the internal architecture of database engines, transaction management, indexing, and query optimisation strategies across different systems.
  • Apply SQL effectively, with a practical understanding of how queries are executed and optimised in relational and non-relational environments.
  • Differentiate among and evaluate the major categories of modern databases, including relational, document, columnar, in-memory, and other NoSQL systems, and understand their strengths, limitations, and appropriate use cases.
  • Analyse architectural tradeoffs, recognising the performance, scalability, consistency, and complexity limitations inherent in each database paradigm.
  • Design polyglot persistence architectures, combining multiple database technologies within a single application according to functional and performance requirements.
  • Implement and tune data systems, including schema design, data ingestion, performance optimisation, and workload adaptation.
  • Build and operate a basic big data analytical infrastructure, gaining hands-on experience with scalable, production-oriented open-source technologies.

Course outline

15 classes

Dive into the details of the course and get a sense of what each class will cover.
Monday
Tuesday
Wednesday
Thursday
Friday
Monday
1

Session 1

Introduction. Data Storage in General. CRUD. Relational model. SQLite.

Tuesday
2

Session 2

Data Modeling. ER Modelling. ACID: Atomicity, Durability, Isolation, and Consistency.

Wednesday
3

Session 3

Designing Tables. Normalisation. 1NF, 2NF, 3NF, … 6NF. ORM tools to automate DB interaction.

Thursday
4

Session 4

Classical RBMS - PostgreSQL, Oracle, Microsoft SQL, MySQL. Transaction. Levels of Transaction Isolation.

Friday
5

Session 5

Isolation anomalies. Database Indexes.

Monday
6

Session 6

Transactions. MVCC. Analytical SQL - GROUP BY, Window Functions.

SQL Quiz.

Tuesday
7

Session 7

Document Storage. MongoDB, Data Lake. Vector database.

Wednesday
8

Session 8

Key-value Storage. Sharding. Redis. Caching.

Thursday
9

Session 9

Data Bus. Kafka. Event Driven software Architecture.

Friday
10

Session 10

OLAP Databases. Databases for Analytics. Columnar Storage. Data Lakehouse: Iceberg Snowflake, BigQuery.

Monday
11

Session 11

Combining Databases. Polyglot Persistence.

Tuesday
12

Session 12

CAP Theorem. Distributed Systems from a Data Storage Point-of-view.

Wednesday
13

Session 13

Data Processing architecture. Data Modelling for Analytics. Data Vault, Inmon, Kimball, Anchor Modeling.

Thursday
14

Session 14

Databases of the future. Serverless concept. Headless concept. DuckDB.

Friday
15

Session 15

Final Quiz

Methodology

Classes will consist of lectures and discussions on the assigned topics. During each class, students will complete a practical task involving one of at least five database types, including relational (RDBMS), embedded, serverless, key–value, document-oriented, and OLAP systems. Throughout the course, students will work in groups on four projects, each focused on exploring a specific aspect of data storage.

Grading

The final grade will be composed of the following criteria:
20% - Final quiz
10% - SQL quiz
55% - 4 Practical projects
15% - Participation
There will be four projects, which can be done in small groups or solo, a SQL quiz, and a final quiz at the end of the course.
Mikhail Nikiforov

Faculty

Mikhail Nikiforov

Senior Software Engineer at Oracle NetSuite, Barcelona

Mikhail is an expert software and data engineer with more than 25 years of experience. He has been working as a senior software engineer and a team lead at Oracle NetSuite. Currently working as a freelancer in startups and non-government organisations.

He has extensive experience managing medical databases around the world, from Siberia to Guatemala and from Sweden to Spain.

See full profile

Apply for this course

Snap up your chance to enroll before all spaces fill up.

Data Storages

by Mikhail Nikiforov

Total hours

45 Hours

Dates

Apr 27 - May 15, 2026

Fee for single course

€2999

Fee for degree students

€1999

How to secure your spot

Complete the form below to kickstart your application

Schedule your Harbour.Space interview

If successful, get ready to join us on campus

FAQ

Will I receive a certificate after completion?

Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.

Do I need a visa?

This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.

Can I get a discount?

Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.