B+ TRÆ: Søg, indsæt og slet Operationer
⚡ Smart opsummering
B+ Tree er et dynamisk indeks på flere niveauer, der kun lagrer datapointere på linkede bladnoder, hvilket gør søgninger præcise og hurtige. Det dækker B+ Tree-regler, hvordan det adskiller sig fra et B-træ, samt søge-, indsættelses- og sletningsoperationer.
Hvad er et B+-træ?
A B+ træ bruges primært til at implementere dynamisk indeksering på flere niveauer. Sammenlignet med et B-træ gemmer B+-træet kun datapointerne på træets bladnoder, hvilket gør søgeprocessen mere præcis og hurtigere.
Regler for B+ Træ
Her er vigtige regler for et B+ træ.
- Blade bruges til at gemme dataposter.
- Records gemmes i træets interne noder.
- Hvis en målnøgleværdi er mindre end den interne node, følges markøren lige til venstre for den.
- Hvis en målnøgleværdi er større end eller lig med den interne node, følges markøren lige til højre for den.
- Roden har minimum to børn.
Hvorfor bruge B+ Tree
Her er grunde til at bruge et B+ træ:
- Taster bruges primært til at hjælpe med søgningen ved at føre til det rigtige blad.
- Et B+ træ bruger en "fyldningsfaktor" til at styre stigning og fald i et træ.
- I B+ træer kan adskillige nøgler nemt placeres på hukommelsessiden, fordi de ikke har de data, der er knyttet til de indre knudepunkter. Derfor vil den hurtigt få adgang til trædata, der er på bladknuden.
- En omfattende fuld scanning af alle elementerne kræver kun én lineær gennemgang, fordi alle bladknuder i et B+ træ er forbundet med hinanden.
B+ træ vs. B træ
Her er de vigtigste forskelle mellem et B+ træ og et B-træ.
| B+ træ | B Træ |
|---|---|
| Søgetaster kan gentages. | Søgenøgler kan ikke være overflødige. |
| Data gemmes kun på bladknuderne. | Både bladnoder og interne noder kan lagre data. |
| Data gemt på bladknuden gør søgningen mere præcis og hurtigere. | Søgning er langsom på grund af data gemt på blade og interne noder. |
| Sletning er ikke svært, da et element kun fjernes fra en bladnode. | Sletning af elementer er en kompliceret og tidskrævende proces. |
| Sammenkædede bladknuder gør søgningen effektiv og hurtig. | Du kan ikke sammenkæde bladknuder. |
Søg Operation
I et B+ træ er en søgning en af de nemmeste procedurer at udføre, og den giver hurtige og præcise resultater.
Følgende søgealgoritme er anvendelig:
- For at finde den nødvendige post, skal du udføre binær søgning på de tilgængelige poster i træet.
- I tilfælde af et nøjagtigt match med søgenøglen, returneres den tilsvarende post til brugeren.
- Hvis den nøjagtige nøgle ikke findes af søgningen i den overordnede, nuværende eller bladknude, så vises en "ikke fundet-meddelelse" til brugeren.
- Søgningsprocessen kan køres igen for bedre og mere præcise resultater.
Søg Operationsalgoritme
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."
Output: Den matchede rekord, der er sat i forhold til den nøjagtige nøgle, vises for brugeren; ellers vises et mislykket forsøg til brugeren.
indsatte Operation
Følgende algoritme er anvendelig for indsættelsesoperationen:
- 50 procent af elementerne i noderne flyttes til et nyt blad til opbevaring.
- Forælderen til det nye blad er nøjagtigt knyttet til den minimale nøgleværdi og en ny placering i træet.
- Opdel den overordnede node i flere placeringer, hvis den bliver fuldt udnyttet.
- For bedre resultater er den midterste tast nu knyttet til den øverste node på det pågældende blad.
- Indtil noden på øverste niveau ikke er fundet, skal du fortsætte med at gentage processen, der er forklaret i ovenstående trin.
indsatte Operationsalgoritme
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.
Output: Algoritmen vil bestemme elementet og med succes indsætte det i den nødvendige bladknude.
Ovenstående eksempel på B+-træ er forklaret i nedenstående trin:
- For det første har vi 3 noder, og de første 3 elementer, som er 1, 4 og 6, tilføjes på passende steder i noderne.
- Den næste værdi i dataserien er 12, som skal gøres til en del af træet.
- For at opnå dette skal du dividere noden og tilføje 6 som et pointerelement.
- Nu oprettes et højrehierarki af et træ, og de resterende dataværdier justeres i overensstemmelse hermed af kee.ping i betragtning af de gældende regler for værdier, der er lig med eller større end, i forhold til nøgle-værdi-noderne til højre.
Slette Operation
Kompleksiteten af sletteproceduren i B+ træet overgår indsættelses- og søgefunktionaliteten.
Følgende algoritme er anvendelig, mens du sletter et element fra B+-træet:
- Først skal vi finde en bladpost i træet, der indeholder nøglen og markøren, og derefter slette bladposten fra træet, hvis bladet opfylder de nøjagtige betingelser for sletning af poster.
- Hvis bladnoden kun opfylder den tilfredsstillende faktor at være halvt fuld, er operationen fuldført; ellers har bladnoden et minimum af poster og kan ikke slettes.
- De andre linkede noder til højre og venstre kan slette eventuelle poster og derefter flytte dem til bladet. Hvis disse kriterier ikke er opfyldt, skal de kombinere bladnoden og dens linkede node i træhierarkiet.
- Ved sammenlægning af en bladnode med dens naboer til højre eller venstre slettes poster af værdier i bladnoden eller den tilknyttede nabo, der peger på noden på øverste niveau.
Eksemplet ovenfor illustrerer proceduren til at fjerne et element fra et B+ træ af en bestemt rækkefølge.
- For det første identificeres de nøjagtige placeringer af det element, der skal slettes, i træet.
- Her kan det element, der skal slettes, kun identificeres nøjagtigt på bladniveau og ikke ved indeksplaceringen. Derfor kan elementet slettes uden at påvirke slettereglerne, som er værdien af den absolutte minimumsnøgle.
- I ovenstående eksempel skal vi slette 31 fra træet.
- Vi skal finde forekomsterne af 31 i Index og Leaf.
- Vi kan se, at 31 er tilgængelig på både indeks- og bladnodeniveau. Derfor sletter vi den fra begge instanser.
- Men vi skal udfylde indekset, så det peger på 42. Vi vil nu se på det rigtige barn under 25 år og tage minimumsværdien og placere den som et indeks. Så da 42 er den eneste tilstedeværende værdi, bliver det indekset.
Slette Operationsalgoritme
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
Output: Nøglen "K" slettes, og nøgler lånes fra søskende til justering af værdier i n og dens overordnede noder, hvis det er nødvendigt.




