Skip to main content

RWTH Aachen Computer Science i5/dbis assets for Lecture Datenbanken und Informationssysteme

Project description

DBIS Informatik 5 - Informationssysteme und Datenbank

Dokumentation zur Nutzung des B-Baum

In der Vorlesung haben Sie B-Bäume kennengelernt. Dieses Blatt gibt einen kurzen Überblick über ein von uns entwickeltes Python-Tool.
Im DBIS Image des Jupyter Hub der RWTH ist dieses Package bereits integriert, falls Sie das Tool lokal benutzen möchten, können Sie diese über den folgenden Befehl installieren:

pip install dbis-btree
# in jupyter notebooks:
!pip install dbis-btree

Die folgende Zelle importiert das Python Modul und ermöglicht dessen Nutzung innerhalb des Notebooks:

from dbis_btree.BBaum import BTree

B-Baum als Objekt

Als erstes müssen Sie eine neue Instanz der Klasse BTree erzeugen. Diesem Objekt werden im weiteren Verlauf Knoten nodes und Kanten edges hinzugefügt. Geben Sie die M-Value für den B-Baum an.

# zum Beispiel M = 4
M = 4
bbaum = BTree(4)
# anzeigen des noch leeren bbaums:
bbaum.draw()

Knoten

Neue Knoten zum Baum hinzufügen: add_node(name, elements)

Geben sie dem Knoten einen eindeutigen Namen und die Zahlen, die im Knoten sich befinden sollen.
Wenn im Graph schon der Knoten mit diesem Namen existiert, kommt der Fehler:

AssertionError: Bitte nutze einen anderen Name für diese Node.

Konstruktor einer Relation:

  • name: String - Eindeutiger Name des Knoten
  • elements: Int Liste - Liste aus Int
bbaum = BTree(4)
# hinzufügen Knoten A
name = "A"
elements = [10,20]

bbaum.add_node(name, elements)

# hinzufügen Knoten B
bbaum.add_node("B", [1,2])

# nicht vergessen, den baum anzuzeigen:
bbaum.draw()

B-Tree generated above

Kanten

Neue Knoten zum Baum hinzufügen: add_edge(parent, child, n_child):

Dies fügt im Baum eine Kante vom parent-Knoten zum child-Knoten, an der der n_child-ten Stelle im parent-Knoten.

Konstruktor einer Relation:

  • name: String - Eindeutiger Name des Parent Knoten
  • child: String - Eindeutiger Name des Child Knoten
  • n_child: Int - Position im Parent Knoten.
bbaum = BTree(4)
# hinzufügen Knoten A
name = "A"
elements = [10,20]

bbaum.add_node(name, elements)

# hinzufügen Knoten B
bbaum.add_node("B", [1,2])

# hinzufügen einer Kante an 1st Stelle
positionImParentNode = 1
bbaum.add_edge("A", "B", positionImParentNode)

# nicht vergessen, den baum anzuzeigen:
bbaum.draw()

B-Tree generated above

Häufige Fehler und Warnungen

Warning: node A, port f5 unrecognized

bedeutet, dass eine falsche Zahl beim Parameter n_child genutzt wurde.
add_edge(parent, child, n_child):
In unserem Fall wurde dieser Fehler wurde ausgelöst, als eine Kante an Stelle 5 in Knoten A hinzugefügt wurde. Jedoch besaß A nur insgesamt Stellen 1 bis 4 um Kanten hinzuzufügen.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbis_btree-1.0.6.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbis_btree-1.0.6-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file dbis_btree-1.0.6.tar.gz.

File metadata

  • Download URL: dbis_btree-1.0.6.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for dbis_btree-1.0.6.tar.gz
Algorithm Hash digest
SHA256 3b9ddbdc62b7681a97b3ed2875f067db7332bc8669a2a11f0ab16869bddd7aaf
MD5 73d3c214755e653b3cc42c6b3094ddb8
BLAKE2b-256 eed36373328be1e8608606846b1e5739517f1325d85d8fa8ecc8a498ae75f4fe

See more details on using hashes here.

File details

Details for the file dbis_btree-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: dbis_btree-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for dbis_btree-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0f287311fdf0e512d85f2ff88f82c395e75e1199e4587dd7f1d41fa227c51b7a
MD5 93c9804ffdb1a0fa40d27285e19f9bf6
BLAKE2b-256 101ca0af7ea1a72f996e5df163ac7a8607180948b256c8be9dc952b2afce1bcb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page