- Department of Software Engineering
Students are introduced to the database engine architecture and typical user roles. They are briefly introduced to various database models. They learn to design small databases (including integrity constraints) using a conceptual model and implement them in a relational database engine. They get a hands-on experience with the SQL language, as well as with its theoretical foundation - the relational database model. They learn the principles of normalizing a relational database schema. They understand the fundamental concepts of transaction processing, controlling parallel user access to a single data source, as well as recovering a database engine from a failure. They are briefly introduced to special ways of storing data in relational databases with respect to speed of access to large quantities of data. This introductory-level module does not cover: Administration of database systems, debugging and optimizing database applications, distributed database systems, data stores.
Common user-level knowledge of Unix/Linux and MS Windows operating systems, ability to describe a solution to a problem algorithmically, and elementary knowledge of algebra and logic are expected. Active knowledge of a specific programming language is not required.
- Syllabus of lectures:
1. Bulk data processing concepts. DBMS architecture. Functions of individual components.
2. Data abstraction. Conceptual, database and physical level data model.
3. Conceptual data model. Basic constructs, integrity constraints.
4. Overview of database models - network, relational, object-relational and object-oriented model.
5. Relational data model. Relations, attributes, domains, relational database schema, DDL SQL.
6. Expressing integrity constraints through functional dependencies. Normal forms of relations.
7. Database query languages. Relational algebra, SQL.
8.  SQL: DDL, DCL, DML, TCL.
9. Relational schema design. Normalization using decomposition. Decomposition quality criteria.
10. Relational database schema design using a direct transformation from a conceptual schema.
11. Transactions, error recovery, concurrency control, data security and integrity.
12. Physical data model, tables as heaps, Rowid direct access, B* tree type index, bitmap index, indexed cluster, hashed cluster.
- Syllabus of tutorials:
1. Seminar: Introduction, project assignment.
2. Computer lab: Introduction to the environment and the tools.
3. Seminar: Conceptual data modeling.
4. Computer lab: SQL communication with a database engine, working with a conceptual modeler.
5. Seminar: Conceptual data modeling, relational algebra as a query language.
6. Computer lab: Working on projects, consultations.
7. Seminar: Relational algebra as a query language.
8. Computer lab: Working on projects, consultations.
9. Seminar: SQL.
10. Computer lab: Working on projects, consultations, project checkpoint.
11. Seminar: SQL.
12. Computer lab: Working on projects, presentations.
13. Seminar: Normalization of a schema, functional dependencies.
- Study Objective:
After completing the module, students will be able to design and implement small databases and work with them effectively using the SQL language. Today, knowledge of (relational) databases is a necessary qualification, not just for programmers of information systems and creators of www applications, but for practically all informatics professionals. The module provides hands-on experience with databases that can be directly used in a wide range of situations, as well as theoretical foundations for subsequent modules, such as Database systems administration or specialized database-oriented modules (SQL, Database systems 2) in the second cycle degree programme.
- Study materials:
1.BIE-DBS Lectures and presentations (Ing. J. Pavlicek, Ph.D, Ing. Michal Valenta Ph.d, Ing Yellena Trofimova)
2. Ramakrishnan, R., Gehrke, J. ''Database Management Systems''. McGraw-Hill Education Singapore, 2002. ISBN 0071230572.
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans:
- Bc. Branch Security and Information Technology, Presented in English, Version 2015 to 2020 (compulsory course in the program)
- Bc. Branch WSI, Specialization Software Engineering, Presented in English, Version 2015-2020 (compulsory course in the program)
- Bc. Branch Computer Science, Presented in English, Version 2015 to 2020 (compulsory course in the program)