Mis on normaliseerimine?
sobes.tech AI
Vastus AI-lt
Andmete normaliseerimine andmebaaside kontekstis on protsess, mille käigus organiseeritakse andmeid eesmärgiga vähendada liigset ja parandada andmete terviklikkust. Seda saavutatakse, jagades suuremad tabelid väiksemateks ja ühendades nende suhteid.
Peamised eesmärgid:
- Andmete dubleerimise kõrvaldamine.
- Andmete terviklikkuse parandamine (välkudes sisestamise, uuendamise ja kustutamise anomaaliaid).
- Salvestamise ja päringute tõhususe suurendamine (mõnel juhul).
Normaliseerimisprotsess põhineb normaalsete vormide (NF) põhimõtetel. Kõige levinumad:
- Esimene normaalne vorm (1NF): Andmed on aatomilised lahtrites, puuduvad korduvad veergude grupid.
- Teine normaalne vorm (2NF): Asub 1NF-is ja iga mitte-võtme atribuut on täielikult funktsionaalselt sõltuv kogu esmasest võtme.
- Kolmas normaalne vorm (3NF): Asub 2NF-is ja ei ole transitiivseid funktsionaalseid sõltuvusi mitte-võtme atribuutide vahel teiste mitte-võtme atribuutide kaudu.
Näide:
Algne "Tellimused_Tooted" tabel:
| Tellimuse ID | Tellimuse kuupäev | Toote ID | Toote nimi | Toote hind | Kogus | Kliendi nimi | Kliendi aadress |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Telefon | 500 | 1 | Ivan Petrov | Puskina tänav, 10 |
| 1 | 2023-10-27 | 102 | Kõrvaklapid | 100 | 2 | Ivan Petrov | Puskina tänav, 10 |
| 2 | 2023-10-27 | 101 | Telefon | 500 | 1 | Maria Ivanova | Lermontov tänav, 5 |
Pärast normaliseerimist (kuni 3NF):
"Tellimused":
| Tellimuse ID | Tellimuse kuupäev | Kliendi ID |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
"Tellimuse üksused":
| Üksuse ID | Tellimuse ID | Toote ID | Kogus |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
"Tooted":
| Toote ID | Toote nimi | Toote hind |
|---|---|---|
| 101 | Telefon | 500 |
| 102 | Kõrvaklapid | 100 |
"Kliendid":
| Kliendi ID | Kliendi nimi | Kliendi aadress |
|---|---|---|
| 1 | Ivan Petrov | Puskina tänav, 10 |
| 2 | Maria Ivanova | Lermontov tänav, 5 |
Liiga suur normaliseerimine võib suurendada ühenduste (JOIN) arvu päringute täitmisel, mis võib vähendada jõudlust. Seetõttu otsitakse andmebaasi projekteerimisel sageli tasakaalu normaliseerimise astme ja jõudluse vahel. Denormaliseerimine on protsess, kus teadlikult rikutakse normaalvorme jõudluse parandamiseks, tavaliselt lisades liigseid andmeid.