Fundamentals of Database Engineering

24h 52m 18s
English
Paid
April 9, 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:53
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 Snapshot and Repeatable Read Isolation difference? 07:56
116 I have an Index why is the database doing a full table scan? 07:38
117 Why Databases Read Pages instead of Rows? 11:03
118 How does Indexing a column with duplicate values work? 10:54
119 Should I drop unused indexes? 08:46
120 Why use serializable Isolation Level when we have SELECT FOR UPDATE? 07:00
121 Can I use the same database connection for multiple clients? 07:01
122 Do I need a transaction if I'm only reading? 15:48
123 Why does an update in Postgres touches all indexes? 23:50
124 What is the value of bitmap index scan? 25:46
125 What does Explain Analyze actually do? 19:38
126 WAL, Redo and Undo logs 39:11
127 SELECT COUNT (*) can impact your Backend Application performance, here is why 10:38
128 How Shopify Switched from UUID as Primary Key 31:23
129 How does the Database Store Data On Disk? 18:56
130 Is QUIC a Good Protocol for Databases? 12:16
131 What is a Distributed Transaction? 21:29
132 Hash Tables and Consistent Hashing 49:23
133 Indexing in PostgreSQL vs MySQL 13:02
134 Why Uber Moved from Postgres to MySQL (Discussion) 47:14
135 Can NULLs Improve your Database Queries Performance? 21:13
136 Write Amplification Explained in Backend Apps, Database Systems and SSDs 21:16
137 Optimistic vs Pessmistic Concurrency Control 17:37
138 Introduction to ACID (Archived) 01:40
139 What is a Transaction? (Archived) 02:32
140 Atomicity (Archived) 02:40
141 Isolation (Archived) 20:36
142 Consistency (Archived) 13:07
143 Durability (Archived) 01:45

Similar courses to Fundamentals of Database Engineering

Apache Kafka Series - Learn Apache Kafka for Beginners v3

Apache Kafka Series - Learn Apache Kafka for Beginners v3

Duration 8 hours 20 minutes 45 seconds
Complete ASP.NET MVC 5

Complete ASP.NET MVC 5

Duration 7 hours 33 minutes 52 seconds
Apache Flink

Apache Flink

Duration 8 hours 31 minutes 38 seconds
Database Design & Implementation

Database Design & Implementation

Duration 2 hours 7 minutes 49 seconds
Fundamentals of Backend Communications and Protocols

Fundamentals of Backend Communications and Protocols

Duration 15 hours 35 minutes 37 seconds
The Complete 2023 Web Development Bootcamp

The Complete 2023 Web Development Bootcamp

Duration 62 hours 32 minutes 23 seconds
Web API From Start to Finish

Web API From Start to Finish

Duration 17 hours 59 minutes 54 seconds
Build an app with ASPNET Core and Angular from scratch

Build an app with ASPNET Core and Angular from scratch

Duration 29 hours 51 minutes 36 seconds