Logická úroveň - Relační databázový model

Stránky: E-learning VŠCHT Praha
Kurz: Využití databází a jazyka SQL
Kniha: Logická úroveň - Relační databázový model
Vytiskl(a): Nepřihlášený host
Datum: neděle, 3. srpna 2025, 00.08

1. Definice

Pojem relační databáze lze jednoduše definovat jako sadu nástrojů pro efektivní a spolehlivé ukládání dat a pro manipulaci s nimi. Přesněji se dá vyjádřit jako relační systém řízení báze dat.


2. Minimální podmínky

Pro relační databáze platí vždy minimálně tři následující podmínky

  1. Všechna data v databázi jsou uložena v tabulkách (relacích).
  2. Fyzická struktura dat a jejich uložení jsou nezávislé a od uživatele separované.
  3. Existuje databázový jazyk, který umožňuje realizovat minimálně operace selekce, projekce a spojení.

3. Relační algebra

Databázové tabulky v relačních databázích nazýváme relace. Protože relace nejsou nic jiného než množiny, pro manipulaci s nimi můžeme použít běžné množinové operace, jako jsou kartézský součin, sjednocení a rozdíl. Dalšími operacemi jsou selekce a projekce. Uvedené operace společně tvoří základ takzvané relační algebry. Relační algebra je tedy množina různých operací pro práci s relacemi. Platí jednoduché pravidlo, že aplikace operace relační algebry na nějakou relaci vrací opět relaci.


3.1. Specifikace databáze

Relační databáze je matematicky vyjádřena jako dvojice (R, I), kde R = {R1, R2 ... Rn} je množina relací a I je množina integritních omezení.

Relace je vyjádřena jako R(A), kde A = {A1, A2 ... Ar} je množina atributů relace.


3.2. Selekce

Operace selekce (někdy také restrikce) se zapisuje jako R(φ), tedy relace se schématem R(A) podle logické podmínky φ.

Je-li R relace, pak R(φ) = { u | u ∊ R ∧ φ(u) }

Operace selekce vytvoří relaci se stejným schématem a ponechá n-tice z původní relace, které splňují podmínku φ. Podmínka φ je dána Booleovským výrazem jednoduchých podmínek ve tvaru t1 Θ t2 kde Θ ∊ {< > = ≤ ≥ ≠} a ti jsou jména atributů.


3.3. Projekce

Operace projekce se zapisuje jako R[C], tedy relace se schématem R(A) na množinu atributů C.

Je-li R relace, pak R[C] = { u[C] | u ∊ R }

Operace projekce vytvoří relaci se schématem C a n-ticemi, které vzniknou z původní relace odstraněním hodnot atributů z A.


3.4. Spojení

Operace spojení se zapisuje jako R * S. Jedná se o spojení relací R a S se schématy R(A) resp. R(B).

Jsou-li R a S relace, pak R * S = { u | u[A] ∊ R ∧ u[B] ∊ S }

Operace sjednocení vytvoří relaci se schématem A ∪ B a n-ticemi, jejichž projekce na atributy A je z relace R a projekce na atributy B je z relace S.


3.5. Sjednocení

Operace sjednocení patří mezi množinové operace. Pro všechny množinové operace platí, že je lze provést pouze s kompatibilními relacemi, tzn. v obou relacích musí odpovídat počet, pořadí a datový typ atributů.

Sjednocení relací R a S značíme R ∪ S. Výsledkem operace je relace složená z n-tic obou relací bez duplicit.


3.6. Rozdíl

Operace rozdíl patří mezi množinové operace. Pro všechny množinové operace platí, že je lze provést pouze s kompatibilními relacemi, tzn. v obou relacích musí odpovídat počet, pořadí a datový typ atributů.

Rozdíl relací R a S značíme R - S. Výsledkem operace je relace složená z n-tic relace R, které nejsou v relaci S.


3.7. Průnik

Operace průnik patří mezi množinové operace. Pro všechny množinové operace platí, že je lze provést pouze s kompatibilními relacemi, tzn. v obou relacích musí odpovídat počet, pořadí a datový typ atributů.

Průnik relací R a S značíme R ∩ S. Výsledkem operace je relace složená z n-tic, které jsou shodné pro obě relace.

Průnik je jinak odvozená relační operace, tzn. že ji lze vyjádřit pomocí jiné množinové operace, konkrétně R - (R - S).


4. Pravidla relačních databázových systémů

Dr. E. F. Codd definoval na přelomu šedesátých a sedmdesátých let minulého století následujících dvanáct pravidel pro relační databázové systémy.

  1. Data v relační databázi musí být reprezentována explicitně na logické úrovni pomocí relačních tabulek.
  2. Data uložená v relační databázi musí být přístupná pomocí kombinace názvu tabulky, názvu sloupce a hodnoty primárního klíče.
  3. Musí existovat identifikátor chybějící hodnoty nebo neznámé hodnoty odlišný od čísla nula a prázdného řetězce. Tento identifikátor označujeme pojmem NULL.
  4. Databáze musí umožňovat autorizovaným uživatelům přístup k datům i jejich metadatům pomocí stejného databázového jazyka.
  5. Databázový jazyk musí být jednoduchý a uživatelsky přívětivý, přičemž musí umožňovat definici dat, entitních omezení, manipulaci s daty, definici transakcí a přístupových práv.
  6. Relační databázový systém musí umožňovat definování pohledů a musí pro tyto pohledy povolit či zakázat vkládání, mazání nebo aktualizaci záznamů v základních tabulkách, nad kterými jsou tyto pohledy definovány.
  7. Relační databázový systém musí umožňovat množinové operace s celými tabulkami, a to nejen při vyhledávání, ale také při vkládání, aktualizaci a mazání dat.
  8. Aplikační logika nesmí vyžadovat modifikaci v případě změny interního uložení nebo způsobu přístupu k datům. Tento trend definuje fyzickou datovou nezávislost.
  9. Aplikační logika nesmí vyžadovat modifikaci v případě změn základních tabulek nezpůsobujících ztrátu informace (zrušení nebo přidání sloupce do tabulky). Tento bod definuje logickou datovou nezávislost.
  10. Aplikační logika nesmí vyžadovat modifikaci v případě změn integritních omezení definovaných pomocí databázového jazyka a uložených v systémovém katalogu.
  11. Aplikační logika nesmí vyžadovat modifikaci v případě, kdy jsou data distribuována na různých počítačích.
  12. Pokud disponuje databázový systém nízkoúrovňovým programovacím jazykem, nesmí být tomuto jazyku umožněno rušit nebo měnit omezení definovaná databázovým jazykem.