Lekce 2 - Data Mining - Základní pojmy
V minulé lekci, Data Mining - Úvod do problematiky, jsme se obecně seznámili s problematikou Data Miningu.
V tomto tutoriálu Data Miningu si vysvětlíme základní pojmy, které při práci s daty používáme, popř. poznáme další pojmy, se kterými se během dalších lekcí setkáme. Dozvíme se, co jsou to metadata, povíme si o relačních a objektových databázích, vysvětlíme si pojem OLAP a popíšeme si rozdíl mezi datovým skladem (data warehouse) a datovým jezerem (data lake).
Data
Pojem data bývá často zaměňován s pojmem informace. Je tu ale rozdíl. Zatímco data jsou prostým záznamem hodnot, informace se z nich stávají až po jejich výkladu v kontextu s využitím znalostí. Data, s nimiž se operuje v programovacích jazycích, mají přiřazený datový typ. Ten určuje, jak se data kódují a jak se mají chápat. Převod dat mezi různými kódy a formáty nazýváme konverzí dat. Blíže rozlišujeme datové typy, které však nejsou předmětem této lekce.
Metadata
Pojmem metadata se používá k označení doplňujících dat, která slouží k vyhledání nebo zpracování popisovaných dat. Příkladem metadat může být přípona nebo hlavička souboru.
Databáze
Databáze je nástroj pro uchovávání velkého množství dat. Software pro práci s databází, který tvoří rozhraní mezi aplikačními programy a uloženými daty, nazýváme databázový systém, resp. systém řízení báze dat (Database Management System, DBMS). Běžně se označením "databáze" dnes myslí jak uložená data, tak i software (Microsoft Access, MySQL, SQLite, PostgreSQL, Microsoft SQL Server, Oracle, Firebird).
Typy databází
Rozlišujeme různé typy databází. Dříve byly používány ploché, síťové a hierarchické databáze. Pro pochopení odlišnosti od dnes rozšířených relačních databází si je stručně popíšeme:
- plochá (flat) databáze je základním typem databáze, která uchovává data jako obyčejnou sadu záznamů bez vazeb na jiné,
- hierarchická databáze dovoluje definovat k jednotlivým tabulkám rodičovské tabulky; každý záznam v tabulce musí obsahovat odkaz na jeden ze záznamů z nadřazené tabulky,
- síťová databáze je od hierarchické databáze rozšířena o možnost mít více rodičovských tabulek.
Relační databáze
Relační databáze staví datové tabulky na stejnou úroveň. Tvoří ji libovolný počet tabulek, které slouží k ukládání dat - řádků (rows). Řádky musí být ve formátu, který je definován sloupci (columns). Unikátními identifikátory řádků jsou tzv. primární klíče. Některým tabulkám přiřazujeme takzvané cizí klíče (foreign keys), které definují odkaz na primární klíč z jiné (možno i stejné) tabulky. Přidáním sloupce označeného jako cizí klíč definujeme, že každý řádek tabulky se odkazuje na jiný řádek jiné tabulky. O struktuře tabulek a relací hovoříme jako o datovém modelu (Entity Relationship Diagram, ERD). Rozlišujeme tři typy relací (1:1, 1:N, M:N).
Objektové databáze
S nástupem objektově orientovaného programování se objevila myšlenka ukládat data v databázi ve formě objektů (např. obrázku). Techniky, které vytváří datové objekty schopné korespondovat se záznamy v klasické relační databázi, se nazývají object-relation mapping (ORM nebo OR mapping):
Databázové jazyky
Pro komunikaci a interakci s DBMS existují datové jazyky (database languages):
- QBE (query by example),
- SQL (structured query language).
QBE nabízí uživateli poměrně jednoduchý způsob kladení dotazů pomocí formulářů, které uživatel vyplní. Tento způsob je vhodný pro méně zkušené uživatele. SQL je nástroj rychlejší a flexibilnější. Jedná se o jednoduchý programovací jazyk pro definování dat a manipulaci s daty. Nezbytná je znalost syntaxe jazyka a detailní struktury databáze. Nejobvyklejšími typy jsou: MS-SQL, MySQL, Oracle, PostgreSQL a SQLite.
Níže vidíme příklad SQL dotazu, kterým se zobrazí výpis komentářů z druhého kvartálu r. 2012, seřazených podle data:
SELECT Obsah, Datum FROM Komentar WHERE Datum BETWEEN '2012-3-1' AND '2012-6-30' ORDER BY Datum;
OLAP
Flexibilitu, rychlost i příjemné a intuitivní ovládání nabízí uživatelům nástroj pro analýzu a vizualizaci dat OLAP (On-Line Analytical Processing). Na data je v něm pohlíženo jako na mnohorozměrnou tabulku - datovou krychli (data cube). Tento způsob uložení umožňuje rychlé zobrazení různých pohledů na data (OLAP operations). Jednoduché použití OLAP může být rizikové v nesprávné či nepřesné interpretaci dat. Nesprávná interpretace může být zapříčiněna mylným zobecněním závěrů při přechodu mezi jednotlivými úrovněmi podrobnosti (granularity). Podívejme se na obrázek struktury datové kostky:
OLAP (někdy též označovaný jako MOLAP - multidimenzionální OLAP) má značné nároky na datový server. Z tohoto důvodu se používá tzv. ROLAP, což je relační OLAP, založený na klasické relační databázi. V tomto případě jsou dotazy převáděny do jazyka SQL. Mohlo by se zdát, že OLAP je v podstatě Data Mining. Využitím OLAP nicméně získáváme z dat pouze sumární charakteristiky na zvolenou granularitu pohledu. O Data Mining se ale jedná, až pokud hledáme v datech souvislosti a vzorce.
OLAP tedy přináší odpovědi na specifikované otázky (např. prodej určitého produktu, za časový úsek, na vybrané pobočce), ale sám o sobě nic neobjevuje.
Datový sklad
Datový sklad (data warehouse) je centralizované uložiště, které umožňuje ukládání dat z různých zdrojů. Většinou je pro ukládání a indexaci použita některá relační databáze (ORACLE, INFORMIX, SYBASE MS SQL Server). Jak klasické relační databáze, tak i datové sklady jsou úložištěm dat, avšak slouží k různým účelům:
Datový sklad se od běžné relační databáze odlišuje:
- orientací na subjekt: zatímco datový sklad uchovává data vhodná pro podporu rozhodování na manažerské úrovni (data za celý podnik), relační databáze uchovávají data potřebná pro operativní řízení (pro určitý pracovní úsek) bez ohledu na to, zda budou využitelná při strategickém rozhodování,
- integrovaností: v datovém skladu je třeba shromáždit informace z mnoha různých zdrojů a seskupit je podle logického významu,
- nízkou proměnlivostí: data jsou do datového skladu obvykle nahrávána ve větších dávkách (např. v denních nebo týdenních intervalech) a pak již nejsou nijak modifikována,
- historizací: data jsou v datovém skladu obvykle udržována v historické podobě. To je dáno nutností provádění analýz zaměřených na vývoj v čase.
Struktura datového skladu
Data v datovém skladu jsou z logického pohledu členěna do schémat, přičemž každé schéma odpovídá jedné analyzované funkční oblasti. Jádro každého schématu tvoří jedna nebo několik faktových tabulek. V těchto faktových tabulkách jsou uložena vlastní analyzovaná data. Faktové tabulky jsou pomocí cizích klíčů spojeny s dimenzemi. Dimenze jsou tabulky, které obsahují seznamy hodnot sloužících ke kategorizaci a třídění dat ve faktových tabulkách. Datový sklad má své uspořádání - schéma.
Datový trh
Datový trh (data mart) je podmnožinou datového skladu, zaměřeného na konkrétní obor podnikání, oddělení nebo předmět. Data marts zpřístupňují specifická data pro určenou skupinu uživatelů, což jim umožňuje operativní přístup k informacím, aniž by museli procházet celý datový sklad. Spousta společností má datový trh odpovídající konkrétnímu oddělení (např. finance, sales či marketing). Datový trh je vybudován z datového skladu (a popř. jiných datových zdrojů) pomocí procesu, který zahrnuje několik technologií a nástrojů pro návrh a konstrukci fyzické databáze, procesu naplnění daty a nastavení protokolů pro přístup a správu.
Datové jezero
Datové jezero (data lake) je masivním úložištěm nestrukturovaných a nezpracovaných dat dodávaných z více zdrojů. Díky možnosti ukládat data v nezpracovaném formátu jsou datová jezera dostupnější a nákladově efektivnější než datové sklady.
Např. vládní organizace mohou sledovat data o spotřebě energie, dopravě apod. a ukládat je v takovémto datovém jezeře, zatímco zjišťují, jak bude možné tato data využít v budoucnu.
Zopakujme si tedy na závěr, že datová tržiště, datové sklady a datová jezera jsou klíčová centrální úložiště dat, ale v rámci organizace slouží k různým účelům.
V příští lekci, Data Mining - Metodologie procesu a používané techniky, se blíže seznámíme s Data Mining procesem a s užívanými technikami.