Course detail
Databases for Process Control
FSI-VDC Acad. year: 2027/2028 Winter semester
The course is an introduction to database systems.
Data processing, redundancy and inconsistency, integrity, confidentiality, multi-user access to data. Index-sequential data organization. Integrity constraints for relationships.
Database system architecture, data models. E-R model, relational algebra, query language of relational algebra.
Theoretical aspects of information systems design. Functional dependencies, normal forms of relations, decomposition theorem.
SQL query language.
Data security.
Clouds and grids.
NoSQL databases.
MongoDB. ElasticSearch. Redis/Valkey.
Language of instruction
Czech
Number of ECTS credits
6
Supervisor
Department
Entry knowledge
To study database systems, basic knowledge of algorithm development is sufficient.
Rules for evaluation and completion of the course
A condition for credit is the implementation of a non-trivial database application using appropriate resources.
The exam is written or electronic. Students demonstrate knowledge of data structure design, relational algebra, SQL and programming.
As the exercises are compulsory, the instructor will check attendance at regular intervals. In case of an excused absence, the student will be given examples to work on independently so that he/she can master the missed material.
Aims
The aim of the course is to introduce students to basic database technologies for effective design and management of applications with large amounts of data in the Internet environment.
The course is designed to introduce students to the theoretical aspects of database application design and implementation in an Internet environment, including the programming techniques involved. They will be able to create an application for efficient management of large amounts of data and also learn how to use cloud services.
Study aids
STEPHENS, R., Beginning Database Design Solutions: Understanding and Implementing Database Design Concepts for the Cloud and Beyond, 2023, 978-1394155729
DATE, C.J., Database Design and Relational Theory: Normal Forms and All That Jazz, 2019, 978-1484255391
KLEPPMANN, M. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2017, 978-1449373320
HERNANDEZ, Michael, J., Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, 2003, 978-020175284
CARLSON, Josiah, L., Redis in Action, 2013, 978-1617290855
The study programmes with the given course
Programme N-MET-P: Mechatronics, Master's, elective
Programme B-MAI-P: Mathematical Engineering, Bachelor's, compulsory-optional
Programme B-STR-P: Engineering, Bachelor's
specialization AIŘ: Applied Computer Science and Control, compulsory
Type of course unit
Lecture
26 hours, optionally
Syllabus
- Definition of the subject, Data Requirements, Conceptual Modeling, and Decision-Making Framework
- Data Modeling – Entity-Relationship (ER) Diagrams
- ER Diagrams – Continued, SQL Syntax, and Physical Data Models
- Database Querying I – SELECT, JOIN, and Aggregation
- Database Querying II – Subqueries, Views, Transactions, and Triggers
- PL/pgSQL – Database Programmability
- NoSQL Databases – Introduction and Time-Series Data (TimescaleDB, InfluxDB)
- MongoDB – Document Databases
- Firebase – Firestore
- Redis/Valkey – Key-Value Databases, Caching, and Queues
- Elasticsearch – Full-Text Search
- Graph Databases – Neo4j and Cypher
- Polyglot Persistence and Decision-Making Framework – Course Summary
Computer-assisted exercise
26 hours, compulsory
Syllabus
- Introduction to the Environment, PostgreSQL (Docker/Server), Project 1 Assignment, and Team Formation
- Design of an ER Diagram for the Selected Project 1 Topic, Peer Review
- CREATE TABLE, Foreign Keys, and CHECK Constraints – Implementation of the ER Diagram in PostgreSQL
- Practicing SELECT and JOIN Queries Using the MetalWorks Database, Querying Project Data
- Advanced SQL Queries, Views, and Transactions; SQL Test
- Triggers and Stored Procedures – Extending the Project
- Hands-on Experience with TimescaleDB (CSV Import, time_bucket, Continuous Aggregates); Project 2 Assignment
- Project 1 Defense
- Firebase/Firestore – Console, Collections, Security Rules, and Querying via the Web SDK
- Redis CLI – Data Structures, TTL, Pub/Sub; Integration with FastAPI and Caching
- Elasticsearch and Kibana – Indexing, Mapping, Query DSL, and Full-Text Search
- Project 2 Defense
- Final Test and Course Summary