Cilj predmeta
Usvajanje znanja i veština za dizajniranje, kreiranje, pretraživanje i upravljanje bazama podataka.
Ishod predmeta
Po završetku kursa, student je osposobljen za primenu različitih modela podataka i tehnika projektovanja baza podataka u praksi.
Sadržaj predmeta
Teorijska nastava
Sistemi i modeli baza podataka. Upitni jezici. Relacioni modeli. Kategorije SQL komandi. DDL, DQL, DML, DCL, TCL. Ugnježdenja upitnih jezika u proceduralne jezike – SQL/Java, SQL/C. Rekurzivni SQL. Projektovanje relacionih baza podataka. Funkcionalna i višeznačna zavisnost. Normalne forme. Integritet podataka, indeksi i optimizacija upita. Okidači; performanse baza podataka i podešavanja. Obrada upita i planovi izvršenja. Bezbednost podataka. Transakcije i konkurentnost. Distribuirane baze podataka. Lokalnost, mehanizmi pristupa, particionisanje, replikacija i konzistentnost. Objektne i objektno-relacione baze podataka. Baze podataka u web okruženju. NoSQL i NewSQL baze podataka. Key-value, column store, dokument i graf baze podataka. Temporalne baze podataka. Primene u analitici velikih podataka.
Praktična nastava
Rekapitulacija SQL programiranja. Mapiranje ER modela u relacioni model. Normalizacija podataka do četvrte normalne forme. Kreiranje, izmena i brisanje baza podataka i tabela. Pretraživanje jedne i više tabela, filtriranje i sortiranje podataka. Kreiranje pogleda, korisničkih funkcija i procedura. Kreiranje ograničenja i indeksa. Upravljanje transakcijama i okidačima. Obezbeđivanje konkurentnog pristupa bazama i objektima. Implementiranje baze podataka za visoko skalabilnu aplikaciju zasnovanu na principu CQRS (Command and Query Responsibility Segregation). gde se operacije sa podacima sprovode kroz pouzdanu relacionu bazu podataka, a čitanje kroz visoko skalabilnu NoSQL bazu podataka.