{# Course schema: this is what turns a blue link into a result that shows the provider and the level. Only facts that are actually true go in here. #}
ExpoCoder Sign in Start free

Data Modelling & Design

Design the database before you type it: entities, cardinality, EERD, the mapping rules, normal forms up to BCNF, and the anti patterns that sink real systems. Built around a drag and drop relation builder.

16 lessons about 5 hours Medium
Learn it by writing it.

Every lesson runs real code in your browser, checked the moment you submit. No installing anything, no setup, no waiting.

Start Data Modelling & Design free

What this course covers

  1. Why Modelling Comes Before Typing
  2. Entities, Attributes and the ER Model
  3. Relationships and Cardinality
  4. Weak Entities and Identifying Relationships
  5. EERD: Generalization, Specialization and Inheritance
  6. From ERD to Tables: The Mapping Rules
  7. Resolving Many to Many with a Join Table
  8. Functional Dependencies
  9. First Normal Form
  10. Second Normal Form
  11. Third Normal Form and BCNF
  12. When to Denormalize, and What It Costs
  13. Composite, Surrogate and Natural Keys in Practice
  14. Referential Integrity and Cascade Rules
  15. Anti Patterns: EAV, God Tables and Stringly Typed Data
  16. Capstone: Model a Business from a Written Brief

Other courses

Computational Thinking

Learn to think like a problem-solver before you write a single line of code. Break big …

Basic Python

Your first Python course, no experience needed. Learn variables, loops, functions, and …

Intermediate Python

Level up your Python with comprehensions, lambdas, error handling, files, modules, and …

Object-Oriented Programming

Master OOP in Python: classes, objects, inheritance, polymorphism, encapsulation, abstr…

Advanced Python

Go deeper in Python: decorators, generators, type hints, regex, JSON, SQLite, testing, …

Data Structures & Algorithms

Core CS: arrays, lists, stacks, queues, hash tables, trees, graphs, sorting, searching,…

Games with Pygame

Build your own 2D games from scratch: the game loop, sprites, movement, collisions, and…

Java

Learn Java from zero, with no programming background needed. Write your first program, …

C++

Learn C++ from zero, with no programming background needed. Start with your first progr…

C

Learn C from zero, with no programming background needed. The language that Unix, Linux…

JavaScript

Learn JavaScript from scratch: variables, types, loops, functions, arrays and objects, …

Web Frontend

Build for the browser: structure pages with HTML, style them with CSS, then use live AP…

See all courses