Sobes.tech
Junior
156
questionbank

Что такое нормализация в базе данных?

Answer from AI

sobes.tech AI

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

Основная цель нормализации:

  • Уменьшение избыточности данных: Избегать повторения одной и той же информации в разных местах.
  • Улучшение целостности данных: Обеспечить точность и непротиворечивость данных.
  • Обеспечение гибкости: Упростить изменение и расширение структуры базы данных.

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

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

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

    • Таблица находится в 1NF.
    • Все неключевые атрибуты (столбцы, не входящие в первичный ключ) полностью зависят от всего первичного ключа (если он составной). Частичные зависимости отсутствуют.
  3. Третья нормальная форма (3NF):

    • Таблица находится в 2NF.
    • Нет транзитивных зависимостей. Неключевые атрибуты не зависят от других неключевых атрибутов.

Существуют и более высокие нормальные формы (BCNF, 4NF, 5NF, 6NF), но 3NF обычно считается достаточной для большинства практических целей.

Пример (упрощенный):

Исходная ненормализованная таблица (заказ клиента):

ID Заказа Имя Клиента Адрес Клиента Товары Количество Цена за ед.
101 Иван Москва Ноутбук 1 50000
101 Иван Москва Мышь 2 1000
102 Мария С-Петербург Клавиатура 1 3000

После нормализации (например, до 3NF):

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

ID Заказа ID Клиента Дата Заказа
101 1 2023-10-26
102 2 2023-10-26

Таблица Клиенты:

ID Клиента Имя Клиента Адрес Клиента
1 Иван Москва
2 Мария С-Петербург

Таблица Детали Заказа:

ID Детали Заказа ID Заказа ID Товара Количество Цена за ед.
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Таблица Товары:

ID Товара Название Товара
10 Ноутбук
20 Мышь
30 Клавиатура

Денормализация — обратный процесс нормализации, иногда используется для оптимизации производительности чтения данных за счет увеличения избыточности.