TEORIE VÝVOJE APLIKACÍ
Projektování vývoje, modely organizace vývoje aplikací.
Fázová organizace projektu, průběhové modely.
Proces návrhu, normalizace a implementace databáze.
Stěžejní zásady pro efektivní realizaci projektů.
Agilní metodiky vývoje
SQL SERVER A KLIENT
Instalace SQL serveru. Odlišnosti v závislosti na použitém operačním systému (Windows, Linux).
Nastavení SQL serveru a automatizace jeho spouštění a zastavování.
Klienti pro SQL server - charakteristika, výběr a instalace. Terminálově orientovaný klient a klient využívající GUI pro přístup k SQL serveru.
Správa uživatelů. Nastavování přístupových práv k jednotlivým databázím, tabulkám a sloupcům. Otázky zabezpečení dat.
Zálohování databází a její automatizace (dump, cron).
PRÁCE S DATY
DDL (Data Definition Language). Číselné a řetězcové datové typy, definice databáze a tabulky, identifikační klíče řádků tabulky, vztahy mezi tabulkami, kardinalita a parcialita vztahů, cizí klíče, integrita databáze, indexování dat.
DML (Data Manipulation Language). Obecné principy čtení a editace dat v SQL, otázky replikace databází a řízení transakcí.
TVORBA APLIKACÍ
Základní charakteristika prostředí LAMP (Linux, Apache, PHP), výhody a nevýhody, dostupnost v podmínkách českých škol.
Editory a integrovaná vývojová prostředí (IDE). Textový editor ViM.
Možnosti využití databází ve webových aplikacích. Generování dynamických stránek pomocí skriptovacích jazyků.
Provázání webové aplikace s databázovým serverem
Zásady pro vývoj rozsáhlejších WWW aplikací. Konfigurovatelnost aplikace. Oddělení funkčních částí kódu a šablon vzhledu.
Modulové řešení realizace a administrace aplikací
Objektově orientovaná řešení vývoje databázových aplikací
Nástroje a zásady pro týmový vývoj aplikací (Subversion, CVS).
ZABEZPEČENÍ DATABÁZOVÝCH APLIKACÍ
Integrita a zabezpečení dat
Škálovatelnost databázové aplikace
Ošetření proměnných předávaných ke zpracování SŘBD
Obrana proti nejčastějším formám útoku, SQL injection, Cross-site scripting (XSS) ...
Cílem předmětu je v návaznosti na předcházející předměty studia z oblasti algoritmizace, programování a návrhu databázových aplikací osvojení si příslušných dovedností na úrovni potřebné pro návrh databází, tvorbu databázových aplikací s dynamickým WWW rozhraním a jejich správu. Při práci jsou využívány techniky a metody týmového řešení projektů a vývoje aplikací.
Předmět je vyučován ve dvou povinně volitelných alternativách, které se od sebe liší orientací na příslušnou technologickou platformu. Studenti si volí příslušnou variantu předmětu dle individuálního profesního zaměření.
Obsah předmětu ve variantě A pokrývá otázky administrace webových a databázových serverů včetně nastavení zabezpečení a jejich vzájemného propojení, zálohování databází a její automatizace v prostředí LAMP (Linux/Apache/MySQL/PHP). Při tvůrčí práci se studenti seznámí s vhodnými editory, integrovanými vývojovými prostředími (IDE), generováním dynamických stránek pomocí PHP, propojení PHP s MySQL, zásadami pro vývoj rozsáhlejších WWW aplikací s použitím systémů pro správu verzí projektu (CVS, Subversion, Git).
Součástí předmětu je návrh a implementace vlastní databázové aplikace na bázi PHP/SQL.