Sobes.tech
Junior

Was sind NoSQL-Datenbanken?

sobes.tech KI

Antwort von AI

NoSQL (Not Only SQL) ist eine Klasse von nicht-relationalen Datenbankmanagementsystemen, die Strukturen verwenden, die sich von den traditionellen Tabellen mit festem Schema unterscheiden. Sie sind für die Arbeit mit großen Mengen unstrukturierter, semi-strukturierter und polystukturierter Daten konzipiert und bieten flexible Skalierbarkeit und hohe Verfügbarkeit.

Hauptkategorien von NoSQL-Datenbanken:

  • "Schlüssel-Wert" (Key-Value Stores): Speichern Daten in Schlüssel-Wert-Paaren, wobei der Schlüssel den Wert eindeutig identifiziert.
    # Beispiel für die Darstellung von Daten in einem Schlüssel-Wert-Speicher
    user_data = {
        "user:123": {"name": "Alice", "age": 30},
        "product:456": {"name": "Laptop", "price": 1200}
    }
    
  • "Spaltenorientierte" (Columnar Databases): Speichern Daten spaltenweise, nicht zeilenweise. Optimiert für analytische Abfragen und die Verarbeitung großer Datenmengen.
  • "Dokumentenorientierte" (Document Databases): Speichern Daten in Form von Dokumenten (z.B. JSON, BSON, XML). Das Datenschema ist flexibel.
    // Beispiel eines Dokuments in einer dokumentenorientierten Datenbank
    {
      "_id": "prod_abc",
      "name": "Smartphone",
      "brand": "XYZ",
      "specs": {
        "display": "6.5 inch",
        "camera": "48MP"
      },
      "tags": ["Elektronik", "Mobil"]
    }
    
  • "Graphdatenbanken" (Graph Databases): Sind für die Speicherung und Verarbeitung von Daten in Form von Knoten (Vertices) und Kanten (Beziehungen) konzipiert. Werden zur Analyse von Beziehungen verwendet.

Unterschiede zu relationalen Datenbanken (SQL):

Merkmal Relational (SQL) NoSQL
Datenschema Feste, strenge Flexible, dynamisch
Skalierung Vertikal (Erhöhung der Serverleistung) Horizontal (Hinzufügen von Servern)
Normalisierung Hoch (Reduktion von Redundanz) Niedrig (Daten-Duplikation für Leistung)
ACID-Transaktionen In der Regel vollständige Unterstützung Unterschiedliche Unterstützung (manchmal BASE)
Abfragesprache SQL Variiert (oft API, spezifische Sprachen)

NoSQL-Datenbanken werden für Szenarien gewählt, die hohe Skalierbarkeit, flexible Schemata, schnelle Verarbeitung großer Datenmengen (Big Data), Arbeit mit semi-strukturierten/nicht-strukturierten Daten oder spezielle Datenmodelle (z.B. Graphen) erfordern.