1 / 15

Normalizácia

Normalizácia. Čo je normalizácia ?. Normalizácia je postup, ktorým sa postupne určuje štruktúra tabuľky tak, aby pri spracovaní dát nevznikali žiadne problémy. Je to činnosť, ktorá vedie k dobre navrhnutým tabuľkám.

karen-ware
Download Presentation

Normalizácia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Normalizácia

  2. Čo je normalizácia ? • Normalizácia je postup, ktorým sa postupne určuje štruktúra tabuľky tak, aby pri spracovaní dát nevznikali žiadne problémy. • Je to činnosť, ktorá vedie k dobre navrhnutým tabuľkám. • Princípy normalizácie definoval E. F. Codd a nie je to suchá teória. Boli overené praxou a za tie dlhé roky tvorby databázových aplikácií sa vypracovali určité postupy tvorby tabuliek, ktoré sa nazývajú normálne formy. • Najčastejšie sa používajú prvé tri normálne formy

  3. Príklad • V nemenovanej štátnej inštitúcii je archív objednávok. • Slečna referentka (ktorá je naša kamarátka) sa v tom už nevyzná, a tak sme jej sľúbili, že pre ňu vytvoríme program, ktorý jej bude tieto objednávky evidovať.

  4. Nenormalizovaná forma Tabuľka: Objednávky O objednávke budeme evidovať pravdepodobne tieto údaje: Číslo objednávky, Kód tovaru na objednávke, Dátum objednávky, Počet kusov tovaru, Cenu tovaru a Údaje o dodávateľovi. Dáta v tabuľke sú v nenormalizovanej forme, pokiaľ sa v nich nachádzajú opakujúce sa atribúty, ktoré nie sú atomické. Ak niektorá časť tabuľky je opäť tabuľka, potom je výsledná tabuľka v nenormalizovanej forme. Proces normalizácie začína 1NF a preto je potrebné najskôr previesť dáta z NF do 1NF.

  5. Prvá normálna forma 1NF Tabuľka: Objednávky v 1NF • Tabuľka je v 1NF ak všetky atribúty sú ďalej nedeliteľné (atomické) t.j. iba jednoduché atribúty. • nie sú povolené viachodnotové atribúty • nie sú povolené zložené atribúty. • Odstránime zložený atribút Dodávateľ a rozložíme ho na stĺpce, ktoré pridáme do tabuľky. Teraz je tabuľka v 1NF.

  6. Prvá normálna forma 1NF • ZARADENIE (INSERT) – nemôžeme zaradiť nového dodávateľa, pokiaľ nedodáva aspoň jeden tovar • ZRUŠENIE (DELETE) – ak dodávateľ prestane dodávať nejaký tovar je potrebné zrušiť tento vzťah. V prípade, že je to posledný výrobok, zrušia sa aj všetky informácie o dodávateľovi, čo nie je výhodné. • AKTUALIZÁCIA (UPDATE) – informácie o jednom dodávateľovi sa vyskytujú viac krát. Ich odstránením sa dostaneme do druhej normálnej formy. Možné problémy pri základných operáciách:

  7. Prvá normálna forma 1NF V tabuľke Objednávky existujú rôzne závislosti • CENA_TOVARU závisí od KOD_TOVARU • POCET závisí od CISLO_OBJ a KOD_TOVARU • Informácie o dodávateľovi sú závislé od CISLO_OBJ

  8. Druhá normálna forma 2NF Objednávky v 2NF Tabuľka je v 2NF ak je v 1NF a každý nekľúčový atribút je závislý iba na primárnom kľúči. 2NF získame tak, že vytvoríme tri samostatné tabuľky.

  9. Unikátny identifikátor • Nanešťastie ešte nemáme opísané vzťahy medzi oboma entitami. Na to potrebujeme zadefinovať akýsi unikátny identifikátor. • Bude to nový atribút entity, ktorý bude mať tieto vlastnosti: • Bude unikátny v celej tabuľke, opisujúcej danú entitu. To znamená, že sa v celej tabuľke nenájdu dva riadky, ktoré by mali rovnakú hodnotu tohto atribútu. • Jeho hodnota nesmie byť prázdna po celý čas existencie tabuľky. • Už raz zadaná hodnota tohto identifikátora sa nesmie v danom riadku tabuľky nikdy zmeniť po dobu existencie tabuľky. • My už v podstate tento identifikátor poznáme. Je ním nám dobre známy primárny kľúč.

  10. Primárny kľúč • Základom úspechu je správne zvoliť primárny kľúč. Začiatočníci robia často chybu v tom, že za primárny kľúč vyberú napr. priezvisko. • My však vieme, že existujú ľudia, ktorí majú rovnaké priezvisko. • Existuje pravidlo, ktoré hovorí, že primárny kľúč by mal byť čo najmenší. Preto je veľmi vhodné zvoliť ako primárny kľúč číslo, ale nemusí to tak byť. V našej tabuľke sme si pre lepšiu orientáciu zvolili v niektorých tabuľkách aj primárne kľúče zložené z písmena a čísla. • Primárny kľúč môže byť zložený aj z viacerých atribútov – to závisí od konkrétnej aplikácie. • Upravíme diagramy tak, že do každej entity vložíme resp. si v nej zvolíme identifikátor, ktorý bude primárnym kľúčom tabuľky a označíme ho podčiarknutím

  11. Unikátny identifikátor Objednávky v 2NF

  12. Druhá normálna forma 2NF • ZARADENIE (INSERT) – nemôžeme zaradiť nového dodávateľa, ak je udaná iba jeho adresa (je potrebné poznať číslo objednávky) • ZRUŠENIE (DELETE) – ak zrušíme informácie o dodávateľovi stratíme informácie aj o dodávkach, resp. ak zrušíme číslo objednávky stratíme informácie o dodávateľovi • AKTUALIZÁCIA (UPDATE) – ak sa zmení napr. adresa dodávateľa, potom je potrebné vykonať aktualizáciu vo všetkých výskytoch informácií o dodávateľovi Aj tabuľky v 2NF môžu ešte vykazovať problémy. Podobne je tomu aj v prípade HLAV_OBJ. Sú podobné, ako ich vykazovala 1NF pri operácii s dátami. HLAV_OBJ vykazuje tranzitné závislosti.

  13. Tretia normálna forma 3NF • Tabuľka je v 3NF ak je v 2NF a žiaden nekľúčový atribút tranzitne nezávisí na primárnom kľúči. • Tranzitívna závislosť znamená, že hodnoty atribútov nezávisia iba na primárnom kľúči, ale aj na hodnotách iných atribútov, ktoré sú zase závislé na primárnom kľúči. • Inak povedané, 3NF znamená, že žiadne stĺpce v tabuľke nie sú závislé na inom stĺpci, ktorý závisí od primárneho kľúča. • V našom prípade túto podmienku nespĺňa tabuľka HLAV_OBJ, pretože atribúty MENO_DOD a ADR_DOD sú závislé od atribútu KOD_DOD. Preto tieto atribúty oddelíme a vytvoríme novú tabuľku.

  14. Tretia normálna forma 3NF Objednávky v 3NF

  15. Vzťahy medzi tabuľkami m:n 1:n 1:n 1:n

More Related