Sobes.tech
Middle

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

sobes.tech AI

Отговор от AI

Нормализирането на данни в контекста на бази данни е процес на организиране на данните с цел намаляване на излишъка и подобряване на цялостността на данните. Това се постига чрез разделяне на големи таблици на по-малки и свързването им чрез връзки.

Основни цели:

  • Премахване на дублиране на данни.
  • Подобряване на цялостността на данните (изключване на аномалии при вмъкване, актуализиране и изтриване).
  • Повишаване на ефективността на съхранението и заявките (в някои случаи).

Процесът на нормализиране се базира на принципите на нормалните форми (NF). Най-разпространените:

  • Първа нормална форма (1NF): Атомарност на данните в клетките, липса на повтарящи се групи от колони.
  • Втора нормална форма (2NF): В 1NF и всеки неключов атрибут е напълно функционално зависим от цялото първично ключово поле.
  • Трета нормална форма (3NF): В 2NF и липса на транзитивни функционални зависимости между неключови атрибути чрез други неключови атрибути.

Пример:

Първоначална таблица "Поръчки_Продукти":

ID на поръчка Дата на поръчка ID на продукт Име на продукт Цена на продукт Количество Име на клиент Адрес на клиента
1 2023-10-27 101 Телефон 500 1 Иван Петров ул. Пушкина, 10
1 2023-10-27 102 слушалки 100 2 Иван Петров ул. Пушкина, 10
2 2023-10-27 101 Телефон 500 1 Мария Иванова ул. Лермонтова, 5

След нормализиране (до 3NF):

"Поръчки":

ID на поръчка Дата на поръчка ID на клиент
1 2023-10-27 1
2 2023-10-27 2

"Позиции на поръчка":

ID на позиция ID на поръчка ID на продукт Количество
1 1 101 1
2 1 102 2
3 2 101 1

"Продукти":

ID на продукт Име на продукт Цена на продукт
101 Телефон 500
102 слушалки 100

"Клиенти":

ID на клиент Име на клиент Адрес на клиента
1 Иван Петров ул. Пушкина, 10
2 Мария Иванова ул. Лермонтова, 5

Обаче, прекомерната нормализация може да доведе до увеличаване на броя на съединенията (JOIN) при изпълнение на заявки, което може да намали производителността. Затова при проектирането на база данни често се търси баланс между степента на нормализация и производителността. Денормализацията е процес на умишлено нарушаване на нормалните форми за подобряване на производителността, обикновено чрез добавяне на излишък.