Introductie tot recursie

Hiërarchische en recursieve queries in SQL Server

Jasmin Ludolf

Content Developer

Wat is recursie?

Recursie is het gebruik van een procedure, subroutine, functie of algoritme dat zichzelf één of meer keer aanroept tot aan een stopconditie

Een afbeelding van de recursie-eigenschap: zichzelf meerdere keren aanroepen.

Hiërarchische en recursieve queries in SQL Server

Recursie in de praktijk

Stamboom - Vind alle vaders tot 5 generaties terug

  • Herleid het probleem tot een kleiner probleem van hetzelfde type
    1. Hele probleem: vind alle vijf generaties
    2. Klein probleem: vind de vader, vind de vader van de vader, ...
  • Beperk het aantal stappen

De recursie-eigenschap van de toren van Hanoi.

Hiërarchische en recursieve queries in SQL Server

Feiten over recursie

Voordelen:

  • Lost problemen recursief op
  • Makkelijk te lezen en te volgen
  • Recursie is te begrenzen met een stopconditie

Nadelen:

  • Trage uitvoering
Hiërarchische en recursieve queries in SQL Server

Recursievoorbeeld - Som van getallen

Wiskundige definitie

De som van opeenvolgende getallen is recursief gedefinieerd als:

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

De som tot 5 is:

1+2+3+4+5 = 15
Hiërarchische en recursieve queries in SQL Server

Recursievoorbeeld - Som van getallen

  • Recursie met SQL: Common Table Expression - CTE
WITH calculate_SumOfNumber AS
     ( -- Initiële query
    SELECT 1 AS iteration, 1 AS SumOfNumber

UNION ALL -- Recursief deel SELECT iteration + 1, SumOfNumber + (iteration + 1) FROM calculate_SumOfNumber
WHERE iteration < 6 )
SELECT SumOfNumber FROM calculate_SumOfNumber
Hiërarchische en recursieve queries in SQL Server

Laten we oefenen!

Hiërarchische en recursieve queries in SQL Server

Preparing Video For Download...