Relační model

Relační model je nejrozšířenějším způsobem uložení dat v databázi. Jedná se o způsob uložení v logickém smyslu.

PopisEditovat

V roce 1969 přišel informatik E. F. Codd se svou představou o databázi založené na matematickém aparátu relačních množin a predikátové logice (A relational data model for large shared data banks). Databázová relace se od matematické poněkud liší. Má zavedený pomocný aparát nazvaný schéma relace. Schéma relace říká, jaký je název relace, kolik má sloupců a jaké jsou jejich názvy a domény (doména je množina přípustných hodnot pro daný sloupec). V databázích je schématem relace definice struktury tabulky. Ovšem relací nemusí být pouze tabulka, nýbrž jakákoliv struktura dělená do řádků a sloupců. Relací je například i výsledek jakéhokoliv dotazu, a podle toho s ním je možno i dále pracovat. Velmi rozšířeným omylem je, že relační model se nazývá podle vztahů mezi daty, pojem "relační" však vychází z relací matematických, na kterých je celý model založen.

ImplementaceEditovat

Relační databázový model sdružuje data do tzv. relací (tabulek), které obsahují n-tice (řádky). Tabulky (relace) tvoří základ relační databáze. Tabulka je struktura záznamů s pevně stanovenými položkami (sloupci - atributy). Každý sloupec má definován jednoznačný název, typ a rozsah, neboli doménu. Záznam se stává n-ticí (řádkem) tabulky. Pokud jsou v různých tabulkách sloupce stejného typu, pak tyto sloupce mohou vytvářet vazby mezi jednotlivými tabulkami. Tabulky se poté naplňují vlastním obsahem - konkrétními daty.

Kolekce více tabulek, jejich funkčních vztahů, indexů a dalších součástí tvoří relační databázi.

Relační model přináší celou řadu výhod, zejména mnohdy přirozenou reprezentaci zpracovávaných dat, možnost snadného definování a zpracování vazeb apod.

Relační model klade velký důraz na zachování integrity dat. Zavádí pojmy referenční integrita, cizí klíč, primární klíč, normální tvar apod.

S relačními databázemi je úzce spojen pojem SQL (Structured Query Language), neboli strukturovaný dotazovací jazyk. Jeho základní model je obecně použitelný pro většinu relačních databází. Od svého vzniku prošel několika revizemi a poskytovatelé databázových produktů jej obohatili o různá lokální rozšíření. Tato rozšíření ale nejsou vzájemně kompatibilní.