Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

B + -Ağaçları. AVL Trees / Slide 2 İkincil Depolama için İndeksleme * AVL ağacı, eğer bütün yapı ana hafızaya sığabilirse iyi bir indeksleme yapısıdır.

Benzer bir sunumlar


... konulu sunumlar: "B + -Ağaçları. AVL Trees / Slide 2 İkincil Depolama için İndeksleme * AVL ağacı, eğer bütün yapı ana hafızaya sığabilirse iyi bir indeksleme yapısıdır."— Sunum transkripti:

1 B + -Ağaçları

2 AVL Trees / Slide 2 İkincil Depolama için İndeksleme * AVL ağacı, eğer bütün yapı ana hafızaya sığabilirse iyi bir indeksleme yapısıdır. n Bir işaretçiyi bulmak veya güncellemek için bir hafıza birimi (döngüsü) yeterlidir. * Eğer veri hafızaya sığamayacak kadar büyükse, AVL ağacının performansı ciddi ölçüde düşer n Bir işaretçiyi bulma veya güncelleme diske erişimi gerektirir. n Kökten ağaca kadar gezme diske log 2 n zamanı kadar erişmeyi gerektirir.  n = = 2 20 olduğu zaman 20 disk erişimi gerekir. 7200rpm hızla dönen bir disk için, bu işlem saniye alır. 10 arama işlemi 1 saniyeden fazla zaman alacaktır. Bu oldukça yavaştır.

3 AVL Trees / Slide 3 B + Ağacı * İşlemci çok hızlı olduğu için, daha çok cpu komutu kullanarak diske erişimi azaltmak önemlidir. * fikir: ağacın düğümlerinin çok çocuğa sahip olmasına izin verilmelidir. * Eğer ağaçtaki herbir iç düğüm M çocuğa sahip olursa, ağacın yüksekliği log 2 n yerine log M n olacaktır. n Örnek olarak, eğer M = 20, öyleyse log < 5. * Böylece, arama işlemini önemli ölçüde hızlandırabiliriz.

4 AVL Trees / Slide 4 B + Ağacı * Pratikte: Herbir iç düğüm için aynı sayıda çocuk tutmak imkansızdır. * M ≥ 3 olan bir B + -ağaç M-ary ağaçtır ve aşağıdaki özellikleri sağlar : n Herbir iç düğüm en fazla M çocuğa sahiptir. n Herbir iç düğüm, kök hariç,  M/2  -1 ve M-1 arasında anahtara sahiptir  Bu ağacın ikili ağaca dönüşmemesini sağlar. n Herbir düğümdeki anahtar sıralıdır. n Kök ya bir yaprağa sahiptir yada 1 ve M-1 arası kadar anahtara sahiptir. n Veri öğeleri yapraklarda depolanır. Bütün yapraklar aynı derinliktedir. Herbir yaprak  L/2  -1 ve L-1 arası kadar veri öğesi içerir. Bazıları için L (genellikle L << M, fakat çoğu örnekte M=L olduğu varsayılacak)

5 AVL Trees / Slide 5 Örnek * Burada, M=L=5 * Kayıtlar yapraklarda depolanmıştır, fakat burada sadece anahtarlar gösterilmektedir. * İç düğümlerde, sadece anahtarlar sıralıdır (bunlara ayırıcı anahtarlar da denilir.)

6 AVL Trees / Slide 6 M=L=4 için bir B + ağaç * Bu durumda sol ve sağ çocuk işaretçilerinden hala sözedebiliriz * Örnek, N in sol çocuk işaretçisi, J nin sağ çocuk işaretçisi ile aynıdır. * İç düğümlerin sol alt ağaç ve sağ alt ağaçlarından söz edilebilir

7 AVL Trees / Slide 7 B + Ağaç * İç düğümlerde hangi anahtarlar depolanır. * Bunu yapmanın değişik yolları vardır. Farklı kitaplar farklı yöntemler gösterir. * Bu ders kapsamında aşağıdaki mantık kullanılacaktır: n bir iç düğümün içindeki anahtar i, kendisinin i+1 altağacındaki en küçük anahtardır. (örnek. Anahtar i nin sağ altağacı) * Bu mantık takip edilse bile, aynı kümedeki elemanlar için tek bir B + -ağaç yapısı yoktur.

8 AVL Trees / Slide 8 B+ ağaç * Herbir düğüm/yaprak, bir I/O bloğunun içerisine sığması için tasarlanmıştır. Bir I/O blok oldukça fazla veri tutabilir. Böylece, bir iç düğüm çok fazla sayıda anahtar (çok büyük M değeri gibi) tutabilir. Bu ağacın birkaç katmanının olduğunu ifade eder ve birkaç disk erişii ile arama, ekleme veya silme işlemi yapılabilir. * B + -ağacı ticari veritabanlarında kullanılan popüler bir yapıdır. Aramayı daha fazla hızlandırmak için B+- ağacın ilk bir veya iki katmanı hafızada tutulur. * B + -ağacın dezavantajı düğümlerin çoğunun, çoğu zaman M-1 den daha az anahtar ihtiva etmesidir. Bu ciddi alan israfına yolaçabilir. Böylece, hafızada tutulan veri için iyi bir indeksleme yapısı değildir.

9 AVL Trees / Slide 9 Arama * Varsayalım ki K anahtarı bulunmak isteniyor. Koyu ile gösterilen yok takip edilir.

10 AVL Trees / Slide 10 Arama * x aranacak olan key olsun. * Kökten aramaya başlanır. * Eğer bir iç düğüm v ile karşılaşılınırsa v’de depolanan anahtarlarda x’ i lineer olarak ara. n Eğer v’ de x < K min ise, K min ’in sol çocuk işaretçisinden devam et. n Eğer v’ de ard arda olan K i için K i+1 K i ≤ x < K i+1, K i+1 in sol çocuk işaretçisinden devam et. n Eğer v’de x ≥ K max ise, K max ın sağ çocuk işaretçisinden devam et * Eğer leaf v ile karşılaşırsak, v’de depolanan anahtarlar içinden x ‘ i lineer arama ile ararız. Eğer bulunursa, bütün kayıdı döndeririz, yoksa bulunamadı diye rapor edilir.

11 AVL Trees / Slide 11 Ekleme * Farzadelimki K anahtarını ve bu anahtarla ilgili kayıdı ekmek istiyoruz. * Arama işlemini kullanarak anahtar K’yı ara. * Bu bizi x yaprağına götürecektir * K’ yı x’e ekle n Düğümlerin bölünmesi (AVL ağaçlardaki dönüşler yerine) B + -ağaçların özelliklerini sağlamak için kullanılır [sonraki slayt]

12 AVL Trees / Slide 12 Bir yaprağa Ekleme * Eğer x yaprağı < M-1 anahtar içerirse, x’e K’yı ekle (x düğümündeki doğru yere eklenecek) * Eğer x önceden dolu ise (yani M-1 anahtar içeriyorsa). X’i böl n x’i ebeveyninden ayır. n K yı x’e ekle, x’ de K için alan varmış gibi davran. Şimdi x M anahtara sahip. n K’yı ekledikten sonra, x’i x L ve x R olarak iki parçaya böl, x L  M/2  en küçük anahtarları içerecek, ve x R kalan  M/2  anahtarı içerecek. J x R daki en küçük anahtar olsun. n x L ve x R nin ebeveyni olarak J yi ata ve x’in ebeveynine J yi ve yeni çocukları ekle

13 AVL Trees / Slide 13 Dolu olmayan yaprağa ekleme

14 AVL Trees / Slide 14 Yaprağın bölünmesi: T’ yi ekle

15 AVL Trees / Slide 15 Devamı

16 AVL Trees / Slide 16 l İki yaprağı yazmak için iki disk erişimi olur, ebeveyni güncellemek için bir disk erişim olur. l L=32 için, 16 ve17 eleman içeren yapraklar oluşturulur. Başka bölme işlemi olmaksızın 15 daha fazla ekleme yapılabilir.

17 AVL Trees / Slide 17 Başka bir örnek:

18 AVL Trees / Slide 18 Devamı => Need to split the internal node

19 AVL Trees / Slide 19 Bir iç düğümü bölme Dolu iç düğüm x içine K anahtarının eklenmesi: * x’i ebeveynınden ayır. * K’yı ve onun sol ve sağ çocuk işaretçilerinin ekle, Bu durumda x M anahtara sahiptir. * x L and x R olarak x’i 2’y2 böl, x L (  M/2  - 1 ) en küçük ahahtarları içerecektir, ve x R  M/2  en büyük anahtarları içerecektir. (  M/2  )inci anahtar J, x L or x R ın içine yerleştirilmemiştir. * J yi x L ve x R ‘ın ebeveyni yap ve x’ın eski ebeveynine J’ yı ve onun çocuk işaretçilerini ekle.

20 AVL Trees / Slide 20 Örnek: İç düğümü bölme

21 AVL Trees / Slide 21 Devamı

22 AVL Trees / Slide 22 Sonlandırma * Bölme dolu iç düğümlerle karşılaştığımız sürece devam edecektir. * Eğer bölünen x’in ebeveyni yoksa yeni bir kök oluşturulur ve yeni kök J’yi ve onun iki çocuğunu içerir.


"B + -Ağaçları. AVL Trees / Slide 2 İkincil Depolama için İndeksleme * AVL ağacı, eğer bütün yapı ana hafızaya sığabilirse iyi bir indeksleme yapısıdır." indir ppt

Benzer bir sunumlar


Google Reklamları