Obsah

Databázové systémy

Databázové systémy - základní pojmy, principy, architektury. Ukládání a reprezentace dat, zpracování dotazu. Korektní vykonávání transakcí, zpracování systémových chyb, souběžné zpracování, plány, zámky.

Vypracování

Základní pojmy, principy, architektury.

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:

  1. Struktury datových souborů jsou odděleny od aplikačních (uživatelských) programů.
  2. Přístup k datům je možný jen prostřednictvím programů databázového systému.
  3. Data je možné vyhodnotit jakýmkoliv způsobem.
  4. Je umožněn přístup více uživatelů současně a vyřešena ochrana dat před zneužitím.

Správa databáze zahrnuje prostředky pro popis dat a popis algoritmu.

Jazyk pro definici dat (Data Definition Language, DDL)

Jazyk pre kontrolu pristupu k dátam (Data Control Language, DCL)

Jazyk manipulace s daty (Data Manipulation Language, DML)

Architektura databázového systému

  1. Externí úroveň – reprezentována daty z pohledu uživatele (např. formuláře pro vstup dat, výstupní tiskové sestavy), různí uživatele vidí různě vymezené části databáze, jde o externí schéma
  2. Konceptuální úroveň – popisuje data uložená v databázi a vztahy mezi nimi, jde o logické schéma
  3. Interní úroveň – popisuje fyzický způsob uložení dat na vnějších paměťových médiích a metody přístupu k datům, jde o fyzické schéma

Jiné dělení architektur databázových systémů

Dělení architektur dle způsobu ukládání dat

Ukládání a reprezentace dat.

Hierarchie ukládání dat je následujicí: Datový element » Záznam » Blok » Soubor » Paměť

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ů.

Datový element

Záznamy

Bloky

Na disku jsou záznamy uloženy v blocích (soubor má vždy velikost násobku bloků).

Každý blok má hlavičku, která obsahuje

Zpracování dotazu

Postup zpracování a optimalizace dotazu:

  1. dotaz
  2. syntaktický strom dotazu
  3. logický plán dotazu - v pojmech relační algebry
  4. vylepšený logický plán dotazu
  5. logický plán dotazu s velikostmi - v PostgreSQL lze zobrazit příkazem EXPLAIN
  6. fyzický plán dotazu
  7. vyhodnocení

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.

Korektní vykonávání transakcí, zpracování systémových chyb

Transakce

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.

Výpadky

Pro obnovu výpadku požadujeme, aby tranakce byly atomické, databáze konzistentní.

Žurnálování (log, deník)

Undo logging
Redo logging
Check points

Souběžné zpracování, plány, zámky

Plánovače

Souběžné zpracování (zajišťuje izolovanost)

TODO: příklady plánovačů (2 fázové zamykání, …), viz PA150

Materiály

Vypracoval