Sobes.tech
Junior

Mis on normaliseerimine andmebaasis?

sobes.tech AI

Vastus AI-lt

Normaliseerimine andmebaasis on protsess, mille käigus organiseeritakse andmeid relatsioonandmebaasis eesmärgiga vähendada dubleerimist (andmete kordumist) ja parandada andmete terviklikkust. Seda saavutatakse, jagades suuremad tabelid väiksemateks ja määrates nende vahel seosed.

Normaliseerimise peamine eesmärk:

  • Andmete dubleerimise vähendamine: vältida sama info kordumist erinevates kohtades.
  • Andmete terviklikkuse parandamine: tagada andmete täpsus ja järjepidevus.
  • Paindlikkuse tagamine: lihtsustada andmebaasi struktuuri muutmist ja laiendamist.

Normaliseerimine määratletakse reeglite kogumina, mida nimetatakse normaalvormideks. Kõige levinumad on esimesed kolm normaalvormi:

  1. Esimene normaalvorm (1NF):

    • Iga tabeli veerg peab sisaldama atomaalseid (mitte jagatavaid) väärtusi.
    • Ei tohi olla korduvaid veergude gruppe.
    • Iga rida peab olema unikaalne (esimese võtme kaudu).
  2. Teine normaalvorm (2NF):

    • Tabel on 1NF.
    • Kõik mitte-võtme atribuudid (veerud, mis ei kuulu primaarvõtmesse) sõltuvad täielikult kogu primaarvõtme (kui see on koosnev). Osalised sõltuvused puuduvad.
  3. Kolmas normaalvorm (3NF):

    • Tabel on 2NF.
    • Ei ole transitiivseid sõltuvusi. Mitte-võtme atribuudid ei sõltu teistest mitte-võtme atribuutidest.

On ka kõrgemaid normaalvorme (BCNF, 4NF, 5NF, 6NF), kuid tavaliselt peetakse 3NF-d piisavaks enamiku praktiliste eesmärkide saavutamiseks.

Näide (lihtsustatud):

Mitte-normaliseeritud tabel (klientide tellimus):

Tellimuse ID Kliendi nimi Kliendi aadress Tooted Kogus Ühe hind
101 Ivan Moskva Sülearvuti 1 50000
101 Ivan Moskva Hiir 2 1000
102 Maria Sankt-Peterburg Klaviatuur 1 3000

Pärast normaliseerimist (näiteks kuni 3NF):

Tellimuste tabel:

Tellimuse ID Kliendi ID Tellimuse kuupäev
101 1 2023-10-26
102 2 2023-10-26

Kliendi tabel:

Kliendi ID Kliendi nimi Kliendi aadress
1 Ivan Moskva
2 Maria Sankt-Peterburg

Tellimuse detailide tabel:

Tellimuse detaili ID Tellimuse ID Tooted ID Kogus Ühe hind
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Toodete tabel:

Tooted ID Tooted nimetus
10 Sülearvuti
20 Hiir
30 Klaviatuur

Demormaliseerimine on vastupidine normaliseerimise protsess, mida mõnikord kasutatakse andmete lugemise jõudluse parandamiseks, suurendades dubleerimist.