Study program / study programs: Advanced data analytics
Course: Databases
Teacher(s): Zoran M. Marjanović, Nenad M. Aničić, Srđa Bjeladinović, Ana Pajić Simović
Course status: Elective
ECTS points: 10
Prerequisites: none
Course objective:
Acquiring basic knowledge of databases and database management systems.
Learning outcomes:
Students will be able to identify data requirements and to design databases. They will get familiar with a database architecture and components and they will learn to use query languages to access and manipulate data in the databases of different types.
Course structure and content:
Introduction. Database management systems and data models.
Relational databases. Conceptual database design. Entity-relationship model. Logical database design. Relational model. Normalization of relations. Physical design of databases: denormalization and optimization. SQL environment: schema, catalog, clients and servers. Connections to databases. SQL query language. SQL in software environments.
NoSQL databases. The origin and concepts. CAP theorem. BASE properties. Comparative analysis of BASE and ACID properties. Key-value databases. Document databases. Column-family databases. Graph databases. NoSQL database design techniques. Map reduce. NoSQL query languages and usage.
Hybrid SQL/NoSQL databases
Literature/Readings:
Lazarević, B., Marjanović, Z., Aničić, N., & Babarogić, S. (2016). Baze podataka (7th edition, ISBN 978-86-7680-258-6). Belgrade, Serbia: FON.
Sadalage P., & Fowler M. (2014). NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. US: Addison-Wesley
Strauch C. (2011) NoSQL Databases. Available online at: https://www.christof-strauch.de/nosqldbs.pdf
The number of class hours per week:
Lectures: 4
Labs: 0
Workshops: 0
Research study: 3
Other classes: 0
Teaching methods:
Individual and group work; lectures and labs
Evaluation/Grading (maximum 100 points):
Pre-exam requirements (Project): 50
Final exam (Implementation): 50