Datastructuren en algoritmen
Wat is de belangrijkste reden dat voor indexen in databases en bestandssystemen vaak B-bomen (inclusief B+-bomen) worden gebruikt in plaats van binaire zoekbomen?
- AElke knoop bevat veel sleutels, waardoor de boom laag blijft en het bereik bij elke gelezen knoop sterk wordt ingeperkt; zo zijn er minder bloklezingen van schijf of vergelijkbare opslag nodig
- BElke knoop bevat maar één sleutel, dus er zijn minder vergelijkingen nodig dan in een binaire zoekboom
- CDe boom hoeft bij invoegen niet te worden aangepast, dus hij is eenvoudiger te implementeren dan een binaire zoekboom
Antwoord en toelichting tonen
Antwoord: A. Elke knoop bevat veel sleutels, waardoor de boom laag blijft en het bereik bij elke gelezen knoop sterk wordt ingeperkt; zo zijn er minder bloklezingen van schijf of vergelijkbare opslag nodig
Schijven en SSD's lezen gegevens in blokken van enkele kilobytes, ook als er maar één byte nodig is, dus het aantal leesbewerkingen beperken is belangrijk. Een B-boom zet honderden sleutels in één knoop (één blok), zodat elke gelezen knoop zich honderdvoudig vertakt; zelfs 100 miljoen records zijn in 3 tot 4 niveaus bereikbaar. Raakt een knoop bij invoegen of verwijderen te vol, dan wordt hij gesplitst, en wordt hij te leeg, dan wordt hij samengevoegd; zo blijven alle bladeren op dezelfde diepte. Een binaire zoekboom met 100 miljoen records heeft minstens ongeveer 27 niveaus, en op elk niveau een ander blok lezen is traag.