1 of 38

Databáze v geoinformatice I.

Mgr. Michal Jakl

ZS 2026

2 of 38

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 38

1. Představení předmětu

  • Databáze v geoinformatice
  • Prezenční/distanční forma
  • ZS 2025, č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 38

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 38

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

  • Pro získání zápočtu:
      • Účast na výuce (max 1 neomluvená absence)
      • Ú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

6 of 38

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

7 of 38

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í

8 of 38

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á.

9 of 38

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.

10 of 38

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

11 of 38

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

pozitivniusti.cz

mjakl.cz

povestialegendy.cz

12 of 38

3. Představení studentů

13 of 38

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?“

14 of 38

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.

15 of 38

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

16 of 38

4. Databáze vs. soubor

Data by samozřejmě bylo možné uložit i přímo do souborů na serveru, databáze však:

  • fungují mnohem rychleji
  • bývají optimalizovány pro přístup více uživatelů (návštěvníků stránek)
  • obsahují mechanismy, které práci s daty usnadňují

17 of 38

4. Databáze vs. tabulkový procesor

Databáze i tabulkové procesory (například Microsoft Excel) představují pohodlný způsob ukládání informací. Hlavní rozdíly mezi nimi jsou:

    • Jakým způsobem jsou data uložena a jak probíhá manipulace s nimi
    • Kdo má k datům přístup
    • Jaké množství dat lze ukládat

Tabulkové procesory byly původně určeny pro jednoho uživatele a jejich charakteristika tomu odpovídá. Jsou vynikající pro samostatnou práci nebo malý počet uživatelů, kteří nepotřebují provádět množství komplikovaných manipulací s daty. Na druhou stranu databáze jsou určeny k tomu, aby uchovávaly mnohem větší soubor organizovaných informací, někdy v masivním objemu. Databáze umožňují více uživatelům současně rychlý a bezpečný přístup k datům a zadávání dotazů s využitím velmi komplexní logiky a jazyka.

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

18 of 38

4. Databázová integrita

  • Databázová integrita je takový stav, při němž záznamy v celé databázi vyhovují soustavě určitých definovaných pravidel. Tato pravidla obvykle odpovídají vybraným pravidlům z té části světa, pro kterou databáze slouží.
    • Může se jednat například o pravidla stanovující rozsah uložených hodnot, jejich typ nebo vazby mezi nimi.
    • Integritní omezení se mohou týkat jednotlivých hodnot vkládaných do polí databáze (například známka z předmětu musí být v rozsahu 1 až 5), či může jít o podmínku na kombinaci hodnot v některých polích jednoho záznamu (například datum narození nesmí být pozdější než datum úmrtí).
    • Integritní omezení se může týkat i celé množiny záznamů daného typu – může jít o požadavek na unikátnost hodnot daného pole či kombinace polí v rámci celé množiny záznamů daného typu, které se v databázi vyskytují (například číslo průkazu v záznamech o osobách).

  • Velmi často používaným integritním omezením v relačních databázích je tzv. referenční integrita.
    • Jedná se o požadavek, aby pro pole záznamu, jež má obsahovat odkaz na jiný záznam někde v databázi, takový odkazovaný záznam skutečně existoval, tedy aby takový odkaz nevedl „do prázdna“ a nejednalo se o tzv. databázového sirotka.

19 of 38

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
  • Uživatelské znalosti / požadavky

20 of 38

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!"

21 of 38

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."

22 of 38

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

  • Počítače již dávno pouze nepočítají
  • 95 procent aplikací je databázových
  • Objem zpracovávaných dat se každý rok nejméně zdvojnásobuje
  • Nejcennější jsou data
  • Databázový trh je velmi lukrativní
  • Přímá hodnota trhu přes 13 miliard USD
  • Hodnota trhu několik desítek miliard USD
  • Stabilní zájem a rostoucí poptávka

23 of 38

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

  • Databáze obvykle vyžaduje komplexní databázový softwarový program označovaný jako systém pro správu databáze (DBMS)
  • DBMS slouží jako rozhraní mezi databází a jejími koncovými uživateli nebo programy.
  • Umožňuje uživatelům získávat, aktualizovat a spravovat databázi a určovat, jakým způsobem jsou v ní uložené informace organizovány a optimalizovány.
  • Systém DBMS také usnadňuje přehled o databázích a jejich řízení, což umožňuje řadu správcovských činností, například monitorování výkonu, ladění a operace zálohování a obnovení.
  • Jako příklad oblíbeného databázového softwaru neboli DBMS lze uvést MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, Oracle Database a dBASE.

24 of 38

6. Databázový systém

Databázový systém je program, který se specializuje na efektivní ukládání, modifikaci a výběru velkého množství dat. Je prostředníkem mezi aplikační vrstvou a uloženými daty. První databázové systémy se objevily na začátku 60. let minulého století. Tento systém je tvořeny ze dvou důležitých komponent, a to:

• Databáze

• Systém řízení báze dat (DBMS podle anglického database management system)

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

25 of 38

6. Volba databáze

  • Výběr musí vycházet z požadavků
    • Přesné stanovení požadavků
    • Otázka přenositelnosti na jiný OS/HW
    • Otázka přenositelnosti na jinou db
    • Databáze je prostředkem, nikoli cílem
    • Vývojová vs. provozní
  • Vnitřní požadavky
  • Vnější požadavky
  • Okamžité požadavky (např. pořizovací cena)
  • Dlouhodobé požadavky (např. náklady na provoz a údržbu)
  • Nezbytné jsou kompromisy

26 of 38

6. Licencování databází

  • Licence na procesor
  • Licence na konkurenčního uživatele
  • Licence na pojmenovaného uživatele
  • Licence na daný čas
  • Licence podle účelu (vývojové)
  • Licence kombinované
  • Free opensource databáze

27 of 38

6. Komerční vs. opensource modely

  • Přes 170 platforem
  • Vývoj databázových platforem je neuvěřitelně nákladnou záležitostí
  • Nová databázová firma konkurující největším hráčům se neobjeví
  • Největší hráči:
    • IBM
    • Oracle
    • Sybase
    • Microsoft
    • Intersystems
    • Progress Software
    • PostGIS
  • Open source databázový systém je takový systém, jehož zdrojový kód je open source.
  • Na internetu se nejvíce používají relační databáze z rodiny SQL, která vznikla už v roce 1974. K nejznámějším databazím této rodiny patří MySQL, PostgreSQL či Oracle Database.

28 of 38

6. Nejlepší databázová platforma

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

29 of 38

6. Trendy současného vývoje

  • Reakce na významné zvýšení objemu dat
    • Explozivní nárůst dat přicházejících ze senzorů, připojených počítačů a desítek dalších zdrojů udržuje správce databází v pohotovosti, aby dokázali efektivně spravovat a organizovat data svých podniků.
  • Zajištění bezpečnosti dat
    • Incidenty spojené s narušením dat bývají dnes všudypřítomné a hackeři jsou stále vynalézavější. Dnes je důležitější než kdykoliv jindy, aby byla zajištěna bezpečnost dat, ale musí být také snadno přístupná uživatelům.
  • Udržet krok s poptávkou
    • V dnešním rychle se rozvíjejícím podnikatelském prostředí potřebují podniky přístup ke svým datům v reálném čase, což umožňuje včasné rozhodování a využití nových příležitostí.
  • Správa a údržba databáze a infrastruktury
    • Správci databáze musí průběžně sledovat problémy databáze a provádět preventivní údržbu a také nasazovat softwarové aktualizace a opravy. Vzhledem k tomu, že databáze jsou stále složitější a narůstá objem dat, stojí podniky před problémem nárůstu nákladů a získávání odborníků, kteří by dokázali databáze monitorovat a vyladit k lepšímu výkonu.
  • Odstranění limitů škálovatelnosti
    • Pokud má podnik přežít, musí růst, stejně jako s ním musí růst správa podnikových dat. Pro správce databází je však velmi obtížné předvídat, jakou kapacitu bude společnost potřebovat, zejména u databází on-premises.

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

30 of 38

7. Architektury

  • Přístup k datům
    • Souborové architektury
    • Dvouvrstvé architektury
    • Třívrstvé architektury
    • Vícevrstvé architektury
    • Kombinace
  • Fyzické uložení dat
    • Tabulkové soubory 1:1
    • Tabulkové soubory 1:N
    • Datové soubory
    • Diskové oddíly
    • Kombinované
  • Přístupy
    • Pesimistické strategie
    • Optimistické strategie
    • Read/write strategie
    • Paralelní vs. konkurenční
    • Transakční zpracování
  • Výkon
  • Správa

31 of 38

7. Paralelní přístup

Pravidla paralelního přístupu:

  1. Současné vykonávání transakcí nesmí zapříčinit selhání programu.
  2. Další transakce nezačne dříve, než předchozí skončila.

  • Metoda řízení paralelismu při současném vykonávání transakcí nesmí vést k nižší průchodnosti systému oproti sériovému vykonávání transakcí.

Zdroj: https://cw.fel.cvut.cz/old/_media/courses/x33mis/transakce.pdf

32 of 38

7. Transakce

= Skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého

  • Atomičnost
    • Databázová transakce je jako operace dále nedělitelná (atomární). Provede se buď jako celek, nebo se neprovede vůbec (a daný databázový systém to dá uživateli na vědomí, např. chybovým hlášením).
  • Konzistence
    • Transakce převádí databázi z jednoho konzistentního stavu na druhý. To znamená, že její účel je zajistit určité dynamické integritní omezení. Například nelze ukončit převod peněz z účtu na účet bez toho, aby jak operace odečtení ze zdrojového účtu tak operace připočtení na cílový účet byly obě provedeny.
  • Izolovanost
    • Operace uvnitř transakce jsou skryty před vnějšími operacemi. Vrácením transakce není zasažena jiná transakce, a když ano, i tato musí být vrácena. V důsledku tohoto chování může dojít k tzv. řetězovému vrácení.
  • Trvalost
    • Změny, které se provedou jako výsledek úspěšných transakcí, jsou skutečně uloženy v databázi, a již nemohou být ztraceny.
  • Přerušitelnost/nepřerušitelnost

33 of 38

7. vs.

  • U pesimistického zpracování se v jeho průběhu změny zaznamenávají do dočasných objektů. Teprve po přesunu či změně dat se odznačí příznak dočasnosti, a data se tak stanou platnými.
    • Tento způsob lze přirovnat k několika netriviálním změnám v souboru, které se do něj zanesou tak, že vlastní úprava souboru proběhne v souboru pod jiným, dočasným názvem, který se na samém začátku operace vytvoří duplikací (jakoby se odzálohuje), načež se tento soubor s dočasným jménem přejmenuje na trvalý (původní) název (tj. operace, jež v sobě sdružuje zánik původního obsahu a zánik souboru s dočasným názvem, a po níž je zůstane jen nový obsah pod původním názvem souboru).
  • U optimistického zpracování se (optimisticky) předpokládá, že při transakci nenastane chyba, a provedené změny nebude třeba vrátit zpět (přestože tato možnost se připouští). Měněné záznamy v tabulkách jsou při optimistickém zpracování transakce zapisovány „natvrdo“, současně s tím se však, coby seznam SQL příkazů, vytváří tzv. rollback log, na základě něhož je transakcí zastřešené změny možné vrátit zpět.
    • V případě, že při transakci dojde k nějaké nezotavitelné chybě, tento log se provede a transakce (aby dodržela pravidlo atomicity) skončí ve výchozím stavu, načež se vyvolá chyba. V opačném případě, tedy když transakce proběhne bez výskytu nezotavitelné chyby, se na jejím konci rollback log stává bezpředmětným (typicky se maže).

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

34 of 38

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

  • Data vs. informace
  • Metadata
  • Databáze vs. databázový systém
  • Tabulka vs. sloupec
  • Back-end vs. front-end
  • Aplikační server vs. databázový server
  • Dotazovací jazyk
  • Transakce
  • Záloha vs. archivace
  • Výmaz vs. odstranění
  • Oprávnění
  • Role
  • Paralelní přístup vs. Konkurenční přístup
  • 24x7
  • Uložená procedura x trigger

35 of 38

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

36 of 38

ZALOŽENÍ PROSTORU PRO STUDENTA

37 of 38

Na doma

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

38 of 38

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