CS410BKK

Faculty
Nikolay Golov
CPO of Tengri Data Platform
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Any modern application, mobile, web or an online service, should be able to store and retrieve data. This task produces a lot of tools, theories andpractices with a single responsibility: data storage.
This course examines the basics of modern database technologies and its use in data-intensive applications. A particular focus on how to choose the right database technology according to tradeoffs between performance, ease of use, data integrity, as well as other considerations will be learned. Hands-on lessons are going to be taught using SQLite, PostgreSQL, MongoDB, Redis and Snowflake databases.
The course starts with a summary of how data storing works for an application. We proceed with a list of essential data storing tool requirements, such as: ACID, transactions, data access languages (SQL). Afterwards, we’ll study classical relational databases (Oracle, MS SQL, PostgreSQL, MySQL). Later, we’ll describe how this century's technological advancements gave birth to a set of non-classical databases, such as: in-memory storage, document storage, columnar storage, etc. The bulk of the remaining course focuses on the tradeoffs to be considered during technology selection and database design. We will emphasize the difference between OLAP (analytical) and OLTP tasks. We’ll spend some time on data modeling for BI and OLTP.
A significant amount of time will be dedicated to the practical skills needed for developers and analysts to work with most of the databases listed above. The course will try to illustrate what type of skills can be useful, regardless of the database selected: SQLite, PostgreSQL, MySQL, Snowflake, CockroachDB or Spanner. The course will illustrate similarities between all the databases and the important differences between them. Practical tasks will help the students develop skills on how to master a new database and discover its capabilities and limitations.
15 classes
Introduction. Data storage in general. CRUD. Evolution of approaches, the birth of relational models. Data Normalization. SQLite. Task 01 - SQLite.
SQLite. SQL - Create, Insert, Select, Group by. ACID - Durability, Isolation, risks of improper Isolation. Google sheet ⇔ SQLite table.
ACID - atomicity. SQL - transactions, commit/rollback. SQLite. Rollback journal, SQL to answer questions about task 1.
Classical client-server databases: PostgreSQL, MSSQL, Oracle, MySQL. Master/Slave replication. ACID - Isolation. Transaction isolation levels. Replication techniques.
PostgreSQL. Indexes: LSM/B-tree, hashtable, projection. SQL - Join, View. Isolation levels, isolation practice. Task 02: PostgreSQL.
PostgreSQL. Analytics, BI, OLAP. Kimball vs Inmon. “Star” schema, “Snowflake” schema. Analytical SQL: window functions. Modern BI tools - Tableau, Looker. Slow Changing Dimensions - practice.
Redis. Limits of classical databases: single master, raw-storage, inefficiency. Key-value storages. Rethinking everything. Memcached. Using key-value as cash. Sharding approach. Task 03: Redis
MongoDB. Document-oriented databases. JSON and SQL, document store for classical DB, like PostgreSQL. Sharding.Risks of inconsistency.
Column storages. OLTP vs OLAP tasks for columnar databases. Vertica, Greenplum, ClickHouse, Snowflake. Sharding approach. SQL - window functions
Snowflake. Modern Data Modeling: Data Vault, Anchor Modeling. Big data. Clickstream analytics.
Databuses. Kafka, Pulsar and other tools. Databuses for OLTP (event-based architecture) and OLAP (data streaming).
Polyglot persistence. Modern databases on a Performance/Complexity/Delay graph. Proper roles of classical, key-value, document-orients, columnar databases and data-buses. Event driven architecture. SAGA pattern.
Risks of polyglot persistence. Eventual consistency. CAP theorem - meaning and applications.
Databases of the future. Clouds change everything. Managed databases. Serverless databases. BigQuery, Snowflake, YDB, CockRoachDB.
Final Quiz
Media
Python coding experience.
Basic understanding of algorithms or set theory.
Basics of SQL can help, but not required.
Lectures
Discussions
Practice with a database, using SQL, IDE or through the python applications.
Develop a few projects to try new skills and tools for practical tasks.
Nikolay got his M.S. degree in applied mathematics and cybernetics from Moscow State University, Russia. Afterwards, he had 15 years of experience building data platforms for various startups and enterprises. From 2013 until 2019, he headed the Data Platform of Avito, Craigslist of Russia, which grew to a multi-billion-dollar company from a small startup. In Avito, he was responsible for analytical databases (Vertica, ClickHouse), OLTP engines (PostgreSQL, Redis, MongoDB), and data buses (Kafka) for analytics and microservices. Later he was Head of Data Platform at ManyChat (a California and Barcelona-based SaaS startup), responsible for the implementation and growth of its Data Platform (AWS+Redis+Snowflake+Tableau), which is being used for analytics and AI. Currently Nikolay is a CPO of a startup, creating a new analytical database, Tengri Data Platform.
See full profileApply for this course
by Nikolay Golov
Total hours
45 Hours
Dates
Mar 11 - Mar 29, 2024
Fee for single course
€2999
Fee for degree students
€1999
Filter by campus:
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.