IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 1/21
Théorie des ensembles et SGBD-R
Résumé et exercices – après-midi
Bertrand LIAUDET
SOMMAIRE
SOMMAIRE 1
ENSEMBLES ET RELATIONS ENTRE LES ELEMENTS 2
A - Théorie 2
1 – Notion de tuple et de composant (ou attribut) 2
2 – Opération sur les tuples : concaténation de deux tuples 5
3 – Opération sur les ensembles : produit cartésien 6
4 – Relations entre les objets de 2 ensembles 7
5 – Propriétés des relations entre 2 ensembles : de l’application à la bijection 9
B – Exercices et applications 11
1 – Exercices : Trouver des ensembles – Première approche de la modélisation des BD 11
2 – Exercice : définir des ensembles 12
3 – Modélisation de BD et de diagramme de classes – MEA et UML 13
4 – Langage SQL des bases de données relationnelles 17
Dernière édition : septembre 2019
ENSEMBLES ET RELATIONS ENTRE LES ELEMENTS
A - Théorie
1 – Notion de tuple et de composant (ou attribut) 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).
Par définition, un couple est ordonné et donc : (e1, e2) != (e2, e1) Notion de tuple
Un n-uplet ou « tuple » est une généralisation de la notion de couple. Il est constitué de n objets.
Un n-uplet ou « tuple » se représente ainsi : T = (e1, e2, …, en)
Notion de composant ou d’attribut
Chaque partie du tuple est appelée « composant » du tuple, ou attribut du tuple.
Sémantique
Un tuple est un objet constitué de plusieurs caractéristiques.
Un ensemble est une réunion d’objets (ou d’éléments). En général, les éléments d’un ensemble sont des objets de même nature. Si les éléments ont plusieurs caractéristiques, ce sont des tuples.
Exemple : un ensemble de 3 couples de (nom, adresse_mail) : { (toto, toto@ gmail.com ), (titi, titi@ gmail.com ), (tutu, tutu@ gmail.com ) }.
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 3/21
Distinction entre tuple et ensemble
➢ Ensemble
• Un ensemble à 2 éléments est une paire, à 3 éléments un trio, à 4 un quartet, etc.
• On représente les ensembles plutôt avec des accolades.
• Les ensembles peuvent avoir un très grand nombre d’éléments.
• Il n’a aucun ordre pour les éléments de l’ensemble. Être en premier, deuxième ou troisième ne signifie rien.
• Exemple : on définit un ensemble de deux noms d’employé : {toto, tata}. L’ordre n’a pas d’importance. On peut écrire : {tata, toto}, c’est la même chose.
➢ Tuple
• Un tuple à 2 composants est un couple, à 3 composants un triplé, à 4 un quadruplé, etc.
• On représente les tuple plutôt avec des parenthèses.
• En général, les tuples ont un petit nombre de composants.
• L’ordre des composants du tuple est significatif. Être en premier ne signifie pas la même chose qu’être en second. Etc.
• Exemple : on définit un tuple avec un nom d’employé et le nom de son supérieur hiérarchique : (toto, tata). L’ordre est significatif : (toto, tata) ce n’est pas la même chose que (tata, toto).
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 de ligne et chaque ligne est un tuple.
Par exemple, la ligne 1 vaut : (1, « toto », « informaticien»). 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 : félix.
On peut se doter d’une collection d’objets : un tableau, une liste, un arbre, etc.
Une collection, c’est un ensemble.
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 5/21
2 – Opération sur les tuples : concaténation de deux tuples Définition
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.
3 – Opération sur les ensembles : produit cartésien Définition
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
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
1 2 X 1 2 3 = 1 2 1 2 3
3 4 4 5 6 1 2 4 5 6
7 8 9 1 2 7 8 9
3 4 1 2 3
3 4 4 5 6
3 4 7 8 9
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 7/21
4 – Relations entre les objets de 2 ensembles Schéma sagittal d’une relation
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.*
Notion de cardinalité
0.* représente la « cardinalité » de la relation.
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 la situation comme un ensemble de couples M = { (g1, l1), (g1, l2), (g2, l2), (g2, l3) , (g2, l4) , (g3, l4) } M (manger) est un sous-ensemble de L G
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
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 9/21
5 – Propriétés des relations entre 2 ensembles : de l’application à la bijection Application
Une application est une relation qui à tout élément de E associe un unique élément de F.
On note l’application f. f(x) = y. y est l’image de x. x est l’antécédent de y.
➢ Exemple
Soit E = {e1, e2, e3, e4, e5 } un ensemble d’employés, et D = {d1, d2, d3 } un ensemble des départements. Les employés travaillent dans un département et un seul.
La relation « travailler dans » est une application de E vers D
E travailler dans D
e1 e2 e3
d1 d2 d3
1.1 0.*
Injection
Une application de E dans F est une injection si et seulement si tout élément de F possède au plus un antécédent.
E F
Surjection
Une application de E dans F est une surjection si et seulement si tout élément de F possède au moins un antécédent.
E F
Bijection
Une application de E dans F est une bijection 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.
E F
e5
. . .
e5
. .
e
5 e
5
1.1 0.1
1.1 1.*
1.1 1.1
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 11/21
B – Exercices et applications
1 – Exercices : Trouver des ensembles – Première approche de la modélisation des BD REPRISE DES EXERCICES DU MATIN
➢ 1
Une entreprise a des employés qui travaillent dans différents départements. Un employé est embauché à une certaine date et a une fonction et un salaire. Les fonctions dans l’entreprise sont fixées par l’entreprise.
• Quels sont les ensembles qu’on peut concevoir à partir de cette description ?
• Imaginez quelques éléments à mettre dans chaque ensemble.
• Imaginez des relations entre les éléments des chaque ensemble. Précisez les cardinalités.
➢ 2
Une bibliothèque gère des adhérents qui peuvent emprunter des livres. On gère tous les emprunts dans le temps. Un livre peut donc avoir été emprunté par plusieurs adhérents.
• Quels sont les ensembles qu’on peut concevoir à partir de cette description ?
• Imaginez quelques éléments à mettre dans chaque ensemble.
• Imaginez des relations entre les éléments des chaque ensemble. Précisez les cardinalités.
➢ 3
Une émission de télévision est diffusée sur une chaine et une seule caractérisée par son numéro et son canal. Les émissions ont des animateurs. Un animateur peut participer à plusieurs émissions.
• Quels sont les ensembles qu’on peut concevoir à partir de cette description ?
• Imaginez quelques éléments à mettre dans chaque ensemble.
• Imaginez des relations entre les éléments des chaque ensemble. Précisez les cardinalités.
2 – Exercice : définir des ensembles
➢ 1
A est l’ensemble des employés de l’entreprise. Ils ont tous un numéro d’employé, différent pour chacun d’eux, un nom et un salaire et une date d’embauche
Définir mathématiquement en compréhension B l’ensemble des employés dont le salaire est supérieur à 2000.
Définir mathématiquement en compréhension C l’ensemble des employés dont le salaire est supérieur à 1500 et qui ont été embauché en 2016.
Faites un schéma de ces trois ensembles et de leurs relations.
➢ 2
Soit un ensemble de personnes P = {p1, p2, …, p9, p10}
p1, p3, p5, p6 et p7 sont adhérents à la bibliothèque de la ville.
p1, p2, p3, p7, p10 travaillent à la bibliothèque de la ville.
➢ Quels sont les ensembles dont on parle ?
➢ Représentez graphiquement les ensembles et leurs éléments
➢ Quelles relations existe-t-il entre ces ensembles ?
➢ Y a-t-il une ou plusieurs relations d’héritage, si oui, lesquelles
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 13/21
3 – Modélisation de BD et de diagramme de classes – MEA et UML Situation décrite
Les lions et les gazelles ont un nom, une date de naissance et un poids.
Les Lions ont une couleur de crinière. Les Gazelles une longueur de corne.
Les lions mangent les gazelles.
Représentation ensembliste : schéma sagittal
Cette représentation montre les ensembles avec leurs éléments et les relations entre les éléments.
On donne aussi les cardinalités de la relation.
l1 l2 l3 l4
g1 g2 g3
Lions manger Gazelles
0.* 0.*
Animaux
Formalisme MEA
Les formalismes MEA et UML montrent les attributs et les relations entre ensemble.
Ils sont équivalents, à la syntaxe près.
Formalisme UML
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 15/21
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 :
➢ d’un schéma sagittal en précisant les cardinalités
➢ de 2 tableaux de listes
➢ d’un MEA
La relation de E1 vers E2 est-elle une application, une injection, une surjection, une bijection ? La relation de E2 vers E2 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 :
➢ d’un schéma sagittal en précisant les cardinalités
➢ de 2 tableaux de listes
➢ d’un MEA
➢ 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 :
➢ d’un schéma sagittal en précisant les cardinalités
➢ de 2 tableaux de listes
➢ d’un MEA
Les relations dans un sens et dans l’autre sont-elles des applications, des injections, des surjections, des bijections ?
➢ 4
Soit une bibliothèque municipale. Elle gère des adhérents et des livres. Les adhérents empruntent des livres.
Quels ensembles peuvent représenter la situation ?
Quelles relations entre les ensembles peuvent représenter la situation. Préciser les cardinalités.
Pour chaque relation, préciser si c’est une application, une injection, une surjection ou une bijection.
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 17/21
4 – Langage SQL des bases de données relationnelles Présentation
➢ Langage SQL
Le langage SQL est le langage des bases de données relationnelles.
➢ Exemple mathématique
On veut le sous ensemble P des entiers pairs.
P = {x N / x%2=0 } : ensemble des x appartenant à N tel que x modulo 2 égale 0
En SQL, cette définition en compréhension s’écrit : SELECT * FROM N WHERE x%2=0
➢ Exemple avec des tuples
E ensemble d’élèves avec un nom, une adresse mail et une ville d’habitation.
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) ; … }.
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 » Soit : Sectionner tout de E où ville = Paris.
Jointure
➢ Principes
La jointure est l’opération fondamentale du SQL. Comprendre la jointure, c’est comprendre le SQL, et réciproquement, et inversement !
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(nom, numDepTrav) = {(toto, 10), (tata, 10), (titi, 20) }. E est une ensemble d’employés.
Ils ont un nom et un numéro du département dans lequel il travaille qu’on appelle numDepTrav.
Soit D (numDept, ville) = {(10, Paris), (20, Meudon) }. D est un ensemble de départements. Ils ont un numéro qu’on appelle numDep et une ville de localisation du département.
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’éliminer 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
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 19/21
➢ Représentation de la jointure avec des tableaux
E D E2 = { x E X D / x.numDepTra = x.numDep }
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
On ne garde que les tuples significatifs.
Relations ensemblistes
Par exemple : A B s’écrit en SQL : SELECT * FROM A UNION SELECT * FROM B Ces opérations sont toutefois secondaires dans le langage.
Jointure externe
La jointure externe est une opération spéciale du SQL : elle consiste à faire une jointure et un complémentaire.
C’est une opération utile en SQL mais trop compliquée pour être abordée dans ce cours.
En SQL, on écrit : SELECT * FROM A LEFT JOIN B etc.
Exercices – SQL et théorie des ensemble
➢ 1
On se donne un ensemble E de personnes dont chaque tuple est un triplet avec trois composants : un nom, une adresse mail et un âge.
Donnez une définition mathématique en compréhension du sous-ensemble R de E dont les personnes ont moins de 30 ans.
Ecrivez la requête SQL correspondant à cette définition.
➢ 2
Soit A = {(1, a1, 1), (2, a2, 1), (3, a3, 2) } B= {(1, b1), (2, b2)}
Les composants des tuples sont appelés : ta1, ta2, ta3 pour A et tb1, tb2 pour B.
1) Définir en extension AB 2) Quel est le cardinal de AB
3) Définir en extension E = { x E X D / x.ta3 = x.tb1 } 4) Donnez la requête SQL correspondant à E.
5) Quel est le cardinal de E ?
IPI – Module MAT-120 – Théorie des ensembles et SGBDR – 2 – Bertrand Liaudet - page 21/21
➢ 3
Soit A un ensemble d’élèves. A = {(1, « fifi »), (2, « soso »), (3, « loulou ») }
Soit B un ensemble de notes. B= {(« math », 18, 1), (« math », 14, 2), (« math », 8, 3), (« BD», 16, 1), (« BD», 10, 2), (« algo», 14, 1), (« algo», 12, 2), (« algo», 15, 3) }
Les composants des tuples sont appelés : ta1, ta2 pour A et tb1, tb2, tb3 pour B.
1) Quel est le cardinal de A, de B, de AB ?
2) Définir en extension E = { x AB / x.ta1 = x.tb3 } 3) Quel est le cardinal de E ?
4) Comment interprétez-vous l’ensemble E ? 5) Donnez la requête SQL correspondant à E.
6) Définir en extension F = { x AB / x.ta1 = x.tb3 et x.ta1=2 } 7) Quel est le cardinal de F ?
8) Comment interprétez-vous l’ensemble F ? 9) Donnez la requête SQL correspondant à E.