Laden...

Bestehende Datenbank ändert sich (auch in Zukunft): Ist eine NoSQL-Datenbank besser geeignet?

Erstellt von camelord vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.764 Views
camelord Themenstarter:in
256 Beiträge seit 2006
vor 5 Jahren
Bestehende Datenbank ändert sich (auch in Zukunft): Ist eine NoSQL-Datenbank besser geeignet?

Hi

ich verwende derzeit für eine Webanwendung eine SQL Server 2016 Datenbank. Die Tabellen sind normalisiert und es gibt mehrere n:m Beziehungen mit ihren Zwischentabellen.

In der Webanwendung werden Stammdaten von Mitarbeitern, Maschinen, Verbrauchsmaterial usw. gepflegt. Diese werden für Außeneinsätze in einer zusätzlichen Projekt Weboberfläche zu einem Projekt über x Tage zusammengeführt.
Zusätzlich gibt es noch Begriffe die wie Kategorien funktionieren und vom Web App Bediener selbst frei erstellbar sind. Beispielweise gehören dann alle Schrauber zu einer bestimmten Kategorie um
später die Suche über eine Kategorie zu vereinfachen.

Lief bisher ganz gut - jetzt hat sich aber in den Anforderungen ziemlich viel verändert (neues Geschäftsmodell soll integriert werden) die es erfordern, das Datenbankschema stark zu erweitern. An manchen Stellen ändern sich auch die Relationen.

Vermutlich ändert sich in einiger Zeit noch mehr.

Meint ihr, das ist ein Fall für nicht-relationale Datenbanken und ich sollte in dem Zuge einen Wechsel auf eine andere Datenbank planen? NoSQL Datenbanken sind prinzipiell einfach erweiterbar aber ich bin mir nicht sicher, ob meine Anwendung auf ein nicht relationales Datenbank Schema passt..

Gruß
camelord

16.806 Beiträge seit 2008
vor 5 Jahren

NoSQL = Not Only SQL.

Ich behaupte, dass jedes relationale Schema auch in ein nicht-relationales Schema passt.

camelord Themenstarter:in
256 Beiträge seit 2006
vor 5 Jahren

Das ging aber schnell..

Ein Problem habe ich dabei:
Beim relationalen Modell verwende ich die Foreign Keys und ein paar Zusatzdaten um einen neuen Datensatz zu erstellen, der z.B. eine vorhandene Maschine und einen vorhandenen Mitarbeiter enthält.
Bei nicht relationalen Modellen, werden die benötigten Daten der Mitarbeiter bzw. Maschine einfach mit abgespeichert (ohne Verweis auf die original daten).

Wie funktioniert bei einem nicht relationalen datenbank schema die aktualisierung von solchen stammdaten in (gedanklich) verwiesenen datensätzen?
Die Daten müssen doch konsestent bleiben.

16.806 Beiträge seit 2008
vor 5 Jahren

NoSQL hat den Grundgedanken, dass es gewollte Redundanzen gibt.
Du musst in NoSQL weg von dem Gedanken, dass es Relationen gibt.

Im Prinzip werden in NoSQL die Inhalte nach Queries designed.

camelord Themenstarter:in
256 Beiträge seit 2006
vor 5 Jahren

Ok, das heißt aber in meinem Fall, dass ich besser bei der relationalen Datenbank bleibe.
Sonst muss ich im Code selbst dafür sorgen, dass bei Änderungen von Daten, alle betroffenen Datensätze aktuell gehalten sind..

C
2.121 Beiträge seit 2010
vor 5 Jahren

Mir fehlt der wirkliche Grund um etwas so grundlegendes wie ein Datenbankschema neu zu gestalten.

Ich sehe nur den Gedanken, in Zukunft ändert sich unser Projekt, jetzt stellen wir einfach mal irgendetwas komplett um und hoffen dass das dann genügend Innovation ist.
Find ich noch nicht ausreichend.

16.806 Beiträge seit 2008
vor 5 Jahren

Also ich verwende fast ausschließlich NoSQL Datenbanken in meinen Projekten.
CosmosDB wenn auf Azure, MongoDB wenn Hybrid.

Wirklich relationale Datenbanken nutze ich wirklich nur noch, wenn ich muss (zB. IdentityServer mit MSSQL).

camelord Themenstarter:in
256 Beiträge seit 2006
vor 5 Jahren

Ok danke Abt, das hilft!
Ich habe mich bisher einfach noch nicht getraut, da ich die Folgen noch nicht abwägen kann..

16.806 Beiträge seit 2008
vor 5 Jahren

Was für Folgen denn?
Dass dadurch irgendwo auf der Welt das Wasser knappt wird? 🤔