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
- Všechna data v databázi jsou uložena v tabulkách (relacích).
- Fyzická struktura dat a jejich uložení jsou nezávislé a od uživatele separované.
- 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.
- Data v relační databázi musí být reprezentována explicitně na logické úrovni pomocí relačních tabulek.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Aplikační logika nesmí vyžadovat modifikaci v případě, kdy jsou data distribuována na různých počítačích.
- 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.