- Jiří Hunka, Michal Valenta (guarantor), Ivan Halaška
- Jiří Hunka, Michal Valenta (guarantor), Ivan Halaška, Tomáš Nováček
- 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 course 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. Data abstraction. Conceptual, database and physical level data model.
2. Conceptual data model. Basic constructs, integrity constraints. Overview of database models - network, hierarchical, relational and object-relational model.
3. Relational data model. Relation, attributes, domains, relational database schema, DDL SQL. Expressing integrity constraints through functional dependencies. Normal forms of relations.
4. Database query languages. Relational algebra, SQL. SQL: DDL, DCL, DML.
5. Relational schema design. Normalization using decomposition. Decomposition quality criteria. Relational database schema design using a direct transformation from a conceptual schema.
6. Transactions, error recovery, concurrency control, data security and integrity. 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. Computer lab: Introduction to the environment and the tools. Seminar: Conceptual data modeling. Computer lab: SQL communication with a database engine, working with a conceptual modeler. Seminar: Conceptual data modeling, relational algebra as a query language. Computer lab: Working on projects, consultations. Seminar: Relational algebra as a query language.
2. Computer lab: Working on projects, consultations. Seminar: SQL. Computer lab: Working on projects, consultations, project checkpoint. Seminar: SQL. Computer lab: Working on projects. Seminar: Normalization of a schema, functional dependencies. Computer lab: Presentation of projects, assessment
- Study Objective:
After completing the course, 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 course provides hands-on experience with databases that can be directly used in a wide range of situations, as well as theoretical foundations for subsequent courses, such as Database systems administration or specialized database-oriented courses (SQL, Database systems 2) in the second cycle degree programme.
- Study materials:
1. Ramakrishnan, R., Gehrke, J. ''Database Management Systems''. McGraw-Hill Education Singapore, 2002. ISBN 0071230572.
- Further information:
- Time-table for winter semester 2019/2020:
- Time-table is not available yet
- Time-table for summer semester 2019/2020:
- Time-table is not available yet
- The course is a part of the following study plans:
- Bc. Programme Informatics, Part -Time Form of Study, in Czech, Version 2015 - 2020 (compulsory course in the program)
- Bc Branch Security and Information Technology, Part-Time Form, in Czech, Version 2015 to 2020 (compulsory course in the program)
- Bc.Branch WSI, Specialization Software Engineering, Part-Time Form, Versionverze 2015 - 2020 (compulsory course in the program)