Zusammenfassung der Bachelor Thesis:
„Analyse von verteilten relationalen und verteilten nichtrelationalen Datenhaltungskonzepten“
12.09.2017 von Felix Gündling
Dieser Bericht fasst den Inhalt meiner Bachelor Thesis zusammen, die im Rahmen eines dualen Studiums an der Berufsakademie Rhein-Main in Zusammenarbeit mit der syntegris information solutions GmbH als Abschlussarbeit verfasst wurde. Der Bericht soll beispielhaft aufzeigen, mit welchen Themen man sich im dualen Studium bei syntegris beschäftigen kann.
Der Titel verrät, dass es in meiner Bachelor Thesis um verteilte Datenhaltungskonzepte ging. Dabei können ganz konkret zwei Ansätze voneinander unterschieden werden. Zunächst ist das „klassische“ relationale Modell zu nennen, das bereits Anfang der 1970er Jahre entwickelt wurde. Das relationale Modell bildet die Grundlage für die verbreiteten relationalen Datenbanksysteme, die beispielsweise von Herstellern wie Oracle, Microsoft oder IBM angeboten werden. Zum anderen gibt es neuere Ansätze zur Datenhaltung, die unter dem Oberbegriff „NoSQL“ zusammengefasst werden können. NoSQL steht hier für „Not Only SQL“.
Dabei handelt es sich um diverse nichtrelationale Systeme mit sehr unterschiedlichen Möglichkeiten zur Datenmodellierung, die allerdings als Gemeinsamkeit haben, dass sie auf das relationale Modell gänzlich verzichten. Es werden zudem neben SQL weitere Anfragesprachen unterstützt. Eine der Besonderheiten von solchen nichtrelationalen Systemen ist die einfache Skalierbarkeit. Diese kann erreicht werden, indem ein System aus verteilt vorliegenden Servern aufgebaut wird. Daten werden dann über mehrere Server hinweg verteilt gespeichert, wodurch eine Lastverteilung ermöglicht werden kann. Eine derartige Skalierung ist grundsätzlich bei klassischen relationalen Datenbanksystemen nicht von Beginn an möglich.
Es gibt allerdings in der jüngeren Vergangenheit Ansätze von Anbietern relationaler Datenbanksoftware, die genau dieses „Problem“ von relationalen Systemen beheben sollen. Insbesondere der Begriff des Sharding ist hier relevant. Durch sogenannte Sharding-Features in relationalen Datenbanksystemen versuchen Anbieter wie Oracle, die Verteilung des Datenbestands auch in relationalen Datenbanksystemen zu ermöglichen. Weil Sharding ein recht aktuelles Thema ist, kam es für die Betrachtung im Rahmen einer Bachelor Thesis in Frage. So wurde bei Oracle zum Beispiel erst mit der momentan aktuellsten Version der Datenbank (12c Release 2) ein Sharding-Feature eingeführt.
Die nachfolgende Abbildung zeigt, was Sharding bewirken kann, nämlich das horizontale Verteilen eines Datenbestands auf unabhängige Server („distributed partitioning“).
Quelle: http://bit.ly/2herxfK
Zum Aufbau der Thesis kann gesagt werden, dass ich zunächst intensiv die theoretischen Grundlagen der Themen aus der einschlägigen Literatur herausgesucht und aufbereitet habe. Im Anschluss an diesen eher theoretischen Teil folgte ein praktischer Teil, für den zwei konkrete Angebote herausgesucht wurden, mit denen sich das Sharding in relationalen Systemen umsetzen lässt.
Diese Angebote wurden im praktischen Teil der Bachelor Thesis umfassend analysiert. Namentlich handelte es sich um zwei verschiedene Lösungen des Unternehmens Oracle, das einerseits in die Oracle Datenbank in Version 12.2 ein Sharding-Feature eingebaut hat. Andererseits wird auch das Produkt MySQL von Oracle vertrieben. Auch für MySQL gibt es verschiedene Möglichkeiten, um das Sharding zu realisieren. Konkret wurde hier als zweite Sharding-Lösung ein Framework mit dem Namen „MySQL Fabric“ untersucht. Die beiden Lösungen wurden zunächst analysiert und am Ende miteinander verglichen.
Da in einer Bachelor Thesis eine These aufgestellt und geprüft werden soll, stellte ich die These auf, dass typische Merkmale eines ganz bestimmten nichtrelationalen Systems (namentlich Apache HBase) durch Sharding-Features in relationalen Systemen nachgebildet werden könnten. Einige beispielhafte Merkmale, die untersucht wurden, sind nachfolgend aufgelistet:
• Wie ist das Lizenzmodell der Systeme (open-source oder kommerziell)?
• Können die Systeme auf Standard-Hardware betrieben werden?
• Sind die Systeme tatsächlich skalierbar?
• Existiert ein sogenannter Single-Point-of-Failure?
• Werden ACID-Eigenschaften unterstützt?
Beide der oben genannten Sharding-Features wurden also anhand der Kriterien evaluiert. Konkret wurden praktische Tests mit den Softwareprodukten durchgeführt, die durch das Studium der Produktdokumentationen ergänzt wurden. Als Ergebnis der Untersuchung konnte festgestellt werden, dass nicht alle untersuchten Kriterien durch die Sharding-Lösungen in relationalen Systemen nachgestellt werden können.
Durch die Bearbeitung eines solchen Themas, das durchaus nicht trivial ist, können wertvolle Kenntnisse gewonnen werden. Besonders hervorheben möchte ich, dass man hier ein Thema sowohl aus der theoretischen, als auch mal aus der praktischen Perspektive betrachten kann. So habe ich für den praktischen Teil zum Beispiel die Schwierigkeiten meistern müssen, die bei der Installation und Konfiguration einer komplexeren Software, wie der Oracle Datenbank, anfallen. Dazu zählt auch das Aufsetzen von geeigneten Servern auf Linux-Basis. Für spätere Projekteinsätze im Oracle-Umfeld ist es mit Sicherheit sinnvoll, wenn bereits Erfahrungen mit der Installation und Konfiguration von Oracle-Produkten gemacht wurden.
Daher bewerte ich die Bearbeitung eines solchen Themas als äußerst wertvoll für den Studierenden und auch für das Unternehmen, das als Kooperationspartner im dualen Studium agiert, da ein Partnerunternehmen die Richtung mitbestimmen kann, in die sich der Student entwickelt.
Zum Abschluss dieses Berichts möchte ich sagen, dass die drei Jahre des dualen Studiums sich sehr gelohnt haben. Ich werde unmittelbar nach Abschluss des Studiums als Consultant bei syntegris einsteigen. Es kann gesagt werden, dass man in das duale Studium mit wenigen bis gar keinen Kenntnissen im IT-Umfeld starten kann, und sich innerhalb von drei Jahren zu einem gut ausgebildeten Berufseinsteiger weiterentwickeln kann.