Introduction à la récursivité

Requêtes hiérarchiques et récursives dans SQL Server

Jasmin Ludolf

Content Developer

Qu'est-ce que la récursivité ?

La récursivité est l'utilisation d'une procédure, sous‑routine, fonction ou algorithme qui s'appelle lui‑même une ou plusieurs fois jusqu'à ce qu'une condition soit remplie

Image illustrant la propriété récursive : s'appeler plusieurs fois.

Requêtes hiérarchiques et récursives dans SQL Server

Exemple concret de récursivité

Arbre généalogique – Trouver tous les pères sur 5 générations

  • Réduire le problème à un sous‑problème du même type
    1. Problème complet : trouver les cinq générations
    2. Sous‑problème : trouver le père, puis le père du père, …
  • Limiter le nombre d'étapes

Propriété récursive illustrée par l'arbre des ancêtres.

Requêtes hiérarchiques et récursives dans SQL Server

À savoir sur la récursivité

Avantages :

  • Résoudre des problèmes de manière récursive
  • Lecture et suivi faciles
  • La récursivité est bornée par la condition d'arrêt

Inconvénients :

  • Exécution plus lente
Requêtes hiérarchiques et récursives dans SQL Server

Exemple de récursivité – Somme de nombres

Définition mathématique

La somme des nombres consécutifs se définit récursivement ainsi :

number = 1 
    for iteration = 1
number = number + (iteration - 1) 
    for iteration > 1

La somme des nombres jusqu'à 5 est :

1+2+3+4+5 = 15
Requêtes hiérarchiques et récursives dans SQL Server

Exemple de récursivité – Somme de nombres

  • Récursivité en SQL : Common Table Expression - CTE
WITH calculate_SumOfNumber AS
     ( -- Initial Query
    SELECT 1 AS iteration, 1 AS SumOfNumber

UNION ALL -- Recursive Part SELECT iteration + 1, SumOfNumber + (iteration + 1) FROM calculate_SumOfNumber
WHERE iteration < 6 )
SELECT SumOfNumber FROM calculate_SumOfNumber
Requêtes hiérarchiques et récursives dans SQL Server

Passons à la pratique !

Requêtes hiérarchiques et récursives dans SQL Server

Preparing Video For Download...