Teie andmebaasi normaliseerimine: esimene normaalne vorm

Need kaks lihtsat reeglit aitavad teie andmebaasi normaliseerida

Esimene tavaline vorm (1NF) määrab organiseeritud andmebaasi põhireeglid:

Mida need reeglid tähendavad andmebaasi praktilise kujundamise kaalumisel? See on tegelikult üsna lihtne.

1. Katlakivi eemaldamine

Esimene reegel sätestab, et me ei tohi dubleerida andmeid sama rea ​​tabelis. Andmebaasi kogukonnas on seda kontseptsiooni viidatud kui tabeli atomaarsust. Selle reegliga kooskõlas olevad tabelid on oletatavad aatomi järgi. Uurime seda põhimõtet klassikalise näitega: tabel inimressursside andmebaasis, mis salvestab juhi ja alluva suhte. Meie näite eesmärgil rakendame ettevõtte reeglit, et igal halduril võib olla üks või mitu alluvat, samas kui igal alluvatel on ainult üks juht.

Intuitiivselt võib loendi või tabeli loomisel selle teabe jälgimiseks luua järgmiste väljade tabeli:

Kuid tuletage meelde esimene eeskiri, mille on kehtestanud 1NF: kaotage topelttolerantsid samast tabelist. Ilmselgelt on veeru Subordinate1-Subordinate4 dubleerivad. Võta hetk ja mõelge sellele stsenaariumi tõstatatud probleemidele. Kui halduril on ainult üks alamrubriik, on allfondi 2-alamandaadiga4 veerud lihtsalt raisatud ruumi (väärtuslik andmebaasi kaubaartikkel). Veelgi enam, kujutlege juhtumit, kus juhil on juba 4 allutatud isikut - mis juhtub, kui ta võtab teise töövõtja? Kogu tabeli struktuur vajab muutmist.

Sellel hetkel tekib andmebaasi algajatele tavaliselt teine ​​erksaim idee: me ei soovi enam kui ühte veergu ja me tahame võimaldada paindlikku andmesalvestust. Proovime midagi sellist:

Ja alamvaldkondade väli sisaldab mitut kirje vormi "Mary, Bill, Joe".

See lahendus on lähemal, kuid ka kaubamärgi puudumine. Alluvate veerg on endiselt korduv ja mitte-aatomi. Mis juhtub, kui peame lisama või eemaldama alluvaid? Peame lugema ja kirjutama kogu tabeli sisu. Selles olukorras pole suur asi, aga kui juhatajal oleks sada töötajat? Samuti raskendab see andmebaaside andmete valimise protsessi tulevaste päringute puhul.

Siin on tabel, mis vastab esimesele eeskirjale 1NF:

Sellisel juhul on igal alamalal üks kirje, kuid juhtidele võib olla mitu sisestust.

2. Määra peamine võti

Nüüd, mis on teise reegli puhul: tuvastage iga rida, millel on ainulaadne veerg või veergude komplekt ( esmane võti )? Võite vaadata ülaltoodud tabelit ja soovitada kasutada alljärgnevat veergit primaarvõtmena. Tegelikult on alljärgnev veerg primaarvõtme jaoks hea kandidaadi, kuna meie ärireeglites on määratletud, et igal alluvatel on ainult üks juht. Kuid andmed, mille valisime tabelisse salvestada, muudavad selle vähem kui ideaalseks lahenduseks. Mis juhtub, kui võtame tööle teise töötaja nimega Jim? Kuidas me saame oma juhi ja alluvate suhe andmebaasi salvestada?

Parim on kasutada tõeliselt unikaalset identifikaatorit (näiteks töötaja ID-d) primaarvõtmena . Meie lõplik tabel näeb välja selline:

Nüüd on meie laud esimeses tavalises vormis! Kui soovite jätkata normaliseerimise tundmaõppimist, lugege selle sarja muid artikleid: