B+-Ağaçları.

Slides:



Advertisements
Benzer bir sunumlar
B+-Ağaçları.
Advertisements

Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Hafta 7: Öz Türleri ve Fonksiyonları BBY 306 Dizinleme ve Öz Hazırlama.
% A10 B20 C30 D25 E15 Toplam100.  Aynı grafik türü (Column-Sütun) iki farklı veri grubu için de kullanılabilir. 1. Sınıflar2. Sınıflar A1015 B20 C3015.
T.C. ORDU VALİLİĞİ İlköğretim Müfettişleri Başkanlığı TAM ÖĞRENME MODELİ TAM ÖĞRENME MODELİ.
HİPOTEZ TESTLERİNE GİRİŞ 1. Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
Tane Kavramının Öğretimi (Basamaklandırılmış Yönteme Göre)
Ağ Anahtarı (Switch) Çeşitleri
Graf Teorisi Pregel Nehri
AKIL (ZİHİN) HARİTASI.
DEPREME DAYANIKLI BETONARME YAPI TASARIMI
BSE 207 Mantık Devreleri Sayı sistemleri Sakarya Üniversitesi.
Literatür taramasının önemi  Daha önce neler yapıldığını çıkarmaya çalışmayan araştırmacılar alanlarında önemli katkı sağlama fırsatından yoksun kalırlar.
MATEMATİK PROJE ÖDEVİ Adı-Soyadı:Nihat ELÇİ Sınıfı-Numarası:7/C 1057
HİPOTEZ TESTLERİNE GİRİŞ Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
Sözsüz İletişimin Özellikleri
SAYILAR ve RAKAMLAR.
Excel 2007.
İndeksi Niçin Kullanırız?
0-1 Sırt Çantası Problemi
Proje Dosyası - Belgeleme - Raporlama
PROGRAMLI ÖĞRETİM Tanımı:
Bölüm 2: Bir Boyutta Hareket. Bölüm 2: Bir Boyutta Hareket.
TAM SAYILAR.
T- Testİ: ORTALAMALAR ARASI FARKLARIN TEST EDİLMESİ
DENEYSEL TERTİPLER VE PAZAR DENEMESİ
APARTMANLAR OYUNU NEDİR?
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
DOĞAL SAYILAR TAM SAYILAR
Ünite 9: Korelasyon Öğr. Elemanı: Dr. M. Cumhur AKBULUT.
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
KAY ve KGY toplu parametreli devrelerde geçerli
BİLGİSAYAR ÇEŞİTLERİ.
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme
Bilgisayar Donanım ve Sistem Yazılımı
BÖLÜM 1 Kuvvet ve Hareket. BÖLÜM 1 Kuvvet ve Hareket.
ÖZELLİK FAKTÖR KURAMI.
ZEE ZİHİN ENGELLİLERE BECERİ VE KAVRAM ÖĞRETİMİ
Swİtch çeşİtlerİ – GÖKÇE TENEKECİ.
PARAMETRİK HİPOTEZ TESTLERİ
ÖDE5024 DAVRANIŞ BİLİMLERİNDE İSTATİSTİK Yüksek Lisans
İleri Algoritma Analizi
TOPLU POSTALAMA İŞLEMİ İÇİN ETİKET OLUŞTURMA VE YAZDIRMA
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
NİŞANTAŞI ÜNİVERSİTESİ
SOSYAL PSİKOLOJİDE YÖNTEM
ELEKTRİK DEVRE TEMELLERİ
BÖLÜM 13 STATİK ELEKTRİK. BÖLÜM 13 STATİK ELEKTRİK.
Bilgisayar Bilimi Koşullu Durumlar.
LOJİK KAPILAR (GATES) ‘Değil’ veya ‘Tümleme’ Kapısı (NOT Gate)
Ayrıştırma Ağaçları Tanımlar Soldan ve Sağdan Türemeler ile İlişkisi
Bilgisayar Mühendisliğine Giriş
VERİTABANI YÖNETİM SİSTEMLERİ 3-Normalizasyon
NİŞANTAŞI ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Programlama Yapısı.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Ölçmede Hata Kavramı ve Hata Türleri
TYS102 ÖLÇME BİLGİSİ Yrd. Doç. Dr. N. Yasemin EMEKLİ
İleri Algoritma Analizi
Önbellek Hafızalar BIL-304: Bilgisayar Mimarisi
Ders 9: İkili arama ağaçları
PROBLEM ÇÖZME TEKNİKLERİ
Bilimsel Araştırma Yöntemleri
Chapter 6 Transform-and-Conquer
Çizge Algoritmalari 6. ders.
Bilimsel araştırma türleri (Deneysel Desenler)
Sunum transkripti:

B+-Ağaçları

İ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. 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 Bir işaretçiyi bulma veya güncelleme diske erişimi gerektirir. Kökten ağaca kadar gezme diske log2 n zamanı kadar erişmeyi gerektirir. n = 1048576 = 220 olduğu zaman 20 disk erişimi gerekir. 7200rpm hızla dönen bir disk için, bu işlem 0.166 saniye alır. 10 arama işlemi 1 saniyeden fazla zaman alacaktır. Bu oldukça yavaştır.

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 log2 n yerine logM n olacaktır. Örnek olarak, eğer M = 20, öyleyse log20 220 < 5. Böylece, arama işlemini önemli ölçüde hızlandırabiliriz.

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 : Herbir iç düğüm en fazla M çocuğa sahiptir. 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. Herbir düğümdeki anahtar sıralıdır. Kök ya bir yaprağa sahiptir yada 1 ve M-1 arası kadar anahtara sahiptir. 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)

Ö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.)

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

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: 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.

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.

Arama Varsayalım ki K anahtarı bulunmak isteniyor. Koyu ile gösterilen yol takip edilir.

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. Eğer v’ de x < Kmin ise, Kmin ’in sol çocuk işaretçisinden devam et. Eğer v’ de ard arda olan Ki için Ki+1 Ki ≤ x < Ki+1 , Ki+1 in sol çocuk işaretçisinden devam et. Eğer v’de x ≥ Kmax ise, Kmax ı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.

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 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]

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 x’i ebeveyninden ayır. K yı x’e ekle, x’ de K için alan varmış gibi davran. Şimdi x M anahtara sahip. K’yı ekledikten sonra, x’i xL ve xR olarak iki parçaya böl, xL M/2 en küçük anahtarları içerecek, ve xR kalanM/2 anahtarı içerecek. J xR daki en küçük anahtar olsun. xL ve xR nin ebeveyni olarak J yi ata ve x’in ebeveynine J yi ve yeni çocukları ekle

Dolu olmayan yaprağa ekleme

Yaprağın bölünmesi: T’ yi ekle

Devamı

İki yaprağı yazmak için iki disk erişimi olur, ebeveyni güncellemek için bir disk erişim olur. 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.

Başka bir örnek:

Devamı => Need to split the internal node

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. xL and xR olarak x’i 2’y2 böl, xL ( M/2 - 1 ) en küçük ahahtarları içerecektir, ve xR M/2 en büyük anahtarları içerecektir. (M/2)inci anahtar J, xL or xR ın içine yerleştirilmemiştir. J yi xL ve xR‘ın ebeveyni yap ve x’ın eski ebeveynine J’ yı ve onun çocuk işaretçilerini ekle.

Örnek: İç düğümü bölme

Devamı

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.