Databases

Objectives and outcomes

Upon completion of the course, students will be able to apply various data models and database design
techniques, as well as database scheme implementation techniques, in practice. Also, students will be
able to use the query language to access data, as well as to optimise databases, to manage transactions
and concurrency, and to understand the importance and concepts of data security.

Lectures

Database concept. Database systems and models. Database life cycle. Database design (ER model,
relational model, mapping of ER into relational model, data normalisation). SQL query language
(language basics, statements for data manipulation, statements for control and management functions,
statements for defining objects in the database). Advanced database concepts (data integrity, indexes
and query optimisation; transaction and concurrency management; triggers; database performance and
settings; query processing and execution plans; data security; backup and database recovery; distributed
database systems).

Practical classes

Requirements specification and analysis. Implementation of ER model. Mapping the ER model into a
relational model. Data normalisation to the fourth normal form. Implementing commands for creating,
modifying, and deleting databases and tables. Implementation of statements for data manipulation
(search of one or more tables, data filtering, data sorting, independent and correlative subqueries,
grouping of data, combining the resulting data sets). Creating views, user functions and procedures.
Creating constraints and indexes. Transaction and trigger management. Providing and denying access
to databases and objects within the database. Creating different types of data backups and using them
to recover the database.