2.2.3 Dépendances fonctionnelles
- Au sein d'un schéma $R$,
- Il peut exister un ensemble de contraintes, noté $F$,
- portant sur les attributs (plus précisément sur les valeurs prises par les attributs).
- L'ensemble F est indépendant de R.
- On parle de contraintes d’intégrité.
- Ces contraintes s’expriment sous la forme de dépendances fonctionnelles.
Rappels d’algèbre de base:
- Relation binaire : une relation binaire $r$ portant sur deux domaines $A$ et $B$:
- est un sous-ensemble du produit cartésien $A \times B$.
- si $(a,b) \in r$, on note parfois $a r b$ ce qui signifie “a est en relation avec b”.
- Fonction : une fonction $f : A \rightarrow B$ est une relation binaire sur $A \times B$ telle que
- pour tout $a \in A$,
- il existe un unique $b$ tel que $(a,b) \in f$.
- On note $b=f(a)$ ,
- ce qui signifie qu'au sein de la relation $f$, $b$ est déterminé de façon unique par le choix de $a$ (autrement dit : “b dépend de a”)
Dépendance fonctionnelle
- Soit $r$ une relation définie selon $R(A_1,...,A_m)$
- Soient $X$ et $Y$ deux sous-ensembles de $R$
- On dit que la relation $r$ définit une dépendance fonctionnelle de $X$ vers $Y$,
- notée $X \stackrel{r}{\rightarrow} Y$
- si les valeurs de $r$ permettent de définir une fonction de $d(X)$ vers $d(Y)$.
Exemple 1 :
Soit la relation $r$:
A | B | C |
---|---|---|
1 | a | e |
2 | b | f |
2 | c | f |
3 | d | k |
4 | d | k |
- On a les dépendances suivantes :
- $A \rightarrow C$
- $B \rightarrow C$
- mais pas : $A \rightarrow B$, $B \rightarrow A$, ni $C \rightarrow A$
- On a aussi :
- $A,B \rightarrow C$
- mais pas : $B,C \rightarrow A$, ni $A,C \rightarrow B$, etc.
Exemple 2 :
- Soit le schéma :
- Commande (num_client, quantité, prix, date, num_article)
- et l’ensemble de contraintes
$$ \begin{array}{rl}F &= \{\\ & \text{num_client, date} \rightarrow \text{num_article, quantité, prix} \\ & \text{num_article, quantité} \rightarrow \text{prix} \\ &\} \end{array} $$
- La première contrainte indique qu'il ne peut y avoir deux factures émises pour un même client à une date donnée.
- La seconde contrainte indique que le prix payé dépend de l’article et de la quantité commandée.
Exemple 3 :
- Soit le schéma :
- Ouvrage (titre, auteur, éditeur, prix, date_edition)
- et la contrainte :
- {titre, auteur, éditeur → prix, date_édition}
La contrainte signifie :
- “pour une oeuvre chez un certain éditeur, une seule édition est possible (pas de réédition à une date ultérieure)”
- “politique du prix unique”
Exercice :
Soit le schéma :
- Réservation(code_appareil, date, heure, salle)
Exprimer la dépendance fonctionnelle :
- « Un appareil ne peut pas être utilisé dans deux locaux différents au même moment »
- Il importe donc de bien réfléchir, au moment de l'étape de conception,
- du réalisme et du caractère limitant de certaines dépendances fonctionnelles,
- et du caractère éventuellement limitant du choix des attributs.
- Ainsi, le schéma décrivant les commandes (exemple 2)
- ne permet pas de commander des articles de nature différente au sein d'une même commande
- (un client, pour commander deux rateaux et une truelle, doit donc effectuer deux commandes, qui plus est à des dates différentes!).
Previous :2.2.2 Relation Up : 2.2 Aspect logique Next : 2.2.4 Clé d'une relation