Lecturer(s)
|
-
Fišer Jiří, Mgr. Ph.D.
-
Beránek Pavel, Ing. Mgr.
|
Course content
|
Relational databases: 1. Nested SELECT subqueries and their (more efficient) alternatives (analytic functions, DISTINCT ON) 2. Index files and query analysis (efficient implementation of JOIN operation) 3. Full-text search 4. Recursive CTE and representation of hierarchies 5. SQL views and procedural extensions 6. Cursors 7. Triggers 8. DCL and user management 9. High-level client-side access (ORM) NoSQL: 1. Definition and objectives of NoSQL database systems 2. Scalability (vertical and horizontal), consistency issues (CAP theorem and BASE model) 3. Data distribution (sharding, replication) 4. Basic types of NoSQL database systems and their relations to relational database systems 3. Key-value databases (practical demonstration of REDIS) 4. Document-oriented database systems (Mongo, BJSON in PostgreSQL), pipelines, map-reduce 5. Graph-oriented database systems (Neo4J)
|
Learning activities and teaching methods
|
unspecified
|
Learning outcomes
|
The course has two parts: 1) advanced relational databases optimization of SQL queries and server-side and client-side programming. 2) introduction to NoSQL database systems with a focus on their use in a highly distributed environment
|
Prerequisites
|
basics of SQL and RDBMS (select, joins, transactions)
|
Assessment methods and criteria
|
unspecified
preparation and oral defense of a seminar work aimed at design, creation and pilot use of database (in both RDBMS and NoSQL database system), verification of general factual knowledge
|
Recommended literature
|
|