Нормализация и денормализация таблиц — расскажи про нормальные формы
Answer from AI
sobes.tech AI
Нормализация таблиц — процесс организации данных в базе для уменьшения избыточности и обеспечения целостности. Денормализация — обратный процесс, когда данные специально дублируются для повышения производительности запросов.
Нормальные формы (НФ) — набор правил для нормализации:
-
1НФ (Первая нормальная форма): Все поля атомарны, то есть не содержат повторяющихся групп или множественных значений.
-
2НФ (Вторая нормальная форма): Выполняется 1НФ, и все неключевые атрибуты полностью зависят от всего составного ключа (если ключ составной).
-
3НФ (Третья нормальная форма): Выполняется 2НФ, и нет транзитивных зависимостей между неключевыми атрибутами (то есть неключевые поля не зависят друг от друга).
-
Бойса-Кодда нормальная форма (BCNF): Более строгая версия 3НФ, где для каждой функциональной зависимости детерминант является ключом.
-
4НФ и выше: Рассматривают многозначные зависимости и другие сложные случаи.
Пример: Если у нас есть таблица с информацией о студентах, курсах и преподавателях, и преподаватель зависит от курса, а не от студента, то для 3НФ нужно разделить таблицу на две: одна с информацией о студентах и курсах, другая — о курсах и преподавателях.
Денормализация применяется, когда нормализованные таблицы приводят к сложным и медленным JOIN-операциям. В этом случае данные дублируются, чтобы ускорить чтение, но усложняется обновление и поддержка целостности.