NoSQL-Datenbanken gewinnen im Zeitalter von Big Data als Alternative zu herkömmlichen relationalen Datenbanken zunehmend an Bedeutung. Alternative Datenstrukturen, Korrektheitskriterien und Programmiermodelle bilden dabei wichtige technische Grundlagen für die schnelle und effiziente Verarbeitung ständig wachsender Datenmengen. Das Lehrbuch für Studierende der Informatik und verwandter Studiengänge, aber auch für Praktiker:innen im IT-Bereich gliedert sich in drei Teile: Teil I: Da NoSQL-Systemen ganz unterschiedliche nicht-relationale Datenbankmodelle zugrunde liegen, werden zunächst einmal die Charakteristika der unterschiedlichen NoSQL-Kategorien vorgestellt und der Entwurf von NoSQL-Datenbanken diskutiert. Dabei wird auf Key Value Stores, Document Stores, Column-Family-Systeme sowie Graphdatenbanken eingegangen. Zudem werden unterschiedliche Ansätze für Anfragen in NoSQL-Datenbanken vorgestellt. Teil II: NoSQL-Datenbanken profitieren als verteilte Datenbanken von den Ansätzen zur Partitionierung und Replikation der Daten, um Skalierbarkeit und Verfügbarkeit zu sichern. Die verteilte Verarbeitung erfordert neuartige Korrektheitskriterien, die die Konsistenz der Daten in einer abgeschwächten Form definieren und den bisherigen Transaktionsbegriff in Frage stellen. Hierbei werden auch die Möglichkeiten einzelner NoSQL-Datenbanken aufgezeigt, die Konsistenzeigenschaften oder Replikationsstrategie im System flexibel zu konfigurieren. Teil III: Es wird demonstriert, wie NoSQL-Datenbanken in komplexeren Analysen große Datenmengen verarbeiten. Für die Datenauswertung wird das Programmiermodell MapReduce vorgestellt, das die parallele Verarbeitung unterstützt und die Grundlage für Big-Data-Frameworks wie Apache Spark bildet. Dazu werden wichtige Operatoren, Datenstrukturen und Datenflusssprachen behandelt. Grundsätzlich können Daten als abgeschlossene Datenmenge (Batch) oder als unendlicher Datenstrom verarbeitet werden. Die Verarbeitung von Datenströmen (Streams) erfolgt eventgetrieben in Echtzeit. Dargestellt werden dabei auch die unterschiedlichen Schnittstellen, die hierfür zur Verfügung stehen. In einer Weiterentwicklung können komplexe Events definiert und gegen die Menge der ankommenden Daten getestet werden. In einem Ausblick werden weitere Aspekte kurz beleuchtet, die im Zusammenhang mit der Weiterentwicklung der Datenbanktechnologien eine große Rolle spielen, z.B. die Möglichkeiten neuer Hardware oder die Anforderungen des Datenschutzes.