Zum Inhalt

No-SQL Grundlagen

ACID beschreibt die Eigenschaften von Datenbanktransaktionen:

  • Atomarität: Alles oder nichts.

  • Consistency: Daten bleiben konsistent.

  • Isolation: Keine gegenseitige Beeinflussung paralleler Transaktionen.

  • Durability: Änderungen sind dauerhaft.

BASE vs ACID:

BASE (Basically Available, Soft State, Eventual Consistency) priorisiert Verfügbarkeit und Skalierbarkeit. Daten sind eventuell nicht sofort konsistent, Konsistenz wird aber über Zeit erreicht.

ACID (Atomicity, Consistency, Isolation, Durability) fokussiert auf sofortige Konsistenz und zuverlässige Transaktionen. BASE ist typisch für NoSQL, ACID für relationale Datenbanken.

Big Data:

Big Data entsteht durch:

• Unternehmen: Generieren massive Daten durch E-Commerce, Finanztransaktionen und Kundendaten.

• Soziale Medien: Millionen von Beiträgen, Likes und Interaktionen täglich.

• IoT-Geräte: Sensoren und vernetzte Geräte erfassen kontinuierlich Daten.

• Behörden: Speichern Informationen zu Bevölkerung, Verkehr und Infrastruktur.

Warum spielt Big Data eine Rolle?

Big Data ermöglicht tiefere Einblicke, bessere Entscheidungen und personalisierte Dienstleistungen. Es ist entscheidend für Innovationen in Bereichen wie Künstliche Intelligenz, Gesundheitswesen und Marketing. Ausserdem Wollen vor allem Social-Media Unternehmungen so viele Daten wie möglich über Benutzer speichern, um mit Gezielten Anzeigen, Werbung zu schalten.

Heutzutage sind Personenbezogene Daten viel Geld wert.

Die 4 Vs von Big Data:

  1. Volume (Datenmenge)

• Beschreibt die enormen Datenmengen, die von Unternehmen, IoT-Geräten, sozialen Medien usw. generiert werden.

  1. Velocity (Geschwindigkeit)

• Die Geschwindigkeit, mit der Daten generiert, verarbeitet und analysiert werden, z. B. in Echtzeit.

  1. Variety (Vielfalt)

• Unterschiedliche Datentypen wie strukturierte, unstrukturierte und semi-strukturierte Daten (z. B. Text, Bilder, Videos).

  1. Veracity (Wahrhaftigkeit)

• Die Genauigkeit und Zuverlässigkeit der Daten, die verarbeitet werden, um wertvolle Einblicke zu gewinnen.

CAP-Theorem Erklärung:

Das CAP-Theorem (Consistency, Availability, Partition Tolerance) beschreibt, dass verteilte Systeme bei Netzwerkausfällen immer nur zwei der drei Eigenschaften garantieren können:

  1. Consistency (Konsistenz): Alle Knoten im System zeigen zur gleichen Zeit dieselben Daten.

  2. Availability (Verfügbarkeit): Jeder Anfrage wird immer eine Antwort geliefert, auch wenn einige Knoten ausgefallen sind.

  3. Partition Tolerance (Partitionstoleranz): Das System funktioniert weiterhin, selbst wenn die Kommunikation zwischen Knoten unterbrochen ist.

Index:

Wozu ist ein Index gut?

Ein Index verbessert die Suchgeschwindigkeit und Effizienz bei Abfragen in einer Datenbank, indem er die Datensätze schneller auffindbar macht, ähnlich wie ein Index in einem Buch.

Technische Realisierung:

Ein Index wird häufig mit B-Bäumen oder Hash-Tabellen implementiert:

  • B-Bäume: Ermöglichen eine schnelle Suche durch sortierte Datenstrukturen.

  • Hash-Tabellen: Bieten direkten Zugriff auf Daten durch Hashing, ideal für eindeutige Schlüssel.

Einsatzbereiche von NoSQL-Datenbanken:

  • Echtzeit-Daten: Z. B. für IoT-Geräte oder Sensoren.

  • Social Media: Speichern von Benutzerprofilen und Interaktionen.

  • E-Commerce: Produktkataloge und Warenkörbe verwalten.

  • Grosse Datenmengen: Für schnelle Abfragen und Skalierbarkeit.

NoSQL ist flexibel und schnell, ideal für moderne Anwendungen.

Skalierung:

Skalierung allgemein:

Skalierung bedeutet, die Kapazität eines Systems zu erhöhen, um mehr Last oder grössere Datenmengen zu bewältigen.

Vertikale Skalierung:

Erhöht die Leistung eines einzelnen Servers, zB. durch mehr RAM, schnellere CPUs oder grössere Festplatten.

  • Vorteil: Einfach umzusetzen.

  • Nachteil: Begrenzte Skalierungsmöglichkeiten.

Horizontale Skalierung:

Fügt zusätzliche Server hinzu, um die Last zu verteilen.

  • Vorteil: Nahezu unbegrenzte Skalierbarkeit.

  • Nachteil: Komplexere Verwaltung, kostenintensiver

NoSQL-Datenbanken setzen oft auf horizontale Skalierung, um grosse Datenmengen effizient zu verarbeiten.