]> AND Private Git Repository - cours-maths-dis.git/blob - ensembles/relnaire.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
t
[cours-maths-dis.git] / ensembles / relnaire.tex
1
2
3 \section{Définitions}
4
5 \subsection{Relations orientées et non orientées}
6
7 Exactement comme dans le cas des relations binaires, on considère une partie $G$ de l'ensemble produit cartésien de $n$ ensembles $\famn E$, soit $G\sse E_1\times E_2\times\cdots\times E_n$.
8
9 \begin{Def}[Relation $n$-aire]
10 Cette partie définit une relation $n$-aire\index{relation n-aire} entre ces ensembles. 
11 \end{Def}
12
13
14
15 \begin{Notation}
16 Pour un $n$-uplet $\famn x$ d'éléments de $E_1\times E_2\times\cdots\times E_n$, on notera $\famn x\in G$ ou ${\mathcal{R}}\famn x$ le fait que ces éléments sont en relation par la relation ${\mathcal{R}}$ de graphe $G$.
17 \end{Notation}
18
19
20
21
22
23 Comme dans le cas des relations binaires, les $n$-uplets sont ordonnés et, même si deux des ensembles $E_i$ et $E_j$ sont identiques (pour $i\neq j$), le couple d'éléments
24 $(x_i,y_j)$ est considéré comme différent du couple $(y_j,x_i)$ lorsque $x_i\neq y_j$. 
25
26
27
28 Cependant, dans la plupart des applications pratiques des relations $n$-aires, et dans toutes celles que nous verrons en tout cas, on \og étiquette les colonnes\fg{}, ce qui permet de s'affranchir de cet ordre, et de considérer ce que l'on appelle des relations
29 $n$-aires {\it non orientées\/}, dont les {\it domaines\/} sont les ensembles $\famn E$, dans un ordre non spécifié, car ils sont nommés.
30
31
32
33
34 \subsubsection{Exemple de relation ternaire orientée}
35
36
37 Soient
38
39 \begin{itemize}
40  \item $E_1=\{1,2,3,4,5,6,7,8,9\}$,
41  \item $E_2=\{1988, 1989, 1990, 1991, 1992, 1993, 1994\}$
42  \item $E_3=\{\hbox{Alsace}, \hbox{Beaujolais}, \hbox{Côtes du Rhône}\}$.
43 \end{itemize}
44
45  et soit
46
47 \begin{center}
48 $G=\{$ (3,1988,\hbox{Alsace}), (4,1991,\hbox{Alsace}), (8,1989,\hbox{Beaujolais}), (4,1989,\hbox{Côtes du Rhône}) $\}$. 
49 \end{center}
50
51
52
53
54 $G$ est le graphe d'une relation ternaire orientée qui représente une cave à vins.\\
55
56
57
58
59 On peut la représenter par le tableau :\\
60
61
62 \centerline{$\begin{array}{c|c|l}
63 3 & 1988 & \hbox{Alsace} \\
64 4 & 1991 & \hbox{Alsace} \\
65 8 & 1989 & \hbox{Beaujolais} \\
66 4 & 1989 & \hbox{Côtes du Rhône} \\ \end{array}$}
67
68 \bigskip
69
70
71 Il est évident que l'ordre des éléments du $n$-uplet élément de $G$ a une importance fondamentale, surtout lorsque l'intersection des domaines n'est pas vide.
72
73
74 Autrement dit, cette relation doit être considérée comme différente de la relation définie sur $E_3\times E_2\times E_1$ par le graphe $G'$ représenté par le tableau\\
75
76
77
78 \centerline{$\begin{array}{l|l|l}
79 \hbox{Alsace} & 1988 & 3 \cr
80 \hbox{Alsace} & 1991 & 4 \cr
81 \hbox{Beaujolais} & 1989 & 8 \cr
82 \hbox{Côtes du Rhône} & 1989 & 4 \cr\end{array}$}
83
84
85
86
87 \subsubsection{Exemple de relation ternaire non orientée}\hfill\break Pour s'affranchir de l'ordre en évitant toute ambiguïté, il faut nommer les colonnes du tableau, c'est-à-dire ajouter un ensemble d'{\it attributs\/} (ou clés, ou étiquettes) qui pourraient être ici
88 $\{$Nombre, Année, Région$\}$.
89
90
91 On obtiendrait\\
92
93 \centerline{$\begin{array}{c|c|l}
94 \hbox{Nombre} & \hbox{Année} & \hbox{Région} \cr
95 \noalign{\hrule}
96 3 & 1988 & \hbox{Alsace} \cr
97 4 & 1991 & \hbox{Alsace} \cr
98 8 & 1989 & \hbox{Beaujolais} \cr
99 4 & 1989 & \hbox{Côtes du Rhône} \cr\end{array}$}
100
101 \bigskip
102
103 Cette relation ternaire ne sera pas considérée comme différente de la relation représentée par\\
104
105
106 \centerline{$\begin{array}{l|c|c}
107 \hbox{Région} & \hbox{Année} & \hbox{Nombre} \cr
108 \noalign{\hrule}
109 \hbox{Alsace} & 1988 & 3 \cr
110 \hbox{Alsace} & 1991 & 4 \cr
111 \hbox{Beaujolais} & 1989 & 8 \cr
112 \hbox{Côtes du Rhône} & 1989 & 4 \cr\end{array}$}\psaut
113
114 \medskip
115
116 En effet, les attributs ne sont pas ordonnés, l'ensemble $\{$Région, Année, Nombre$\}$ est égal à l'ensemble $\{$Nombre, Année, Région$\}$.
117
118
119 \bigskip
120
121 Dans la suite, le terme de relation $n$-aire sera réservé aux relations non orientées.
122
123
124 \bigskip
125
126
127 On peut toujours associer à une relation $n$-aire une relation $n$-aire orientée, définie sur $D_1\times D_2\times\cdots\times D_n$, où les $D_i$ sont les domaines attachés aux attributs de $A$, énoncés dans un certain ordre.
128
129
130 Bien entendu, si les attributs sont énoncés dans un ordre différent, la relation $n$-aire orientée associée peut ne pas être la même, mais, pour une même relation $n$-aire, toutes les relations $n$-aires orientées associées se déduisent les unes des autres par une permutation sur les domaines.
131
132
133 \bigskip
134
135 C'est pourquoi on s'autorisera à utiliser l'abus de notation ${\mathcal{R}}\famn x$, pour exprimer que les $x_i$ sont en relation par la relation $n$-aire (non orientée) ${\mathcal{R}}$, en se référant à l'une quelconque des relations $n$-aires orientées associées (celle qui correspond à l'ordre des domaines $D_i$ lorsque les $x_i$ sont énoncés).
136
137
138 \begin{Notation}
139 On notera ${\mathcal{R}}[A]$ une relation $n$-aire (non orientée) d'attributs $A$.
140 \end{Notation}
141
142
143
144 \subsection{Relations équivalentes, relations égales}
145
146 \begin{Def}[Relations $n$-aires équivalentes]
147 Deux relations $n$-aires (non orientées) sont \emph{équivalentes}\index{relations n-aires!équivalentes} lorsque leurs domaines sont les mêmes et qu'il existe une permutation de ces domaines telle que les relations orientées associées sont égales (au sens de l'égalité des ensembles, puisqu'une relation $n$-aire orientée est définie comme un ensemble).
148 \end{Def}
149
150
151
152
153 \begin{Def}[Relations $n$-aires égales]
154 Deux relations $n$-aires (non orientées) sont \emph{égales}\index{relations n-aires!égale} lorsqu'elles sont équivalentes et que leurs attributs sont les mêmes. 
155 \end{Def}
156
157
158
159 \noindent
160 \begin{tabular}{ccc}
161
162 \begin{tabular}{|c|c|c|}
163 \noalign{\hrule}
164 Groupe & Nom & Age \cr
165 \noalign{\hrule}
166 1 & A & 18 \cr
167 \noalign{\hrule}
168 1 & B & 17 \cr
169 \noalign{\hrule}
170 2 & C & 18 \cr
171 \noalign{\hrule}
172 \end{tabular} 
173
174 &
175
176 \begin{tabular}{|c|c|c|}
177 \noalign{\hrule}
178 Age & Nom & Groupe \cr
179 \noalign{\hrule}
180 18 & A & 1\cr
181 \noalign{\hrule}
182 17 & B & 1\cr
183 \noalign{\hrule}
184 18 & C & 2\cr
185 \noalign{\hrule}
186 \end{tabular}
187
188 &
189
190 \begin{tabular}{|c|c|c|}
191 \noalign{\hrule}
192 Note & Matière & Nombre \cr
193 \noalign{\hrule}
194 18 & A & 1\cr
195 \noalign{\hrule}
196 17 & B & 1\cr
197 \noalign{\hrule}
198 18 & C & 2\cr
199 \noalign{\hrule}
200 \end{tabular}
201
202 \cr
203
204 Une relation ${\mathcal{R}}$
205
206 &
207
208 Une relation égale à ${\mathcal{R}}$ 
209
210 &
211
212 Une relation équivalente à ${\mathcal{R}}$
213
214 \cr
215
216 \end{tabular}
217
218
219 \bigskip
220
221 \subsection{Interprétation fonctionnelle}
222
223 Chaque ligne du tableau d'une relation $n$-aire ${\mathcal{R}}[A]$ aux attributs $A$, de domaines $\famn D$, peut être interprétée comme une application de $A$ (l'ensemble des attributs) dans $D_1\union
224 D_2\union\cdots\union D_n$.
225
226
227
228 \begin{Ex}
229 Par exemple, pour la première relation du paragraphe précédent, on peut considérer les fonctions $f_1$, $f_2$ et $f_3$ définies par $f_1(\hbox{Groupe})=1$, $f_1(\hbox{Nom})=A$, $f_1(\hbox{Age})=18$, $f_2(\hbox{Groupe})=1$, etc.
230 \end{Ex}
231
232
233
234 \subsection{SGBD}
235
236 \begin{Def}[SGBD]
237 Un Système de Gestion de Base de Données Relationnelles (SGBD) \index{SGBD} est une application informatique de définition et de travail sur des relations $n$-aires (non orientées).
238 \end{Def}
239
240
241
242
243
244 Cette application met en général à la disposition de l'utilisateur un langage (le plus souvent, SQL) qui permet 
245 \begin{itemize}
246 \item de définir les objets et leurs liens, de les modifier et d'enrichir la base de données,
247 \item de retrouver l'information contenue dans la base de données par la formulation de requêtes.
248 \end{itemize}
249
250
251
252
253 \section{Projections}
254
255 \subsection{Définitions}
256
257
258 Soit ${\mathcal{R}}[A]$ une relation $n$-aire d'attributs $A$, et $a\in A$.
259
260 On pose $A=\{a\}\union B$, et on suppose que le domaine de $a$ est $D_1$ et que les domaines des attributs de $B$ sont $D_2 \vir \ldots \vir D_n$.
261
262
263
264 \begin{Def}[Projection d'une relation]
265 La projection de la relation ${\mathcal{R}}$ suivant $a$ sur $B$, notée ${\mathcal{R}}_a$ (on autorise aussi ${\mathcal{R}}[B]$), est définie par :
266 $${\mathcal{R}}_a(x_2\vir\ldots\vir x_n)\qquad\Ssi\qquad \exi x_1\in D_1,\ {\mathcal{R}}\famn x.$$ 
267 \end{Def}
268
269
270 \begin{Rem}
271 Dans la pratique, on obtient la projection d'une relation :
272 \begin{itemize}
273  \item en supprimant la colonne de l'attribut selon lequel se fait la projection,
274  \item et en ne conservant qu'une seule occurrence de lignes qui
275 seraient devenues identiques.
276 \end{itemize}
277 \end{Rem}
278
279
280
281 \subsection{Théorème des projections}
282
283 Soit ${\mathcal{R}}[A]$ une relation $n$-aire d'attributs $A$, $a\in A$, $b\in A$ ($b\neq a$).
284
285 \begin{Th}[Théorème des projections]
286  $$\left({\mathcal{R}}_a\right)_b=\left({\mathcal{R}}_b\right)_a\ .$$
287 \end{Th}
288
289
290
291 \begin{Proof}
292 (Démonstration immédiate). 
293 \end{Proof}
294
295
296 \begin{Rem}
297 Ce dernier résultat nous autorise à considérer la projection d'une relation suivant un sous-ensemble d'attributs (et sur le complémentaire de ce sous-ensemble d'attributs). 
298 \end{Rem}
299
300
301
302 \begin{Notation}
303 On notera cette projection ${\mathcal{R}}_B$ (ou ${\mathcal{R}}[A\moins B]$) (si $B\sse A$, c'est la projection suivant $B$ de ${\mathcal{R}}$ sur $C=A\moins B$. 
304 \end{Notation}
305
306
307
308
309
310 \section{Opérations sur les relations $n$-aires}
311
312
313 \subsection{Somme et produit}
314
315 Soit ${\mathcal{R}}$ une relation d'attributs $A$ et ${\cal S}$ une relation d'attributs $B$, pour lesquelles les attributs de même nom ont même domaine.
316
317 Les relations somme ${\mathcal{R}}+{\cal S}$ et produit ${\mathcal{R}}*{\cal S}$ ont pour attributs $A\union B$.
318
319 \bigskip
320
321 Pour l'énoncé de la définition, comme l'ordre dans lequel on énonce les attributs est sans importance, on suppose que, dans $A\union B$, les éléments sont énumérés dans l'ordre suivant
322 \begin{itemize}
323 \item les attributs de $A$ qui ne sont pas dans $B$, les domaines sont $D_1\vir\ldots\vir D_p\,$,
324 \item les attributs communs à $A$ et à $B$, les domaines sont $D_{p+1}\vir\ldots\vir D_q\,$,
325 \item les attributs de $B$ qui ne sont pas dans $A$, les domaines sont $D_{q+1}\vir\ldots\vir D_n\,$.
326 \end{itemize}
327 (l'un de ces sous-ensembles peut être vide).
328
329
330 \begin{Def}
331 On a alors, par définition
332 \begin{itemize}
333  \item $({\mathcal{R}}+{\cal S}) (x_1\vir\ldots\vir x_p\vir x_{p+1}\vir\ldots\vir x_q \vir\ldots\vir x_{q+1}\vir
334 x_n)$ si et seulement si\\ $ {\mathcal{R}} (x_1\vir\ldots\vir x_q)$ ou ${\cal S} (x_{p+1}\vir\ldots\vir x_n)$,
335 \item $ ({\mathcal{R}}*{\cal S}) (x_1\vir\ldots\vir x_p\vir\ldots\vir x_q\vir\ldots\vir x_n)$ si et seulement si\\ $ {\mathcal{R}} (x_1\vir\ldots\vir x_q)$ et ${\cal S} (x_{p+1}\vir\ldots\vir x_n).$
336 \end{itemize}
337 \end{Def}
338
339  
340
341 \begin{Notation}
342 On note $\left({\mathcal{R}}+{\cal S}\right)[A\union B]$ et $\left({\mathcal{R}}*{\cal S}\right)[A\union B]$. 
343 \end{Notation}
344
345
346
347
348 \begin{Ex}
349 Le domaine de l'attribut Groupe est $\{1,2,3\}$, celui de Nom est $\{$A,B,C$\}$ et celui de Age est $\{19,20,21\}$. 
350 \end{Ex}
351
352
353 \noindent
354 \begin{tabular}{cccc}
355 \begin{tabular}{c|c}
356 Groupe & Nom \cr
357 \noalign{\hrule}
358 1 & A \cr
359 1 & B \cr
360 2 & C \cr
361 \end{tabular}
362
363 &
364
365 \begin{tabular}{c|c}
366 Groupe & Age \cr
367 \noalign{\hrule}
368 1 & 20 \cr
369 1 & 21 \cr
370 2 & 21 \cr
371 \end{tabular}
372
373 &
374
375 \begin{tabular}{c|c|c}
376 Groupe & Nom & Age \cr
377 \noalign{\hrule}
378 1 & A & 20 \cr
379 1 & A & 21 \cr
380 1 & B & 20 \cr
381 1 & B & 21 \cr
382 2 & C & 21 \cr
383 \end{tabular}
384
385 &
386
387 \begin{tabular}{c|c|c}
388 Groupe & Nom & Age \cr
389 \noalign{\hrule}
390 1 & A & 19 \cr
391 1 & A & 20 \cr
392 1 & A & 21 \cr
393 1 & B & 19 \cr
394 1 & B & 20 \cr
395 1 & B & 21 \cr
396 1 & C & 20 \cr
397 1 & C & 21 \cr
398 2 & A & 21 \cr
399 2 & B & 21 \cr
400 2 & C & 19 \cr
401 2 & C & 20 \cr
402 2 & C & 21 \cr
403 \end{tabular}
404
405 \cr
406
407 Une relation ${\mathcal{R}}$
408
409 &
410
411 Une relation ${\cal S}$
412
413 &
414
415 La relation ${\mathcal{R}}*{\cal S}$
416
417 &
418
419 La relation ${\mathcal{R}}+{\cal S}$
420
421 \cr
422
423 \end{tabular}
424
425 \subsection{Réunion et intersection}
426 C'est le cas particulier de la somme et du produit de deux relations d'attributs $A$ et $B$ dans le cas où $A=B$.
427
428
429 Donc, dans le cas où $A=B$, ${\mathcal{R}}\union{\cal S}={\cal
430 R}+{\cal S}$ et ${\mathcal{R}}\inter{\cal S}={\mathcal{R}}*{\cal S}$.
431
432
433 \begin{Notation}
434 On note donc $\left({\mathcal{R}}\union{\cal S}\right)[A]$ et $\left({\mathcal{R}}\inter{\cal S}\right)[A]$ 
435 \end{Notation}
436
437
438
439 \subsection{Produit cartésien}
440
441 Il s'agit du cas particulier du produit de deux relations dans le cas où $A\inter B=\void$.
442
443
444 Donc, dans le cas où $A\inter B=\void$, ${\mathcal{R}}\times{\cal S}={\mathcal{R}}*{\cal S}$.
445
446
447 \begin{Notation}
448 On note donc $\left({\mathcal{R}}\times{\cal S}\right)[A\union B]$. 
449 \end{Notation}
450
451
452
453 \section{Sélection d'une relation $n$-aire}
454
455 Soit ${\mathcal{R}}[A]$ une relation $n$-aire d'attributs $A$ et $F$ une formule de logique dans laquelle les variables sont des éléments de $A$ et les constantes des éléments du domaine des attributs.
456
457
458 \begin{Def}
459 La sélection de ${\mathcal{R}}$ suivant $F$ est une relation ayant les mêmes attributs $A$, notée $\left({\mathcal{R}}:F\right)[A]$
460 et telle que  ${\mathcal{R}}\famn x$ et $F\famn x$. 
461 \end{Def}
462
463
464 Autrement dit, il s'agit des éléments des domaines des attributs qui sont en relation par ${\mathcal{R}}$ et qui satisfont la formule $F$ donnée.
465
466 \begin{Ex}
467 Sur une relation d'attributs $\{\hbox{Nom}\vir\hbox{Age}\vir\hbox{Note}\}$ on pourra définir la
468 relation $[(\hbox{Age}\leqslant 19)\ \hbox{et}\ (\hbox{Note}\geqslant 16)]$ pour sélectionner les étudiants admis à s'inscrire au département d'Informatique. 
469 \end{Ex}
470
471
472
473 \section{Dépendances fonctionnelles et clés}
474
475 \subsection{Dépendances fonctionnelles}
476
477 Il s'agit, lorsque c'est possible, de remplacer une relation $n$-aire par une autre, plus simple, et sans perte d'information.\\
478
479
480  Soit ${\mathcal{R}}[A]$ une relation d'attributs $A$ telle que $A$ soit de la forme $X\union Y\union Z$.
481
482
483 On suppose pour simplifier  :
484 \begin{itemize}
485  \item que les domaines des attributs de $X$ sont $D_1\vir D_2\vir\ldots\vir D_p$,
486  \item que ceux de $Y$ sont $D_{p+1}\vir\ldots\vir D_q$
487  \item que ceux de $Z$ sont $D_{q+1}\vir\ldots\vir D_n$.
488 \end{itemize}
489
490
491 \begin{Def}[Dépendance fonctionnelle]
492 On dit que $Y$ dépend fonctionnellement de $X$ lorsque l'on a $${\mathcal{R}}(x_1\vir\ldots\vir x_p\vir x_{p+1}\vir\ldots\vir x_q\vir x_{q+1}\vir\ldots\vir x_n)$$ et $${\mathcal{R}}(x_1\vir\ldots\vir x_p\vir x'_{p+1}\vir\ldots\vir x'_q\vir x'_{q+1}\vir\ldots\vir
493 x'_n)$$ si et seulement si $$x_{p+1}=x'_{p+1}\vir\ldots\vir x_q=x'_q\,$$.
494 \end{Def}
495
496
497
498
499
500
501
502
503 \begin{Notation}
504  Dans la suite, et pour une situation du même type, on s'autorisera à utiliser les notations suivantes :
505 \begin{itemize}
506  \item $D_X$ pour $D_1\vir D_2 \vir\ldots\vir D_p$,
507  \item $D_Y$ pour $D_{p+1}\vir\ldots\vir D_q$,
508  \item $D_Z$ pour $D_{q+1}\vir\ldots\vir D_n$,
509  \item $x$ pour $(x_1\vir\ldots\vir x_p)$,
510  \item $y$ pour $(x_{p+1}\vir\ldots\vir x_q)$
511  \item et $z$ pour $(x_{q+1}\vir\ldots\vir x_n)$.
512 \end{itemize}
513 \end{Notation}
514
515
516
517 Ainsi, la condition énoncée peut s'écrire plus simplement ${\mathcal{R}}(x,y,z)$ et ${\mathcal{R}}(x,y',z')$ si et seulement si $y=y'$ (cette égalité devant être considérée comme une égalité de $n$-uplets, c'est-à-dire l'égalité composante par composante.
518
519
520 \begin{Ex}
521 Dans la relation suivante,\\
522
523 \centerline{\begin{tabular}{|c|c|c|c|}
524 \noalign{\hrule}
525 Groupe & Nom & Niveau & Age \cr
526 \noalign{\hrule}
527 1 & A & 1 & 20 \cr
528 2 & B & 3 & 21 \cr
529 1 & C & 3 & 20 \cr
530 1 & A & 3 & 20 \cr
531 3 & B & 1 & 21 \cr
532 1 & C & 1 & 20 \cr
533 2 & A & 1 & 20 \cr
534 3 & B & 2 & 21 \cr
535 1 & C & 2 & 20 \cr
536 \noalign{\hrule}
537 \end{tabular}}
538
539 \medskip
540
541 On distingue les dépendances fonctionnelles 
542 \begin{itemize}
543 \item $\{$Nom$\}\imp$  $\{$Age$\}$
544 \item $\{$Groupe , Niveau$\}\imp$  $\{$Age$\}$
545 \end{itemize}
546 \end{Ex}
547
548
549
550 \subsection{Théorème des dépendances fonctionnelles}
551
552 \begin{Th}[Théorème des dépendances fonctionnelles]
553 Si la relation ${\mathcal{R}}[A]$ d'attributs $A=X\union Y\union Z$ admet une dépendance fonctionnelle $X\imp Y$, elle est le produit de ses projections sur $X\union Y$ et $X\union Z$.
554 \end{Th}
555
556
557 \begin{Ex}
558 La relation précédente est le produit de ses deux projections ${\cal
559 R}[\{\hbox{Nom}\vir\hbox{Age}\}]$ et ${\mathcal{R}}[\{\hbox{Nom}\vir\hbox{Groupe}\vir\hbox{Niveau}\}]$.
560 \end{Ex}
561
562
563
564 \subsection{Clés}
565
566 \begin{Def}[Clé]
567 Pour une relation ${\mathcal{R}} [A]$ d'attributs $A$, une \emph{clé} \index{clé} est un sous-ensemble minimal $K$ de $A$ tel qu'il existe une dépendance fonctionnelle $C\imp A\moins K$.
568
569
570 ($K$ est un sous-ensemble minimal au sens qu'il n'y a pas de partie stricte $K'$ de $K$ pour laquelle il existe une dépendance fonctionnelle $K'\imp A\moins K'$).
571 \end{Def}
572
573 \begin{Rem}
574 Cette \og minimalité\fg{}   n'entraîne en aucune manière l'unicité de la clé pour une relation donnée. 
575 \end{Rem}
576
577 \begin{Th}
578 Pour toute relation, il est possible d'introduire un attribut dont les valeurs sont toutes différentes, et qui constitue donc une clé pour la nouvelle relation obtenue (par exemple, une numérotation). 
579 \end{Th}
580
581
582
583
584
585
586 \gsaut
587 \centerline{\x{Fin du Chapitre}}
588