z
B-Trees
z
B*-Trees
z
B+-Trees
Yrd.Doç.Dr. M. Ali Akcayol G. Ü. Bilgisayar Mühendisliği Bölümü
Çok Yollu Ağaçlar (Multi-Way Trees)
zz Disk üzerindeki bilgilerin elde edilmesinde kullanılır.Disk üzerindeki bilgilerin elde edilmesinde kullanılır.
zz 3600 rpm ile dönen bir disk için bir tur 16.7ms’dir. 3600 rpm ile dönen bir disk için bir tur 16.7ms’dir.
zz Ortalama olarak 8 ms’de (Latency time-Ortalama olarak 8 ms’de (Latency time-rotational delay) rotational delay) istediğimiz noktaya konumlanırız.
istediğimiz noktaya konumlanırız.
zz Saniyede yaklaşık 125 kez diskte konumlanabiliriz.Saniyede yaklaşık 125 kez diskte konumlanabiliriz.
zz Bir saniyede 25 milyon instruction gerçekleştirebiliriz.Bir saniyede 25 milyon instruction gerçekleştirebiliriz.
zz Bir disk erişimi yaklaşık 200.000 instruction zamanı almaktadır.Bir disk erişimi yaklaşık 200.000 instruction zamanı almaktadır.
zz Multi-Multi-Way ağaçlar disk erişim sayısını azaltmayı Way ağaçlar disk erişim sayısını azaltmayı amaçlamaktadır.
amaçlamaktadır.
G. Ü. Bilgisayar Mühendisliği Bölümü
Bir multi
Bir multi--way ağaç sıralı bir ağaçtır ve aşağıdaki özelliklere sahiptir. way ağaç sıralı bir ağaçtır ve aşağıdaki özelliklere sahiptir.
zz Bir m-Bir m-way arama ağacındaki her node, mway arama ağacındaki her node, m--1 tane anahtar (key) ve 1 tane anahtar (key) ve m tane çocuğa sahiptir.
m tane çocuğa sahiptir.
zz Bir node’taki anahtar, sol alt ağaçtaki tüm anahtarlardan Bir node’taki anahtar, sol alt ağaçtaki tüm anahtarlardan büyüktür ve sağ alt ağaçtaki tüm anahtarlardan küçüktür.
büyüktür ve sağ alt ağaçtaki tüm anahtarlardan küçüktür.
Çok Yollu Ağaçlar (Multiway Trees)
Örnek:
Örnek:26 elemanlı ve 5.dereceden bir multi26 elemanlı ve 5.dereceden bir multi--way ağaçway ağaç
51 62 42
6 12
26
55 60 64 70 90
45
1 2 4 7 8 13 15 18 25
27 29 46 48 53
G. Ü. Bilgisayar Mühendisliği Bölümü
B B--TreesTrees
zz Root (kök) node en az iki tane yaprak olmayan node’a sahiptir.Root (kök) node en az iki tane yaprak olmayan node’a sahiptir.
z
z Yaprak ve kök olmayan her node k-Yaprak ve kök olmayan her node k-1 tane anahtara ve k adet alt ağaç 1 tane anahtara ve k adet alt ağaç referansına sahiptir.
referansına sahiptir. (m/2 ≤ k ≤ m)
z Her yaprak node’u k – 1 anahtara sahiptir. (m/2 ≤ k ≤ m)
z Bütün yapraklar aynı seviyededir.
Çok Yollu Ağaçlar (Multiway Trees)
B
B--Tree OluşturulmasıTree Oluşturulması
class BtreeNodeC {
public int m = 4;
public bool yaprak = true;
public int[] keys = new int[m-1];
BtreeNodeC[] referanslar = new BtreeNodeC[m];
public BtreeNodeC(int key) {
this.keys[0] = key;
for (int i=0; i<m; i++)
referanslar[i] = null;
}
G. Ü. Bilgisayar Mühendisliği Bölümü
B
B--Tree ile data file gösterimiTree ile data file gösterimi
Çok Yollu Ağaçlar (Multiway Trees)
Bir anahtar ekleme
1.
Eğer boş alanı olan bir yaprağa yerleştirilecekse doğrudan yaprağın ilgili alanına yerleştirilir.
2.
Eğer ilgili yaprak doluysa, yaprak ikiye bölünür ve anahtarların yarısı yeni bir yaprak oluşturur. Eski yapraktaki en son anahtar bir üst seviyedeki node’aktarılır ve yeni yaprağı referans olarak gösterir.
3.
Eğer root ve tüm yapraklar doluysa, önce ilgili
yaprak ikiye bölünür ve eski yapraktaki en son
anahtar root’a aktarılır. Root node’da dolu olduğu
için ikiye bölünür ve eski node’daki en son anahtar
G. Ü. Bilgisayar Mühendisliği Bölümü
Bir anahtar ekleme
1- Yerleştirilecek yaprak boş ise,
Örnek: Anahtar olarak 7 eklenmesi
Çok Yollu Ağaçlar (Multiway Trees) Bir anahtar ekleme
1- Yerleştirilecek yaprak dolu ise,
Örnek: Anahtar olarak 6 eklenmesi
G. Ü. Bilgisayar Mühendisliği Bölümü
Bir anahtar ekleme 1- Yerleştirilecek yaprak dolu ve root node’da dolu ise,
Örnek: Anahtar olarak 13 eklenmesi
Çok Yollu Ağaçlar (Multiway Trees) Örnek:
5.Derece bir
M-Way ağaca
anahtar ekleme
G. Ü. Bilgisayar Mühendisliği Bölümü
Multi-Way Ağaçtan anahtar silme:
Çok Yollu Ağaçlar (Multiway Trees) Multi-Way
Ağaçtan anahtar silme:
(devam)
G. Ü. Bilgisayar Mühendisliği Bölümü
B*-Trees
z m.dereceden bir B*-tree’de, kök olmayan her node’daki anahtar sayısı (k) (2m-1)/3 ≤ k ≤ m-1 olarak bulunur.
z Node bölme işlemi B-Tree’dekine göre daha yavaştır. Tüm anahtarlar yeniden dağıtılır.
Çok Yollu Ağaçlar (Multiway Trees) B+-Trees
z B-Tree’de referans herhangi bir node ile yapılabilmektedir. B+- Tree’de ise referanas sadece yaprak node’ları ile yapılabilmektedir.
z Internal node’lar index-set olarak, yapraklar ise sequence set olarak adlandırılmaktadır.
G. Ü. Bilgisayar Mühendisliği Bölümü
B+-Trees (Devam)
Çok Yollu Ağaçlar (Multiway Trees)
Haftalık Ödev
B+ ağaçların kullanıldığı yerler hakkında araştırma yapınız. Lit B+ ağaçların kullanıldığı yerler hakkında araştırma yapınız. Literatür eratür taraması yaparak elde ettiğiniz makaleleri inceleyiniz. Kullanıl taraması yaparak elde ettiğiniz makaleleri inceleyiniz. Kullanıldığı dığı yerlerde ne amaçla kullanıldığına yönelik bilgileri içeren bir r yerlerde ne amaçla kullanıldığına yönelik bilgileri içeren bir rapor apor hazırlayınız .
hazırlayınız .