Advanced Database Systems (ADBS, in English) – 48h, 6 CFU2023-2024, 2nd period, Master degree in Computer Science, University of Udine | 
      Teacher
	  Dario Della Monica
	 
      Exam modality
The exam consists of a written test that can assign a score up to 28/30. 
      The oral exam is optional; students can ask for it, if they wish so, after having passed the written test. However, those aiming to a score higher than 28/30 must take an oral exam. The final score after the oral exam can be lower than the score obtained with the written test. Sometimes, on a case-by-case basis, the teacher may require students to integrate their written exam with an oral one. MiscLecturesYoutube links to recordings of lectures 
 Lecture 1 (Thursday, March 7, 2024, 8:30-10:30):  
    Course introduction
	
       
      Query processing (overview)
	
       
    Lecture 2 (Friday, March 8, 2024, 16:30-18:30):  
    Query processing (cost model,
	selection algorithms without index)
       
    Lecture 3 (Thursday, March 21, 2024,
      8:30-10:30):  
    Query processing (B+-trees,
	selection algorithms for equality conditions)
       
    Lecture 4 (Friday, March 22, 2024, 16:30-18:30)  
    Query processing (selection
	algorithm for non-equality conditions and complex conditions; the sort
	operation)
       
    Lecture 5 (Thursday, April 4, 2024, 8:30-10:30)  
    Query processing (external
	sort-merge, nested-loop join, block nested-loop join)
       
    Lecture 6 (Friday, April 5, 2024, 10:30-12:30)  
    Query processing (indexed nested-loop join, materialization vs. pipelining)
       
      Query
	optimization (overview)
	
       
      - Extra:
	
       
    Lecture 7 (Thursday, April 11, 2024, 8:30-10:30)
     
    Query optimization (equivalence
	rules, generating equivalent relational algebra expressions)
       
    Lecture 8 (Friday, April 12, 2024, 10:30-12:30)
     
    Query optimization (the catalog,
	meta-information and statistical predictions, estimating the size of the
	output of an expression)
       
    Lecture 9 (Thursday, April 18, 2024, 8:30-10:30)
     
    Query optimization (estimating the
	number of different values for a set of attributes in the output of an
	expression, a dynamic programming algorithm to find the best join order
	for a set of relations)
       
    Lecture 10 (Friday, April 19, 2024, 10:30-12:30)
     
    Query optimization (generating QEP
	from relational algebra expressions)
       
      Introduction to distributed DB (overview)
	
       
    Lecture 11 (Thursday, May 2, 2024, 8:30-10:30)
     
    Introduction to distributed DB (promises of distributed DBMS, design issues, architectures for distributed data management)
       
    Lecture 12 (Friday, May 3, 2024,
      10:30-12:30)
     
    Distributed DB design (primary horizontal fragmentation)
	
       
    Lecture 13 (Thursday, May 9, 2024,
      8:30-10:30)
     
    Distributed DB design (derived horizontal fragmentation, vertical fragmentation, hybrid fragmentation, allocation, distributed data directory)
       
      Overview of distributed query
processing (the general idea)
	
       
    Lecture 14 (Friday, May 10, 2024,
      10:30-12:30)
     
    Overview of distributed query
	processing (the three optimization phases)
       
      Query decomposition and data
	localization (reductions for primary horizontal fragmentation and vertical fragmentation)
	
       
    Lecture 15 (Thursday, May 16, 2024,
      8:30-10:30)
     
    Query decomposition and data localization (reductions for derived horizontal fragmentation and hybrid fragmentation)
       
      Distributed query optimization (overview, semi-join algorithm)
	
       
    Lecture 16 (Friday, May 17, 2024,
      10:30-12:30)
     
    Distributed query optimization (bit-arrays for semi-join, strategy comparison, static vs. dynamic optimization, hybrid optimization)
       
    Lecture 17 (Thursday, May 23, 2024,
      8:30-10:30)
     
     Introduction to distributed
	transaction management
	
       
       Distributed concurrency control (transactions and concurrent transactions, aka histories)
	
       
    Lecture 18 (Friday, May 24, 2024,
      10:30-12:30)
     
    Distributed concurrency control (two-phase locking, deadlock management)
       
    Lecture 19 (Thursday, May 30, 2024,
      8:30-10:30)
     
    Distributed DBMS reliability (local abort, commit, and recovery protocols)
	
       
    Lecture 20 (Friday, May 31, 2024,
      10:30-12:30)
     
    Distributed DBMS reliability (2 phase commit, more critical failures)
       
    Lecture 21 (Thursday, June 6, 2024,
      8:30-10:30)
     
    Data warehousing (introduction, OLAP vs. OLTP)
	 
    Lecture 22 (Friday, June 7, 2024,
      10:30-12:30)
     
    Data Warehousing (evolution of data storage systems, architectures, ETL process)
	 
    Lecture 23 (Thursday, June 13, 2024,
      8:30-10:30)
     
    Data Warehousing (multidimensional data model)
       
    Lecture 24 (Friday, June 14, 2024,
      10:30-12:30)
     
    Data Warehousing (MOLAP/ROLAP/HOLAP, conceptual design)
	 
      Data Warehousing (logical design and materialized queries)
	 
      Quick overview on NoSQL data models
	
       
     |