Middle
57
questionbank

Что вы знаете о нормальных формах в базах данных?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Нормальные формы (НФ) – это набор правил и рекомендаций для проектирования структуры реляционной базы данных, направленных на минимизацию избыточности данных и предотвращение аномалий при вставке, обновлении и удалении.

Основные нормальные формы:

  • Первая нормальная форма (1НФ):

    • Каждый атрибут (столбец) должен содержать атомарные (неделимые) значения.
    • Отсутствие повторяющихся групп атрибутов.
    • Каждая строка должна быть уникальной (наличие первичного ключа).
  • Вторая нормальная форма (2НФ):

    • Находится в 1НФ.
    • Каждый неключевой атрибут должен полностью функционально зависеть от всего первичного ключа (если первичный ключ составной).
  • Третья нормальная форма (3НФ):

    • Находится в 2НФ.
    • Отсутствие транзитивных зависимостей неключевых атрибутов от первичного ключа (неключевой атрибут не должен зависеть от другого неключевого атрибута).
  • Форма Бойса-Кодда (ФБК/BCNF):

    • Более строгая версия 3НФ.
    • Каждая нетривиальная зависимость X \to Y должна иметь X как суперключ.
  • Четвертая нормальная форма (4НФ):

    • Находится в ФБК.
    • Отсутствие многозначных зависимостей.
  • Пятая нормальная форма (5НФ):

    • Находится в 4НФ.
    • Отсутствие зависимостей соединения.

Цели нормализации:

  • Уменьшение избыточности данных.
  • Предотвращение аномалий (вставки, обновления, удаления).
  • Обеспечение целостности данных.
  • Упрощение структуры базы данных.

Пример:

Таблица с избыточностью (не в 1НФ):

ЗаказIDТоварЦена
1Ноутбук, Мышь1000, 20
2Клавиатура50

Нормализованная таблица (в 1НФ и выше):

Таблица "Заказы":

ЗаказID
1
2

Таблица "Позиции заказа":

ПозицияIDЗаказIDТоварЦена
11Ноутбук1000
21Мышь20
32Клавиатура50

Нормализация – важный этап проектирования, но чрезмерная нормализация может привести к увеличению количества соединений при запросах, что может негативно сказаться на производительности. Выбор оптимального уровня нормализации зависит от конкретных требований и компромиссов. Денормализация иногда используется для оптимизации производительности в определенных сценариях, осознанно нарушая правила нормальных форм.