Fundamentals of Database Engineering

26h 2m 59s
English
Paid
July 20, 2024

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.

More

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 Fundamentals of Database Engineering

Join premium to watch
Go to premium
# Title Duration
1 Welcome to the Course 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

Similar courses to Fundamentals of Database Engineering

Fundamentals of Backend Communications and Protocols

Fundamentals of Backend Communications and Protocolsudemy

Duration 15 hours 35 minutes 37 seconds
PostgreSQL High Performance Tuning Guide

PostgreSQL High Performance Tuning Guideudemy

Duration 2 hours 41 minutes 14 seconds
Fundamentals of Networking Engineering

Fundamentals of Networking Engineeringudemy

Duration 13 hours 40 minutes 46 seconds
Database Design & Implementation

Database Design & Implementationamigoscode (Nelson Djalo)

Duration 2 hours 7 minutes 49 seconds
Effective Database Design

Effective Database DesignBen Brumm

Duration 1 hour 3 minutes 56 seconds
Complete ASP.NET MVC 5

Complete ASP.NET MVC 5udemy

Duration 7 hours 33 minutes 52 seconds