diff --git a/infotro/README.md b/infotro/README.md
index 8fc7b3b..9c68185 100644
--- a/infotro/README.md
+++ b/infotro/README.md
@@ -13,6 +13,7 @@
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
- [Protocol development](/infotro/SDi/protocol_development.md)
- [Bluetooth](/infotro/SDi/bluetooth.md)
+- [Database](/infotro/SDi/database.md)
## [Eln - Électronique](/infotro/Eln/)
- [AD/DA](/infotro/Eln/ADDA)
diff --git a/infotro/SDi/README.md b/infotro/SDi/README.md
index 70b8805..e14763b 100644
--- a/infotro/SDi/README.md
+++ b/infotro/SDi/README.md
@@ -5,4 +5,5 @@ SDi - Système Distribué
- [Transmission process](/infotro/SDi/transmission_process.md)
- [IOT Technologies](/infotro/SDi/iot_technologies.md)
- [Protocol development](/infotro/SDi/protocol_development.md)
-- [Bluetooth](/infotro/SDi/bluetooth.md)
\ No newline at end of file
+- [Bluetooth](/infotro/SDi/bluetooth.md)
+- [Database](/infotro/SDi/database.md)
\ No newline at end of file
diff --git a/infotro/SDi/database.md b/infotro/SDi/database.md
new file mode 100644
index 0000000..085ca83
--- /dev/null
+++ b/infotro/SDi/database.md
@@ -0,0 +1,30 @@
+
+
+[Lab about databases and SQL](/infotro/SDi/labs/database/README.md).
+
+# Relational database
+Lorsque l'on fait une database, on peut représenter des objets de 3 manières différentes :
+1. Avec des valeurs `NULL`:
+ - Une table pour tous les attributs de la classe parents et tous les enfants.
+ - Les attributs des enfants qui ne sont pas dans la table sont `NULL`.
+

+2. En style Orienté Objet:
+ - Une table pour chaque classe.
+ - Chaque table a seulement ces attributs spécifiques.
+ - Les tables sont liées par des clés étrangères.
+

+3. En style Relationnel:
+ - Une table pour chaque classe.
+ - Chaque table à tous les attributs de la classe parente et de l'enfant.
+

+
+## Clés
+- **Clé primaire** : identifie de manière unique une ligne dans une table (colonne unique ou combinaison unique).
+- **Clé étrangère** : référence sur une clé primaire d'une table.
+
+## Suppression
+- **NO ACTION** : empêche la suppression si des lignes sont liées.
+- **SET NULL** : met à `NULL` les valeurs liées.
+- **CASCADE** : supprime les lignes liées.
diff --git a/infotro/SDi/medias/database-1_null.png b/infotro/SDi/medias/database-1_null.png
new file mode 100644
index 0000000..fa86488
Binary files /dev/null and b/infotro/SDi/medias/database-1_null.png differ
diff --git a/infotro/SDi/medias/database-2_object.png b/infotro/SDi/medias/database-2_object.png
new file mode 100644
index 0000000..23c7ce7
Binary files /dev/null and b/infotro/SDi/medias/database-2_object.png differ
diff --git a/infotro/SDi/medias/database-3_relation.png b/infotro/SDi/medias/database-3_relation.png
new file mode 100644
index 0000000..85b0b9e
Binary files /dev/null and b/infotro/SDi/medias/database-3_relation.png differ
diff --git a/infotro/_navbar.md b/infotro/_navbar.md
index 8f0eb82..7b9947e 100644
--- a/infotro/_navbar.md
+++ b/infotro/_navbar.md
@@ -9,6 +9,7 @@
* [IOT Technologies](/infotro/SDi/iot_technologies.md)
* [Protocol development](/infotro/SDi/protocol_development.md)
* [Bluetooth](/infotro/SDi/bluetooth.md)
+ * [Database](/infotro/SDi/database.md)
* [Eln - Électronique](/infotro/Eln/)
* [AD/DA](/infotro/Eln/ADDA)
* [Signaux et échantillonnage](/infotro/Eln/SignauxEtEchantillonnage)