Tato stránka vychází z podkladů pro tištěné studijní plány (tzv. Karolinku).

Databáze a web

Garantující pracoviště: Katedra softwarového inženýrství Garant specializace: Prof. RNDr. Tomáš Skopal, Ph.D.

Specializace Databáze a web nabízí škálu předmětů zaměřených na databázové a webové metody a technologie, analýzu dat, databázovou administraci, programování a vývoj tradičních, webových, databázových a datově intenzivních aplikací. Důraz je kladen na relační i nerelační databáze, analýzu sociálních sítí, webové a multimediální vyhledávače, metody extrakce vlastností z dat. Vedle tohoto profilujícího zaměření nabízí specializace také tradiční informatický základ, který absolventa připraví na navazující magisterské studium informatiky.

Společné povinné předměty programu Informatika

Povinné předměty společné pro všechny specializace jsou uvedeny v předchozí části.

Povinné předměty specializace

kódPředmětKredityZSLS
NSWX142Programování webových aplikací 52/2 Z+Zk
NDBI026Databázové aplikace 41/2 KZ
NDBX007Databázové přístupové metody 42/1 Z+Zk
NDBI040Moderní databázové koncepty 52/2 Z+Zk
NSWX153Pokročilé programování webových aplikací 52/2 Z+Zk
NPRX036Datové formáty 52/2 Z+Zk
NDBX046Datový management 52/2 Z+Zk
NDBI038Vyhledávání na webu 42/1 Z+Zk

Povinně volitelné předměty – skupina 1

Podmínkou pro přihlášení ke státní závěrečné zkoušce je získání 15 kreditů za předměty z této skupiny.

kódPředmětKredityZSLS
NPRX041Programování v C++ 52/2 Z+Zk
NPRX013Programování v jazyce Java 52/2 Z+Zk
NPRX035Programování v jazyce C# 52/2 Z+Zk
NPRX051Pokročilé programování v C++ 52/2 Z+Zk
NPRX021Pokročilé programování v jazyce Java 52/2 Z+Zk
NPRX038Pokročilé programování v jazyce C# 52/2 Z+Zk
NPRX005Neprocedurální programování 52/2 Z+Zk

Povinně volitelné předměty – skupina 2

Podmínkou pro přihlášení ke státní závěrečné zkoušce je získání 6 kreditů za předměty z této skupiny.

kódPředmětKredityZSLS
NSWX004Operační systémy 42/1 KZ
NPFL054Úvod do strojového učení 52/2 Z+Zk
NDBI045Vyhledávání a explorace ve videu 52/2 Z+Zk
NDBI037Informační modely s uspořádáním 42/1 Z+Zk
NDBI013Administrace Oracle 20/2 Z

Povinně volitelné předměty – skupina 3

Podmínkou pro přihlášení ke státní závěrečné zkoušce je získání 3 kredity za předměty z této skupiny.

kódPředmětKredityZSLS
NMAX055Matematická analýza 2 52/2 Z+Zk
NPRX056Programování mobilních zařízení 30/2 Z
NAIL120Úvod do umělé inteligence 52/2 Z+Zk
NSWI130Architektury softwarových systémů 52/2 Z+Zk
NSWI090Počítačové sítě 32/0 Zk
NPGR036Počítačové vidění 52/2 Z+Zk
NPGR002Digitální zpracování obrazu 43/0 Zk
NAIL121Seminář dobývání znalostí 41/2 KZ
NPGR035Strojové učení v počítačovém vidění 52/2 Z+Zk

Doporučený průběh studia

Doporučený průběh studia zahrnuje všechny povinné předměty a některé další povinně volitelné nebo volitelné předměty. Posluchač si ho musí sám doplnit dalšími povinně volitelnými a volitelnými předměty podle vlastního výběru. Povinné předměty jsou v tabulkách doporučeného průběhu studia vyznačeny tučně, povinně volitelné běžným písmem a volitelné kurzívou.

1. rok studia

Společné pro všechny specializace, viz předchozí část.

2. rok studia

kódPředmětKredityZSLS
 Programování v jazyce Java/C++/C# 52/2 Z+Zk
NDBX025Databázové systémy 52/2 Z+Zk
NSWX142Programování webových aplikací 52/2 Z+Zk
NTIX061Algoritmy a datové struktury 2 52/2 Z+Zk
NAIX062Výroková a predikátová logika 52/2 Z+Zk
NDMX011Kombinatorika a grafy 1152/2 Z+Zk
NJAZ074Anglický jazyk pro středně pokročilé III210/2 Z
NTVY016Tělesná výchova III410/2 Z
NSWX153Pokročilé programování webových aplikací 52/2 Z+Zk
NTIX071Automaty a gramatiky 52/2 Z+Zk
NMAX059Pravděpodobnost a statistika 1 52/2 Z+Zk
NPRG045Ročníkový projekt 40/1 Z
NJAZ090Anglický jazyk pro středně pokročilé IV210/2 Z
NJAZ091Anglický jazyk310/0 Zk
NTVY017Tělesná výchova IV410/2 Z
 Povinně volitelné předměty    
 Volitelné předměty    

3. rok studia

kódPředmětKredityZSLS
NDBI026Databázové aplikace 41/2 KZ
NDBX007Databázové přístupové metody 42/1 Z+Zk
NDBI040Moderní databázové koncepty 52/2 Z+Zk
NPRX036Datové formáty 52/2 Z+Zk
NDBX046Datový management 52/2 Z+Zk
NDBI038Vyhledávání na webu 42/1 Z+Zk
NSZZ031Vypracování a konzultace bakalářské práce 60/4 Z
 Povinně volitelné předměty    
 Volitelné předměty    

1 Předmět Kombinatorika a grafy 1 jsou vyučován v akademickém roce 2019/2020 v letním semestru pro studenty, kteří nastoupili v minulých letech. Pro studenty nastupující v roce 2019/20 je určen běh v zimním semestru 2020/21.

2 Výuka anglického jazyka NJAZ070, NJAZ072, NJAZ074, NJAZ090 v rozsahu 0/2 v každém semestru je určena pro středně pokročilé a pokročilé. Pro začátečníky a mírně pokročilé jsou určeny předměty NJAZ071, NJAZ073, NJAZ075, NJAZ089 s rozsahem výuky 0/4 v každém semestru.

3 Zkoušku z anglického jazyka NJAZ091 je možné absolvovat v zimním nebo v letním semestru.

4 Místo jednoho z předmětů NTVY014, NTVY015, NTVY016 a NTVY017 je možné si zapsat letní výcvikový kurz NTVY018 nebo zimní výcvikový kurz NTVY019. Tyto kurzy může student absolvovat kdykoli v průběhu bakalářského studia.

Požadavky znalostí ke státní závěrečné zkoušce

1. Databáze
Architektury databázových systémů. Konceptuální, logická a fyzická úroveň pohledů na data. Konceptuální modelování - ER, UML (datový diagram). Logický model dat - především relační model. Fyzický model dat - soubory (halda, indexsekvenční soubor, tříděný soubor). Algoritmy návrhu schémat relací, normální formy, referenční integrita. Důvody pro normalizaci relací. Třetí NF a BCNF. Dekompozice a syntéza relace. Primární a cizí klíče. Transakční zpracování, vlastnosti transakcí, uzamykací protokoly, zablokování. ACID vlastnosti transakcí. Rozvrhy transakcí. Sériový a serializovatelný rozvrh. Konfliktová ekvivalence rozvrhů. Konfliktová serializovatelnost, detekce precedenčním grafem. Dvoufázový zamykací protokol. Striktní dvoufázový zamykací protokol. Řešení problému uváznutí v databázi. Izolace transakcí v SQL Konceptuální modelování. ER-diagramy, metody návrhů IS. Entity, vztahy, atributy a jejich reprezentace v konceptuálním modelu. Rámcově převod konceptuálního modelu na (relační) logický datový model. Kardinalita a arita vztahů a jejich reprezentace v relačním modelu Přehled SQL. Základní dotazy (SELECT - FROM - WHERE). Třídění (ORDER BY). Seskupování dat a agregace (GROUP BY - HAVING, MIN, MAX, AVG, COUNT). Spojování tabulek (INNER JOIN, OUTER JOIN). Vnořené dotazy, operátory IN, EXISTS, ALL, ANY. Testy na NULL hodnotu (IS NULL, IS NOT NULL) Uložené procedury, triggery, funkce. Moderní databázové koncepty. MapReduce - princip, vlastnosti, kritika, alternativní přístupy. NoSQL databáze (klíč/hodnota, sloupcové, dokumentové). Grafová data a grafové databáze. Data s více modely. Multi-model databáze. Polystores. Jazyk SQL v prostředí Big Data. NewSQL databáze.

Pokryto přednáškami

NDBI025 Databázové systémy
NDBI026 Databázové aplikace
NDBI040 Moderní databázové koncepty

2. Datový management
Datové formáty. Základní typy strukturovaných dat, jejich reprezentanti, příklady užití. Formáty pro tabulková data, schémata, jazyky pro transformaci dat. Formáty pro stromová, schémata, jazyky pro transformaci dat. Formáty pro grafová data, schémata, jazyky pro transformaci dat. Formáty pro geodata. Základy grafických formátů. Základy multimediálních formátů. Sémantický popis dat, slovníky Procesy zpracování dat. Předzpracování dat. Katalogizace dat, metadata. Kódování a komprese dat. Základy šifrování dat. Základy indexování. Typy organizace souborů, přímé/nepřímé indexování, primární/sekundární index. Hashování na vnější paměti. Cormack, Larson & Kalja, Faginovo rozšiřitelné hashování, Lineární hashování. Hierarchické indexování. B-Tree, B+-Tree, B*-Tree. Indexování v prostorových databázích. Z-Curve, Hilbert Curve, Quad-Tree, k-d-Tree, R-Tree, R+-Tree, R*-Tree, prostorové spojení, prostorové dotazování.

Pokryto přednáškami

NPRX036 Datové formáty
NDBX046 Datový management
NDBX007 Databázové přístupové metody

3. Web
World Wide Web. Základní principy www, chápání webu jako distribované databáze a jako aplikační platformy. Význam HTTP v kontextu webu. Struktura URL a význam jednotlivých částí. Tvorba statických webových stránek. Principy a syntax značkovacích jazyků (HTML, XHTML, HTML5) a jejich interpretace prohlížečem (vizualizace, DOM). Ovlivňování vzhledu webové stránky pomocí CSS (syntax, princip fungování, jaké vzhledové vlastnosti je možné měnit). Základy interakce s uživatelem (odkazy, formuláře) Architektury a základní principy webových aplikací. CGI a CGI-like aplikace (princip fungování). AJAX, Single-page aplikace, souvislost s REST API, klasické přístupy k návrhu SPA a udržování stavu aplikace. Návaznost na protokol HTTP, udržování uživatelské relace, cookies. Nejpoužívanější návrhové vzory a techniky (Front Controller, MVC/MVP, MVVC, ORM, šablony) Programování na straně klienta (JavaScript). Základní syntaxe JavaScriptu (ECMAScriptu), principy prototypového OOP, funkcionální konstrukce (scope chaining, closure). Práce s dokumentem skrz DOM (přehled principů, základní znalost API). Zpracování událostí v DOM, event driven model, asynchronní programování v JavaScriptu (callbacks, promises). Povědomí o nejdůležitějších standardních API v prohlížeči (location, fetch, local storage, history) API webových aplikací. Způsob návrhu REST API, OpenAPI. Webové služby (SOAP, WSDLs). WebSocket, WebRTC. Základy bezpečnosti webových aplikací. Autentizace, autentizační tokeny (JWT), 3rd-party autentizace (OAuth2). Autorizace, příklady bezpečnostních modelů (ACL). Šifrování (HTTPS, HSTS), hašovací funkce a jejich použití v rámci web aplikací Vyhledávání na webu. Booleovské a vektorové modely, word2vec. Vyhledávání v hypertextu, ranking, PageRank, optimalizace webových stránek pro vyhledávače. Podobnostní vyhledávání v multimediálních databázích. Metrické indexování podobnosti (filtrování pomocí pivotů, maticové, stromové, hašované a hybridní indexy)

Pokryto přednáškami

NSWI142 Programování webových aplikací
NSWX153 Pokročilé programování webových aplikací
NDBI038 Vyhledávání na webu