• Aucun résultat trouvé

ENSEMBLES ET RELATIONS ENTRE LES ELEMENTS

A - Théorie

1 – Notion de tuple Définition d’un couple

En mathématiques, un couple de deux objets est un nouvel objet constitué par ces deux objets dans un ordre déterminé.

Un couple se représente ainsi : C = (e1, e2). Exemple : (3, 4)

Par définition, un couple est ordonné et donc : (e1, e2) != (e2, e1). Exemple : (3,4) != (4, 3).

Chaque objet du couple est appelé « composant ».

Différences entre un couple et un ensemble

Formalisme

Un couple se représente avec des parenthèses : C = (e1, e2) Un ensemble se représente avec des accolades : E = {e1, e2 }

On peut mettre des « , » ou des « ; » entre deux objets. Toutefois, on privilégie les virgules pour séparer les objets d’un couple et les points-virgules pour séparer les éléments d’un ensemble.

Sémantique de l’ensemble

Un ensemble est une réunion d’objets. Les éléments d’un ensemble sont des objets de même nature. Autrement dit : ∀x  E, on peut dire x « est un » E

.

Sémantique du couple

Un couple est un objet constitué par 2 autres objets qui sont des composants du couple.

Les composant d’un couple peuvent appartenir à des ensembles distincts. Par exemple, dans le couple (« toto », 18). « toto » est un prénom. « toto »  Ensemble des prénoms. 18 est un âge.

18  [0, 120].

On peut définir les objets élèves comme étant des couples dont la première composante est un prénom et la deuxième un âge.

On peut alors définir un ensemble d’élèves. Par exemple : E = { (toto, 18), (titi, 19), (tutu, 18) }.

Ordre

Un ensemble n’a pas d’ordre : {e1, e2 } = {e2, e1}

Un couple est ordonné : (e1, e2) != (e2, e1)

Doublon

Un couple peut être constitué de doublons : (e1, e1) est un couple conforme.

Un ensemble ne contient pas de doublon : {e1, e1} est un ensemble non conforme. Il s’agit en

Notion de tuple

Présentation

Un n-uplet ou « tuple » est une généralisation de la notion de couple.

Un n-uplet ou « tuple » de n objets est un nouvel objet constitué par ces n objets dans un ordre déterminé.

Chaque partie du tuple est appelée « composant » du tuple. On peut aussi parler d’attribut.

Un n-uplet ou « tuple » se représente ainsi : T = (e1, e2, …, en)

Un tuple à 2 composants est un couple, à 3 composants un triplet, à 4 un quadruplet, etc.

Un ensemble à 2 éléments est une paire, à 3 éléments un trio, à 4 un quartet, etc.

Exemple

Un client avec son numéro, son nom et son adresse mail constitue un tuple à 3 caractéristiques, c’est-à-dire un triplet : (1, toto, toto@ gmail.com )

Notation matricielle

Un ensemble E = {e1, e2, e3} peut se représenter de façon matricielle comme un vecteur colonne (une matrice à une colonne) :

E3,1 = (e1 e2 e3

)

Un ensemble F = { (1 ; 2 ; 0) ; (2 ; 0 ; -2) ; (3 ; 1 ; 4)} dont les éléments sont des tuples, ici des triplets, peut se représenter de façon matricielle :

F3,3 = (1 2 0 2 0 −2 3 1 4

)

On peut aussi le représenter comme un vecteur colonne constitué de triplets : G3,1 = (

La concaténation de 2 tuples est un tuple constitué de tous les composants des 2 tuples, dans l’ordre.

La concaténation du triplet (1, 2 , 3) et du couple (4, 5) c’est le quintuplet (1, 2, 3, 4, 5).

Etant donné que (1,2,3,4,5) != (4,5,1,2,3), la concaténation n’est pas commutative.

Applications en informatique

Base de données

Une base de données contient des tables du type de tableau excel.

Chaque tableau est un ensemble et chaque ligne du tableau est un élément de l’ensemble.

L’ordre des lignes n’a pas d’importances.

Chaque ligne est une tuple.

Une table contient donc un ensemble de tuples.

Chaque colonne correspond à un composant du tuple.

Dans un tuple, l’ordre des attributs est significatif.

Par exemple, si e1 = (1, « toto », « ingénieur »), chaque composant à une signification particulière.

On donne un nom à chaque composant du tuple, qu’on appelle « attribut ».

Le 1, c’est l’id. « toto » c’est le nom. « ingénieur » c’est le métier).

On accède à un composant en passant par l’élément et en suffixant le composant : tuple1.nom.

Programmation objet

Une classe définit un concept. On la note avec une majuscule en premier : Chat

Un objet est une instance d’une classe : un objet « tombe sous le concept » de sa classe.

Un objet est noté avec une minuscule en premier : chat.

On peut se doter d’une collection d’objets : un tableau, une liste, un arbre, etc.

Une collection, c’est un ensemble.

2 – Produit cartésien

Produit cartésien de deux ensembles

Présentation

Soit E et F deux ensembles de tuples.

E  F = c’est l’ensemble des tuples constitués par la concaténation de chaque tuple de E avec chaque tuple de F.

E  F = { (e, f) / e  E et f  F }

Cardinal d’un produit cartésien card ( E  F ) = card ( E )  card ( F )

Exemple 1

Soit deux ensembles d’éléments simples E et F.

E = {1 ; 2} F = {1 ; 2 ; 3} E X F = { (1,1), (1,2), (1,3), (2,1), (2,3) } E X F est un ensemble de couples. Card (E X F) = 2  3 = 6

Représentation avec des tableaux

E F G = E  F

Soit E un ensemble de couples et F un ensemble de triplets.

E = { (1,2) ; (3,4) } F = { (1,2,3) ; (4,5,6) ; (7,8,9) }

E X F = { (1,2,1,2,3), (1,2, 4,5,6), (1,2,7,8,9), (3,4,1,2,3), (3,4, 4,5,6), (3,4, 7,8,9)}

E X F est un ensemble de quintuplets. Card (E X F) = 2  3 = 6 – Représentation avec des tableaux

E F G= E F

3 – Relations entre les objets de 2 ensembles Relation binaire

On appelle relation binaire la relation entre les objets de 2 ensembles.

Schéma sagittal

Soit L un ensemble de lions. L = {l1, l2, l3, l4}

Soit G un ensemble de gazelles. G = {g1, g2, g3}

On s’intéresse à la relation : « manger ». Les lions mangent les gazelles.

On peut décrire la situation par un « schéma sagittal » (sagitta veut dire flèche en latin)

Lions manger Gazelles

0.* 0.*

Sens de la relation

La relation a un sens : il y a une flèche. La flèche permet de lire le schéma : Les lions mangent les gazelles (et non pas le contraire).

Lions est l’ensemble de départ. Gazelles est l’ensemble d’arrivée.

Notion de cardinalité

0.* représente la « cardinalité » de la relation.

La première cardinalité nous dit combien de relations partent chaque lion vers les gazelles. 0 veut dire qu’il peut y avoir 0 relation pour un élément (l5 n’a pas de relation). « * » veut dire qu’il peut y avoir plus de 1 relation pour un élément (l2 et l4 ont deux relations).

La deuxième cardinalité nous dit combien de relations partent chaque gazelle vers les lions. 0 veut dire qu’il peut y avoir 0 relation pour un élément (g4 n’a pas de relation). « * » veut dire qu’il peut y avoir plus de 1 relation pour un élément (g2 a 3 relations et g1 en a 2).

On dit : minimum 0, maximum plusieurs (ou N).

l1 l2 l3 l4 l5

g1 g2 g3 g4

Relation et produit cartésien

On peut décrire l’ensemble des relations comme un ensemble de couples M = { (l1, g1), (l2, g1), (l2, g2), (l3, g2) , (l4, g2) , (l4, g3) }

M (manger) est un sous-ensemble de L X G Tableau d’objets à deux colonnes

On peut décrire la situation comme un tableau d’objets à deux colonnes Ce tableau décrit les couples de la représentation précédente.

Lions Gazelles

l1 g1

l2 g1

l2 g2

l3 g2

l4 g2

l4 g3

Tableaux de listes

On peut aussi décrire la situation par des tableaux de listes

Un tableau de lions

Les lions Les gazelles mangées

l1 g1

l2 g1, g2

l3 g2

l4 g2, g3

Un tableau de gazelles

Les gazelles Les lions mangeurs

g1 l1, l2

g2 l2, l3, l4

g3 l4

4 – Propriétés des relations entre 2 ensembles : de l’application à la bijection Application

Une application de E vers F est une relation binaire de E vers F qui à tout élément de E associe un unique élément de F.

Par convention, on appelle cette application « f ».

On note l’application f : E → F ; x → y ; f(x) = y

On dit que y est l’image de x et que x est l’antécédent de y.

Exemple 1

Soit la fonction f(x)=4x+3 définie dans N+. C’est une application de N+ vers N+

On note l’application f : N+ → N+ ; x → y ; f(x) = y = 4x+3

N+ f(x)=4x+3 N+

1.1 0.1

Les cardinalités de l’application s’analysent ainsi : chaque entier a 1 image au minimum et une image au maximum : 1.1. Chaque image a un antécédent ou aucun : 0.1.

0 1 2 3 etc.

etc.

1, 2 3 4, 5, 6 7 8, 9, 10 11

12, 13, 14 15

16, 7, etc.

Exemple 2

Soit l’ensemble des employés E = {e1, e2, e3, e4, e5 } Soit l’ensemble des départements D = {d1, d2, d3 } Les employés travaillent dans un département et un seul.

La relation « travailler dans » est une application de E vers D

On note l’application « travailler dans » : E → F ; e → d ; f(x) = y tel que x « travaille dans » y.

E travailler dans D

1.1 0.*

Les cardinalités de l’application s’analysent ainsi : chaque employé a 1 image au minimum et une image au maximum par la relation « travailler dans » autrement dit : chaque employé travaille au minimum dans 1 département et au maximum dans 1 département (donc dans 1 et 1 seul).

Un département peut être « vide » : aucun employé n’y est affecté (on peut imaginer que c’est une situation temporaire). Il peut contenir plusieurs employés.

Propriété des cardinalités

La cardinalité de l’ensemble de départ d’une application est 1.1 e1

e2 e3 e4 e5

d1 d2 d3 d4

Injection

Définition en français

Une application de E dans F est une injection (ou une application injective) si et seulement si tout élément de F possède au plus un antécédent, autrement dit, deux éléments distincts de E ont deux images distinctes.

Formulation mathématique

∀(x1,x2) E X E, f(x1) = f(x2) => x1 = x2

Pour tout couple x1, x2 appartenant au produit cartésien de E avec E, si f de x1 égal f de x2, alors x1 égale x2.

Propriété des cardinalités

La cardinalité de l’ensemble de départ d’une application est 1.1 La cardinalité de l’ensemble d’arrivée d’une application est 0.1

Représentation schématique

E F

1.1 0.1

Il existe dans F des éléments qui n’on pas d’antécédent.

Exemple

Soit la fonction f(x)=4x+3 définie dans N+. C’est une application de N+ vers N+

On note l’application f : N+ → N+ ; x → y ; f(x) = y = 4x+3

Les couples de l’application pour x <=5 sont : (0, 3) , (1, 7) , (2, 11) , (3, 15) , (4, 19) , (5, 23) Les entiers 1 et 2, par exemples n’ont pas d’antécédents.

e5

. . .

Surjection

Définition en français

Une application de E dans F est une surjection (ou une application surjective) si et seulement si tout élément de F possède au moins un antécédent.

Formulation mathématique

∀y F, ∃x  E / y = f(x)

Pour tout y appartenant à F, il existe un x appartenant à E tel que y égale f de x.

Propriété des cardinalités

La cardinalité de l’ensemble de départ d’une application est 1.1 La cardinalité de l’ensemble d’arrivée d’une application est 1.*

Représentation schématique

E F

1.1 1.*

Tout élément de F à au moins un antécédent.

Exemple 1

Soit la fonction f(x)=x2 définie dans R C’est une application de R vers R

On note l’application f : R → R ; x → y ; f(x) = y = x2

Les couples de l’application pour des entiers compris entre -2 et 2 : (-2, 4) , (-1, 1) , (0, 0) , (1, 1) , (2, 4)

Les entiers 1 et 2, par exemples ont 2 antécédents.

Exemple 2

La relation entre un pointeur et une adresse est une surjection : 1 pointeur a 1 image adresse et une seule : c’est une application.

Une adresse peut avoir plusieurs antécédents : plusieurs pointeurs peuvent faire référence à la même adresse.

Les langages qui gère un « ramasse miette » ou « garbage collector » font en sorte qu’il n’y ait pas d’adresse allouée qui ne soit pas référencée par un pointeur.

e5

. .

Bijection

Définition en français

Une application de E dans F est une bijection (ou une application bijective) si et seulement si elle est injective et surjective. Autrement dit si tout élément de F possède un antécédent et un seul.

Formulation mathématique

∀y F, ∃! x  E / y = f(x)

Pour tout y appartenant à F, il existe un x est un seul (le !) appartenant à E tel que y égale f de x.

Propriété des cardinalités

La cardinalité de l’ensemble de départ d’une application est 1.1 La cardinalité de l’ensemble d’arrivée d’une application est 1.1

Représentation schématique

E F

1.1 1.1

Tout élément de F possède un antécédent et un seul.

Exemple

Quand un hôtel est plein, la relation entre les clients et les chambres est une bijection : à un client correspond une chambre.

Subtilité : Ensembles équipotents, infini dénombrable et infini indénombrables

Deux ensembles sont dit équipotents s’il existe une bijection entre ces ensembles. Ils ont alors le même cardinal.

Soit l’ensemble A. S’il existe un entier n tel qu’il existe une bijection entre A et {1, 2, …, n}, alors A est dit dénombrable. Son cardinal est « fini » et vaut « n » : card (A) = n

Dans le cas contraire, le card(A) = 

Un ensemble infini est dit « dénombrable » s’il existe une bijection avec l’ensemble des entiers N.

C’est le cas pour D, Z, Q. Ce n’est pas le cas pour R dont le cardinal est indénombrable.

e5

. .

B - Applications

1 - Modélisation de BD et de diagramme de classes – MEA et UML Présentation

En bases de données comme en programmation objet, on est amené à réfléchir aux ensembles qui regroupent les données qu’on manipule et aux relations entre ces ensembles. C’est ce qu’on appelle la « modélisation des données » dans le cas de la BD (sous la forme par exemple de MEA, modèle entité-association) et le « diagramme des classes » dans le cas de la programmation objet.

Ces modélisations utilisent leur propre langage graphique pour représenter les ensembles et leurs relations.

Le principe consiste à mettre au jour :

• les ensembles

• les caractéristiques des tuples qu’ils contiennent

• les relations entre les ensembles

• les cardinalités de ces relations Exemple

On reprend l’exemple des lions qui mangent les gazelles.

Soit L un ensemble de lions. L = {l1, l2, l3, l4}

Soit G un ensemble de gazelles. G = {g1, g2, g3}

On s’intéresse à la relation : « manger ». Les lions mangent les gazelles.

On peut décrire la situation par un « schéma sagittal » (sagitta veut dire flèche en latin)

Lions manger Gazelles

0.* 0.*

l1 l2 l3 l4 l5

g1 g2 g3 g4

Ajout du genre animal

Les lions et les gazelles sont des animaux. On a donc L  A et G  A.

On peut représenter cela avec des flèches à triangle :

On peut représenter le tout par une inclusion d’ensembles :

Tous les animaux ont une date de naissance, un poids et un nom.

Les gazelles et les lions héritent des attributs du genre : ils ont tous une date de naissance, un poids et un nom.

Les gazelles one une longueur de cornes spécifique. Les lions ont une couleur de crinière spécifique.

l1 l2 l3 l4 l5

g1 g2 g3 g4

Lions manger Gazelles

0.* 0.*

Animaux

Lions Gazelles Animaux

Formalisme MEA

Le MEA est une façon graphique de représenter les ensembles et leurs relations qu’on utilise en base de données.

Formalisme UML

L’UML est une façon graphique de représenter les ensembles et leurs relations qu’on utilise en base de données et en programmation objet.

Exercices – Modélisation ensembliste

1

Soit les deux ensembles suivants : E1 = {a, b, c, d, e}, E2 = {A, B, C, D, E}

Soit l’ensemble de couples suivant : {(a,A), (b,A), (c,C), (d,D), (e,D) } Représenter ces couples sous la forme :

1. d’un schéma sagittal en précisant les cardinalités 2. de 2 tableaux de listes

3. d’un MEA et d’un modèle UML.

La relation de E1 vers E2 est-elle une application, une injection, une surjection, une bijection ? La relation de E2 vers E1 est-elle une application, une injection, une surjection, une bijection ?

2

On reprend l’exemple du cours des employés et des départements.

On a un ensemble d’employés E = {e1, e2, e3, e4, e5 } et un ensemble des départements D = {d1, d2, d3 }

Les employés travaillent dans un département et un seul. L’ensemble des relations est le suivant : {(e1, d1), (e2, d1), (e3, d2), (e4, d3), (e5, d3)}

Représenter ces couples sous la forme :

1. d’un schéma sagittal en précisant les cardinalités 2. de 2 tableaux de listes

3. d’un MEA et d’un modèle UML

La relation de E vers D est-elle une application, une injection, une surjection, une bijection ? La relation de D vers E est-elle une application, une injection, une surjection, une bijection ?

3

Soit l’ensemble de couples suivant : {(a,a), (a,b), (a,c), (b,c), (b,d), (d,d) } Représenter ces couples sous la forme :

1. d’un schéma sagittal en précisant les cardinalités 2. de 2 tableaux de listes

Soit une bibliothèque municipale. Elle gère des adhérents et des livres. Les adhérents empruntent des livres.

1. Quels ensembles peuvent représenter la situation ?

4.2 :

On s’intéresse d’abord aux emprunts en cours. On précise qu’un adhérent ne peut pas emprunter plus de 5 livres à la fois. Quelle relation peut traduire cette situation. Précisez les cardinalités.

Précisez la nature de la relation (application, injection, surjection ou une bijection).

1. Faites un schéma sagittal qui donne un exemple de la situation.

2. Donner une représentation MEA et UML de la situation.

3. Quelles sont les applications ? Ces applications sont-elles des injections, des surjections, des bijections ?

4.3 :

On s’intéresse ensuite à tous les emprunts qui ont eu lieu, que ce soit ceux pour lesquels les livres ont été rendus ou ceux qui sont en cours. On précise qu’un adhérent ne peut pas emprunter plus de 5 livres à la fois. Quelle relation peut traduire cette situation. Précisez les cardinalités. Précisez la nature de la relation (application, injection, surjection ou une bijection).

1. Faites un schéma sagittal qui donne un exemple de la situation.

2. Donner une représentation MEA et UML de la situation.

3. Quelles sont les applications ? Ces applications sont-elles des injections, des surjections, des bijections ?

4.3 bis :

1. En partant de l’exemple de la question 4.3, lister les tuples du produit cartésien des deux ensembles.

2. En partant de l’exemple de la question 4.3, lister les tuples de l’ensemble qui correspond à la relation emprunter.

3. Faire un schéma sagittal qui donne un exemple de la situation avec ce nouvel ensemble.

4. Faire le MEA et le diagramme UML correspondants.

4.3 ter :

1. Un adhérent peut emprunter plusieurs fois le même livre. Traduisez cette situation dans le schéma sagittal de la question 4.3.

2. Lister les tuples de l’ensemble qui correspond à la relation emprunter avec cette nouvelle situation. Quelle nouvelle composante faut-il ajouter.

3. Mettre à jour le MEA et le diagramme UML correspondants.

4.4 :

On ajoute que les livres ont des thèmes (roman, jeunesse, aventure, histoire, etc.). Un livre a au moins 1 thème et il peut en avoir plusieurs.

1. Quel ensemble et quelle relation peuvent traduire la situation. Précisez les cardinalités.

Précisez la nature de la relation (application, injection, surjection ou une bijection).

2. Donner une représentation MEA et UML de la situation.

3. Faites un schéma sagittal qui donne un exemple de la situation.

4. Quelles sont les applications ? Ces applications sont-elles des injections, des surjections, des bijections ?

5

Soit les trois ensembles suivants : E1 = {e1, …, e5}, E2 = {e6, …, e10}, E3 = {e1, ..., e12}

Soit l’ensemble de couples suivant : E4 = {(e1, e6), (e1, e7), (e1, e10), (e2, e8), (e4, e6), (e4, e8), (e5, e10) }

Soit un deuxième ensemble de couples : E5 = {(e1, e7), (e2, e10), (e3, e10), (e4, e9), (e5, e8), (e6, e7), (e7, e8), (e8, e8), (e9, e9), (e10, e10), (e11, e10), (e12, e8)}

1. Faites un schéma sagittal pour représenter les ensembles et les relations en présences.

2. Donner une représentation MEA et UML des ensembles en présence.

3. Quelles sont les applications ? Ces applications sont-elles des injections, des surjections, des bijections ?

6

Une cinémathèque veut mettre en place un système d’information concernant des films et leurs diffusions. Pour chaque film on connaît son titre, sa date de création et la langue du film. Les fims sont projetés dans des salles de cinémas. On connaît l’heure et le jour de la projection ainsi que la version projetée (version originale ou version française). On connaît le nombre de places des salles, le type d’écran et le type de son, ainsi que le cinéma correspondant, avec son nom, son adresse, son téléphone et le nombre de salles du cinéma.

1. Donner une représentation MEA et UML.

2. Faites un schéma sagittal qui donne un exemple de la situation.

3. Quelles sont les applications ? Ces applications sont-elles des injections, des surjections, des bijections ?

4. Comment traduire la ou les relations qui ne sont pas des applications en ensemble de tuples ? Si on ajoute cet ensemble, que deviennent les relations ? Quelles sont les applications ?

2 - Langage SQL des bases de données relationnelles Présentation

Langage SQL

Le langage SQL est le langage des bases de données relationnelles.

Les bases de données sont les systèmes qui gèrent les données (on dit SGBD : système de gestion des BD). La quasi totalité des sites internet utilisent des bases de données relationnelles.

Le langage SQL est un langage basé sur l’algèbre relationnelle c’est-à-dire la théorie des opérations (algèbre) portant sur les « relations ». Une relation est un tableau de type excel. Il est équivalent à un ensemble. L’algèbre relationnelle est donc un langage qui s’appuie sur la théorie des ensembles.

Exemple mathématique Soit l’ensemble des entiers N

On veut le sous ensemble P des entiers pairs.

On peut l’écrire : P = {2x / x  N } : ensemble des 2x tel que x appartient à N

On peut aussi écrire : P = {x  N / x%2=0 } : ensemble des x appartenant à N tel que x modulo égale 0 (le modulo c’est le reste de la division entière).

En SQL, cette définition en compréhension s’écrit : SELECT * FROM N WHERE x%2=0

Exemple avec des tuples

Soit E un ensemble d’élèves avec un nom, une adresse mail et une ville d’habitation. Les tuples de E sont donc des triplets.

On définit l’ensemble ainsi : E(nom, mail, ville)

« nom », « mail » et « ville » sont les nom des composants des tuples de l’ensemble E.

Par exemple E={(toto, toto@gmail.com, paris) ; (titi, titi@gmail.com, meudon) ; … }.

Chaque élément de E peut-être appelé « x ». Pour obtenir par exemple la ville d’un x, on écrit x1.ville.

On cherche R, l’ensemble de tous les élèves parisiens.

R = { x  E / x.ville = « Paris » }

En SQL : SELECT * FROM E WHERE ville = « Paris ».

Le * veut dire qu’on prend les tuples en entier avec leurs trois caractéristiques en l’occurrence.

Jointure

Présentation

La jointure est l’opération fondamentale du SQL. Comprendre la jointure, c’est comprendre le SQL et réciproquement, et inversement !

On va montrer ici le principe et un exemple simple pour faire comprendre le principe. L’étude des jointures sera faite ensuite dans le cours de SQL.

Principe

La jointure est une opération basée sur le produit cartésien.

Il y a ensuite un WHERE qui permet d’éliminer les résultats sans intérêt.

Exemple

Soit E, l’ensemble des employés = {(toto, 10), (tata, 10), (titi, 20) }

Les composants des tuples sont appelés dans l’ordre : nom et numDepTra (numéro du département de travail).

Soit D, l’ensemble des départements = {(10, Paris), (20, Meudon) } Les composants des tuples sont appelés dans l’ordre : numDep et ville.

On veut construire un ensemble d’employés E2 pour lequel chaque tuple précise la ville du département.

E2 = { x  E X D / x.numDepTra = x.numDep }

La restriction x.numDepTra = x.numDep permet d’élimier du produit cartésien les tuples non significatifs. Il ne reste alors que les employés avec des informations sur leurs départements.

En SQL, on écrit SELECT * FROM E, D WHERE E.numDepTra = D.numDep

Représentation du produit cartésien avec des tableaux

E D E  D

toto 10 X 10 Paris = toto 10 10 Paris

tata 10 20 Meudon toto 10 20 Meudon

titi 20 tata 10 10 Paris

tata 10 20 Meudon titi 20 10 Paris titi 20 20 Meudon Ici on a des tuples qui ne sont pas significatifs dans le résultats (le 2ème par exemple).

tata 10 20 Meudon titi 20 10 Paris titi 20 20 Meudon Ici on a des tuples qui ne sont pas significatifs dans le résultats (le 2ème par exemple).

Documents relatifs