Curricular Unit:Code:
Advanced Databases833BDAV
Year:Level:Course:Credits:
1MasterComputer Systems Engineering (Information Systems and Multimedia)6 ects
Learning Period:Language of Instruction:Total Hours:
Spring SemesterPortuguese/English78
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.
• 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 workload, by manipulating indexes, choosing more adequate data types, and modifying queries.
• Identify limitations of the standard Relational databases in certain application domains, e.g. for multidimensional data, or unstructured data.
• Analyze, describe and use other models than the Relational.
• Analyze, compare and evaluate alternative database architectures and models in different application contexts
Syllabus:
1. The DBMS Architecture
1.1. DBMS components
1.2. Transaction review
2. Concurrency Control
2.1. Locking, Optimistic and Timestamps algorithms
2.2. Multi-version Concurrency Control
2.3. Snapshot Isolation (SI). SI Anomalies
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. Memory management, relation to concurrency control and recovery
4.2. Shadow Paging and Logging. WAL method
4.3. The ARIES algorithm
5. The Object-Relational approach
5.1. Decomposition methods for object models. Horizontal, Vertical and mixed decomposition
6. Object-oriented databases
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, Fundamentos de Bases de Dados, FCA, Lisboa, 2014.
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