Faculty of Engineering and Natural Sciences
Department of Information Technologies

Code Name Level Year Semester
CEN 355 Special Topics in Database Systems Undergraduate 3 Spring
Status Number of ECTS Credits Class Hours Per Week Total Hours Per Semester Language
Area Elective 5 2 + 2 105 English

Instructor Assistant Coordinator
Dino Kečo, Assist. Prof. Dr. Elmedin Selmanović, Assist. Prof. Dr.
[email protected] no email

The objective of this course is to give an advanced introduction to the concepts for modeling, designing, querying and managing large databases. The course covers a spectrum of topics involved with current approaches to modeling and design of databases and the design of DBMSs to manage databases. The relational model is emphasized and relational database management systems are addressed from the standpoint of query optimization, database security, transaction management, concurrency control, and recovery. Other topics to be introduced will include object-oriented databases, distributed databases, data warehousing and mining. Some topics like advanced data models, ODMG and object-relational database management.

  1. Introduction. Recap of DB concepts
  2. Connection to DB from JAVA
  3. Database programming - Functions and Procedures
  4. Triggers
  5. Indexes in DB
  6. ORM and Hibernate Introduction
  7. Hibernate Architecture
  8. Midterm exam
  9. Mapping persistent class
  10. Working with persistent objects
  11. Transactions, Concurrency and caching in Hibernate
  12. Queries in Hibernate
  13. Partitioning in RDBMS
  14. Introduction to NoSQL database concepts

  1. Installation of RDBMS and recap
  2. Simple JAVA program to work with DB
  3. Writing functions and procedures and call them from JAVA
  4. Writing DB trigger and testing using JAVA program
  5. Execution plans of queries and performance improvements
  6. Installation of Hibernate framework. “Hello World” with Hibernate

  1. Identify key classes in hibernate architecture
  2. Midterm exam
  3. Mapping simple domain model using hibernate framework
  4. Building persistent manager
  5. Usage of EH cache in multi-threaded applications
  6. Building search against database using hibernate
  7. Performance comparison between partitioned and unpartitioned tables
  8. Introduction to Amazon Dynamo DB

  • Lectures
  • Practical Sessions
  • Project
Description (%)
Method Quantity Percentage (%)
Midterm Exam(s)125
Final Exam125
Total: 100
Learning outcomes
  • Design database system with many entities
  • Knowledge of programming in RDBM systems
  • Knowledge and critical understanding of indexing principles in database systems for performance optimization
  • Design and implementation of application persistence layer based on Hibernate and Java
  • Introduction to basic concepts of NoSQL database systems
  • Java Persistence with Hibernate - Christian Bauer and Gavin King

ECTS (Allocated based on student) WORKLOAD
Activities Quantity Duration (Hour) Total Work Load
Lecture (14 weeks x Lecture hours per week)16464
Laboratory / Practice (14 weeks x Laboratory/Practice hours per week)16116
Midterm Examination (1 week)11010
Final Examination(1 week)11515
Preparation for Midterm Examination 0
Preparation for Final Examination50
Total Workload: 105
ECTS Credit (Total workload/25): 4