Ajoute le cours bases de données
1
.vscode/ltex.dictionary.fr.txt
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
SGBD
|
||||||
|
|
@ -48,3 +48,7 @@
|
||||||
## TD
|
## TD
|
||||||
- Requêtes (2 séances)
|
- Requêtes (2 séances)
|
||||||
- Analyse de schéma, amélioration de schéma, création de petits schémas
|
- Analyse de schéma, amélioration de schéma, création de petits schémas
|
||||||
|
|
||||||
|
|
||||||
|
# Ressources
|
||||||
|
[Merise](https://memento-dev.fr/docs/merise/mld)
|
||||||
46
src/cours/CIEL1/07-bases-de-donnees/fiche-sequence.md
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# Séquence 07 - Bases de données
|
||||||
|
|
||||||
|
## Objectif
|
||||||
|
Découvrir la conception et le requêtage de bases de données.
|
||||||
|
|
||||||
|
## Pré-requis
|
||||||
|
Ligne de commande sous Linux
|
||||||
|
|
||||||
|
## Scénario pédagogique
|
||||||
|
### Démarche
|
||||||
|
|
||||||
|
Modélisation d'une base de données de bout en bout
|
||||||
|
|
||||||
|
### Organisation
|
||||||
|
#### S1 -
|
||||||
|
- **Apport de connaissances** : Dictionnaire de données + MCD + MLD
|
||||||
|
- **Activité** : Modélisation d'une base de données (MCD et MPD)
|
||||||
|
- **Structuration de connaissances** : MPD et Langage + création
|
||||||
|
- **Évaluation**
|
||||||
|
- C04 :
|
||||||
|
- Les spécifications du cahier des charges sont extraites
|
||||||
|
- C08 :
|
||||||
|
- Le travail est effectué selon les attentes exprimées de temps, de quantité ou de qualité
|
||||||
|
|
||||||
|
#### S2 -
|
||||||
|
- **Apport de connaissances** : Droits et création
|
||||||
|
- **Activité** : Création + droits + requêtes
|
||||||
|
- **Structuration de connaissances** : Requêtage simple
|
||||||
|
- **Évaluation**
|
||||||
|
- C0
|
||||||
|
- C0
|
||||||
|
|
||||||
|
#### S3 -
|
||||||
|
- **Apport de connaissances** : -
|
||||||
|
- **Activité** : Remédiation
|
||||||
|
- **Structuration de connaissances** : Requêtage avancé (jointures)
|
||||||
|
- **Évaluation**
|
||||||
|
- C0
|
||||||
|
- C0
|
||||||
|
|
||||||
|
### Évaluation
|
||||||
|
|
||||||
|
| Description | Formative | Sommative | Semaine |
|
||||||
|
| ----------- | --------- | --------- | ------- |
|
||||||
|
| Compétences | x | | 1 2 3 |
|
||||||
|
| Devoir | | x | 4 |
|
||||||
BIN
src/cours/CIEL1/07-bases-de-donnees/loueur_mcd.loo
Normal file
451
src/slides/B1/db/01_modèle_de_données.md
Normal file
|
|
@ -0,0 +1,451 @@
|
||||||
|
---
|
||||||
|
marp: true
|
||||||
|
theme: catppuccin
|
||||||
|
paginate: true
|
||||||
|
size: 4:3
|
||||||
|
transition: coverflow
|
||||||
|
footer: ''
|
||||||
|
math: katex
|
||||||
|
lang: "fr"
|
||||||
|
---
|
||||||
|
|
||||||
|
<style>
|
||||||
|
section {
|
||||||
|
font-size: 28px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
# Bases de données - Modélisation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Modélisation
|
||||||
|
|
||||||
|
Qu'est-ce que la modélisation ?
|
||||||
|
- **Analyse** et **conception** des informations
|
||||||
|
- **Représentation** de la structure des informations
|
||||||
|
|
||||||
|
Objectif :
|
||||||
|
- Identifier les **éléments** (entités) logiques
|
||||||
|
- Identifier et tracer les **dépendances** (relations) logiques entre les entités
|
||||||
|
|
||||||
|
C'est une représentation **abstraite** : on ignore les données individuelles elles-mêmes au profit de la structure
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Méthode Merise
|
||||||
|
|
||||||
|
- Méthodologie de modélisation française assez ancienne (années 70/80)
|
||||||
|
- Mais éprouvée et toujours d'actualité
|
||||||
|
- Propose plusieurs étapes sous forme de schémas
|
||||||
|
- Dictionnaire de données
|
||||||
|
- **MCD** : Modèle Conceptuel de Données
|
||||||
|
- **MLD** : Modèle Logique de Données
|
||||||
|
- **MPD** : Modèle Physique de Données
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Dictionnaire de données
|
||||||
|
|
||||||
|
- Document utilisé pour lister les informations à stocker en base
|
||||||
|
- Obtenu suite à l'analyse des besoins du client
|
||||||
|
- Simple et compréhensible de tout le monde
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### MCD - Modèle Conceptuel de Données
|
||||||
|
|
||||||
|
- Schéma utilisé pour représenter les données extraites du dictionnaire
|
||||||
|
- Regroupe par **entités** et montre les **associations** (relations)
|
||||||
|
- Reste compréhensible de tout le monde (pas de détails techniques)
|
||||||
|
- Important car la suite dépend de lui
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### MLD - Modèle Logique de Données
|
||||||
|
|
||||||
|
- Schéma qui découle directement du MCD
|
||||||
|
- Ajoute des détails techniques :
|
||||||
|
- Découpage en **tables** et **colonnes**
|
||||||
|
- **Clés**
|
||||||
|
- **Tables de jointure**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### MPD - Modèle Physique de Données
|
||||||
|
|
||||||
|
- Schéma qui représente les données de manière physique
|
||||||
|
- Tient compte des spécificités du **SGBD**
|
||||||
|
- Ajoute les **types** de données, les **index**, les **contraintes**...
|
||||||
|
|
||||||
|
- SGBD = Système de Gestion de Bases de Données
|
||||||
|
- Logiciel dédié à la gestion et manipulation des données
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Merise en détails
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
section {
|
||||||
|
font-size: 22px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
### Demande du client
|
||||||
|
|
||||||
|
Une loueur de véhicules souhaite construire une base de données pour
|
||||||
|
- Enregistrer les véhicules que ses client peuvent louer et les dates de location.
|
||||||
|
- Il veut pouvoir les joindre facilement, donc il voudra leurs noms et prénoms, ainsi qu'un numéro de téléphone.
|
||||||
|
- La loi l'oblige également à stocker le numéro du permis de conduire des conducteurs et conductrices, en cas d'infraction du code de la route.
|
||||||
|
- Par ailleurs, il souhaite savoir quel est le kilométrage des véhicules en sa possession, et leur prix journalier
|
||||||
|
- Pour finir, il veut stocker certaines informations sur les modèles qu'il a en stock pour aider les clients à choisir un véhicule (marque et modèle, nombre de places, type de véhicule, volume pour les utilitaires...)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Le dictionnaire de données
|
||||||
|
|
||||||
|
- Document qui contient les informations sur les données à stocker
|
||||||
|
- Tiré des informations données par le client
|
||||||
|
- À valider avec le client -> il doit le comprendre
|
||||||
|
- Informations du dictionnaire de données
|
||||||
|
- Nom
|
||||||
|
- Format
|
||||||
|
- Longueur
|
||||||
|
- Contraintes
|
||||||
|
- Document (le "groupe" de données)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Les formats
|
||||||
|
|
||||||
|
- **Alphabétique**
|
||||||
|
- A-Z uniquement
|
||||||
|
- **Alphanumérique**
|
||||||
|
- A-Z et 0-9, éventuellement caractères spéciaux
|
||||||
|
- **Numérique**
|
||||||
|
- Nombres entiers, flottants etc..
|
||||||
|
- **Date**
|
||||||
|
- **Logique**
|
||||||
|
- Vrai/Faux
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Les contraintes
|
||||||
|
|
||||||
|
Ce sont les contraintes du client
|
||||||
|
- Données **obligatoires**
|
||||||
|
- Données **uniques**
|
||||||
|
- Valeurs par défaut
|
||||||
|
- Etc.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
table {
|
||||||
|
font-size: 22px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
#### Dans notre exemple
|
||||||
|
|
||||||
|
**Document** : Conducteur
|
||||||
|
|
||||||
|
| Nom | Format | Longueur | Contrainte |
|
||||||
|
| ---------------------------- | -------------- | -------- | ------------------- |
|
||||||
|
| Nom | Alphabétique | 30 | Obligatoire |
|
||||||
|
| Prénom | Alphabétique | 30 | Obligatoire |
|
||||||
|
| Numéro de téléphone | Alphanumérique | 20 | Obligatoire |
|
||||||
|
| Numéro de permis de conduire | Alphanumérique | 50 | Obligatoire, Unique |
|
||||||
|
|
||||||
|
---
|
||||||
|
<style scoped>
|
||||||
|
table {
|
||||||
|
font-size: 22px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
**Document** : Véhicule
|
||||||
|
|
||||||
|
| Nom | Format | Longueur | Contrainte |
|
||||||
|
| --------------- | -------------- | -------- | ------------------- |
|
||||||
|
| Immatriculation | Alphanumérique | 30 | Obligatoire, Unique |
|
||||||
|
| Kilométrage | Numérique | - | Obligatoire |
|
||||||
|
| Prix journalier | Numérique | - | Obligatoire |
|
||||||
|
|
||||||
|
---
|
||||||
|
<style scoped>
|
||||||
|
table {
|
||||||
|
font-size: 22px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
**Document** : Modèle
|
||||||
|
|
||||||
|
| Nom | Format | Longueur | Contrainte |
|
||||||
|
| ---------------- | -------------- | -------- | -------------------------------- |
|
||||||
|
| Marque | Alphanumérique | 30 | Obligatoire |
|
||||||
|
| Modèle | Alphanumérique | 30 | Obligatoire |
|
||||||
|
| Nombre de places | Numérique | - | Obligatoire |
|
||||||
|
| Volume | Numérique | - | Obligatoire pour les utilitaires |
|
||||||
|
| Type de véhicule | Alphabétique | 30 | |
|
||||||
|
|
||||||
|
L'association marque-modèle est unique (pour simplifier l'exemple)
|
||||||
|
|
||||||
|
---
|
||||||
|
<style scoped>
|
||||||
|
table {
|
||||||
|
font-size: 22px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
**Document** : Location
|
||||||
|
|
||||||
|
| Nom | Format | Longueur | Contrainte |
|
||||||
|
| ------------- | ------ | -------- | ----------- |
|
||||||
|
| Date de début | Date | - | Obligatoire |
|
||||||
|
| Date de fin | Date | - | Obligatoire |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### MCD - Le Modèle Conceptuel de Données
|
||||||
|
|
||||||
|
- Représenter les données récupérées dans le dictionnaire
|
||||||
|
- Doit rester compréhensible par le client
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Le diagramme
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Vocabulaire
|
||||||
|
|
||||||
|
- Le diagramme possède des **entités**
|
||||||
|
- carrés jaunes
|
||||||
|
- qui sont composées d'**attributs**
|
||||||
|
- certains attributs peuvent être **uniques**
|
||||||
|
- écrit en gras
|
||||||
|
- leur valeur ne peut se retrouver qu'une seule fois
|
||||||
|
- certains attributs peuvent être **discriminants**
|
||||||
|
- écrit en gras et souligné
|
||||||
|
- ils **identifient** de manière unique une occurrence
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- Le diagramme possède des **associations**
|
||||||
|
- Bulle ovale
|
||||||
|
- Représentée par un **verbe à l'infinitif**
|
||||||
|
- Les associations ont une **cardinalité**
|
||||||
|
- Nombre d'occurrences d'une entité par rapport à une autre
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Les cardinalités
|
||||||
|
|
||||||
|
- Élément essentiel du MCD
|
||||||
|
- Définit le nombre d'occurrences d'une entité par rapport à une autre (l'entité est associée à X occurrences)
|
||||||
|
- Cardinalité est définie par deux valeurs :
|
||||||
|
- **Minimum** d'occurrences
|
||||||
|
- **Maximum** d'occurrences
|
||||||
|
- On l'écrit sous forme : **Min,Max**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- Valeurs courantes :
|
||||||
|
- **0** : signifie "0 occurrence"
|
||||||
|
- **1** : signifie "1 occurrence"
|
||||||
|
- **N** : signifie "n'importe quel nombre d'occurrences"
|
||||||
|
- Cardinalités courantes : (l'entité est associée à)
|
||||||
|
- **0,1** : Soit aucune soit une occurrence
|
||||||
|
- **1,1** : Exactement 1 occurrence
|
||||||
|
- **0,n** : N'importe quel nombre d'occurrences
|
||||||
|
- **1,n** : Au moins une occurrence
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Associations réflexives
|
||||||
|
|
||||||
|
- Certaines entités peuvent être reliées à elles-mêmes par une association
|
||||||
|
- Ce sont des **associations réflexives**
|
||||||
|
- **Exemple** : Genres de livres
|
||||||
|
- Un genre peut regouper des sous-genres plus précis
|
||||||
|
- On crée une association réflexive entre l'entité "Genre" et elle-même
|
||||||
|
- Crée une hiérarchie de genres
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Héritage
|
||||||
|
|
||||||
|
**L'héritage** va nous permettre de rassembler des propriétés identiques dans une entité commune (appelée **entitée générique**) et créer des entités plus spécialisées appelées **entitées spécialisées**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Dans notre exemple
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
section {
|
||||||
|
font-size: 22px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
#### Choix du discriminant
|
||||||
|
|
||||||
|
- Attributs peuvent identifier de manière unique un enregistrement
|
||||||
|
- **Discriminant naturel**
|
||||||
|
- Attribut appartenant à l'objet qui identifie de manière unique
|
||||||
|
- ex: numéro de sécurité sociale
|
||||||
|
- **Discriminant synthétique**
|
||||||
|
- Attribut créé de toutes pièces pour identifier l'objet
|
||||||
|
|
||||||
|
- Préférer un discriminant synthétique
|
||||||
|
- Facilite la maintenance
|
||||||
|
- Facilite les changements plus tard
|
||||||
|
- Réduit le nombre de modifications quand on change le discriminant
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### MLD - Le Modèle Logique de Données
|
||||||
|
|
||||||
|
- Le MLD est la suite logique et directe du MCD
|
||||||
|
- Il en découle directement par l'application de règles simples
|
||||||
|
- Transforme le MCD en modèle qui peut être implémenté dans un SGBD
|
||||||
|
- Ajoute des détails techniques
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Convertir les entités et attributs
|
||||||
|
|
||||||
|
- Les **entités** deviennent des **tables**
|
||||||
|
- Les **attributs discriminants** (gras soulignés) deviennent des **clés primaires**
|
||||||
|
- Clé primaire : donnée (composée d'une ou plusieurs colonnes) qui permet d'identifier de manière unique un enregistrement dans une table
|
||||||
|
- Les **attributs uniques** (gras) deviennent des **colonnes uniques**
|
||||||
|
- Les autres **attributs** deviennent des **colonnes**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Convertir les associations
|
||||||
|
|
||||||
|
Il faut se baser sur la cardinalité de chaque association.
|
||||||
|
|
||||||
|
Cas possibles (x vaut 0 ou 1) :
|
||||||
|
- (x, n) - (x, 1) : Many to One / One to Many
|
||||||
|
- (x, n) - (x, n) : Many to Many
|
||||||
|
- Associations réflexives
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### Many to One - (x, n) - (x, 1)
|
||||||
|
|
||||||
|
!!! success La règle
|
||||||
|
- On ajoute une **clé étrangère** dans la table du côté de la relation **One** (x, 1)
|
||||||
|
!!!
|
||||||
|
|
||||||
|
- La clé étrangère est la clé primaire de la table côté **Many**
|
||||||
|
- L'héritage entre dans ce cas :
|
||||||
|
- On considère qu'une entité spécialisée peut spécialiser exactement 1 entité générique (1,1)
|
||||||
|
- Une entité générique peut être spécialisée par n entités spécialisées (0,n)
|
||||||
|
- On est dans une relation (0,n) - (1,1)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
###### Exemple Many to One
|
||||||
|
|
||||||
|
| MCD | MLD |
|
||||||
|
| -------------------------------------------- | ---------------------------------------------- |
|
||||||
|
|  |  |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
###### Exemple héritage
|
||||||
|
|
||||||
|
| MCD | MLD |
|
||||||
|
| ---------------------------------------------------- | ---------------------------------------------------- |
|
||||||
|
|  |  |
|
||||||
|
---
|
||||||
|
|
||||||
|
##### Many to Many
|
||||||
|
|
||||||
|
- Dans ce cas impossible de stocker une clé étrangère dans l'une des deux tables : il faudrait pouvoir stocker des listes de clés.
|
||||||
|
|
||||||
|
!!! success La règle
|
||||||
|
On crée une **table de jointure** qui va relier les deux tables
|
||||||
|
!!!
|
||||||
|
|
||||||
|
- **Nom** : composé des deux tables qu'elle relie, avec le nom de l'association netre deux : `entity1_action_entity2`
|
||||||
|
- **Colonnes** : Clés étrangères des deux tables qu'elle relie + autres colonnes de la relation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
###### Exemple
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### Associations réflexives
|
||||||
|
|
||||||
|
Dans ce cas on applique exactement les mêmes règles :
|
||||||
|
- Si la relation est **Many to One** : on ajoute une **clé étrangère**
|
||||||
|
- qui sera la clé primaire de la même table
|
||||||
|
- Si la relation est **Many to Many** : on ajoute une **table de jointure**
|
||||||
|
- qui contiendra des clés primaires de la table
|
||||||
|
---
|
||||||
|
###### Exemple association réflexive Many to One
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
###### Exemple association réflexive Many to Many
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### Associations avec plus de deux tables
|
||||||
|
|
||||||
|
!!! success La règle
|
||||||
|
On crée une **table de jointure** qui va relier toutes les tables
|
||||||
|
!!!
|
||||||
|
|
||||||
|
| MCD | MLD |
|
||||||
|
| ------------------------------------------- | ----------------------------------------- |
|
||||||
|
|||
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### Cas particuliers
|
||||||
|
|
||||||
|
- (0, 1) - (1, 1) : On utilisera une clé étrangère
|
||||||
|
- comme relation Many to One où n = 1
|
||||||
|
- (1, 1) - (1, 1) : Ce type de relation n'a pas de sens
|
||||||
|
- Si cela arrive c'est que vous avez découpé en deux entités ce qui aurait dû n'en faire qu'une
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Dans notre exemple
|
||||||
|
|
||||||
|
| MCD | MLD |
|
||||||
|
| ------------------------------------------- | ----------------------------------------- |
|
||||||
|
|  |  |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## MPD - Modèle Physique de données
|
||||||
BIN
src/slides/B1/db/images/ex-mcd2.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
src/slides/B1/db/images/ex-mld.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
src/slides/B1/db/images/heritage-mcd.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/slides/B1/db/images/heritage-mld.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
src/slides/B1/db/images/heritage.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
src/slides/B1/db/images/many-to-one-mcd.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
src/slides/B1/db/images/many-to-one-mld.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/slides/B1/db/images/manytomany-mcd.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/slides/B1/db/images/manytomany-mld.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
src/slides/B1/db/images/mcd-base.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
src/slides/B1/db/images/mcd-id.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
src/slides/B1/db/images/mcd.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
src/slides/B1/db/images/reflexive-many-mcd.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
src/slides/B1/db/images/reflexive-many-mld.png
Normal file
|
After Width: | Height: | Size: 5 KiB |
BIN
src/slides/B1/db/images/reflexive-mcd.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
src/slides/B1/db/images/reflexive-mld.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
src/slides/B1/db/images/ternaire-mcd.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
src/slides/B1/db/images/ternaire-mld.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |