Vývoj a administrace databázových aplikací - OKBI3I046A
Anglický název: Development and administration of database applications
Zajišťuje: Katedra informačních technologií a technické výchovy (41-KITTV)
Fakulta: Pedagogická fakulta
Platnost: od 2022
Semestr: letní
E-Kredity: 5
Způsob provedení zkoušky: letní s.:
Rozsah, examinace: letní s.:0/0, KZ [HS]
Rozsah za akademický rok: 14 [hodiny]
Počet míst: neurčen / neurčen (neurčen)
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: kombinovaný
Poznámka: předmět je možno zapsat mimo plán
povolen pro zápis po webu
při zápisu přednost, je-li ve stud. plánu
Garant: PhDr. Tomáš Jeřábek, Ph.D.
Vyučující: PhDr. Josef Procházka, Ph.D.
Prerekvizity : OKBI3I031A
Výsledky anket   Termíny zkoušek   Nástěnka   
Anotace -
Cílem předmětu je v návaznosti na předcházející předměty studia z oblasti programování a návrhu databází osvojení si příslušných dovedností na úrovni potřebné pro tvorbu databázových aplikací s dynamickým WWW rozhraním a jejich správu. Obsah předmětu 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í webového serveru. Při tvůrčí práci se studenti seznámí s vhodnými architekturami, návrhovými vzory a frameworky pro snadnou obsluhu databázového rozhraní. Součástí předmětu je návrh a implementace vlastní databázové aplikace.
Poslední úprava: Jeřábek Tomáš, PhDr., Ph.D. (09.09.2019)
Deskriptory
Příprava na výuku
Samostudium literatury (za semestr) 20 hodin
Práce se studijními materiály (za semestr) 10 hodin
Plnění průběžných úkolů (za semestr) 12 hodin
 
Plnění předmětu  
Seminární práce 0 hodin
Příprava na zápočet 15 hodin
Příprava na zkoušku a zkouška 0 hodin
Poslední úprava: Battistová Eva, PaedDr. (25.01.2023)
Podmínky zakončení předmětu
  • Aktivní práce ve výuce, jejímž výsledkem je portfolio zdrojových kódů funkčních aplikací a konceptuálních návrhů databází.
  • Zpracování zápočtové práce ve formě funkční veřejně publikovatelné webové aplikace s administračním rozhraním. Není-li specifikováno v zadání jinak, požaduje se práce původní, vytvořená samostatně na základě uvedených informačních zdrojů a volně šiřitelných komponent.
  • Prokázání praktických dovedností a teoretických znalostí z oblasti návrhu a vývoje databázových aplikací formou řešení konkrétního zadání či testu.
Poslední úprava: Procházka Josef, PhDr., Ph.D. (26.01.2023)
Literatura
  • BÖHMER, Marian. Návrhové vzory v PHP: [23 vzorových postupů pro rychlejší vývoj]. Brno: Computer Press, 2012. ISBN 978-80-251-3338-5.
  • LACKO, L. Web a databáze. Praha : ComputerPress, 2001.
  • POKORNÝ, J., HALAŠKA, I. Databázové systémy. Praha : ČVUT, 1997.
  • RICHTA, K., SOKOL, J. Softwarové inženýrství I. Praha : ČVUT, 1996.
  • RJORDAN, R. Vytváříme relační databázové aplikace. Praha : ComputerPress, 2000.
  • ROMAN, S. Návrh a programování databází. Praha : ComputerPress, 2000.
  • POKORNÝ, J. Základy implementace souborů a databází. Praha : Karolinum, 1997.
  • STRAKA, M. Vývoj databázových aplikací. Praha : Grada Publishing, 2000.
  • SKLAR, David. PHP 7: praktický průvodce nejrozšířenějším skriptovacím jazykem pro web. Přeložil Jan POKORNÝ. Brno: Zoner Press, 2018. Encyklopedie Zoner Press. ISBN 978-80-7413-363-3.
  • MASLAKOWSKI, M. Naučte se MySQL za 21 dní. Praha : Computer Press, 2001.
Poslední úprava: Procházka Josef, PhDr., Ph.D. (26.01.2023)
Sylabus
  • 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) ...
Poslední úprava: Procházka Josef, PhDr., Ph.D. (26.01.2023)
Studijní opory

Studijní materiály pro distanční část na https://moodle.it.pedf.cuni.cz/course/view.php?id=2003

Klíč pro vstup do kurzu sdělí vyučující

Poslední úprava: Procházka Josef, PhDr., Ph.D. (26.01.2023)
Výsledky učení

Studenti:

  • Definují základní pojmy související s vývojem databázových aplikací ve webovém prostředí, jako jsou LAMP, SQL server, databázová integrita a bezpečnost dat.
  • Vysvětlí proces návrhu databázových aplikací a popíšou základní rozdíly mezi různými metodikami vývoje, včetně agilních metodik.
  • Aplikují SQL dotazy pro práci s databázemi a implementují základní prvky databázové aplikace pomocí skriptů na straně serveru v prostředí LAMP.
  • Analyzují strukturu a výkon databázových aplikací. Posoudí provázání databázového serveru s webovou aplikací a identifikují bezpečnostní rizika, jako jsou SQL injection nebo cross-site scripting (XSS).
  • Navrhnou a implementují dynamickou webovou aplikaci s databázovým rozhraním, která splňuje požadavky na škálovatelnost, bezpečnost a výkon. Aplikaci zabezpečí a spustí na webovém serveru.
  • Optimalizují a obhájí vlastní databázovou aplikaci,  zhodnotí vhodnost použitého návrhového vzoru a zvolené architektury pro danou aplikaci.
Poslední úprava: Procházka Josef, PhDr., Ph.D. (19.09.2024)