<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=B%2A-Baum</id>
	<title>B*-Baum - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=B%2A-Baum"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=B*-Baum&amp;action=history"/>
	<updated>2026-06-11T06:35:47Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=B*-Baum&amp;diff=308106&amp;oldid=prev</id>
		<title>imported&gt;Siegbert v2: Wedekind verlinkt / Formatierung der Belege harmonisiert &amp; ggf. bib. Angaben ergänzt (bis auf lizenzrechtliche NIST Vorgabe)</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=B*-Baum&amp;diff=308106&amp;oldid=prev"/>
		<updated>2024-11-23T10:14:51Z</updated>

		<summary type="html">&lt;p&gt;Wedekind verlinkt / Formatierung der Belege harmonisiert &amp;amp; ggf. bib. Angaben ergänzt (bis auf lizenzrechtliche NIST Vorgabe)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;B*-Baum&amp;#039;&amp;#039;&amp;#039; ist eine [[Datenstruktur|Daten-]] bzw. [[Indexstruktur]] in der Informatik und eine Variante des [[B-Baum]]s, die 1973 von [[Donald Knuth]] vorgeschlagen wurde und sich vom B-Baum in der Forderung unterscheidet, dass Knoten mindestens zu 2/3 gefüllt sein müssen (anstatt nur 1/2 gefüllt).&amp;lt;ref name=&amp;quot;Knuth1973&amp;quot;&amp;gt;{{Literatur |Autor=Donald E. Knuth |Titel=The Art of Computer Programming, Volume III: Sorting and Searching |Verlag=Addison-Wesley |Datum=1973 |Sprache=en |ISBN=8131709833 |Seiten=488}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;Cormen2001&amp;quot;&amp;gt;{{bibISBN|0262032937}}&amp;lt;/ref&amp;gt; Dies wird vor allem durch eine veränderte Split-Strategie erreicht, bei der 2 volle Knoten auf 3 Knoten mit einem Füllgrad von 2/3 aufgeteilt werden.&lt;br /&gt;
&lt;br /&gt;
Der Name wird aus historischen Gründen oftmals für den [[B+-Baum]] verwendet, eine &amp;#039;&amp;#039;andere&amp;#039;&amp;#039; B-Baum-Variante, bei der Daten nur in den Blattknoten gespeichert und durch die Verkettung der Blattknoten Bereichsanfragen effizienter unterstützt werden.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
Knuth definiert einen B*-Baum&amp;lt;ref name=&amp;quot;Knuth1973&amp;quot; /&amp;gt; der Ordnung &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; durch folgende Forderungen:&lt;br /&gt;
&lt;br /&gt;
#Alle Knoten außer die Wurzel haben maximal &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; Kinder,&lt;br /&gt;
#alle Knoten außer Wurzel und Blätter haben mindestens &amp;lt;math&amp;gt;\frac{2m-1}{3}&amp;lt;/math&amp;gt; Kinder,&lt;br /&gt;
#die Wurzel hat mindestens &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt; und maximal &amp;lt;math&amp;gt;2 \left\lfloor\frac{2m-2}{3}\right\rfloor +1&amp;lt;/math&amp;gt; Kinder,&lt;br /&gt;
#alle Blätter haben die gleiche Entfernung von der Wurzel und&lt;br /&gt;
#alle Knoten, die keine Blätter sind, mit &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Kindern enthalten &amp;lt;math&amp;gt;k-1&amp;lt;/math&amp;gt; Schlüssel.&lt;br /&gt;
&lt;br /&gt;
== Unterschiede zum B-Baum ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:bstartree-overflow.svg|mini|350px|Überlaufbehandlung in einem B*-Baum der Ordnung 6: Beim ersten Insert läuft der Knoten in den Nachbarknoten über, beim zweiten Insert laufen beide Knoten über und ein neuer Knoten wird angelegt.]]&lt;br /&gt;
&lt;br /&gt;
Genauso wie im B-Baum enthalten auch im B*-Baum die inneren Knoten Daten.&amp;lt;ref name=&amp;quot;Knuth1973&amp;quot; /&amp;gt; Der Hauptunterschied zu B-Bäumen liegt in der zweiten Forderung, dass Knoten zu &amp;lt;math&amp;gt;2/3&amp;lt;/math&amp;gt; gefüllt sein müssen. Dazu ist eine Anpassung des B-Baum-Algorithmus zur Überlaufbehandlung nötig. Anstatt bei einem Überlauf sofort einen neuen Knoten anzulegen, wird zuerst überprüft, ob im rechten Nachbarknoten noch Platz ist. Ist dies der Fall, werden die Schlüssel der beiden Knoten und der trennende Schlüssel im Elternknoten gleichmäßig auf die beiden Knoten verteilt. Enthält der zweite Knoten &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; Schlüssel, so ist der Schlüssel &amp;lt;math&amp;gt;\lfloor (m+j)/2 \rfloor + 1&amp;lt;/math&amp;gt; der neue trennende Schlüssel. Ist im Nachbarknoten ebenfalls kein Platz, wird ein neuer Knoten angelegt und die Schlüssel der beiden ursprünglichen Knoten, der eingefügte Knoten, sowie der trennende Schlüssel des Elternknoten werden auf alle drei Knoten verteilt. Dabei sind die Schlüssel &amp;lt;math&amp;gt;\lfloor (2m-2)/3 \rfloor +1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\lfloor (4m-1)/3 \rfloor&amp;lt;/math&amp;gt; die trennenden Schlüssel im Elternknoten.&lt;br /&gt;
&lt;br /&gt;
Die höhere Datendichte hat einen höheren Verzweigungsgrad und somit eine geringere Baumhöhe zur Folge. Dadurch steigert sich die Performance gegenüber dem B-Baum, da weniger Knoten geladen werden müssen. Für das Level eines Schlüssels und damit die für einen Zugriff nötigen Knoten &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt; gilt in einem B*-Baum der Ordnung &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Schlüsseln: &amp;lt;math&amp;gt;l \le 1 + \log_{\lceil (2m-1)/3 \rceil} \frac{N+1}{2}&amp;lt;/math&amp;gt;. Im B-Baum hingegen müssen &amp;lt;math&amp;gt;l \le 1 + \log_{\lceil m/2 \rceil} \frac{N+1}{2}&amp;lt;/math&amp;gt; Knoten für einen Zugriff geladen werden.&amp;lt;ref name=&amp;quot;Knuth1973&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
&lt;br /&gt;
Der B*-Baum ist, wie schon der B-Baum, auf die Ablage im [[Sekundärspeicher]] optimiert. Zwischen dem [[Hauptspeicher]] und dem Sekundärspeicher werden Datenblöcke, auch Seiten (engl. Pages) genannt, fester Größe übertragen. Da Zugriffe auf den Sekundärspeicher gegenüber Berechnungen und Zugriffen auf den Hauptspeicher sehr lange dauern, muss die Zahl der für eine Operation nötigen Seiten aus dem Sekundärspeicher minimiert werden. Die Größe der Knoten wird deshalb so gewählt, dass diese genau in eine Seite passen. Dadurch eignen sich die verschiedenen Varianten des B-Baums sehr gut für [[Datenbank]]en und [[Dateisystem]]e. &amp;lt;!--B*-Bäume werden Beispielsweise in ... verwendet.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Benennung ==&lt;br /&gt;
Als B*-Baum wird häufig auch eine weitere Variante des B-Baums bezeichnet, die ebenfalls von Knuth beschrieben, aber nicht explizit benannt wird. Diese bekommt von [[Hartmut Wedekind (Informatiker)|Hartmut Wedekind]] 1974 ebenfalls den Namen B*-Baum, wird aber 1979 von [[Douglas Comer]] zur besseren Abgrenzung als [[B+-Baum|B&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;-Baum]] bezeichnet.&amp;lt;ref name=&amp;quot;Comer1979&amp;quot;&amp;gt;{{Literatur |Autor=Douglas Comer |Titel=Ubiquitous B-Tree |Sammelwerk=ACM Computing Surveys |Band=11 |Nummer=2 |Datum=1979 |Sprache=en |ISSN=0360-0300 |Seiten=121–137}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;Wedekind1974&amp;quot;&amp;gt;{{Literatur |Autor=Hartmut Wedekind |Titel=On the Selection of Access Paths in a Data Base System |Sammelwerk=IFIP Working Conference on Data Base Management |Datum=1974 |Sprache=en |ISBN=0720428092 |Seiten=385–397}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;Cormen2001&amp;quot; /&amp;gt; Allerdings verwendete [[Rudolf Bayer (Informatiker)|Rudolf Bayer]] schon 1977 den Begriff B*-Baum für die später als B&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;-Baum bezeichnete Variante, so dass sich eine eindeutige Abgrenzung nicht mehr vollständig durchsetzen konnte.&amp;lt;ref name=&amp;quot;Bayer1977&amp;quot;&amp;gt;{{Literatur |Autor=Rudolf Bayer, Karl Unterauer |Titel=Prefix B-Trees |Hrsg=David K. Hsiao |Sammelwerk=ACM Transactions on Database Systems (TODS) |Band=2 |Nummer=1 |Datum=1977 |Sprache=en |ISSN=0362-5915 |Seiten=11–26}}&amp;lt;/ref&amp;gt; Vom [[National Institute of Standards and Technology]] werden die Varianten des B-Baums nach Comers Unterteilung geführt.&amp;lt;ref name=&amp;quot;Nistbstartree&amp;quot;&amp;gt;Paul E. Black: &amp;#039;&amp;#039;&amp;quot;B*-tree&amp;quot;&amp;#039;&amp;#039;, in [https://xlinux.nist.gov/dads/ Dictionary of Algorithms and Data Structures] [online], Paul E. Black, ed. U.S. National Institute of Standards and Technology. 6.&amp;amp;nbsp;November 2007, abgerufen am 24.&amp;amp;nbsp;Januar 2011. Available from: https://xlinux.nist.gov/dads/HTML/bstartree.html&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;Nistbplustree&amp;quot;&amp;gt;Paul E. Black: &amp;#039;&amp;#039;&amp;quot;B&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;-tree&amp;quot;&amp;#039;&amp;#039;, in [https://xlinux.nist.gov/dads/ Dictionary of Algorithms and Data Structures] [online], Paul E. Black, ed., [https://www.nist.gov/ U.S. National Institute of Standards and Technology]. 6.&amp;amp;nbsp;November 2007, abgerufen am 24.&amp;amp;nbsp;Januar 2011. Available from: https://xlinux.nist.gov/dads/HTML/bplustree.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:B-Baum}}&lt;br /&gt;
[[Kategorie:Suchbaum]]&lt;br /&gt;
[[Kategorie:Datenbankindex]]&lt;br /&gt;
&lt;br /&gt;
[[en:B-tree#Variants]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Siegbert v2</name></author>
	</entry>
</feed>