MongoDB für Entwickler

Einführung in die Softwareentwicklung mit MongoDB

MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die sich immer größerer Beliebheit erfreut, nicht zuletzt weil sie Open Source zur Verfügung steht.

Die Kern-Features von MongoDB sind
  • Dokumentenorientierung: Ein einzelner Datensatz kann ein ganzes Objektnetz aufnehmen; der lästige Impedance Mismatch relationaler Datenbanksysteme entfällt damit komplett.
  • Schemafreiheit: Die logischen Namensräume, die sog. Collections, legen keine Einschränkungen für die gespeicherten Dokumente fest. Dies ist inbs. dann von Vorteil, wenn man mit häufig wechselnden Anforderungen an das Datenmodell konfrontiert wird.
  • Hochverfügbarkeit: Die Ausfallsicherheit wird durch Replikation sichergestellt, bei der ein Master/Slave-Verfahren mit automatischem Failover zum Einsatz kommt. Fällt der Master aus, wählen die verbleibenden Slaves selbständig einen neuen Master aus.
  • Horizontale Skalierung: zur Verteilung von Lese- und Schreibzugriffen auf mehrere Knoten bietet MongoDB ein Auto-Sharding an, bei dem Anwendungen transparent ihre Daten im Cluster verteilen kann.
Diese Schulung bieten zunächst einen allgemeinen Überblick über MongoDB an. Danach lernt der Teilnehmer das API von MongoDB sehr detailliert kennen, von einfachen CRUD-Operationen, über Index-Optimierung bis hin zu komplexen Abfragen z.B. mit dem Aggregation-Framework. Alle Beispiele können direkt am Rechner nachvollzogen werden. Insb. werden auch Themen wie Volltextsuche und Geodaten behandelt.

Nach dem Besuch der Schulung können Sie einschätzen, in welchen komplexeren Anwendungsfällen sich der Einsatz von MongoDB lohnt, Sie kennen alle wichtigen Features und sind in der Lage, eigene MongoDB-Anwendungen zu erstellen.

Voraussetzungen

Grundkenntnisse in ...

  • Datenbanksystemen, wünschenswert Abfragesprache wie SQL.
  • JavaScript / JSON.
  • einer Programmiersprache und Installation einer entsprechenden Runtime und IDE.

Inhalt

Einführung

  • Warum NoSQL-Datenbanken?
  • Installation MongoDB
  • Erste Schritte in der Mongo Shell
  • Daten-Import und erste Abfragen

Grundlegende Bausteine und die Konzepte

  • Datenbank
  • Collection
  • Document
  • Index
  • Datenbank-Treiber

Lese- und Schreiboperationen

  • CRUD: insert, update/upsert, remove; Write Concern
  • Queries: find, sort, limit, skip, explain

Indexe optimal einsetzen

  • Indexing + Query Tuning
  • Geodaten-Indicies
  • Text-Indexe (Volltextsuche)

Schema-Design

  • Schema-Freiheit
  • Abbildung von Assoziationen
  • Best Practices

Komplexe Abfragen

  • Aggregation-Framework
  • MapReduce

Ausfallsicherheit und Skalierung

  • Überblick Replica Sets
  • Überblick Sharding (horizontale Skalierung)

Fortgeschrittene Themen (sofern Zeit vorhanden)

  • Object/Document-Mapping in OO-Sprachen (analog zum O/R-Mapping bei relationale Datenbanken)
  • Automatisiertes Testen mit MongoDB (basierend auf dem Java-basierten Testframework NoSQLUnit und der Plattform Travis-CI)