Нормализация баз данных

Интерактивное руководство по формам нормализации баз данных (от 1НФ до 5НФ/НФБК). Обучение с наглядными примерами ненормализованных данных и правильно нормализованных результатов.

Вся обработка происходит в твоём браузере. Данные никуда не загружаются.
Offline Ready

Нормализация баз данных

Интерактивное руководство по формам нормализации баз данных (от 1НФ до 5НФ/НФБК). Обучение с наглядными примерами ненормализованных данных и правильно нормализованных результатов.

🔒Вся обработка происходит в твоём браузере. Данные никуда не загружаются.
Обзор форм нормализации
1NF
2NF
3NF
BCNF
4NF
5NF
1NF
2NF
3NF
BCNF
4NF
5NF
Пример нарушения и исправление

До (Ненормализованные)

StudentIDNameCourses
1AliceMath, Physics, Chemistry
2BobEnglish, Math
3CarolBiology, Chemistry, Physics

После (Нормализованные)

StudentCourses
StudentIDNameCourse
1AliceMath
1AlicePhysics
1AliceChemistry
2BobEnglish
2BobMath
3CarolBiology
3CarolChemistry
3CarolPhysics
Примеры SQL
SQL до (нарушает нормальную форму)
-- Violates 1NF: multi-valued column
CREATE TABLE Students (
  StudentID INT PRIMARY KEY,
  Name VARCHAR(100),
  Courses VARCHAR(500)  -- comma-separated!
);
SQL после (нормализовано)
-- 1NF: Each cell has atomic values
CREATE TABLE Students (
  StudentID INT PRIMARY KEY,
  Name VARCHAR(100)
);

CREATE TABLE StudentCourses (
  StudentID INT,
  Course VARCHAR(100),
  PRIMARY KEY (StudentID, Course),
  FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);