Sobes.tech
Middle

Čo je normalizácia?

sobes.tech AI

Odpoveď od AI

Normalizácia údajov v kontexte databáz je proces organizácie údajov s cieľom znížiť redundanciu a zlepšiť integritu údajov. Dosahuje sa rozdelením veľkých tabuliek na menšie a ich prepojením.

Hlavné ciele:

  • Odstránenie duplicitných údajov.
  • Zlepšenie integrity údajov (eliminácia anomálií pri vkladaní, aktualizácii a odstraňovaní).
  • Zvýšenie efektívnosti ukladania a dotazov (v niektorých prípadoch).

Proces normalizácie je založený na princípoch normálnych foriem (NF). Najbežnejšie:

  • Prvá normálna forma (1NF): Atómové údaje v bunkách, absencia opakujúcich sa skupín stĺpcov.
  • Druhá normálna forma (2NF): Je v 1NF a každý ne-kľúčový atribút je plne funkčne závislý od celého primárneho kľúča.
  • Tretia normálna forma (3NF): Je v 2NF a neexistujú tranzitívne funkčné závislosti medzi ne-kľúčovými atribútmi cez iné ne-kľúčové atribúty.

Príklad:

Pôvodná tabuľka "Objednávky_Termíny":

ID objednávky Dátum objednávky ID produktu Názov produktu Cena produktu Množstvo Meno zákazníka Adresa zákazníka
1 2023-10-27 101 Telefón 500 1 Ivan Petrov Puskina u. 10
1 2023-10-27 102 Slúchadlá 100 2 Ivan Petrov Puskina u. 10
2 2023-10-27 101 Telefón 500 1 Maria Ivanova Lermontov u. 5

Po normalizácii (do 3NF):

"Objednávky":

ID objednávky Dátum objednávky ID zákazníka
1 2023-10-27 1
2 2023-10-27 2

"Položky objednávky":

ID položky ID objednávky ID produktu Množstvo
1 1 101 1
2 1 102 2
3 2 101 1

"Produkty":

ID produktu Názov produktu Cena produktu
101 Telefón 500
102 Slúchadlá 100

"Zákazníci":

ID zákazníka Meno zákazníka Adresa zákazníka
1 Ivan Petrov Puskina u. 10
2 Maria Ivanova Lermontov u. 5

Avšak, nadmerná normalizácia môže viesť k zvýšeniu počtu spojení (JOIN) pri vykonávaní dotazov, čo môže znížiť výkon. Preto sa pri návrhu databázy často hľadá rovnováha medzi stupňom normalizácie a výkonom. Denormalizácia je proces zámerného narušenia normálnych foriem na zlepšenie výkonu, zvyčajne pridaním nadbytočnosti.