Zadání: Základní pojmy, principy, architektury. Ukládání a reprezentace dat, zpracování dotazu, transakce, indexování, hašování, datové modelování. Metadata. Datové sklady.
Databáze (DB) je uspořádaná množina dat, se kterými můžeme dále pracovat. Správa databáze je realizována prostřednictvím Systému pro správu databáze (Database Management System, DBMS). DB + DMBS tvoří dohromady databázový systém.
Databázové systémy byly vyvinuty kvůli zvládnutí následujících problémů při zpracování souborů v tradičních operačních systémech:
Databázové systémy mají tedy následující vlastnosti:
Správa databáze zahrnuje prostředky pro popis dat a popis algoritmu.
Typy datových elementů:
Databáze je uložena v kolekci souborů. Každý soubor je tvořen posloupností záznamů. Záznam se skládá z jednotlivých atributů (datových elementů), které mají svůj typ buď pevné (většinou) nebo proměnlivé délky. V nejjednodušším případě je délka záznamu pevná, každý soubor má pouze záznamy jednoho typu a každá tabulka má právě jeden soubor. Záznamy (ať už pevné nebo proměnné délky) ukládáme do bloků pevné velikosti. Záznamy můžeme oddělovat mezi sebou a rozdělovat/nerozdělovat do více bloků (viac na http://statnice.dqd.cz/_media/mgr-szz:in-ins:4.pdf str.8).
Postup zpracování a optimalizace dotazu:
Dotaz se nejprve pomocí parseru převede na syntaktický strom reprezentující strukturu dotazu. Ten se po té zpracuje do výrazů relační algebry (logický plán dotazu). Pomocí transformačních pravidel (kombinace přirozeného spojení, kartézského součinu, sjednocení, selekce a projekce) dále vznikne vylepšený logický plán. Nyní se za pomocí různých statistik (počet záznamů, velikost záznamů v bajtech, počet obsazených bloků, počet unikátních hodnot daného atributu) odhadnou velikosti výsledků, které ovlivňují odhad ceny provedení. Následně se logický plán transformuje na fyzický plán, který určí pořadí operací nutných k vykonání. Porovnají se různé fyzické plány, odhadnou se náklady (velikost výsledků, počet V/V operací) a zvolí se nejlevnější. Nakonec se daný plán provede a tím se získá výsledek.
Nejaké príklady výpočtov:
W = R1xR2 ⇒ T(W) = T(R1) * T(R2); S(W) = S(R1) + S(R2)
W = σA='cat'(R) ⇒ T(W)= T(R) / V(R,A)
Transakce je posloupnost operací (DML příkazů), které převedou datové schéma z jednoho konzistentního stavu do druhého (zpřístupňuje a aktualizuje data). Platí o ní, že je ACID:
Více transakcí může být spouštěno současně, může však dojít k uváznutí (deadlocku). Chronologické pořadí provádění instrukcí souběžných transakcí je předem určeno pomocí plánu.
Každá transakce může nabývat těchto stavů: aktivní, částečně potvrzená, chybující, zrušená a potvrzená. Pokud byla transakce zrušena, je možné ji znovu spustit (nedošlo-li k logické chybě) nebo zamítnout.
Na implementovanie atomičnosti sa využíva žurnalovanie, celkovo sú známe tri typy (viac na https://is.muni.cz/el/1433/jaro2013/PA152/um/slides11-recovery.pdf):
Paralelné spracovanie transakcií je implementované pomocou tvorby tzv. schedules – zoradená postupnosť príkazov viacerých transakcií ( viac na https://is.muni.cz/el/1433/podzim2010/PB154/um/mod13_1.pdf)
Výrazy: * serializované spustenie -- transakcie sú púštané postupne za sebou * ekvivalentné plány (scedules) -- zachovávaju výsledné hodnoty * konfliktovo ekvivalentné plány (schedules) -- plány vzniknuté zámenou nekonfliktných príkazov * cascadeless schedule -- čítam premennú, ktorej hodnota je závislá na inej transakcii až po tom, ako daná transakcia úspešne prebehla
Indexové mechanizmy se používají pro zrychlení přístupu k požadovaným datům. Na druhou stranu dojde ke zpomalení operací (INSERT, UPDATE) měnících obsah indexovaných sloupců. Vytvořením indexu databázový systém zarezervuje pro požadovaný index určitou část paměťového prostoru a uloží do něj informace o rozmístění hodnot indexovaných sloupců v tabulce. Pokud později dojde k dotazu, který se týká indexovaných sloupců, není tabulka prohledávána podle toho, jak jsou za sebou řádky uloženy, ale pomocí informací uložených v paměťovém prostoru indexu je přistupováno přímo k relevantním řádkům tabulky (něco jako rejstřík v knize).
S indexováním souvisí následující pojmy:
Rozlišujeme dva základní typy indexů:
Indexové soubory mohou mít následující typy indexů:
Alternativou a zároveň nejpoužívanější indexovou strukturou v databázových systémech jsou B+ stromy. Jedná se o víceúrovňový index ve tvaru vyváženého n-nárního stromu. Jejich výhodou je, že se při vkládání/mazání provádí automatická reorganizace pouze s malými, lokálními změnami, nevýhodou je ale režie a zvýšené prostorové nároky.
Cílem datového modelování je navrhnout kvalitní datovou strukturu pro konkrétní aplikaci a databázový systém, který bude tuto aplikace využívat k uložení dat. Rozeznáváme:
Základními prvky datového modelu jsou entity, atributy a vztahy. Pro jeho vytváření na počítači můžeme využít tzv. CASE nástrojů.
Datový sklad (angl. Data warehouse) 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. Jde o centrální úložný prostor, kam jsou ukládána data z různých zdrojů a toto vkládání je logicky organizované.
ETL (extract, transform, and load) – proces zísaknia a uloženia dát. Pozostáva z 3 častí:
Extracts data from outside sources Transforms it to fit operational needs, which can include quality levels Loads it into the end target (data warehouse)
Rozdíly oproti relační databázi:
Technologické charakteristiky:
Data v datovém skladu jsou z logického pohledu členěna do schémat (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 nich jsou uložena vlastní analyzovaná data) a ty jsou pomocí cizích klíčů spojeny s dimenzemi (tabulky, které obsahují seznamy hodnot sloužících ke kategorizaci a třídění dat ve faktových tabulkách).
Všechna data v datovém skladu jsou doplněna o metadata, což jsou data o datech. Popisují tabulky (např. názvy sloupců a datové typy), pohledy, procedury, uživatele nebo jakýkoliv jiný objekt v databázi. Bez metadat by datový sklad nemohl fungovat.
FI:PB154 Základy databázových systémů
FI:PB155 Databázové systémy a jejich aplikace
FI:PA152 Efektivní využívání databázových systémů
Učební materiály k předmětu Základy databázových systémů Učební materiály k předmětu Efektivní využívání databázových systémů Jaroslav Zendulka (VUT) – Fyzická (interní) úroveň databázového systému Jaroslav Zendulka (VUT) – Transakční zpracování Miloš Šeda (VUT) – Databázové systémy Jaromír Široký (VŠB) – Databázové systémy Marek Polášek – Metadata a datové sklady Wikipedie – Datový sklad Wikipedie – Index (databáze)
Jako alternativu tisku přímo z Wiki nabízím možnost si stáhnout tuto vypracovanou otázku v PDF vytvořeném z původního Wordu.
4.pdf – rozšíření některých témat a soukromé zpracování, vycházelo se z této wiki na přelomu roku 2013/2014. Nekonzultováno s kantory.
Honza Havelka, 207401, honza.havelka@seznam.cz, hotovo
Diskuze
Rozmyslam nad podotazkou Architektury DBMS. Neni to skor toto : http://homen.vsb.cz/~s1i95/ISVDAS/IS/IS_db_sys.htm
OK, asi máš pravdu. Díky za postřeh. Doplnil jsem tam tedy i toto druhé dělení.
Pekne vypracované, díky. Jediné, čo mi po prečítaní zostalo vŕtať v hlave je, aký je rozdiel medzi čiastočne potvrdenou a potvrdednou transakciou.
Na této stránce jsem našel následující:
„Transakce při svém běhu sice provádí všechny požadované změny, nicméně nezapisuje je fyzicky do databáze. Při částečném potvrzení transakce se zapíší všechny změny, ale jen do žurnálu, nikoliv do databáze. Databáze stále obsahuje původní hodnoty objektů. V okamžiku, kdy uživatel usoudí, že jsou všechny změny dokončené, dojde k potvrzení transakce. V tomto okamžiku teprve databázový systém začne procházet žurnál dopředným čtením (REDO) a zapisuje fyzicky do databáze data uvedená v žurnálu.“
Diky za dohladanie.