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

CS402BKK

Basics of Databases

Bangkok Campus
Sep 09, 2024 - Sep 27, 2024
Experimenting with relational and other types of data storage, students will gain hand-on experience in organizing the data storage layer of software applications.
Bangkok Campus
Sep 09, 2024 - Sep 27, 2024
Serhii Denysov

Faculty

Serhii Denysov

Senior algorithms R&D at drawer.ai, Programming and math university teacher.

Course length

3 weeks

Duration

3 hours
per day

Total hours

45 hours

Credits

4 ECTS

Language

English

Course type

Offline

Fee for single course

€1500

Fee for degree students

€750

Skills you’ll learn

Data ManagementSQLData StoringBasic Application BuildingRelational and NoSQL Data Storage
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

Overview

With the course, students get basic experience and structured understanding about data storage part of modern software. The course covers main aspects of classic relational databases together with selected NoSQL ones, so students will be able to decide where and how to use both and implement a data handling solution as a combination of several approaches.

With relational databases students will train to build effective SQL queries for data retrieval, data modification and database schema manipulation. Basic relational database optimization and query profiling approaches will also be covered. Basics of selected NoSQL databases will be covered, both theoretically and in practice. Finally, to train the skill of building data storage architecture for an application, students will combine both types of databases in the single project to implement different data-dependent parts of the application in a more efficient way.

Also students will practice using a containerized approach to organizing applications (docker based) and learn the basics of using an ORM.

Learning highlights

  • Learn usage of relational and NoSQL database types, with some insights of their internal organization.
  • Study and practice SQL, applying it effectively to both OLTP and analytical (OLAP) tasks.
  • Train to use acquired knowledge to create real-world applications combining different types of data storage engines.

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

Data storage and manipulation in software applications. History, problems and approaches. Relational database model. Notion of key. Designing simple databases. Tools. SQLite.

Tuesday
2

Session 2

Introduction to SQL. SELECT, WHERE, GROUP BY, aggregations, HAVING, ORDER BY. Introduction to JOINs. Practice.

Wednesday
3

Session 3

Modeling data. Normalization. Pros and cons. DDL part of SQL. Data types, constraints, schemas. PostgreSQL database engine. Practice.

Thursday
4

Session 4

SQL continued. Subqueries, window functions, advanced JOINs, date manipulation. Practice.

Friday
5

Session 5

Implementing logic in the database - stored procedures and triggers. Views. Practice.

Monday
6

Session 6

ACID principles. Transactions. Isolation levels. Deadlocks. Performance problems.

Tuesday
7

Session 7

Improving and analyzing select performance. Indices. Usage scenarios, pros and cons. Optimizing for OLAP or OLTP. Practice.

Wednesday
8

Session 8

Analyzing query performance. EXPLAIN. Practice.

Mid-term quiz – relational databases.

Thursday
9

Session 9

NoSQL databases, key-value stores. Redis, Memcached. Achieving performance boost with key-value stores. Horizontal scaling with redis. Using docker to containerize database engines for application. Practice with redis.

Friday
10

Session 10

Document-oriented databases. MongoDB. Manipulating and quering data. Practice with MongoDB.

Final projects inception.

Monday
11

Session 11

Combining different data storage engines in software projects. OLTP vs OLAP tasks and solutions. Practice.

Tuesday
12

Session 12

Processing JSON with PostgreSQL. Horizontal scaling with relational databases using sharding. Practice.

Wednesday
13

Session 13

Other effective approaches to data handling. Column storages. In-process databases (DuckDB). Practice with DuckDB.

Thursday
14

Session 14

Specialized solutions (ElasticSearch). Vector databases.

Friday
15

Session 15

Final project presentation.

Prerequisites

Proficiency using computer and software (be ready to install software and use command line tools).

Be confident with programming (python preferred).

Methodology

Lectures and master classes

Practice sessions

Homeworks

Projects

Grading

The final grade will be composed of the following criteria:
30% - Homework
30% - Final project
20% - Mid-term quiz
20% - Participation
Serhii Denysov

Faculty

Serhii Denysov

Senior algorithms R&D at drawer.ai, Programming and math university teacher.

Serhii has worked in the software engineering industry in different positions for many years. Roles included software developer, system architect, IT consultant, project manager and CTO. He is also an experienced educator and is always glad to help students learn how to start having fun with programming and math and become top-level software developers or R&D engineers.

He has taken part in a long row of business automation projects for different businesses, with many small and several big projects, such as one of the biggest outdoor advertising agency in Ukraine and a country-wide software cash registers company, processing millions of transactions per day. Now he is a senior algorithms R&D in a highly dynamic startup drawer.ai.

See full profile

Apply for this course

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

Basics of Databases

by Serhii Denysov

Total hours

45 Hours

Dates

Sep 09 - Sep 27, 2024

Fee for single course

€1500

Fee for degree students

€750

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.