Moderne Datentechnologien

Dieser Kurs wird zum ersten Mal im Sommer 2012 für IT-Angestellte von Debeka gehalten.

Allgemeine Angaben

  • Dozent: Prof. Dr. Ralf Lämmel
  • Assistent: Herr Andrei Varanovich (M.Sc. Informatik)
  • Umfang: 1 Tag (4 Doppelstunden)
  • Der Vortrag erfolgt in deutscher Sprache.
  • Die Folien und Beispiele sind teilweise in englischer Sprache.
  • Vorraussetzungen: Personen mit Grundkenntnissen der Programmierung und Datenbanken

Ziel

Klassische, relationale Datenbanken sind für einige, zunehmend wichtige Anforderungen weniger geeignet als moderne Ansätze der NoSQL-Datenbanken und der parallelen, verteilten Programmierung für große Datenmengen. Zum einen müssen strukturierte Daten oft ohne Abbildung auf ein relationales Schema verarbeitet und gespeichert werden (XML, JSON). Zum anderen muss oft mit semi-strukturierten Daten (etwa Markup, HTML) umgegangen werden. Hinzu kommen Anforderungen durch Web 2.0 im Sinne von Annotationen und Verbindungen. Weiterhin muss ein hoher Grad an logischer Verteilung und einfachstem, web- basiertem Zugriff gewährleistet sein. Ausserdem müssen hohe Datenaufkommen und Echtzeit–anforderungen durch Parallelisierung und Verteilung unterstützt werden.

In diesem Seminar werden ausgewählte, etablierte Konzepte und Technologien der Datenhaltung und -verarbeitung auf der Basis von NoSQL-Datenbanken (insbesondere MongoDB) und parallelen, verteilten Programmiermodellen (insbesondere MapReduce) besprochen. Es werden typische Anwendungsfälle für diese Technologien und die Unterschiede zu klassischen Ansätzen besprochen.

Inhalte

  • Einführung
    • SQL, NoSQL, Object/Relational/XML Mapping, XML, JSON, Web 2.0
  • NoSQL-Datenbanken
    • Schlüssel/Werte-Paare, Dokumente und Collections, Konsistenzbegriff, MongoDB- APIs, Datenbankzugriff in Hochsprachen (Java/Scala)
  • Parallele, verteilte Programmierung für großen Datenmengen
    • Das Programmiermodel MapReduce, Zugrundeliegende Dateisysteme, Verschiedene MapReduce-artige Frameworks (Hadoop, DryadLINQ, GridGain)
  • Einordnung im Kontext von Cloud Computing

Ressourcen und Verweise