Datový sklad: Porovnání verzí

Smazaný obsah Přidaný obsah
Chrupoš (diskuse | příspěvky)
Přidána logické struktura DWH
Dinybot (diskuse | příspěvky)
m robot: stylistické, typografické a kódové korekce podle specifikace
Řádek 1:
'''Datový sklad''' (anglicky '''Data Warehouse''', případně '''DWH''') je zvláštní typ relační [[databáze]], která umožňuje řešit úlohy zaměřené převážně na analytické dotazování nad rozsáhlými soubory dat.<br />
 
== Definice datového skladu ==
K definici rozdílu mezi "běžnou"„běžnou“ relační [[databáze|databází]] a '''datovým skladem''' se obvykle používá následujících charakteristik popsaných Williamem Inmonem:
* '''Orientace na subjekt''' - U běžné relační databáze je obvyklá snaha o co nejmenší redundanci uložení dat, které je dosahováno jejich normalizací do [[3NF]] a vnitřním provázáním jednotlivých logických funkčních celků. V '''datovém skladu''' je naproti tomu řešení vždy vedeno snahou o jasnou vnitřní separaci jednotlivých funkčních celků - výsledkem je struktura, která je čitelnější pro uživatele (manažera, business analytika) za cenu zvýšených nároků na paměťový prostor.
* '''Integrovanost''' - Běžná provozní aplikace (program) nad relační databází řeší určitý specifický okruh úloh nad "svými"„svými“ specifickými daty. V '''datovém skladu''' je třeba naproti tomu shromáždit informace z mnoha různých zdrojů a seskupit je nikoliv podle původu, ale podle logického významu (úzce souvisí s '''orientací na subjekt''' - všechna data týkající se určité funkční oblasti potřebuji mít "na„na jedné hromadě"hromadě“ bez ohledu na to, odkud pocházejí)
* '''Nízká proměnlivost''' - Data jsou do '''datového skladu''' obvykle nahrávána ve větších dávkach (například v denních nebo týdenních intervalech) a pak již nejsou nijak modifikována.
* '''Historizace''' - Data jsou v '''datovém skladu''' obvykle udržována v historické podobě, nikoliv pouze v aktuálním stavu. To je dáno nutností provádění analýz zaměřených na vývoj v čase. V běžné relační databázi je z pohledu uživatelů obvykle zajímavý pouze aktuální stav datových objektů.
 
== Technologické charakteristiky datového skladu ==
Z požadavků na '''datový sklad''' vyplývají jeho technologické charakteristiky:
* '''Datový sklad''' musí obsahovat nástroj pro nahrávání dat z různých datových zdrojů, tyto zdroje mohou mít různé datové formáty a různé fyzické umístění, nemusí se zdaleka jednat pouze o relační databáze.
Řádek 14:
* Nelze předem vědět, jaké dotazy a jaké úlohy budou chtít uživatelé nad '''datovým skladem''' v budoucnosti řešit. (V době budování '''datového skladu''' je obvykle známý pouze typ úloh, nikoliv všechny jednotlivé dotazy a úlohy.) Z toho vyplvývá potřeba dostatečně flexibilních a přitom uživatelsky přívětivých analytických nástrojů.
 
== Logická struktura datového skladu ==
Data v datovém skladu jsou z logického (uživatelského) pohledu členěna do '''schémat''' - každé schéma odpovídá jedné analyzované funkční oblasti.<br />
Jádro každého schématu tvoří jedna nebo několik '''faktových tabulek'''. V nich jsou uložena vlastní analyzovaná data - číselné a finanční hodnoty, které jsou použity k analytickým výpočtům - agregacím, třídění apod. Většina paměťového místa v datovém skladu zabírají faktové tabulky, které obsahují detailní údaje ze všech zdrojů - tedy řádově více údajů než ostatní tabulky.<br />
Faktové tabulky jsou pomocí [[Cizí klíč|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.
 
=== Příklad ===
V datovém skladu je třeba uložit informace o všech prodejích z pokladen hypermarketů, data budou dále analyzována na základě doby prodeje, prodejny, typu zboží, dodavatele, probíhajících marketingových akcí a způsobu platby (kartou, hotově).<br />
Schéma ''Prodej'' bude obsahovat faktovou tabulku ''Položky prodeje'', kde bude pro každou prodanou položku uložen údaj o typu prodaného zboží, ceně a počtu kusů (případně prodané hmotnosti).<br />
Kromě této faktové tabulky bude schéma obsahovat také dimenze pro třídění položek prodeje: časové dimenze ''Datum'' a ''Hodina'' (v rámci dne), dimenzi ''Prodejna'', dimenzi ''Typ zboží'', kde bude jeden řádek pro každý jednotlivou možnou položku (například "Choceňský„Choceňský jogurt borůvkový 250ml"250ml“), dimenzi ''Kategorie zboží'' (obsahující řádky jako například "Jogurt"„Jogurt“), dimenzi ''Oddělení'' (obsahující řádky jako například "Mléčné„Mléčné výrobky"výrobky“), dimenzi ''Dodavatel'' (obsahující řádky jako například "Choceňská„Choceňská mlékárna a.s.") a tak dále.
Faktová tabulka musí být pomocí [[Cizí klíč|cizího klíče]] přímo nebo nepřímo propojena s každou z těchto dimenzí.
 
=== Hvězda a vločka ===
V příkladu je vidět, že některé dimenze jsou jednoduché - například pro dimenzi ''Prodejny'' prostě navrhnu tabulku, pro uložení údajů o prodejnách, napojím na ní faktovou tabulku a je vystaráno.<br />
Horší je situace v případě ''Typ zboží'' - ta se uvnitř sebe sama dále rozpadá - dimenze ''Kategorie zboží'' by vůbec nemusela být napojena na faktovou tabulku, ale na dimenzi ''Typ zboží'', dimenze ''Oddělení'' na ''Kategorii zboží'', dimenze ''Dodavatel'' na ''Typ zboží''. V tomto případě mluvíme o '''hierarchické dimenzi'''.