Relační datový model

Tabulka s dvěma atributy znázorněná jako relace
Relační datový model je způsob uchování dat v tabulkách. Relační se mu říká proto, protože se tabulka se definuje přes relaci.
Relace je tedy v podstatě tabulka. Definována je jako podmnožina kartézského součinu domén.
Relace na obrázku vpravo je tedy podmnožina součinu množin {Dudak, Novák, Dvořák} x {Milan, Martin, Jan, ..., Aleš}
Na rozdíl od matematické relace se ta databázová mění v čase (přidáváním a odebíráním prvků relace). Kromě základních množinových operací se u databázové relace setkáme s operaci selekce - výběr řádků a projekce -výběr sloupců.

Relace z předchozího obrázku zobrazena tabulkou
Doména je množina všech hodnot, kterých může nabývat atribut. Jinak řečeno obor hodnot atributu. V praxi je doména dána integritním omezením (IO).
Doména atributu Přijmení z obrázků je množina {Dudak, Novák, Dvořák}. *pozn.
Atribut je vlastnost entity. Z pohledu tabulky jde o sloupec.
Relační schéma můžeme chápat jako strukturu tabulky (atributy a domény).
Příklad pro tabulku (relaci) Učitel:
Atributy: ID, jméno, příjmení, funkce, kancelář
Domény:
D1 - tři písmena z příjmení, tří cifry pořad. čísla
D2 - kalendář jmen
D3 - množina příjmení
D4 - množina funkcí (asistent, vědec, učitel,...)
D5 - A101, A102, ... A160
Relační schéma: Učitel (ID, jméno, příjmní, funkce, kancelář)
Relace: Učitel = {(nov001,lukas,novak,vědec,A135),(kom123,jan,komensky,učitel,A111),...}
Definovano je jako R(A,f), kde A je množina atributů (A1,A2,...An) a funkce f(Ai)=Di přiřazuje atributu doménu.
Vlastnosti relačního datového modelu
Z definice relace vyplývají tyto jejich tabulkové vlastnosti:
- homogenita sloupců (prvky domény)
- každý údaj (hodnota atributu ve sloupci) je atomickou položkou
- na pořadí řádků a sloupců nezáleží (jsou to množiny prvků/atributů)
- každý řádek tabulky je jednoznačně identifikovatelný hodnotami jednoho nebo několika atributů (primárního klíče)
Vazby v relačním modelu
Obecně se vazby v relačním modelu realizují pomocí další relace (tabulky). Jedná se o tzv. vazební tabulku. Ta obsahuje ty atributy relací (tabulek, které se vazby účastní), které jednoznačné identifikují jejich entity - primární klíče. Obsahuje-li tabulka atribut, který slouží jako primární klíč v jiné tabulce, pak obsahuje cizí klíč. Vazební tabulka tedy obsahuje cizí klíče.
Na obrázku dole máme zobrazenou relaci Učitel s primárním klíčem idu a relaci Předmět s primápním klíčem cp. K vyjádření vztahu Učitel UČÍ Předmět byla vytvořena nová relace Učí, která obsahuje dva cizí klíče (idu odkazující na učitele a cp odkazující na entitu předmětu). Nyní tedy můžeme přes vazební tabulku pospojovat učitele s předměty, podle toho kdo co učí.
A proč jsme do tabulky Učitel nepřidali jen atribut předmět? Jednoduše proto, že učitel může učit více předmětů. Mezi učitelem a předmětem je vazba M:N. Takže ani kdybychom přidali do tabulky Předmět atribut učitel, bychom tento vztah nevyřešili (předmět může být učen více učiteli). Pro vztah 1:N by to však šlo a v praxi se to tak i dělá. Takže vazební tabulka je nutná jen k realizací vztahů M:N.

Ukázka vazební tabulky pro vztah Učí mezi tabulkami Učitel a Předmět. Vztah je M:N, tedy že jeden učitel může učit N předmětů a jeden předmět může být učen M učiteli.