Databases
Content (tentative)
- Architecture of database systems, conceptual data modeling with the Entity-Relationship (ER) modeling language
- The relational data model: Referential integrity, keys, foreign keys, functional dependencies (FDs), canonical mapping of entity types and relationships in the relational model, update, insertion and deletion anomalies, relational algebra as a query language
- Relational design theory: normalization, lossless and dependency-preserving decomposition of relation schemas, multivalued dependencies (MVDs), inclusion dependencies (InDs)
- SQL: Practical query languages and integrity conditions without consideration of the conceptual data model:
- Storage structures and database architecture: Characteristics of storage media, I/O complexity, DBMS architecture: external storage manager, pages, buffer manager, file manager, record layout on a page (row-wise, column-wise, mixed)
- Indexing techniques: ISAM index, B+-tree index, hash indexes, multidimensional indexes
- Vector databases
- Query processing: Sort operator: two-way shuffling, block-by-block processing, selection trees, execution plans, compound operator: nested loops, block-by-block compound, index-based compound, compound by shuffling, partitioning by hashing, other operators: grouping and duplicate elimination, selection, projection, pipeline processing principle, recursive queries (Datalog)
- Query optimization: cost metrics, estimation of result size and selectivity of operators, compound optimization, physical plan properties, interesting orders, query rewriting, index cuts, bitmap indexes
- Transactions and error recovery:
ACID, anomalies, serializability, locks, 2-phase commit protocol, concurrency in index structures, shadow pages, write-ahead log, snapshot backups