Table of Contents

Konceptuální a logický datový model, dotazovací jazyk SQL, transakční zpracování, objektově-relační mapování, noSQL databáze.

B0B36DBS Webové stránky předmětu

1. Konceptuální modelování

ER (entitní typy, atributy, identifikátory, vztahové typy, n-ární, rekurzivní, slabé entitní typy, ISA hierarchie). Logické modely (tabulkový, objektový, stromový, grafový). Relační model (definice, klíč, nadklíč, cizí klíč), transformace ER schématu do relačního schématu.

ER modely se používají pro návrh databázové struktury na konceptuální úrovni. Slouží jako nástroj pro pochopení domény problému a pomáhají při návrhu databáze před implementací.

Entitní typy

Entita reprezentuje objekt reálného světa – např. osoba, projekt, dokument. V ER modelu má každá entita typ.

Atributy

Identifikátory

Vztahové typy

ISA hierarchie (is-a hierarchy)

Logické modely

Převádějí konceptuální schéma do technicky orientované reprezentace podle toho, jak budou data uchovávána a dotazována.

Tabulkový model

Objektový model

Stromový model

Grafový model

Relační model

Definice

Klíč (Key)

Nadklíč (Superkey)

Cizí klíč (Foreign Key)

Transformace ER schématu do relačního schématu

2. Relační databáze

Datový model, NULL hodnoty, tříhodnotová logika, integritní omezení (NOT NULL, UNIQUE, PRIMARY KEY, CHECK, FOREIGN KEY a referenční akce), umělé identifikátory.

NULL hodnoty

Integritní omezení

Referenční akce

Pokud by operace (např. smazání nebo změna klíče) v odkazované tabulce porušila integritu cizích klíčů v jiné tabulce, může být:

Umělé identifikátory

3. Jazyk SQL

Structured Query Language (SQL) je jazyk pro práci s relačními databázemi. Obsahuje příkazy DDL (Data Definition Language) pro definici schémat, DML (Data Manipulation Language) pro manipulaci s daty a další. SQL je case-insensitive.

Definice schématu

Manipulace s daty (SELECT, INSERT, UPDATE, DELETE)

Spojování tabulek

Množinové operace

Vnořené dotazy

Pohledy (views)

Procedurální rozšíření SQL

4. Fyzická vrstva

Fyzická vrstva (bloky, sloty, buffer management). Organizace záznamů (halda, seřazený soubor, hašovaný soubor, složitost operací), indexové struktury (B⁺-stromy, hašované indexy, bitmapové indexy).

Stránky, sloty a záznamy

Buffer management

Organizace datových souborů

Indexové struktury

B⁺-stromy

Hašovaný index

Bitmapový index

5. Funkční závislosti

Funkční závislosti (definice, Armstrongovy axiomy), úpravy závislostí (funkční uzávěr, pokrytí, kanonické pokrytí, redundantní závislost, neredundantní pokrytí, atributový uzávěr, redukovaná závislost, minimální pokrytí). Hledání klíčů (nalezení prvního klíče, Lucchesi-Osborn). Normální formy (první, druhá, třetí, Boyceho-Coddova).

Definice

Armstrongovy axiomy

Funkční uzávěr

Pokrytí a kanonické pokrytí

Redundance a neredundantní pokrytí

Uzávěr atributů

Minimální pokrytí

Hledání klíče

Lucchesi-Osbornův algoritmus

  1. Najdeme jakýkoliv klíč `K`.
  2. Vybereme funkční závislost `X → y` z `F` takovou, že `y ∈ K`, nebo ukončíme algoritmus pokud taková neexistuje.
  3. Vytvoříme množinu `K' = X ∪ (K \ {y})`.
    • Jelikož platí `X ∪ (K \ {y}) → A`, je `K'` superklíč.
  4. Redukujeme levostranné atributy závislosti `K' → A`, a získáme nový minimální klíč `K'`.
  5. Pokud `K'` není v množině dosud nalezených klíčů, přidáme jej, položíme `K := K'` a pokračujeme na krok 2.
  6. Pokud už existuje, algoritmus končí.

Normální formy

První normální forma (1NF)

jmenoprijmeniadresa
JosefNovákTechnická 2, Praha 16627
PetrPanKarlovo náměstí 13, Praha 12135
jmenoprijmeniulicecislomestopsc
JosefNovákTechnivká2Praha16627
PetrPanKarlovo náměstí13Praha12135

Druhá normální forma (2NF)

Třetí normální forma (3NF)

Boyce-Coddova normální forma (BCNF)

Transakce

Transakce (základní pojmy, ACID vlastnosti, BEGIN a COMMIT, rozvrh, historie, uspořádatelnost, serializovatelnost), konfliktová, uspořádatelnost (konflikty WR, RW, WW, precedenční graf), zamykací protokoly (dvoufázové a striktní dvoufázové zamykání), uváznutí (deadlock, graf čekání, Coffmanovy podmínky, strategie wait-die a wound-wait), fantom.

Transakční zpracování

ACID vlastnosti

Akce

Transakční historie

Serializovatelnost

READI(A) - READJ(A)Není konfliktNa pořadí nezávisí
READI(A) - WRITEJ(A)KonfliktPořadí má význam
WRITEI(A) - READJ(A)KonfliktPořadí má význam
WRITEI(A) - WRITEJ(A)KonfliktPořadí má význam

Konflikty

Zamykání

Dvoufázové zamykání (2PL)

Striktní dvoufázové zamykání (Strict 2PL)

Uváznutí (Deadlock)

Metody prevence a řešení uváznutí

Coffmanovy podmínky

Uváznutí může nastat, pokud platí všechny 4 podmínky:

  1. Vzájemné vyloučení – prostředky nejsou sdílené.
  2. Zadržení a čekání – proces drží a zároveň žádá další.
  3. Žádná preempce – prostředky nejsou vynuceně odebrány.
  4. Kruhové čekání – cyklická závislost v čekání.

Fantom