Relational Database Design – Full Course

freeCodeCamp.org · Beginner ·📊 Data Analytics & Business Intelligence ·5mo ago

Key Takeaways

This video course covers relational database design, including SQL fundamentals, entity-relationship modeling, normalization, data types, constraints, indexing strategies, and query optimization, using tools such as SQL and entity-relationship diagrams.

Original Description

Learn relational database design from the ground up in this comprehensive course. This 8-week curriculum covers SQL fundamentals, entity-relationship modeling, normalization (1NF through BCNF), data types and constraints, indexing strategies, and query optimization. You can get the complete learning experience with weekly schedules, quizzes and hands-on assignments at https://github.com/StructuredCS/grokking-relational-database-design. All materials are freely available. This course is based on the book Grokking Relational Database Design by Dr. Qiang Hao and Dr. Michael Tsikerdekis (Manning Publications, 2025): https://mng.bz/PRER. The book provides additional depth and context with extended examples and a cohesive narrative that follows a single complex design throughout. ⭐️ Contents ⭐️ 0:00:00 Relational Databases for Beginners — Tables, Entities, Keys & SQL 0:16:32 SQL Filtering & Aggregation 0:33:23 SQL Table Commands 0:45:57 Foreign Keys in SQL 1:01:54 How SQL JOINs Work 1:17:03 How to learn SQL on your own 1:31:48 Database Design Goals 1:39:25 Database Design Lifecycle 1:51:17 From Real-World Ideas to Tables 2:01:24 Primary Key, Candidate Key, and Super Key 2:14:25 Don't Use the Wrong SQL String Type 2:24:08 The FLOAT Mistake That Crashed a Stock Exchange 2:33:31 SQL Date and Time Types Explained 2:38:48 Connecting Entities in an ER Diagram 2:47:36 One-to-One Relationships 3:03:19 One-to-Many Relationships 3:14:18 Many-to-Many Relationships 3:24:54 Strong vs Weak Entities 3:38:05 First Normal Form - Primary Keys and Atomic Values 3:50:21 Second Normal Form - Partial Keys and Functional Dependencies 4:04:37 Third Normal Form - Transitive Dependencies 4:18:58 The Untold Story of BCNF 4:26:18 Primary Key vs Unique Constraints 4:40:15 Foreign Key Constraints - ON DELETE & ON UPDATE 4:50:31 Other Constraints: NOT NULL, DEFAULT, and CHECK 5:08:59 Access Control, Hashing & Encryption 5:29:47 B-Tree vs Full-Text Indexes 5:41:46 Denormalization ❤️ Support for this
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from freeCodeCamp.org · freeCodeCamp.org · 0 of 60

← Previous Next →
1 React: Production Server Setup Part 2 - Live Coding with Jesse
React: Production Server Setup Part 2 - Live Coding with Jesse
freeCodeCamp.org
2 cookies vs localStorage vs sessionStorage - Beau teaches JavaScript
cookies vs localStorage vs sessionStorage - Beau teaches JavaScript
freeCodeCamp.org
3 Browser history tutorial - Beau teaches JavaScript
Browser history tutorial - Beau teaches JavaScript
freeCodeCamp.org
4 Graph Data Structure Intro (inc. adjacency list, adjacency matrix, incidence matrix)
Graph Data Structure Intro (inc. adjacency list, adjacency matrix, incidence matrix)
freeCodeCamp.org
5 React: Parameterized Routing with Next.js - Live Coding with Jesse
React: Parameterized Routing with Next.js - Live Coding with Jesse
freeCodeCamp.org
6 React: Dealing with jQuery Issues - Live Coding with Jesse
React: Dealing with jQuery Issues - Live Coding with Jesse
freeCodeCamp.org
7 setInterval and setTimeout: timing events - Beau teaches JavaScript
setInterval and setTimeout: timing events - Beau teaches JavaScript
freeCodeCamp.org
8 Browser and Device Testing - Live Coding with Jesse
Browser and Device Testing - Live Coding with Jesse
freeCodeCamp.org
9 Last Minute Updates - Live Coding with Jesse
Last Minute Updates - Live Coding with Jesse
freeCodeCamp.org
10 Post Launch Updates - Live Coding with Jesse
Post Launch Updates - Live Coding with Jesse
freeCodeCamp.org
11 React: Setting Up Google Analytics - Live Coding with Jesse
React: Setting Up Google Analytics - Live Coding with Jesse
freeCodeCamp.org
12 React: Masonry Layout - Live Coding with Jesse
React: Masonry Layout - Live Coding with Jesse
freeCodeCamp.org
13 Load Balancing Digital Ocean Droplets - Live Coding with Jesse
Load Balancing Digital Ocean Droplets - Live Coding with Jesse
freeCodeCamp.org
14 try, catch, finally, throw - error handling in JavaScript
try, catch, finally, throw - error handling in JavaScript
freeCodeCamp.org
15 Load Balancing: SSL Passthrough Setup - Live Coding with Jesse
Load Balancing: SSL Passthrough Setup - Live Coding with Jesse
freeCodeCamp.org
16 Graphs: breadth-first search - Beau teaches JavaScript
Graphs: breadth-first search - Beau teaches JavaScript
freeCodeCamp.org
17 React: Masonry Layout Part 2 - Live Coding with Jesse
React: Masonry Layout Part 2 - Live Coding with Jesse
freeCodeCamp.org
18 React: WordPress API Live Search - Live Coding with Jesse
React: WordPress API Live Search - Live Coding with Jesse
freeCodeCamp.org
19 Creating WordPress Custom Post Types - Live Coding With Jesse
Creating WordPress Custom Post Types - Live Coding With Jesse
freeCodeCamp.org
20 Dates - Beau teaches JavaScript
Dates - Beau teaches JavaScript
freeCodeCamp.org
21 Miscellaneous Front End Updates - Live Coding with Jesse
Miscellaneous Front End Updates - Live Coding with Jesse
freeCodeCamp.org
22 Merging a Pull Request from GitHub - Live Coding with Jesse
Merging a Pull Request from GitHub - Live Coding with Jesse
freeCodeCamp.org
23 React + Prettier + Standard JS - Live Coding with Jesse
React + Prettier + Standard JS - Live Coding with Jesse
freeCodeCamp.org
24 React: Sortable Responsive Table - Live Coding with Jesse
React: Sortable Responsive Table - Live Coding with Jesse
freeCodeCamp.org
25 Geolocation Sorting by Distance - Live Coding with Jesse
Geolocation Sorting by Distance - Live Coding with Jesse
freeCodeCamp.org
26 Tradeoff Matrix - Agile Software Development
Tradeoff Matrix - Agile Software Development
freeCodeCamp.org
27 The Definition of Ready - Agile Software Development
The Definition of Ready - Agile Software Development
freeCodeCamp.org
28 Getting first React job without experience - Ask Preethi
Getting first React job without experience - Ask Preethi
freeCodeCamp.org
29 React: Google Analytics Click Tracking - Live Coding with Jesse
React: Google Analytics Click Tracking - Live Coding with Jesse
freeCodeCamp.org
30 Submitting a PR to an Open Source Project - Live Coding with Jesse
Submitting a PR to an Open Source Project - Live Coding with Jesse
freeCodeCamp.org
31 Should I go back to school to get CS degree? - Ask Preethi
Should I go back to school to get CS degree? - Ask Preethi
freeCodeCamp.org
32 Hero Section CSS Changes - Live Coding with Jesse
Hero Section CSS Changes - Live Coding with Jesse
freeCodeCamp.org
33 Working Agreement - Agile Software Development
Working Agreement - Agile Software Development
freeCodeCamp.org
34 A day at Pennybox with Co-Founder Reji Eapen
A day at Pennybox with Co-Founder Reji Eapen
freeCodeCamp.org
35 React: Sorting and Filtering Data - Live Coding with Jesse
React: Sorting and Filtering Data - Live Coding with Jesse
freeCodeCamp.org
36 React: Sorting and Filtering Data Part 2 - Live Coding with Jesse
React: Sorting and Filtering Data Part 2 - Live Coding with Jesse
freeCodeCamp.org
37 React: Building a New UI - Live Coding with Jesse
React: Building a New UI - Live Coding with Jesse
freeCodeCamp.org
38 Definition of Done - Agile Software Development
Definition of Done - Agile Software Development
freeCodeCamp.org
39 Getting started with jQuery (tutorial) - Beau teaches JavaScript
Getting started with jQuery (tutorial) - Beau teaches JavaScript
freeCodeCamp.org
40 Making a React Blog with WordPress Content - Live Coding with Jesse
Making a React Blog with WordPress Content - Live Coding with Jesse
freeCodeCamp.org
41 React, NextJS, CSS - Live Coding with Jesse
React, NextJS, CSS - Live Coding with Jesse
freeCodeCamp.org
42 jQuery events - Beau teaches JavaScript
jQuery events - Beau teaches JavaScript
freeCodeCamp.org
43 React/NextJS Routing and WordPress API Custom Types - Live Coding with Jesse
React/NextJS Routing and WordPress API Custom Types - Live Coding with Jesse
freeCodeCamp.org
44 React: Working with API Data - Live Coding with Jesse
React: Working with API Data - Live Coding with Jesse
freeCodeCamp.org
45 React: Refactoring Components - Live Streaming with Jesse
React: Refactoring Components - Live Streaming with Jesse
freeCodeCamp.org
46 jQuery effects - Beau teaches JavaScript
jQuery effects - Beau teaches JavaScript
freeCodeCamp.org
47 More React Refactoring - Live Coding with Jesse
More React Refactoring - Live Coding with Jesse
freeCodeCamp.org
48 animate in jQuery - Beau teaches JavaScript
animate in jQuery - Beau teaches JavaScript
freeCodeCamp.org
49 "Finishing" My React Site - Live Coding with Jesse
"Finishing" My React Site - Live Coding with Jesse
freeCodeCamp.org
50 Starting a New React Project (P2D1) - Live Coding with Jesse
Starting a New React Project (P2D1) - Live Coding with Jesse
freeCodeCamp.org
51 React Project 2 Day 2: Learning Material UI - Live Coding with Jesse
React Project 2 Day 2: Learning Material UI - Live Coding with Jesse
freeCodeCamp.org
52 The Agile Manifesto - Agile Software Development
The Agile Manifesto - Agile Software Development
freeCodeCamp.org
53 jQuery: get and set with http, text, val, and attr - Beau teaches JavaScript
jQuery: get and set with http, text, val, and attr - Beau teaches JavaScript
freeCodeCamp.org
54 React Project 2 Day 3 - Live Coding with Jesse
React Project 2 Day 3 - Live Coding with Jesse
freeCodeCamp.org
55 The INVEST approach to product backlog items
The INVEST approach to product backlog items
freeCodeCamp.org
56 React Project 2 Day 4 - Live Coding with Jesse
React Project 2 Day 4 - Live Coding with Jesse
freeCodeCamp.org
57 Chickens and Pigs - Agile Software Development
Chickens and Pigs - Agile Software Development
freeCodeCamp.org
58 React Project 2 Day 5 - Live Coding with Jesse
React Project 2 Day 5 - Live Coding with Jesse
freeCodeCamp.org
59 jQuery: add and remove DOM elements - Beau teaches JavaScript
jQuery: add and remove DOM elements - Beau teaches JavaScript
freeCodeCamp.org
60 React Project 2 Day 6 - Live Coding with Jesse
React Project 2 Day 6 - Live Coding with Jesse
freeCodeCamp.org

This comprehensive course covers relational database design, including SQL fundamentals, entity-relationship modeling, and query optimization, providing a thorough understanding of database design principles and practices. The course is based on the book Grokking Relational Database Design and includes hands-on assignments and quizzes. By the end of the course, students will be able to design and implement efficient relational databases.

Key Takeaways
  1. Learn SQL fundamentals
  2. Understand entity-relationship modeling
  3. Apply normalization techniques
  4. Implement data types and constraints
  5. Optimize queries using indexing strategies
💡 Proper database design is crucial for efficient data storage and retrieval, and normalization is a key step in ensuring data consistency and reducing data redundancy.

Related AI Lessons

Before I needed it, no one told me that "legacy tape management" was an entire industry.
Learn about legacy tape management and its importance in data migration, especially when dealing with large-scale tape collections
Reddit r/artificial
Top 5 DBMS Concepts (2026) | Perfectnotes
Learn the top 5 DBMS concepts to manage data efficiently in applications
Medium · Data Science
The Nervous System of the Telco: Unlocking the Real-Time Power of the Network Element Interfaces…
Unlock the power of network element interfaces to enable real-time insights in telco operations
Medium · Data Science
Enhanced RFM Analysis for Customer Segmentation using K-Prototypes
Learn how to enhance RFM analysis for customer segmentation using K-Prototypes, a clustering algorithm that handles categorical and numerical data, to improve marketing strategies and customer targeting.
Medium · Machine Learning

Chapters (28)

Relational Databases for Beginners — Tables, Entities, Keys & SQL
16:32 SQL Filtering & Aggregation
33:23 SQL Table Commands
45:57 Foreign Keys in SQL
1:01:54 How SQL JOINs Work
1:17:03 How to learn SQL on your own
1:31:48 Database Design Goals
1:39:25 Database Design Lifecycle
1:51:17 From Real-World Ideas to Tables
2:01:24 Primary Key, Candidate Key, and Super Key
2:14:25 Don't Use the Wrong SQL String Type
2:24:08 The FLOAT Mistake That Crashed a Stock Exchange
2:33:31 SQL Date and Time Types Explained
2:38:48 Connecting Entities in an ER Diagram
2:47:36 One-to-One Relationships
3:03:19 One-to-Many Relationships
3:14:18 Many-to-Many Relationships
3:24:54 Strong vs Weak Entities
3:38:05 First Normal Form - Primary Keys and Atomic Values
3:50:21 Second Normal Form - Partial Keys and Functional Dependencies
4:04:37 Third Normal Form - Transitive Dependencies
4:18:58 The Untold Story of BCNF
4:26:18 Primary Key vs Unique Constraints
4:40:15 Foreign Key Constraints - ON DELETE & ON UPDATE
4:50:31 Other Constraints: NOT NULL, DEFAULT, and CHECK
5:08:59 Access Control, Hashing & Encryption
5:29:47 B-Tree vs Full-Text Indexes
5:41:46 Denormalization
Up next
Spreadsheet Guy Meets the CFO: "Define How Much"
Digital Transformation with Eric Kimberling
Watch →