Ukládání dat aneb
kam s nimi? souborová—databázová koncepce
Souborová koncepce Data S
jsou uložena v izolovaných souborech.
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í Schéma
omezení (podmínky)
(popis dat pro uživatele)
Databáze – výhody Nezávislost Efektivní
na programech
přístup k datům
Zkrácený
vývoj aplikací
Zajištěna
integrita dat
Databáze – výhody Zajištěna Řízená
správa dat a transakcí s nimi
Možnost Opravy
ochrana dat
přístupu více uživatelů
chyb a zotavení
Databáze – výhody jinak Perzistence Sdílení
– data nezávislá na programech
– 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ý
Datový
Logický
ano–ne
Automatické číslo (počítadlo)
1,2,3…
Poznámka
kouše
Objekt (např. tabulka z Excelu)
*.xlsx
Hypertextový odkaz
12345 12. ledna
www.bivs.cz
Data Atribut 1
Atribut 2
Atribut 3
…
Záznam (věta)
Položka
…
Atribut n
Záznam, věta J i r i 25 pozic
H a s e k 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
C1
Adam
20090110
C2
Blažej
20091010
C3
Cyril
20090612
C4
David
A-2
20090715 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 Vychází
z přirozeného uspořádání
Stromová Vztah
nejstarší
struktura (rodokmen)
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
C1 Adam
C2 Blažej
C3 Cyril
20090715
20090919
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
Zkouška v kurzu
číslo
popis
C1
atd.
číslo
popis
atd.
Adam
A-1
databáze
2/2 z, Zk
C2
Blažej
A-2
angličtina
0/2 z
C3
Cyril
C4
David
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í Různá
se liší podle implementace
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í Vytváří
data z klasických databází
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 „Střední
(hybrid OLAP)
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 Charakteristika
OLTP Provozní zpracování
Srovnávací tabulka
OLAP Informační zpracování
Orientace
Transakční
Analytická
Uživatel
Úředník, databázový administrátor
Znalostní pracovník (manažer, analytik)
Z
Funkce
referátu Zdeňka Koubka 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
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 Orientace
popsal William Inmon
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