MATHÉMATIQUES DISCRÈTES Chapitre 6 (relations) François Meunier DMI
Relations Des objets mathématiques qui spécifient et décrivent des relations entre des éléments d’un ensemble ou plusieurs ensembles. Une fonction f qui projette un ensemble A sur un ensemble B assigne exactement un élément de B à chaque élément de A. Les relations n’ont pas de restriction. Un élément dans A peut être assigné à plus qu’un élément dans B. Les relations sont des généralisations des fonctions; elles peuvent être utilisées pour exprimer une plus grande classe de relations entre ensembles.
Relations binaires Avec A, B des ensembles. Les relations entre les éléments de ces deux ensembles sont représentés par une Relation binaire. i.e. une relation binaire de A à B est un ensemble R où a R b dénote (a, b) ∈ R. a est en relation avec b par R. R A X B Les éléments de A X B et R sont des paires ordonnées puisque le premier élément de l’ensemble vient de l’ensemble A et le second élément de l’ensemble B. Posons A = {2, 3, 4}, et B ={4, 5}. Alors A X B ={(2, 4), (2, 5), (3, 4), (3, 5), (4, 4), (4, 5)}.
Relations VS graphes Posons A = {2, 3, 4}, et B ={4, 5}. Alors A X B ={(2, 4), (2, 5), (3, 4), (3, 5), (4, 4), (4, 5)}. (2, 4) 2 (2, 5) (3, 4) 3 (3, 5) (4, 4) 4 (4, 5)
Relations binaires Posons A = {2, 3, 4}, et B ={4, 5}. Alors A X B ={(2, 4), (2, 5), (3, 4), (3, 5), (4, 4), (4,5)}. Autres relations de A à B: i) Ø ii) {(2, 4)} iii) {(2, 4), (2, 5)} iv) {(2, 4), (3, 4), (4, 4)} v) {(2, 4), (3, 4), (4, 5)} vi) A X B Pour des ensembles finis A, B avec |A| = m et |B| = n, il existe 2mn relations de A à B, incluant la relation vide et la relation A X B elle-même.
Propriétés des Relations La relation de A sur A i.e. A X A est une relation binaire sur A. Cette relation est Réflexive, si chaque élément a de A est en relation avec lui-même. R sur A est réflexive si ∀a ((a, a) ∈ R) où A est l’univers du discours.
Propriétés des Relations Posons A = {1, 2, 3, 4} R1 et R2 sont des relations réflexives puisqu’elles contiennent toutes les paires de la forme (a, a). R1 = {(1, 1), (1, 2), (1, 4), (2, 1), (2, 2), (3, 3), (4, 1), (4, 4)}. R2 = {(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 4)}.
Propriétés des Relations La relation R sur A est symétrique si (a, b) ∈ R ⇒ (b, a) ∈ R, pour tout a, b ∈ A Posons A={1, 2, 3} R1 = {(1, 2), (2, 1), (1, 3), (3, 1)}. symétrique R2= {(1, 1), (2, 2), (3, 3), (2, 3), (3, 2)}. réflexive et symétrique R3= {(1, 1), (2, 3), (3, 3)}. Non réflexive et non symétrique.
Propriétés des Relations Une relation R sur A est antisymétrique si (a, b)R et (b, a)R seulement quand a = b Aussi exprimée par: a≠b, (a,b)R → (b,a)R. Une relation R sur A est asymétrique si (a, b)R implique que (b,a)R pour tout a, bA.
Antisymmétrie Les termes symétrie et antisymétrie ne sont pas opposés, puisqu’une relation peut avoir les deux propriétés ou ne pas les avoir. Une relation ne peut avoir ces deux propriétés si elle contient des paires de la forme (a, b) où a ≠ b. Symétrie et Asymétrie, sont opposées.
Symétrie - Antisymétrie R1 = {(1,1), (1, 2), (2, 1)} Symétrique R2 = {(1,1), (1, 2), (1, 4), (2, 1), (2, 2), (3, 3), (4, 1), (4, 4)} Symétrique R3 = {(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 4)} Antisymétrique R4 = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)} Asymétrique
Transitivité Une relation R est transitive ssi (pour tout a,b,c) (a,b)R (b,c)R → (a,c)R. Donc si a est “ en relation avec ” b et b est “en relation avec ” c, alors a est “en relation avec ” c avec b jouant le rôle d’ “intermédiaire”. Ex: A = {1, 2, 3, 4) R = {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3)}
Combiner des Relations Les relations sont des ensembles, et par conséquent, nous pouvons appliquer les opérations usuelles sur les ensembles sur ces relations. Si nous avons deux relations R1 et R2, et chacune d’elle provient d’un ensemble A appliquée à un ensemble B, alors nous pouvons les combiner comme: R1 U R2, R1 ∩ R2, ou R1 – R2. Dans chaque cas, le résultat donne une autre relation de A à B.
Combinaisons de Relations: Exemple Posons A = {1, 2, 3} et B = {1, 2, 3, 4} R1 ={(1, 1),(2, 2),(3, 3)} R2 = {(1, 1),(1, 2),(1, 3),(1, 4)} R1∪ R2={(1, 1),(1, 2),(1, 3),(1, 4),(2, 2),(3, 3)} R1∩ R2={(1, 1)} R1 – R2={(2, 2), (3, 3)} R2 – R1={(1, 2),(1, 3),(1, 4)}
Combiner des Relations Autre approche pour combiner des relations. Définition: Posons R une relation entre A et B et S une relation entre B et C. La composition de R et S est une relation consistant de paires ordonnées (a, c), où aA, cC, et pour lequel un élément bB tel que (a, b)R et (b, c)S. LA composition de R et S est exprimée par SR. Donc, si la relation R contient une paire (a, b) et la relation S contient une paire (b, c), alors SR contient une paire (a, c).
Combiner des Relations Exemple: Posons D et S des relations sur A = {1, 2, 3, 4}. D = {(a, b) | b = 5 - a} “b égal (5 – a)” S = {(a, b) | a < b} “a est plus petit que b” D = {(1, 4), (2, 3), (3, 2), (4, 1)} S = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)} SD = {(2, 4), (3, 3), (3, 4), (4, 2), (4, 3), (4, 4)} D projette un élément a à l’élément (5 – a), ensuite S projette (5 – a) à tous les éléments que (5 – a), résultant à SD = {(a,b) | b>5 – a} ou SD = {(a,b) | a + b>5}.
Combiner des Relations Définition: Posons R une relation sur A. La puissance Rn, n = 1, 2, 3, …, est définie de façon inductive par: R1 = R Rn+1 = RnR La composition multiples de R: Rn = RR … R (n fois la relation R)
Combiner des Relations Supposons: R définie sur N par: xRy ssi y = x2 et S définie sur N par: xSy ssi y = x3 Quelle est la relation composée SR ?
Combiner les Relations (visualisation) xRy ssi y = x 2 xSy ssi y = x 3 Sont des fonctions (carré et cube) alors la composition SR est la fonction composition (mise à la 6ième puissance). xSRy ssi y = x 6 Composer (combiner) les relations suivantes: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5
Combiner les Relations (visualisation) 1 1 1 2 2 2 3 3 3 4 4 5 Établir les raccourcis possibles. Dans ce cas, tous les raccourcis passent par 1: 1 1 2 2 3 3 4
Combiner les Relations (visualisation) 1 1 1 2 2 2 3 3 3 4 4 5 Établir les raccourcis possibles. Dans ce cas, tous les raccourcis passent par 1: 1 1 2 2 3 3 4
Combiner les Relations (visualisation) 1 1 1 2 2 2 3 3 3 4 4 5 Établir les raccourcis possibles. Dans ce cas, tous les raccourcis passent par 1: 1 1 2 2 3 3 4
Combiner les Relations (visualisation) 1 1 1 2 2 2 3 3 3 4 4 5 Établir les raccourcis possibles. Dans ce cas, tous les raccourcis passent par 1: 1 1 2 2 3 3 4
Combiner les Relations (visualisation) 1 1 1 2 2 2 3 3 3 4 4 5 Établir les raccourcis possibles. Dans ce cas, tous les raccourcis passent par 1: 1 1 2 2 3 3 4
Exponentiation Une relation R sur A peut être composée avec elle-même, donc exponentiable: DÉF: Trouvons R 3 si R est donnée par: 1 1 2 2 3 3 4 4
Exponentiation R R 1 1 1 2 2 2 3 3 3 4 4 4
Exponentiation R R R 2 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
Exponentiation R R R 2 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 R 2 R 1 1 1 2 2 2 3 3 3 4 4 4
Exponentiation R R R 2 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 R 2 R R 3
Représentation par Graphe Orienté Une autre façon de représenter une relation R sur A est avec un graphe orienté (GO) (“directed graph”). L’ensemble A est représenté par des noeuds (ou sommets) et quand une ralation aRb est créée, un lien orienté (ou flèche) ab est créé. Des loupes représentent aRa. Représentons la relation R 3 par un GO.
Représentation par GO R 3 1 1 2 2 3 3 4 4
Représentation par GO R 3 1 1 2 2 3 3 4 4 2 1 3 4
Application: BD Relationnelle Les BD Relationnelles permettent d’organiser la structure de larges BDs Design plus simple Fonctionnalités puissantes Permet l’utilisation d’algorithmes de recherche efficients Les BDs ne sont pas toutes relationnelles Anciens systèmes de BD XML – structure de données sous forme d’arborescence
Exemple 1 Une BD relationnelle avec un schéma : …etc. 1 Name 2 Favorite Soap 3 Favorite Color 4 Occupation 1 Kate Winslet Leonardo DiCaprio 2 Dove Dial 3 Purple Green 4 Movie star …etc.
Exemple 2 La table de l’addition mod 2: + 1
Exemple 3 Appariement entre des pigeons et des mangeoires où les pigeons peuvent partager les mangeoires: Crumb 1 Pigeon 1 Crumb 2 Pigeon 2 Crumb 3 Pigeon 3 Crumb 4 Crumb 5
Relations: Représentées comme des sous-ensembles de produits Cartésiens Exemples: BD {Names}×{Soaps}×{Colors}×{Jobs} addition mod 2 {0,1}×{0,1}×{0,1} Pigeon-Crumb {pigeons}×{crumbs} Liens de descendances {people}×{people}
Relations: Représentées comme des sous-ensembles de produits Cartésiens Quel est le sous-ensemble de l’addition mod 2 ? Ce sous-ensemble est: { (0,0,0), (0,1,1), (1,0,1), (1,1,0) }
Opérations sur des BD Plusieurs opérations découlant de la notion de relation sont utiles en BD, comme par exemples: Jointure (join): une généralisation de l’intersection et du produit Cartésien. Projection: restreindre le nombre de coordonnées.
Jointure (join) La jointure de deux relations R, S est la combination de relations en reliant les derniers types (éléments, attributs) de R et les premiers types de S (supposant que ces types sont les mêmes). Le résultat est une relation avec les types particuliers de S les types communs de S et R et les types particuliers de R.
Jointure (join) Ex: Supposons R est l’addition mod 2 et S est la multiplication mod 2: R = { (0,0,0), (0,1,1), (1,0,1), (1,1,0) } S = { (0,0,0), (0,1,0), (1,0,0), (1,1,1) } Dans un cas 2-join nous joignons les éléments de R et S dont les 2 dernières coordonnées de R et les 2 premières de S sont égales, nous pouvons joindre ces coordonnées et garder les informations de R et S. Par exemple: (0,1,1) 2-join (0,1,1,1) (1,1,1)
Jointure (join) R = { (0,0,0), (0,1,1), (1,0,1), (1,1,0) } S = { (0,0,0), (0,1,0), (1,0,0), (1,1,1) } Avec la notation J2(R,S) pour la 2-join. J2(R,S) = { (0,0,0,0), (0,1,1,1), (1,0,1,0), (1,1,0,0) } Pour des relations R,S, quelconque? J0(R,S) => produit Cartésien Jn(R,S) pour n le nombre de coordonnées de R et S => est l’intersection quand n est le nombre de coordonnées
Jointure (join) Exemple de inner join en langage sql orders suppliers SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date FROM suppliers, orders WHERE suppliers.supplier_id = orders.supplier_id; orders suppliers résultats
Jointure (join) Exemple de outer join en langage sql orders suppliers SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date FROM suppliers, orders WHERE suppliers.supplier_id = orders.supplier_id(+); orders suppliers résultats
Projection La projection est une opération qui permet d’ignorer certaines coordonnées. Considérons encore R: R = { (0,0,0), (0,1,1), (1,0,1), (1,1,0) } En projetant les 1ière et 3ième coordonnées, nous ignorons la 2ième coordonnée. nous générons un élément de la projection 1,3: 1,3 projection (0,1,1) (0,1)
Projection R = { (0,0,0), (0,1,1), (1,0,1), (1,1,0) } Utilisation la notation P1,3(R) pour une projection 1,3. P1,3(R) = { (0,0), (0,1), (1,1),(1,0) }