|
Uvod do databazovych systemov 2021/2022 Zima
Oznamy (tie najviac aktualne su na prvych miestach)
- Instrukcie k online skuskovym pisomkam:
- Pisomka nie je open-book. Zadania je mozne priebezne vyjasnit s
niektorym ucitelom tohto kurzu (T.Plachetka, J.Mazak) cez telefonicky hovor v
MS Teams.
- Riesenia uloh mozete zapisovat na papier a ku koncu pisomky odfotit (k comu
potrebujete scanner alebo digitalny fotoaparat). Mozete pripadne pouzit
elektronicky editor, vratane online nastroja na zapisovanie vyrazov relacnej
algebry. Zaciatok a koniec riesenia kazdej ulohy musi byt jasne oznaceny,
napr. BEGIN 2b) ... END 2b). Ak je k rieseniu niektorej ulohy vhodne uviest
aj postup riesenia, uvedte ho. Ak v rieseni pouzivate nestandardny postup
(napr. algoritmus, ktory nebol na prednaske), dajte si zalezat na
podrobnejsom popise ci zdovodneni.
- Odovzdat treba v danom casovom limite *jeden* PDF s maximalnou velkostou
20MB, cez email (casovy limit a adresa Vam budu vcas oznamene). Text v PDF
musi byt dobre citatelny pri zobrazeni na A4. Odporucam zahrnut do PDF
pouzite fonty (embed fonts). Na prvej strane PDF uvedte svoje priezvisko.
Riesenia uvedte v poradi, v ktorom boli ulohy zadane. Pracu s technickymi
nastrojmi je vhodne si vyskusat este pred pisomkou.
- Ustna cast skusky je spravidla do niekolkych dni po pisomke. Podmienkou
kvalifikacie na ustnu skusku je aspon 45% hodnotenie z pisomky. Studenti,
ktori kvalifikaciu splnia, su automaticky prihlaseni na nasledujuci termin
ustnej skusky (ak na ten termin nepridete, prosim odhlaste sa z neho alebo
mi dajte vediet cez email).
- Opisovanie alebo iny pokus o podvod znamena neuspesne absolvovanie kurzu
(Fx). Pripustna je len komunikacia s ucitelom (napr. za ucelom upresnenia
zadania ulohy pri pisomke).
- Pri hodnoteni sa berie do uvahy len posledny termin skusky.
- Hodnotenia pisomnych skuskovych testov budu priebezne zverejnovane na
tejto web stranke.
- Podmienky uspesneho absolvovania kurzu su v
slajdoch k prvej prednaske. Ocakavanu znamku po absolvovani pisomnej
casti skusky v skuskovom obdobi pocita tento
program.
- Skuska ma pisomnu a ustnu cast. Podmienkou prihlasenia sa na pisomku je
aspon 45% hodnotenie prace pocas semestra. Na pisomku sa treba najneskor
1 den vopred elektronicky prihlasit. Ak sa Vam
nedari prihlasit, poslite mi email.
Prihlasenie na test je zavazne (t.j. termin, na ktory ste prihlaseny, sa
pocita aj ked ten test nepisete). Ak viete ze na termin nepridete,
prosim odhlaste sa z neho (ak mate problem s odhlasenim, dajte mi vediet cez
email).
- Ak ste studentom tohto kurzu (t.j. mate ho zapisany v AIS), prihlaste
sa do
rozvrhovacieho systemu cviceni, zmente svoje heslo (zvolte si heslo,
ktore nezabudnete) a najdite svoj rozvrh pre teoreticke a prakticke
cvicenia. Loginname je zhodny s Vasim loginname v AIS; pociatocne heslo je
zhodne s loginname. Ak Vam zaradenie do skupiny vyhovuje, nerobte nic. Ked je
to nutne, tak skupinu zmente (pozor, pokus o zmenu moze viest k strate miesta v
povodnej skupine). System nedovoli okamzity presun do skupiny s naplnenou
kapacitou, ale zapamata si Vase preferencie a presun urobi automaticky, ked
sa v skupine uvolni miesto. Ak narazite na nejaky technicky problem, dajte
mi vediet cez email.
- Sucasne s tymto kurzom odporucam zapisat si tiez Databazove
praktikum (1-INF-270). Ak narazite na problem pri zapise Databazoveho
praktika, obratte sa na niektoreho z ucitelov.
- Vsetky cvicenia budu v akvariach.
Skusky
Priebezne hodnotenie
- 5.1. 9:00 pisomka (online), riesenie
- 10.1. 14:00 ustna skuska (online)
- 11.1. 9:00 pisomka (online), riesenie
- 11.1. 14:00 ustna skuska (online)
- 12.1. 9:00 ustna skuska (online)
- 14.1. 9:00 ustna skuska (online)
- 17.1. 9:00 ustna skuska (online)
- 20.1. 9:00 ustna skuska (online)
- 21.1. 9:00 pisomka (online), posledny termin, riesenie
- 21.1. 12:00 ustna skuska (online)
- 25.1. 9:00 ustna skuska (online)
- 27.1. 9:00 ustna skuska (online)
- 3.2. 9:00 ustna skuska (online)
- 7.2. 9:00 ustna skuska (online)
- 11.2. 9:00 ustna skuska (online), posledny termin
Prednaska
T. Plachetka: Streda 9:50, 2h, B
- Uvodna prednaska
- Organizacia kurzu
- Historia, motivacia
- Knihy, casopisy, konferencie
- Ucel databaz, charakteristika DB aplikacii
- Trojstupnova ANSI/SPARC architektura, datove modely
- Entitno-relacny, relacny a navigacny datovy model
- Relacny kalkul, Datalog
- Relacie a predikaty
- Dotazy
- Relacny kalkul
- Datalog
SQL
- DDL (Data Definition Language) a DML (Data Manipulation Language)
- DML: Syntax a semantika SELECT
- SELECT: selekcia, projekcia, premenovanie, ORDER BY,
UNION/INTERSECT/EXCEPT, INNER JOIN, OUTER JOIN, NULL hodnoty a 3-hodnotova
logika, poddotazy, GROUP BY/HAVING, duplikaty v tabulkach
- Preklad Datalog>SQL
- DML: INSERT, UPDATE, DELETE
- DDL: typy/DOMAIN, vytvorenie/odstranenie/modifikacia tabulky, default
hodnoty, indexy, VIEW, aktualizacia cez VIEW
Relacna algebra
- Ucel relacnej algebry
- Operatory relacnej algebry
- Priklad optimalizacie na urovni relacnej algebry
- Multimnoziny (bags) a operatory nad multimnozinami
- Grupovanie a agregacia
- Semantika SELECT... FROM... WHERE... GROUP BY... HAVING
Agregacia a rekurzia v dotazovacich jazykoch
- Grupovanie a agregacia v SQL, relacnej algebre, relacnom kalkule a
Datalogu
- Rekurzia v SQL, relacnej algebre, relacnom kalkule a
Datalogu
- Vypocet dotazov: iteracia (naivna a seminaivna evaluacia)
- Stratifikovana negacia
- Simulacia rekurzie s fixnou hlbkou v SQL bez WITH RECURSIVE
Navrhovanie databaz
- Ciel a metodologia navrhovania databaz
- Entitno-relacne diagramy, pravidla dobreho navrhu, primary keys,
surrogate keys, foreign keys
- Preklad ER diagramov do SQL (DDL)
- Identifikacia funkcnych zavislosti
Funkcne zavislosti
- Motivacia normalizacie
- Funkcne zavislosti, Armstrongove axiomy
- Uzaver mnoziny atributov, uzaver mnoziny funkcnych zavislosti
- Uplnost Armstrongovych axiom
- Pokrytie a minimalne pokrytie mnoziny funkcnych zavislosti
- Nadkluce a kluce
- Relacne schemy, dekompozicia relacnych schem, bezstratovost
dekompozicie
Normalne formy
- Algoritmus testovania bezstratovosti dekompozicie do 2 relacii
- Algoritmus testovania bezstratovosti dekompozicie do N relacii
- Prva, druha a tretia normalna forma (1NF, 2NF, 3NF), BCNF
- Naivna dekompozicia do 3NF, resp. BCNF
- Bezstratova dekompozicia do 3NF zachovavajuca funkcne zavislosti
- Bezstratova dekompozicia do BCNF z 3NF dekompozicie
- Vyssie normalne formy, zasady "rozumnej" dekompozicie
Transakcie
- Definicia transakcie z pohladu centralizovaneho transakcneho systemu
- Elementarne transakcne operacie
- Poziadavky na transakcny system (ACID)
- Architektura transakcneho databazoveho systemu
- Rozvrhy
- Seriove a konflikt-seriovatelne rozvrhy
- Testovanie konflikt-seriovatelnosti, precedencny graf
- View-seriovatelne rozvrhy
- Generovanie seriovatelnych rozvrhov
- Dvojfazove zamykanie, casove peciatky, validacia, MVCC
- Obnova (recovery), log-file
- Vseobecny dvojprechodovy algoritmus obnovy, algoritmy obnovy so
specifickymi predpokladmi
- Checkpointing
- Backup
- Triedy obnovitelnosti: recoverable, ACA, strict
- Diagram hierarchie tried obnovitelnosti a seriovatelnosti
- Striktne dvojfazove zamykanie
- Deadlock, wait-for-graf, pristupy k rieseniu deadlockov
- Konzervativne strategie riesenia deadlockov: wait-die a kill-wait
- Fyzicka organizacia
- Typy externych (trvacnych) medii
- Fyzicka algebra, fyzicke plany
- Materializacia vs. pipelining medzivysledkov
- Zlozitost fyzickych operatorov
- Implementacia vybranych operatorov: Merge-sort, Nested-loop-join
- Sekvencne indexy (ISAM)
- Husty a riedky sekvencny index, operacie vynechavania a vkladania
- B stromy a B+ stromy
- Rozsiritelne hashovanie, rozsiritelne hashovanie
- Cena reorganizacie indexov
Starsie materialy k tomuto kurzu:
RNDr. J.
Sturc
Cvicenia
J. Mazak
C1 Stv 12:20 F1.108
C2 Stv 14:00 F1.108
Linka na web stranku cviceni
Literatura
Online materialy ku kurzu Introduction
to Databases na Stanford University. Online kurz:
Stanford's Databases MOOC
- H. Garcia-Molina, J.D. Ullman, J. Widom: Database Systems, The Complete
Book, Prentice Hall, 2003
- S. Abiteboul, R. Hull, V. Vianu:
Foundations of Databases
- R. Elmasri, S.B. Navathe:
Fundamentals of Database Systems,
Addison-Wesley, 2006
- M. Kifer, P.A. Bernstein, P.M. Lewis: Database Systems, An
Application-Oriented Approach, Addison-Wesley, 2006
- J. D. Ullman, J.Widom: A First Course in Database Systems, Prentice
Hall, 1997
- S. Krishna:
Introduction to Database and Knowledge-Based Systems,
World-Scientific, 1992
- T.M. Connolly, C.E. Begg:
Database Systems: A Practical Approach to Design, Pearson Education,
2005
- C. Zaniolo:
Advanced Database Systems, Morgan Kaufmann, 1997
- S. Lightstone, T.J. Teorey, T. Nadeau:
Physical Database Design, Morgan Kaufmann, 2007
- P.A. Bernstein, V. Hadzilacos, N. Goodman:
Concurrency Control and Recovery in Database Systems, Addison-Wesley, 1987
Updated by
Tomas Plachetka,
Jan/31/2022
|