2023-2024 / INFO0009-2

Database (general organisation)

Duration

26h Th, 26h Pr, 25h Proj.

Number of credits

 Bachelor of Science (BSc) in Engineering5 crédits 
 Bachelor of Science (BSc) in Computer Science5 crédits 
 Master of Science (MSc) in Data Science5 crédits 
 Master of Science (MSc) in Data Science and Engineering5 crédits 
 Master in bio-informatics and modelling (120 ECTS)5 crédits 
 Master in geography: geomatics (120 ECTS)5 crédits 
 Master in mathematics (120 ECTS)6 crédits 

Lecturer

Christophe Debruyne

Language(s) of instruction

French language

Organisation and examination

Teaching in the second semester

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

The course content is divided into 11 chapters organized into 4 parts.

Part 1: Introduction to Databases and Database Design

Chapter 01: Introduction and Entity-Relationship Model.

  • Definition of a database and introduction to jargon.
  • The entity-relationship model for representing a UoD (in a graphical way).
Part 2: Implementation -- Relational Model (theory)

Chapter 02: The Relational Model and Relational Algebra

  • The relational model as the theoretical basis of relational databases.
  • A translation of the entity-relationship model into a relational model.
  • Relational algebra as the query language of the relational model
Chapter 03: The Theory of Dependencies and the Normalization of Relations

  • Definitions of update anomalies, functional dependencies and normal forms.
  • Normalization process to avoid update anomalies.
Part 3: Implementation -- Relational Model (Implementation and Implementation)

Chapter 04: Relational Databases in Practice: Query and Update Languages

  • Relational model and relational algebra in practice
  • SQL Data Query Language (DQL) for querying data
  • SQL Data Manipulation Language (DML) to manipulate data
Chapter 05: Relational Databases in Practice: Implementation and Use

  • SQL Data Definition Language (DDL) to create the schemas.
  • SQL Data Control Language (DCL) to manage users and privileges.
Chapter 06: Storage Management

  • Storage Devices and Redundant Array of Independent Disks (RAID) Configurations
  • Approaches to storing data, as records, in files
Chapter 07: Access Methods

  • Find records in files using index files
  • Comparison of different indexing techniques
Chapter 08: Query Processing and Optimization

  • Query planning, query optimization, and query cost
Chapter 09: Transaction Management

  • Defining transactions and concurrent access to databases
  • SQL Transaction Control Language (TCL) to declare and manage transactions.
Part 4: Implementation -- Other Models

Chapter 10: Deductive Databases

  • Extend relational databases with recursion and negation
  • The Datalog deductive database language
  • Translating the entity-relationship model into Datalog
Chapter 11: XML

  • eXtensible Markup Language (XML)
  • XML Data Type Definition (DTD) and XML Schema Definition (XSD) schema languages
  • Translation of the entity-relationship model into DTD and XSD.

Learning outcomes of the learning unit

The objective of the course is the acquisition of the knowledge and the technical mastery necessary for the realization of computer systems centered on a database. At the end of the course, you will:

  • Master the terminology and jargon related to (relational) databases,
  • Be able to create a database on a small or medium scale,
  • Be able to create an application using a database, and
  • Have an in-depth knowledge of the characteristics of DBMSs.

This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, III.3, V.1, VI.1, VI.2, VII.1, VII.4, VII.6 of the BSc in engineering.

This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, III.3, V.1, VI.1, VI.2, VII.1, VII.4, VII.6 of the MSc in biomedical engineering.

Prerequisite knowledge and skills

Databases rely on many areas of computer science: formal logic, data structures, operating systems, programming languages, etc. To take this database course, it is imperative that you:

  • are proficient in Boolean algebra;
  • are proficient in using operating systems (e.g., using a terminal);
  • know about operating systems; and
  • are proficient in (procedural) programming.
This course does not devote time to covering these skills. If necessary, the teaching team will provide references on eCampus.

The prerequisite or co-required units are presented within each program.

Planned learning activities and teaching methods

The database course organizes four key learning events, three of which are linked to theory, practice, and project hours.

Theory: For the theory, knowledge will be transmitted based on a lecture supported by slides. You also have access to alternatives based on the same principle of transmission: a reference book and video recordings of the lessons. Small debates or discussions are sporadically organized during the presentations to deepen the understanding of certain aspects. These debates can also be used to introduce a new topic in a chapter.

Practical work: Each session begins with a simple exercise entirely developed by the teaching team. We expect you to follow each of these steps and ask us questions if necessary. Then you will perform training exercises. These exercises are intended to train you in the use of the techniques seen in class. Some practice sessions give you an environment in which to test your solutions. The solutions to these exercises are made available to you after the session.

Project: The goal of this project is to design and implement a database and develop a web application that communicates with this database. The assistant and I are here to guide and support you. Unlike the exercises, where solutions are given, you will only be guided. The project is divided into two parts.

  • The first part begins in early March and ends about 3 weeks later, and consists of the realization of an entity-relationship model, the conversion to the relational model, and possibly normalization. This part will be done in a team of 3 students. Not only is the project more challenging (i.e., larger in size) than the exercises covered in class, but you will also gain hands-on experience in collaborative modeling. One of the biggest challenges in the field is making sure everyone agrees on a model and the meaning of the labels you choose for entities, relationships, and attributes.
  • The second part begins after the deadline of the first part and ends at the beginning of May. Based on the work carried out in the first part, this involves the concrete creation of the database and its Web interface. An entity-relationship model and data set will be provided. This part will be done in a team of 3 students. While you receive sample code that interacts with another database, you will need to copy and adapt this code to the needs of the project and the database you need to implement. Some of these needs are simple, but others require integrating knowledge and skills acquired during theoretical and practical sessions. Tasks can be easily divided between you. You will work in a team because it allows you to understand and evaluate the work of others. The process of understanding and evaluating the work of others, and therefore collaborating towards a cohesive whole, is a vital skill in the industry.
Apart from the courses and the project, there are meta-reflection events. The goal of meta-reflection is to understand where you are in learning the course material.

  • The first type of activity is the overall feedback on the projects (common errors, observations, etc.). The global feedback also includes statistics about the grades and the session invites you to ask questions or open the discussion.
  • The second type of activity is training polling. These questions (not mandatory) prepare you for the exam. After this question, I share sample solutions and we discuss the errors you want to share. You are invited to discuss and correct any errors made. I explain how the solutions are evaluated and scored during the exam.

Mode of delivery (face to face, distance learning, hybrid learning)

2nd semester- face-to-face

Recommended or required readings

The syllabus is compulsory. Information about course organization, course content, course objectives and course assessment can be found on this resource.

Slides are a required resource. Each chapter is accompanied by a detailed and complete slideshow. It is possible to study this course using only the slides, but you are encouraged to combine this with class attendance or the lecture recordings. Face-to-face lessons or recordings explain again, or illustrate certain points from different angles.

For the project, there is a tutorial on using Git, Docker, PHP, HTML, and MySQL. This tutorial, available in the form of slides, is exhaustive enough to carry out your project.

Exercise materials are highly recommended. The theoretical sessions introduce examples and these examples correspond to the (types of) exercises that we will approach during the practical work. However, the exercises can introduce new elements. These may include new operators, more elaborate or difficult examples, technical details, or special cases. Solutions will be available after the exercises, but you are strongly encouraged to attend and review those in preparation for the exam. This exercise also prepares you for the realization of your project.

Past exam questions, sample exam questions and project rubrics are highly recommended. All of these resources are made available, in due course, on eCampus. Although these are discussed in class, you will need to consult them to get a concrete idea of the expectations.

The reference book is optional. "Silberschatz, Abraham, Henry F. Korth, and Shashank Sudarshan. Database system concepts. Ed. 7. New York: McGraw-Hill, 2019." Or the previous edition, as we only cover database basics. While the course material developed for this course is primarily based on this book, the course material has introduced the topics in a different order and presented them differently. For example, the book uses schematic notation, which is uncommon in the industry. However, this book may be useful for students who wish to learn the material at their own pace, in English, or who wish to revisit chapters differently. Copies of this book are available at the library. The authors have also kindly provided learning materials based on this book on a dedicated webpage (https://www.db-book.com/).

Video recordings are optional. The individual chapters are divided into logical parts. For each part, a video recording is available on YouTube. Links to YouTube videos are available on eCampus under each chapter. These videos are an alternative to live lessons.

Additional references shared on eCampus are optional. For some chapters, there are links to resources and articles. These are intended to provide additional guidance or (historical) context for those interested.

MySQL documentation is highly recommended for the project. Although we cover many functions in the course, having the MySQL documentation handy can be useful for the project. You can complete the project without additional documentation, but the documentation describes a set of functions that may be useful. If an exam question were to rely on a function not covered in class, that function would be described in the statement.

Exam(s) in session

Any session

- In-person

written exam ( open-ended questions )

Other : Project


Additional information:

project grade (40%), written exam (60%).

Amongst the 40% for the project, the first part is worth 10% and the second part 30%.

This project is mandatory. A student who would not have submitted anything for either part will automatically obtain an absence grade (A) for the totality of the course.

Students who failed the first part of the project will receive a new assignment. Students who failed the second part of the project may submit a revised version.

Work placement(s)

Organisational remarks and main changes to the course

More information about this course can be found at eCampus.

Contacts

Lecturer: Christophe Debruyne

Association of one or more MOOCs