Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Bestehende Datenbank ändert sich (auch in Zukunft): Ist eine NoSQL-Datenbank besser geeignet?
camelord
myCSharp.de - Member

Avatar #avatar-2671.jpg


Dabei seit:
Beiträge: 256
Herkunft: Ravensburg

Themenstarter:

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

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.752

beantworten | zitieren | melden

NoSQL = Not Only SQL.

Ich behaupte, dass jedes relationale Schema auch in ein nicht-relationales Schema passt.
private Nachricht | Beiträge des Benutzers
camelord
myCSharp.de - Member

Avatar #avatar-2671.jpg


Dabei seit:
Beiträge: 256
Herkunft: Ravensburg

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.752

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
camelord
myCSharp.de - Member

Avatar #avatar-2671.jpg


Dabei seit:
Beiträge: 256
Herkunft: Ravensburg

Themenstarter:

beantworten | zitieren | melden

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..
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.102

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.752

beantworten | zitieren | melden

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).
private Nachricht | Beiträge des Benutzers
camelord
myCSharp.de - Member

Avatar #avatar-2671.jpg


Dabei seit:
Beiträge: 256
Herkunft: Ravensburg

Themenstarter:

beantworten | zitieren | melden

Ok danke Abt, das hilft!
Ich habe mich bisher einfach noch nicht getraut, da ich die Folgen noch nicht abwägen kann..
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.752

beantworten | zitieren | melden

Was für Folgen denn?
Dass dadurch irgendwo auf der Welt das Wasser knappt wird?
private Nachricht | Beiträge des Benutzers