К списку
SQL и базы данныхMiddleТехническое

Основные нормальные формы для проектирования баз данных

Краткий ответ

Нормальные формы — это стандарты структурирования данных в базе, которые устраняют избыточность и обеспечивают целостность. Основные включают 1NF, 2NF, 3NF и BCNF, каждая из которых накладывает определённые ограничения на структуру таблиц.

Развёрнуто

Краткий ответ

Нормальные формы — это стандарты организации данных в базе, направленные на уменьшение дублирования и предотвращение аномалий при обновлении. Ключевые формы: первая (1NF), вторая (2NF), третья (3NF) и более строгая форма Бойса-Кодда (BCNF).


Как это работает

Нормализация — процесс приведения базы данных к нормальным формам, чтобы повысить качество данных и упростить их сопровождение. Каждая форма вводит определённые правила:

  • 1NF требует, чтобы все поля содержали атомарные значения, без повторяющихся групп.
  • 2NF устраняет частичные зависимости, связывая данные только с первичным ключом.
  • 3NF устраняет транзитивные зависимости, чтобы не было косвенной связи между неключевыми атрибутами.
  • BCNF — более строгая версия 3NF, где каждая детерминанта является ключом.
Нормальная форма Основное правило Цель
1NF Атомарность значений в столбцах Устранить повторяющиеся группы
2NF Нет частичных зависимостей от части ключа Устранить избыточные данные по частям
3NF Нет транзитивных зависимостей Обеспечить независимость неключевых полей
BCNF Все детерминанты — ключи Исключить редкие аномалии зависимости

Пример

Таблица заказов до нормализации:
| ЗаказID | ТоварID | ТоварНазвание | Количество | Цена | Поставщик |

В 1NF поле "ТоварНазвание" должно быть атомарным, нельзя хранить список товаров в одном поле.
В 2NF данные о поставщике нужно вынести в отдельную таблицу, чтобы избежать повторения.
В 3NF информация о цене должна зависеть только от ТоварID, а не через другие поля.

Что важно знать на собеседовании

  • Нормализация минимизирует дублирование и помогает избежать ошибок при обновлении данных.
  • Каждая следующая нормальная форма основывается на требованиях предыдущей.
  • BCNF устраняет некоторые случаи, которые не покрывает 3NF.
  • Переизбыточная нормализация может усложнить запросы и снизить производительность.
  • Понимание нормализации важно для оценки структуры базы и качества данных.

Тема: SQL и базы данных | Уровень: middle