Normalizácia databázy: Prvý normálny formulár

Tieto dve jednoduché pravidlá vám pomôžu normalizovať vašu databázu

Prvý normálny formulár (1NF) nastavuje základné pravidlá organizovanej databázy:

Čo to znamená pri zvažovaní praktického návrhu databázy? Je to vlastne celkom jednoduché.

1. Odstrániť duplicitu

Prvé pravidlo diktuje, že nesmieme duplikovať údaje v rámci toho istého riadka tabuľky. V rámci databázovej komunity sa táto koncepcia označuje ako atomicita tabuľky. Tabuľky, ktoré spĺňajú toto pravidlo, sú atómové. Preskúmme tento princíp klasickým príkladom: tabuľku v databáze ľudských zdrojov, ktorá ukladá vzťah medzi manažérom a podriadeným. Na účely nášho príkladu uložíme obchodné pravidlo, že každý manažér môže mať jedného alebo viacerých podriadených, zatiaľ čo každý podriadený môže mať len jedného správcu.

Intuitívne pri vytváraní zoznamu alebo tabuľky na sledovanie týchto informácií môžeme vytvoriť tabuľku s nasledujúcimi políčkami:

Avšak spomenúť si prvé pravidlo uložené 1NF: Odstrániť duplicitné stĺpce z rovnakej tabuľky. Je zrejmé, že stĺpce Subordinate1-Subordinate4 sú duplicitné. Venujte chvíľku a premýšľajte nad problémami, ktoré tento scenár vyvolal. Ak má správca iba jedného podriadeného, ​​stĺpce Podriadené2-Podriadené4 sú jednoducho zbytočné úložné priestory (vzácna databázová komodita). Navyše si predstavte prípad, keď manažér už má 4 podriadených - čo sa stane, ak nastúpi na iného zamestnanca? Celá štruktúra tabuľky by vyžadovala úpravu.

V tomto momente sa zvyčajne objavuje druhá jasná myšlienka, ktorú tvoria nováčikov databázy: Nechceme mať viac ako jeden stĺpec a chceme umožniť flexibilné ukladanie dát. Skúsme to niečo takto:

A pole Podriadené by obsahovalo viac záznamov vo forme "Mary, Bill, Joe".

Toto riešenie je bližšie, ale tiež nedosahuje značku. Stĺpec podriadených je stále duplicitný a neatomický. Čo sa stane, keď potrebujeme pridať alebo odstrániť podriadeného? Musíme čítať a písať celý obsah tabuľky. To nie je v tejto situácii veľa, ale čo keby jeden manažér mal sto zamestnancov? Tiež komplikuje proces výberu údajov z databázy v budúcich dopytoch.

Tu je tabuľka, ktorá vyhovuje prvému pravidlu 1NF:

V tomto prípade má každý podriadený jediný záznam, ale správcovia môžu mať viacero záznamov.

2. Identifikujte primárny kľúč

A čo druhé pravidlo: identifikujte každý riadok jedinečným stĺpcom alebo sériou stĺpcov ( primárny kľúč )? Môžete sa pozrieť na vyššie uvedenú tabuľku a navrhnúť použitie sekundárneho stĺpca ako primárneho kľúča. Podradený stĺpec je v skutočnosti vhodným kandidátom na primárny kľúč vzhľadom na to, že naše obchodné pravidlá špecifikovali, že každý podriadený môže mať len jedného správcu. Údaje, ktoré sme si vybrali na uloženie v našej tabuľke, však robia toto menej ako ideálne riešenie. Čo sa stane, ak prijmeme iného zamestnanca menom Jim? Ako ukladáme do databázy jeho podriadený manažér?

Najlepšie je použiť ako primárny kľúč skutočne jedinečný identifikátor (napríklad ID zamestnanca). Naša finálna tabuľka by vyzerala takto:

Teraz je naša tabuľka v prvej normálnej forme! Ak by ste chceli pokračovať v štúdiu o normalizácii, prečítajte si ďalšie články v tejto sérii: