Curricular Unit: | Code: | ||
Advanced Databases | 1126BDAV | ||
Year: | Level: | Course: | Credits: |
1 | Master | Computer Systems Engineering (Mobile Computation) | 6 ects |
Learning Period: | Language of Instruction: | Total Hours: | |
Winter Semester | Portuguese/English | 78 | |
Learning Outcomes of the Curricular Unit: | |||
This course has the following learning objectives: • Describe database management system internals. Understand and describe internal algorithms in detail. • Identify and be able to use recent and advanced database techniques (e.g. in concurrency control, buffer management, and recovery). • Decide on configuration issues related to database operation and performance. Identify which parameters are tunable and what are the implications. • Analyze and optimize transactional code, identifying causes of possible anomalies and correct them. • Decide on optimization issues given a known database | |||
Syllabus: | |||
1. The DBMS Architecture 1.1. DBMS components 1.2. Transaction review 1.3. Transaction types 2. Concurrency Control 2.1. Locking, Optimistic and Timestamps algorithms 2.2. Multi-version Concurrency Control 2.3. First Committer Wins and First Updater Wins variants 2.4. New Isolation levels. Multi-version serializability. 2.4. Snapshot Isolation (SI). SI Anomalies 2.6. Applications of SI, products using SI. 3. Storage organization 3.1. N-ary Storage Model, Decomposition Storage Model, Partition Attributes across Model 3.2. Clotho Model. Performance analysis 4. Recovery 4.1. The Buffer Manager 4.2. Memory management, relation to concurrency control and recovery 4.3. Page replacement algorithms 4.4. The Buffer Manager and recovery. Recovery procedures 4.5. Shadow Paging and Logging. WAL method 4.6. The ARIES algorithm 5. The Object-Relational approach 5.1. Decomposition methods for object models. Horizontal, Vertical and mixed decomposition 5.2. Performance considera | |||
Demonstration of the Syllabus Coherence with the Curricular Unit's Objectives: | |||
The syllabus addresses the main components of a modern DBMS. The learning objectives imply a deep understanding of how these components work and interact, and the analysis o f new models and techniques. As an advanced DBMS course, students are able to test and analyse most of the topics using the software they have installed. | |||
Teaching Methodologies (Including Evaluation): | |||
Students install in their laptop a DBMS, which they can use during the classes to test and experiment. Labs are geared towards practical exercises, and imply most tasks a database administrator and programmer would perform. Students are in charge of installation, configuration, administration and maintenance of their DBMS. A second DBMS (a column store) is installed for the last part of the syllabus. The assessment includes: • Two written tests • Student performance, including attendance, resolution of proposed problems and active participation in classes. •Submission of the proposed assignments •Oral presentation of the two database projects. | |||
Demonstration of the Coherence between the Teaching Methodologies and the Learning Outcomes: | |||
The proposed methodologies are consistent with the objectives set for the course since they rely on the understanding of the DBMS internal functions, knowledge of internal components, and analysis of algorithms and implications in performance. Problem-solving, together with programming and implementation allow the students to acquire the desired competencies. | |||
Reading: | |||
1. Feliz Gouveia, Bases de Dados, Fundamentos e Aplicações, FCA, Lisboa, 2021. 2. Blaha, M., Premerlani, W. (1998). Object-Oriented Modeling and Design for Database Applications, Prentice-Hall. 3. Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman, Concurrency Control and Recovery in Database Systems, Addison-Wesley, 1987. 4. Chaudhri, A., Mary Loomis (1998), Object Databases in Practice, Prentice-Hall. 5. Jeffrey Ullman, Jenniffer Wisdom, Database Systems: the complete book, Prentice-Hall, 2008. 6. Manuais: PostgreSQL, MonetDB, db4o | |||
Lecturer (* Responsible): | |||
Hélder Pinto (helderpinto@ufp.edu.pt) |