NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 5 - Datové formáty XML a SQL Nové

V minulé lekci, Datové formáty CSV a JSON, jsme se věnovali nejrozšířenějším formátům pro datovou analýzu - CSV a JSON.

V dnešním tutoriálu datové analýzy budeme pokračovat popisem nejčastějších formátů souborů pro datovou analýzu.

XML

XML (Extensible Markup Language - rozšiřitelný značkovací jazyk) je textový formát pro uchovávání a přenos strukturovaných dat. Používá takzvané tagy, což jsou textové značky ohraničené špičatými závorkami < a >. Každý tag má svůj význam a obvykle tvoří dvojici – například <title> a </title> – mezi které se zapisuje konkrétní hodnota. Díky tomu můžeme přesně popsat význam každé části dat. XML se často používá v podnikových systémech, datových přenosech a při výměně dokumentů mezi různými aplikacemi.

XML soubory bývají větší než například JSON a jejich zpracování může být pomalejší. Proto se XML nehodí pro práci s obrovským množstvím dat, kde je rychlost a efektivita klíčová.

Struktura XML

XML má podobu stromové struktury. Tato hierarchie umožňuje logicky a přehledně uspořádat i velmi složité datové celky. Opět si ukažme příklad s uložením dvou osob, tentokrát do XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<osoby>
    <osoba>
        <jmeno>Jan</jmeno>
        <prijmeni>Novák</prijmeni>
        <ulice>Příkrá 3</ulice>
        <mesto hlavni="ne">Vlašim</mesto>
        <psc>25801</psc>
    </osoba>
    <osoba>
        <jmeno>Jana</jmeno>
        <prijmeni>Příhodová</prijmeni>
        <ulice>U Hrušní 15</ulice>
        <mesto hlavni="ne">Benešov</mesto>
        <psc>25601</psc>
    </osoba>
</osoby>

Vidíme, že XML je nejčitelnější, ale také nejupovídanější. První řádek obvykle definuje verzi a kódování souboru. Dále následuje jediný kořenový element. Element je obvykle definován otevírací a zavírací značkou, které píšeme pomocí špičatách závorek, např. <znacka> a </znacka>, kde značka začínající lomítkem je zavírací. Uvnitř těchto značek se nachází obsah elementu, což jsou buď další zanořené elementy nebo text. Data můžeme psát rovněž do atributů elementu, výše má město atribut hlavni.

Když má element jen málo dat, lze je všechny zapsat jen do jeho atributů. Element nemusí mít pak žádný obsah. Takový element se můžeme rozhodnout definovat jako nepárový a nemá pak zavírací značku. Jeho značka pak musí končit lomítkem:

<web url="www.itnetwork.cz" />

Ukázka XML souboru

Opět si vyzkoušíme otevřít nějaký vzorový dataset, tentokrát z výukové dokumentace Microsoftu. Vzhledem k tomu, že se opět jedná o rozsáhlejší soubor, ukážeme si jen jeho část. Soubor si nejprve zkopírujeme:

Zkopírování xml souboru - Úvod do datové analýzy a obchodního rozhodování

Vysvětlíme si, co jednotlivé značky znamenají:

  • <catalog> – kořenový element celého dokumentu, obsahuje všechny knihy.
  • <book> – záznam jedné knihy, má atribut id (např. id="bk101").
  • <author> – autor knihy.
  • <title> – název knihy.
  • <genre> – žánr knihy.
  • <price> – cena v dolarech.
  • <publish_date> – datum vydání.
  • <description> – stručný popis obsahu knihy.

Ve VS Code si otevřeme složku, kam chceme soubor vložit:

Vybereme složku pro uložení souboru - Úvod do datové analýzy a obchodního rozhodování

Ve složce vytvoříme nový soubor:

Přidání souboru do složky - Úvod do datové analýzy a obchodního rozhodování

Soubor nazveme books.xml:

Vytvoříme soubor books.xml - Úvod do datové analýzy a obchodního rozhodování

A zkopírovaná data do něj vložíme:

Zkopírovaná data vložíme do souboru - Úvod do datové analýzy a obchodního rozhodování

Vložení a úprava dat v souboru books.xml ve Visual Studio Code nám umožňuje přehledně pracovat s celou strukturou dokumentu, snadno odhalit chyby a mít kontrolu nad každým prvkem. Opět vidíme, že je obsah přehledně obarvený.

XML entity

Jelikož XML používá ke své syntaxi znaky <, >, &, nemůžeme je jen tak zapsat do dat elementů. Je potřeba je nahradit za tzv. entity (např. < zapíšeme v datech jako &lt; nebo jako &#60;). Jinak může dojít k chybné interpretaci struktury XML.

Kdyby měla v našem ukázkovém XML osoba např. místo jména přezdívku Joker ]:>, museli bychom pravou špičatou závorku zapsat takto:

<jmeno>Joker ]:&gt;</jmeno>

Entitami lze kromě speciálních znaků používaných v XML syntaxi zapsat i další znaky, které se jinak špatně píší, např. copyright ©. Ukažme si základní entity, které v XML datech použijeme, když chceme zapsat speciální znak:

Znak Popis Zástupné entity
  nedělitelná mezera &nbsp; &#160;
< menší než &lt; &#60;
> větší než &gt; &#62;
& ampersand &amp; &#38;
" dvojitá uvozovka &quot; &#34;
' jednoduchá uvozovka &apos; &#39;
¢ cent &cent; &#162;
£ libra &pound; &#163;
¥ yen &yen; &#165;
euro &euro; &#8364;
© copyright &copy; &#169;
® registrovaná známka &reg; &#174;
trademark &trade; &#8482;

Kompletní seznam všech takových značek nalezneme např. na Wikipedii.

SQL

Strukturovaný dotazovací jazyk SQL (Structured Query Language) se používá pro práci s daty uloženými v databázíchumožňuje vybírat, upravovat i ukládat data pomocí přesně definovaných dotazů. Tabulky v databázi mají sloupce a řádky, jako např. tabulky v Excelu. S tímto formátem se v kurzu seznámíme později, až budeme pracovat s databázemi. Prozatím si ukažme jen, jak takový datový soubor vypadá. Jedná se o sérii příkazů INSERT, které do databáze vloží jednotlivé řádky. Pro naše osoby by vypadal SQL soubor následovně:

INSERT INTO osoby (jmeno, prijmeni, ulice, mesto,  psc) VALUES
  ('Jan',  'Novák',      'Příkrá 3',   'Vlašim',  25801),
  ('Jana', 'Příhodová',  'U Hrušní 15','Benešov', 25601);

Nad příkazy může být ještě kód pro vytvoření databázové tabulky a další nastavení, mnůže vypadat např. takto:

CREATE TABLE IF NOT EXISTS osoby (
    id       SERIAL PRIMARY KEY,
    jmeno    VARCHAR(50)  NOT NULL,
    prijmeni VARCHAR(50)  NOT NULL,
    ulice    VARCHAR(100) NOT NULL,
    mesto    VARCHAR(50)  NOT NULL,
    psc      INTEGER      NOT NULL
);

VARCHAR a INTEGER jsou datové typy, jedná se o text (v závorce se definuje maxámální délka) a celé číslo.

V další lekci, Databáze a tabulky, se seznámíme se základní strukturou databázových tabulek.


 

Předchozí článek
Datové formáty CSV a JSON
Všechny články v sekci
Úvod do datové analýzy a obchodního rozhodování
Přeskočit článek
(nedoporučujeme)
Databáze a tabulky
Článek pro vás napsal Jan Rypáček
Avatar
Uživatelské hodnocení:
1 hlasů
Jan Rypáček
Aktivity