Dictionnaire de données et dépendances fonctionnelles
Lister toutes les données dans un dictionnaire (nom, type, taille, règle), puis trouver qui « détermine » qui avec le graphe des dépendances fonctionnelles.
1Situer
L'analyse de Souk Atlas a donné une longue liste de mots : nom du client, prix, quantité, date... Mais « nom » de quoi ? Un client et un produit ont tous les deux un nom. Le prix est-il celui du catalogue ou celui payé le jour de la commande ? Le dictionnaire de données met de l'ordre dans cette liste, et les dépendances fonctionnelles disent comment les données sont liées entre elles.
2Comprendre
Le graphe des dépendances fonctionnelles
On place d'abord les identifiants : id_client, id_ville, id_commande, id_produit.
1 / 5
Le dictionnaire de données
Chaque donnée reçoit un code sans ambiguïté : on n’écrit pas « nom » mais nom_client et nom_produit.
Code
Signification
Type
Taille
Règle
id_client
numéro du client
Entier
unique
nom_client
nom de famille
Texte
50
obligatoire
email_client
adresse email
Texte
100
unique, peut manquer
id_produit
numéro du produit
Entier
unique
prix_catalogue
prix actuel du produit
Décimal
8,2
> 0
date_commande
jour de la commande
Date
obligatoire
quantite
nombre de pièces commandées
Entier
> 0
Les dépendances fonctionnelles
Pour tester une dépendance, on pose la question : « si je connais A, est-ce que je connais une seule valeur de B ? »
Placer les identifiants (id_client, id_produit, id_commande…) : ce sont les sources des flèches.
Tracer les flèches vers les données qu’ils déterminent.
Retirer les flèches qu’on peut déduire (transitivité) : si id_client → id_ville et id_ville → nom_ville, la flèche id_client → nom_ville est inutile.
Chaque identifiant avec ses flèches deviendra une entité du modèle conceptuel (leçon suivante), et chaque dépendance à partie gauche composée deviendra une association.
Exemple simple
La carte nationale (CIN)
Quand on connaît le numéro de CIN, on connaît le nom, le prénom et la date de naissance de la personne. On dit que le numéro de CIN « détermine » ces informations : c'est une dépendance fonctionnelle.
num_cin → nom, prenom, date_naissance
Exemple simple
Le prénom ne suffit pas
Connaître le prénom « Youssef » ne donne pas une seule date de naissance : il y a des milliers de Youssef. Le prénom ne détermine donc pas la date de naissance.
prenom → date_naissance ✖ (faux)
Publicité
3Manipuler
Pour la boutique Souk Atlas, chaque phrase propose une dépendance fonctionnelle. Est-elle vraie (une seule valeur possible à droite) ou fausse ? Vérifiez ensuite vos réponses.
id_client → email_client
nom_ville → id_client
id_produit → prix_catalogue
id_commande → date_commande
id_commande → id_produit (une commande peut contenir plusieurs produits)
(id_commande, id_produit) → quantite
id_produit → nom_categorie
prenom_client → id_client
4Pratiquer
Exercice 1 · Compléter le dictionnaire
Ajoutez au dictionnaire de Souk Atlas les lignes pour : la date d'inscription d'un client, le stock d'un produit, le statut d'une commande.
Voir le corrigé
Code | Signification | Type | Taille | Règle
date_inscription | date d'inscription | Date | | obligatoire
stock_produit | pièces en stock | Entier | | >= 0, 0 par défaut
statut_commande | état de la commande | Texte (liste)| 12 | en attente, payée,
| | | | livrée, annulée
Exercice 2 · Trouver la source
Données : num_stagiaire, nom_stagiaire, code_groupe, nom_filiere, code_filiere. Un stagiaire est dans un seul groupe, un groupe dans une seule filière. Écrivez les dépendances fonctionnelles.
Faut-il mettre « montant_total_commande » dans le dictionnaire de données ? Pourquoi ?
Voir le corrigé
Non : c'est une donnée calculée (somme des quantité × prix
des lignes). On la note à part, car on la calcule avec une
requête au lieu de la stocker. Sinon elle risque de devenir fausse.