AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

B-Tree-Komponente gesucht

Ein Thema von Bernhard Geyer · begonnen am 3. Feb 2005 · letzter Beitrag vom 3. Feb 2005
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#1

B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 07:57
Kennt von euch jemand eine gute B-Tree-Komponente:

- Geeignet auch für große Datenmengen (5.000.000 Datensätze)
- Wenn möglich auch Unicode-Enabled
- Sourcen vorhanden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bitworm
Bitworm

Registriert seit: 28. Jun 2004
Ort: Bockhorn
90 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 08:03
Den Virtualtree. Der ist schnell, kann Unicode, komfortabel und durch sein Konzept sehr leicht an eigene Bedürfnisse anpassbar.
Rolf Heinen
Bye und bis denne

Bitworm
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 09:16
Mike's TreeView ist kein B-Tree, sondern "nur" ein Tree-Komponente zur visualisierung.
Aber ich hab schon was gefunden, was schnell und halbwegs vernünftig Implementiert ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
PRehders

Registriert seit: 31. Okt 2003
Ort: Hamburg
42 Beiträge
 
#4

Re: B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 09:20
Zitat von Bernhard Geyer:
Aber ich hab schon was gefunden, was schnell und halbwegs vernünftig Implementiert ist.
Lässt du uns an deiner Erkenntnis teilhaben?

Vielen Dank

Peter
Peter Rehders
Man sollte niemanden ernst nehmen, der sich ernst nimmt.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 09:36
Welchen sinn macht ein B-Tree als Komponente?
Wäre er dann nicht so allgemein gehalten, dass dir Boxing/Unboxing und TypCasting sämtliche Geschwindigkeitsvorteile kaputtmachen?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 09:45
Zitat von PRehders:
Lässt du uns an deiner Erkenntnis teilhaben?
B-Tree

Zitat von Robert_G:
Welchen sinn macht ein B-Tree als Komponente? Grübelnd...
Sehr schnelle Suche/Einfügen in einer sortierten Datenbasis.

Zitat von Robert_G:
Wäre er dann nicht so allgemein gehalten, dass dir Boxing/Unboxing und TypCasting sämtliche Geschwindigkeitsvorteile kaputtmachen?
Bei guter Implementierung - Nein. Nicht umsonst verwenden z. B. DBMS wie MS-SQL B-Trees für ihren Primärschlüssel
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 14:43
B-Tree ist eine irreführende Bezeichnung. B-Bäume sind etwas gaaanz anderes, als das was du gefunden hast. B <> binary!
B-Bäume sind Bäume die in Seiten organisiert sind, so dass ein Knoten nicht nur einen Wert, sonden ganze Listen von Werten enthalten, und sich die Kind-Knoten zwischen diese Werte gruppieren. Vorteil von B-Bäumen: Teilweise auf Langzeitdatenträger auslagerbar, und dadurch ein guter Kompromiss zwischen Speicheraufwand und Geschwindigkeit.

Was du jetzt gefunden hast ist ein sog. AVL-Baum. Das ist ein binärer Baum, bei dem zusätzlich darauf geachtet wird, dass benachbarte Blätter eines Blattes maximal 1 Niveau höher/tiefer liegen. Tritt der Fall auf dass dieses Verhältnis kaputt geht, wird im schlimmsten Fall der gesamte Baum neu organisiert (Links-/Rechtsrotation). Vorteil hierbei: In einem ausgeglichenen AVL-Baum ist die Suchgeschwindigkeit immer O(n)=n*log2(n). Man hat halt nur beim Einfügen und Entfernen von Knoten mehr oder weniger Umorganisationsaufwand.

Hätte ich jetzt einen Link zu einer B-Baum Komponente gepostet, hättest du mich wohl komisch angeschaut . (Hab aber keinen...)
B-Bäume sind im Übrigen saumäßig ekelhat zu coden. Die größten Schwierigkeiten bereitet das Löschen von Werten, da man zum Teil iterativ und zum Teil rekursiv im schlimmsten Fall den gesamten Baum komplett neu organisieren muss. Das ist der Tradeoff für die Auslagerbarkeit .

Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

Re: B-Tree-Komponente gesucht

  Alt 3. Feb 2005, 16:48
Zitat:
Vorteil von B-Bäumen: Teilweise auf Langzeitdatenträger auslagerbar, und dadurch ein guter Kompromiss zwischen Speicheraufwand und Geschwindigkeit.
Nicht nur das. Weil die Bäume ihre Childs in der gleichen Speicherseite verwalten sind die heutigen CPU's mit Cache ideal um sehr schnelle B-Tree's zu implementieren. Denn nicht nur die math. Komplexität der einzelnen Operationen entscheidet über die reale Performance sondern auch Mikrooperationen zum Zugriff und zur Maipulierung der Daten. Da B-Tree's im allgmeinen nicht über Zeiger-Arithmetik sondern mit indizierten Arrays[] arbeiten sind sie hier klar im Vorteil gegenüber den AVL-/RB-Tree's. Allerdings nutzt man B-Tree's tatsächlich vorwiegend für ReadOnly Datenmengen. Das Einfügen neuer "Nodes" in einen B-Tree kann unter Umständen das Umkopieren großer Datenmengen mit sich führen.

Ein anderer ganz wesentlicher Vorteil der B-Tree's ist deren Möglichkeit ge-packt/komprimiert zu werden. In B-Tree's ist es möglich das ganze Child-Baume mit identischer Struktur zusammengefasst werden können. Dies geht mit B-Tree's einfacher als mit den anderen Trees.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz