INFO-H-415: Advanced Databases

Last important announcement

All VUB student registered to the course who are not on the Teams of the course should take contact with

Additionnel Sessions next week

Hello everyone,

After checking with the professor of infoh419 it seems that many of you are busy on Thursday 18/11 from 16h to 18h, the additional lecture of infoh415 is therefore cancelled and we will catch up another time. Tomorrow we will therefore only have one exercise session from 14h to 16h that will cover the last part of temporal databases.


Teaching Assistant


  • Theory 24 h - Exercises 24h - Project 12h
  • 5 ECTS credits

Study Programme

  • Master in Computer Science and Engineering [MA-IRIF]
  • Master in Computer Sciences [INFO]
  • Erasmus Mundus Master in Big Data Management and Analytics (BDMA)


The course is given during the first semester

  • Lectures on Mondays from 4 pm to 6 pm in the K.4.601 (Solbosch campus)
  • Exercises on Thursdays from 2 pm to 4 pm


Today, databases are moving away from typical management applications, and address new application areas. For this, databases must consider (1) recent developments in computer technology, as the object paradigm and distribution, and (2) management of new data types such as spatial or temporal data. This course introduces the concepts and techniques of some innovative database applications.


Active Databases

Taxonomy of concepts. Applications of active databases: integrity maintenance, derived data, replication. Design of active databases: termination, confluence, determinism, modularisation.

Temporal Databases

Temporal data and applications. Time ontology. Conceptual modeling of temporal aspects. Manipulation of temporal data with standard SQL.

Graph Databases

Spatial Databases

Spatial data and applications. Space ontology. Conceptual modeling of spatial aspects. Manipulation of spatial data with standard SQL.

Reference Books

  • C. Zaniolo et al., Advanced Database Systems, Morgan Kaufmann, 1997
  • R.T. Snodgrass, Developing Time-Oriented Database Applications in SQL, Morgan Kaufmann, 2000 (version pdf)
  • Tom Johnston, Bitemporal Data: Theory and Practice, Morgan Kaufmann, 2014
  • R.T. Snodgrass, The TSQL2 Temporal Query Language, Kluwer Academic Publishers, 1995
  • S.W. Dietrich, S.D. Urban, Fundamentals of Object Databases: Object-Oriented and Object-Relational Design, Morgan & Claypool, 2011
  • Jim Melton and Alan R. Simon, SQL: 1999 - Understanding Relational Language Components, Morgan Kaufmann, 2001
  • Jim Melton, Advanced SQL: 1999 - Understanding Object-Relational and Other Advanced Features, Morgan Kaufmann, 2002
  • Ian Robinson, Jim Webber, Emil Eifrem, Graph Databases, 2nd Edition, O'Reilly Media, 2015
  • Philippe Rigaux, Michel Scholl, Agnès Voisard, Spatial Databases: With Application to GIS, Morgan Kaufmann, 2001

Additional documentation

  • Norman W. Paton, Oscar Díaz, Active Database Systems, ACM Computer Surveys, 31(1): 63-103, 1999. (version pdf)
  • Jennifer Widom, The Starbust Active Database Rule System, IEEE Transactions on Knowledge and Data Engineering, 8(4): 583-595 1996 (version pdf)
  • E. Zimányi, Temporal Aggregates and Temporal Universal Quantifiers in Standard SQL, SIGMOD Record, 35(2):16-21, 2006. (version pdf)
  • Krishna Kulkarni, Jan-Eike Michels, Temporal features in SQL:2011, SIGMOD Record, 41(3):34-43, 2012. (version pdf)
  • Michael H. Böhlen, Anton Dignös, Johann Gamper, Christian S. Jensen, Temporal Data Management: An Overview, Proc. of the 7th European Summer School on Business Intelligence and Big Data, eBISS 2017, Bruxelles, Belgium, LNBIP 324, Springer 2018. (version pdf) * Gregory Sannik, Fred Daniels, Enabling the Temporal Data Warehouse, Teradata White paper. (version pdf)
  • Richard T. Snodgrass, A Case Study of Temporal Data, Teradata White paper. (version pdf)
  • Teradata, Temporal Table Support. (version pdf)
  • Teradata, ANSI Temporal Table Support. (version pdf)
  • IBM, A Matter of Time: Temporal Data Management in DB2 for z/OS. (version pdf)

Course Slides



Students, in groups of either two or four students, will realize a project in a topic relevant to advanced databases. Examples of topics are given in the next section of this document. Please notice that the template for these topics is “<Technology> and <Tool>” for groups of 2 students and “<Technology> with <Tool1> and <Tool2>” for groups of 4 students.

Each group will study a database technology (e.g., document stores, time series databases, etc.) and illustrate it with an application developed ​​in a database management system to be chosen (e.g., SQL Server, PostgreSQL, MongoDB, etc.). The topic should be addressed in a technical way, to explain the foundations of the underlying technology. The application must use the chosen technology. Examples of technologies and tools can be found for example in the following web site.

It is important to understand that the objective of the project is NOT about developing an application with a GUI. The objective is to benchmark the proposed tool in relation to the database requirements of your application. Therefore, it is necessary to determine the set of queries and updates that your application requires and do a benchmark with, e.g., 1K, 10K, 100K, and 1M “objects” (rows, documents, nodes, etc. depending on the technology used) to determine if the tool shows a linear or exponential behavior. Please notice that you SHOULD NOT generate random data for the benchmark since you can find in Internet (1) a huge number of available datasets (2) alternatively, there are many available data generators.

As usual when performing benchmarks, the queries and updates are executed n times (e.g., 6 times where the first execution is not considered because it is different from the others since the cache structures must be filled) and the average of the execution times is computed. A comparison with traditional relational technology (e.g., using PostgreSQL) must be provided to show that the chosen tool is THE technology of choice for your application, better than all other alternatives, and that it will perform correctly when the system is deployed at full scale. Please notice that there are MANY standard benchmarks for various database technologies so in that case you should prefer using a standard benchmark that reinventing the wheel and create your own benchmark.

The choice of topic and the application must be made ​​in agreement with the lecturer. The topic should not be included in the program of the Master in Computer Science and Engineering. The project will be presented to the lecturer and the fellow students at the end of the semester. This presentation will be supported by a slideshow. A written report containing the contents of the presentation is also required. The presentation and the report will (1) explain the foundations of the technology chosen, (2) explain how these foundations are implemented by the database management system chosen and (3) illustrate all these concepts with the application implemented.

For 2-student group, the duration of the presentation is 30 minutes. It will structured in two parts of SIMILAR length

  • An introduction to the technology
  • An introduction to the tool illustrated with an example application assessing its advantages and disadvantages.

For 4-student group, the duration of the presentation is 45 minutes. It will structured in three parts of SIMILAR length

  • An introduction to technologies presented jointly by the two groups
  • An introduction to the two tools, each presented by each group
  • A common assessment of the advantages and disadvantages of both tools tested in a common example application.

The evaluation of the project focuses on the following criteria:

  • Quality of the presentation,
  • Master of the topic presented, and
  • Quality of written report.

The project will count for 25% of the final grade.

The project must be submitted by Monday, December 13, 2021. Please send the report and the presentation in PDF format to the lecturer.

  • Cloud databases and Microsoft Azure
  • Column stores and Cassandra, Hbase, …
  • Data warehouses and Apache Hive
  • Distributed databases and SQL Server, Oracle, Citus, …
  • Document stores and Cloudant, Couchbase, CouchDB, MongoDB, RavenDB, RethinkDB, …
  • Embedded databases and BerkeleyDB
  • In-memory databases and Kdb+, MemSQL, Oracle TimesTen, Memcached, ….
  • Key-value stores and BerkeleyDB, DynamoDB, Redis, Voldermort, …
  • Multi-model databases and MarkLogic, CosmosDB
  • NewSQL databases and VoltDB, CockrachDB, …
  • Object-oriented databases and ObjectBox, Perst
  • Real-time databases and Firebase
  • Search engines and Solr, ElasticSearch, Sphinx …
  • Spatial raster databases and Rasdaman
  • Stream databases and Apache Kafka, Event Stores
  • Time series databases and Influx DB, Kdb+, …
  • XML databases and BaseX

Topics for the current academic year

  • Analytical databases with Apache Druid and ClickHouse: Andrzej Krzysztof Pietrusiak, Tripat Kaur, Viktor Stavrinopoulos, Deven Ramani
  • Cloud databases and Microsoft Azure SQL: Davide Rendina, Margarita Hernandez
  • Column databases with Cassandra and HBase: Md Jamiur Rahman Rifat, Khushnur Binte Jahangir, Hind Bakkali and Gaëlle Frauenkron
  • Column stores and Apache Kudu: Pei Liao, Minxing Jiang
  • Data warehouses and Apache Hive: Nicole Zafalón, Andrés Espinal
  • Data Warehouses with Redshift and Google BigQuery: Manar EL AMRANI, Hamza MAHMOUDI, Salma SALMANI, Cédric HANSSENS
  • Distributed databases with Citus and DynamoDB: Asha Seif, Kainaat Amjid, Loïc Caudron, Matteo Snellings
  • Distributed databases with Apache Ignite: Fan Chen, Mathieu Pardon
  • Distributed databases with RethinkDB: Thapa Darshan, Sami Akroune
  • Document stores with CouchBase and CouchDB: Mohammadreza Amini, Ossoama Benaissa, Zheng Ren, Adriana Sirbu
  • Document stores and Firestore: Luca De Santos, Sacha Keserovic
  • Document stores and MongoDB: Hang Yu, Zhiyang Guo
  • Document stores and Supabase: Shady Al Shoha, Nabil El Ouahabi
  • Embedded databases and BerkeleyDB: Starygin Evgueniy, Ndele-A-Mulenghe Mashini
  • In-memory databases and Memcached: Diogo Repas and Sandra Hillergren
  • Key-value databases with DynamoDB: Aline Desmet, Chloé Dekeyser
  • Key-value databases with Cloud bigtable and Redis: Luiz Fonseca, Zyrako Musaj, Yanjian Zhang and Zhicheng Luo
  • Multimedia databases and Oracle: Wassim Belgada, Imestir Ibrahim
  • Multimodel databases and ArangoDB: David Silberwasser, Sami Abdul Sater
  • Multimodel databases and MarkLogic: Yassine Hodaibi, Jean-Jacques Debilde
  • NewSQL databases with VoltDB and CockroachDB: Ali Imam Manzer, Maciej Piekarski, Johan Gjini, Nabil Souissi,
  • Object-oriented databases with ObjectBox and Perst: Filip Sotiroski, Niccolo Morabito, Vlada Kylynnyk, Pietro Ferrazi
  • Real-time databases and Firebase: Himanshu Choudhary, Sergio Postigo, Tejaswini dhuppad
  • Search engines with Apache Solr and ElasticSearch: Pap Sanou, Szymon Swirydowicz, Alexandre Chapelle, Nicolas Dardenne
  • Spatial raster databases and Rasdaman: Adam Broniewski, Victor Divi
  • Stream databases and Apache Kafka, Event Stores: Nazgul Rakhimzhanova
  • Time series databases with Influx DB and Kdb+: Mohammad Zain Abbas, Muhammad Ismail, Yi Wu, Chonghan Li
  • Time series databases and TimescaleDB: Dumitru Negru, Brice Petit
  • XML Databases and BaseX: Maxime Renversez, Mael Touret

Examinations from Previous Years

teaching/infoh415.txt · Last modified: 2021/12/28 12:04 by ezimanyi