Sobes.tech
Junior

Какво е нормализация в база данни?

sobes.tech AI

Отговор от 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 Клавиатура

Денормализацията е обратният процес на нормализиране, който понякога се използва за подобряване на производителността при четене на данни чрез увеличаване на излишъка.