Aller au contenu

Décomposition de jointure sans perte

Un article de Wikipédia, l'encyclopédie libre.

Dans le domaine de la conception de bases de données, une décomposition de jointure sans perte est une décomposition d'une relation dans des sous-relations de telle sorte qu'une jointure naturelle des deux sous-relations renvoie la relation originale. Il s'agit d'un moyen central pour supprimer en toute sécurité la redondance dans les bases de données tout en préservant les données d’origine[1]. La jointure sans perte peut également être appelée jointure non-additive[2].

Critères[modifier | modifier le code]

Soit une décomposition d'une relation .

La décomposition est sans perte si et seulement si la jointure naturelle de et aboutit à la relation originale (c'est à dire, si )[3].

De manière équivalente, la décomposition est sans perte si et seulement si l'une des sous-relations (c'est-à-dire ou ) est un sous-ensemble de la clôture de leur intersection[4]. Autrement dit, la décomposition de est sans perte si ou est vrai.

Critères pour plusieurs sous-relations[modifier | modifier le code]

Plusieurs sous-relations ont une jointure sans perte s'il existe un moyen par lequel on peut effectuer à plusieurs reprises des jointures sans perte jusqu'à ce que toutes les relations aient été jointes en une seule relation. Une fois que l'on a une nouvelle sous-relation créée à partir d’une jointure sans perte, on ne peut plus utiliser une de ses sous-relations isolées pour se joindre à l’une des autres relations. Par exemple, si on peut effectuer une jointure sans perte sur une paire de relations pour construire une nouvelle relation , on utilisera alors cette nouvelle relation (plutôt que ou ) pour former une jointure sans perte avec une autre relation (qui peut avoir déjà été jointe (par exemple, )).

Exemples[5],[6][modifier | modifier le code]

  • Soit être un schéma relationnel, avec les attributs A, B, C et D .
  • Soit être l’ensemble des dépendances fonctionnelles.
  • La décomposition en et est sans perte sous F car . A est une super-clé dans , ce qui signifie que nous avons une dépendance fonctionnelle . En d’autres termes, nous avons maintenant prouvé que .

Références[modifier | modifier le code]

  1. Pohler, « Lossless-Join Decomposition: applications in quantitative computing metrics », International Journal of Applied Computer Science, vol. 21, no 4,‎ , p. 190–212
  2. Ramez Elmasri, Fundamentals of database systems, Hoboken, NJ, Seventh, (ISBN 978-0133970777), p. 461
  3. Yannakakis, « Algorithms for acyclic database schemes », Proceedings of the Seventh International Conference on Very Large Data Bases, vol. 7,‎ , p. 82-94 (DOI ((10.5555/1286831.1286840)), lire en ligne, consulté le )
  4. (en) Jan Chomicki, « Lossless Join Decomposition » [PDF], Université d'État de New York à Buffalo (consulté le )
  5. « Lossless-Join Decomposition », Cs.sfu.ca (consulté le )
  6. « www.data-e-education.com - Lossless Join Decomposition » [archive du ] (consulté le )