Теория· 10 мин· 15 XP
Зачем нормализовать: аномалии данных
Представьте таблицу raw_orders, где в одной строке хранятся и данные заказа, и данные покупателя, и данные о товаре.
Такая схема порождает три вида аномалий:
| Аномалия | Что происходит |
|---|---|
| Вставки | Нельзя добавить нового покупателя без заказа |
| Обновления | При смене города покупателя нужно обновить все строки |
| Удаления | Удаление последнего заказа покупателя уничтожает его данные |
Пример: таблица raw_orders
sql
SELECT * FROM raw_orders LIMIT 3;
Посмотрите: customer_name, customer_city, customer_email повторяются в каждой строке одного покупателя. Если покупатель переедет в другой город — придётся обновлять сотни строк.
Нормальные формы
1НФ — атомарные значения, нет повторяющихся групп. 2НФ — нет частичных зависимостей от составного ключа. 3НФ — нет транзитивных зависимостей между неключевыми атрибутами.
В следующих уроках мы разберём каждую форму на примере raw_orders.
Прочитайте урок до конца — прогресс засчитается автоматически