Professional Documents
Culture Documents
B+Trees: Dr. Ömer ASLAN Bandırma Onyedi Eylül Üniversitesi Bilgisayar Mühendisliği
B+Trees: Dr. Ömer ASLAN Bandırma Onyedi Eylül Üniversitesi Bilgisayar Mühendisliği
• B+ Tree
• Bazı uygulamalar bir dosyanın iki görünümünü gerektirir: indexed (indekslenmiş) ve sequential
(sıralı) view (görünüm).
Kayıtlar bir anahtara göre indekslenir Kayıtlara anahtar kullanarak sırayla erişilebilir
• Bağlantı alanları, önceki bloğa ve sonraki bloğa işaret etmek için kullanılır (çift bağlantılı listeye
benzer)
• Blok Boyutu = 4
• Anahtar = Soyadı
• İleri İşaretçi
• Geri İşaretçi
Taşmalı Ekleme
• BAIRD...” di ekleme
Birleştirmeli Silme
• “DAVIS...” i silme
Birleştirmeli Silme
• Avantajlar
• Ekleme/silme işleminden sonra tüm dosyayı yeniden düzenlemeye gerek yoktur
• Dezavantajları
• Dosya, bloklanmamış dosyalardan daha fazla yer kaplar (çünkü bloklar yarı dolu olabilir)
• Kayıtların sırası mutlaka fiziksel olarak sıralı değildir (sadece blok içinde fiziksel sıralılık
garanti edilir)
Sıralı Sete İndeks Seti Ekleme
• İndeks, anahtarlar yerine ayırıcılar içerecektir
Basit Önek B+ Ağacı
• Sıralı set
• İndeks Seti: B-ağacı indeksine benzer, ancak sıralı set için en kısa ayırıcıları saklar
B+ Ağaç Dosyası Organizasyonu
• B+ Ağacı, adından da anlaşılacağı gibi, kayıtları dosyada depolamak için ağaç benzeri bir
yapı kullanır.
• Bir B+ ağacı, her düğümün yalnızca anahtarlar içerdiği (anahtar/değer çiftlerini değil) ve
bağlantılı izinle en altta ek bir düzeyin eklendiği bir B-tree ağacı olarak görülebilir.
• Her birincil anahtar için bir indeks değeri oluşturulur ve kayıtla eşlenir.
• B+ Ağacı, ikili arama ağacına çok benzer, tek farkı iki çocuk yerine ikiden fazla çocuğa
sahip olabilmesidir.
• Tüm bilgiler yaprak düğümde saklanır ve ara düğümler, yaprak düğümlere işaretçi görevi
görür.
• Yaprak düğümlerdeki bilgiler her zaman sıralanmış sıralı bağlantılı bir liste olarak kalır.
B+ Ağaç Artı ve Eksileri
• Artıları
• Ağacı dolaşma daha kolay ve hızlıdır.
• Tüm kayıtlar yalnızca yaprak düğümlerinde saklandığından ve sıralı bağlantılı listede
sıralandığından arama yapmak kolaydır.
• Dengeli bir ağaç yapısıdır ve herhangi bir ekleme/güncelleme/silme işlemi ağacın performansını
etkilemez.
• B+ ağaç boyutunda herhangi bir kısıtlama yoktur.
• Veri boyutu arttıkça/azaldıkça büyüyebilir/daralabilir.
• Eksileri
• Statik tablolar için verimsiz.
B+ Tree Zaman Karmaşıklığı
B+ Tree Kullanım Yerleri
• ReiserFS, NSS, XFS, JFS, ReFS ve BFS dosya sistemlerinin tümü, meta veri indeksleme için bu tür
ağaç kullanır.
• BFS (Breadth-first search) ayrıca dizinleri depolamak için B+ ağaçlarını kullanır.
• NTFS (New technology file system), dizin ve güvenlikle ilgili meta veri indeksleme için B+
ağaçlarını kullanır.
• EXT4 (Extended file system), dosya kapsamı indekslemesi için kapsam ağaçlarını (değiştirilmiş bir
B+ ağacı veri yapısı) kullanır.
• APFS, dosya sistemi nesne kimliklerinden diskteki konumlarına eşlemeleri depolamak ve dosya
sistemi kayıtlarını (dizinler dahil) depolamak için B+ ağaçlarını kullanır, ancak bu ağaçların yaprak
düğümlerinde kardeş işaretçiler yoktur.
• IBM Db2, Microsoft SQL Server, Oracle, Sybase ve SQLite gibi ilişkisel veritabanı yönetim
sistemleri tablo indeksleri için bu tür ağaçları destekler.
B- Tree ve B+ Tree Farkları
• B+ ağacı, veri işaretçilerini yalnızca ağacın yaprak düğümlerinde depolayarak indeksleme için
kullanılan B-ağacı dezavantajını ortadan kaldırır.
• Burada, veri işaretçileri yalnızca yaprak düğümlerinde mevcut olduğundan, yaprak düğümlerin
bunlara erişmek için tüm anahtar değerleri ve bunlara karşılık gelen veri işaretçilerini disk dosya
bloğuna kaydetmesi gerektiği not edilebilir.
B tree B+ tree
Tüm dahili ve yaprak düğümlerin veri işaretçileri Yalnızca yaprak düğümlerin veri işaretçileri
vardır vardır
Tüm anahtarlar yaprakta bulunmadığından, Tüm anahtarlar yaprak düğümlerindedir, bu
arama genellikle daha uzun sürer nedenle arama daha hızlı ve doğrudur
Ağaçta hiçbir anahtar kopyası tutulmaz Anahtarların kopyası korunur ve tüm düğümler
yaprakta bulunur
Ekleme daha fazla zaman alır ve bazen Ekleme daha kolaydır ve sonuçlar her zaman
öngörülebilir değildir aynıdır
Dahili düğümün silinmesi çok karmaşıktır ve Herhangi bir düğümün silinmesi kolaydır çünkü
ağaç birçok dönüşümden geçmek zorundadır tüm düğümler yaprakta bulunur
Yaprak düğümleri yapısal bağlantılı liste olarak Yaprak düğümleri yapısal bağlantılı liste olarak
saklanmaz saklanır
3 Seviyeli İndeks Seti
B+ Ağacında Arama
• “EMBRY” için arama yapın
• Düğüm 0'ı (Kök) Al
• “EMBRY”> “E” olduğundan, sağa gidin ve Düğüm 2'yi alın.
• “EMBRY”< “F” olduğundan, sola gidin ve Blok # 4
• Blok # 4'te “EMBRY” anahtar ile kaydı arayın
B+ Ağaç İşlemleri
•Sıra setinde blok faktörü 4
• Blok 2 dolu olduğundan, tek pozisyon Blok 2'den Blok 3'e bir anahtar getiren yeniden dağıtımdır.