Циљ предмета
Усвајање знања и вештина за дизајнирање, креирање, претраживање и управљање базама података.
Исход предмета
По завршетку курса, студент је оспособљен за примену различитих модела података и техника пројектовања база података у пракси.
Садржај предмета
Теоријска настава
Системи и модели база података. Упитни језици. Релациони модели. Категорије SQL команди. DDL, DQL, DML, DCL, TCL. Угњеждења упитних језика у процедуралне језике – SQL/Java, SQL/C. Рекурзивни SQL. Пројектовање релационих база података. Функционална и вишезначна зависност. Нормалне форме. Интегритет података, индекси и оптимизација упита. Окидачи; перформансе база података и подешавања. Обрада упита и планови извршења. Безбедност података. Трансакције и конкурентност. Дистрибуиране базе података. Локалност, механизми приступа, партиционисање, репликација и конзистентност. Објектне и објектно-релационе базе података. Базе података у web окружењу. NoSQL и NewSQL базе података. Key-value, column store, документ и граф базе података. Темпоралне базе података. Примене у аналитици великих података.
Практична настава
Рекапитулација SQL програмирања. Мапирање ЕР модела у релациони модел. Нормализација података до четврте нормалне форме. Креирање, измена и брисање база података и табела. Претраживање једне и више табела, филтрирање и сортирање података. Креирање погледа, корисничких функција и процедура. Креирање ограничења и индекса. Управљање трансакцијама и окидачима. Обезбеђивање конкурентног приступа базама и објектима. Имплементирање базе података за високо скалабилну апликацију засновану на принципу CQRS (Command and Query Responsibility Segregation). где се операције са подацима спроводе кроз поуздану релациону базу података, а читање кроз високо скалабилну NoSQL базу података.