Cvičení – připrav data pro relační databázi
Cvičení – připrav data pro relační databázi
Práce v Excelu • tabulky, záznamy, primární a cizí klíče
|
Cíl: pochopit, že databázová tabulka není jen obrázek schématu, ale obsahuje skutečné záznamy. V Excelu připravíš data pro stejné tabulky, se kterými pracuješ v databázových diagramech. |
1. Jak máš soubor připravit
Vytvoř jeden sešit a v něm šest listů: student, studentska_karta, trida, zak, predmet a zapis. První řádek každého listu bude obsahovat názvy polí přesně podle zadání níže.
Každý řádek pod záhlavím představuje jeden záznam. Každý sloupec představuje jedno pole. Uvnitř datových tabulek neslučuj buňky a nepřidávej prázdné řádky.
|
Důležité: Pro propojení tabulek nepoužívej jméno člověka, ale ID. Primární klíč musí být v tabulce jedinečný a cizí klíč musí odkazovat na existující ID v jiné tabulce. |
Barevná orientace v zadání: žlutě = primární klíč • modře = cizí klíč
2. Data pro relaci 1 : 1 – student a studentská karta
Do listu student zapiš následující data:
|
student_id |
jmeno |
prijmeni |
|
1 |
Adam |
Novotný |
|
2 |
Barbora |
Svobodová |
|
3 |
David |
Král |
|
4 |
Eva |
Veselá |
|
5 |
Filip |
Procházka |
Do listu studentska_karta zapiš:
|
karta_id |
student_id |
cislo_karty |
platnost_do |
|
101 |
1 |
STU-2026-001 |
30. 9. 2027 |
|
102 |
2 |
STU-2026-002 |
30. 9. 2027 |
|
103 |
3 |
STU-2026-003 |
30. 9. 2027 |
|
104 |
4 |
STU-2026-004 |
30. 9. 2027 |
|
105 |
5 |
STU-2026-005 |
30. 9. 2027 |
Zkontroluj: každý student_id z listu studentska_karta musí existovat také v listu student. V tomto příkladu má každý student právě jednu kartu.
3. Data pro relaci 1 : N – třída a žák
Do listu trida zapiš:
|
trida_id |
nazev |
obor |
|
1 |
3.A |
Mechanik elektronických zařízení |
|
2 |
3.B |
Informační technologie |
|
3 |
3.C |
Elektrotechnika |
Do listu zak zapiš:
|
zak_id |
jmeno |
prijmeni |
|
trida_id |
|
1 |
Jan |
Novák |
1 |
|
|
2 |
Petra |
Malá |
1 |
|
|
3 |
Tomáš |
Veselý |
2 |
|
|
4 |
Eva |
Králová |
2 |
|
|
5 |
Adam |
Dvořák |
3 |
|
|
6 |
Lucie |
Svobodová |
1 |
Zkontroluj: hodnota trida_id u každého žáka musí odpovídat některému trida_id v listu trida. Jedna třída se proto může objevit u více žáků.
4. Data pro relaci M : N – žák a předmět
Pro tuto část použij stejné žáky z listu zak. Do listu predmet zapiš:
|
predmet_id |
nazev |
|
1 |
Databáze |
|
2 |
Počítačové sítě |
|
3 |
Programování |
|
4 |
Operační systémy |
Do spojovacího listu zapis zapiš:
|
zapis_id |
zak_id |
predmet_id |
skolni_rok |
datum_zapisu |
|
1 |
1 |
1 |
2026/2027 |
1. 9. 2026 |
|
2 |
1 |
2 |
2026/2027 |
1. 9. 2026 |
|
3 |
2 |
1 |
2026/2027 |
1. 9. 2026 |
|
4 |
2 |
4 |
2026/2027 |
1. 9. 2026 |
|
5 |
3 |
2 |
2026/2027 |
2. 9. 2026 |
|
6 |
3 |
3 |
2026/2027 |
2. 9. 2026 |
|
7 |
4 |
1 |
2026/2027 |
2. 9. 2026 |
|
8 |
4 |
3 |
2026/2027 |
2. 9. 2026 |
|
9 |
5 |
4 |
2026/2027 |
3. 9. 2026 |
|
10 |
6 |
1 |
2026/2027 |
3. 9. 2026 |
|
11 |
6 |
2 |
2026/2027 |
3. 9. 2026 |
Jeden řádek v listu zapis znamená: tento žák má zapsaný tento předmět. Stejný zak_id se může objevit vícekrát a stejný predmet_id se může objevit vícekrát – právě tím vzniká vztah M : N.
5. Úkoly nad vytvořenými daty
|
Úkol |
Otázka |
|
1 |
Která studentská karta patří Barboře Svobodové? Uveď karta_id i cislo_karty. |
|
2 |
Kolik žáků patří do třídy 3.A? Napiš jejich jména. |
|
3 |
Do které třídy patří Tomáš Veselý? Zjisti to pouze pomocí trida_id. |
|
4 |
Které předměty má zapsané Jan Novák? Postupuj přes tabulku zapis. |
|
5 |
Kteří žáci mají zapsaný předmět Databáze? |
|
6 |
Vysvětli jednou větou, proč je tabulka zapis potřeba. |
6. Vlastní doplnění dat
Přidej jednoho nového žáka do existující třídy a přidej mu dva zápisy předmětů. ID zvol tak, aby se neopakovalo. Potom přidej nového studenta s novou studentskou kartou. Všechny cizí klíče musí odkazovat na existující záznamy.
|
Kontrola před odevzdáním: Máš 6 listů, správná záhlaví, jedinečná ID, platné cizí klíče, žádné sloučené buňky a dokážeš vysvětlit, co znamená jeden řádek v každé tabulce. |
7. Co si máš z cvičení odnést
|
Řádek |
jeden záznam |
|
Sloupec |
jedno pole / vlastnost |
|
Primární klíč |
jedinečně určuje záznam |
|
Cizí klíč |
odkazuje do jiné tabulky |
Smyslem není jen data opsat, ale pochopit, jak se z hodnot ID pozná, které záznamy k sobě patří.