Décomposition de jointure sans perte

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

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

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,  )).

  • 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
  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 )