Banner

piatok 28. novembra 2014

Moderný reporting–príprava podkladu (Relačná databáza)

 

Než sa začneme hrať s dashboardmi v Jaspersoft, potrebujeme dátovú základňu. Začnem v niečom, kde sa cítim aspoň trošku “doma”.

Je to MySQL databáza.

V tomto programe si vytvoríme tzv. relačnú databázu. Takže než si nainštalujeme daný program, chcel by som napísať zopár pojmov a užitočných odkazov, ktoré pomôžu. Začnem však veľmi užitočnými článkami od p. Petra Zajíce na LINUXSOFT o MySQL všeobecne.

Pre tých, ktorí si radi po večeroch čítajú knižku odporúčim knihu “mistrovství v MySQL” od Michaela Koflera, ktorá vyzerá takto:

Priznám sa, že čo nedokážem nájsť na nete, tak hľadám v tejto biblii. Vrátim sa však k pojmu relačný databázový systém. Oficiálnu definíciu Vás nechám vygoogliť si, ja prejdem k podstate, ktorú vysvetlím tak trochu “excelovsky”.

image

Predchádzajúca tabuľka je súbor dát, kde stĺpce reprezentujú rôzne premenné (Kto, Kde, Kedy, Koľko a za Koľko predal tovar) a spoločne definujú jeden záznam, teda jedného človeka. Tým pádom, riadok = záznam.

Pozrime sa na túto tabuľku špekulačne – koľko pamäte môže zabrať? Túto otázku budem demonštrovať počtom znakov v každej bunke (Pre výpočet použijem funkciu LEN(), ktorá vráti počet znakov v bunke).

image

Vidíme, že táto malá databázka spotrebuje pamäť o veľkosti 467 znakov. Dá sa však toto množstvo redukovať? Odpoveď znie, áno. Prvé dva stĺpce sa totiž opakujú, preto ak napríklad meno Peter zakódujeme číslom 1 a mesto Praha taktiež, vytvorí sa nám zoznam Predajcov a Miest:

image

Tým pádom, môžeme pôvodnú tabuľku upraviť tak ,že miesto plného názvu mesta a mena predajcu vložíme iba dané tzv. referenčné číslo, alebo kľúč. Tabuľka bude mať v žltých stĺpcoch iba jedno číslo namiesto názvu a celkový počet znakov sa v tabuľke zredukuje na 286.

V prípade, že chceme urobiť pivotku, stačí doplniť pôvodné názvy cez funkciu VLOOKUP() a máme k dispozícii plnohodnotný dataset. Musím podotknúť, že sa pohybujeme v Exceli. MySQL funkciu VLOOKUP nepotrebuje, resp. v tomto prostredí sa nazýva relácia / integrita, ktorá sa medzi tabuľkami využíva pri spájaní.

Ďalšou výhodou je, že ak máme napr. pod číslom 6 Pardubice a zrazu sa niečo stane (Pardubice sa zlúčia s mestom Chrudim a vznikne Pardudim), tak nám stačí pod číslom 6 zmeniť názov a zvyšné data sú vždy aktualizované (počítač alebo my nemusíme ručne prepisovať každý riadok).

Ostanem dúfať, že tento popis stačí na to, aby ste si uvedomili silu a taktiež slabiny takéhoto relačného prepojenia tabuliek.

Existuje niekoľko metód, ako si takto pripraviť záznamy a rozkrájať ich na podtabuľky. Tieto metódy sa nazývajú Normalizačné pravidlá. Tie sú podrobne rozpísané v mnou spomínanej knihe na strane 191. Internetovo založení čitatiela si kliknú na Linuxsoft.

Tieto definície nebudem spomínať, prejdem však k vecnej logike. Pri konštrukcii databáze je veľmi dôležité si uvedomiť, čo s ňou potom budete robiť. Inak povedané, absolutne normalizovaná databáza môže byť nočná mora pre užívateľov, ktorí chcú selektovať data z viacerých tabuliek – vtedy skripty dosahujú veľkosti papiera A4 a ľahko sa pri manipulácii dá pomýliť! Na druhú stranu akákoľvek zmena popisných atribútov je jednoducho aplikovateľná.

Asi najlepší spôsob ako dosiahnúť cit je urobiť si vlastnú databázku a potom sa s ňou hrať, no rozhodne to nie je problematika na zopár článkov na blogu. Ja sa však chcem sústrediť na analytickú prácu, tým pádom náš relačný model mám hotový a bude vyzerať takto:

image

Tento pavúk sa tiež nazýva ERR diagram a slúži na to, aby sa užívateľ zorientoval vo funkcionalite a mohol komfortne selektovať. Len pre pochopenie vzťahov si predstavte, že jednotlivé prerušované čiary sú VLOOKUP funkcie medzi tabuľkami a to tak, že tabuľka z ktorej vychádza trojuholník je tabuľka, do ktorej sa ťahajú informácie z druhej tabuľky. Takže napríklad tabuľka DEALER dopĺňa data do tabuliek COST a SALES.

V budúcom článku si ukážeme ako nainštalovať MySQL a ako vytvoriť databázu spolu s tabuľkami. Kliknutím na odkaz download si môžete stiahnúť Excel s tabuľkou a počtami znakov. Kliknite tiež na facebook a pýtajte sa ak niečomu nerozumiete – potrebujete pomoc Winking smile.

             downloads_normal

Žiadne komentáre:

Zverejnenie komentára

Poznámka: Komentár môže zverejniť iba člen tohto blogu.