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.
Fundamentals of Database Engineering
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.
About the Author: Udemy
Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.
Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.
Watch Online 146 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 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 |
Get instant access to all 145 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionRelated courses
-
Updated 2y agoStreaming Databases
By: O'Reilly MediaReal-time applications are becoming the norm. However, for the model to function properly, it is necessary to obtain data in real-time, process it on the fly.5/5 -
ClassicHigh Performance SQLite
By: Aaron FrancisUnlock the true potential of SQLite with this comprehensive course designed to elevate your skills from beginner to expert.15h 27m4/5 -
Updated 2y agoNeo4j: GraphDB Foundations with Cypher
By: UdemyLearn what a graph database is, gain the fundamental skills to use Neo4j on your next project. Learn how some of the worlds top tech companies structure and que4h 44m