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 @@ +

+Database +

+ +[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`. +
![Database_style_null](medias/database-1_null.png) +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. +
![Database_style_object](medias/database-2_object.png) +3. En style Relationnel: + - Une table pour chaque classe. + - Chaque table à tous les attributs de la classe parente et de l'enfant. +
![Database_style_relation](medias/database-3_relation.png) + +## 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)