TL;DR

freeCodeCamp Relational Database Design Course

freeCodeCamp vừa đăng một khóa học 6 tiếng hoàn toàn miễn phí trên YouTube, dạy thiết kế cơ sở dữ liệu quan hệ từ nền tảng đến nâng cao. Khóa học dựa trên cuốn sách Grokking Relational Database Design của Dr. Qiang Hao & Dr. Michael Tsikerdekis (Manning, 2025). Nếu bạn đang muốn học SQL, chuẩn hóa dữ liệu, hay thiết kế schema bài bản - đây là tài liệu bạn cần xem ngay.

Tại sao phải học thiết kế CSDL bây giờ?

Cơ sở dữ liệu quan hệ có mặt trong hầu hết mọi phần mềm: từ hệ thống ngân hàng, bệnh viện, thương mại điện tử đến ứng dụng streaming. Một schema được thiết kế tốt giúp giảm dữ liệu trùng lặp, đơn giản hóa báo cáo và quan trọng hơn - tiết kiệm cho team hàng tháng làm lại data migration về sau.

Theo DbSchema (2026), thiết kế schema quan hệ vẫn là "một trong những công việc tạo ra tác động cao nhất trong các dự án phần mềm hiện đại". Không phải ngẫu nhiên mà SQL và database design luôn nằm trong top kỹ năng tuyển dụng cho vị trí backend, fullstack hay data engineer.

6 tiếng - phủ hết từ A đến Z

Khóa học được chia thành các module rõ ràng:

  • SQL nền tảng: Filtering, aggregation, JOINs, foreign keys, table commands
  • Database Design Lifecycle: Từ yêu cầu thực tế đến thiết kế conceptual, logical, physical
  • ER Modeling: Vẽ diagram, quan hệ 1-1, 1-nhiều, nhiều-nhiều, strong vs weak entities
  • Chuẩn hóa dữ liệu: 1NF, 2NF, 3NF đến BCNF - loại bỏ redundancy bài bản
  • Data types & Constraints: NOT NULL, DEFAULT, CHECK, UNIQUE, Foreign Key (ON DELETE / ON UPDATE)
  • Bảo mật & Access Control: Roles, permissions, hashing, encryption
  • Indexing & Performance: B-Tree vs Full-Text Indexes, denormalization

Điểm thú vị là khóa học không chỉ dạy lý thuyết khô khan - mỗi concept đều đi kèm ví dụ thực tế và use case cụ thể.

Những điểm kỹ thuật không ai hay nhắc đến

Có vài section trong khóa học đặc biệt đáng chú ý:

  • "The FLOAT Mistake That Crashed a Stock Exchange" - tưởng chừng chọn sai kiểu dữ liệu là chuyện nhỏ, thực ra có thể gây ra thảm họa ở production
  • B-Tree vs Full-Text Indexes - hiểu sự khác biệt này trực tiếp ảnh hưởng đến tốc độ query của ứng dụng
  • BCNF (Boyce-Codd Normal Form) - normal form ít được dạy nhưng cực kỳ quan trọng để loại bỏ anomaly phức tạp
  • ACID properties - atomicity, consistency, isolation, durability - lý do tại sao ngân hàng và bệnh viện vẫn chọn relational DB dù NoSQL phổ biến

Khóa học cũng so sánh rõ khi nào nên dùng relational DB và khi nào NoSQL là lựa chọn tốt hơn - một câu hỏi mà nhiều developer gặp trong thực tế.

Ai nên xem ngay?

Khóa học phù hợp với:

  • Người mới bắt đầu muốn có nền tảng database vững chắc trước khi đi vào framework
  • Backend/fullstack developer đang viết SQL nhưng chưa biết cách thiết kế schema đúng chuẩn
  • Database Administrator (DBA) muốn ôn lại và hệ thống hóa kiến thức
  • Bất kỳ ai đang xây dựng ứng dụng và cần hiểu dữ liệu được lưu trữ như thế nào bên dưới

Prerequisites không quá cao: chỉ cần biết cơ bản về lập trình (biến, vòng lặp, điều kiện), quen với bảng tính và biết dùng terminal cơ bản là đủ.

Sau khóa học - bạn làm gì tiếp?

Khi đã nắm vững nền tảng từ khóa học này, lộ trình tiếp theo có thể là:

  1. Xây dựng lớp ứng dụng (web app HTML/CSS/JS) kết nối với database
  2. Học Database Administration: DCL, GRANT/REVOKE, quản lý roles và permissions
  3. Khám phá NoSQL (Document DB, Graph DB) cho các bài toán dữ liệu phi cấu trúc
  4. Tìm hiểu Data Warehousing, ETL và OLAP nếu muốn đi sâu vào data engineering

Khóa học miễn phí hoàn toàn - freeCodeCamp là tổ chức phi lợi nhuận 501(c)(3) với sứ mệnh giúp mọi người học lập trình không mất phí. Curriculum của họ đã giúp hơn 40,000 người tìm được việc làm developer.

Xem khóa học tại: freecodecamp.org/news/learn-relational-database-design

Nguồn: freeCodeCamp, DbSchema.