Sobes.tech
Middle

Шта је нормализација?

sobes.tech АИ

Одговор од АИ

Нормализација података у контексту база података је процес организовања података ради смањења вишка и побољшања интегритета података. Ово се постиже делењем великих табела на мање и повезивањем њихових односа.

Главни циљеви:

  • Уклањање дупликата података.
  • Побољшање интегритета података (исключивање аномалија приликом уметања, ажурирања и брисања).
  • Повећање ефикасности складиштења и упита (у одређеним случајевима).

Процес нормализације се заснива на принципима нормалних облика (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) приликом извршавања упита, што може смањити перформансе. Због тога се при дизајну базе података често тражи баланс између степена нормализације и перформанси. Денормализација је процес свесног кршења нормалних облика ради побољшања перформанси, обично додавањем вишка података.