Çok Seviyeli Dizinleme ve B+ Trees

Slides:



Advertisements
Benzer bir sunumlar
MS OFFICE Access 2013.
Advertisements

Konu: Windows Sistem Araçları
Bilgilerimi sunuyorum
Web Bilgi Girişi Kullanım Rehberi
HIZLI ERİŞİM ARAÇ ÇUBUĞU MENÜLER ŞEKİL , RESİM EKLEME TABLO EKLEME
KLAVYE KULLANIMI.
WORD ÖZET WORD’ü başlatmak için; Görev Çubuğu’ndan Başlat + Programlar + Word Yeni paragrafa başlarken ENTER tuşu kullanılır.
Yrd.Doç.Dr.Levent Malgaca,2010
Öğr.Gör. Dr. Şirin KARADENİZ
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Sosyal Bilgiler Öğretmenliği Wordpress 2. Not
Temel Bilgisayar Bilimleri Dersi
WINDOWS ÖZET Klasöre girmek için veya dosya çalıştırmak için;
AVL-Ağaçları (Trees).
B+-Ağaçları.
Silme Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazı iç düğümlerde bir anahtar.
Silme Sil 12 Tek dönüş.
İkili Ağaçlar İkili Arama Ağaçları
İleti çubuğunda Düzenlemeyi Etkinleştir'i tıklatın,
BPR151 ALGORİTMA VE PROGRAMLAMA - I
İkili Arama Ağaçları (Binary Search Trees) BST
Çerez(Cookie) Kullanımı Oturum Yönetimi
En Küçük Yol Ağacı (Minimum Spanning Tree)
Karar Ağaçları İle Sınıflandırma
EVRE 1 BLOK 1 Uygulamalı Bilgisayar Eğitimi Öğr. Gör. A. Murat ERGİN E.Ü.T.F. Biyoistatistik ve Tıbbi Bilişim A.D.
Binary Ağaçlar (Ekleme/Silme Örnekleri)
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgelerin bilgisayarda gösterimine ilişkin iki standart yaklaşımı inceleyeceğiz.
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
İndex Yapıları.
Temel Bilgi Teknolojileri 2
Microsoft EXCEL (2) Kapsam Kopyalama, Yapıştırma Açıklama Ekleme Satır ve Sütunların Boyutlandırılması Bitişik Hücrelere Dayanarak Otomatik Veri Girme.
Temel Bilgisayar Bilimleri Dersi
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
Prof. Dr. Hüseyin BAŞLIGİL
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN.
İNTERNET PROGRAMLAMA - 1
Önce tasarım butonuna tıklayın
Microsoft Office Access
ETwinning Twinspace Kullanımı Nisan 2014.
POWER POİNT SUNU HAZIRLAMAK
HESAP TABLOSU PROGRAMLARI
Öğrencinin aldığı tüm derslerin dönem bazında görülebildiği ve dersler üzerinde tüm değişikliklerin yapılabildiği ekrandır. İlk yapılması gereken Hızlı.
ÖĞRENCİ İŞLERİ ÖĞRENCİ OTOMASYON SİSTEMİ BİLGİ SUNUMU
HESAP TABLOSU PROGRAMLARI
Bilgisayar II
WİNDOWS DİZİN YAPISI.
Microsoft EXCEL (1).
4. LİSTE OLUŞTURMA VE BİÇİMLENDİRME
Ödeme Planı.
Hafta 9. 2 Form Hazırlamak Veritabanın da bulunan tablolara veri girilmesini kolaylaştırmak ve görünümünü güzelleştirmek için form özelliğini kullanabilirsiniz.
Microsoft Office Access
Chapter 11: Dosya Sistem Arayüzü
LUCA Bilgisayarlı muhasebe programı
Raporlama Menüleri Emine TUNÇEL Kırklareli Üniversitesi, Pınarhisar Meslek Yüksekokulu.
KIRKLARELİ ÜNİVERSİTESİ
UNV13107 TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Veri tabanı Bilgisayar ortamında saklanan düzenli verilerdir. Bilgisayar ve ağ ortamındaki bilginin temel.
AVL(Adel’son-Vel’skiĭ and Landis) Ağacı AVL ağacı, iki alt ağacının yükseklikleri farkının en fazla 1 olabildiği dengeli ikili arama ağacıdır. AVL ağacında.
Kütük Organizasyonu1 Dosyalarda Farklı Yaklaşımlar.
Living in a Digital World Discovering Computers 2010 Bilgisayarların Keşfi Veritabanı Yönetimi Hafta 9.
Linux Komutları.
Algoritmalar II Ders 1: Alan zaman takası yöntemi.
Ünite 5 UYAP Genel İşlemler.
Dosya Yönetimi.
powerPoint nedir
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
SQL Server - Indexes.
NİŞANTAŞI ÜNİVERSİTESİ
form nedir ? öğrenmenin en kolay yolu bu slaytta... M İ CROSOFT OFF İ CE ACCES FORM nedir ve nas ı l kullan ı l ı r…
Kelime (Text) İşleme Algoritmaları
Sunum transkripti:

Çok Seviyeli Dizinleme ve B+ Trees

Basit Dizinleme Problemleri Eğer hafızadaki dizin uygun değilse: 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. Eklemeler ve silmeler yapıldığında disk girişleri 0(N) değerini alır. N Log(N+1) 15 anahtar 4 1000 ~10 100,000 ~17 1,000,000 ~20

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

Sıralı Dosya Düzenlemeleri Bir dosyanın iki alternatif görünümü arasında bir seçim oluşturma: 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.

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

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

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.

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

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

Dizinleme Grubu Ekleme Anahtar Kütük BERNE 1 CAGE 2 DUTTON 3 EVANS 4 FOLK 5 GADDIS 6

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 …

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

Kök 1 3 4 6 2 5 Index set EMBRY BOLEN CAMP FABER FOLKS ADAMS-BERNE

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.

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 17

B+ tree: İç/Kök Düğüm Yapısı P0 K1 P1 K2 ……………… Pn-1 Kn Pn Her bir Pi çocuk düğümünü işaret eder; her bir Ki bir arama anahtarı değeridir # arama anahtarı değeri = n, # gösterge değeri = n+1 Şartlar: K1 < K2 < … < Kn 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

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

Ö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* 20 33 51 63 40 Kök 6

Ö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 17 24 30 2* 3* 5* 7* 14* 15* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* 13 10

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 = F0 sayfa Seviye 2 = F sayfa = F1 sayfa Seviye 3 = F * F sayfa = F2 sayfa Seviye H+1 = …….. = FH 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) = FH. Bu , H = logF( ) 1 2 Seviye Yükseklik

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 = log133(1000000000/132) < 4 5 sayfada okunan değer

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

Örnek:B+ tree içerisine16*, 8* ekleme Kök 13 17 24 30 2* 3* 5* 7* 8* 14* 15* 16* 2* 5* 7* 3* 17 24 30 13 8* 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. 10

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

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. 5 13 17 24 30 Bu düğümleri arayıp düzenli bir şekilde girişleri tekrar dağıtınız ve ortadaki anahtarın yukarısına iteriz.  5 24 30 17 13 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 .) (17 ni yukarı ilettiğine ve dizinde 12

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

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

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

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

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

19* ve 20* sil ve karşılaştır Kök 17 5 13 27 30 2* 3* 5* 7* 8* 14* 16* 22* 24* 27* 29* 33* 34* 38* 39* 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? 15

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ı). 30 22* 27* 29* 33* 34* 38* 39* Yeni kök 5 13 17 30 2* 3* 5* 7* 8* 14* 16* 22* 27* 29* 33* 34* 38* 39* 16

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

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 22 5 13 17 20 30 14* 16* 17* 18* 20* 33* 34* 38* 39* 22* 27* 29* 21* 7* 5* 8* 3* 2* 17

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 Kök 17 5 13 20 22 30 2* 3* 5* 7* 8* 14* 16* 17* 18* 20* 21* 22* 27* 29* 33* 34* 38* 39* 18

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