Ako sa stať analytikom, časť 7: Čo sú to databázy

článok na blog uverejnený: 29. septembra 2020

Táto séria článkov je venovaná prehľadu možností analyzovania údajov. Pre začiatočníkov má slúžiť ako cestovná mapa všetkých dôležitých kurzov v tejto oblasti. Pre pokročilých užívateľov a personalistov vo firmách môže slúžiť ako prehľad dôležitých technológií, ktoré by mal analytik ovládať.

V úvode nášho seriálu sme uviedli, že základným miestom na ukladanie údajov sú databázy. Tiež sme spomínali, že používame informačné systémy, lebo databáza samotná je pre obyčajného smrteľníka nie dostatočne prehľadná.

V dnešnej časti sa práve na databázy pozrieme bližšie. Povieme si ako fungujú najpoužívanejšie relačné databázy a skúsime nájsť odpoveď na otázku, prečo sú tieto znalosti dôležité nielen pre analytikov, ale dokonca aj pre bežných užívateľov, ktorí musia v Exceli navrhovať vlastné tabuľky.

Ako sa stať analytikom - databázy - kurz, relačné databázy

Čo je to relačná databáza

Relačná databáza (tiež nazývaná SQL databáza) je jeden z najstarších a zároveň najpoužívanejších systémov na ukladanie firemných údajov (sklad, objednávky, faktúry a pod.). Relačná databáza ukladá údaje vo forme tabuliek (viď ukážka tabuľky objednávok z databázy Northwind).

Ako sa stať analytikom - databázy - ukážka databázovej tabuľky

Takéto tabuľky väčšina ľudí pozná z Excelu, kde sa aj nazývajú databázové. Práve preto, lebo sa používajú rovnako ako tabuľky v relačnej databáze. Skutočná databáza je zložená z veľkého množstva takýchto tabuliek (rádovo desiatky, vo veľkých databázach až stovky tabuliek). Každá tabuľka v databáze tvorí tzv. reláciu (v angličtine relation). Práve na porozumení obsahu jednej relácie (resp. tabuľky) sa začína porozumenie celej relačnej databázy.

Čo je to relácia v databáze

Pre pochopenie relácie je dôležité rozumieť jej štruktúre, ktorá sa skladá z riadkov a stĺpcov (čo je na pohľad očividné 😊). Skôr ako vysvetlíme, čo tie radky a stĺpce znamenajú, vyskúšajme malý experiment. Pozrite na tabuľku objednávok hore a skúste povedať, ktorú časť tejto tabuľky považujete za dôležitejšiu – riadky alebo stĺpce?

Tí, ktorí odpovedali riadok, mali pravdu. Prečo riadok? Riadok je v relácií nositeľom informácie. Keď povieme, že máme v rukách tabuľku s objednávkami, myslíme tým to, že jeden riadok tejto relácie reprezentuje jednu objednávku. To, aká informácia je v tabuľke, sa prenáša aj do samotného názvu tabuľky. Stĺpce sú iba vlastnosti daného riadku. Zdá sa vám to očividné? Ok, skúsme inú tabuľku. Skúste identifikovať, čo je jeden riadok tabuľky na nasledovnom obrázku.

Ako sa stať analytikom - databázy - ukážka inej databázovej tabuľky

Nemôže to byť objednávka ako v prvom prípade, lebo informácia v stĺpci OrderID sa opakuje. Na to, aby sme zistili, čo je obsahom jedného riadku, musíme začať študovať jeho vlastnosti, t.j. informácie, ktoré máme o jednom riadku uchované v jednotlivých stĺpcoch. Rýchlo zistíme, že pre objednávku 10248 sa hodnoty líšia iba vo stĺpcoch ProductID (číslo produktu), Quantity (množstvo) a UnitPrice (jednotková cena). Na základe toho už prídeme na to, že tabuľka je pozmenená. A to tak, že v jednom riadku sú evidované aj informácie o jednotlivých predaných položkách na objednávke a preto je to tabuľka objednaných položiek. Na tom nič nemení to, že sa nám zobrazujú aj informácie, ktoré sú pre celú objednávku rovnaké (napr. zákaznícke označenie – CustomerID).

Zdá sa vám takýto guláš informácií divný? Áno, on aj divný je, lebo takto sa údaje v databáze neuchovávajú. Načo tlačiť všetky informácie do jednej tabuľky, ak vidíme, že sa opakujú, že ich máme v databáze na viacerých riadkoch.

Čo sú to relačné vzťahy?

Ak sme pochopili štruktúru relácie (tabuľky), je už iba krok k relačným vzťahom. Ak je relácia vlastne tabuľka, pri relačných vzťahoch sa bavíme o vzťahoch dvoch tabuliek. Skúsme náš predchádzajúci príklad trochu preupratať a pozrime sa na výsledok.

Ako sa stať analytikom - databázy - čo je relačný vzťah

To, čo sme urobili, bolo oddelenie informácií, ktoré sa týkajú iba objednávky – sú pre celú objednávku rovnaké bez ohľadu na objednávku. Druhá – spodná tabuľka obsahuje iba informácie relevantné pre objednané položky. Pre potreby nadväznosti je vytvorené prepojenie – vzťah do tabuľky objednávok pomocou stĺpca OrderID. Práve tento systém vzájomne prepojených relácií (tabuliek) tvorí základ relačných databáz. Pre analytika je znalosť týchto vzťahov kľúčová. Pre orientáciu sa relačné vzťahy zvyknú zakresľovať v podobe diagramu (viď príklad databázy Northwind).

Ako sa stať analytikom - databázy - schéma relácii a vzťahov v relačnej databáze

Pozor, databáza nie sú iba tabuľky a vzťahy. Databáza obsahuje aj iné objekty, napr. pohľady a indexy kvôli jednoduchšiemu a rýchlejšiemu analyzovaniu údajov, obsahuje tiež trigre na automatizovanie činností, vlastné funkcie a procedúry na doprogramovanie vlastnej funkcionality. Vzhľadom na ich početnosť a rozsiahlosť problematiky ich nemôžeme rozobrať na tomto mieste podrobnejšie.

Čo je to SQL

Doteraz sme vôbec nehovorili o jazyku SQL, ktorý sa v súvislosti s databázami často spomína. Bol na to dôvod. Práca s databázou neznamená nevyhnutne potrebu poznať jazyk SQL. To platí zvlášť pre obyčajných používateľov Excelu (kategória občasný analytik 😊). Ako príklad stačí pozrieť na 3. časť tohto seriálu, kde sme hovorili o nástroji PowerQuery. S jeho pomocou vieme veľmi dobre analyzovať databázové údaje priamo v Exceli, bez SQL. To neznamená, že je SQL nanič. Bez znalosti SQL sa v skutočnosti nemôžete považovať za analytika.

SQL (Structured Query Language) je základný jazyk používaný v relačných databázach. Slúži na vytváranie databázy, prácu s údajmi, zabezpečovanie prístupov, a v neposlednom rade aj na programovanie špecifickej funkcionality pre databázu. SQL nie je programovací jazyk v klasickom zmysle slova (C, C++, C#, Pascal,…), nakoľko príkazy sa nekompilujú do strojového kódu, ale sa priamo posielajú na SQL server, ktorý ich vykoná, prípadne vráti výsledok.
Takto vyzerá príklad SQL skriptu, ktorý vytvorí tabuľku a pridá do nej údaje.

Ako sa stať analytikom - databázy - SQL script - ukážka

Tento jazyk je štandardizovaný vo forme tzv. ANSI SQL a v tejto podobe sa s ním môžeme stretnúť v každej SQL databáze. To pre nás znamená, že základné príkazy SQL jazyka sú rovnaké bez ohľadu na databázový systém (Oracle, MS SQL server, MY SQL, Postgre SQL, DB2 a pod).

Načo je znalosť databáz pre obyčajného (Excel) používateľa

Povedzme, že niekto vo vašej spoločnosti vytvoril tabuľku na zapisovanie projektov. Keďže tento niekto poznal základy tvorenia tabuliek v Exceli, jeho pokus vyzerá celkom slušne:

Ako sa stať analytikom - databázy v praxi - ukážka tabuľky

Problémy nastanú, keď bude niekto potrebovať do tejto tabuľky zaevidovať informácie o subdodávateľovi. A tých môže byť pre jeden projekt viacero. Keďže autor nemal čas, tabuľku upravil voľakto iný, avšak už s menším úspechom.

Ako sa stať analytikom - databázy v praxi - ukážka tabuľky s problémom

Filtrovanie tejto tabuľky v praxi si používatelia užijú, lebo jednoduchá úloha na zistenie projektov so subdodávateľmi Firma A a Firma D (Čísla projektu 1, 3, 4) sa bude musieť filtrovať samostatne po jednom subdodávateľovi. Niekto vo firme si bol vedomý týchto nedostatok a preto tabuľku „opravil“.

Ako sa stať analytikom - databázy v praxi - ukážka tabuľky bez problémov

Teraz je síce dizajn o niečo lepší, ale používateľský komfort vyletel hore komínom. Ako pridáme Subdodávateľa 3, 4 a iných? Pridáme stĺpec? Nie, tadiaľ cesta nevedie.
Treba použiť starý známy systém relácií a ich vzťahov.

Ako sa stať analytikom - databázy - zdrojové tabuľky

Čo s tromi tabuľkami? Snáď nebudeme teraz tie údaje VLOOKUP-ovať? Nie, použijeme dátový model Excelu s doplnkom PowerPivot (viď naša 4. časť seriálu) a výstupy vizualizujeme v kontingenčnej tabuľke. Pre tých, ktorým smrdí zapisovanie údajov v niekoľkých tabuľkách a chcú pekný formulár, dávam do pozornosti Access, kde sa dá formulár vytvoriť niekoľkými klikmi.

Ktorý kurz SQL zvoliť pre začiatočníka

Začať treba výberom vhodnej platformy. SQL jazyk je síce veľmi podobný na väčšine SQL databáz, to však neznamená, že je všade rovnaký. Okrem toho treba pamätať že každý výrobca koncipuje databázu inak. Napr. schéma v MS SQL je niečo úplne iné ako schéma v Oracle.

Ako si teda zvoliť vhodnú platformu? Na tomto mieste by som si mohol prihriať polievočku, a odporúčať vám Microsoft SQL Server, ktorý vyučujem 😊. Namiesto toho budem trochu diplomat, a odpoviem – podľa potreby 😊, alebo ako vraví klasik – přiměřeně.

To znamená voliť podľa existujúcej ponuky pracovných pozícií, prípadne podľa existujúcej infraštruktúry vo vašej firme. Pričom na Slovensku sa dá riadiť pravidlom, že v malých spoločnostiach stretnete skôr open source databázy ako MySQL alebo Postre SQL, a vo väčších spoločnostiach skôr propietárne databázy od spoločností Microsoft, Oracle alebo IBM. Sú samozrejme výnimky, napr. portál Facebook-u facebook.com beží na open source databáze MySQL. Sú to však špeciálne prípady.

V ponuke SQL kurzov IT Learningu nájdete kurzy pre SQL platformy Oracle, Microsoft SQL server a MySQL (prípadne jeho klony ako napr. MariaDB). Na zoznámenie sa stačí zvoliť prvý kurz v poradí pre konkrétnu platformu. Obsahuje úvod do databázovej teórie, s ktorej veľmi skrátenou verziou ste mali možnosť zoznámiť sa v tomto článku. Názov vyzerá takto:

  • Oracle – základy jazyka SQL
  • Microsoft SQL Server I. – úvod do SQL databáz

Záverom

Ako sme mali možnosť vidieť, databáza nie nič strašné – väčšina používateľov Excelu sa s nimi dennodenne stretáva bez toho, aby o tom vedela. Práve pri vytváraní dobrých tabuliek sa bežný používateľ neraz zapotí, pretože nepozná základnú databázovú teóriu.

Ja viem, že v predchádzajúcej časti som sľuboval SQL. Tu veľa SQL nebolo, skôr veľa databázovej teórie. Avšak bez tejto teórie nevieme pracovať s SQL. Nebojte sa, s databázami sme ešte neskončili. V nasledujúcej časti sa pozrieme detailnejšie na jazyk SQL, jeho časti a čo všetko musí analytik ovládať na to, aby mohol o sebe vyhlásiť, že ovláda SQL.

Páčil sa vám článok? Pošleme vám podobné.
Aktivujte si okamžité zasielanie noviniek a článkov – už vám od nás nikdy nič neunikne. Môžeme vás okamžite informovať o aktuálnej akcii, novinke, špeciálnej kampani či zľave alebo novom článku na našom blogu. Akonáhle sa u nás v novinkách niečo zmení alebo pridá, do pár minút vám automaticky posielame email s odkazom na novinku na našu stránku. A odhlásiť sa môžete kedykoľvek. Nič neriskujete.


Nikam neodchádzajte, pozrite si naše novinky, akcie alebo si
prečítajte ďalšie podobné články:

Podobné články z kategórie
analýza, Databázy a SQL servery, Excel, jazyk SQL