Database Systems
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-DBS | Z,ZK | 6 | 2P+2R+1L | Czech |
- Course guarantor:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
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.
- Requirements:
-
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, hierarchical, relational and object-relational model.
5. Relational data model. Relation, 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. [2] SQL: DDL, DCL, DML.
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.
13. Seminar: Normalization of a schema, functional dependencies. Assessments
- 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. Date, C. J. Introduction to Database Systems, An (8th Edition). Addison Wesley, 2003. ISBN 0321197844.
2.
- Note:
- Further information:
- https://dbs.fit.cvut.cz
- No time-table has been prepared for this course
- The course is a part of the following study plans:
-
- Bachelor program Informatics, unspecified branch, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Security and Information Technology, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Computer Science, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Computer Engineering, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Information Systems and Management, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Web and Software Engineering, spec. Software Engineering, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Web and Software Engineering, spec. Web Engineering, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Web and Software Engineering, spec. Computer Graphics, in Czech, 2015-2020 (compulsory course in the program)
- Bachelor branch Knowledge Engineering, in Czech, 2018-2020 (compulsory course in the program)