Что такое нормализация баз данных и её основные правила (нормальные формы)?

«Что такое нормализация баз данных и её основные правила (нормальные формы)?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Основные нормальные формы (НФ) и их правила:

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

    • Правило: Все значения атрибутов атомарны (неделимы), в таблице нет повторяющихся групп или массивов.
    • Нарушение: Столбец PhoneNumbers со значением "123-456, 789-012".
    • Исправление: Вынести номера в отдельные строки или в связанную таблицу.
  2. Вторая нормальная форма (2НФ):

    • Правило: Таблица должна находиться в 1НФ, и каждый неключевой атрибут должен полностью зависеть от всего первичного ключа (актуально для составных ключей).
    • Нарушение: Таблица Order_Details(OrderID, ProductID, ProductName, Quantity). ProductName зависит только от ProductID, а не от всей пары ключей.
    • Исправление: Вынести ProductName в таблицу Products.
  3. Третья нормальная форма (3НФ):

    • Правило: Таблица должна находиться в 2НФ, и отсутствуют транзитивные зависимости. Неключевые атрибуты не должны зависеть от других неключевых атрибутов.
    • Нарушение: Таблица Employees(EmpID, Name, DeptID, DeptLocation). DeptLocation зависит от DeptID, а не напрямую от EmpID.
    • Исправление: Вынести DeptID, DeptLocation в отдельную таблицу Departments.

Практический результат: Повышение целостности данных, эффективное использование памяти и упрощение операций модификации за счет устранения дублирования.