Skip to content
Coming soon

Databases

Learn relational design, SQL, normalization, and indexing, so the applications you build stay fast and correct as their data grows.

  • 14 modules
  • 14 lessons
  • Shallows to Landfall
  • Free to learn

This course is being written. Its lessons will be free here, like every lesson on Mawj. The outline below is what it will teach; follow the Telegram channel to hear the day it opens.

What you'll be able to do

  • Design sound entity-relationship (ER) models and normalize schemas to 3NF/BCNF
  • Write complex analytical SQL queries with joins, window functions, and subqueries
  • Ensure transaction safety and data integrity with ACID principles
  • Optimize query performance with indexes, execution plans, and query tuning

The full syllabus

14 modules, from the Shallows down. Open any module to see its lessons.

The Shallows

Modules 1–3, 3 lessons

Database fundamentals, the relational model, and introductory SQL queries.

  1. , coming soon
    1Why databases?Limitations of spreadsheets and flat files versus relational database systems.
    1. 1.1From spreadsheets to databasesSoon
  2. , coming soon
    2The relational modelTables, columns, rows, primary keys, and foreign key relationships.
    1. 2.1Tables, keys, and relationsSoon
  3. , coming soon
    3SQL basicsSELECT, FROM, WHERE filtering, and ORDER BY sorting.
    1. 3.1Querying with SELECTSoon

Currents

Modules 4–8, 5 lessons

ER modeling, normalization up to BCNF, joins, and aggregates.

  1. , coming soon
    4Entity-relationship modelingEntities, attributes, relationships, cardinalities, and ER diagrams.
    1. 4.1Drawing ER diagramsSoon
  2. , coming soon
    5Database normalizationEliminating update anomalies from First Normal Form (1NF) through BCNF.
    1. 5.1Normalizing to 3NF and BCNFSoon
  3. , coming soon
    6SQL joinsINNER JOIN, LEFT/RIGHT OUTER JOIN, and cross joins.
    1. 6.1Combining data across tablesSoon
  4. , coming soon
    7Aggregation and groupingCOUNT, SUM, AVG, GROUP BY, and HAVING filtering.
    1. 7.1Summarizing data with GROUP BYSoon
  5. , coming soon
    8Subqueries and viewsNested queries, Common Table Expressions (CTEs), and persistent views.
    1. 8.1CTEs and database viewsSoon

Deep Water

Modules 9–12, 4 lessons

ACID transactions, indexing, query execution plans, triggers, and NoSQL.

  1. , coming soon
    9Transactions and ACIDAtomicity, Consistency, Isolation, and Durability under high concurrency.
    1. 9.1Managing transactionsSoon
  2. , coming soon
    10Indexes and query performanceB-Trees, composite indexes, EXPLAIN ANALYZE, and query optimization.
    1. 10.1Tuning queries with indexesSoon
  3. , coming soon
    11Constraints, triggers, and stored proceduresEnforcing business invariants directly in database engines.
    1. 11.1Automating logic with triggersSoon
  4. , coming soon
    12NoSQL in contextDocument stores, key-value stores, and when to pick relational vs NoSQL.
    1. 12.1Comparing relational and NoSQLSoon

Landfall

Modules 13–14, 2 lessons

Connecting Python to databases and delivering the database Capstone.

  1. , coming soon
    13Databases from PythonConnecting Python applications to SQLite and PostgreSQL via connection pools.
    1. 13.1Executing SQL from PythonSoon
  2. , coming soon
    14Capstone: Production database designDesign, normalize, implement, and benchmark a complete database system.
    1. 14.1Building the capstone database (Project)Soon

Who it's for

  • Information Systems and Computer Science students building backend applications
  • Developers who want to design and tune relational databases properly
  • Data analysts looking to write advanced SQL with confidence

What you need

  • Basic computer literacy; no prior database or programming experience required
  • A computer capable of running PostgreSQL or SQLite