Skip to content
This repository has been archived by the owner on Sep 7, 2020. It is now read-only.

Backend

fredTHK edited this page Jan 13, 2020 · 16 revisions

Backend

1. Recherche zur Datenbankwahl

Vorteile einer NoSQL Datenbank

Eine NoSQL Datenbank, zum Beispiel MongoDB, bietet unter anderem den Vorteil, dass sie auf ein dynamisches Schema ausgelegt ist, welches sich neuen Daten flexibel anpassen kann. MongoDB speichert diese Daten in Collections. Jede Collection enthält Dokumente, sogenannte JSON-Files, mit einer ähnlichen Struktur, welche unter sich auch eine unterschiedliche Anzahl von Feldern besitzen können.

Aufgrund dieses Schemas ist es sehr leicht, die Datenstruktur auch nach der Inbetriebnahme des Systems noch oft zu ändern. In unserem Projekt rechnen wir allerdings nicht damit, dass sich die Datenstruktur nach Fertigstellung noch dramatisch verändern wird.

Des Weiteren lässt sich eine MongoDB frei nach oben skalieren, die Datenbank könnte sogar von einem Mehrrechner-Datenbanksystem betrieben werden, sollte dies nötig werden. Dies ist vor allem im Big Data Bereich von großem Vorteil. Bei Prox ist es nun allerdings so, dass die Zunahme an Datenmenge stagnieren wird, sobald alle Professoren/Betreuungspersonen ein Profil erstellt haben.

Vorteile eines RDBMS

RDBMS wie zum Beispiel MySQL und Oracle sind bewährte und weit verbreitete Lösungen für Datenstrukturen, welche sich im Nachhinein nicht großartig verändern. Ebenfalls von Vorteil ist die starke Abfragesprache(Queries) der RDBMS, welche, natürlich je nach Komplexität der Anfrage und Datenbestand, zuverlässig und schnell die benötigten Informationen liefern.

Ein weiterer persönlicher Vorteil unseres Teams von RDBMS ist die vorhandene Erfahrung in der Arbeit mit diesen. Zu guter Letzt ist zu erwähnen, dass die weiteren Microservices von Prox ebenfalls ein RDBMS verwenden (Stand Januar 2020). Sollte also in Zukunft jemand aus einem anderen Service Wartungsarbeiten oder Anpassungen durchführen müssen, kommt er in eine vertraute Architektur und muss sich nicht in ein anderes Datenbanksystem einarbeiten.

Fazit

Die größten Vorteile einer NoSQL Datenbank lassen sich in diesem Projekt nicht nutzen, da eine bekannte, sich nach Fertigstellung des Projektes nicht mehr großartig verändernde Datenstruktur ausgearbeitet wurde. Des Weiteren wird die Menge an Daten nach der Einführungsphase ebenfalls stabil bleiben und nicht höher skaliert oder gar auf ein Mehrrechner-Datenbanksystem skaliert werden müssen.

Aufgrund dessen wurde entschlossen, eine Relationale Datenbank zu verwenden.