Přejít na obsah

🔍 Základní pojmy relačních databází

Průvodce světem dat pro začínající databázové nadšence


🧱 Co je to databáze?

Databáze je organizovaná sbírka dat, která je uložena a spravována elektronicky v počítačovém systému. Představte si ji jako digitální kartotéku, ve které místo papírových šanonů používáme tabulky propojené vzájemnými vazbami.

💡 Přirovnání: Databáze je jako knihovna — místo knih na policích uchováváme data v tabulkách, místo regálů máme databázové schéma a místo knihovníka se o správu stará systém řízení báze dat (SŘBD / DBMS).


📊 Relační model — srdce moderních databází

Základem relačních databází (např. PostgreSQL, MySQL, MariaDB, Oracle) je relační model, který v roce 1970 navrhl Edgar F. Codd. 

Jeho hlavní myšlenka je geniálně jednoduchá:

  • Data organizujeme do tabulek
  • Tabulky mezi sebou mají vztahy (relace)
  • S daty pracujeme pomocí množinových operací


📋 Tabulka — základní stavební kámen

Každá tabulka se skládá ze tří úrovní:

PrvekOdborný názevPopis
SloupecAtribut / PoleUrčuje, jaký typ informace ukládáme (např. jméno, datum, cena)
ŘádekZáznam / TupleJeden konkrétní výskyt dat (např. jeden student, jedna objednávka)
BuňkaHodnotaKonkrétní údaj na průsečíku řádku a sloupce


Relační databáze

Relační databáze ukládá data především do tabulek. Každá tabulka představuje určitý druh objektu – například tabulka zak obsahuje žáky, tabulka trida třídy a tabulka predmet předměty.

Tabulky mohou být mezi sebou propojené. Těmto propojením říkáme relace.

1. Tabulka

Tabulku si můžeme představit podobně jako tabulku v Excelu. Skládá se ze sloupců a řádků.

zak_id

jmeno

prijmeni

1

Jan

Novák

2

Petra

Malá

3

Tomáš

Veselý

2. Sloupec neboli pole

Sloupec určuje, jaký druh informace v něm bude uložen. V tabulce zak můžeme mít například pole zak_id, jmeno a prijmeni. Sloupci se někdy říká také pole.

3. Řádek neboli záznam

Jeden řádek představuje jeden konkrétní záznam. Řádek „1 | Jan | Novák“ tedy představuje jednoho konkrétního žáka.

Jednoduše: Sloupec říká, jaký údaj ukládáme. Řádek představuje jeden konkrétní objekt.


5. Hodnota

Jednotlivý údaj uložený v tabulce nazýváme hodnota. V řádku „1 | Jan | Novák“ jsou hodnotami například 1, Jan a Novák.

6. Datový typ

Každý sloupec má datový typ. Datový typ určuje, jaký druh hodnot může být ve sloupci uložen.

Datový typ

Co ukládá

Příklad

INT

celé číslo

zak_id = 1

VARCHAR

text

jmeno = Jan

DATE

datum

platnost_do = 30. 6. 2027

Zápis VARCHAR(60) znamená, že pole může obsahovat text do určené maximální délky. Pro začátek stačí vědět, že datový typ určuje, jaký druh hodnot do pole patří.

7. ID

V databázi potřebujeme jednotlivé záznamy spolehlivě rozeznat. K tomu se často používá ID. Dva žáci se mohou jmenovat stejně, ale jejich ID bude odlišné – například zak_id = 1 a zak_id = 2.

8. Primární klíč

Primární klíč jednoznačně identifikuje každý záznam v tabulce. Velmi často je primárním klíčem právě ID – například zak_id, trida_id nebo predmet_id. V databázových diagramech bývá označen symbolem klíče.

Zapamatuj si: Primární klíč = jednoznačná identifikace záznamu.

9. Cizí klíč

Cizí klíč slouží k propojení tabulek. Například tabulka trida může obsahovat třídu s trida_id = 1 a v tabulce zak bude mít Jan hodnotu trida_id = 1. Databáze tak pozná, že Jan patří do této třídy.

Zapamatuj si: Primární klíč identifikuje záznam. Cizí klíč propojuje tabulky.


10. Relace

Relace je vztah mezi záznamy ve dvou tabulkách. Základní typy jsou 1 : 1, 1 : N a M : N. Písmena M a N znamenají „více“.


11. Relace 1 : 1

Čteme „jeden ku jednomu“. Jeden záznam v jedné tabulce souvisí právě s jedním záznamem ve druhé tabulce.

V našem příkladu platí: jeden student má jednu studentskou kartu a jedna studentská karta patří jednomu studentovi.

STUDENT   1 : 1   STUDENTSKÁ KARTA


Obr. 1 – Relace 1 : 1. Jeden student má jednu studentskou kartu a jedna karta patří jednomu studentovi.

V tabulce student je student_id. V tabulce studentska_karta se student_id používá k určení, kterému studentovi karta patří. Tabulka karty dále obsahuje například karta_id, cislo_karty a platnost_do.

12. Relace 1 : N


Čteme „jeden ku více“. Jeden záznam v první tabulce může souviset s více záznamy ve druhé tabulce.

Příklad: jedna třída může obsahovat mnoho žáků, ale každý žák v našem jednoduchém modelu patří do jedné třídy.

TŘÍDA   1 : N   ŽÁK

Obr. 2 – Relace 1 : N. Jedna třída může obsahovat více žáků, jeden žák patří do jedné třídy.

Tabulka trida obsahuje například trida_id, nazev a obor. Tabulka zak obsahuje zak_id, jmeno, prijmeni, email a trida_id. Právě trida_id v tabulce zak říká, do které třídy žák patří.


13. Jak číst značky 1 a N

V databázových diagramech číslo 1 znamená jeden záznam a N (nebo malé n) znamená více záznamů. Spojení „trida 1 — N zak“ tedy čteme: jedna třída může mít více žáků.

14. Relace M : N

Čteme „více ku více“. Více záznamů z jedné tabulky může souviset s více záznamy ve druhé tabulce.

Příklad: jeden žák může mít zapsáno několik předmětů a zároveň jeden předmět může studovat více žáků. Mezi žákem a předmětem tedy existuje vztah M : N.


zapis_id

zak_id

predmet_id

1

10

2

2

10

5

3

11

2

Žák 10 může mít více předmětů a předmět 2 může mít více žáků.



Na diagramu vlastně vidíme dvě relace: ŽÁK 1 : N ZÁPIS a PŘEDMĚT 1 : N ZÁPIS. Dohromady tím vzniká vztah ŽÁK M : N PŘEDMĚT.

15. Spojovací tabulka

U vztahu M : N se v relační databázi obvykle používá další, spojovací tabulka. V našem příkladu se jmenuje zapis.

Obsahuje například zapis_id, zak_id, predmet_id, skolni_rok a datum_zapisu. Každý její řádek znamená: tento žák má zapsaný tento předmět.

zapis_id

zak_id

predmet_id

1

10

2

2

10

5

3

11

2

Žák 10 může mít více předmětů a předmět 2 může mít více žáků.

16. Proč nepíšeme všechny údaje do jedné tabulky?

Mohli bychom vytvořit jednu obrovskou tabulku se sloupci Žák, Příjmení, Třída, Obor, Předmět a Školní rok. Stejné informace bychom ale zapisovali stále znovu – například název třídy 3.A u každého žáka.

Relační databáze proto údaje rozděluje do samostatných tabulek a ty následně propojuje pomocí relací.

TŘÍDA  →  ŽÁK  →  ZÁPIS  ←  PŘEDMĚT

17. Jak číst databázový diagram

Název nahoře říká, o jakou tabulku jde. Pod ním jsou její sloupce. Vedle sloupců jsou datové typy, například INT nebo VARCHAR. Symbol klíče označuje primární klíč. Čára mezi tabulkami označuje relaci a značky 1, n nebo N ukazují, kolik záznamů může být na jednotlivých stranách vztahu.


18. Přehled našich tří relací

Typ relace

Příklad

Význam

1 : 1

student – studentská karta

jeden student má jednu kartu

1 : N

třída – žák

jedna třída má více žáků

M : N

žák – předmět

více žáků může mít více předmětů

U vztahu M : N používáme v našem příkladu spojovací tabulku zapis.

19. Nejdůležitější pojmy

Databáze: Uspořádaná sbírka dat.

Primární klíč: Jednoznačně identifikuje záznam v tabulce.

Relační databáze: Databáze založená na tabulkách, které mezi sebou mohou mít vztahy.

Cizí klíč: Odkazuje na záznam v jiné tabulce a umožňuje propojení tabulek.

Tabulka: Obsahuje data určitého druhu.

Relace: Vztah mezi tabulkami.

Sloupec / pole: Určuje, jaký údaj ukládáme.

1 : 1: Jeden záznam souvisí s jedním záznamem.

Řádek / záznam: Představuje jeden konkrétní objekt.

1 : N: Jeden záznam souvisí s více záznamy.

Hodnota: Konkrétní údaj uložený v jednom poli.

M : N: Více záznamů souvisí s více záznamy.

Datový typ: Určuje druh uložených dat, například text, číslo nebo datum.

Spojovací tabulka: Tabulka používaná zejména pro vytvoření vztahu M : N.

ID: Identifikátor záznamu.


20. Co si z kapitoly zapamatovat

Databáze obsahuje TABULKY   |   Tabulky obsahují SLOUPCE a ŘÁDKY   |   Záznam má svoje ID   |   ID může být PRIMÁRNÍ KLÍČ   |   Tabulky propojujeme pomocí KLÍČŮ   |   Mezi tabulkami vznikají RELACE   |   Základní relace 1 : 1 • 1 : N • M : N

To je základ, na kterém stojí další práce s relačními databázemi.


👉 V následujících lekcích se postupně ponoříme do každého z těchto témat hlouběji.

V tomto kurzu nejsou povoleny komentáře.