B+ TREE: Keresés, beszúrás és törlés OperaTIONS

⚡ Okos összefoglaló

A B+ Tree egy többszintű dinamikus index, amely csak a kapcsolt levélcsomópontokon tárolja az adatmutatókat, így a keresések pontosak és gyorsak. Lefedi a B+ Tree szabályait, azt, hogy miben különbözik egy B Tree-től, valamint a keresési, beszúrási és törlési műveleteket.

  • 🍃 Levéltárolás: A B+ fa az adatmutatókat csak a levélcsomópontokon tartja meg, ellentétben egy B fával.
  • 🔗 Összekapcsolt levelek: Minden levélcsomópont össze van kapcsolva, így egy teljes tartományú pásztázáshoz egyetlen lineáris menet szükséges.
  • 🔍 Keresés: A Search bináris keresést futtat a fában lefelé, és visszaadja a megfelelő rekordot.
  • beszúrása: Amikor egy levél megtelik, az elemeinek fele egy új levélre kerül, és a szülő frissül.
  • Töröl: A törlés eltávolít egy levélbejegyzést, és kölcsönveszi vagy összevonja a testvéreket az egyensúly megőrzése érdekében.

B+ TREE: Keresés, beszúrás és törlés OperaPélda

Mi az a B+ fa?

A B+ fa elsősorban többszintű dinamikus indexelés megvalósítására használják. A B-fához képest a B+ fa az adatmutatókat csak a fa levélcsomópontjain tárolja, ami pontosabbá és gyorsabbá teszi a keresési folyamatot.

A B+ Tree szabályai

Íme a B+ fa alapvető szabályai.

  • A levelek adatrekordok tárolására szolgálnak.
  • A rekordok a fa belső csomópontjaiban tárolódnak.
  • Ha egy célkulcs értéke kisebb, mint a belső csomópont értéke, akkor a tőle balra lévő mutatót követi a rendszer.
  • Ha egy célkulcs értéke nagyobb vagy egyenlő, mint a belső csomópont értéke, akkor a tőle jobbra lévő mutatót követi a rendszer.
  • A gyökérnek minimum két gyermeke van.

Miért használja a B+ Tree-t?

Íme néhány ok a B+ fa használatára:

  • A kulcsokat elsősorban a keresés segítésére használják a megfelelő levélre való irányítással.
  • Egy B+ fa egy „kitöltési tényezőt” használ a fa növekedésének és csökkenésének kezelésére.
  • A B+ fákban számos kulcs könnyen elhelyezhető a memórialapon, mivel nem rendelkeznek a belső csomópontokhoz tartozó adatokkal. Ezért gyorsan hozzáfér a levél csomópontján található faadatokhoz.
  • Egy átfogó, teljes átvizsgálás, amely az összes elemet letapogatja, mindössze egyetlen lineáris menetet igényel, mivel egy B+ fa összes levélcsomópontja össze van kapcsolva egymással.

B+ fa kontra B fa

Íme a B+ fa és a B fa közötti fő különbségek.

B+ fa B Fa
A keresőbillentyűk ismételhetők. A keresőbillentyűk nem lehetnek redundánsak.
Az adatok csak a levél csomópontjain kerülnek mentésre. Mind a levélcsomópontok, mind a belső csomópontok képesek adatokat tárolni.
A levél csomópontján tárolt adatok pontosabbá és gyorsabbá teszik a keresést. A keresés lassú a levél- és belső csomópontokon tárolt adatok miatt.
A törlés nem nehéz, mivel egy elem csak egy levélcsomópontból kerül eltávolításra. Az elemek törlése bonyolult és időigényes folyamat.
Az összekapcsolt levél csomópontok hatékonyabbá és gyorssá teszik a keresést. A levél csomópontjai nem kapcsolhatók össze.

Keresés OperaCIÓ

Egy B+ fában a keresés az egyik legegyszerűbben végrehajtható eljárás, amely gyors és pontos eredményeket ad.

A következő keresési algoritmus használható:

  • A szükséges rekord megtalálásához végre kell hajtania a bináris keresés a Fában elérhető rekordokon.
  • A keresési kulcs pontos egyezése esetén a megfelelő rekord visszakerül a felhasználóhoz.
  • Abban az esetben, ha a keresés során a pontos kulcsot nem találja meg a szülő, aktuális vagy levél csomópontban, akkor a „nem található” üzenet jelenik meg a felhasználó számára.
  • A keresési folyamat újra futtatható a jobb és pontosabb eredmények érdekében.

Keresés Operaciós algoritmus

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: A pontos kulccsal összeegyeztetett rekord megjelenik a felhasználó számára; ellenkező esetben a sikertelen kísérlet megjelenik a felhasználó számára.

betétlap OperaCIÓ

A következő algoritmus alkalmazható a beillesztési műveletre:

  • A csomópontokban lévő elemek 50 százaléka új levélre kerül tárolás céljából.
  • Az új levél szülője pontosan összekapcsolódik a minimális kulcsértékkel és egy új hellyel a fában.
  • Ossza fel a szülőcsomópontot több helyre arra az esetre, ha teljes mértékben kihasználná.
  • Most, a jobb eredmények érdekében, a középső kulcsot az adott levél legfelső szintű csomópontjához társítjuk.
  • Amíg a legfelső szintű csomópont nem található, folytassa a fenti lépésekben leírt folyamat iterációját.

betétlap Operaciós algoritmus

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: Az algoritmus meghatározza az elemet, és sikeresen beilleszti a kívánt levélcsomópontba.

betétlap OperaCIÓ

A fenti B+ fa minta példáját az alábbi lépések magyarázzák:

  • Először is, van 3 csomópontunk, és az első 3 elemet, amelyek az 1, 4 és 6, a csomópontok megfelelő helyeire adjuk hozzá.
  • Az adatsorozat következő értéke a 12, amelyet a fa részévé kell tenni.
  • Ennek eléréséhez oszd el a csomópontot, és adj hozzá 6-ot mutatóelemként.
  • Most egy fa jobb hierarchiája jön létre, és a fennmaradó adatértékeket ennek megfelelően módosítja a kee.ping tartsa szem előtt az alkalmazandó egyenlő vagy nagyobb, mint értékekre vonatkozó szabályokat a jobb oldali kulcs-érték csomópontokkal szemben.

Törölni OperaCIÓ

A törlési eljárás összetettsége a B+ fában meghaladja a beszúrási és keresési funkciókat.

A következő algoritmus alkalmazható egy elem B+ fából való törlésekor:

  • Először is meg kell találnunk a fában egy olyan levélbejegyzést, amely a kulcsot és a mutatót tartalmazza, majd törölnünk kell a levélbejegyzést a fából, ha a levél megfelel a rekord törlésének pontos feltételeinek.
  • Abban az esetben, ha a levélcsomópont csak a félig teltség kielégítő faktorát éri el, akkor a művelet befejeződik; ellenkező esetben a levélcsomópont minimális bejegyzésekkel rendelkezik, és nem törölhető.
  • A jobb és bal oldali többi összekapcsolt csomópont kiüríthet bármilyen bejegyzést, majd áthelyezheti azokat a levélcsomópontra. Ha ezek a kritériumok nem teljesülnek, akkor a levélcsomópontot és a hozzá kapcsolódó csomópontot kombinálniuk kell a fa hierarchiában.
  • Egy levélcsomópont jobb vagy bal oldali szomszédaival való egyesítésekor a legfelső szintű csomópontra mutató levélcsomópontban vagy a kapcsolódó szomszédban lévő értékbejegyzések törlődnek.

Törölni  OperaCIÓ

A fenti példa egy adott sorrendű B+ fából egy elem eltávolításának eljárását szemlélteti.

  • Először is, a törölni kívánt elem pontos helye azonosításra kerül a fában.
  • Itt a törlendő elem csak levélszinten azonosítható pontosan, az indexpozíció alapján nem. Ezért az elem törölhető a törlési szabályok, azaz a minimális kulcs értéke befolyásolása nélkül.

Törölni  OperaCIÓ

  • A fenti példában 31-et kell törölnünk a fából.
  • Meg kell találnunk a 31 előfordulásait az Indexben és a Leafben.
  • Láthatjuk, hogy a 31 mind az index, mind a levél csomópont szintjén elérhető. Ezért mindkét példányból töröljük.
  • De ki kell töltenünk a 42-re mutató indexet. Most megnézzük a jobb oldali, 25 év alatti gyermeket, és a minimális értéket vesszük, és indexként helyezzük el. Tehát, mivel a 42 az egyetlen jelenlévő érték, az lesz az index.

Törölni Operaciós algoritmus

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: A „K” kulcsot törlik, és a testvércsomópontoktól kölcsönöznek kulcsokat az n és a szülőcsomópontok értékeinek szükség esetén történő módosításához.

GYIK

A B+ Trees indexeli a mesterséges intelligenciát és az elemzéseket működtető nagyméretű táblázatokat és jellemzőtárolókat. Mivel a levelek összekapcsolódnak, a sorok vagy beágyazások közötti tartománykeresés gyors, így az MI-folyamatok hatékonyan kinyerhetik a betanítási adatokat, miközben az adatbázis kezeli az indexelést.

Igen. A mesterséges intelligencia asszisztensek képesek B+ Tree kódot beszúrni, keresni és törölni. C++, Javavagy Python egy egyszerű leírásból. Teszteld alaposan a kimenetet, mivel a felosztási és egyesítési logika könnyen elromolhat.

Az (m) rend a csomópontok gyermekeinek maximális száma. Egy csomópont legfeljebb m − 1 kulcsot tartalmazhat, és legalább ceil(m/2) gyermekkel kell rendelkeznie, ami kiegyensúlyozottá és sekélyé teszi a fát.

A B+ fák az alapértelmezett indexek a relációs adatbázisokban, mint például a MySQL (InnoDB), PostgreSQLés Oracle, valamint olyan fájlrendszerekben, mint az NTFS és az ext4. Kapcsolt leveleik nagyon hatékonnyá teszik a tartománylekérdezéseket és a szekvenciális olvasásokat.

Foglald össze ezt a bejegyzést a következőképpen: