B+ TREE: otsimine, sisestamine ja kustutamine Operamine
โก Nutikas kokkuvรตte
B+ puu on mitmetasandiline dรผnaamiline indeks, mis salvestab andmeviideid ainult lingitud lehesรตlmedesse, muutes otsingud tรคpseks ja kiireks. See hรตlmab B+ puu reegleid, selle erinevust B-puust ning otsingu-, lisamis- ja kustutamistoiminguid.
Mis on B+ puu?
A B+ puu kasutatakse peamiselt dรผnaamilise indekseerimise rakendamiseks mitmel tasandil. Vรตrreldes B-puuga salvestab B+ puu andmeviited ainult puu lehesรตlmedesse, mis muudab otsinguprotsessi tรคpsemaks ja kiiremaks.
B+ puu reeglid
Siin on B+ puu olulised reeglid.
- Lehti kasutatakse andmekirjete salvestamiseks.
- Kirjed salvestatakse puu sisemistesse sรตlmedesse.
- Kui sihtvรตtme vรครคrtus on vรคiksem kui sisemise sรตlme vรครคrtus, jรคrgitakse sellest vasakul asuvat pointerit.
- Kui sihtvรตtme vรครคrtus on suurem vรตi vรตrdne sisemise sรตlme vรครคrtusega, jรคrgitakse sellest paremal asuvat pointerit.
- Juurel on minimaalselt kaks last.
Miks kasutada B+ puud
B+ puu kasutamise pรตhjused on jรคrgmised:
- Vรตtmeid kasutatakse peamiselt otsingu hรตlbustamiseks, suunates รตigele lehele.
- B+ puu kasutab puu suurenemise ja vรคhenemise haldamiseks โtรคiteteguritโ.
- B+ puude puhul saab arvukalt vรตtmeid hรตlpsasti mรคlulehele paigutada, kuna neil puuduvad sisemiste sรตlmedega seotud andmed. Seetรตttu pรครคseb see kiiresti juurde lehesรตlmes olevatele puuandmetele.
- Kรตigi elementide tรคielik skaneerimine nรตuab vaid รผhte lineaarset lรคbimist, kuna B+ puu kรตik lehesรตlmed on omavahel seotud.
B+ puu vs. puu B
Siin on peamised erinevused B+ puu ja B puu vahel.
| B+ puu | B puu |
|---|---|
| Otsinguklahve saab korrata. | Otsinguklahvid ei saa olla รผleliigsed. |
| Andmed salvestatakse ainult lehtede sรตlmedesse. | Andmeid saavad salvestada nii lehe- kui ka sisesรตlmed. |
| Lehesรตlmele salvestatud andmed muudavad otsingu tรคpsemaks ja kiiremaks. | Otsimine on aeglane lehtedel ja sisemistel sรตlmedel talletatud andmete tรตttu. |
| Kustutamine ei ole keeruline, kuna element eemaldatakse ainult lehesรตlmest. | Elementide kustutamine on keeruline ja aeganรตudev protsess. |
| Lingitud lehtede sรตlmed muudavad otsingu tรตhusaks ja kiireks. | Lehtede sรตlmi ei saa linkida. |
Otsing Operamine
B+ puus on otsing รผks lihtsamini teostatavaid protseduure ning see annab kiireid ja tรคpseid tulemusi.
Kasutatav on jรคrgmine otsingualgoritm:
- Vajaliku kirje leidmiseks peate kรคivitama kรคsu binaarotsing puus saadaolevatel kirjetel.
- Otsinguvรตtmega tรคpse vaste korral tagastatakse vastav kirje kasutajale.
- Kui tรคpset vรตtit ei leidu otsinguga vanem-, voolu- vรตi lehesรตlmes, kuvatakse kasutajale teade "ei leitud".
- Paremate ja tรคpsemate tulemuste saamiseks saab otsinguprotsessi uuesti kรคivitada.
Otsing OperaAlgoritm
1. Call the binary search method on the records in the B+ Tree. 2. If the search parameters match the exact key The accurate result is returned and displayed to the user Else, if the node being searched is the current and the exact key is not found by the algorithm Display the statement "Recordset cannot be found."
Vรคljund: Tรคpse vรตtmega vastendatud kirje kuvatakse kasutajale; vastasel juhul nรคidatakse kasutajale ebaรตnnestunud katset.
Sisesta Operamine
Sisestamistoimingu jaoks kehtib jรคrgmine algoritm:
- 50 protsenti sรตlmedes olevatest elementidest viiakse ladustamiseks uuele lehele.
- Uue lehe vanem lingitakse tรคpselt minimaalse vรตtmevรครคrtuse ja uue asukohaga puus.
- Jagage emasรตlm mitmeks asukohaks juhuks, kui see tรคielikult รคra kasutatakse.
- Nรผรผd, paremate tulemuste saavutamiseks, on keskmine vรตti seotud selle lehe kรตrgeima taseme sรตlmega.
- Kuni tipptaseme sรตlme ei leita, jรคtkake รผlaltoodud sammudes kirjeldatud protsessi kordamist.
Sisesta OperaAlgoritm
1. If inserting at least 1 entry into the leaf container does not make it full, then add the record. 2. Else, divide the node into more locations to fit more records. a. Assign a new leaf and transfer 50 percent of the node elements to a new placement in the tree. b. The minimum key of the binary tree leaf and its new key address are associated with the top-level node. c. Divide the top-level node if it gets full of keys and addresses. i. Similarly, insert a key in the center of the top-level node in the hierarchy of the Tree. d. Continue to execute the above steps until a top-level node is found that does not need to be divided anymore. 3. Build a new top-level root node of 1 key and 2 indicators.
Vรคljund: Algoritm mรครคrab elemendi ja sisestab selle edukalt vajalikku lehesรตlme.
รlaltoodud B+ puu nรคidisnรคidet selgitatakse jรคrgmiste sammudega.
- Esiteks on meil 3 sรตlme ja esimesed 3 elementi, mis on 1, 4 ja 6, lisatakse sรตlmede sobivatesse kohtadesse.
- Andmeseeria jรคrgmine vรครคrtus on 12, mis tuleb lisada puu osaks.
- Selle saavutamiseks jagage sรตlm ja lisage pointerelemendina 6.
- Nรผรผd luuakse puu parempoolne hierarhia ja รผlejรครคnud andmevรครคrtusi kohandatakse vastavalt kรคsuga kee.ping pidage meeles paremal asuvate vรตtme-vรครคrtuse sรตlmede suhtes kehtivaid vรตrdsete vรตi suuremate vรครคrtuste reegleid.
kustutama Operamine
Kustutusprotseduuri keerukus B+ puus รผletab sisestamise ja otsingu funktsioonide keerukuse.
B+ puust elemendi kustutamisel on rakendatav jรคrgmine algoritm:
- Esiteks peame leidma puust lehekirje, mis sisaldab vรตtit ja pointerit, ning seejรคrel kustutama lehekirje puust, kui leht vastab tรคpselt kirje kustutamise tingimustele.
- Kui lehesรตlm vastab rahuldavale tegurile, mille kohaselt on see vaid pooltรคis, siis toiming on lรตpule viidud; vastasel juhul on lehesรตlmel minimaalne kirjete arv ja seda ei saa kustutada.
- Teised paremal ja vasakul asuvad lingitud sรตlmed saavad tรผhjendada mis tahes kirjeid ja seejรคrel lehele teisaldada. Kui need kriteeriumid ei ole tรคidetud, peaksid nad lehesรตlme ja sellega lingitud sรตlme puuhierarhias รผhendama.
- Lehesรตlme รผhendamisel paremal vรตi vasakul asuvate naabritega kustutatakse lehesรตlme vรตi lingitud naabri vรครคrtuste kirjed, mis osutavad tipptaseme sรตlmele.
รlaltoodud nรคide illustreerib protseduuri elemendi eemaldamiseks kindla jรคrjekorra B+ puust.
- Esiteks tuvastatakse puus kustutatava elemendi tรคpsed asukohad.
- Siin saab kustutatavat elementi tรคpselt tuvastada ainult lehe tasandil, mitte indeksi paigutuse jรคrgi. Seega saab elemendi kustutada ilma kustutamisreegleid mรตjutamata, milleks on minimaalse vรตtme vรครคrtus.
- รlaltoodud nรคites peame puust kustutama 31.
- Peame leidma 31 eksemplarid indeksist ja lehest.
- Nรคeme, et 31 on saadaval nii indeksi- kui ka lehesรตlme tasemel. Seega kustutame selle mรตlemast eksemplarist.
- Aga me peame tรคitma indeksi, mis osutab 42-le. Nรผรผd vaatleme paremat last alla 25-aastasest ja vรตtame minimaalse vรครคrtuse ning paigutame selle indeksiks. Seega, kuna 42 on ainus olemasolev vรครคrtus, saab sellest indeks.
kustutama OperaAlgoritm
1) Start at the root and go up to the leaf node containing the key K. 2) Find the node n on the path from the root to the leaf node containing K. A. If n is root, remove K a. if root has more than one key, done b. if root has only K i) if any of its child nodes can lend a node Borrow key from the child and adjust child links ii) Otherwise merge the children nodes. It will be a new root c. If n is an internal node, remove K i) If n has at least ceil(m/2) keys, done! ii) If n has less than ceil(m/2) keys, If a sibling can lend a key, Borrow key from the sibling and adjust keys in n and the parent node Adjust child links Else Merge n with its sibling Adjust child links d. If n is a leaf node, remove K i) If n has at least ceil(M/2) elements, done! In case the smallest key is deleted, push up the next key ii) If n has less than ceil(m/2) elements If the sibling can lend a key Borrow key from a sibling and adjust keys in n and its parent node Else Merge n and its sibling Adjust keys in the parent node
Vรคljund: Vรตti โKโ kustutatakse ja vajadusel n-i ja selle vanemsรตlmede vรครคrtuste kohandamiseks laenatakse vรตtmed รตdedelt-vendadelt.




