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)
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)
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).
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ů.
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
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)
Databáze výhody 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í
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
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
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
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
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 A-2 C1 Adam 20090110 C2 Blažej 20091010 C3 Cyril 20090612 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
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
Relační model Student číslo popis atd. C1 Adam C2 Blažej C3 Cyril C4 David Zkouška v kurzu čí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 A-1 20091010 2 C3 A-1 20090612 2 C3 A-2 20090715 3 C4 A-2 20090919 1 26
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
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
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.
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
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
Objektový model vlastnosti 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í
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
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.
Polymorfizmus 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
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)
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)
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
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
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
Ří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
Ří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
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
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í?
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)
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
ROLAP 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.
Rozdíl mezi OLAP a OLTP OLAP Data jednorázově nahrána Nejsou průběžně akrtualizována Neukládají se v 3NF formě Používá více indexů než OLTP 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 Pohled globální Komplexní dotazy na více parametrů OLTP Pohled detailní Jednoduché dotazy, jednoduché transakce
Vysvětlivky Třetí normální forma (3NF) 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í.
Znak OLTP OLAP Charakteristika Provozní zpracování Informační zpracování Srovnávací tabulka Orientace Transakční Analytická Uživatel Úředník, databázový administrátor Z referátu Zdeňka Koubka Funkce Každodenní operace Znalostní pracovník (manažer, analytik) 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
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 Co nejmenší redundance Normalizace dat (3NF) Vnitřní provázání celků Malé nároky na paměť Datový sklad Separace funkčních celků Struktura přehledná pro uživatele Velké nároky na paměť
Integrovanost Relační databáze Provozní aplikace pracuje se svými specifickými daty Úlohu řeší jen s těmito daty Datový sklad 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 Data jsou průběžně upravována a doplňována Datový sklad 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 Data udržována v aktuální podobě Jiný stav uživatele obvykle nezajímá Datový sklad 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