1 / 24

Lecture 14 B-trees, B*trees and Virtual B-trees (Sections 9.8-9.15)

Lecture 14 B-trees, B*trees and Virtual B-trees (Sections 9.8-9.15). P. W. D. M. P. T. W. A. B. C. D. G. I. M. N. P. R. S. T. U. W. آشنايي با ايندکسهاي B-Tree. ساختار يک ايندکس B-Tree چگونه است؟ هر نود ميتواند يک رکورد با تعداد ثابتي کليد (مثلا 100 ) باشد.

atalo
Download Presentation

Lecture 14 B-trees, B*trees and Virtual B-trees (Sections 9.8-9.15)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 14B-trees, B*trees and Virtual B-trees(Sections 9.8-9.15)

  2. P W D M P T W A B C D G I M N P R S T U W آشنايي با ايندکسهاي B-Tree ساختاريک ايندکسB-Tree چگونه است؟ • هر نود ميتواند يک رکورد با تعداد ثابتي کليد (مثلا 100) باشد. • تعداد کليددر هر گرهبين نصف تا تمام ظرفيت آن ميباشد. • براي اضافه نمودن کليد به نودي که ظرفيت آن تکميل شده: • آن نود را به 2نود جديد تقسيم ميکنند، • و بزرگترين کليد يکي از 2نود جديد به سطح بالاتر ارتقا پيدا ميکند. • حذف نمودن کليد از نودي که ظرفيت آن به مينيمم رسيده است: • ممکن است باعث ادغام نود با نود مجاور يا متوازن نمودن کليدها بين آنها گردد، • و پس از آن، نود سطح بالاتر نيز بايد به روز شود.

  3. P W D M P T W A B C D G I M N P R S T U W جستجوي کليد در ايندکس B-Tree روش جستجوي کليد دريک ايندکس B-Tree چيست؟ • براي جستجوي کليد k، بايستي اوّل نود ريشه (Root) به حافظه آورده شود. • در بين کليدهاي اين نود،کليدKiجستجو ميشود ، بطوريکه: • يا Kiاولين کليد در نود وk ≤ Kiباشد • ياKi -1 < k ≤Kiباشد. • در صورت يافتنKi ، نود مربوطه به حافظه آورده ميشود، • و عمل 2تکرارمي گردد تا به نود برگ (Leave) برسيم و آدرس داده مورد نظر پيدا شود.

  4. P W D M P T W A B C D G I M N P R S T U W ايجادکليد در ايندکس B-Tree • روش ايجاد کليد (Insert) در B-Treeچگونه است؟ • با روش قبل نود برگ (n) مربوط به کليدk جستجو ميشود. • در صورت وجود فضاي لازم: • کليدk به نود اضافه ميشود، • و اگر k از بزرگترين کليد موجود در نود بزرگتر باشد،نود سطح بالاتر نيز بروز ميشود. • در صورت پر بودن نود: • بايستي آن را به دو نود (n) و (n+1) تقسيم نمود، • کليد k را در يکي از دو نود جديد اضافه نمود، • و سپسنود سطح بالاتر را نيز بروز نمود، • که خود ممکن است باعث تکرار اعمال2 و 3تا ريشه بشود.

  5. T D D T C S Insertion of C, S, D, T into the initial page D C S T A Insertion of A causes node to split and the largest key in each leaf node(D and T)to be placed in the root node مثال ايجاد کليد در ايندکسB-Tree • Input Sequence: • C S D T A M P I B W N G U R K E H O L J Y Q Z F X V Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  6. T P D T M P D S I C A M and P are inserted into the rightmost leaf node, then insertion of I causes it to split مثال ايجاد کليد در ايندکسB-Tree • Input Sequence: • C S D T A M P I B W N G U R K E H O L J Y Q Z F X V Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  7. P W M D W D G M I S T C B N P A Insertions of B,W,N, and G into leaf nodes causes another split and the root is now full مثال ايجاد کليد در ايندکسB-Tree • Input Sequence: • C S D T A M P I B W N G U R K E H O L J Y Q Z F X V Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  8. P W M D U D W G M I S T C B N P A Insertion of U proceeds without incident, but R would have to be inserted into the rightmost leaf, which is full مثال ايجاد کليد در ايندکسB-Tree • Input Sequence: • C S D T A M P I B W N G U R K E H O L J Y Q Z F X V Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  9. P W D M P T W A B C D G I M N P R S T U W Insertion of R causes the rightmost leaf node to split, insertion into the root causes the root to split and the tree grows to level three مثال ايجاد کليد در ايندکسB-Tree • Input Sequence: • C S D T A M P I B W N G U R K E H O L J Y Q Z F X V Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  10. P Z D I M P T Z Q R S T U W Y Z A B C D E G H I J K L M N O P Insertions of K,E,H,O,L,J,Y,Q, and Z, continue with another node split مثال ايجاد کليد در ايندکسB-Tree • Input Sequence: • C S D T A M P I B W N G UR K E H O L J Y Q Z F X V Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  11. مثال ايجاد کليد در ايندکسB-Tree I P Z D G I M P T X Z Y Z A B C D J K L M Q R S T E F G H I N O P U V W X Insertions of F, X, and V finish the insertion of the alphabet • Input Sequence: • C S D T A M P I B W N G UR K E H O L J Y Q Z F X V Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  12. P W D M P T W A B C D G I M N P R S T U W خواص ايندکسB-Tree ايندکسB-Tree بطور رسمي چه خواصي دارد؟ (Formal definition) يکايندکسB-Tree با درجه m(Order) داراي خواص زير مي باشد: • هر نود ماکزيمم m فرزند دارد. • هر نود غير از ريشه (Root) و برگها (Leaves) لااقل m/2فرزند دارد. • نود ريشه لااقل دو فرزند دارد مگر هنگامي که ريشه همان برگ باشد. • تمام برگها (Leaves) در يک سطح قرار دارند. • مجموعه برگها يک ايندکس کامل و مرتب شده از کليدها را تشکيل ميدهد.

  13. خواص ايندکسB-Tree تعدادجستجودر B-Tree در بدترينحالت؟ (Worst-Case Search) • تعداد جستجوی لازم در B-Treeبراي يافتن يک کليد بستگي به تعداد سطوح دارد. • در بدترين حالتفقط نيمي از ظرفيت هر نود استفاده شده و تعداد سطوح ماکزيمم ميباشد. • در يک B-Tree با درجه m، رابطه تعداد کليد N و تعداد سطوح d در بدترين حالت برابر است با: N ≥ (2*[m/2] d-1) →d ≤ (1 + logm/2(N/2)) مثال: اگر تعداد کليد N=1000000 و B-Tree از درجه m=512 باشد: d ≤ 1 + log256500000→d ≤ 3.37 بنابر اين تعداد سطوحماکزيمم 3 ميباشد

  14. حذف کليد در ايندکس B-Tree روش حذف کليد (Deletion) در B-Treeچگونه است؟ براي حذف کليد k از نود (n): • اگر نود (n) بيش ازمينيمم ظرفيت مجاز کليد داشته باشد: • کليد k حذف شده، • و در صورتيکه اين کليد بزرگترين کليد نود (n) باشد نود سطح بالايي نيز بايستي بروز شود. • Merge:اگر نود (n) به مينيمم ظرفيت مجاز کليدها رسيده باشدو فضاي موجود در نود مجاور آن(Sibling) اجازه بدهد: • هر دو نود با يکديگر ادغام شده، • کليد kحذف مي شود، • و نود سطح بالايي نيز بروز ميگردد.(چرا؟)

  15. حذف کليد در ايندکس B-Tree روش حذف کليد (Deletion) در B-Treeچگونه است؟ براي حذف کليد k از نود (n) (ادامه...): • Redistribute: اگر نود (n) به مينيمم ظرفيت مجاز رسيده باشد و يکي از نودهاي مجاورکه نود پدر آنها يکي باشد (Sibling) بيش از مينيمم مجاز کليد داشته باشد: • کليدها بين دو نودتقسيم مي شوند، • سپس کليد kحذف شده، • و پس از آن، نود سطح بالاتر نيز بروز ميگردد.

  16. مثال حذف کليد در ايندکسB-Tree مثال(1): • Deleting “T” falls into case 1 • Deleting “U” falls into case 1 • Deleting “C” falls into case 2: Merge node 2 withnode 3

  17. مثال حذف کليد در ايندکسB-Tree مثال(1) ادامه... : • Deleting “W” falls into case 3: • Redistribute keys between node 4 and node 5 • Deleting “M” allows for two possibilities: case 3 or 1 • Merge Node 3 with Node 2; or • Redistribute keys between Node 3 and Node 4

  18. مثال حذف کليد در ايندکسB-Tree P Z I P G I M X Z D T B C K L M R S T Z A D J Q Y E G I O P V W X F H N U مثال(2): Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  19. Removal of key C : Change occurs only in leaf node P Z I B C A D P G I M X Z D T B D K L M R S T Z A J Q Y E G I O P V W X F H N U مثال حذف کليد در ايندکسB-Tree مثال(2) ادامه... : Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  20. مثال حذف کليد در ايندکسB-Tree Result of deleting P : Pchanges to O in the secondlevel and the root O Z I O F I M X Z D T B C K L M R S T Z A D J Q Y E G I O V W X F H N U مثال(2) ادامه... : Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  21. مثال حذف کليد در ايندکسB-Tree Result of deleting H: Caused an underflow, and twoleaf nodes were merged P Z I P I M X Z D T B C K L M R S T Z A D J Q Y E G I O P V W X F N U مثال(2) ادامه... : Prof. Hyoung-Joo Kim, Comp Eng, Seoul National Univ

  22. توزيع مجدد کليدها درB-Tree کاربردهای توزيعمجدد کليدها (Redistribution) در B-Treeکدامند؟ • توزيع مجدد کليدها بيندو نود مجاورکهاز يک نود پدر باشند (sibling) انجام پذيراست. • هنگام حذف يا ايجاد کليد باعث صرفه جويي در I/O يا به تاخير اندختن آن ميشود. • هنگام ايجاد کليد، اگر تعداد کليدهاي نود (n) به ماکزيمم رسيده باشد (Key overflow) : • در صورتي که يکي از نودهاي مجاور فضاي لازم را داشته باشد، • با توزيع مجدد کليدها بين دو نود از شکسته شدن نود (n) و ايجاد نود جديد جلوگيري ميشود. • هنگام حذف، اگر تعداد کليدهاي نود (n) به مينيمم مجاز رسيده باشد (Key underflow) : • در صورتي که يکي از نودهاي مجاور کليد اضافي داشته باشد، • با توزيع مجدد کليدها بين دو نود از حذف نود (n) جلوگيري ميشود.

  23. انواع ديگرB-Tree ايندکس B*Tree چگونه است؟ نوعي B-Tree مي باشد که در آن: • هر نود با لااقل2/3ظرفيت خود کليد دارد. • عمل شکسته شدن نودها به کمک توزيع مجدد کليدها حتي الامکان به تاخير انداخته مي شود. • ظرفيت نود ريشه بيش از نودهاي ديگر مي باشد تا: • درصورت Splitting، نودهاي جديد هر کدام 2/3ظرفيت کليد داشته باشند. • هنگامSplitting، هيچگاه يک نود به دو نود جديد تقسيم نمي شود بلکه: • دو نود مجاور با هم ادغام، • و سپس تبديل به سه نود مي شوند، • بطوريکه هر کدام 2/3ظرفيت کليد داشته باشند.

  24. انواع ديگر B-Tree ايندکس VirtualB-Tree چگونه است؟ نوعي B-Tree ميباشد که در آن از روش Buffering of Pages استفاده ميگردد: • نگهداري تعدادي از نودها (Pages) در حافظهRAM باعث صرفه جويي در تعداد دسترسي به ديسک يا I/O ميشود. • در اينصورت هنگام لزوم دسترسي به يک نود، اوّل به فضاي رزرو شده و نودهاي موجود در حافظه رجوع مي شود و اگر نود پيدا شد احتياجي به يک I/O جديد نميباشد. • درصورتلزوم انجام I/O و آوردن يک نود جديد به حافظه،يکي از صفحات که مدتي استفاده نشده است حذف شده و نود جديد جاي آنرا ميگيرد.(Least Recently Used) • روش ديگر بجاي روش LRU،اين مي باشد که حتّي الامکان صفحات مربوط به سطوح بالاتر در حافظه نگاه داشتهشده و صفحات مربوط به نودهاي برگ جايگزين شوند.

More Related