TinyDB – NoSQL-Datenbank für Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Kompletter Leitfaden zu TinyDB: Leichte NoSQL-Datenbank für Python

Einführung

Moderne Anwendungen benötigen nicht immer leistungsstarke und komplexe Datenbanksysteme. Wenn ein Projekt keine Skalierbarkeit oder hohe Verarbeitungsgeschwindigkeit für große Datenmengen erfordert, reicht eine leichte, eingebettete Datenbank völlig aus. TinyDB – eine vollständig in Python geschriebene NoSQL-Datenbank – bietet eine praktische und einfache Lösung zur Speicherung strukturierter Daten ohne SQL.

TinyDB speichert Daten im JSON-Format und benötigt keine Serverinstallation. Das macht sie ideal für Skripte, kleine CLI-Tools, Desktop-Anwendungen, Prototypen und Bildungsprojekte. Die Bibliothek wiegt nur wenige Kilobyte und hat minimale Abhängigkeiten, was sie zu einer ausgezeichneten Wahl für leichte Lösungen macht.

Installation und grundlegende Konfiguration

TinyDB installieren

TinyDB lässt sich mit einem einzigen Befehl über pip installieren:

pip install tinydb

Für zusätzliche Funktionen stehen Erweiterungen zur Verfügung:

pip install tinydb[compression]  # Für Datenkomprimierung
pip install tinydb[yaml]         # Für YAML-Unterstützung

Datenbank erstellen

Erstellen einer Datenbank mit Dateispeicherung:

from tinydb import TinyDB
db = TinyDB('db.json')  # Die Datei wird automatisch erstellt

Erstellen einer Datenbank im Arbeitsspeicher:

from tinydb.storages import MemoryStorage
db = TinyDB(storage=MemoryStorage)

Kodierung und Parameter einstellen

from tinydb import TinyDB
from tinydb.storages import JSONStorage

# Kodierung einstellen
db = TinyDB('db.json', encoding='utf-8')

# JSON-Einrückungen für bessere Lesbarkeit
db = TinyDB('db.json', indent=4, separators=(',', ': '))

Grundlagen der Datenstruktur von TinyDB

TinyDB verwendet ein dokumentenorientiertes Datenmodell:

  • Daten werden als Liste von Dokumenten (Python-Dictionaries) gespeichert
  • Jedes Dokument hat eine eindeutige, automatisch generierte doc_id
  • Unterstützte Typen: Zeichenketten, Zahlen, Listen, Dictionaries, Boolean und Null
  • Dokumente können in einer Tabelle unterschiedliche Strukturen haben
  • Verschachtelung von Daten in beliebiger Tiefe wird unterstützt

Grundlegende Datenoperationen

Daten einfügen

Einfügen eines einzelnen Dokuments:

from tinydb import TinyDB
db = TinyDB('db.json')

# Einfaches Einfügen
db.insert({'name': 'Max', 'age': 30, 'city': 'Berlin'})

# Einfügen mit Rückgabe der ID
doc_id = db.insert({'name': 'Anna', 'age': 25})
print(f"Dokument mit ID hinzugefügt: {doc_id}")

Mehrere Dokumente einfügen:

users = [
    {'name': 'Anna', 'age': 25, 'profession': 'Designerin'},
    {'name': 'Peter', 'age': 40, 'profession': 'Programmierer'},
    {'name': 'Maria', 'age': 28, 'profession': 'Managerin'}
]

doc_ids = db.insert_multiple(users)
print(f"Dokumente hinzugefügt: {len(doc_ids)}")

Daten lesen

Alle Dokumente abrufen:

all_users = db.all()
print(f"Gesamtanzahl Benutzer: {len(all_users)}")

Dokument nach ID abrufen:

user = db.get(doc_id=1)
if user:
    print(f"Benutzer gefunden: {user['name']}")

Suchen und Filtern

Grundlagen der Suche mit Query:

from tinydb import Query
User = Query()

# Suche nach exakter Übereinstimmung
users = db.search(User.name == 'Max')

# Suche mit Bedingung
adults = db.search(User.age >= 30)

# Erstes passendes Dokument abrufen
user = db.get(User.name == 'Anna')

Komplexe Suchbedingungen:

# Logisches UND
young_designers = db.se                    

Empfehlungen