Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 Çok Seviyeli Dizinleme ve B+ Trees. 2 Basit Dizinleme Problemleri Eğer hafızadaki dizin uygun değilse: 1.Dizini aramak yavaştır (ikili arama): –Bir.

Benzer bir sunumlar


... konulu sunumlar: "1 Çok Seviyeli Dizinleme ve B+ Trees. 2 Basit Dizinleme Problemleri Eğer hafızadaki dizin uygun değilse: 1.Dizini aramak yavaştır (ikili arama): –Bir."— Sunum transkripti:

1 1 Çok Seviyeli Dizinleme ve B+ Trees

2 2 Basit Dizinleme Problemleri Eğer hafızadaki dizin uygun değilse: 1.Dizini aramak yavaştır (ikili arama): –Bir araştırma için 3 veye 4 ‘den daha fazla arama yapısı uygun değildir. 2.Eklemeler ve silmeler yapıldığında disk girişleri 0(N) değerini alır. NLog(N+1) 15 anahtar4 1000~10 100,000~17 1,000,000~20

3 3 Çok Seviyeli Dizinler Bir dizin yada dizin dosyası oluşturmak: –Basit bir dizinleme oluşturulurken dosya anahtarlını sıralamak için harici sıralama kullanılır. –Bu dizinleme için bir dizin oluşturulur. –Önceki dizinleme için başka bir dizinleme oluşturulur ve bu yüzden Not: Bir dizinleme kayıt içerisindeki en geniş anahtarı bu dizini işaret eder. Ekleme ve silme işlemleri hala kesinleşmemiştir.

4 4 Sıralı Dosya Düzenlemeleri Bir dosyanın iki alternatif görünümü arasında bir seçim oluşturma: 1.Dizinleme: bir anahtar dizinlemede dosya belli bir kayıt gibi gözükebilir; veya Sıralı: Dosya, sıralı olarak ( fiziksel olarak bitişik kayıtlar ) erişilebilir, geri dönen, anahtar tarafından sırayla kaydedilir.

5 5 Uygulama örnekleri Üniversite öğrenci kayıt sistemi: –Dizinleme görünümü: kişisel kayıtlara giriş –Sıralı görünüm: Dereceler ilan edildiği zaman dizi verilerini bilgisayarda denetlemek Kredi kartı sistemi: –Dizinleme görünümü: interaktif banka hesabını kontrol etmek –Sıralı görünüm: ödemelerin dizi işlemeleri

6 6 İlk Tasarı Sıralı grupları koruma: –Kayıt kütüklerini gruplara ayırmak bir yoldur. –Kütüklerin düzenini bir kayıt gibi koruyarak ekleme veya silme yoluyla ayırmak, birleştirmek ve tekrar dağıtmak. Bu kütükler için basit ve tek seviyeli dizinleme oluşturmak. –Her bir kütüğün son kaydı için, anahtar içeren oluşturulmuş bir dizinleme seçmek.

7 7 Sıralı Grupları Koruma Ekleme ve silme oluşturulurken, sıralama ve yeniden düzenleme sorgu mantığına uymaz. Aşağıdaki yollarla grupları şöyle düzenleriz: –Kütükleri kayıt ederek ve gruplandırarak. –Kütükleri en azından yarı yarıya doldurarak. –Bağlantı alanları bir önceki ve bir sonraki kütükleri belirlemek için kullanılır. –Kütüklerde (ekleme/silme) gibi değişiklikler yapmanın sınırları: Eklemeler taşmalara neden olduğunda kütüklere ayrılır. Kütüklerde silme işlemleri underflow’a neden olduğu zaman kütükler birleştirilir yada tekrar dağıtılır.

8 8 Örnek: Ekleme Kütük boyutu = 4 Anahtar : Soyad ADAMS …BIXBY …CARSON …COLE … Kütük 1 Ekle “BAIRD …”: ADAMS …BAIRD …BIXBY … CARSON..COLE … Kütük 1 Kütük 2

9 9 Örnek: silme ADAMS …BAIRD …BIXBY …BOONE … Kütük 1 BYNUM…CARSON..CARTER.. DENVER…ELLIS … Kütük 2 Kütük 3 Sil “DAVIS”, “BYNUM”, “CARTER”, COLE…DAVISKütük 4

10 10 Dizinleme Grubu Ekleme Anahtar Kütük BERNE1 CAGE2 DUTTON3 EVANS4 FOLK5 GADDIS6

11 11 Tree Dizinlemeleri Eğer dizin belleği yerine uydurulabilirse bu plan yada proje çok kullanışlıdır. Eğer dizin belleği yerine uyduramazsa: –Bloklar içinde dizin yapısına bölünür, –Bu bloklar benzer bir ağaç yapısına göre düzenlenir. Tree Dizinlemeleri: –B Trees –B+ Trees –Basit ön ek B+ Trees –…

12 12 Ayırıcılar KütükAnahtar sırasıAyırıcı 1ADAMS-BERNE BOLEN 2BOLEN-CAGE CAMP 3CAMP-DUTTON EMBRY 4EMBRY-EVANS FABER 5FABER-FOLK FOLKS 6FOLKS-GADDIS

13 13 ADAMS-BERNE BOLEN CAMP EMBRY FABER FOLKS Index set Kök

14 14 B Trees Bilgisayar biriminde B-tree en önemli veri yapılarından biridir. B’yi ne ayakta tutar (ikili değil) B-tree çok yollu arama ağacıdır. B-trees’in pek çok farklı versiyonu önerildi fakat geniş dosyalar için B+trees kullanıldı. B+tree yaprak düğümlerindeki veri kayıtlarının ve daha hızlı sıralı bilgi girişlerinin mümkün olduğu bir B-tree’dir.

15 15 B+ Tree’nin Özelliklerinin Resmi Tanımı B+ Tree düzen özellikleri v : –Bütün iç düğmeler (kök hariç) en azından v anahtarlarına sahiptirler ve en çok 2v anahtarlarına sahip olabilirler. –Eğer yaprak düğüm değilse kök en azından 2 çocuğa sahip olmalıdır.. –Bütün yapraklar en iyi düzeydedir.. –K anahtarı ile iç düğüm K+1 çocuklarına sahip olurlar

16 16 B+ tree: İç/Kök Düğüm Yapısı P 0 K 1 P 1 K 2 ……………… P n-1 K n P n  Şartlar:  K 1 < K 2 < … < K n  Herhangi bir arama anahtarı içerisinde Pi tarafından işaret edilen K değeri, Eğer Pi = P0, gerekli K < K1 Eğer Pi = Pn, Kn  K Eğer Pi = P1, …, Pn-1, Ki  K < Ki+1 Her bir P i çocuk düğümünü işaret eder; her bir K i bir arama anahtarı değeridir # arama anahtarı değeri = n, # gösterge değeri = n+1

17 17  Gösterge L sol komşuyu işaret eder, R de sağ komşuyu işaret eder.  K 1 < K 2 < … < K n  v  n  2v (v bu B+ tree’nin düzenidir)  Çift için Ki* kullanacağız ve kolaylık sağlaması açısından L ve R ‘leri atlayacağız. B+ tree: yaprak düğüm yapısı L K 1 r 1 K 2 ……………… K n r n R

18 18 Örnek: 1’in düzeni ile B+ tree Her bir düğüm en azından 1 giriş ve en çok 2 giriş tutmalı 10*15*20*27*33*37*40* 46* 51* 55* 63* 97* Kök

19 19 Örnek: 2’nin düzeni ile B+ tree yapısını araştırma Arama: Verilen arama anahtarı ile kayıtlar nasıl bulunur? –Kökten başla ve yapraklara gitmek için anahtar karşılaştırmaları kullan Örnek: Tüm veri girişlerinin >= 24* olduğu anlarda 5*, 16*ara. –İlk yaparaktan başlayıp bir değerin >= 24 olması için bir sıra taraması yapılır, en son olarak ta bir dizi taraması yapılır.. Kök * 3*5* 7*14*15* 19*20*22*24*27* 29*33*34* 38* 39* 13

20 20 B+ tree’de bir değeri araştırmak için değer girmek Tipik olarak bir düğüm bir sayfadır (kütük veya küme) H B+Tree’nin yüksekliği olsun: Yaprak düğümüne ulaşmak için H+1 sayfasına ulaşmak gerekir. Bir düğüm içerisindeki göstergenin numarası F olsun(iç düğüm ve isimlendirme fanout için) –Seviye 1 = 1 sayfa = F 0 sayfa –Seviye 2 = F sayfa = F 1 sayfa –Seviye 3 = F * F sayfa = F 2 sayfa –Seviye H+1 = …….. = F H pages (iç-dış,yaprak düğümleri) –D veri girişlerinin olduğunu varsayalım. Bundan dolayı D/(F-1) yaprak düğümleri –D/(F-1) = F H. Bu, H = log F ( ) 1212 Seviye Yükseklik 0 2

21 21 B+ Trees Alıştırmaları Tipik Düzen: 100. Tipik Dolu faktör: 67%. – Ortalama fanout = 133 (iç-dış,# Göstergenin iç düğümü) – Tampon havuzundaki en üst düzeylerde sık sık tutulabilir: – Seviye 1 = 1 sayfa = 8 Kbytes – Seviye 2 = 133 sayfa = 1 Mbyte – Seviye 3 = 17,689 sayfa = 133 MBytes 1,000,000,000veri girişi olduğunu varsayalım. – H = log 133 ( /132) < 4 – 5 sayfada okunan değer

22 22 B+ Tree içine veri girişinş nasıl araya eklemek gerekir? Öncelikle çeşitli örnekleri inceleyelim.

23 23 Örnek:B+ tree içerisine16*, 8* ekleme Kök * 3*5* 7* 8* 2* 5*7* 3* * Bir yeni çocuk (yaprak düğüm)oluştur;Onun ailesine birden faza gösterge eklemek zorundayız ve böylece bir çok anahtar değeri oluşturulur. 14* 15* 16*

24 24 8* ‘i aramayı eklemek Ortadaki değeri yukarı kopyala (yaprak ayır) 2* 3*5* 7* 8* 5 Ana düğümde araya ğiriş eklemek için (5 yukarıya Yaprakta görünmesine dikkat et.) Kopyalandığında

25 25 (17 ni yukarı ilettiğine ve dizinde sadece bir kez belirtildiğine dikkat et Ana düğümü araya giriş eklemk için. Bunu bir yaprak ayrımıyla karşılaştır.) B+ tree’de araya girme Yukarı kopyalamak ve yukarı itmek arasındaki farkı anla Her iki ağaçta ve veri sayfasında minimum yer işgal ettiğinin garantisine dikkat et. Bu düğümleri arayıp düzenli bir şekilde girişleri tekrar dağıtınız ve ortadaki anahtarın yukarısına iteriz. 

26 26 Örnek: 8* ‘li araya eklendikten sonra B+ Tree Yükseklikte artışa yol açan kökün ayrılmasına dikkat et. 2*3* Kök *15* 19*20*22*24*27* 29*33*34* 38* 39* 135 7*5*8*

27 27 B+ tree’nin arasına veri girişi Özet Bul yaprak L yi düzelt. L üstüne veri girişini koy. – Eğer L yeterli boşluğa sahip olursa yap! – Değilse L ve yeni düğüm (L2 içerisine L yi ayırırız) Düzenli bir şekilde girişleri tekrar dağıt, orta anahtarı L2 ye koy Yukarı kopyalanır. L2 nin içerisinde L nin ailesine işaret edecek şekilde veri girişi ekle. Bu yinelemeli şekilde olabilir. – Dizin düğümünü ayırmak veri düzenli bir şekilde tekrar dağıtmak, fakat orta anahtarı yukarı itmek. (yaprak ayrımlarını karşılaştır.) Ağaç büyümesini ayırmak kök yüksekliğini büyümeyi artırır. – Ağaç büyümesi daha geniş veya en üste bir seviye daha uzamaya neden olur.

28 28 Terminoloji Kova Faktörü:Yaprak düğümü yerine uydurulabilen kayıtların sayısıdır. Fan-out :iç düğümün çocuklarının ortalama sayısı. B+tree dizini ilk dizin veya ikincil dizin olarak biri kullanılır. –İlk Dizin: Kayıtların depolanma yolu aslında karşılaştırılmıştır (aynı zamanda seyrek dizin çağrılmış) –İkincil Dizin: Dosyadaki kayıtlar ikincil dizinlerin anahtarlarına göre kovada gruplaşmazlar.(aynı zamanda yoğun dizin çağrılmıştır.)

29 29 B+ Tree Ağacında veri girişini silmek Önce örnekleri inceleyelim …

30 30 19* ve 20* Sil 2*3* Kök *16* 19*20*22*24*27* 29*33*34* 38* 39* 135 7*5*8* 22* 27* 29* 22* 24* Hala bir şey unutmadıkmı?

31 31 19* ve 20* sil ve karşılaştır 27 nin yukarı nasıl kopyalandığına dikkat et. Fakat onu yukarı taşıyabilirmiyiz? Şimdi 24 ü silmek istiyoruz Underflow u tekrar et! Fakat bu sefer tekrar dağıtabilirmiyiz? 2*3* Kök *16* 33*34* 38* 39* 135 7*5*8*22*24* 27 27*29*

32 32 24* ü silmek İki yaprak düğümünün birleştiğini gözle,ve 27 ailesine atıldı, fakat … Veri girişini aşağıya çekildiğini gözle (aşağısı) *27* 29*33*34* 38* 39* 2* 3* 7* 14*16* 22* 27* 29* 33*34* 38* 39* 5*8* Yeni kök

33 33 B+ Tree den veri girişini silmek: Özet Girişlerin uygun olduğu yerlerde,kökten başlayıp yaprak L yi bul.. Girişi çıkar. – Eğer L en azından yarı dolu olursa yap! – Eğer L sadece d-1 girişlerine sahipse, Kardeşinden ödünç olarak (L olarak aynı ana ile bitişik düğümü) yeniden tekrara dağıtmayı dene. Eğer yeniden tekrar dağıtma başarısız ise L ve kardeşi birleşir. Eğer birleşim meydana geldiyse ( L yi veya kardeşini gösteren) girişi L nin ailesinden silmek zorundasın. Kökü çoğaltabilen birleşim, yüksekliği azaltır.

34 34 Yaprak Olmayan Tekrar Dağıtım Örneği Tree 24* ün silinmesindeki sıralama aşağıda gösterilmiştir. (Başlangıçtaki tree ne olabilir?) Bir önceki örnekteki karşılaştırma sol çocuktan kökün sağ çocuğuna girişi yeniden dağıtabilir. Kök *16* 17*18* 20*33*34* 38* 39* 22*27*29*21* 7*5*8* 3*2*

35 35 Tekrar Dağıtımdan Sonra Sezgisel olarak tekrar dağıtılan girişler boyunca itilerek aile düğümünde girişleri ayırıyor. Dizin girişlerini anahtar 20 ile tekrar dağıtmak yeterlidir;gösterim için tekrar dağıtılmışmış 17 ye olduğu gibi sahip oluruz 14*16* 33*34* 38* 39* 22*27*29* 17*18* 20*21* 7*5*8* 2*3* Kök

36 36 Özet Tree yapılı dizinler sıralı aramalar için idealdirler, aynı zamanda aramalar içinde iyidir. B+ tree dinamik yapıdadır. – Dengelenen dizin ağaç yüksekliğini araya ekle ve sil, yüksek fanout (F) nadiren 3 veya 4 den daha fazla dinamik anlamına gelir. – Nerdeyse daima sıralanmış bir dosyayı korumaktan daha iyidir. – Tipik olarak ortalama 67% yer işgal eder. – Eğer veri girişleri veri kayıtlarıysa, ayrımlar kurtarılanı değiştirebilir.! Çok yönlülüğünden dolayı veri tabanı yönetim sistemlerinde çok genişçe kullanılan dizin VTYS nin iyi şekilde kullanılan bileşenlerinden biridir.


"1 Çok Seviyeli Dizinleme ve B+ Trees. 2 Basit Dizinleme Problemleri Eğer hafızadaki dizin uygun değilse: 1.Dizini aramak yavaştır (ikili arama): –Bir." indir ppt

Benzer bir sunumlar


Google Reklamları