Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
teaching:infoh415 [2019/11/28 18:03]
ezimanyi [Topics for the current academic year]
teaching:infoh415 [2026/10/06 08:45] (current)
ezimanyi [Topics for the current academic year]
Line 1: Line 1:
 ====== INFO-H-415: Advanced Databases ====== ====== INFO-H-415: Advanced Databases ======
 +
  
  
Line 10: Line 11:
 ===== Teaching Assistant ===== ===== Teaching Assistant =====
  
-  * [[Gilles.Dejaegere@ulb.ac.be|Gilles Dejaegere]]+  * [[boris.coquelet@ulb.be|Boris Coquelet]]
  
  
Line 22: Line 23:
   * Master in Computer Science and Engineering [MA-IRIF]   * Master in Computer Science and Engineering [MA-IRIF]
   * Master in Computer Sciences [INFO]   * Master in Computer Sciences [INFO]
-  * Erasmus Mundus Master in Big Data Management and Analytics (BDMA) 
  
  
Line 32: Line 32:
  
 The course is given during the first semester ​ The course is given during the first semester ​
-  * Lectures on Mondays from 4 pm to 6 pm at the room S.AY2.108 **except 14/10/2019 which is a practical session in S.UB4.130** +  * Lectures on Mondays from 4 pm to 6 pm 
-  * Exercises on Thursdays from 2 pm to 4 pm at the room S.UB4.130 <​del>​**except 24/10/2019 which is a lecture in S.UD2.119** +  * Exercises on Thursdays from 2 pm to 4 pm
-</​del>​+
  
 /*  /* 
Line 41: Line 40:
   * [[http://​www.google.com/​calendar/​embed?​src=dug2eihu8tqtnkjhmtuupj0je0%40group.calendar.google.com&​ctz=Europe/​Brussels|Online schedule]]   * [[http://​www.google.com/​calendar/​embed?​src=dug2eihu8tqtnkjhmtuupj0je0%40group.calendar.google.com&​ctz=Europe/​Brussels|Online schedule]]
 */ */
 +
 +
 +===== Grading =====
 +  * Group project (25%)
 +  * Written exam (75%)
 +
 +
 ===== Objectives ===== ===== Objectives =====
  
 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. 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.
 +
 +
 +
 ===== Content ===== ===== Content =====
  
-==== Active ​Databases ====+==== Spatial ​Databases ====
  
-Taxonomy ​of concepts. Applications ​of active databases: integrity maintenance,​ derived ​data, replication. Design of active databases: termination,​ confluence, determinism,​ modularisation.+Spatial data and applications. Space ontology. Conceptual modeling ​of spatial aspects. Manipulation ​of spatial ​data with standard SQL. 
 + 
 +==== Mobility Databases ==== 
 + 
 +...
  
 ==== Temporal Databases ==== ==== Temporal Databases ====
Line 54: Line 67:
 Temporal data and applications. Time ontology. Conceptual modeling of temporal aspects. Manipulation of temporal data with standard SQL. Temporal data and applications. Time ontology. Conceptual modeling of temporal aspects. Manipulation of temporal data with standard SQL.
  
-==== Graph Databases ====+==== Active ​Databases ====
  
-...+Taxonomy of concepts. Applications of active databases: integrity maintenance,​ derived data, replication. Design of active databases: termination,​ confluence, determinism,​ modularisation.
  
-==== Spatial Databases ==== 
- 
-Spatial data and applications. Space ontology. Conceptual modeling of spatial aspects. Manipulation of spatial data with standard SQL. 
  
  
Line 69: Line 79:
 ===== Reference Books ===== ===== Reference Books =====
  
 +  * M. Sakr, A. Vaisman, E. Zimányi, [[https://​link.springer.com/​book/​10.1007/​978-3-031-82636-8|Mobility Data Science]], Springer, 2025
   * C. Zaniolo et al., Advanced Database Systems, Morgan Kaufmann, 1997   * C. Zaniolo et al., Advanced Database Systems, Morgan Kaufmann, 1997
   * R.T. Snodgrass, Developing Time-Oriented Database Applications in SQL,   ​Morgan Kaufmann, 2000 ({{teaching:​infoh415:​tdbbook.pdf|version pdf}})   * R.T. Snodgrass, Developing Time-Oriented Database Applications in SQL,   ​Morgan Kaufmann, 2000 ({{teaching:​infoh415:​tdbbook.pdf|version pdf}})
   * Tom Johnston, Bitemporal Data: Theory and Practice, Morgan Kaufmann, 2014   * Tom Johnston, Bitemporal Data: Theory and Practice, Morgan Kaufmann, 2014
   * R.T. Snodgrass, The TSQL2 Temporal Query Language, Kluwer Academic Publishers, 1995   * 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 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   * 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   * Philippe Rigaux, Michel Scholl, Agnès Voisard, Spatial Databases: With Application to GIS, Morgan Kaufmann, 2001
  
Line 92: Line 101:
   * IBM, A Matter of Time: Temporal Data Management in DB2 for z/OS. ({{teaching:​infoh415:​a_matter_of_time.pdf|version pdf}})   * IBM, A Matter of Time: Temporal Data Management in DB2 for z/OS. ({{teaching:​infoh415:​a_matter_of_time.pdf|version pdf}})
 ===== Links ===== ===== Links =====
-  * Temporal databases ​ 
-    * [[http://​timecenter.cs.aau.dk/​|TimeCenter]],​ an international research centre for temporal databases. 
-    * [[http://​www.timeconsult.com/​Software/​Software.html|TimeDB]],​ a temporal relational database 
-  * Object databases 
-    * [[http://​www.odbms.org/​|ODBMS.ORG]],​ portal of ressources about object databases. 
-    * [[http://​www.db4o.com/​|db4o]],​ an open source object database. 
-    * [[http://​www.objectstore.com/​datasheet/​index.ssp|ObjectStore]],​ an object database 
-    * [[http://​www.objectivity.com|Objectivity]],​ an object database 
-    * [[http://​www.versant.com/​|Versant]],​ an object database 
-    * [[http://​www.jade.co.nz/​jade/​|Jade]],​ an object database 
-    * [[http://​sourceforge.net/​projects/​ozone/​|Ozone]],​ an object database 
-  * Post-relationnal databases 
-    * [[http://​www.fresher.com/​|Matisse]] 
-    * [[http://​www.intersystems.com/​cache/​index.html|Caché]] 
   * Spatial databases   * Spatial databases
-    * [[https://​postgis.net/​workshops/​postgis-intro/​|Introduction to PostGIS]] ​  +    * [[https://​postgis.net/​workshops/​postgis-intro/​|Introduction to PostGIS]] 
 +    * [[https://​learn.crunchydata.com/​postgis|Crunchy Data Interactive PostGIS Learning Portal]] 
 +  * Mobility databases 
 +    * [[https://​mobilitydb.com/​|MobilityDB]]   
 + 
 ===== Course Slides ===== ===== Course Slides =====
  
-  * {{teaching:​infoh415:​activenotes.pdf|Active databases}} 
-  * {{teaching:​infoh415:​temporalnotes.pdf|Temporal databases}} 
-/*   * {{teaching:​infoh415:​objectnotes.pdf|Object databases}} ​  */ 
-  * {{:​teaching:​infoh415:​graph_databases_notes.zip|Graph Notes}} 
   * {{teaching:​infoh415:​spatialnotes.pdf|Spatial databases}}   * {{teaching:​infoh415:​spatialnotes.pdf|Spatial databases}}
 +  * Mobility databases
 +  * {{teaching:​infoh415:​temporalnotes.pdf|Temporal databases}}
 +  * {{teaching:​infoh415:​activenotes.pdf|Active databases}}
 +/*  * {{:​teaching:​infoh415:​graphdb-ulb-2021.zip|Graph Notes (2021 version)}} */
 +/*   * {{teaching:​infoh415:​objectnotes.pdf|Object databases}} ​  
 +  * {{:​teaching:​infoh415:​graph_databases_notes.zip|Graph Notes}}*/
  
  
Line 121: Line 121:
  
   * [[teaching:​infoh415:​TP|Exercices Web page]]   * [[teaching:​infoh415:​TP|Exercices Web page]]
 +
 ===== Project ===== ===== Project =====
  
Line 129: Line 130:
 */ */
  
-Students, in groups of two, will realize a project in a topic relevant to advanced databases. Examples of topics are given in the next section of this document.+Students, in groups of 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>​ with <​Tool1>​ and <​Tool2>"​.
  
-Each group will study a database technology and illustrate it with an application developed ​​in ​a database management ​system ​to be chosen (e.g., Oracle, PostgreSQL, DB2, SQL Server, ​mySQL, etc..). +Each group will study a database technology ​(e.g., document stores, time series databases, etc.) and illustrate it with an application developed ​​in ​two database management ​systems ​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 ​ [[https://​db-engines.com/​en/​ranking|web site]].
-The topic should be addressed in a technical way, to explain the underlying ​technologies. The application must use the specific ​technology ​manipulated.+
  
-The choice of topic and the application must be made ​​in agreement with the lecturer. The topic should not be included in the programme ​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 written ​report will explain the possibilities offered ​by the database management ​system ​chosen and give a general description ​of the application ​implemented.+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 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 ​systems ​chosen and (3) illustrate all these concepts with the application implemented. 
 + 
 +The duration of the presentation is 45 minutes. It will structured in three parts of SIMILAR length 
 +   * An introduction to technology 
 +   * An introduction to the two tools, each presented by a subgroup of two persons 
 +   * 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: The evaluation of the project focuses on the following criteria:
Line 143: Line 152:
 The project will count for 25% of the final grade. The project will count for 25% of the final grade.
  
-The project must be submitted ​by **Monday, December 16, 2019**.+The project must be submitted **immediately after** the project presentation, which will take place on the week on Monday ​December 16, 2025. Please send the report and the presentation in PDF format to the lecturer. 
  
-===== Examples of topics from the previous academic year ===== +  ​* Cloud databases and Microsoft Azure, AWS, ...
- +
-You can take a look at the [[https://​db-engines.com/​en/​|DB-Engines]] web site to get an idea of the currently available technologies and tools. Examples of previous topics are given next: +
- +
-  * Analytical databases and Endeca +
-  ​* Cloud databases and Microsoft Azure+
   * Column stores and Cassandra, Hbase, ...   * Column stores and Cassandra, Hbase, ...
-  * Data warehouses and Apache Hive +  * Data warehouses and Apache Hive, ... 
-  * Deductive Databases and XSB +  * Distributed databases and SQL Server, ​Oracle, Citus, ...
-  * Distributed databases and SQL Server, ​DynamoDB, ...+
   * Document stores and Cloudant, Couchbase, CouchDB, MongoDB, RavenDB, RethinkDB, ...   * Document stores and Cloudant, Couchbase, CouchDB, MongoDB, RavenDB, RethinkDB, ...
-  * Embedded databases and BerkeleyDB+  * Embedded databases and BerkeleyDB, DuckDB, ...
   * In-memory databases and Kdb+, MemSQL, Oracle TimesTen, Memcached, ....   * In-memory databases and Kdb+, MemSQL, Oracle TimesTen, Memcached, ....
-  * Key-value stores and Redis, Voldermort, ... +  * Key-value stores and BerkeleyDB, DynamoDB, ​Redis, Voldermort, ... 
-  * Multimedia databases and Oracle +  * Multi-model databases and MarkLogic, CosmosDB, ... 
-  * Multi-model databases and MarkLogic +  * NewSQL databases and VoltDB, CockrachDB, ... 
-  * NewSQL databases and VoltDB +  * Object-oriented databases and ObjectBox, Perst, ... 
-  * Object-oriented databases and db4o +  * Real-time databases and Firebase, ...
-  * Real-time databases and Firebase+
   * Search engines and Solr, ElasticSearch,​ Sphinx ...   * Search engines and Solr, ElasticSearch,​ Sphinx ...
-  * Spatial databases and Rasdaman +  * Spatial ​raster ​databases and Rasdaman, ... 
-  * Stream databases and Apache ​Kafka+  * Stream databases and Kafka, Event Stores, Flink, NebulaStream,​ ...
   * Time series databases and Influx DB, Kdb+, ...   * Time series databases and Influx DB, Kdb+, ...
-  * XML databases and BaseX+  ​* Vector databases and PGVector, Chromadb, ... 
 +  ​* XML databases and BaseX, ...
  
 +====== Topics for the current academic year =====
 + 
 +  * Distributed databases with Citus and YugabyteDB: Osman Jah, Lansana Fofanah, and Kendra Gamgne ​
 +  * Document Stores with MongoDB and CouchDB: Artur Isufi, Boris Pedraza, Rosario Lo Cascio and Sami Slim
 +  * Embedded Databases with DuckDB and SQLite: Sofía MARTÍNEZ PASTOR, Oliver IRVINE, Martina GÓMEZ MARTÍN, Samira BARROU
 +  * Graph databases with Neo4J and OrientDB: Gustavo Faria, Negar Sourati, Sagar Singh, Francesc Holly
 +  * In-memory databases with SingleStore and Redis: Frances Joffany Navarro, Coline Clerbaux, Robin Salé, Zoé Moeremans
 +  * Key-value stores with Redis and BerkeleyDB: Ilias Elâl-Lati, Mohamed MOUSSAOUI, Rayane MEHANNI, Reda CHAKROUNE
 +  * NewSQL databases with CockroachDB and TiDB: Amine Bâaj, Thierno Diallo, Florian Makela, Dina El Hosni
 +  * Object-oriented databases with ObjectDB and ObjectBox: Amine Ayadi, Martin Gouverneur, Filipe Pereira Martins and Ethan Van Ruyskensvelde
 +  * Search Engines with XX and YY: Benjamín Bas Peralta, Davide Cisbani, Riccardo Zamuner, Guillem Samper Argelagués
 +  * Spatial raster databases with XX and YY: Yiqing Kong, Muhammad Umer Khan, Aysha Hashmi, Ooi Kah Choo
 +  * Time series databases with InfluxDB and TimescaleDB:​ M'​hamdi Zakaria, Turk Wassim, Ghorafi Moncef, El Homaidi Aymane
 +  * Vector DBMS with Pgvector and Qdrant: Hossein Aghaei Araei, Neha Chaudhary, Albar Wahab, Emmanuel MAYOUX LI
 +  * Wide-Column Stores with Apache Cassandra and ScyllaDB: Xuan Hung Le, Nafiz Nahid, Bao Anh Tran, Jianli Zhao
 +  * XML Databases with BaseX and eXist-db: Julia Segovia Quintano, Alberto Olcina Calabuig, Muhammad Suleman, Nicolas Azzi
  
-===== Topics for the current academic year ===== 
  
-  * Analytics data warehouse and Google BigQuery: Hridaya Sagar Subedi, Alp Albay 
-  * Cloud databases and Microsoft Azure: Rodaina Mohamed, Karim Maatouk 
-  * Column stores and Cassandra: Andrea Armani, Anant Gupta 
-  * Data warehouses and Apache Hive: Emir Nurmatbekov,​ Mahmudul Hasan 
-  * Document stores and MongoDB: Ledia Isaj, Fabrício Ferreira 
-  * Document stores and Couchbase: Samia Azzouzi, Brahim Amssafi 
-  * Document stores and CouchDB: Abdelilah El Majjaoui 
-  * Embedded Databases and BerkeleyDB: Ali Arous, Maria Letizia Losso 
-  * In-memory databases and Oracle TimesTen: Nathan Wolper, Kamdem Tagne Thomas Borel 
-  * Key-value stores and Redis: Ira nazarchuk, Julio Candela 
-  * Multimedia databases and Oracle: Muthi Dorel Adrian, Fan Chen 
-  * Multimodel databases and MarkLogic: Gian Marco Paldino, Piotr Rochala 
-  * Multimodel databases and Microsoft Azure Cosmos DB: Dimitrios Tsesmelis, Ricardo Holthausen Bermejo 
-  * NewSQL databases and VoltDB: Tamara Bojanic, Iva Mihajlovska 
-  * Object-oriented databases and Versant: Yi Chiau Li, Yu Hsuan Chen 
-  * Real-time databases and Firebase: Jesus Huete, Valdemar Hernández 
-  * Search Engines and Elastic Search: Haroon Rashid, Djordjije Krivokapic 
-  * Search Engines and ELK stack with Kafka: Haftamu Hailu Tefera, Ishaan Rachit Dwivedi 
-  * Streaming Databases with Apache Kafka: Nithish Sankaranarayanan,​ Gayane Vardanyan 
-  * Stream Processing and Apache Storm: Ariston Harianto Lim, Hung Nguyen 
-  * Stream processing and SQL stream: Sheida Shafiee Sarvestani, Nicolas Feron 
-  * Time series databases and InfluxDB: Yalei Li, Haonan Jin 
-  * Time series databases and TimescaleDB:​ Uchechukwu Fortune Njoku, Akash Malhotra 
-  * XML databases and BaseX: Ayman Mountasser, Mohammed Amine Belfarsi 
- 
-/*  * {{:​teaching:​infoh415:​student_projects:​2019:​azure.pdf|Cloud databases and Microsoft Azure}}: Sara Diaz, Buse Ozer */ 
 ===== Examinations from Previous Years ===== ===== Examinations from Previous Years =====
 +  * Academic year 2025-2026 
 +    * {{:​teaching:​infoh415_exam_jan26.pdf|First session}} 
 +  * Academic year 2024-2025 
 +    * {{:​teaching:​infoh415_exam_jan25.pdf|First session}} 
 +  * Academic year 2023-2024 
 +    * {{:​teaching:​infoh415:​infoh415-2024-january.pdf|First session}}
   * Academic year 2016-2017   * Academic year 2016-2017
     * {{:​teaching:​infoh415:​infoh415-2017-january.pdf|First session}}     * {{:​teaching:​infoh415:​infoh415-2017-january.pdf|First session}}
 
teaching/infoh415.1574960625.txt.gz · Last modified: 2019/11/28 18:03 by ezimanyi