Wann SQL oder NOSQL (Mongo)?

Sputnik78

Mitglied
Hallo Forum,
ich stehe aktuell vor der Herausforderung eine Java-Anwendung programmieren zu lassen und muss vorab eine Datenbank auswählen. Konkret stellt sich die Frage, ob SQL oder NoSQL. Ich möchte Kriterien definieren und anhand des konkreten Projekts „ausprägen“, um zu einer
Entscheidung zu kommen.

Wenn man jetzt mal die erforderliche Infrastruktur unterstellt: Ab welchem Umfang / welcher Komplexität der Daten braucht man NOSQL wirklich?

Ich habe in der Spitze ein paar hundert lesende Nutzer Max, es geht im weitesten Sinne um eine E-Commerce Anwendung mit registrierten Nutzern, allerdings mehrere Sprachen.

Was wären Kriterien, um hier zu einer Entscheidung zu kommen?Stichworte: Neue Spalten,
Join-Tables bei Abruf, Clustering etc.?

Kann man hier Mengengerüste definieren? Z.B. Ab Xy Joins über z sql-Tabellen sollte man NOSQL nehmen? Welche Rolle spielt die Middleware bei Performanz ....?

Thx!
 

Sputnik78

Mitglied
Grundsätzlich gebe ich dir Recht. Die DB muss aber Unternehmens intern gehostet werden und da stellt eine NOSQL DB ein Problem dar, da man nicht einfach eine neue DB installieren kann. SQL wäre kein Problem.
 

mrBrown

Super-Moderator
Mitarbeiter
Die DB muss aber Unternehmens intern gehostet werden und da stellt eine NOSQL DB ein Problem dar, da man nicht einfach eine neue DB installieren kann. SQL wäre kein Problem.
Wenn eh nur das eine geht, ist die Entscheidung doch leicht ¯\_(ツ)_/¯

Im Zweifel baut man die Anwendung halt so, dass die Persistenzschicht austauschbar ist
 

Flown

Administrator
Mitarbeiter
Da hast du schon deine Antwort. Ich bin noch nie auf ein "wirtschaftliches" Problem gestoßen wo NoSQL der Weg gewesen wäre.
 

Sputnik78

Mitglied
Na ja, vielleicht muss ich ergänzen: Es ist eine Abwägungssache - lohnt sich die Einführung einer NOSQL DB aufgrund der performanz / usability / funktionen? D.h. bietet NOSQL derart viele Vorteile oder kann ich das gleiche mit SQL abbilden? Ich denke auch letzteres, kann das aber technisch nicht beurteilen.
Mein Gefühl sagt mir: Die Anwendung hat sehr wenige parallele Nutzer und hat nicht die Anforderungen wie Google, Facebook etc. Allerdings werden die Daten schon erweitert, es gibt viele Sprachen. Ich würde es halt gerne so gut es geht „objektivieren“
 

Dukel

Top Contributor
Bei SQL vs. NoSQL geht es eher um die Agilität.
Bei einer Änderung (neue Spalte) muss bei einer SQL DB erst der SQL-Admin diese Spalte anlegen und dann kann der Programmierer diese nutzen, bei NoSql kann das der Programmierer alles selbst machen (NoSQL ist Schemalos).

Ein anderer Grund sind bestimmte Arten von Daten, die gespeichert werden sollen. Wenn es z.B. einfache Tabellen (Hash Tables), Json Dokumente, Graphen,... sind dann eignen sich entsprechende NoSQL Datenbanken mehr.

Aber ihr müsst euch im klaren sein, wer die Vorgaben macht. Der Entwickler oder Ihr (ist es schwierig oder unmöglich einen NoSQL Server zu installieren?).
 

truesoul

Top Contributor
Hallo.

Also bei der Menge an Nutzern, die Ihr habt, macht es in meinen Augen kein Sinn auf NoSQL zu setzen.
Wobei bei NoSQL auch unterscheiden muss unter folgenden Typen:

1. Key-Value (z. B Amazon Dynamo)
2. Dokumentenorientiert (z. B MongoDB)
3. Graphen (z. B Neo4j)
4. Spaltenorientierte (z. B Cassandra)

Ich werde sicher nicht jetzt zu jeden was schreiben, aber das könnte dir schon als Anhaltspunkt dienen, wonach du suchen könntest.

Grüße
 

Thallius

Top Contributor
Also bei der kleinen Menge würd ich sogar einfach auf MySQL setzen. Da kannst du für deine Anwendung eine eigene virtuelle DB einrichten und kannst der Applikation alle Rechte geben die sie Braucht. Eben auch ALTER TABLE und so weiter.

Gruß

Claus
 

JuKu

Top Contributor
Google und Facebook setzen auch noch relationale Datenbanken ein. Parallelität ist kein Grund für NoSQL.

Auch, aber größtenteils setzen sie auf NoSQL.
Grund ist aber, dass NoSQL weniger Abhängigkeiten (Relationen) besitzt und deshalb viel besser skaliert und schneller arbeitet. Aber diese Diskussion hatten wir schon mal in einem anderen Thread.

Ich habe in der Spitze ein paar hundert lesende Nutzer Max, es geht im weitesten Sinne um eine E-Commerce Anwendung mit registrierten Nutzern, allerdings mehrere Sprachen.

Da lohnt sich eine NoSQL Datenbank nicht.
 

Ähnliche Java Themen


Oben