ÚVOD / Studijní obory / Sylaby / Návrh relačních databází

Návrh relačních databází

Cílem předmětu je zvládnutí základů teorie relačních databázových systémů a získání praktických dovedností s použitím databázových technologií na úrovni potřebné pro návrh databáze, tvorbu databázových aplikací a správu databázových systémů.Základní pojmy databázových systémů (DBMS), návrh relační databáze z konceptuálního pohledu, teorie relačního modelu dat, jazyk SQL, normalizace databáze a její využití při návrhu relační databáze, typy relačních vazeb, bezpečnost a integrita dat, datové návrhové vzory, CASE nástroje pro návrh datového modelu, představení nejužívanějších RDBMS (MS SQL Server, Oracle).

Sylabus předmětu

  1. Úvod do databází - Základní informace o průběhu kurzu a probírané látce. Význam databází a databázových systémů v současných informačních systémech – vysvětlení, proč je tato oblast důležitá. Úloha datové vrstvy ve vrstevnaté architektuře (zejména s ohledem na třívrstvou a dvouvrstvou architekturu). Úvod do problematiky, základní pojmy z oblasti databázových systémů. Co je databáze, historický vývoj. Datové modely - hierarchický model dat, síťový model dat, objektový model dat, relační model dat, XML model dat. Architektura databází - centrální architektura, architektura file-server, architektura client-server. Typičtí uživatelé systémů řízení bází dat.
  2. Relační model - Základní pojmy – relace (tabulka), záznam (record), položka (field), primární klíč, cizí klíč. Deklarace a realizace integritních omezení. Normální formy, atomicita, funkční závislost, částečná funkční závislost, tranzitivní závislost, proces normalizace. Cílem této lekce je detailní pochopení pojmu relační model a základních pojmů s ním souvisejících. Dále je důležité, aby studenti dostatečně pochopili, co je 1., 2. a 3. normální forma, včetně postupu, jak se prování normalizace relačního modelu. Postup normalizace bude procvičen na praktických příkladech.
  3. Tvorba modelů - Konceptuální model dat, relační model dat, fyzický model dat. Převod konceptuálního modelu na relační model dat. Převod relačního modelu na fyzický model dat. E R modelování a diagramy (entita, atributy, klíč, vztah, kardinalita vztahu), rozšíření E R modelu (EER), jazyk UML (class diagramy). Konkrétní ukázky, zaměření na praktické procvičení této problematiky. Studenti by měli zvládnout základy tvorby datových modelů – tato problematika bude dále součástí semestrální práce, kde již bude nutné zvládnout komplexnější a rozsáhlejší úlohu. Dále se studenti seznámí s některými CASE nástroji, které se používají při tvorbě datových modelů.
  4. Relační algebra - Cílem lekce je seznámit studenty s teoretickými (matematickými) základy relačních databází - relační algebrou, která tvoří teoretické základy dotazovacích jazyků a mnoha relačních databázových systémů. Studenti by měli pochopit použití operátorů relační algebry a především souvislosti s jazykem SQL. Důraz bude kladen na praktické procvičení této problematiky na jednoduchých příkladech.
  5. Jazyk SQL – úvod - Úvod k jazyku SQL, základní kategorie – DDL, DML, DCL. K čemu slouží jazyk SQL. Možnosti jazyka SQL. Datové typy. Vkládání dat do databáze. Modifikace dat v databázi. Mazání dat v databázi. Kontrola přístupu k datům.
  6. Jazyk SQL – základy dotazování - Tato lekce představuje úvod k dotazování v jazyce SQL a použití příkazu SELECT. Nejprve budou vysvětleny základní principy a použití tohoto příkazu, další informace studenti získají v následujících lekcích. Klíčové je důkladné procvičení probírané látky na praktických příkladech. V této lekci se zaměříme na jednoduché dotazy, projekci, selekci, řazení, grupování a použití agregačních funkcí.
  7. Jazyk SQL – dotazy nad více tabulkami - Pokračování výkladu základů dotazování v jazyce SQL a příkazu SELECT. Cílem této lekce je seznámení s vytvářením dotazů nad více tabulkami, vysvětlení pojmů vnitřní spojení, vnější spojení, polospojení (levé/pravé), apod. Klíčové je důkladné procvičení probírané látky na praktických příkladech.
  8. Jazyk SQL – poddotazy - Cílem lekce je seznámit studenty s problematikou vytváření a použití poddotazů v jazyce SQL. Nekorelované poddotazy, korelované poddotazy – vysvětlení principů, využití poddotazů, konkrétní ukázky.
  9. Optimalizace v databázích - V této lekci se studenti seznámí s problematikou optimalizace databází. Důraz bude kladen na pochopení cílů a účelu optimalizace. Součástí výkladu budou konkrétní ukázky. Klíčové zde je, aby studenti pochopili důvody, proč je nutné se optimalizací zabývat a jaké problémy může způsobit nevhodně navržená či implementovaná databáze. Studenti si uvedené postupy vyzkouší prakticky.
  10. Transakční zpracování - V této lekci se studenti seznámí s problematikou paralelního zpracování v databázových systémech. Důležité je vysvětlit problémy, které při paralelním zpracování mohou vzniknout a ukázat způsoby jejich řešení. V úvodu budou vysvětleny základní pojmy jako transakce, základní operace (čtení, zápis), začátek a konec transakce, stavy transakce, atd. Dále budou podrobně rozebrány vlastnosti transakcí (ACID– Atomicity, Consistency, Isolation, Durability), s důrazem na jejich detailní pochopení. Poté se zaměříme se na problematiku paralelního (souběžného) zpracování transakcí v databázových systémech. Cílem je zabezpečit bezchybnou manipulaci s daty – studenti by měli pochopit možné způsoby řešení tohoto problému: postupné provádění transakcí, serializaci požadavků a metody řízení souběhu. Dále se zaměříme na problematiku řízení souběhu transakcí, kde by studenti měli získat základní představu o řešení tohoto problému pomocí dvou metod – uzamykání a použití časových značek – zde se však předpokládá pouze kontextová znalost základních principů.
  11. Představení nejužívanějších RDBMS, směry ve vývoji DBMS - Cílem této lekce je seznámit studenty s aktuálně nejpoužívanějšími relačními databázovými systémy – Oracle a Microsoft SQL Server. Vývoj a administrace těchto databází je pak obsahem dalších navazujících předmětů. Dále se studenti seznámí se současnými směry ve vývoji databázových systémů, jako jsou například XML nativní databáze, apod.
  12. Představení prostředí PostgreSQL - Cílem této lekce je představení základů vývojového prostředí PostgreSQL, instalace a použití této databázové platformy pro potřeby zkoušky, která bude provedena právě nad tímto prostředím. Představí se základní datové typy a funkce, ukáže se zjednodušená instalace a ovládání databáze.

Organizace výuky

Prezenční forma

Výuka probíhá ve 12 přednáškách a 12 seminářích po 1,5 hod.

Kombinovaná forma

Výuka probíhá ve 3 tutoriálech po 3 hod.

Doporučená literatura

Základní učební texty a pomůcky

  • Učební texty k předmětu Návrh relačních databází (intranetová učební pomůcka), Unicorn College.
  • HERNANDEZ, M.J., VIESCAS, J.L.: Myslíme v jazyku SQL, Praha, Grada, 2004
  • POKORNÝ, J., HALAŠKA, I.: Databázové systémy, Praha, ČVUT, 1997
  • HERNANDEZ, M.J.: Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, Addison-Wesley Professional, 2013.

Doplňující a rozšiřující učební texty

  • POKORNÝ, J., HALAŠKA, I.: Databázové systémy: Vybrané kapitoly a cvičení, Praha, ČVUT, 1995
  • VAN DER LANS, R. F.: Introduction to SQL: Mastering the Relational Database Language. Addison Wesley Professional, 2007.
  • ALLEN, S., TERRY, E.: Beginning Relational Data Modeling. Second Edition. Apress, 2005.