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.
- , coming soon
1Why databases?Limitations of spreadsheets and flat files versus relational database systems.Coming soon
- , coming soon
2The relational modelTables, columns, rows, primary keys, and foreign key relationships.Coming soon
- , coming soon
3SQL basicsSELECT, FROM, WHERE filtering, and ORDER BY sorting.Coming soon
Currents
Modules 4–8, 5 lessons
ER modeling, normalization up to BCNF, joins, and aggregates.
- , coming soon
4Entity-relationship modelingEntities, attributes, relationships, cardinalities, and ER diagrams.Coming soon
- , coming soon
5Database normalizationEliminating update anomalies from First Normal Form (1NF) through BCNF.Coming soon
- , coming soon
6SQL joinsINNER JOIN, LEFT/RIGHT OUTER JOIN, and cross joins.Coming soon
- , coming soon
7Aggregation and groupingCOUNT, SUM, AVG, GROUP BY, and HAVING filtering.Coming soon
- , coming soon
8Subqueries and viewsNested queries, Common Table Expressions (CTEs), and persistent views.Coming soon
Deep Water
Modules 9–12, 4 lessons
ACID transactions, indexing, query execution plans, triggers, and NoSQL.
- , coming soon
9Transactions and ACIDAtomicity, Consistency, Isolation, and Durability under high concurrency.Coming soon
- , coming soon
10Indexes and query performanceB-Trees, composite indexes, EXPLAIN ANALYZE, and query optimization.Coming soon
- , coming soon
11Constraints, triggers, and stored proceduresEnforcing business invariants directly in database engines.Coming soon
- , coming soon
12NoSQL in contextDocument stores, key-value stores, and when to pick relational vs NoSQL.Coming soon
Landfall
Modules 13–14, 2 lessons
Connecting Python to databases and delivering the database Capstone.
- , coming soon
13Databases from PythonConnecting Python applications to SQLite and PostgreSQL via connection pools.Coming soon
- , coming soon
14Capstone: Production database designDesign, normalize, implement, and benchmark a complete database system.Coming 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