1 of 41

Databáze v geoinformatice I.

Mgr. Michal Jakl

ZS 2026

2 of 41

Obsah lekce

  1. Představení předmětu
  2. Představení vyučujícího
  3. Představení studentů
  4. Databáze obecně
  5. Historie vývoje databází
  6. Filozofie databází
  7. Architektury
  8. Základní pojmy

​

Praktické cvičení: Zprovoznění softwaru pro práci na cvičeních

3 of 41

1. Představení předmětu

  • Databáze v geoinformatice
  • Prezenční/distanční forma
  • ZS 2026, čtvrtky v čase 16:00 až (+/-) 19:00
  • Konzultace dle potřeby individuálně
  • Dokumentace -> https://mjakl.cz + Moodle
  • Zápočet + zkouška -> 5 kreditů

„Mám nadrceno!“ vs. „Umím (o tom) přemýšlet“

4 of 41

1. Cíle a obsah

​

    • Filozofie, teorie a historie databází
    • Dotazovací jazyk SQL
    • Prostorové databáze (postgreSQL)
    • Využití databází v GIS aplikacích (ESRI, QGIS, web, mobil…)
    • Praktické využití a příklady - motivace

​

5 of 41

6 of 41

Podmínky pro absolvování předmětu

​

  • Pro získání zápočtu:
      • Účast na výuce (minimálně 85%)
      • Úspěšné vypracování a obhajoba semestrálního úkolu

​

  • Pro získání zkoušky
    • Získání zápočtu
    • Úspěšné absolvování závěrečného testu

7 of 41

Semestrální úkol - FÁZE 1

  • 1. Domácí příprava (Vlastní návrh databáze)

​

    • Téma:
      • Libovolné (např. rezervační systém, firma, škola, farma...)

​

    • Minimální požadavky:
      • Alespoň 6 tabulek
      • Minimálně jedna vazba M:N (spojovací tabulka)
      • Povinná prostorová složka dat (geometrie pro GIS funkce)

    • Cíl:
      • Navrhnout a pochopit relační schéma. Odevzdává se pouze vaše znalost na zkoušce, žádné ZIP archivy a data předem

8 of 41

Semestrální úkol - FÁZE 2

  • 2. Průběh zkoušky (ve vypsaných termínech)

​

    • Kreslení z paměti (max 10 minut):
      • Zrekonstruování vašeho databázového schématu na tabuli/papír bez poznámek. (Hodnotí se pochopení architektury a logiky vazeb, ne fotografická paměť na jména sloupců)

​

    • Interaktivní obhajoba nad nákresem (max 10 minut):
      • Vysvětlení principu (klíče, datové typy, normalizace atd.)
      • Vymyšlení SQL dotazů na místě (např. propojení tabulek přes JOIN, využití prostorové funkce atd.)
      • Architektonický test: Úprava schématu na základě nové fiktivní úpravy zadání

9 of 41

Semestrální úkol - speciální potřeby

  • 3. Studenti se specifickými potřebami

​

    • Mají výjimku - k obhajobě si mohou přinést vytištěný nákres vlastního schématu jako vizuální oporu.
    • Pravidla pro minimální složitost databáze a doplňující dotazy zkoušejícího zůstávají stejná.

10 of 41

Semestrální úkol - hodnocení

  • K.O. kritéria (Automatické "Nesplnil")
    • Pokud nastane jedna z těchto situací, obhajoba okamžitě končí neúspěchem:
      • Ignorování zadání: Schéma má méně než 6 tabulek, nemá vazbu M:N nebo postrádá geometrii pro GIS.
      • Hrubé porušení relací (1. NF): Student ukládá více hodnot do jednoho atributu (např. seznam ID uživatelů natvrdo vypsaný do textového sloupce) místo použití vazební tabulky.
      • Slepé klíče: Cizí klíče odkazují do prázdna, nebo student spojuje tabulky přes atributy, které k tomu nejsou určené (např. propojení přes jméno místo ID).
      • Neznalost vlastního návrhu: Student neví, proč do schématu nakreslil konkrétní entitu nebo nedokáže vysvětlit její účel v systému.
  • Checklist pro "Splnil"
    • Aby student dostal zápočet, musí u obhajoby splnit všechny následující body:
      • Obhájení návrhu: Dokáže správně identifikovat a vysvětlit vztahy 1:N a M:N ve svém schématu.
      • Logika JOINu: Na dotaz (např. "Jak zjistím, jaké objednávky udělal tento konkrétní zákazník?") dokáže prstem ukázat přesnou cestu přes tabulky a pojmenovat primární a cizí klíče, které k propojení použije.
      • Prostorové myšlení: Navrhne logický postup pro zpracování GIS dotazu (např. "Které body zájmu leží v tomto polygonu?"). Nevyžaduje se přesná SQL syntaxe, ale pochopení prostorového principu (průnik, vzdálenost, buffer).
      • Architektonický test: Při požadavku na rozšíření systému (např. "Chceme evidovat historii změn adresy") navrhne strukturálně správné řešení – tedy přidání nové tabulky a správných vazeb, nikoliv přepisování starých dat.

11 of 41

Závěrečný písemný test

​

  • Bude obsahovat nejrůznější otázky, které budou průřezem probíraných témat (výběr bude učiněn striktně dle obsahu zveřejněných prezentací či dalších studijních materiálů)
  • První možnost splnění bude v předtermínu na poslední hodině výuky (a obhajov sem. prací), následně budou ve zkouškovém období vypsány tři termíny
  • Všechny otázky je možné předem zkoušet v generátoru testových zadání na webu https://mjakl.cz

12 of 41

2. Představení vyučujícího

strasidlov.cz

mjakl.cz

povestialegendy.cz

13 of 41

3. Představení studentů

14 of 41

4. Databáze obecně

Neorganizovaná data

Organizovaná data

„Kolik mám triček?“

„Který talíř je nejšpinavější?“

„Mám ještě v šuplíku dost místa?“

„Mám patery hnědé kalhoty, nebo jich mám méně?“

„Kde jsou moje ponožky?“

„Kolik děr má moje nejstarší košile?“

15 of 41

4. Co je to databáze?

  • Databázi si můžete nejsnáze představit jako papírovou kartotéku známou z lékařských ordinací.

​

  • Databáze obsahuje data (informace o pacientech) uložená na paměťovém médiu (papíry). Tato data mezi sebou mají určité vztahy (např. u jednoho pacienta chronologicky navazují) a jsou určitým způsobem členěna (desky jednotlivých pacientů, šuplíky podle příjmení).

​

  • V širším pojetí spadají do pojmu databáze i nástroje, které s daty pracují (ukládají je, mění je a mažou je) – v uvedeném případě je tedy součástí databáze i sestřička.

16 of 41

4. Co je to databáze?

Databáze je organizovaný soubor strukturovaných informací neboli dat, které se obvykle ukládají v elektronické podobě v počítačovém systému. Databáze je obvykle řízena systémem pro správu databáze (DBMS – database management system). Data a systém DBMS společně s přidruženými aplikacemi se označují jako databázový systém, často zkráceně jako databáze.

​

Data v nejběžnějších typech současných databází jsou obvykle modelována jako řada tabulek složených z řádků a sloupců, což umožňuje efektivní zpracování a vytváření dotazů. Je tak zajištěn snadný přístup k datům, správa, úpravy, aktualizace, řízení a organizace dat. Většina databází používá k zadávání dat a vytváření dotazů dotazovací jazyk SQL (structured query language).

​

Zdroj: https://www.oracle.com/cz/database/what-is-database/

Data + metadata + SŘBD

Databáze (neboli datová základna, též databanka) je systém souborů s pevnou strukturou záznamů. Tyto soubory jsou mezi sebou navzájem propojeny pomocí klíčů. V širším smyslu jsou součástí databáze i softwarové prostředky, které umožňují manipulaci s uloženými daty a přístup k nim. Tento software se v české odborné literatuře nazývá systém řízení báze dat (SŘBD). Běžně se označením databáze – v závislosti na kontextu – myslí jak uložená data, tak i software (SŘBD).

Zdroj: https://cs.wikipedia.org/wiki/Datab%C3%A1ze

17 of 41

4. Databáze vs. soubor

Běžný soubor (TXT, Excel)

​

🐌 Pomalé hledání (musí se číst celý od začátku).

🔒 Problém se zápisem (jeden zapisuje, ostatní čekají).

🗑️ Zmatek v datech (do sloupce s věkem lze napsat "jahoda").

Relační databáze (SQL)

​

⚡ Extrémní rychlost (používá chytrou křížovou evidenci – indexy).

👥 Souběžnost (tisíce uživatelů čtou a zapisují ve stejnou chvíli).

🛡️ Integrita a vztahy (hlídá, že nesmažete rodiče, pokud existuje dítě).

🔑 Bezpečnost (přístup lze omezit i na jediný konkrétní sloupec).

💡 Zajímavost: Nejrozšířenější databáze světa (SQLite) je paradoxně jen jeden soubor. Přesto je to plnohodnotná databáze. Právě teď jich máte ve svém mobilu, prohlížeči nebo autě ukrytých několik desítek!

18 of 41

4. Databáze vs. tabulkový procesor

Tabulkový procesor (Excel)

​

🧑‍💻 Pro lidi: Skvělý pro rychlé vizualizace, grafy a ruční výpočty.

🥣 Vše v jednom: Mixuje dohromady data, vzorce i barvičky.

📉 Omezený objem: Nad 1 milion řádků Excel začíná padat.

🔗 Křehké vazby: Propojení tabulek (např. přes SVYHLEDAT) se snadno "rozbije".

Databáze (SQL)

​

🤖 Pro aplikace: Skrytý "motor", který pohání weby a programy na pozadí.

🧱 Čistota: Uchovává striktně jen data. Vzhled a výpočty řeší až aplikace.

📈 Obrovská data: Zpracuje miliardy záznamů a nezapotí se.

⛓️ Pevné vztahy (Cizí klíče): Nemůžete smazat fakturu, pokud je na ní navázaná platba.

💡 Zajímavost: Odhaduje se, že desítky procent firem po celém světě tajně řídí svůj byznys na sdíleném Excelu, o kterém si myslí, že je to databáze. Zjistí, že není, většinou až v den, kdy do něj chtějí zapisovat tři lidi najednou a celý soubor se nenávratně poškodí.

19 of 41

4. Databázová integrita

Databázová integrita (Základní mantinely)

​

🛡️ Hlídač smysluplnosti: Zaručuje, že data jsou přesná a platná (do věku nezadáte text, věk nebude záporný).

🔑 Entitní integrita: Každý záznam musí mít svůj unikátní identifikátor (Primární klíč). V databázi nesmí být dva absolutně totožní, k nerozeznání stejní studenti.

Referenční integrita (Vztahy mezi tabulkami)

​

⛓️ Zákaz "sirotků": Záznam v jedné tabulce nesmí odkazovat na něco, co už neexistuje.

❌ Při vkládání dat: Systém vás nenechá zapsat docházku studentovi, který vůbec neexistuje v databázi studentů.

🗑️ Při mazání dat: Nemůžete smazat předmět, dokud k němu existují termíny a docházky. (Systém buď zahlásí chybu, nebo vše promazává automaticky tzv. kaskádově).

💡 Zajímavost: Ztráta referenční integrity v IT by byla katastrofa. Kdyby banky nepoužívaly tyto "cizí klíče", mohly by vaše peníze při převodu odejít z vašeho účtu, ale "přistát" na účtu s ID, které už někdo smazal. Peníze by nenávratně zmizely v digitálním vzduchoprázdnu. Databáze díky integritě takovou transakci raději okamžitě stornuje.

20 of 41

4. Kdy ukládat do databáze

Výhody:

  • Úlohy vyžadující mnoho manuálních kroků
  • Kontrola referenční integrity (“hlídání vstupů”)
  • Spolupráce více uživatelů
  • Transakce (změna provedena celá nebo vůbec)

​

Nevýhody:

  • Cena implementace
  • Kompatibilita s GIS programy
  • Rychlost přístupu (centrální vs. lokální DB)
  • Datové struktury a dostupnost
  • Uživatelské znalosti / požadavky

21 of 41

5. Historie vývoje databází

  • Předchůdcem databází byly papírové kartotéky. Umožňovaly uspořádávání dat podle různých kritérií a zatřiďování nových položek. Veškeré operace s nimi prováděl přímo člověk. Správa takových kartoték byla v mnohém podobná správě dnešních databází.

​

  • První databázové zpracování r. 1890 při sčítání lidu ve Spojených státech - Herman Hollerith
  • Zkrácení zpracování pomocí děrných štítků ze sedmi let na pouhých šest týdnů
  • Děrné štítky ne pro program, ale pro data
  • Jeden z praotců společnosti IBM

Herman Hollerith (1891):

​

"Nikdo vám to už nespočítá rychleji!"

22 of 41

5. Historie vývoje databází

  • Databáze od svého vzniku na počátku 60. let zaznamenaly dramatický vývoj.
  • Souborový datový model 1951
  • Hierarchický datový model 1953
  • Síťový datový model 1971
    • Prvními systémy, které se používaly k ukládání dat a manipulaci s nimi, byly navigační databáze, jako je hierarchická databáze (která se opírala o stromový model a umožňovala pouze vztahy typu one-to-many – „jeden k více“) a síťová databáze (pružnější model, který umožňoval různé vztahy). Tyto první systémy byly jednoduché, ale nepružné.
  • Relační datový model 1969
  • Kolem roku 1974 se vyvíjí první verze dotazovacího jazyka SQL
  • V 80. letech získaly popularitu relační databáze a v 90. letech následovaly objektově orientované databáze.
  • V poslední době vznikly databáze NoSQL jako reakce na růst internetu a potřebu vyšší rychlosti a zpracování nestrukturovaných dat. Pokud se jedná o to, jakým způsobem probíhá shromažďování, ukládání, správa a využívání dat, stávají se dnes základem cloudové databáze a autonomně řízené databáze.

​

Zdroj: https://www.oracle.com/cz/database/what-is-database/

​

Thomas Watson (IBM), 1943:

​

"Nemyslím si, že by na celosvětovém trhu byla poptávka po více než pěti počítačích."

23 of 41

6. Proč se zajímat o databáze?

💾 Z počítačů jsou "přesouvače": Počítače už dávno nedělají složitou matematiku. Zhruba 95 % dnešních aplikací (od TikToku po banky) v podstatě jen čte a zapisuje data z databáze.

🛢️ Nová ropa 21. století: Nejcennějším majetkem firem už není hardware, ale data. Kdo je umí efektivně uložit a bleskově v nich hledat, ten na trhu vyhrává.

📈 Exploze informací: Objem zpracovávaných dat se zhruba každý rok až dva zdvojnásobí. Bez databázových systémů bychom se v tom chaosu doslova utopili.

💰 Snová kariéra a byznys: Poptávka po lidech (znalost SQL) neustále roste a trh s databázemi má dnes hodnotu už přes 100 miliard USD.

💡 Zajímavost: Říká se, že 90 % všech dat, která kdy v historii lidstva vznikla, byla vytvořena za poslední 2 roky. Pokud byste chtěli stáhnout všechna data, která se na světě vyprodukují za jeden jediný rok, na běžné domácí Wi-Fi by vám to trvalo necelé 2 miliardy let. Bez špičkových databází se zkrátka lidstvo už neobejde.

24 of 41

6. Proč se zajímat o databáze?

25 of 41

6. Systém řízení databáze (SŘBD)

🌉 Prostředník (Most): SŘBD nejsou samotná data na disku, ale specializovaný software, který sedí mezi vámi (nebo vaší aplikací) a těmi uloženými daty.

🧹 Špinavá práce na pozadí: Vy (nebo programátor) jen napíšete "ukaž mi seznam studentů". SŘBD řeší zbytek – kde přesně na pevném disku jsou, jak je přečíst co nejrychleji a jak nezabrat celou paměť serveru.

🚦 Bezpečnostní semafor: Funguje jako nekompromisní hlídač. Řídí, kdo má k jakým datům přístup, tvoří zálohy a řídí "provoz", aby dva uživatelé ve stejnou mikrosekundu nepřepsali ten samý záznam.

🗄️ Kdo vládne trhu: Mezi ty nejznámější SŘBD patří MySQL, PostgreSQL, Oracle, nebo Microsoft SQL Server.

💡 Zajímavost: Jeden z nejznámějších SŘBD (Oracle) začal vznikat v roce 1977 s kódovým označením "Project Oracle". A kdo byl první klient? Americká zpravodajská služba CIA. Šlo o první komerční software svého druhu a z jeho tvůrce (Larryho Ellisona) udělal jednoho z nejbohatších lidí planety.

26 of 41

6. Databázový systém

🧩 Kompletní balíček: Když se řekne "databázový systém", nemyslí se tím už jen data samotná nebo jen software. Jde o celý živý organismus, který spolupracuje.

🧮 Základní rovnice: Databázový systém = Data + SŘBD (software) + Hardware (servery) + Aplikace + Lidé.

🧑‍💻 Lidský faktor: Součástí systému jsou i jeho uživatelé. Od Databázových administrátorů (DBA), kteří systém ladí a opravují, až po běžného uživatele (např. studenta klikajícího v IS).

🖥️ Železo (Hardware): Aby systém zvládal obrovský tlak, spoléhá na brutální hardware – specializované servery obvykle nacpané na doraz rychlou pamětí (RAM) a extrémně rychlými SSD disky.

​

Co by databázový systém měl umět?

Protože databázový systém musí dennodenně pracovat s opravdu početným skupenstvím perzistentních dat, tak na něj jsou kladeny jisté nároky, které by měl pro práci s daty snadno zvládat. Jako např.:

• podpora pro definice datového modelu (např. relační nebo logický)

• využití některého z jazyků (SQL, QBE atd.) vyšší úrovně pro manipulaci dat

• správu transakcí

• autentizaci uživatelů a autorizaci operací nad datami

• robustnost a zotavitelnost po chybách bez ztráty dat

27 of 41

6. Jak správně vybrat databázi?

🛠️ Nástroj, nikoliv cíl: Databáze nesmí být vybírána podle toho, co je zrovna "cool" nebo "moderní". Je to jen nástroj – přesné stanovení požadavků aplikace je absolutní základ.

⚖️ Umění kompromisu: Neexistuje dokonalá databáze. Vždy něco obětujete. Rychlost na úkor bezpečnosti, výkon na úkor peněz. Musíte znát své vnitřní (technické) i vnější (firemní) potřeby.

💸 Skrytá past peněz: Samotná databáze může být ke stažení zdarma (okamžitý náklad = 0). Ale platy expertů, údržba a provoz (dlouhodobé náklady) mohou firmu finančně zruinovat.

🔄 Přenositelnost (Vendor lock-in): Co když firma vyroste a budeme muset přejít na úplně jiný systém nebo jiný serverový hardware?

💡 Zajímavost: V IT existuje obávaný termín "Vendor lock-in" (uzamčení u dodavatele). Stává se to, když si firma špatně vybere databázi a napíše s ní aplikaci tak "napevno", že pozdější přechod na levnější/lepší řešení je nereálný. Známým příkladem byl Amazon – trvalo mu dlouhé roky a obrovské úsilí (tzv. kampaň Roll Your Own), než se dokázal odstřihnout od gigantických a drahých databází Oracle a přejít na svá vlastní (cloudová) řešení.

28 of 41

6. Licencování databází

⚖️ Komerční (Placené): Oracle, MS SQL. Jsou robustní, ale extrémně drahé.

🔓 Open-Source (Volné): PostgreSQL, MariaDB. Zdarma ke stažení, kód je veřejný.

🪤 Duální licence: Zdarma pro jednotlivce, pro firmy (nebo za expertní podporu) tvrdě placené (např. MySQL).

💻 Per-Core platby: Neplatíte za "jednu instalaci", ale astronomické částky za každé jádro procesoru v serveru.

☁️ Cloud (DBaaS): Moderní trend. Nekupujete licenci, databázi si jen "pronajímáte" a platíte přesně podle propáleného výkonu.

💡 Zajímavost: Licence Oracle pro jeden jediný průměrný server (16 jader) může firmu vyjít na více než 10 milionů Kč ročně. To je hlavní důvod obrovského útěku firem k open-source databázím.

29 of 41

6. Komerční vs. opensource modely

Komerční (Oracle, MS SQL Server)

📞 Garance a Podpora: Platíte si jistotu. Když se ve 3 ráno systém zhroutí, máte na drátě oficiální experty.

🚀 Krvavé inovace: Jako první na trh často přinášejí ty nejpokročilejší korporátní funkce.

📦 Černá skříňka: Uzavřený kód. Nevidíte dovnitř, musíte 100% důvěřovat výrobci.

​

Open-source (PostgreSQL, MariaDB)

🔓 Naprostá volnost: Kód je veřejný, chyby rychle opravuje celosvětová komunita. Můžete si ho upravit podle sebe.

💰 Žádné licence: Ušetříte miliony na poplatcích, platíte jen platy vlastním vývojářům a adminům.

⚠️ Chybí "přítel na telefonu": Nemáte garanci podpory. Když systém spadne, jste na to sami (nebo si musíte zaplatit drahou externí firmu).

💡 Zajímavost: Univerzitní projekt, do kterého nedává peníze žádná konkrétní korporace, přesto válcuje komerční giganty. Open-source databáze PostgreSQL je dnes i přes svůj akademický původ všeobecně považována za vůbec technologicky nejpokročilejší relační databázi na světě.

30 of 41

6. Nejlepší databázová platforma

Špatně položená otázka -> Vždy nás zajímá konkrétní nasazení

31 of 41

6. Trendy současného vývoje

☁️ Z vlastního železa do Cloudu: Konec vlastních serveroven. Databáze se pronajímají na pár kliknutí u Amazonu, Googlu či Microsoftu (DBaaS – Database as a Service).

📁 Vzestup NoSQL: Tabulky už na všechno nestačí. Pro obrovská nestrukturovaná data nebo sociální sítě se používají databáze dokumentové (MongoDB) či grafové (Neo4j).

🤖 Vektorové databáze (kvůli AI): Absolutní hit dneška. Ukládají texty jako číselné souřadnice (vektory). Díky tomu umělá inteligence (např. ChatGPT) dokáže chápat kontext a ne jen přesná slova.

⏸️ Serverless ("Bez serveru"): Databáze, která se automaticky "uspí", když na web nikdo nechodí. Firma pak neplatí vůbec nic a platí jen za konkrétní desetiny vteřiny při zátěži.

💡 Zajímavost: Když vám dnes Netflix doporučí film, nepoužije klasickou (tabulkovou) databázi. Na tu by byl výpočet "kdo má s kým podobný vkus" příliš pomalý. Místo toho používá grafové databáze, které umí najít vazby mezi stovkami milionů diváků a filmů doslova za zlomek vteřiny.

32 of 41

7. Architektury

📱 Jednovrstvá (Lokální): Aplikace i databáze běží pospolu na jednom stroji. Příkladem jsou mobilní aplikace, které si svá data drží uvnitř vašeho telefonu.

​

🖥️ Dvouvrstvá (Client-Server): Starší přístup. Uživatel (klient) se po síti připojuje přímo k databázovému serveru. Dnes se to kvůli bezpečnosti používá už jen u vnitrofiremních aplikací.

​

🌐 Třívrstvá (Webová): Dnešní absolutní standard. Uživatel klikne na webu -> Aplikace na serveru to zpracuje -> ta se teprve ptá Databáze. Uživatel k databázi napřímo vůbec nesmí.

​

🌍 Distribuovaná architektura: Databáze není jen na jednom počítači. Je "rozsekaná" na kousky (sharding) nebo zrcadlena napříč stovkami serverů po celém světě.

💡 Zajímavost: Proč se gigantické databáze (třeba u Googlu nebo Mety) "sekají" na kousky a distribuují po celém světě? Nejen kvůli tomu, abyste na fotku nečekali sekundu navíc, ale i kvůli právu. Distribuovaná architektura dnes zajišťuje, že data Evropanů leží fyzicky na serverech v Evropě a podléhají GDPR, zatímco zbytek světa leží jinde.

33 of 41

7. Paralelní přístup

🚦 Největší oříšek IT: Co se stane, když si dva zákazníci v e-shopu koupí poslední kus iPhonu v naprosto stejnou mikrosekundu? Databáze to musí spravedlivě vyřešit.

​

🔒 Zamykání (Locking): Jakmile první zákazník klikne na nákup, databáze konkrétní řádek s iPhonem "zamkne". Druhý zákazník je plynule odsunut do fronty a musí zlomek vteřiny počkat.

​

📦 Transakce (Všechno, nebo nic): Zápis do databáze nelze "seknout" napůl. Převod peněz (strhnutí z účtu A + připsání na účet B) se buď provede stoprocentně celý, nebo se stornuje jako by se nic nestalo.

​

👻 Ochrana před "Špinavým čtením": Zabraňuje tomu, aby systém vypsal jednomu uživateli data (např. zůstatek peněz), která zrovna někdo jiný upravuje a ještě je nepotvrdil.

💡 Zajímavost: Zamykání může způsobit legendární chybu zvanou Uváznutí (Deadlock). Představte si, že transakce A zamkne tabulku X a čeká na uvolnění tabulky Y. Transakce B ale mezitím zamkla tabulku Y a čeká na X. Obě transakce by na sebe čekaly až do konce vesmíru. Dnešní databáze to umí odhalit – obětují se a jednu z transakcí raději "zastřelí".

34 of 41

7. Transakce

📦 Logický balíček: Transakce není jen jeden SQL příkaz. Je to sada úkonů (např. strhni peníze, připiš peníze, ulož poplatek), se kterou se ale pracuje jako s jedním nedělitelným celkem.

​

Spolehlivá databáze musí splňovat vlastnosti ACID:

​

A (Atomicity - Nedělitelnost): Všechno, nebo nic. Buď se do puntíku provedou všechny kroky balíčku, nebo se databáze vrátí do původního stavu (Rollback). Nic napůl.

C (Consistency - Konzistence): Po dokončení transakce musí zůstat systém v "legálním" stavu (nesmí chybět žádné povinné vztahy a cizí klíče).

I (Isolation - Izolovanost): Přestože běží tisíce transakcí naráz, nesmí si "koukat pod ruce". Každá transakce běží ve vlastní bublině.

D (Durability - Trvalost): Jakmile systém nahlásí "Potvrzeno", je to vytesáno do kamene. I kdyby vzápětí vypadl proud v celé budově, po zapnutí tam ta data budou.

35 of 41

7. ☺ vs. ☹

Jak databáze řeší, když si dva lidé chtějí ve stejnou chvíli upravit stejný řádek?

Pesimistický přístup ("Pro jistotu to rovnou zamknu")

​

🔒 Databáze předpokládá, že ke konfliktu určitě dojde.

Jakmile si pan A otevře záznam pro úpravu, řádek se uzamkne. Pan B má smůlu a musí čekat (nebo smí jen číst), dokud pan A neuloží.

➕ Výhoda: 100% jistota, nevznikají kolize.

➖ Nevýhoda: Zdržuje to provoz, uživatelé na sebe stojí virtuální fronty.

Optimistický přístup ("Ono to nějak dopadne")

​

🕊️ Databáze věří, že uživatelé si do práce "nelezou". Nikomu nic nezamyká.

Pan A i pan B si otevřou záznam naráz. Databáze zasáhne až při uložení – zkontroluje "číslo verze". Kdo uloží první (A), vyhrál.

➕ Výhoda: Extrémní rychlost, žádné zámky, systém běží plynule.

➖ Nevýhoda: Pan B při uložení dostane chybu: "Data mezitím změnil někdo jiný", a musí svou práci dělat znovu.

💡 Zajímavost: Kde se co používá? Pesimistické zamykání potkáte v bance při převodu peněz nebo v rezervačním systému letenek, kde nesmí vzniknout ani milisekunda pochybností. Optimistické naopak vládne na webu – třeba při úpravě textu na Wikipedii nebo v redakčních systémech.

36 of 41

7. Výmaz vs. archivace

Zatímco záloha vás zachrání před průšvihem, archivace vás chrání před pomalou databází a kontrolou z finančáku.

​

Záloha (Backup) = Záchranný kruh

​

🚨 Účel: Bleskové obnovení provozu po havárii (hacker, omylem smazaná tabulka, shořelý disk).

🔄 S jakými daty pracuje: Kopíruje živá a aktuální data, se kterými lidé právě teď pracují.

⏱️ Životnost: Krátkodobá. Zálohy rotují – staré se neustále mažou a přepisují novějšími (např. držíme stav posledních 7 dnů).

​

​

Archivace = Historická knihovna

​

🏛️ Účel: Zákonné požadavky (např. účetnictví), prokazatelnost a pročištění systému.

🧹 S jakými daty pracuje: Bere stará a "mrtvá" data (např. uzavřený ročník předmětu) a odklidí je pryč na velmi levný a pomalý disk. V živé databázi se následně smažou, díky čemuž se systém enormně zrychlí.

⏱️ Životnost: Dlouhodobá (roky až desítky let). Soubory se jen čtou, nikdy se nepřepisují.

💡 Zajímavost: Když zaútočí zákeřný virus (tzv. ransomware), zašifruje systém tak potichu, že noční automatická Záloha vám pak může bohužel "pečlivě" zazálohovat už zcela zničená data. Proto velké firmy uplatňují svaté pravidlo zvané 3-2-1: Tři kopie dat, uložené na dvou různých typech médií, z čehož minimálně jedna kopie musí být fyzicky odpojená od internetu.

37 of 41

8. Filozofie databází – základní pojmy

  • Data vs. informace
  • Metadata
  • Řádek vs. sloupec
  • Dotazovací jazyk
  • Výmaz vs. odstranění
  • Oprávnění
  • Role
  • 24x7
  • Uložená procedura x trigger

​

​

​

38 of 41

JAK NA TO?

  • V prohlížeči na vnitřní síti/na eduVPN síti zadej http://192.168.33.234:8080/

login je student@ujep.cz

heslo je student

39 of 41

ZALOŽENÍ PROSTORU PRO STUDENTA

40 of 41

Na doma

Založené vlastní databázové schéma ve sdílené PostgreSQL databázi!

41 of 41

Děkuji za pozornost a těším se příště!��Prostor pro zpětnou vazbu

mail@mjakl.cz

Tel. 608 544 839

Web: mjakl.cz