Özyinelemeye giriş

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Jasmin Ludolf

Content Developer

Özyineleme nedir?

Özyineleme, belirli bir koşul sağlanana kadar kendini bir veya daha fazla kez çağıran prosedür, alt yordam, fonksiyon ya da algoritmadır

Kendisini defalarca çağırma özelliğini gösteren özyineleme görseli.

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Özyinelemeye gerçek hayat örneği

Aile Ağacı - Son 5 kuşaktaki tüm babaları bulun

  • Sorunu aynı türden daha küçük bir soruna indirgeme
    1. Tüm sorun: Beş kuşağın tümünü bulmak
    2. Küçük sorun: Babayı bul, babanın babasını bul, ...
  • Adım sayısını sınırlayın

Waldburg soy ağacını gösteren aile ağacı.

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Özyineleme hakkında bilgiler

Avantaj:

  • Sorunları özyinelemeli çözme
  • Okuması ve izlemesi kolay
  • Bitiş koşulu ile sınırlandırılabilir

Dezavantaj:

  • Yavaş çalışabilir
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Özyineleme örneği - Sayıların toplamı

Matematiksel tanım

Ardışık sayıların toplamı özyinelemeli olarak şöyledir:

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

5'e kadar sayıların toplamı:

1+2+3+4+5 = 15
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Özyineleme örneği - Sayıların toplamı

  • SQL ile özyineleme: 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
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Haydi pratik yapalım!

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Preparing Video For Download...