Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
public:std-3:cm1:aspect_logique:2.2.3_dependances_fonctionnelles [2016/09/02 16:55] – edauce | public:std-3:cm1:aspect_logique:2.2.3_dependances_fonctionnelles [2016/09/06 14:27] (Version actuelle) – edauce | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====2.2.3 Dépendances fonctionnelles==== | ||
+ | |||
+ | * Au sein d'un schéma $R$, | ||
+ | * Il peut exister un ensemble de contraintes, | ||
+ | * portant sur les attributs (plus précisément sur les valeurs prises par les attributs). | ||
+ | * L' | ||
+ | * 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”) | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | **Dépendance fonctionnelle** | ||
+ | |||
+ | * Soit $r$ une relation définie selon $R(A_1, | ||
+ | * Soient $X$ et $Y$ deux sous-ensembles de $R$ | ||
+ | * On dit que la relation $r$ définit une // | ||
+ | * notée $X \stackrel{r}{\rightarrow} Y$ | ||
+ | * si les valeurs de $r$ permettent de définir une fonction de $d(X)$ vers $d(Y)$. | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | **__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. | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | **__Exemple 2__** : | ||
+ | |||
+ | * Soit le schéma : | ||
+ | * **Commande** (num_client, | ||
+ | * et l’ensemble de contraintes | ||
+ | $$ \begin{array}{rl}F &= \{\\ | ||
+ | & \text{num_client, | ||
+ | & \text{num_article, | ||
+ | &\} | ||
+ | \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. | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | **__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)// | ||
+ | * “// | ||
+ | |||
+ | </ | ||
+ | |||
+ | < | ||
+ | **Exercice :** | ||
+ | Soit le schéma : | ||
+ | |||
+ | * **Réservation**(code_appareil, | ||
+ | |||
+ | 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, | ||
+ | * 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__ : | ||
+ | __Up__ : 2.2 [[public: | ||
+ | __Next__ : [[public: | ||