Fundamentals of Database Engineering

26h 2m 59s
English
Paid

Course description

Database Engineering is a very interesting sector in software engineering. If you are interested in learning about database engineering you have come to the right place. I have curated this course carefully to discuss one of the main concepts of database engineering. This course will not teach you SQL or programming languages, however, it will teach you skillsets and patterns that you can apply in database engineering.

Read more about the course

A few of the things that you will learn are Indexing, Partitioning, Sharding, Replication, b-trees in-depth indexing, Concurrency control, database engines and security, and much more.

I believe that learning the fundamentals of database engineering will equip you with the necessary means to tackle difficult and challenging problems yourself. I always compare engineering to math, you never memorize specific formulas and equations, you know the basic proves and derive and solve any equation one throws at you. Database engineering is similar, you can't possibly say MongoDB is better than MySQL or Postgres is better than Oracle. Instead, you learn your use case and by understanding how each database platform does its own trade-offs you will be able to make optimal decisions.

Database engines or storage engines or sometimes even called embedded databases is a software library that a database management software uses to store data on disk and do CRUD (create update delete) Embedded means move everything in one software no network client-server. In this video course, I want to go through the few popular database engines, explain the differences between them, and finally, I want to spin up a database and change its engine and show the different features of each engine.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 146 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Fundamentals of Database Engineering

0:00
/
#1: Welcome to the Course

All Course Lessons (146)

#Lesson TitleDurationAccess
1
Welcome to the Course Demo
06:37
2
Course Note 1
00:38
3
Course Note 2
07:37
4
Course Note 3
09:25
5
Introduction to ACID
03:55
6
What is a Transaction?
13:35
7
Atomicity
10:05
8
Isolation
31:54
9
Consistency
12:42
10
Durability
12:13
11
ACID by Practical Examples
21:22
12
Phantom Reads
07:36
13
Serializable vs Repeatable Read
08:18
14
Eventual Consistency
14:34
15
How tables and indexes are stored on disk (MUST WATCH before continue)
21:04
16
Row-Based vs Column-Based Databases
34:16
17
Primary Key vs Secondary Key - What you probably didn't know
10:57
18
Create Postgres Table with a million Rows (from scratch)
04:23
19
Getting Started with Indexing
18:19
20
Understanding The SQL Query Planner and Optimizer with Explain
10:17
21
Bitmap Index Scan vs Index Scan vs Table Scan
11:25
22
Key vs Non-Key Column Database Indexing
17:03
23
Index Scan vs Index Only Scan
08:09
24
Combining Database Indexes for Better Performance
14:08
25
How Database Optimizers Decide to Use Indexes
11:20
26
Create Index Concurrently - Avoid Blocking Production Database Writes
03:11
27
Bloom Filters
09:19
28
Working with Billion-Row Table
13:09
29
B-Tree Section's Introduction & Agenda
03:35
30
Full Table Scans
03:28
31
Original B-Tree
04:47
32
How the Original B-Tree Helps Performance
07:58
33
Original B-Tree Limitations
06:32
34
B+Tree
06:18
35
B+Tree DBMS Considerations
04:28
36
B+Tree Storage Cost in MySQL vs Postgres
04:46
37
B-Tree Section's Summary
01:08
38
Introduction to Database Partitioning
01:27
39
What is Partitioning?
03:29
40
Vertical vs Horizontal Partitioning
02:08
41
Partitioning Types
01:33
42
The Difference Between Partitioning and Sharding
02:44
43
Preparing: Postgres, Database, Table, Indexes
05:23
44
Execute Multiple Queries on the Table
01:19
45
Create and Attach Partitioned Tables
03:47
46
Populate the Partitions and Create Indexes
04:00
47
Class Project - Querying and Checking the Size of Partitions
05:33
48
The Advantages of Partitioning
04:42
49
The Disadvantages of Partitioning
02:49
50
Section Summary - Partitioning
01:11
51
How to Automate Partitioning in Postgres
10:07
52
Introduction to Database Sharding
01:07
53
What is Database Sharding?
03:32
54
Consistent Hashing
02:42
55
Horizontal partitioning vs Sharding
01:09
56
Sharding with Postgres
01:06
57
Spin up Docker Postgres Shards
07:24
58
Writing to a Shard
21:59
59
Reading from a Shard
11:20
60
Advantages of Database Sharding
02:00
61
Disadvantages of Database Sharding
03:34
62
Database Sharding Section Summary
00:46
63
When Should you consider Sharding your Database?
20:07
64
Shared vs Exclusive Locks
11:05
65
Dead Locks
05:32
66
Two-phase Locking
07:09
67
Solving the Double Booking Problem (Code Example)
13:43
68
Double Booking Problem Part 2 ( Alternative Solution and explination)
17:50
69
SQL Pagination With Offset is Very Slow
09:10
70
Database Connection Pooling
10:51
71
Introduction to Database Replication
01:20
72
Master/Standby Replication
03:46
73
Multi-master Replication
01:24
74
Synchronous vs Asynchronous Replication
03:07
75
Replication Demo with Postgres 13
19:21
76
Pros and Cons of Replication
03:29
77
Twitter System Design Database Design
01:11:57
78
Building a Short URL System Database Backend
37:51
79
Introduction
02:45
80
What is a Database Engine?
06:42
81
MyISAM
06:50
82
InnoDB
06:46
83
XtraDB
02:07
84
SQLite
03:45
85
Aria
02:28
86
BerkeleyDB
02:41
87
LevelDB
06:21
88
RocksDB
04:06
89
Popular Database Engines
02:32
90
Switching Database Engines with mySQL
17:09
91
What are Database Cursors?
09:32
92
Server Side vs Client Side Database Cursors
01:45
93
Inserting Million Rows with Python in Postgres using Client Side Cursor
03:30
94
Querying with Client Side Cursor
04:43
95
Querying with Server Side Cursor
01:26
96
Pros and Cons of Server vs Client Side Cursors
04:39
97
MongoDB Architecture
43:25
98
How to Secure Your Postgres Database by Enabling TLS/SSL
12:02
99
Deep Look into Postgres Wire Protocol with Wireshark
14:08
100
Deep Look Into MongoDB Wire Protocol with Wireshark
24:05
101
What is the Largest SQL Statement that You can Send to Your Database
09:45
102
Best Practices Working with REST & Databases
06:54
103
Database Permissions and Best Practices for Building REST API
23:41
104
Introduction to Homomorphic Encryption
01:54
105
What is Encryption?
01:30
106
Why Can't we always Encrypt?
04:33
107
What is Homomorphic Encryption
05:01
108
Homomorphic Encryption Demo
00:36
109
Clone and Build the Code
02:36
110
Going Through the Code and the Database
01:06
111
Searching The Encrypted Database
03:12
112
Is Homomorphic Encryption Ready?
02:31
113
Heap Index scan instead of Index only scan why?
12:55
114
What is the unit of the Cost in Postgres Planner?
06:16
115
All Isolation Levels - Explained Details
26:08
116
Snapshot and Repeatable Read Isolation difference?
07:56
117
I have an Index why is the database doing a full table scan?
07:38
118
Why Databases Read Pages instead of Rows?
11:03
119
How does Indexing a column with duplicate values work?
10:54
120
Should I drop unused indexes?
08:46
121
Why use serializable Isolation Level when we have SELECT FOR UPDATE?
07:00
122
Can I use the same database connection for multiple clients?
07:01
123
Do I need a transaction if I'm only reading?
15:48
124
Why does an update in Postgres touches all indexes?
23:50
125
What is the value of bitmap index scan?
25:46
126
What does Explain Analyze actually do?
19:38
127
Does Create Index block writes and Why?
11:16
128
WAL, Redo and Undo logs
39:11
129
SELECT COUNT (*) can impact your Backend Application performance, here is why
10:38
130
How Shopify Switched from UUID as Primary Key
31:23
131
How does the Database Store Data On Disk?
18:56
132
Postgres Architecture
33:16
133
Is QUIC a Good Protocol for Databases?
12:16
134
What is a Distributed Transaction?
21:29
135
Hash Tables and Consistent Hashing
49:23
136
Indexing in PostgreSQL vs MySQL
13:02
137
Why Uber Moved from Postgres to MySQL (Discussion)
47:14
138
Can NULLs Improve your Database Queries Performance?
21:13
139
Write Amplification Explained in Backend Apps, Database Systems and SSDs
21:16
140
Optimistic vs Pessmistic Concurrency Control
17:37
141
Introduction to ACID (Archived)
01:40
142
What is a Transaction? (Archived)
02:32
143
Atomicity (Archived)
02:40
144
Isolation (Archived)
20:36
145
Consistency (Archived)
13:07
146
Durability (Archived)
01:45

Unlock unlimited learning

Get instant access to all 145 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Database Design & Implementation

Database Design & Implementation

Sources: Amigoscode (Nelson Djalo)
Backend starts from Your Database. When you have a solid database design coding is easy. In this course you will learn how to design databases for your backend applications. You...
2 hours 7 minutes 49 seconds
Database Mastery: SQL to Prisma

Database Mastery: SQL to Prisma

Sources: jsmastery.pro, Adrian Hajdin
Master key technologies with a practical approach! You will gain applied knowledge, clear explanations, and all the necessary tools to confidently master...
16 minutes 3 seconds
Fullstack Typescript with TailwindCSS and tRPC Using Modern Features of PostgreSQL

Fullstack Typescript with TailwindCSS and tRPC Using Modern Features of PostgreSQL

Sources: fullstack.io
This comprehensive course will equip you with the skills and knowledge to build modern full-stack applications using TypeScript, TailwindCSS, tRPC, and PostgreS
4 hours 54 minutes 49 seconds
Apache Kafka Series - Kafka Streams for Data Processing

Apache Kafka Series - Kafka Streams for Data Processing

Sources: udemy
Learn the Kafka Streams API with Hands-On Examples, Learn Exactly Once, Build and Deploy Apps with Java 8. Learn the Kafka Streams data processing library, for
4 hours 50 minutes 7 seconds
Fundamentals of Backend Communications and Protocols

Fundamentals of Backend Communications and Protocols

Sources: udemy
Backend engineering is an art. During my 18 years career working with and building backend applications, I discovered that certain communication design patterns keep emerging. T...
15 hours 35 minutes 37 seconds