Ukládání dat aneb kam s nimi? souborová—databázová koncepce
Souborová koncepce Data jsou uložena v izolovaných souborech. S každým souborem pracuje určitá aplikace Možné operace: Vytvořit, otevřít, zavřít, zrušit Čtení souboru Zápis do souboru, úpravy Vytvoření kopií a verzí souboru
Souborová koncepce – výhody Jednoduché pořízení (nahrajeme do adresáře) Snadné naplnění (kopírování mezi složkami) Pocit přehlednosti (při menší velikosti data přehlédneme, při větším počtu – viz nevýhody) Jednoduché pořízení (nahrajeme do adresáře) Snadné naplnění (kopírování mezi složkami) Pocit přehlednosti (při menší velikosti data přehlédneme, při větším počtu – viz nevýhody)
Souborová koncepce – nevýhody Redundance (1 údaj obsažen 2× i víckrát) Nekonzistence dat (2 kopie téhož nejsou stejné) Obtížnost přístupu k datům (každý požadavek uživatele vyžaduje nový program) Obtížné vyhledávání (pokud si myslíme, že si pamatujeme, kde co máme, není to pravda) Redundance (1 údaj obsažen 2× i víckrát) Nekonzistence dat (2 kopie téhož nejsou stejné) Obtížnost přístupu k datům (každý požadavek uživatele vyžaduje nový program) Obtížné vyhledávání (pokud si myslíme, že si pamatujeme, kde co máme, není to pravda)
Souborová koncepce – nevýhody Izolace dat (data jsou v různých izolovaných souborech různých formátů). Problémy s více uživateli (aktualizace dat více uživateli vede k nekonzistenci). Problémy s ochranou dat (je obtížné zajistit utajení dat před neoprávněným přístupem). Izolace dat (data jsou v různých izolovaných souborech různých formátů). Problémy s více uživateli (aktualizace dat více uživateli vede k nekonzistenci). Problémy s ochranou dat (je obtížné zajistit utajení dat před neoprávněným přístupem).
Souborová koncepce – nevýhody Problémy s integritou dat (data nemají žádná pravidla – integritní omezení). Nízké prostředky pro vytváření vazeb mezi záznamy souborů. Problémy s integritou dat (data nemají žádná pravidla – integritní omezení). Nízké prostředky pro vytváření vazeb mezi záznamy souborů.
Databáze Soubor dat, tvořený znaky, čísly, řetězci apod. Struktura databáze umožňuje vyhledávání dat pomocí počítačových systémů Data jsou centrálně strukturovaná Data definována podle schématu Existuje nezávisle na aplikačních programech Soubor informací, tvořený znaky, čísly, řetězci apod. Struktura databáze umožňuje vyhledávání dat pomocí počítačových systémů Data jsou centrálně strukturovaná Data definována podle schématu Existuje nezávisle na aplikačních programech
Databáze obsahuje Datové prvky (záznam elementárních hodnot) Vztahy mezi prvky (datové struktury) Integritní omezení (podmínky) Schéma (popis dat pro uživatele) Datové prvky (záznam elementárních hodnot) Vztahy mezi prvky (datové struktury) Integritní omezení (podmínky) Schéma (popis dat pro uživatele)
Databáze – výhody Nezávislost na programech Efektivní přístup k datům Zkrácený vývoj aplikací Zajištěna integrita dat Nezávislost na programech Efektivní přístup k datům Zkrácený vývoj aplikací Zajištěna integrita dat
Databáze – výhody Zajištěna ochrana dat Řízená správa dat a transakcí s nimi Možnost přístupu více uživatelů Opravy chyb a zotavení Zajištěna ochrana dat Řízená správa dat a transakcí s nimi Možnost přístupu více uživatelů Opravy chyb a zotavení
Databáze – výhody jinak Perzistence – data nezávislá na programech Sdílení – k datům může více uživatelů Integrita – konzistence dat, integrita (podmínky) Autorizace – řízení přístupových práv Neredundance – údaje se v databázi zbytečně neopakují Nezávislost – programy nejsou závislé na uložení dat Perzistence – data nezávislá na programech Sdílení – k datům může více uživatelů Integrita – konzistence dat, integrita (podmínky) Autorizace – řízení přístupových Neredundance – údaje se v databázi zbytečně neopakují Nezávislost – programy nejsou závislé na uložení dat
SŘBD Systém řízení báze dat Centrální správa databáze Obecný sw systém pro řízení sdíleného přístupu k databázi Zajišťuje bezpečnost Zajišťuje integritu uložených dat Systém řízení báze dat Centrální správa databáze Obecný sw systém pro řízení sdíleného přístupu k databázi Zajišťuje bezpečnost Zajišťuje integritu uložených dat
DataBázový Systém – DBS DataBáze + Systém Řízení Báze Dat DB + SŘDB = DBS SŘBD DATABÁZE DATA METADATA
Metadata Údaje doplňující uložená data „Data o datech“ Příklad: EXIF údaje o fotografii nebo grafice
Metadata – znak v tabulce Příklad definice znaku á v tabulce Vyhledávání podle metadat (popis znaku) Vyhledávání podle pozice v tabulce (pořadové číslo)
Metadata – znak v tabulce Vyhledávání podle metadat (popis znaku) Vyhledávání podle pozice v tabulce (pořadové číslo)
Typy dat Text, kombinace text + číslo bota č. 7 Numerický 12345 Datový 12. ledna Logický ano–ne Automatické číslo (počítadlo) 1,2,3… Poznámka kouše Objekt (např. tabulka z Excelu) *.xlsx Hypertextový odkaz www.bivs.cz Text, kombinace text + číslo bota 7 Numerický 12345 Datový 12. ledna Logický ano–ne Automatické číslo (počítadlo) 1,2,3… Poznámka kouše Objekt (např. tabulka z Excelu) *.xls Hypertextový odkaz www.bivs.cz
Data Atribut 1 Atribut 2 Atribut 3 … Atribut n Záznam (věta) Položka
Záznam, věta J i r i H a s e k 25 pozic 25 pozic
Druhy databázových systémů Hierarchický model Síťový model Relační databázový systém Objektově orientovaný Multidimenzionální databáze OLAP Datové sklady Hierarchický model Síťový model Relační databázový systém Objektově orientovaný Multidimenzionální databáze OLAP Datové sklady
Záznam Student s osobním číslem složil v kurzu zkoušku dne a s výsledkem… Student Kurs číslo jméno A-1 A-2 C1 Adam 20090110 C2 Blažej 20091010 C3 Cyril 20090612 20090715 C4 David 20090919
Hierarchický model Seřazení podle názvu kurzu A-1 C1 Adam 20090110 C2 Blažej 20091010 C3 Cyril 20090612 A-2 C3 Cyril 20090715 C4 David 20090919
Hierarchický model Historicky nejstarší Vychází z přirozeného uspořádání Stromová struktura (rodokmen) Vztah označen 1 : N Rodiče mohou mít 0 až n dětí Dítě může mít jen jedny rodiče Nevýhoda – redundance dat Historicky nejstarší Vychází z přirozeného uspořádání Stromová struktura (rodokmen) Vztah označen 1 : N Rodiče mohou mít 0 až n dětí Dítě může mít jen jedny rodiče Nevýhoda – redundance dat
Síťový model A1 A2 20090110 20091010 20090612 20090715 20090919 C1 Adam C2 Blažej C3 Cyril C4 David
Síťový model Zobecnění hierarchického modelu Vztah 1 : N, navíc i M : N Př.: Autor – Nakladatelství Jeden autor vydává knihy ve více nakladatelstvích Jedno nakladatelství vydává knihy více autorů Nevýhoda: náročná realizace a aktualizace Zobecnění hierarchického modelu Vztah 1 : N, navíc i M : N Př.: Autor – Nakladatelství Jeden autor vydává knihy ve více nakladatelstvích Jedno nakladatelství vydává knihy více autorů Nevýhoda: náročná realizace a aktualizace
Relační model Student Zkouška v kurzu číslo popis atd. C1 Adam C2 Blažej C3 Cyril C4 David číslo popis atd. A-1 databáze 2/2 z, Zk A-2 angličtina 0/2 z Vztahy číslo studenta číslo kurzu zkouška dne hodnocení C1 A-1 20090110 1 C2 20091010 2 C3 20090612 A-2 20090715 3 C4 20090919
Relační databáze Nejpropracovanější Základem jsou relace – dvourozměrné tabulky s pojmenovanými sloupci Pořadí sloupců je libovolné Nevýhoda Větší počet přístupů do paměti – pomalejší Výhoda Snížení objemu dat, možnost deduplikace Nejpropracovanější Základem jsou relace – dvourozměrné tabulky s pojmenovanými sloupci Pořadí sloupců je libovolné Nevýhoda Větší počet přístupů do paměti – pomalejší Výhoda Snížení objemu dat, možnost deduplikace
Relační databáze Ukládají data do oddělených tabulek Zajišťuje to rychlost a flexibilitu. Tabulky popisují nějakou část reálného světa Ukládají data do oddělených tabulek Zajišťuje to rychlost a flexibilitu. Tabulky popisují nějakou část reálného světa
Relační databáze Předměty zachycované tabulkami mohou být spolu v nějakém vztahu. I jednotlivé vztahy mezi tabulkami jsou reprezentovány tabulkami Na tabulky i na vztahy mezi nimi se dá pohlížet jako na relace. Předměty zachycované tabulkami mohou být spolu v nějakém vztahu. I jednotlivé vztahy mezi tabulkami jsou reprezentovány tabulkami Na tabulky i na vztahy mezi nimi se dá pohlížet jako na relace.
Relační databáze Výhoda v jednoduchostí – vše je uloženo v tabulkách, tabulky mají sloupce, v každém sloupci jsou data určitého typu Jednoduchost relací je ve složitých aplikacích problém Komplikované úlohy se pod relačními databázemi implementují velice těžko Výhoda v jednoduchostí – vše je uloženo v tabulkách, tabulky mají sloupce, v každém sloupci jsou data určitého typu Jednoduchost relací je ve složitých aplikacích problém Komplikované úlohy se pod relačními databázemi implementují velice těžko
Objektový model Neodděluje data a funkce Od konce 90. let Vhodný pro data se složitou strukturou (text, text s odkazy, obrázky, video, zvukové záznamy) Vyžaduje nový způsob ukládání dat a obsluhu transakcí* * Transakce je posloupnost akcí (čtení, zápis, výpočet), se kterou se zachází jako s jedním celkem. Např. dotaz v SQL Neodděluje data a funkce Od konce 90. let Vhodný pro data se složitou strukturou (text, text s odkazy, obrázky, video, zvukové záznamy) Vyžaduje nový způsob ukládání dat a obsluhu transakcí* * Transakce je posloupnost akcí (čtení, zápis, výpočet) ,se kterou se zachází jako s jedním celkem. Např. dotaz v SQL
Objektový model – vlastnosti Plná podpora objektů Zapouzdření Dědičnost Polymorfizmus Jednoznačná identifikace objektu Reference mezi objekty Plná podpora objektů Zapouzdření Dědičnost Polymorfizmus Jednoznačná identifikace objektu Reference mezi objekty
Zapouzdření Zajišťuje, aby jeden objekt se nemohl dostat k vnitřnímu obsahu jiného objektu (pouzdro) Zabraňuje tak nekonzistenci Každý objekt zpřístupňuje rozhraní s nímž pracuje – jiná možnost není Zapouzdření – zaručuje, že objekt nemůže přímo přistupovat k „vnitřnostem“ jiných objektů, což by mohlo vést k nekonzistenci. Každý objekt navenek zpřístupňuje rozhraní, pomocí kterého (a nijak jinak) se s objektem pracuje. Zajišťuje, aby jeden objekt se nemohl dostat k vnitřnímu obsahu jiného objektu (pouzdro) Zabraňuje tak nekonzistenci Každý objekt zpřístupňuje rozhraní s nímž pracuje – jiná možnost není
Dědičnost Objekty organizovány ve stromové struktuře Možnost, aby jeden objekt byl potomkem jiného objektu Dědí jeho schopnosti, k nimž přidává vlastní rozšíření Implementace rozdělením objektů do tříd, každý objekt je instancí nějaké třídy Každá třída může dědit od jiné třídy Dědičnost – objekty jsou organizovány stromovým způsobem, kdy objekty nějakého druhu mohou dědit z jiného druhu objektů, čímž přebírají jejich schopnosti, ke kterým pouze přidávají svoje vlastní rozšíření. Tato myšlenka se obvykle implementuje pomocí rozdělení objektů do tříd, přičemž každý objekt je instancí nějaké třídy. Každá třída pak může dědit od jiné třídy (v některých programovacích jazycích i z několika jiných tříd). Objekty organizovány ve stromové struktuře Možnost, aby jeden objekt byl potomkem jiného objektu Dědí jeho schopnosti, k nimž přidává vlastní rozšíření Implementace rozdělením objektů do tříd, každý objekt je instancí nějaké třídy Každá třída může dědit od jiné třídy
Instance třídy Instance třídy je konkrétní datový objekt v paměti odvozený z nějakého vzoru (třídy) Objekt představuje základní stavební prvek objektově orientovaného programování. Každý takový objekt má své vlastní atributy a metody podle vzoru (třídy). Instance bývá obvykle vytvořena pomocí konstruktoru a klíčového slova new. (v některých programovacích jazycích také objekt) používaný v objektově orientovaných programovacích jazycích (Java, C++, Simula 67, atd.). Instance třídy je konkrétní datový objekt v paměti odvozený z nějakého vzoru (třídy) Objekt představuje základní stavební prvek objektově orientovaného programování. Každý takový objekt má své vlastní atributy a metody podle vzoru (třídy). Instance bývá obvykle vytvořena pomocí konstruktoru a klíčového slova new.
Polymorfizmus Objekt se chová podle toho, jaké třídy je instancí Chování se liší podle implementace Různá struktura dat i metod Polymorfismus – odkazovaný objekt se chová podle toho, jaké třídy je instancí. Pokud několik objektů poskytuje stejné rozhraní, pracuje se s nimi stejným způsobem, ale jejich konkrétní chování se liší podle implementace. U polymorfismu podmíněného dědičností to znamená, že na místo, kde je očekávána instance nějaké třídy, můžeme dosadit i instanci libovolné její podtřídy, neboť rozhraní třídy je podmnožinou rozhraní podtřídy. U polymorfismu nepodmíněného dědičností je dostačující, jestliže se rozhraní (nebo jejich požadované části) u různých tříd shodují, pak jsou vzájemně polymorfní. Objekt se chová podle toho, jaké třídy je instancí Chování se liší podle implementace Různá struktura dat i metod
Integrita Podmínka, kterou omezujeme možné hodnoty atributů, nebo možné manipulace se záznamy, které existují ve vazbě k záznamům jiné tabulky Příklad: V tabulce je uvedeno pohlaví. Omezení určuje, že v položce je uvedeno buď muž nebo žena Integrita: databáze vyhovuje zadaným pravidlům – integritním omezením. Tato integritní omezení jsou součástí definice databáze, a za jejich splnění zodpovídá systém řízení báze dat. Integritní omezení: jednotlivé hodnoty vkládané do polí databáze (například známka z předmětu musí být v rozsahu 1 až 5), nebo podmínka na kombinaci hodnot v polích jednoho záznamu (například datum narození nesmí být pozdější než datum úmrtí). Integritní omezení – může jít o požadavek na unikátnost hodnot daného pole či kombinace polí v rámci celé množiny záznamů daného typu, které se v databázi vyskytují (například číslo průkazu v záznamech o osobách). referenční integrita. požadavek, aby pro pole záznamu, jež má obsahovat odkaz na jiný záznam někde v databázi, takový odkazovaný záznam skutečně existoval (databázový sirotka). integritní omezení pomocí tzv. triggerů. Jde o komplexnější definice kontrol, jež se budou provádět při každém pokusu o zápis záznamu do databáze.
Structured Query Language – SQL Sada příkazů pro ovládání databází První byl SEQUEL (Structured English Query Language) – syntaktická tvorba příkazů co nejblíže angličtině SQL součástí všech relačních databázových systémů (Progres, INFORMIX, SyBase, Oracle) V 70. léta 20. století - IBM - výzkum relačních databází. Příkaz pro ovládání r. databází. Vznikl jazyk SEQUEL (Structured English Query Language). Cílem - jazyk s příkazy syntakticky co nejblíže přirozenému jazyku (angličtině). 1979 firma Relational Software, Inc. (dnešní Oracle Corporation) vlastní relační databázová platforma Oracle Database. uvedla v roce 1981 nový systém SQL/DS a v roce 1983 systém DB2. Dalšími systémy byly např. Progres, Informix a SyBase. Ve všech varianta ye SEQUEL, který byl přejmenován na SQL. Relační databáze – nutné standardizovat. ANSI původně RDL. SQL se prosadil de facto , ANSI založil standard SQL-86 (přijat 1986). nový standard SQL-92 (někdy se uvádí jen SQL2) (přijat 1992). Nejnovější standard je SQL3 (SQL-99), nejmodernější pro databáze s objektovými prvky. Standardy podporuje každá relační databáze, nejsou implementovány všechny požadavky normy. A naopak, každá obsahuje prvky a konstrukce, mimo standard. Přenositelnost SQL dotazů mezi jednotlivými databázemi je proto omezená.
Structured Query Language – SQL V rámci tohoto standardu byly definovány následující podskupiny DML – Data Manipulation Language (Příkazy pro manipulaci s daty) DDL – Data Definition Language (Příkazy pro definici struktury databáze) DCL – Data Control Language (Příkazy pro řízení dat) V rámci tohoto standardu byly definovány následující podskupiny DML – Data Manipulation Language (Příkazy pro manipulaci s daty) DDL – Data Definition Language (Příkazy pro definici struktury databáze) DCL – Data Control Language (Příkazy pro řízení dat)
SQL příkazy Příkazy pro manipulaci s daty (SELECT, INSERT, UPDATE, DELETE, …) Příkazy pro definici dat (CREATE, ALTER, DROP …) Příkazy pro řízení přístupových práv (GRANT, REVOKE) Příkazy pro řízení transakcí (START TRANSACTION, COMMIT, ROLLBACK) Ostatní nebo speciální příkazy Příkazy pro manipulaci s daty (SELECT, INSERT, UPDATE, DELETE, …) Příkazy pro definici dat (CREATE, ALTER, DROP …) Příkazy pro řízení přístupových práv (GRANT, REVOKE) Příkazy pro řízení transakcí (START TRANSACTION, COMMIT, ROLLBACK) Ostatní nebo speciální příkazy
Manipulace s daty SELECT – výběr, seskupení, řazení dat INSERT – vložení dat do tabulek databáze UPDATE – změna dat tabulek databáze DELETE – smázení dat tabulek databáze SELECT – výběr, seskupení, řazení dat INSERT – vložení dat do tabulek databáze UPDATE – změna dat tabulek databáze DELETE – smázení dat tabulek databáze
Definice struktury databáze CREATE – vytváří v databázi nový objekt, vazbu mezi tabulkami ALTER – mění objekty databáze (strukturu databáze, schéma) DROP – ruší objekty v databázi CREATE – vytváří v databázi nový objekt, vazbu mezi tabulkami ALTER – mění objekty databáze (strukturu databáze, schéma) DROP – ruší objekty v databázi
Řízení přístupových práv GRANT – přiřazuje konkrétnímu uživateli přístupová práva k datům REVOKE – odebírá konkrétnímu uživateli přístupová práva GRANT – přiřazuje konkrétnímu uživateli přístupová práva k datům REVOKE – odebírá konkrétnímu uživateli přístupová práva
Řízení dat START TRANSACTION – začátek transakce COMMIT – potvrzení transakce ROLLBACK – pokud během transakce vznikla chyba, příkaz vrátí databázi do stavu před spuštěním transakce START TRANSACTION – začátek transakce COMMIT – potvrzení transakce ROLLBACK – pokud během transakce vznikla chyba, příkaz vrátí databázi do stavu před spuštěním transakce
OLAP Online Analytical Processing Vznik roku 1993, autorem E. F. Codd, otec relačních databází. OLAP databáze – odpovědi na komplexní dotazy pracující s více dimenzemi Umožňuje uspořádat velké objemy dat Vznik roku 1993, autorem E. F. Codd, otec relačních databází. OLAP databáze – odpovědi na komplexní dotazy pracující s více dimenzemi Nabízejí pohled na data z mnoha perspektiv: Příklad: kolik jsme prodali praček v regionu západních Čech za poslední čtvrtletí?
OLAP Základem je tvorba dotazů a sestav Zpracovávají data z klasických databází Vytváří vícerozměrné struktury („kostky“) Nabízejí pohled na data z mnoha perspektiv: Příklad: kolik jsme prodali praček v regionu západních Čech za poslední čtvrtletí? Vznik roku 1993, autorem E. F. Codd, otec relačních databází. OLAP databáze – odpovědi na komplexní dotazy pracující s více dimenzemi Nabízejí pohled na data z mnoha perspektiv: Příklad: kolik jsme prodali praček v regionu západních Čech za poslední čtvrtletí?
OLAP Vhodné pro analýzu komplexních vazeb mezi daty. OLAP databáze jsou pro analýzu dat výhodnější než klasické relační databáze OTLP Ukládají data tak, že předpočítávají agregace (shlukují data) Jsou vhodná pro analýzu komplexních vazeb mezi daty. Pro analýzy dat jsou OLAP databáze výhodnější než klasické relační databáze Ukládají data tak, že předpočitávají agregace (shlukují data) Ukládají je do struktur, tzv. kostek
OLAP Obsahují dva základní typy dat: Míra – čísla, hodnoty (náklady, výnosy, zisky, ztráty, prodeje, počty reklamací…) Průměr a množství – používají se ke zpracování údajů (měr) Zpracování obvykle pomocí Business Intelligence Jsou vhodná pro analýzu komplexních vazeb mezi daty. Pro analýzy dat jsou OLAP databáze výhodnější než klasické relační databáze Ukládají data tak, že předpočitávají agregace (shlukují data) Ukládají je do struktur, tzv. kostek
ROLAP Struktura s agregačními tabulkami přímo v relační databázi, Mluvíme o tzv. ROLAPu (relational OLAP) Struktura s agregačními tabulkami přímo v relační databázi, Mluvíme o tzv. ROLAPu (relational OLAP)
MOLAP, HOLAP MOLAP (multidimensional OLAP). Vytváří vlastní proprietární soubory, pak se jedná o MOLAP HOLAP (hybrid OLAP) „Střední cesta“, data zůstávají v relační databázi a zvlášť jsou uloženy agregace a metadata. MOLAP (multidimensional OLAP). Vytváří vlastní proprietární soubory, pak se jedná o MOLAP HOLAP (hybrid OLAP) „Střední cesta“, data zůstávají v relační databázi a zvlášť jsou uloženy agregace a metadata.
Rozdíl mezi OLAP a OLTP OLAP OLTP Data jednorázově nahrána Nejsou průběžně akrtualizována Neukládají se v 3NF formě Používá více indexů než OLTP Snadné a bezpečné ukládání dat Bezpečné provádění změn a aktualizací Doporučené ukládání v 3NF formě Používá méně indexů než OLAP
Rozdíl mezi OLAP a OLTP OLAP OLTP Pohled globální Komplexní dotazy na více parametrů Pohled detailní Jednoduché dotazy, jednoduché transakce
Vysvětlivky Třetí normální forma (3NF) INDEX Soubor doporučení (metodika) pro návrh datové struktury databáze Optimální využití vlastností systému OLTP INDEX Databázová konstrukce pro zrychlení vyhledávání v databázi Výrazně urychluje odpovědi na dotazy Optimalizace pro fulltextové vyhledávání.
Srovnávací tabulka Z referátu Zdeňka Koubka Znak OLTP OLAP Charakteristika Provozní zpracování Informační zpracování Orientace Transakční Analytická Uživatel Úředník, databázový administrátor Znalostní pracovník (manažer, analytik) Funkce Každodenní operace Dlouhodobé informační požadavky, podpora rozhodování Data Současná, zaručeně aktuální Historická Sumarizace dat Základní, vysoce detailní Shrnutá, kompaktní Náhled Detailní Shrnutý, multidimensionální Jednotky práce Krátké, jednoduché transakce Komplexní dotazy Přístup Číst a zapisovat Většinou pouze číst Zaměření Vkládání dat Získávání informací Počet dostupných záznamů Desítky Miliony Počet uživatelů Tisíce Stovky Velikost databáze 100 MB až GB 100 GB až TB Přednosti Vysoký výkon, vysoká přístupnost Vysoká flexibilita, nezávislost koncového uživatele Srovnávací tabulka Z referátu Zdeňka Koubka
Datové sklady Data Warehouse (DWH) Speciální typ relační databáze Analytické dotazování nad rozsáhlými soubory dat
Definice datového skladu Charakteristiky popsal William Inmon Orientace na subjekt Integrovanost Nízká proměnlivost Historizace
Orientace na subjekt Relační databáze Datový sklad Co nejmenší redundance Normalizace dat (3NF) Vnitřní provázání celků Malé nároky na paměť Separace funkčních celků Struktura přehledná pro uživatele Velké nároky na paměť
Integrovanost Relační databáze Datový sklad Provozní aplikace pracuje se „svými“ specifickými daty Úlohu řeší jen s těmito daty Shromáždění informací z různých zdrojů Seskupení podle logického významu Všechna data pohromadě Viz Orientace na subjekt
Nízká proměnlivost Relační databáze Datový sklad Data jsou průběžně upravována a doplňována Data nahrávána v dávkách Např. denní nebo týdenní dávky Po nahrání se data neupravují, nemodifikují
Historizace Relační databáze Datový sklad Data udržována v aktuální podobě Jiný stav uživatele obvykle nezajímá Data udržována v historické podobě Možnost analýzy časového vývoje
Technické charakteristiky Nástroj pro nahrávání dat z různých zdrojů Různé datové formáty Různé fyzické umístění Kombinace relačních i jiných databází Data ukládána s ohledem na snadnou editaci Snadné a rychlé provádění složitých dotazů Použití OLAP
Dotazy v datovém skladu Není předem známo jaké úlohy se budou řešit Potřeba flexibilních analytických nástrojů Obvykle je znám pouze typ úlohy Nikdy všechny dotazy a úlohy
Datový sklad – faktová tabulka Datový sklad členěn do schémat Každé schéma – analyzovaná funkční oblast Jádrem schématu faktová tabulka (jedna nebo více) V nich analyzovaná data Faktové tabulky – detailní údaje ze všech zdrojů Více údajů než ostatní tabulky
Datový sklad – dimenze Dimenze je tabulka Obsahují seznamy hodnot ke kategorizaci a třídění dat S faktovými tabulkami spojeny pomocí cizích klíčů
Příklad Informace o prodejích Zdroj: pokladny hypermarketu Analýza: Doba prodeje Prodejna Typ zboží Dodavatel Vliv akcí Platby (karta, hotově)
Příklad Schéma Prodej Faktová tabulka Položky prodeje Typ zboží Cena Počet kusů
Příklad Dimenze pro třídění Datum a hodina (týden, měsíc) Prodejna Foto Škoda Typ zboží Pentax K-5II Kategorie zboží Digitální zrcadlovka Oddělení Zrcadlovky Dodavatel Pentec
Děkuji za pozornost