Sobes.tech
Middle

Kas yra normalizacija ir denormalizacija duomenų bazių darbo kontekste?

sobes.tech AI

Atsakymas iš AI

Normalizacija — tai duomenų organizavimo procesas duomenų bazėje, siekiant sumažinti perteklinius duomenis ir pagerinti duomenų vientisumą. Denormalizacija — tai perteklinių duomenų pridėjimo procesas duomenų bazėje, siekiant pagerinti užklausų našumą.

Normalizacija:

  • Principai: Kartojančių grupių pašalinimas, nesusijusių atributų priklausomybių pašalinimas.
  • Normalizacijos formos (pagrindinės):
    • 1NF (Pirmoji normalioji forma): Stulpeliuose yra atominių reikšmių, nėra kartojančių grupių.
    • 2NF (Antroji normalioji forma): 1NF + nėra dalinių priklausomybių.
    • 3NF (Trečioji normalioji forma): 2NF + nėra tranzityvinių priklausomybių.
    • Boyce-Codd normalioji forma (BCNF): griežtesnė 3NF versija.
  • Privalumai:
    • Duomenų pertekliaus mažinimas (vietos taupymas).
    • Duomenų nuoseklumo gerinimas.
    • Duomenų keitimo supaprastinimas (įterpimas, atnaujinimas, ištrynimas).
  • Trūkumai:
    • Lentelių skaičiaus didėjimas.
    • Reikalingas lentelių sujungimas, kad būtų galima gauti pilną informaciją (JOIN'ai), kas gali sumažinti užklausų našumą.

Denormalizacija:

  • Principai: Sąmoningas normalizacijos taisyklių pažeidimas, siekiant pagreitinti duomenų skaitymą.
  • Tipiniai būdai:
    • Duomenų dubliavimas (pavyzdžiui, prekės pavadinimo saugojimas užsakymų lentelėje).
    • Lentelių sujungimas.
    • Iš anksto apskaičiuotų agreguotų reikšmių naudojimas.
  • Privalumai:
    • Užklausų našumo didinimas (ypač SELECT).
    • JOIN'ų skaičiaus mažinimas.
    • Naudinga ataskaitoms ir OLAP sistemoms.
  • Trūkumai:
    • Duomenų pertekliaus didėjimas (vietos praradimas).
    • Duomenų nesuderinamumo rizika.
    • Duomenų keitimo sudėtingumas (reikia atnaujinti duomenis keliuose vietose).

Pasirinkimas tarp normalizacijos ir denormalizacijos priklauso nuo programos specifikos, prioritetų (duomenų vientisumas ar našumas) ir užklausų pobūdžio. Paprastai normalizacija taikoma OLTP sistemose (interneto transakcijos), o denormalizacija — OLAP sistemose (analitinė apdorojimas) arba kritinėse našumo vietose.