dedlfix: NO-SQL - Eure Erfahrung

Beitrag lesen

Tach!

Vorab: Ich habe noch keine direkten Erfahrungen mit NoSQL-Systemen. Ich gebe hier nur mein angelesenes Wissen und meine Interpretation desselben zum besten.

Was für mich ein sehr wichtiges Kriterium wäre, was passiert wenn die Struktur deiner Daten sich ändert?

MongoDB ist wie viele NoSQL-Datenbanken schemafrei. Das heißt, es gibt keine starre Struktur. Selbst in einer Liste gleichartiger Dinge können einzelne oder auch alle Dokumente (das Äquivalent zu Datensätzen) strukturell voneinander abweichen.

Heute hat dein Objekt 5 Felder. Davon packst du ein paar in die DB. Dann kommen zwei Felder hinzu. Eine SQL Datenbank kannst du nachziehen und die Spalten einfügen und passend füllen. Was machen deine bisher gespeicherten Objekte?

Daselbe wie bei einer Datenbank: die neuen Felder haben keinen oder einen Default-Wert.

Dann fällt ein Feld weg oder wird umbenannt. Was machen hier deine Objekte?

Ohne weiteres Zutun behalten sie die zusätzlichen Daten. Das kann man bei Bedarf bereinigen.

Kannst du definieren was zum Objekt gespeichert werden soll und was nicht?

Wegen der Schemafreiheit kann man das nicht. Die Frage wäre aber, ob man das will? NoSQL-Datenbanken sind nicht der Nachfolger von relationalen Datanbanken oder gar ein adäquater Ersatz. Die Gemeinsamkeit ist mehr oder weniger nur, dass sie Daten speichern. Ansonsten sind sie für andere Bedürfnisse entworfen worden. Es ist nicht sinnvoll, das RDBMS-Wissen und die dort gelernten Vorgehensweisen 1:1 in NoSQL-DBMS verwenden zu wollen. Besser ist es, das Wissen im Hinterkopf wegzustecken und sich erstmal ganz unvoreingenommen mit NoSQL-DBs zu beschäftigen und deren Möglichkeiten zu erschließen. Die im OP verlinkte Übersetzungsliste zu verwenden kann hinderlich sein, wenn man sie nur so verwendet, dass man sich das passende SQL-Statement für ein RDBMS zurechtlegt und dann nur noch die Entsprechung in der MongoDB-Syntax sucht. Das führt vermutlich nur dazu, dass man die neuen Möglichkeiten nicht erkennt, die Philosophie des anderen Systems nicht optimal kennenlernt und nicht ihr entsprechend die Lösungen entwirft, welche dann suboptimal sein können.

dedlfix.