Normalizácia databázy: Prechod do druhého normálneho formátu (2NF)

Vloženie databázy do druhého normálneho formulára

Počas uplynulého mesiaca sme sa zaoberali niekoľkými aspektmi normalizácie databázovej tabuľky. Najprv sme diskutovali o základných princípoch normalizácie databázy. Naposledy sme preskúmali základné požiadavky stanovené prvým normálnym formulárom (1NF). Teraz pokračujte v našej ceste a pokryte princípy druhej normálnej formy (2NF).

Pripomeňte si všeobecné požiadavky 2NF:

Tieto pravidlá možno zhrnúť do jednoduchého príkazu: 2NF sa pokúša znížiť množstvo redundantných údajov v tabuľke tým, že ich extrahuje, umiestni ich do nových tabuliek a vytvára vzťahy medzi týmito tabuľkami.

Pozrime sa na príklad. Predstavte si online obchod, ktorý uchováva informácie o zákazníkoch v databáze. Môžu mať jednu tabuľku s názvom Zákazníci s nasledujúcimi prvkami:

Stručný pohľad na túto tabuľku odhaľuje malé množstvo nadbytočných údajov. Ukladáme záznamy "Sea Cliff, NY 11579" a "Miami, FL 33157" dvakrát. Teraz by sme v našom jednoduchom príklade nemali príliš veľký priestor na ukladanie, ale predstavte si, ak by sme mali v našom stole tisíce riadkov. Navyše, ak by sa zmenil poštový kód pre službu Sea Cliff, bolo by potrebné vykonať túto zmenu na mnohých miestach v celej databáze.

V štruktúre databázy kompatibilnej s 2NF sa tieto redundantné informácie extrahujú a ukladajú do samostatnej tabuľky. Naša nová tabuľka (nazývame to ZIP) môže mať nasledujúce polia:

Ak chceme byť super-efektívni, môžeme túto tabuľku dokončiť aj dopredu - pošta poskytuje adresár všetkých platných PSČ a ich vzťahy medzi mestom a štátom. Určite ste narazili na situáciu, keď bol tento typ databázy použitý. Niekto, kto prijal objednávku, mohol najprv požiadať o váš poštový kód a potom poznal mesto a štát, z ktorých ste volali. Tento typ usporiadania znižuje chybu operátora a zvyšuje účinnosť.

Teraz, keď sme odstránili duplicitné údaje z tabuľky Zákazníci, splnili sme prvé pravidlo druhého normálneho formulára. Stále potrebujeme použiť cudzí kľúč na spojenie dvoch tabuliek dohromady. Na vytvorenie tohto vzťahu použijeme PSČ (primárny kľúč z tabuľky ZIP). Tu je naša nová tabuľka Zákazníci:

Teraz sme minimalizovali množstvo redundantných informácií uložených v databáze a naša štruktúra je v druhej normálnej forme!

Ak chcete zaistiť normalizáciu databázy, prečítajte si naše ďalšie články v tejto sérii: