Obsah

Databázové systémy

Seznam přednášek

Tento cyklus deseti přednášek se snaží zachytit proces návrhu datové vrstvy aplikace od jejího zadání ze strany zákazníka až po její implementaci v nějaké relační databázi.

Popisuje, jaké problémy vznikají při návrhu odpovídající struktury tabulek, případně při souběhu práce více uživatelů nad jedněmi daty, jaké možnosti databáze pro jejich řešení nabízejí, případně co pro jejich řešení či předcházení musí udělat vývojář.

Část přednášek je věnována základům jazyka SQL, jeho využití pro vytvoření tabulek v databázi, a především dotazování.

Výklad dotazování je doplněn o přednášku, popisující formální dotazovací jazyk – relační algebru – který umožňuje matematicky definovat přesný význam funkce jednotlivých operací, které SQL (nebo jakýkoli jiný smysluplný dotazovací jazyk nad relační databází) používá.

Lekce 01 [PDF] [MP4] Konceptuální databázové modelování

Tato první přednáška je zaměřena na úvodní popis problematiky a terminologie, ale především na první krok návrhu vhodné datové vrstvy, vyhovující požadavkům zákazníka – tvorbu konceptuálního modelu dat.

Ten v terminologii zákazníka popisuje a formalizuje všechny požadavky, které má ohledně dat, které bude potřeba ukládat a zpracovávat. Spolu s formálním popisem dat je možné obdobným způsobem popsat i požadavky na omezení reálného světa, ať už v důsledku přírodních zákonů, legislativy nebo požadavků zákazníka, která musí obsah dat respektovat, aby mohla být považována za platná. Této problematice se věnuje závěr této přednášky.

Lekce 02 [PDF] [MP4] Logické databázové modely, relační model

Tato přednáška navazuje na předchozí popisem dalšího kroku návrhu vhodné datové vrstvy.

Zatímco v konceptuálním modelu jsou data popsána v terminologii zákazníka, a popis tak není svázaný s žádným konkrétním typem databáze, natož její konkrétní implementací, při návrhu logického modelu je potřebné zvolit základní způsob, jakým budou data reprezentována, tedy typ databáze — v našem případě způsob reprezentace dat pomocí tabulek, a popis, získaný v předchozím kroku přeložit na odpovídající reprezentaci ve zvoleném logickém modelu.

Lekce 03 [PDF] [MP4] Fyzický relační datový model; SQL — definice a modifikace dat

Tato přednáška dále pokračuje v návrhu vhodné datové vrstvy.

Popisuje, jak pomocí jazyka SQL převést získaný logický relační datový model na reálné tabulky, uložené v konkrétní relační databázi.

Druhá část přednášky je potom věnována tomu, jak pomocí jazyka SQL data do databáze vkládat, upravovat je a z databáze odstraňovat.

Lekce 04 [PDF] [MP4] SQL — dotazy

Tato přednáška popisuje základy dotazování v jazyce SQL, tedy jak z dat, uložených v databázi získat potřebnou informaci.

Závěr přednášky se věnuje problematice pohledů, které umožňují nad fyzickými tabulkami vytvářet „logické“ tabulky, prezentující data v jiné, požadované podobě.

Své pochopení toho, jakým způsobem prostřednictvím jazyka SQL získávat z dat v databázi požadované informace, si můžete ověžit na řadě předpřipravených dotazů v aplikaci.

Nápovědu, jak s aplikací pracovat najdete zde, případně přímo v aplikaci.

Lekce 05 [PDF] [MP4] Dotazovací formalismy pro relační model — relační algebra

Tato přednáška je věnována popisu formálního dotazovacího jazyka – relační algebry.

Matematicky popisuje řadu operací, implementovaných jazykem SQL, a definuje jejich přesnou sémantiku.

Závěr přednášky ukazuje příklady ekvivalentních výrazů relační algebry. Možnost matematicky dokázat tyto ekvivalence, tedy zaručit totožnost výsledků, získaných různými posloupnostmi operací, dovoluje relační databázi volit pro vykonání položeného dotazu jiný než uživatelem navržený postup, což je základem optimalizace dotazu a jeho co nejrychlejšího vykonání.

Lekce 06 [PDF] [MP4] Dotazovací formalismy pro relační model — relační kalkuly

Tato přednáška je věnována popisu dalšího formálního dotazovacího jazyka – relačního kalkulu. I on umožňuje matematicky popsat sémantiku dotazů a představuje další ze základů, o který se SQL opírá.

Přednáška představuje dvě jeho varianty.

Závěr se věnuje problematice konstruování bezpečných výrazů. Tedy takových, které je možné vyhodnotit v konečném čase, a získat konečný výsledek.

Lekce 07 [PDF] [MP4] Návrh relačního modelu — normální formy

Tato přednáška popisuje dopad takzvaných funkčních závislostí — skrytých závislostí hodnot mezi sloupci jedné tabulky, která vyplývají z vlastností reálného světa, a způsoby jak s nimi formálně pracovat.

Závěr přednášky popisuje normální formy relací, různé úrovně požadavků na absenci nežádoucích funkčních závislostí sloupců v tabulkách.

Lekce 08 [PDF] [MP4] Návrh relačního modelu — normální formy — algoritmy

Tato přednáška navazuje na předchozí, a popisuje algoritmy, potřebné pro práci s funkčními závislostmi.

Dále se přednáška věnuje dvěma postupům, jak získat tabulky, splňující požadovanou normální formu — dekompozici a syntéze.

Lekce 09 [PDF] [MP4] Databázové transakce

Tato přednáška popisuje problémy, vznikající z požadavku na provedení více aktualizačních operací z pohledu databáze jako jediné operace z pohledu uživatele, a zavádí pojem transakcí.

Dále se věnuje problémům, vznikajícím při souběžném zpracování těchto transakcí od více uživatelů, kdy jsou operace, pocházející od jednotlivých uživatelů prováděné prokládaně.

Lekce 10 [PDF] [MP4] Databázové transakce — rozvrhovací protokoly

Tato přednáška navazuje na přednášku předchozí, a popisuje způsoby, umožňující databázi pomocí vhodného protokolu řídit souběžné zpracování transakcí tak, aby byly zaručeny požadované vlastnosti, a korektní výsledek při souběhu více transakcí zároveň.

© 2021-2023 MFF UK